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

#ifndef GOOGLE_PROTOBUF_INCLUDED_shared_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_shared_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 "behavior.pb.h"
#include "cube.pb.h"
#include "alexa.pb.h"
#include "messages.pb.h"
#include "settings.pb.h"
#include "extensions.pb.h"
#include "response_status.pb.h"

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

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

// Internal implementation detail -- do not use these members.
struct TableStruct_shared_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[10]
    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_shared_2eproto;
namespace Anki {
namespace Vector {
namespace external_interface {
class ConnectionResponse;
class ConnectionResponseDefaultTypeInternal;
extern ConnectionResponseDefaultTypeInternal _ConnectionResponse_default_instance_;
class Event;
class EventDefaultTypeInternal;
extern EventDefaultTypeInternal _Event_default_instance_;
class EventRequest;
class EventRequestDefaultTypeInternal;
extern EventRequestDefaultTypeInternal _EventRequest_default_instance_;
class EventResponse;
class EventResponseDefaultTypeInternal;
extern EventResponseDefaultTypeInternal _EventResponse_default_instance_;
class FilterList;
class FilterListDefaultTypeInternal;
extern FilterListDefaultTypeInternal _FilterList_default_instance_;
class GatewayWrapper;
class GatewayWrapperDefaultTypeInternal;
extern GatewayWrapperDefaultTypeInternal _GatewayWrapper_default_instance_;
class ProtocolVersionRequest;
class ProtocolVersionRequestDefaultTypeInternal;
extern ProtocolVersionRequestDefaultTypeInternal _ProtocolVersionRequest_default_instance_;
class ProtocolVersionResponse;
class ProtocolVersionResponseDefaultTypeInternal;
extern ProtocolVersionResponseDefaultTypeInternal _ProtocolVersionResponse_default_instance_;
class UserAuthenticationRequest;
class UserAuthenticationRequestDefaultTypeInternal;
extern UserAuthenticationRequestDefaultTypeInternal _UserAuthenticationRequest_default_instance_;
class UserAuthenticationResponse;
class UserAuthenticationResponseDefaultTypeInternal;
extern UserAuthenticationResponseDefaultTypeInternal _UserAuthenticationResponse_default_instance_;
}  // namespace external_interface
}  // namespace Vector
}  // namespace Anki
PROTOBUF_NAMESPACE_OPEN
template<> ::Anki::Vector::external_interface::ConnectionResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ConnectionResponse>(Arena*);
template<> ::Anki::Vector::external_interface::Event* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::Event>(Arena*);
template<> ::Anki::Vector::external_interface::EventRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EventRequest>(Arena*);
template<> ::Anki::Vector::external_interface::EventResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EventResponse>(Arena*);
template<> ::Anki::Vector::external_interface::FilterList* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::FilterList>(Arena*);
template<> ::Anki::Vector::external_interface::GatewayWrapper* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::GatewayWrapper>(Arena*);
template<> ::Anki::Vector::external_interface::ProtocolVersionRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ProtocolVersionRequest>(Arena*);
template<> ::Anki::Vector::external_interface::ProtocolVersionResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ProtocolVersionResponse>(Arena*);
template<> ::Anki::Vector::external_interface::UserAuthenticationRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UserAuthenticationRequest>(Arena*);
template<> ::Anki::Vector::external_interface::UserAuthenticationResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UserAuthenticationResponse>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace Anki {
namespace Vector {
namespace external_interface {

enum ProtocolVersionResponse_Result : int {
  ProtocolVersionResponse_Result_UNSUPPORTED = 0,
  ProtocolVersionResponse_Result_SUCCESS = 1,
  ProtocolVersionResponse_Result_ProtocolVersionResponse_Result_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  ProtocolVersionResponse_Result_ProtocolVersionResponse_Result_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool ProtocolVersionResponse_Result_IsValid(int value);
constexpr ProtocolVersionResponse_Result ProtocolVersionResponse_Result_Result_MIN = ProtocolVersionResponse_Result_UNSUPPORTED;
constexpr ProtocolVersionResponse_Result ProtocolVersionResponse_Result_Result_MAX = ProtocolVersionResponse_Result_SUCCESS;
constexpr int ProtocolVersionResponse_Result_Result_ARRAYSIZE = ProtocolVersionResponse_Result_Result_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ProtocolVersionResponse_Result_descriptor();
template<typename T>
inline const std::string& ProtocolVersionResponse_Result_Name(T enum_t_value) {
  static_assert(::std::is_same<T, ProtocolVersionResponse_Result>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function ProtocolVersionResponse_Result_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    ProtocolVersionResponse_Result_descriptor(), enum_t_value);
}
inline bool ProtocolVersionResponse_Result_Parse(
    const std::string& name, ProtocolVersionResponse_Result* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ProtocolVersionResponse_Result>(
    ProtocolVersionResponse_Result_descriptor(), name, value);
}
enum UserAuthenticationResponse_Code : int {
  UserAuthenticationResponse_Code_UNAUTHORIZED = 0,
  UserAuthenticationResponse_Code_AUTHORIZED = 1,
  UserAuthenticationResponse_Code_UserAuthenticationResponse_Code_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  UserAuthenticationResponse_Code_UserAuthenticationResponse_Code_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool UserAuthenticationResponse_Code_IsValid(int value);
constexpr UserAuthenticationResponse_Code UserAuthenticationResponse_Code_Code_MIN = UserAuthenticationResponse_Code_UNAUTHORIZED;
constexpr UserAuthenticationResponse_Code UserAuthenticationResponse_Code_Code_MAX = UserAuthenticationResponse_Code_AUTHORIZED;
constexpr int UserAuthenticationResponse_Code_Code_ARRAYSIZE = UserAuthenticationResponse_Code_Code_MAX + 1;

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

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

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

  inline ProtocolVersionRequest& operator=(const ProtocolVersionRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ProtocolVersionRequest& operator=(ProtocolVersionRequest&& 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 ProtocolVersionRequest& default_instance();

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

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

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

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

  ProtocolVersionRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ProtocolVersionRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ProtocolVersionRequest& from);
  void MergeFrom(const ProtocolVersionRequest& 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(ProtocolVersionRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ProtocolVersionRequest";
  }
  protected:
  explicit ProtocolVersionRequest(::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_shared_2eproto);
    return ::descriptor_table_shared_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kClientVersionFieldNumber = 1,
    kMinHostVersionFieldNumber = 2,
  };
  // int64 client_version = 1;
  void clear_client_version();
  ::PROTOBUF_NAMESPACE_ID::int64 client_version() const;
  void set_client_version(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_client_version() const;
  void _internal_set_client_version(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 min_host_version = 2;
  void clear_min_host_version();
  ::PROTOBUF_NAMESPACE_ID::int64 min_host_version() const;
  void set_min_host_version(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_min_host_version() const;
  void _internal_set_min_host_version(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  
  // Begin code inserted by Anki plugin.
  ProtocolVersionRequest( ::google::protobuf::int64 client_version, ::google::protobuf::int64 min_host_version );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ProtocolVersionRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::int64 client_version_;
  ::PROTOBUF_NAMESPACE_ID::int64 min_host_version_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_shared_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline ProtocolVersionResponse& operator=(const ProtocolVersionResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ProtocolVersionResponse& operator=(ProtocolVersionResponse&& 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 ProtocolVersionResponse& default_instance();

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

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

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

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

  ProtocolVersionResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ProtocolVersionResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ProtocolVersionResponse& from);
  void MergeFrom(const ProtocolVersionResponse& 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(ProtocolVersionResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ProtocolVersionResponse";
  }
  protected:
  explicit ProtocolVersionResponse(::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_shared_2eproto);
    return ::descriptor_table_shared_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

  typedef ProtocolVersionResponse_Result Result;
  static constexpr Result UNSUPPORTED =
    ProtocolVersionResponse_Result_UNSUPPORTED;
  static constexpr Result SUCCESS =
    ProtocolVersionResponse_Result_SUCCESS;
  static inline bool Result_IsValid(int value) {
    return ProtocolVersionResponse_Result_IsValid(value);
  }
  static constexpr Result Result_MIN =
    ProtocolVersionResponse_Result_Result_MIN;
  static constexpr Result Result_MAX =
    ProtocolVersionResponse_Result_Result_MAX;
  static constexpr int Result_ARRAYSIZE =
    ProtocolVersionResponse_Result_Result_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  Result_descriptor() {
    return ProtocolVersionResponse_Result_descriptor();
  }
  template<typename T>
  static inline const std::string& Result_Name(T enum_t_value) {
    static_assert(::std::is_same<T, Result>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function Result_Name.");
    return ProtocolVersionResponse_Result_Name(enum_t_value);
  }
  static inline bool Result_Parse(const std::string& name,
      Result* value) {
    return ProtocolVersionResponse_Result_Parse(name, value);
  }

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

  enum : int {
    kHostVersionFieldNumber = 2,
    kResultFieldNumber = 1,
  };
  // int64 host_version = 2;
  void clear_host_version();
  ::PROTOBUF_NAMESPACE_ID::int64 host_version() const;
  void set_host_version(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_host_version() const;
  void _internal_set_host_version(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // .Anki.Vector.external_interface.ProtocolVersionResponse.Result result = 1;
  void clear_result();
  ::Anki::Vector::external_interface::ProtocolVersionResponse_Result result() const;
  void set_result(::Anki::Vector::external_interface::ProtocolVersionResponse_Result value);
  private:
  ::Anki::Vector::external_interface::ProtocolVersionResponse_Result _internal_result() const;
  void _internal_set_result(::Anki::Vector::external_interface::ProtocolVersionResponse_Result value);
  public:

  
  // Begin code inserted by Anki plugin.
  ProtocolVersionResponse( ::Anki::Vector::external_interface::ProtocolVersionResponse::Result result, ::google::protobuf::int64 host_version );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ProtocolVersionResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::int64 host_version_;
  int result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_shared_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline ConnectionResponse& operator=(const ConnectionResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionResponse& operator=(ConnectionResponse&& 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 ConnectionResponse& default_instance();

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

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

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

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

  ConnectionResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ConnectionResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ConnectionResponse& from);
  void MergeFrom(const ConnectionResponse& 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(ConnectionResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ConnectionResponse";
  }
  protected:
  explicit ConnectionResponse(::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_shared_2eproto);
    return ::descriptor_table_shared_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kStatusFieldNumber = 1,
    kIsPrimaryFieldNumber = 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();

  // bool is_primary = 2;
  void clear_is_primary();
  bool is_primary() const;
  void set_is_primary(bool value);
  private:
  bool _internal_is_primary() const;
  void _internal_set_is_primary(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  ConnectionResponse( ResponseStatus* status, bool is_primary );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ConnectionResponse)
 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_;
  bool is_primary_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_shared_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline Event& operator=(const Event& from) {
    CopyFrom(from);
    return *this;
  }
  inline Event& operator=(Event&& 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 Event& default_instance();

  enum EventTypeCase {
    kTimeStampedStatus = 1,
    kOnboarding = 2,
    kWakeWord = 3,
    kAttentionTransfer = 4,
    kRobotObservedFace = 5,
    kRobotChangedObservedFaceId = 6,
    kObjectEvent = 7,
    kStimulationInfo = 8,
    kPhotoTaken = 9,
    kRobotState = 10,
    kCubeBattery = 11,
    kKeepAlive = 12,
    kConnectionResponse = 13,
    kJdocsChanged = 14,
    kAlexaAuthEvent = 15,
    kMirrorModeDisabled = 16,
    kVisionModesAutoDisabled = 17,
    kCheckUpdateStatusResponse = 18,
    kUserIntent = 19,
    kRobotObservedMotion = 20,
    kRobotErasedEnrolledFace = 21,
    kRobotRenamedEnrolledFace = 22,
    kCameraSettingsUpdate = 23,
    kUnexpectedMovement = 24,
    EVENT_TYPE_NOT_SET = 0,
  };

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

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

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

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

  Event* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<Event>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const Event& from);
  void MergeFrom(const Event& 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(Event* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.Event";
  }
  protected:
  explicit Event(::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_shared_2eproto);
    return ::descriptor_table_shared_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kTimeStampedStatusFieldNumber = 1,
    kOnboardingFieldNumber = 2,
    kWakeWordFieldNumber = 3,
    kAttentionTransferFieldNumber = 4,
    kRobotObservedFaceFieldNumber = 5,
    kRobotChangedObservedFaceIdFieldNumber = 6,
    kObjectEventFieldNumber = 7,
    kStimulationInfoFieldNumber = 8,
    kPhotoTakenFieldNumber = 9,
    kRobotStateFieldNumber = 10,
    kCubeBatteryFieldNumber = 11,
    kKeepAliveFieldNumber = 12,
    kConnectionResponseFieldNumber = 13,
    kJdocsChangedFieldNumber = 14,
    kAlexaAuthEventFieldNumber = 15,
    kMirrorModeDisabledFieldNumber = 16,
    kVisionModesAutoDisabledFieldNumber = 17,
    kCheckUpdateStatusResponseFieldNumber = 18,
    kUserIntentFieldNumber = 19,
    kRobotObservedMotionFieldNumber = 20,
    kRobotErasedEnrolledFaceFieldNumber = 21,
    kRobotRenamedEnrolledFaceFieldNumber = 22,
    kCameraSettingsUpdateFieldNumber = 23,
    kUnexpectedMovementFieldNumber = 24,
  };
  // .Anki.Vector.external_interface.TimeStampedStatus time_stamped_status = 1;
  bool has_time_stamped_status() const;
  private:
  bool _internal_has_time_stamped_status() const;
  public:
  void clear_time_stamped_status();
  const ::Anki::Vector::external_interface::TimeStampedStatus& time_stamped_status() const;
  ::Anki::Vector::external_interface::TimeStampedStatus* release_time_stamped_status();
  ::Anki::Vector::external_interface::TimeStampedStatus* mutable_time_stamped_status();
  void set_allocated_time_stamped_status(::Anki::Vector::external_interface::TimeStampedStatus* time_stamped_status);
  private:
  const ::Anki::Vector::external_interface::TimeStampedStatus& _internal_time_stamped_status() const;
  ::Anki::Vector::external_interface::TimeStampedStatus* _internal_mutable_time_stamped_status();
  public:
  void unsafe_arena_set_allocated_time_stamped_status(
      ::Anki::Vector::external_interface::TimeStampedStatus* time_stamped_status);
  ::Anki::Vector::external_interface::TimeStampedStatus* unsafe_arena_release_time_stamped_status();

  // .Anki.Vector.external_interface.Onboarding onboarding = 2;
  bool has_onboarding() const;
  private:
  bool _internal_has_onboarding() const;
  public:
  void clear_onboarding();
  const ::Anki::Vector::external_interface::Onboarding& onboarding() const;
  ::Anki::Vector::external_interface::Onboarding* release_onboarding();
  ::Anki::Vector::external_interface::Onboarding* mutable_onboarding();
  void set_allocated_onboarding(::Anki::Vector::external_interface::Onboarding* onboarding);
  private:
  const ::Anki::Vector::external_interface::Onboarding& _internal_onboarding() const;
  ::Anki::Vector::external_interface::Onboarding* _internal_mutable_onboarding();
  public:
  void unsafe_arena_set_allocated_onboarding(
      ::Anki::Vector::external_interface::Onboarding* onboarding);
  ::Anki::Vector::external_interface::Onboarding* unsafe_arena_release_onboarding();

  // .Anki.Vector.external_interface.WakeWord wake_word = 3;
  bool has_wake_word() const;
  private:
  bool _internal_has_wake_word() const;
  public:
  void clear_wake_word();
  const ::Anki::Vector::external_interface::WakeWord& wake_word() const;
  ::Anki::Vector::external_interface::WakeWord* release_wake_word();
  ::Anki::Vector::external_interface::WakeWord* mutable_wake_word();
  void set_allocated_wake_word(::Anki::Vector::external_interface::WakeWord* wake_word);
  private:
  const ::Anki::Vector::external_interface::WakeWord& _internal_wake_word() const;
  ::Anki::Vector::external_interface::WakeWord* _internal_mutable_wake_word();
  public:
  void unsafe_arena_set_allocated_wake_word(
      ::Anki::Vector::external_interface::WakeWord* wake_word);
  ::Anki::Vector::external_interface::WakeWord* unsafe_arena_release_wake_word();

  // .Anki.Vector.external_interface.AttentionTransfer attention_transfer = 4;
  bool has_attention_transfer() const;
  private:
  bool _internal_has_attention_transfer() const;
  public:
  void clear_attention_transfer();
  const ::Anki::Vector::external_interface::AttentionTransfer& attention_transfer() const;
  ::Anki::Vector::external_interface::AttentionTransfer* release_attention_transfer();
  ::Anki::Vector::external_interface::AttentionTransfer* mutable_attention_transfer();
  void set_allocated_attention_transfer(::Anki::Vector::external_interface::AttentionTransfer* attention_transfer);
  private:
  const ::Anki::Vector::external_interface::AttentionTransfer& _internal_attention_transfer() const;
  ::Anki::Vector::external_interface::AttentionTransfer* _internal_mutable_attention_transfer();
  public:
  void unsafe_arena_set_allocated_attention_transfer(
      ::Anki::Vector::external_interface::AttentionTransfer* attention_transfer);
  ::Anki::Vector::external_interface::AttentionTransfer* unsafe_arena_release_attention_transfer();

  // .Anki.Vector.external_interface.RobotObservedFace robot_observed_face = 5;
  bool has_robot_observed_face() const;
  private:
  bool _internal_has_robot_observed_face() const;
  public:
  void clear_robot_observed_face();
  const ::Anki::Vector::external_interface::RobotObservedFace& robot_observed_face() const;
  ::Anki::Vector::external_interface::RobotObservedFace* release_robot_observed_face();
  ::Anki::Vector::external_interface::RobotObservedFace* mutable_robot_observed_face();
  void set_allocated_robot_observed_face(::Anki::Vector::external_interface::RobotObservedFace* robot_observed_face);
  private:
  const ::Anki::Vector::external_interface::RobotObservedFace& _internal_robot_observed_face() const;
  ::Anki::Vector::external_interface::RobotObservedFace* _internal_mutable_robot_observed_face();
  public:
  void unsafe_arena_set_allocated_robot_observed_face(
      ::Anki::Vector::external_interface::RobotObservedFace* robot_observed_face);
  ::Anki::Vector::external_interface::RobotObservedFace* unsafe_arena_release_robot_observed_face();

  // .Anki.Vector.external_interface.RobotChangedObservedFaceID robot_changed_observed_face_id = 6;
  bool has_robot_changed_observed_face_id() const;
  private:
  bool _internal_has_robot_changed_observed_face_id() const;
  public:
  void clear_robot_changed_observed_face_id();
  const ::Anki::Vector::external_interface::RobotChangedObservedFaceID& robot_changed_observed_face_id() const;
  ::Anki::Vector::external_interface::RobotChangedObservedFaceID* release_robot_changed_observed_face_id();
  ::Anki::Vector::external_interface::RobotChangedObservedFaceID* mutable_robot_changed_observed_face_id();
  void set_allocated_robot_changed_observed_face_id(::Anki::Vector::external_interface::RobotChangedObservedFaceID* robot_changed_observed_face_id);
  private:
  const ::Anki::Vector::external_interface::RobotChangedObservedFaceID& _internal_robot_changed_observed_face_id() const;
  ::Anki::Vector::external_interface::RobotChangedObservedFaceID* _internal_mutable_robot_changed_observed_face_id();
  public:
  void unsafe_arena_set_allocated_robot_changed_observed_face_id(
      ::Anki::Vector::external_interface::RobotChangedObservedFaceID* robot_changed_observed_face_id);
  ::Anki::Vector::external_interface::RobotChangedObservedFaceID* unsafe_arena_release_robot_changed_observed_face_id();

  // .Anki.Vector.external_interface.ObjectEvent object_event = 7;
  bool has_object_event() const;
  private:
  bool _internal_has_object_event() const;
  public:
  void clear_object_event();
  const ::Anki::Vector::external_interface::ObjectEvent& object_event() const;
  ::Anki::Vector::external_interface::ObjectEvent* release_object_event();
  ::Anki::Vector::external_interface::ObjectEvent* mutable_object_event();
  void set_allocated_object_event(::Anki::Vector::external_interface::ObjectEvent* object_event);
  private:
  const ::Anki::Vector::external_interface::ObjectEvent& _internal_object_event() const;
  ::Anki::Vector::external_interface::ObjectEvent* _internal_mutable_object_event();
  public:
  void unsafe_arena_set_allocated_object_event(
      ::Anki::Vector::external_interface::ObjectEvent* object_event);
  ::Anki::Vector::external_interface::ObjectEvent* unsafe_arena_release_object_event();

  // .Anki.Vector.external_interface.StimulationInfo stimulation_info = 8;
  bool has_stimulation_info() const;
  private:
  bool _internal_has_stimulation_info() const;
  public:
  void clear_stimulation_info();
  const ::Anki::Vector::external_interface::StimulationInfo& stimulation_info() const;
  ::Anki::Vector::external_interface::StimulationInfo* release_stimulation_info();
  ::Anki::Vector::external_interface::StimulationInfo* mutable_stimulation_info();
  void set_allocated_stimulation_info(::Anki::Vector::external_interface::StimulationInfo* stimulation_info);
  private:
  const ::Anki::Vector::external_interface::StimulationInfo& _internal_stimulation_info() const;
  ::Anki::Vector::external_interface::StimulationInfo* _internal_mutable_stimulation_info();
  public:
  void unsafe_arena_set_allocated_stimulation_info(
      ::Anki::Vector::external_interface::StimulationInfo* stimulation_info);
  ::Anki::Vector::external_interface::StimulationInfo* unsafe_arena_release_stimulation_info();

  // .Anki.Vector.external_interface.PhotoTaken photo_taken = 9;
  bool has_photo_taken() const;
  private:
  bool _internal_has_photo_taken() const;
  public:
  void clear_photo_taken();
  const ::Anki::Vector::external_interface::PhotoTaken& photo_taken() const;
  ::Anki::Vector::external_interface::PhotoTaken* release_photo_taken();
  ::Anki::Vector::external_interface::PhotoTaken* mutable_photo_taken();
  void set_allocated_photo_taken(::Anki::Vector::external_interface::PhotoTaken* photo_taken);
  private:
  const ::Anki::Vector::external_interface::PhotoTaken& _internal_photo_taken() const;
  ::Anki::Vector::external_interface::PhotoTaken* _internal_mutable_photo_taken();
  public:
  void unsafe_arena_set_allocated_photo_taken(
      ::Anki::Vector::external_interface::PhotoTaken* photo_taken);
  ::Anki::Vector::external_interface::PhotoTaken* unsafe_arena_release_photo_taken();

  // .Anki.Vector.external_interface.RobotState robot_state = 10;
  bool has_robot_state() const;
  private:
  bool _internal_has_robot_state() const;
  public:
  void clear_robot_state();
  const ::Anki::Vector::external_interface::RobotState& robot_state() const;
  ::Anki::Vector::external_interface::RobotState* release_robot_state();
  ::Anki::Vector::external_interface::RobotState* mutable_robot_state();
  void set_allocated_robot_state(::Anki::Vector::external_interface::RobotState* robot_state);
  private:
  const ::Anki::Vector::external_interface::RobotState& _internal_robot_state() const;
  ::Anki::Vector::external_interface::RobotState* _internal_mutable_robot_state();
  public:
  void unsafe_arena_set_allocated_robot_state(
      ::Anki::Vector::external_interface::RobotState* robot_state);
  ::Anki::Vector::external_interface::RobotState* unsafe_arena_release_robot_state();

  // .Anki.Vector.external_interface.CubeBattery cube_battery = 11;
  bool has_cube_battery() const;
  private:
  bool _internal_has_cube_battery() const;
  public:
  void clear_cube_battery();
  const ::Anki::Vector::external_interface::CubeBattery& cube_battery() const;
  ::Anki::Vector::external_interface::CubeBattery* release_cube_battery();
  ::Anki::Vector::external_interface::CubeBattery* mutable_cube_battery();
  void set_allocated_cube_battery(::Anki::Vector::external_interface::CubeBattery* cube_battery);
  private:
  const ::Anki::Vector::external_interface::CubeBattery& _internal_cube_battery() const;
  ::Anki::Vector::external_interface::CubeBattery* _internal_mutable_cube_battery();
  public:
  void unsafe_arena_set_allocated_cube_battery(
      ::Anki::Vector::external_interface::CubeBattery* cube_battery);
  ::Anki::Vector::external_interface::CubeBattery* unsafe_arena_release_cube_battery();

  // .Anki.Vector.external_interface.KeepAlivePing keep_alive = 12;
  bool has_keep_alive() const;
  private:
  bool _internal_has_keep_alive() const;
  public:
  void clear_keep_alive();
  const ::Anki::Vector::external_interface::KeepAlivePing& keep_alive() const;
  ::Anki::Vector::external_interface::KeepAlivePing* release_keep_alive();
  ::Anki::Vector::external_interface::KeepAlivePing* mutable_keep_alive();
  void set_allocated_keep_alive(::Anki::Vector::external_interface::KeepAlivePing* keep_alive);
  private:
  const ::Anki::Vector::external_interface::KeepAlivePing& _internal_keep_alive() const;
  ::Anki::Vector::external_interface::KeepAlivePing* _internal_mutable_keep_alive();
  public:
  void unsafe_arena_set_allocated_keep_alive(
      ::Anki::Vector::external_interface::KeepAlivePing* keep_alive);
  ::Anki::Vector::external_interface::KeepAlivePing* unsafe_arena_release_keep_alive();

  // .Anki.Vector.external_interface.ConnectionResponse connection_response = 13;
  bool has_connection_response() const;
  private:
  bool _internal_has_connection_response() const;
  public:
  void clear_connection_response();
  const ::Anki::Vector::external_interface::ConnectionResponse& connection_response() const;
  ::Anki::Vector::external_interface::ConnectionResponse* release_connection_response();
  ::Anki::Vector::external_interface::ConnectionResponse* mutable_connection_response();
  void set_allocated_connection_response(::Anki::Vector::external_interface::ConnectionResponse* connection_response);
  private:
  const ::Anki::Vector::external_interface::ConnectionResponse& _internal_connection_response() const;
  ::Anki::Vector::external_interface::ConnectionResponse* _internal_mutable_connection_response();
  public:
  void unsafe_arena_set_allocated_connection_response(
      ::Anki::Vector::external_interface::ConnectionResponse* connection_response);
  ::Anki::Vector::external_interface::ConnectionResponse* unsafe_arena_release_connection_response();

  // .Anki.Vector.external_interface.JdocsChanged jdocs_changed = 14;
  bool has_jdocs_changed() const;
  private:
  bool _internal_has_jdocs_changed() const;
  public:
  void clear_jdocs_changed();
  const ::Anki::Vector::external_interface::JdocsChanged& jdocs_changed() const;
  ::Anki::Vector::external_interface::JdocsChanged* release_jdocs_changed();
  ::Anki::Vector::external_interface::JdocsChanged* mutable_jdocs_changed();
  void set_allocated_jdocs_changed(::Anki::Vector::external_interface::JdocsChanged* jdocs_changed);
  private:
  const ::Anki::Vector::external_interface::JdocsChanged& _internal_jdocs_changed() const;
  ::Anki::Vector::external_interface::JdocsChanged* _internal_mutable_jdocs_changed();
  public:
  void unsafe_arena_set_allocated_jdocs_changed(
      ::Anki::Vector::external_interface::JdocsChanged* jdocs_changed);
  ::Anki::Vector::external_interface::JdocsChanged* unsafe_arena_release_jdocs_changed();

  // .Anki.Vector.external_interface.AlexaAuthEvent alexa_auth_event = 15;
  bool has_alexa_auth_event() const;
  private:
  bool _internal_has_alexa_auth_event() const;
  public:
  void clear_alexa_auth_event();
  const ::Anki::Vector::external_interface::AlexaAuthEvent& alexa_auth_event() const;
  ::Anki::Vector::external_interface::AlexaAuthEvent* release_alexa_auth_event();
  ::Anki::Vector::external_interface::AlexaAuthEvent* mutable_alexa_auth_event();
  void set_allocated_alexa_auth_event(::Anki::Vector::external_interface::AlexaAuthEvent* alexa_auth_event);
  private:
  const ::Anki::Vector::external_interface::AlexaAuthEvent& _internal_alexa_auth_event() const;
  ::Anki::Vector::external_interface::AlexaAuthEvent* _internal_mutable_alexa_auth_event();
  public:
  void unsafe_arena_set_allocated_alexa_auth_event(
      ::Anki::Vector::external_interface::AlexaAuthEvent* alexa_auth_event);
  ::Anki::Vector::external_interface::AlexaAuthEvent* unsafe_arena_release_alexa_auth_event();

  // .Anki.Vector.external_interface.MirrorModeDisabled mirror_mode_disabled = 16;
  bool has_mirror_mode_disabled() const;
  private:
  bool _internal_has_mirror_mode_disabled() const;
  public:
  void clear_mirror_mode_disabled();
  const ::Anki::Vector::external_interface::MirrorModeDisabled& mirror_mode_disabled() const;
  ::Anki::Vector::external_interface::MirrorModeDisabled* release_mirror_mode_disabled();
  ::Anki::Vector::external_interface::MirrorModeDisabled* mutable_mirror_mode_disabled();
  void set_allocated_mirror_mode_disabled(::Anki::Vector::external_interface::MirrorModeDisabled* mirror_mode_disabled);
  private:
  const ::Anki::Vector::external_interface::MirrorModeDisabled& _internal_mirror_mode_disabled() const;
  ::Anki::Vector::external_interface::MirrorModeDisabled* _internal_mutable_mirror_mode_disabled();
  public:
  void unsafe_arena_set_allocated_mirror_mode_disabled(
      ::Anki::Vector::external_interface::MirrorModeDisabled* mirror_mode_disabled);
  ::Anki::Vector::external_interface::MirrorModeDisabled* unsafe_arena_release_mirror_mode_disabled();

  // .Anki.Vector.external_interface.VisionModesAutoDisabled vision_modes_auto_disabled = 17;
  bool has_vision_modes_auto_disabled() const;
  private:
  bool _internal_has_vision_modes_auto_disabled() const;
  public:
  void clear_vision_modes_auto_disabled();
  const ::Anki::Vector::external_interface::VisionModesAutoDisabled& vision_modes_auto_disabled() const;
  ::Anki::Vector::external_interface::VisionModesAutoDisabled* release_vision_modes_auto_disabled();
  ::Anki::Vector::external_interface::VisionModesAutoDisabled* mutable_vision_modes_auto_disabled();
  void set_allocated_vision_modes_auto_disabled(::Anki::Vector::external_interface::VisionModesAutoDisabled* vision_modes_auto_disabled);
  private:
  const ::Anki::Vector::external_interface::VisionModesAutoDisabled& _internal_vision_modes_auto_disabled() const;
  ::Anki::Vector::external_interface::VisionModesAutoDisabled* _internal_mutable_vision_modes_auto_disabled();
  public:
  void unsafe_arena_set_allocated_vision_modes_auto_disabled(
      ::Anki::Vector::external_interface::VisionModesAutoDisabled* vision_modes_auto_disabled);
  ::Anki::Vector::external_interface::VisionModesAutoDisabled* unsafe_arena_release_vision_modes_auto_disabled();

  // .Anki.Vector.external_interface.CheckUpdateStatusResponse check_update_status_response = 18;
  bool has_check_update_status_response() const;
  private:
  bool _internal_has_check_update_status_response() const;
  public:
  void clear_check_update_status_response();
  const ::Anki::Vector::external_interface::CheckUpdateStatusResponse& check_update_status_response() const;
  ::Anki::Vector::external_interface::CheckUpdateStatusResponse* release_check_update_status_response();
  ::Anki::Vector::external_interface::CheckUpdateStatusResponse* mutable_check_update_status_response();
  void set_allocated_check_update_status_response(::Anki::Vector::external_interface::CheckUpdateStatusResponse* check_update_status_response);
  private:
  const ::Anki::Vector::external_interface::CheckUpdateStatusResponse& _internal_check_update_status_response() const;
  ::Anki::Vector::external_interface::CheckUpdateStatusResponse* _internal_mutable_check_update_status_response();
  public:
  void unsafe_arena_set_allocated_check_update_status_response(
      ::Anki::Vector::external_interface::CheckUpdateStatusResponse* check_update_status_response);
  ::Anki::Vector::external_interface::CheckUpdateStatusResponse* unsafe_arena_release_check_update_status_response();

  // .Anki.Vector.external_interface.UserIntent user_intent = 19;
  bool has_user_intent() const;
  private:
  bool _internal_has_user_intent() const;
  public:
  void clear_user_intent();
  const ::Anki::Vector::external_interface::UserIntent& user_intent() const;
  ::Anki::Vector::external_interface::UserIntent* release_user_intent();
  ::Anki::Vector::external_interface::UserIntent* mutable_user_intent();
  void set_allocated_user_intent(::Anki::Vector::external_interface::UserIntent* user_intent);
  private:
  const ::Anki::Vector::external_interface::UserIntent& _internal_user_intent() const;
  ::Anki::Vector::external_interface::UserIntent* _internal_mutable_user_intent();
  public:
  void unsafe_arena_set_allocated_user_intent(
      ::Anki::Vector::external_interface::UserIntent* user_intent);
  ::Anki::Vector::external_interface::UserIntent* unsafe_arena_release_user_intent();

  // .Anki.Vector.external_interface.RobotObservedMotion robot_observed_motion = 20;
  bool has_robot_observed_motion() const;
  private:
  bool _internal_has_robot_observed_motion() const;
  public:
  void clear_robot_observed_motion();
  const ::Anki::Vector::external_interface::RobotObservedMotion& robot_observed_motion() const;
  ::Anki::Vector::external_interface::RobotObservedMotion* release_robot_observed_motion();
  ::Anki::Vector::external_interface::RobotObservedMotion* mutable_robot_observed_motion();
  void set_allocated_robot_observed_motion(::Anki::Vector::external_interface::RobotObservedMotion* robot_observed_motion);
  private:
  const ::Anki::Vector::external_interface::RobotObservedMotion& _internal_robot_observed_motion() const;
  ::Anki::Vector::external_interface::RobotObservedMotion* _internal_mutable_robot_observed_motion();
  public:
  void unsafe_arena_set_allocated_robot_observed_motion(
      ::Anki::Vector::external_interface::RobotObservedMotion* robot_observed_motion);
  ::Anki::Vector::external_interface::RobotObservedMotion* unsafe_arena_release_robot_observed_motion();

  // .Anki.Vector.external_interface.RobotErasedEnrolledFace robot_erased_enrolled_face = 21;
  bool has_robot_erased_enrolled_face() const;
  private:
  bool _internal_has_robot_erased_enrolled_face() const;
  public:
  void clear_robot_erased_enrolled_face();
  const ::Anki::Vector::external_interface::RobotErasedEnrolledFace& robot_erased_enrolled_face() const;
  ::Anki::Vector::external_interface::RobotErasedEnrolledFace* release_robot_erased_enrolled_face();
  ::Anki::Vector::external_interface::RobotErasedEnrolledFace* mutable_robot_erased_enrolled_face();
  void set_allocated_robot_erased_enrolled_face(::Anki::Vector::external_interface::RobotErasedEnrolledFace* robot_erased_enrolled_face);
  private:
  const ::Anki::Vector::external_interface::RobotErasedEnrolledFace& _internal_robot_erased_enrolled_face() const;
  ::Anki::Vector::external_interface::RobotErasedEnrolledFace* _internal_mutable_robot_erased_enrolled_face();
  public:
  void unsafe_arena_set_allocated_robot_erased_enrolled_face(
      ::Anki::Vector::external_interface::RobotErasedEnrolledFace* robot_erased_enrolled_face);
  ::Anki::Vector::external_interface::RobotErasedEnrolledFace* unsafe_arena_release_robot_erased_enrolled_face();

  // .Anki.Vector.external_interface.RobotRenamedEnrolledFace robot_renamed_enrolled_face = 22;
  bool has_robot_renamed_enrolled_face() const;
  private:
  bool _internal_has_robot_renamed_enrolled_face() const;
  public:
  void clear_robot_renamed_enrolled_face();
  const ::Anki::Vector::external_interface::RobotRenamedEnrolledFace& robot_renamed_enrolled_face() const;
  ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* release_robot_renamed_enrolled_face();
  ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* mutable_robot_renamed_enrolled_face();
  void set_allocated_robot_renamed_enrolled_face(::Anki::Vector::external_interface::RobotRenamedEnrolledFace* robot_renamed_enrolled_face);
  private:
  const ::Anki::Vector::external_interface::RobotRenamedEnrolledFace& _internal_robot_renamed_enrolled_face() const;
  ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* _internal_mutable_robot_renamed_enrolled_face();
  public:
  void unsafe_arena_set_allocated_robot_renamed_enrolled_face(
      ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* robot_renamed_enrolled_face);
  ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* unsafe_arena_release_robot_renamed_enrolled_face();

  // .Anki.Vector.external_interface.CameraSettingsUpdate camera_settings_update = 23;
  bool has_camera_settings_update() const;
  private:
  bool _internal_has_camera_settings_update() const;
  public:
  void clear_camera_settings_update();
  const ::Anki::Vector::external_interface::CameraSettingsUpdate& camera_settings_update() const;
  ::Anki::Vector::external_interface::CameraSettingsUpdate* release_camera_settings_update();
  ::Anki::Vector::external_interface::CameraSettingsUpdate* mutable_camera_settings_update();
  void set_allocated_camera_settings_update(::Anki::Vector::external_interface::CameraSettingsUpdate* camera_settings_update);
  private:
  const ::Anki::Vector::external_interface::CameraSettingsUpdate& _internal_camera_settings_update() const;
  ::Anki::Vector::external_interface::CameraSettingsUpdate* _internal_mutable_camera_settings_update();
  public:
  void unsafe_arena_set_allocated_camera_settings_update(
      ::Anki::Vector::external_interface::CameraSettingsUpdate* camera_settings_update);
  ::Anki::Vector::external_interface::CameraSettingsUpdate* unsafe_arena_release_camera_settings_update();

  // .Anki.Vector.external_interface.UnexpectedMovement unexpected_movement = 24;
  bool has_unexpected_movement() const;
  private:
  bool _internal_has_unexpected_movement() const;
  public:
  void clear_unexpected_movement();
  const ::Anki::Vector::external_interface::UnexpectedMovement& unexpected_movement() const;
  ::Anki::Vector::external_interface::UnexpectedMovement* release_unexpected_movement();
  ::Anki::Vector::external_interface::UnexpectedMovement* mutable_unexpected_movement();
  void set_allocated_unexpected_movement(::Anki::Vector::external_interface::UnexpectedMovement* unexpected_movement);
  private:
  const ::Anki::Vector::external_interface::UnexpectedMovement& _internal_unexpected_movement() const;
  ::Anki::Vector::external_interface::UnexpectedMovement* _internal_mutable_unexpected_movement();
  public:
  void unsafe_arena_set_allocated_unexpected_movement(
      ::Anki::Vector::external_interface::UnexpectedMovement* unexpected_movement);
  ::Anki::Vector::external_interface::UnexpectedMovement* unsafe_arena_release_unexpected_movement();

  void clear_event_type();
  EventTypeCase event_type_case() const;
  
  // Begin code inserted by Anki plugin.
  explicit Event( TimeStampedStatus* time_stamped_status );
  explicit Event( Onboarding* onboarding );
  explicit Event( WakeWord* wake_word );
  explicit Event( AttentionTransfer* attention_transfer );
  explicit Event( RobotObservedFace* robot_observed_face );
  explicit Event( RobotChangedObservedFaceID* robot_changed_observed_face_id );
  explicit Event( ObjectEvent* object_event );
  explicit Event( StimulationInfo* stimulation_info );
  explicit Event( PhotoTaken* photo_taken );
  explicit Event( RobotState* robot_state );
  explicit Event( CubeBattery* cube_battery );
  explicit Event( KeepAlivePing* keep_alive );
  explicit Event( ConnectionResponse* connection_response );
  explicit Event( JdocsChanged* jdocs_changed );
  explicit Event( AlexaAuthEvent* alexa_auth_event );
  explicit Event( MirrorModeDisabled* mirror_mode_disabled );
  explicit Event( VisionModesAutoDisabled* vision_modes_auto_disabled );
  explicit Event( CheckUpdateStatusResponse* check_update_status_response );
  explicit Event( UserIntent* user_intent );
  explicit Event( RobotObservedMotion* robot_observed_motion );
  explicit Event( RobotErasedEnrolledFace* robot_erased_enrolled_face );
  explicit Event( RobotRenamedEnrolledFace* robot_renamed_enrolled_face );
  explicit Event( CameraSettingsUpdate* camera_settings_update );
  explicit Event( UnexpectedMovement* unexpected_movement );
  // End code inserted by Anki plugin.
  
  
  // Begin code inserted by Anki plugin.
  inline ::Anki::Vector::external_interface::EventTag GetTag() const {
    return static_cast<::Anki::Vector::external_interface::EventTag>( _oneof_case_[0] );
  }
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.Event)
 private:
  class _Internal;
  void set_has_time_stamped_status();
  void set_has_onboarding();
  void set_has_wake_word();
  void set_has_attention_transfer();
  void set_has_robot_observed_face();
  void set_has_robot_changed_observed_face_id();
  void set_has_object_event();
  void set_has_stimulation_info();
  void set_has_photo_taken();
  void set_has_robot_state();
  void set_has_cube_battery();
  void set_has_keep_alive();
  void set_has_connection_response();
  void set_has_jdocs_changed();
  void set_has_alexa_auth_event();
  void set_has_mirror_mode_disabled();
  void set_has_vision_modes_auto_disabled();
  void set_has_check_update_status_response();
  void set_has_user_intent();
  void set_has_robot_observed_motion();
  void set_has_robot_erased_enrolled_face();
  void set_has_robot_renamed_enrolled_face();
  void set_has_camera_settings_update();
  void set_has_unexpected_movement();

  inline bool has_event_type() const;
  inline void clear_has_event_type();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  union EventTypeUnion {
    EventTypeUnion() {}
    ::Anki::Vector::external_interface::TimeStampedStatus* time_stamped_status_;
    ::Anki::Vector::external_interface::Onboarding* onboarding_;
    ::Anki::Vector::external_interface::WakeWord* wake_word_;
    ::Anki::Vector::external_interface::AttentionTransfer* attention_transfer_;
    ::Anki::Vector::external_interface::RobotObservedFace* robot_observed_face_;
    ::Anki::Vector::external_interface::RobotChangedObservedFaceID* robot_changed_observed_face_id_;
    ::Anki::Vector::external_interface::ObjectEvent* object_event_;
    ::Anki::Vector::external_interface::StimulationInfo* stimulation_info_;
    ::Anki::Vector::external_interface::PhotoTaken* photo_taken_;
    ::Anki::Vector::external_interface::RobotState* robot_state_;
    ::Anki::Vector::external_interface::CubeBattery* cube_battery_;
    ::Anki::Vector::external_interface::KeepAlivePing* keep_alive_;
    ::Anki::Vector::external_interface::ConnectionResponse* connection_response_;
    ::Anki::Vector::external_interface::JdocsChanged* jdocs_changed_;
    ::Anki::Vector::external_interface::AlexaAuthEvent* alexa_auth_event_;
    ::Anki::Vector::external_interface::MirrorModeDisabled* mirror_mode_disabled_;
    ::Anki::Vector::external_interface::VisionModesAutoDisabled* vision_modes_auto_disabled_;
    ::Anki::Vector::external_interface::CheckUpdateStatusResponse* check_update_status_response_;
    ::Anki::Vector::external_interface::UserIntent* user_intent_;
    ::Anki::Vector::external_interface::RobotObservedMotion* robot_observed_motion_;
    ::Anki::Vector::external_interface::RobotErasedEnrolledFace* robot_erased_enrolled_face_;
    ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* robot_renamed_enrolled_face_;
    ::Anki::Vector::external_interface::CameraSettingsUpdate* camera_settings_update_;
    ::Anki::Vector::external_interface::UnexpectedMovement* unexpected_movement_;
  } event_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_shared_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline FilterList& operator=(const FilterList& from) {
    CopyFrom(from);
    return *this;
  }
  inline FilterList& operator=(FilterList&& 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 FilterList& default_instance();

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

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

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

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

  FilterList* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<FilterList>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const FilterList& from);
  void MergeFrom(const FilterList& 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(FilterList* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.FilterList";
  }
  protected:
  explicit FilterList(::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_shared_2eproto);
    return ::descriptor_table_shared_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kListFieldNumber = 1,
  };
  // repeated string list = 1;
  int list_size() const;
  private:
  int _internal_list_size() const;
  public:
  void clear_list();
  const std::string& list(int index) const;
  std::string* mutable_list(int index);
  void set_list(int index, const std::string& value);
  void set_list(int index, std::string&& value);
  void set_list(int index, const char* value);
  void set_list(int index, const char* value, size_t size);
  std::string* add_list();
  void add_list(const std::string& value);
  void add_list(std::string&& value);
  void add_list(const char* value);
  void add_list(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& list() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_list();
  private:
  const std::string& _internal_list(int index) const;
  std::string* _internal_add_list();
  public:

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

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> list_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_shared_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline EventRequest& operator=(const EventRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline EventRequest& operator=(EventRequest&& 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 EventRequest& default_instance();

  enum ListTypeCase {
    kWhiteList = 1,
    kBlackList = 2,
    LIST_TYPE_NOT_SET = 0,
  };

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

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

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

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

  EventRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<EventRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const EventRequest& from);
  void MergeFrom(const EventRequest& 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(EventRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.EventRequest";
  }
  protected:
  explicit EventRequest(::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_shared_2eproto);
    return ::descriptor_table_shared_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kConnectionIdFieldNumber = 3,
    kWhiteListFieldNumber = 1,
    kBlackListFieldNumber = 2,
  };
  // string connection_id = 3;
  void clear_connection_id();
  const std::string& connection_id() const;
  void set_connection_id(const std::string& value);
  void set_connection_id(std::string&& value);
  void set_connection_id(const char* value);
  void set_connection_id(const char* value, size_t size);
  std::string* mutable_connection_id();
  std::string* release_connection_id();
  void set_allocated_connection_id(std::string* connection_id);
  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_connection_id();
  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_connection_id(
      std::string* connection_id);
  private:
  const std::string& _internal_connection_id() const;
  void _internal_set_connection_id(const std::string& value);
  std::string* _internal_mutable_connection_id();
  public:

  // .Anki.Vector.external_interface.FilterList white_list = 1;
  bool has_white_list() const;
  private:
  bool _internal_has_white_list() const;
  public:
  void clear_white_list();
  const ::Anki::Vector::external_interface::FilterList& white_list() const;
  ::Anki::Vector::external_interface::FilterList* release_white_list();
  ::Anki::Vector::external_interface::FilterList* mutable_white_list();
  void set_allocated_white_list(::Anki::Vector::external_interface::FilterList* white_list);
  private:
  const ::Anki::Vector::external_interface::FilterList& _internal_white_list() const;
  ::Anki::Vector::external_interface::FilterList* _internal_mutable_white_list();
  public:
  void unsafe_arena_set_allocated_white_list(
      ::Anki::Vector::external_interface::FilterList* white_list);
  ::Anki::Vector::external_interface::FilterList* unsafe_arena_release_white_list();

  // .Anki.Vector.external_interface.FilterList black_list = 2;
  bool has_black_list() const;
  private:
  bool _internal_has_black_list() const;
  public:
  void clear_black_list();
  const ::Anki::Vector::external_interface::FilterList& black_list() const;
  ::Anki::Vector::external_interface::FilterList* release_black_list();
  ::Anki::Vector::external_interface::FilterList* mutable_black_list();
  void set_allocated_black_list(::Anki::Vector::external_interface::FilterList* black_list);
  private:
  const ::Anki::Vector::external_interface::FilterList& _internal_black_list() const;
  ::Anki::Vector::external_interface::FilterList* _internal_mutable_black_list();
  public:
  void unsafe_arena_set_allocated_black_list(
      ::Anki::Vector::external_interface::FilterList* black_list);
  ::Anki::Vector::external_interface::FilterList* unsafe_arena_release_black_list();

  void clear_list_type();
  ListTypeCase list_type_case() const;
  
  // Begin code inserted by Anki plugin.
  inline ::Anki::Vector::external_interface::EventRequestTag GetTag() const {
    return static_cast<::Anki::Vector::external_interface::EventRequestTag>( _oneof_case_[0] );
  }
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EventRequest)
 private:
  class _Internal;
  void set_has_white_list();
  void set_has_black_list();

  inline bool has_list_type() const;
  inline void clear_has_list_type();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr connection_id_;
  union ListTypeUnion {
    ListTypeUnion() {}
    ::Anki::Vector::external_interface::FilterList* white_list_;
    ::Anki::Vector::external_interface::FilterList* black_list_;
  } list_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_shared_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline EventResponse& operator=(const EventResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline EventResponse& operator=(EventResponse&& 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 EventResponse& default_instance();

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

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

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

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

  EventResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<EventResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const EventResponse& from);
  void MergeFrom(const EventResponse& 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(EventResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.EventResponse";
  }
  protected:
  explicit EventResponse(::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_shared_2eproto);
    return ::descriptor_table_shared_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kStatusFieldNumber = 1,
    kEventFieldNumber = 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.Event event = 2;
  bool has_event() const;
  private:
  bool _internal_has_event() const;
  public:
  void clear_event();
  const ::Anki::Vector::external_interface::Event& event() const;
  ::Anki::Vector::external_interface::Event* release_event();
  ::Anki::Vector::external_interface::Event* mutable_event();
  void set_allocated_event(::Anki::Vector::external_interface::Event* event);
  private:
  const ::Anki::Vector::external_interface::Event& _internal_event() const;
  ::Anki::Vector::external_interface::Event* _internal_mutable_event();
  public:
  void unsafe_arena_set_allocated_event(
      ::Anki::Vector::external_interface::Event* event);
  ::Anki::Vector::external_interface::Event* unsafe_arena_release_event();

  
  // Begin code inserted by Anki plugin.
  EventResponse( ResponseStatus* status, Event* event );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EventResponse)
 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::Event* event_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_shared_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline UserAuthenticationRequest& operator=(const UserAuthenticationRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserAuthenticationRequest& operator=(UserAuthenticationRequest&& 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 UserAuthenticationRequest& default_instance();

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

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

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

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

  UserAuthenticationRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UserAuthenticationRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UserAuthenticationRequest& from);
  void MergeFrom(const UserAuthenticationRequest& 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(UserAuthenticationRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.UserAuthenticationRequest";
  }
  protected:
  explicit UserAuthenticationRequest(::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_shared_2eproto);
    return ::descriptor_table_shared_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kUserSessionIdFieldNumber = 1,
    kClientNameFieldNumber = 2,
  };
  // bytes user_session_id = 1;
  void clear_user_session_id();
  const std::string& user_session_id() const;
  void set_user_session_id(const std::string& value);
  void set_user_session_id(std::string&& value);
  void set_user_session_id(const char* value);
  void set_user_session_id(const void* value, size_t size);
  std::string* mutable_user_session_id();
  std::string* release_user_session_id();
  void set_allocated_user_session_id(std::string* user_session_id);
  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_user_session_id();
  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_user_session_id(
      std::string* user_session_id);
  private:
  const std::string& _internal_user_session_id() const;
  void _internal_set_user_session_id(const std::string& value);
  std::string* _internal_mutable_user_session_id();
  public:

  // bytes client_name = 2;
  void clear_client_name();
  const std::string& client_name() const;
  void set_client_name(const std::string& value);
  void set_client_name(std::string&& value);
  void set_client_name(const char* value);
  void set_client_name(const void* value, size_t size);
  std::string* mutable_client_name();
  std::string* release_client_name();
  void set_allocated_client_name(std::string* client_name);
  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_name();
  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_name(
      std::string* client_name);
  private:
  const std::string& _internal_client_name() const;
  void _internal_set_client_name(const std::string& value);
  std::string* _internal_mutable_client_name();
  public:

  
  // Begin code inserted by Anki plugin.
  UserAuthenticationRequest( const std::string& user_session_id, const std::string& client_name );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UserAuthenticationRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr user_session_id_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr client_name_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_shared_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline UserAuthenticationResponse& operator=(const UserAuthenticationResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserAuthenticationResponse& operator=(UserAuthenticationResponse&& 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 UserAuthenticationResponse& default_instance();

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

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

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

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

  UserAuthenticationResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UserAuthenticationResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UserAuthenticationResponse& from);
  void MergeFrom(const UserAuthenticationResponse& 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(UserAuthenticationResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.UserAuthenticationResponse";
  }
  protected:
  explicit UserAuthenticationResponse(::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_shared_2eproto);
    return ::descriptor_table_shared_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

  typedef UserAuthenticationResponse_Code Code;
  static constexpr Code UNAUTHORIZED =
    UserAuthenticationResponse_Code_UNAUTHORIZED;
  static constexpr Code AUTHORIZED =
    UserAuthenticationResponse_Code_AUTHORIZED;
  static inline bool Code_IsValid(int value) {
    return UserAuthenticationResponse_Code_IsValid(value);
  }
  static constexpr Code Code_MIN =
    UserAuthenticationResponse_Code_Code_MIN;
  static constexpr Code Code_MAX =
    UserAuthenticationResponse_Code_Code_MAX;
  static constexpr int Code_ARRAYSIZE =
    UserAuthenticationResponse_Code_Code_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  Code_descriptor() {
    return UserAuthenticationResponse_Code_descriptor();
  }
  template<typename T>
  static inline const std::string& Code_Name(T enum_t_value) {
    static_assert(::std::is_same<T, Code>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function Code_Name.");
    return UserAuthenticationResponse_Code_Name(enum_t_value);
  }
  static inline bool Code_Parse(const std::string& name,
      Code* value) {
    return UserAuthenticationResponse_Code_Parse(name, value);
  }

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

  enum : int {
    kClientTokenGuidFieldNumber = 3,
    kStatusFieldNumber = 1,
    kCodeFieldNumber = 2,
  };
  // bytes client_token_guid = 3;
  void clear_client_token_guid();
  const std::string& client_token_guid() const;
  void set_client_token_guid(const std::string& value);
  void set_client_token_guid(std::string&& value);
  void set_client_token_guid(const char* value);
  void set_client_token_guid(const void* value, size_t size);
  std::string* mutable_client_token_guid();
  std::string* release_client_token_guid();
  void set_allocated_client_token_guid(std::string* client_token_guid);
  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_token_guid();
  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_token_guid(
      std::string* client_token_guid);
  private:
  const std::string& _internal_client_token_guid() const;
  void _internal_set_client_token_guid(const std::string& value);
  std::string* _internal_mutable_client_token_guid();
  public:

  // .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.UserAuthenticationResponse.Code code = 2;
  void clear_code();
  ::Anki::Vector::external_interface::UserAuthenticationResponse_Code code() const;
  void set_code(::Anki::Vector::external_interface::UserAuthenticationResponse_Code value);
  private:
  ::Anki::Vector::external_interface::UserAuthenticationResponse_Code _internal_code() const;
  void _internal_set_code(::Anki::Vector::external_interface::UserAuthenticationResponse_Code value);
  public:

  
  // Begin code inserted by Anki plugin.
  UserAuthenticationResponse( ResponseStatus* status, ::Anki::Vector::external_interface::UserAuthenticationResponse::Code code, const std::string& client_token_guid );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UserAuthenticationResponse)
 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_token_guid_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  int code_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_shared_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline GatewayWrapper& operator=(const GatewayWrapper& from) {
    CopyFrom(from);
    return *this;
  }
  inline GatewayWrapper& operator=(GatewayWrapper&& 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 GatewayWrapper& default_instance();

  enum OneofMessageTypeCase {
    kEvent = 2,
    kOnboardingStateRequest = 3,
    kOnboardingState = 4,
    kOnboardingSkipOnboarding = 5,
    kOnboardingRestart = 6,
    kOnboardingCompleteRequest = 11,
    kOnboardingCompleteResponse = 12,
    kOnboardingWakeUpRequest = 13,
    kOnboardingWakeUpResponse = 14,
    kOnboardingWakeUpStartedRequest = 15,
    kOnboardingWakeUpStartedResponse = 16,
    kOnboardingSetPhaseRequest = 17,
    kOnboardingSetPhaseResponse = 18,
    kOnboardingPhaseProgressRequest = 19,
    kOnboardingPhaseProgressResponse = 20,
    kOnboardingChargeInfoRequest = 21,
    kOnboardingChargeInfoResponse = 22,
    kOnboardingMarkCompleteAndExit = 23,
    kLatestAttentionTransferRequest = 100,
    kLatestAttentionTransfer = 101,
    kPhotosInfoRequest = 200,
    kPhotosInfoResponse = 201,
    kPhotoRequest = 202,
    kPhotoPathMessage = 203,
    kThumbnailRequest = 204,
    kThumbnailPathMessage = 205,
    kDeletePhotoRequest = 206,
    kDeletePhotoResponse = 207,
    kPullJdocsRequest = 300,
    kPullJdocsResponse = 301,
    kUpdateSettingsRequest = 302,
    kUpdateSettingsResponse = 303,
    kUpdateAccountSettingsRequest = 304,
    kUpdateAccountSettingsResponse = 305,
    kUpdateUserEntitlementsRequest = 306,
    kUpdateUserEntitlementsResponse = 307,
    kDriveOffChargerRequest = 400,
    kDriveOffChargerResponse = 401,
    kDriveOnChargerRequest = 402,
    kDriveOnChargerResponse = 403,
    kFindFacesRequest = 404,
    kFindFacesResponse = 405,
    kLookAroundInPlaceRequest = 406,
    kLookAroundInPlaceResponse = 407,
    kRollBlockRequest = 408,
    kRollBlockResponse = 409,
    kEnrollFaceRequest = 410,
    kEnrollFaceResponse = 411,
    kSetFaceToEnrollRequest = 412,
    kSetFaceToEnrollResponse = 413,
    kCancelBehaviorRequest = 414,
    kCancelBehaviorResponse = 415,
    kTurnInPlaceRequest = 500,
    kTurnInPlaceResponse = 501,
    kDriveStraightRequest = 502,
    kDriveStraightResponse = 503,
    kSetHeadAngleRequest = 504,
    kSetHeadAngleResponse = 505,
    kSetLiftHeightRequest = 506,
    kSetLiftHeightResponse = 507,
    kPlayAnimationRequest = 508,
    kPlayAnimationResponse = 509,
    kGoToPoseRequest = 510,
    kGoToPoseResponse = 511,
    kDockWithCubeRequest = 512,
    kDockWithCubeResponse = 513,
    kDriveWheelsRequest = 514,
    kDriveWheelsResponse = 515,
    kListAnimationsRequest = 516,
    kListAnimationsResponse = 517,
    kPlayAnimationTriggerRequest = 518,
    kListAnimationTriggersRequest = 519,
    kListAnimationTriggersResponse = 520,
    kCancelActionByIdTagRequest = 521,
    kCancelActionByIdTagResponse = 522,
    kTurnTowardsFaceRequest = 523,
    kTurnTowardsFaceResponse = 524,
    kGoToObjectRequest = 525,
    kGoToObjectResponse = 526,
    kRollObjectRequest = 527,
    kRollObjectResponse = 528,
    kPopAWheelieRequest = 529,
    kPopAWheelieResponse = 530,
    kPickupObjectRequest = 531,
    kPickupObjectResponse = 532,
    kPlaceObjectOnGroundHereRequest = 533,
    kPlaceObjectOnGroundHereResponse = 534,
    kStopAllMotorsRequest = 535,
    kStopAllMotorsResponse = 536,
    kRobotHistoryRequest = 600,
    kRobotHistoryResponse = 601,
    kConnectCubeRequest = 700,
    kConnectCubeResponse = 701,
    kDisconnectCubeRequest = 702,
    kFlashCubeLightsRequest = 703,
    kForgetPreferredCubeRequest = 704,
    kSetPreferredCubeRequest = 705,
    kSetCubeLightsRequest = 706,
    kCubesAvailableRequest = 707,
    kCubesAvailableResponse = 708,
    kBatteryStateRequest = 800,
    kBatteryStateResponse = 801,
    kVersionStateRequest = 802,
    kVersionStateResponse = 803,
    kSayTextRequest = 900,
    kSayTextResponse = 901,
    kControlRequest = 1000,
    kControlRelease = 1001,
    kBehaviorControlResponse = 1002,
    kImageChunk = 1101,
    kEnableMarkerDetectionRequest = 1102,
    kEnableMarkerDetectionResponse = 1103,
    kEnableFaceDetectionRequest = 1104,
    kEnableFaceDetectionResponse = 1105,
    kEnableMotionDetectionRequest = 1106,
    kEnableMotionDetectionResponse = 1107,
    kEnableMirrorModeRequest = 1108,
    kEnableMirrorModeResponse = 1109,
    kEnableImageStreamingRequest = 1110,
    kEnableImageStreamingResponse = 1111,
    kIsImageStreamingEnabledRequest = 1112,
    kIsImageStreamingEnabledResponse = 1113,
    kCheckCloudRequest = 1200,
    kCheckCloudResponse = 1201,
    kAudioSendModeRequest = 1300,
    kAudioSendModeChanged = 1301,
    kAudioChunk = 1302,
    kFeatureFlagRequest = 1400,
    kFeatureFlagResponse = 1401,
    kFeatureFlagListRequest = 1402,
    kFeatureFlagListResponse = 1403,
    kAppDisconnected = 1500,
    kAlexaAuthStateRequest = 1600,
    kAlexaAuthStateResponse = 1601,
    kAlexaOptInRequest = 1602,
    kAlexaOptInResponse = 1603,
    kSetEyeColorRequest = 1700,
    kSetEyeColorResponse = 1701,
    kMasterVolumeRequest = 1702,
    kMasterVolumeResponse = 1703,
    kSetCameraSettingsRequest = 1704,
    kSetCameraSettingsResponse = 1705,
    kCameraConfigRequest = 1706,
    kCameraConfigResponse = 1707,
    kExternalAudioStreamPrepare = 1800,
    kExternalAudioStreamChunk = 1801,
    kExternalAudioStreamCancel = 1802,
    kExternalAudioStreamComplete = 1803,
    kExternalAudioStreamResponse = 1804,
    ONEOF_MESSAGE_TYPE_NOT_SET = 0,
  };

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

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

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

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

  GatewayWrapper* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<GatewayWrapper>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const GatewayWrapper& from);
  void MergeFrom(const GatewayWrapper& 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(GatewayWrapper* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.GatewayWrapper";
  }
  protected:
  explicit GatewayWrapper(::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_shared_2eproto);
    return ::descriptor_table_shared_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kConnectionIdFieldNumber = 1,
    kEventFieldNumber = 2,
    kOnboardingStateRequestFieldNumber = 3,
    kOnboardingStateFieldNumber = 4,
    kOnboardingSkipOnboardingFieldNumber = 5,
    kOnboardingRestartFieldNumber = 6,
    kOnboardingCompleteRequestFieldNumber = 11,
    kOnboardingCompleteResponseFieldNumber = 12,
    kOnboardingWakeUpRequestFieldNumber = 13,
    kOnboardingWakeUpResponseFieldNumber = 14,
    kOnboardingWakeUpStartedRequestFieldNumber = 15,
    kOnboardingWakeUpStartedResponseFieldNumber = 16,
    kOnboardingSetPhaseRequestFieldNumber = 17,
    kOnboardingSetPhaseResponseFieldNumber = 18,
    kOnboardingPhaseProgressRequestFieldNumber = 19,
    kOnboardingPhaseProgressResponseFieldNumber = 20,
    kOnboardingChargeInfoRequestFieldNumber = 21,
    kOnboardingChargeInfoResponseFieldNumber = 22,
    kOnboardingMarkCompleteAndExitFieldNumber = 23,
    kLatestAttentionTransferRequestFieldNumber = 100,
    kLatestAttentionTransferFieldNumber = 101,
    kPhotosInfoRequestFieldNumber = 200,
    kPhotosInfoResponseFieldNumber = 201,
    kPhotoRequestFieldNumber = 202,
    kPhotoPathMessageFieldNumber = 203,
    kThumbnailRequestFieldNumber = 204,
    kThumbnailPathMessageFieldNumber = 205,
    kDeletePhotoRequestFieldNumber = 206,
    kDeletePhotoResponseFieldNumber = 207,
    kPullJdocsRequestFieldNumber = 300,
    kPullJdocsResponseFieldNumber = 301,
    kUpdateSettingsRequestFieldNumber = 302,
    kUpdateSettingsResponseFieldNumber = 303,
    kUpdateAccountSettingsRequestFieldNumber = 304,
    kUpdateAccountSettingsResponseFieldNumber = 305,
    kUpdateUserEntitlementsRequestFieldNumber = 306,
    kUpdateUserEntitlementsResponseFieldNumber = 307,
    kDriveOffChargerRequestFieldNumber = 400,
    kDriveOffChargerResponseFieldNumber = 401,
    kDriveOnChargerRequestFieldNumber = 402,
    kDriveOnChargerResponseFieldNumber = 403,
    kFindFacesRequestFieldNumber = 404,
    kFindFacesResponseFieldNumber = 405,
    kLookAroundInPlaceRequestFieldNumber = 406,
    kLookAroundInPlaceResponseFieldNumber = 407,
    kRollBlockRequestFieldNumber = 408,
    kRollBlockResponseFieldNumber = 409,
    kEnrollFaceRequestFieldNumber = 410,
    kEnrollFaceResponseFieldNumber = 411,
    kSetFaceToEnrollRequestFieldNumber = 412,
    kSetFaceToEnrollResponseFieldNumber = 413,
    kCancelBehaviorRequestFieldNumber = 414,
    kCancelBehaviorResponseFieldNumber = 415,
    kTurnInPlaceRequestFieldNumber = 500,
    kTurnInPlaceResponseFieldNumber = 501,
    kDriveStraightRequestFieldNumber = 502,
    kDriveStraightResponseFieldNumber = 503,
    kSetHeadAngleRequestFieldNumber = 504,
    kSetHeadAngleResponseFieldNumber = 505,
    kSetLiftHeightRequestFieldNumber = 506,
    kSetLiftHeightResponseFieldNumber = 507,
    kPlayAnimationRequestFieldNumber = 508,
    kPlayAnimationResponseFieldNumber = 509,
    kGoToPoseRequestFieldNumber = 510,
    kGoToPoseResponseFieldNumber = 511,
    kDockWithCubeRequestFieldNumber = 512,
    kDockWithCubeResponseFieldNumber = 513,
    kDriveWheelsRequestFieldNumber = 514,
    kDriveWheelsResponseFieldNumber = 515,
    kListAnimationsRequestFieldNumber = 516,
    kListAnimationsResponseFieldNumber = 517,
    kPlayAnimationTriggerRequestFieldNumber = 518,
    kListAnimationTriggersRequestFieldNumber = 519,
    kListAnimationTriggersResponseFieldNumber = 520,
    kCancelActionByIdTagRequestFieldNumber = 521,
    kCancelActionByIdTagResponseFieldNumber = 522,
    kTurnTowardsFaceRequestFieldNumber = 523,
    kTurnTowardsFaceResponseFieldNumber = 524,
    kGoToObjectRequestFieldNumber = 525,
    kGoToObjectResponseFieldNumber = 526,
    kRollObjectRequestFieldNumber = 527,
    kRollObjectResponseFieldNumber = 528,
    kPopAWheelieRequestFieldNumber = 529,
    kPopAWheelieResponseFieldNumber = 530,
    kPickupObjectRequestFieldNumber = 531,
    kPickupObjectResponseFieldNumber = 532,
    kPlaceObjectOnGroundHereRequestFieldNumber = 533,
    kPlaceObjectOnGroundHereResponseFieldNumber = 534,
    kStopAllMotorsRequestFieldNumber = 535,
    kStopAllMotorsResponseFieldNumber = 536,
    kRobotHistoryRequestFieldNumber = 600,
    kRobotHistoryResponseFieldNumber = 601,
    kConnectCubeRequestFieldNumber = 700,
    kConnectCubeResponseFieldNumber = 701,
    kDisconnectCubeRequestFieldNumber = 702,
    kFlashCubeLightsRequestFieldNumber = 703,
    kForgetPreferredCubeRequestFieldNumber = 704,
    kSetPreferredCubeRequestFieldNumber = 705,
    kSetCubeLightsRequestFieldNumber = 706,
    kCubesAvailableRequestFieldNumber = 707,
    kCubesAvailableResponseFieldNumber = 708,
    kBatteryStateRequestFieldNumber = 800,
    kBatteryStateResponseFieldNumber = 801,
    kVersionStateRequestFieldNumber = 802,
    kVersionStateResponseFieldNumber = 803,
    kSayTextRequestFieldNumber = 900,
    kSayTextResponseFieldNumber = 901,
    kControlRequestFieldNumber = 1000,
    kControlReleaseFieldNumber = 1001,
    kBehaviorControlResponseFieldNumber = 1002,
    kImageChunkFieldNumber = 1101,
    kEnableMarkerDetectionRequestFieldNumber = 1102,
    kEnableMarkerDetectionResponseFieldNumber = 1103,
    kEnableFaceDetectionRequestFieldNumber = 1104,
    kEnableFaceDetectionResponseFieldNumber = 1105,
    kEnableMotionDetectionRequestFieldNumber = 1106,
    kEnableMotionDetectionResponseFieldNumber = 1107,
    kEnableMirrorModeRequestFieldNumber = 1108,
    kEnableMirrorModeResponseFieldNumber = 1109,
    kEnableImageStreamingRequestFieldNumber = 1110,
    kEnableImageStreamingResponseFieldNumber = 1111,
    kIsImageStreamingEnabledRequestFieldNumber = 1112,
    kIsImageStreamingEnabledResponseFieldNumber = 1113,
    kCheckCloudRequestFieldNumber = 1200,
    kCheckCloudResponseFieldNumber = 1201,
    kAudioSendModeRequestFieldNumber = 1300,
    kAudioSendModeChangedFieldNumber = 1301,
    kAudioChunkFieldNumber = 1302,
    kFeatureFlagRequestFieldNumber = 1400,
    kFeatureFlagResponseFieldNumber = 1401,
    kFeatureFlagListRequestFieldNumber = 1402,
    kFeatureFlagListResponseFieldNumber = 1403,
    kAppDisconnectedFieldNumber = 1500,
    kAlexaAuthStateRequestFieldNumber = 1600,
    kAlexaAuthStateResponseFieldNumber = 1601,
    kAlexaOptInRequestFieldNumber = 1602,
    kAlexaOptInResponseFieldNumber = 1603,
    kSetEyeColorRequestFieldNumber = 1700,
    kSetEyeColorResponseFieldNumber = 1701,
    kMasterVolumeRequestFieldNumber = 1702,
    kMasterVolumeResponseFieldNumber = 1703,
    kSetCameraSettingsRequestFieldNumber = 1704,
    kSetCameraSettingsResponseFieldNumber = 1705,
    kCameraConfigRequestFieldNumber = 1706,
    kCameraConfigResponseFieldNumber = 1707,
    kExternalAudioStreamPrepareFieldNumber = 1800,
    kExternalAudioStreamChunkFieldNumber = 1801,
    kExternalAudioStreamCancelFieldNumber = 1802,
    kExternalAudioStreamCompleteFieldNumber = 1803,
    kExternalAudioStreamResponseFieldNumber = 1804,
  };
  // uint64 connection_id = 1;
  void clear_connection_id();
  ::PROTOBUF_NAMESPACE_ID::uint64 connection_id() const;
  void set_connection_id(::PROTOBUF_NAMESPACE_ID::uint64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint64 _internal_connection_id() const;
  void _internal_set_connection_id(::PROTOBUF_NAMESPACE_ID::uint64 value);
  public:

  // .Anki.Vector.external_interface.Event event = 2;
  bool has_event() const;
  private:
  bool _internal_has_event() const;
  public:
  void clear_event();
  const ::Anki::Vector::external_interface::Event& event() const;
  ::Anki::Vector::external_interface::Event* release_event();
  ::Anki::Vector::external_interface::Event* mutable_event();
  void set_allocated_event(::Anki::Vector::external_interface::Event* event);
  private:
  const ::Anki::Vector::external_interface::Event& _internal_event() const;
  ::Anki::Vector::external_interface::Event* _internal_mutable_event();
  public:
  void unsafe_arena_set_allocated_event(
      ::Anki::Vector::external_interface::Event* event);
  ::Anki::Vector::external_interface::Event* unsafe_arena_release_event();

  // .Anki.Vector.external_interface.OnboardingStateRequest onboarding_state_request = 3;
  bool has_onboarding_state_request() const;
  private:
  bool _internal_has_onboarding_state_request() const;
  public:
  void clear_onboarding_state_request();
  const ::Anki::Vector::external_interface::OnboardingStateRequest& onboarding_state_request() const;
  ::Anki::Vector::external_interface::OnboardingStateRequest* release_onboarding_state_request();
  ::Anki::Vector::external_interface::OnboardingStateRequest* mutable_onboarding_state_request();
  void set_allocated_onboarding_state_request(::Anki::Vector::external_interface::OnboardingStateRequest* onboarding_state_request);
  private:
  const ::Anki::Vector::external_interface::OnboardingStateRequest& _internal_onboarding_state_request() const;
  ::Anki::Vector::external_interface::OnboardingStateRequest* _internal_mutable_onboarding_state_request();
  public:
  void unsafe_arena_set_allocated_onboarding_state_request(
      ::Anki::Vector::external_interface::OnboardingStateRequest* onboarding_state_request);
  ::Anki::Vector::external_interface::OnboardingStateRequest* unsafe_arena_release_onboarding_state_request();

  // .Anki.Vector.external_interface.OnboardingState onboarding_state = 4;
  bool has_onboarding_state() const;
  private:
  bool _internal_has_onboarding_state() const;
  public:
  void clear_onboarding_state();
  const ::Anki::Vector::external_interface::OnboardingState& onboarding_state() const;
  ::Anki::Vector::external_interface::OnboardingState* release_onboarding_state();
  ::Anki::Vector::external_interface::OnboardingState* mutable_onboarding_state();
  void set_allocated_onboarding_state(::Anki::Vector::external_interface::OnboardingState* onboarding_state);
  private:
  const ::Anki::Vector::external_interface::OnboardingState& _internal_onboarding_state() const;
  ::Anki::Vector::external_interface::OnboardingState* _internal_mutable_onboarding_state();
  public:
  void unsafe_arena_set_allocated_onboarding_state(
      ::Anki::Vector::external_interface::OnboardingState* onboarding_state);
  ::Anki::Vector::external_interface::OnboardingState* unsafe_arena_release_onboarding_state();

  // .Anki.Vector.external_interface.OnboardingSkipOnboarding onboarding_skip_onboarding = 5;
  bool has_onboarding_skip_onboarding() const;
  private:
  bool _internal_has_onboarding_skip_onboarding() const;
  public:
  void clear_onboarding_skip_onboarding();
  const ::Anki::Vector::external_interface::OnboardingSkipOnboarding& onboarding_skip_onboarding() const;
  ::Anki::Vector::external_interface::OnboardingSkipOnboarding* release_onboarding_skip_onboarding();
  ::Anki::Vector::external_interface::OnboardingSkipOnboarding* mutable_onboarding_skip_onboarding();
  void set_allocated_onboarding_skip_onboarding(::Anki::Vector::external_interface::OnboardingSkipOnboarding* onboarding_skip_onboarding);
  private:
  const ::Anki::Vector::external_interface::OnboardingSkipOnboarding& _internal_onboarding_skip_onboarding() const;
  ::Anki::Vector::external_interface::OnboardingSkipOnboarding* _internal_mutable_onboarding_skip_onboarding();
  public:
  void unsafe_arena_set_allocated_onboarding_skip_onboarding(
      ::Anki::Vector::external_interface::OnboardingSkipOnboarding* onboarding_skip_onboarding);
  ::Anki::Vector::external_interface::OnboardingSkipOnboarding* unsafe_arena_release_onboarding_skip_onboarding();

  // .Anki.Vector.external_interface.OnboardingRestart onboarding_restart = 6;
  bool has_onboarding_restart() const;
  private:
  bool _internal_has_onboarding_restart() const;
  public:
  void clear_onboarding_restart();
  const ::Anki::Vector::external_interface::OnboardingRestart& onboarding_restart() const;
  ::Anki::Vector::external_interface::OnboardingRestart* release_onboarding_restart();
  ::Anki::Vector::external_interface::OnboardingRestart* mutable_onboarding_restart();
  void set_allocated_onboarding_restart(::Anki::Vector::external_interface::OnboardingRestart* onboarding_restart);
  private:
  const ::Anki::Vector::external_interface::OnboardingRestart& _internal_onboarding_restart() const;
  ::Anki::Vector::external_interface::OnboardingRestart* _internal_mutable_onboarding_restart();
  public:
  void unsafe_arena_set_allocated_onboarding_restart(
      ::Anki::Vector::external_interface::OnboardingRestart* onboarding_restart);
  ::Anki::Vector::external_interface::OnboardingRestart* unsafe_arena_release_onboarding_restart();

  // .Anki.Vector.external_interface.OnboardingCompleteRequest onboarding_complete_request = 11;
  bool has_onboarding_complete_request() const;
  private:
  bool _internal_has_onboarding_complete_request() const;
  public:
  void clear_onboarding_complete_request();
  const ::Anki::Vector::external_interface::OnboardingCompleteRequest& onboarding_complete_request() const;
  ::Anki::Vector::external_interface::OnboardingCompleteRequest* release_onboarding_complete_request();
  ::Anki::Vector::external_interface::OnboardingCompleteRequest* mutable_onboarding_complete_request();
  void set_allocated_onboarding_complete_request(::Anki::Vector::external_interface::OnboardingCompleteRequest* onboarding_complete_request);
  private:
  const ::Anki::Vector::external_interface::OnboardingCompleteRequest& _internal_onboarding_complete_request() const;
  ::Anki::Vector::external_interface::OnboardingCompleteRequest* _internal_mutable_onboarding_complete_request();
  public:
  void unsafe_arena_set_allocated_onboarding_complete_request(
      ::Anki::Vector::external_interface::OnboardingCompleteRequest* onboarding_complete_request);
  ::Anki::Vector::external_interface::OnboardingCompleteRequest* unsafe_arena_release_onboarding_complete_request();

  // .Anki.Vector.external_interface.OnboardingCompleteResponse onboarding_complete_response = 12;
  bool has_onboarding_complete_response() const;
  private:
  bool _internal_has_onboarding_complete_response() const;
  public:
  void clear_onboarding_complete_response();
  const ::Anki::Vector::external_interface::OnboardingCompleteResponse& onboarding_complete_response() const;
  ::Anki::Vector::external_interface::OnboardingCompleteResponse* release_onboarding_complete_response();
  ::Anki::Vector::external_interface::OnboardingCompleteResponse* mutable_onboarding_complete_response();
  void set_allocated_onboarding_complete_response(::Anki::Vector::external_interface::OnboardingCompleteResponse* onboarding_complete_response);
  private:
  const ::Anki::Vector::external_interface::OnboardingCompleteResponse& _internal_onboarding_complete_response() const;
  ::Anki::Vector::external_interface::OnboardingCompleteResponse* _internal_mutable_onboarding_complete_response();
  public:
  void unsafe_arena_set_allocated_onboarding_complete_response(
      ::Anki::Vector::external_interface::OnboardingCompleteResponse* onboarding_complete_response);
  ::Anki::Vector::external_interface::OnboardingCompleteResponse* unsafe_arena_release_onboarding_complete_response();

  // .Anki.Vector.external_interface.OnboardingWakeUpRequest onboarding_wake_up_request = 13;
  bool has_onboarding_wake_up_request() const;
  private:
  bool _internal_has_onboarding_wake_up_request() const;
  public:
  void clear_onboarding_wake_up_request();
  const ::Anki::Vector::external_interface::OnboardingWakeUpRequest& onboarding_wake_up_request() const;
  ::Anki::Vector::external_interface::OnboardingWakeUpRequest* release_onboarding_wake_up_request();
  ::Anki::Vector::external_interface::OnboardingWakeUpRequest* mutable_onboarding_wake_up_request();
  void set_allocated_onboarding_wake_up_request(::Anki::Vector::external_interface::OnboardingWakeUpRequest* onboarding_wake_up_request);
  private:
  const ::Anki::Vector::external_interface::OnboardingWakeUpRequest& _internal_onboarding_wake_up_request() const;
  ::Anki::Vector::external_interface::OnboardingWakeUpRequest* _internal_mutable_onboarding_wake_up_request();
  public:
  void unsafe_arena_set_allocated_onboarding_wake_up_request(
      ::Anki::Vector::external_interface::OnboardingWakeUpRequest* onboarding_wake_up_request);
  ::Anki::Vector::external_interface::OnboardingWakeUpRequest* unsafe_arena_release_onboarding_wake_up_request();

  // .Anki.Vector.external_interface.OnboardingWakeUpResponse onboarding_wake_up_response = 14;
  bool has_onboarding_wake_up_response() const;
  private:
  bool _internal_has_onboarding_wake_up_response() const;
  public:
  void clear_onboarding_wake_up_response();
  const ::Anki::Vector::external_interface::OnboardingWakeUpResponse& onboarding_wake_up_response() const;
  ::Anki::Vector::external_interface::OnboardingWakeUpResponse* release_onboarding_wake_up_response();
  ::Anki::Vector::external_interface::OnboardingWakeUpResponse* mutable_onboarding_wake_up_response();
  void set_allocated_onboarding_wake_up_response(::Anki::Vector::external_interface::OnboardingWakeUpResponse* onboarding_wake_up_response);
  private:
  const ::Anki::Vector::external_interface::OnboardingWakeUpResponse& _internal_onboarding_wake_up_response() const;
  ::Anki::Vector::external_interface::OnboardingWakeUpResponse* _internal_mutable_onboarding_wake_up_response();
  public:
  void unsafe_arena_set_allocated_onboarding_wake_up_response(
      ::Anki::Vector::external_interface::OnboardingWakeUpResponse* onboarding_wake_up_response);
  ::Anki::Vector::external_interface::OnboardingWakeUpResponse* unsafe_arena_release_onboarding_wake_up_response();

  // .Anki.Vector.external_interface.OnboardingWakeUpStartedRequest onboarding_wake_up_started_request = 15;
  bool has_onboarding_wake_up_started_request() const;
  private:
  bool _internal_has_onboarding_wake_up_started_request() const;
  public:
  void clear_onboarding_wake_up_started_request();
  const ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest& onboarding_wake_up_started_request() const;
  ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* release_onboarding_wake_up_started_request();
  ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* mutable_onboarding_wake_up_started_request();
  void set_allocated_onboarding_wake_up_started_request(::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* onboarding_wake_up_started_request);
  private:
  const ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest& _internal_onboarding_wake_up_started_request() const;
  ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* _internal_mutable_onboarding_wake_up_started_request();
  public:
  void unsafe_arena_set_allocated_onboarding_wake_up_started_request(
      ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* onboarding_wake_up_started_request);
  ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* unsafe_arena_release_onboarding_wake_up_started_request();

  // .Anki.Vector.external_interface.OnboardingWakeUpStartedResponse onboarding_wake_up_started_response = 16;
  bool has_onboarding_wake_up_started_response() const;
  private:
  bool _internal_has_onboarding_wake_up_started_response() const;
  public:
  void clear_onboarding_wake_up_started_response();
  const ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse& onboarding_wake_up_started_response() const;
  ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* release_onboarding_wake_up_started_response();
  ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* mutable_onboarding_wake_up_started_response();
  void set_allocated_onboarding_wake_up_started_response(::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* onboarding_wake_up_started_response);
  private:
  const ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse& _internal_onboarding_wake_up_started_response() const;
  ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* _internal_mutable_onboarding_wake_up_started_response();
  public:
  void unsafe_arena_set_allocated_onboarding_wake_up_started_response(
      ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* onboarding_wake_up_started_response);
  ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* unsafe_arena_release_onboarding_wake_up_started_response();

  // .Anki.Vector.external_interface.OnboardingSetPhaseRequest onboarding_set_phase_request = 17;
  bool has_onboarding_set_phase_request() const;
  private:
  bool _internal_has_onboarding_set_phase_request() const;
  public:
  void clear_onboarding_set_phase_request();
  const ::Anki::Vector::external_interface::OnboardingSetPhaseRequest& onboarding_set_phase_request() const;
  ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* release_onboarding_set_phase_request();
  ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* mutable_onboarding_set_phase_request();
  void set_allocated_onboarding_set_phase_request(::Anki::Vector::external_interface::OnboardingSetPhaseRequest* onboarding_set_phase_request);
  private:
  const ::Anki::Vector::external_interface::OnboardingSetPhaseRequest& _internal_onboarding_set_phase_request() const;
  ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* _internal_mutable_onboarding_set_phase_request();
  public:
  void unsafe_arena_set_allocated_onboarding_set_phase_request(
      ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* onboarding_set_phase_request);
  ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* unsafe_arena_release_onboarding_set_phase_request();

  // .Anki.Vector.external_interface.OnboardingSetPhaseResponse onboarding_set_phase_response = 18;
  bool has_onboarding_set_phase_response() const;
  private:
  bool _internal_has_onboarding_set_phase_response() const;
  public:
  void clear_onboarding_set_phase_response();
  const ::Anki::Vector::external_interface::OnboardingSetPhaseResponse& onboarding_set_phase_response() const;
  ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* release_onboarding_set_phase_response();
  ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* mutable_onboarding_set_phase_response();
  void set_allocated_onboarding_set_phase_response(::Anki::Vector::external_interface::OnboardingSetPhaseResponse* onboarding_set_phase_response);
  private:
  const ::Anki::Vector::external_interface::OnboardingSetPhaseResponse& _internal_onboarding_set_phase_response() const;
  ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* _internal_mutable_onboarding_set_phase_response();
  public:
  void unsafe_arena_set_allocated_onboarding_set_phase_response(
      ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* onboarding_set_phase_response);
  ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* unsafe_arena_release_onboarding_set_phase_response();

  // .Anki.Vector.external_interface.OnboardingPhaseProgressRequest onboarding_phase_progress_request = 19;
  bool has_onboarding_phase_progress_request() const;
  private:
  bool _internal_has_onboarding_phase_progress_request() const;
  public:
  void clear_onboarding_phase_progress_request();
  const ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest& onboarding_phase_progress_request() const;
  ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* release_onboarding_phase_progress_request();
  ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* mutable_onboarding_phase_progress_request();
  void set_allocated_onboarding_phase_progress_request(::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* onboarding_phase_progress_request);
  private:
  const ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest& _internal_onboarding_phase_progress_request() const;
  ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* _internal_mutable_onboarding_phase_progress_request();
  public:
  void unsafe_arena_set_allocated_onboarding_phase_progress_request(
      ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* onboarding_phase_progress_request);
  ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* unsafe_arena_release_onboarding_phase_progress_request();

  // .Anki.Vector.external_interface.OnboardingPhaseProgressResponse onboarding_phase_progress_response = 20;
  bool has_onboarding_phase_progress_response() const;
  private:
  bool _internal_has_onboarding_phase_progress_response() const;
  public:
  void clear_onboarding_phase_progress_response();
  const ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse& onboarding_phase_progress_response() const;
  ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* release_onboarding_phase_progress_response();
  ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* mutable_onboarding_phase_progress_response();
  void set_allocated_onboarding_phase_progress_response(::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* onboarding_phase_progress_response);
  private:
  const ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse& _internal_onboarding_phase_progress_response() const;
  ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* _internal_mutable_onboarding_phase_progress_response();
  public:
  void unsafe_arena_set_allocated_onboarding_phase_progress_response(
      ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* onboarding_phase_progress_response);
  ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* unsafe_arena_release_onboarding_phase_progress_response();

  // .Anki.Vector.external_interface.OnboardingChargeInfoRequest onboarding_charge_info_request = 21;
  bool has_onboarding_charge_info_request() const;
  private:
  bool _internal_has_onboarding_charge_info_request() const;
  public:
  void clear_onboarding_charge_info_request();
  const ::Anki::Vector::external_interface::OnboardingChargeInfoRequest& onboarding_charge_info_request() const;
  ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* release_onboarding_charge_info_request();
  ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* mutable_onboarding_charge_info_request();
  void set_allocated_onboarding_charge_info_request(::Anki::Vector::external_interface::OnboardingChargeInfoRequest* onboarding_charge_info_request);
  private:
  const ::Anki::Vector::external_interface::OnboardingChargeInfoRequest& _internal_onboarding_charge_info_request() const;
  ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* _internal_mutable_onboarding_charge_info_request();
  public:
  void unsafe_arena_set_allocated_onboarding_charge_info_request(
      ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* onboarding_charge_info_request);
  ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* unsafe_arena_release_onboarding_charge_info_request();

  // .Anki.Vector.external_interface.OnboardingChargeInfoResponse onboarding_charge_info_response = 22;
  bool has_onboarding_charge_info_response() const;
  private:
  bool _internal_has_onboarding_charge_info_response() const;
  public:
  void clear_onboarding_charge_info_response();
  const ::Anki::Vector::external_interface::OnboardingChargeInfoResponse& onboarding_charge_info_response() const;
  ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* release_onboarding_charge_info_response();
  ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* mutable_onboarding_charge_info_response();
  void set_allocated_onboarding_charge_info_response(::Anki::Vector::external_interface::OnboardingChargeInfoResponse* onboarding_charge_info_response);
  private:
  const ::Anki::Vector::external_interface::OnboardingChargeInfoResponse& _internal_onboarding_charge_info_response() const;
  ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* _internal_mutable_onboarding_charge_info_response();
  public:
  void unsafe_arena_set_allocated_onboarding_charge_info_response(
      ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* onboarding_charge_info_response);
  ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* unsafe_arena_release_onboarding_charge_info_response();

  // .Anki.Vector.external_interface.OnboardingMarkCompleteAndExit onboarding_mark_complete_and_exit = 23;
  bool has_onboarding_mark_complete_and_exit() const;
  private:
  bool _internal_has_onboarding_mark_complete_and_exit() const;
  public:
  void clear_onboarding_mark_complete_and_exit();
  const ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit& onboarding_mark_complete_and_exit() const;
  ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* release_onboarding_mark_complete_and_exit();
  ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* mutable_onboarding_mark_complete_and_exit();
  void set_allocated_onboarding_mark_complete_and_exit(::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* onboarding_mark_complete_and_exit);
  private:
  const ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit& _internal_onboarding_mark_complete_and_exit() const;
  ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* _internal_mutable_onboarding_mark_complete_and_exit();
  public:
  void unsafe_arena_set_allocated_onboarding_mark_complete_and_exit(
      ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* onboarding_mark_complete_and_exit);
  ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* unsafe_arena_release_onboarding_mark_complete_and_exit();

  // .Anki.Vector.external_interface.LatestAttentionTransferRequest latest_attention_transfer_request = 100;
  bool has_latest_attention_transfer_request() const;
  private:
  bool _internal_has_latest_attention_transfer_request() const;
  public:
  void clear_latest_attention_transfer_request();
  const ::Anki::Vector::external_interface::LatestAttentionTransferRequest& latest_attention_transfer_request() const;
  ::Anki::Vector::external_interface::LatestAttentionTransferRequest* release_latest_attention_transfer_request();
  ::Anki::Vector::external_interface::LatestAttentionTransferRequest* mutable_latest_attention_transfer_request();
  void set_allocated_latest_attention_transfer_request(::Anki::Vector::external_interface::LatestAttentionTransferRequest* latest_attention_transfer_request);
  private:
  const ::Anki::Vector::external_interface::LatestAttentionTransferRequest& _internal_latest_attention_transfer_request() const;
  ::Anki::Vector::external_interface::LatestAttentionTransferRequest* _internal_mutable_latest_attention_transfer_request();
  public:
  void unsafe_arena_set_allocated_latest_attention_transfer_request(
      ::Anki::Vector::external_interface::LatestAttentionTransferRequest* latest_attention_transfer_request);
  ::Anki::Vector::external_interface::LatestAttentionTransferRequest* unsafe_arena_release_latest_attention_transfer_request();

  // .Anki.Vector.external_interface.LatestAttentionTransfer latest_attention_transfer = 101;
  bool has_latest_attention_transfer() const;
  private:
  bool _internal_has_latest_attention_transfer() const;
  public:
  void clear_latest_attention_transfer();
  const ::Anki::Vector::external_interface::LatestAttentionTransfer& latest_attention_transfer() const;
  ::Anki::Vector::external_interface::LatestAttentionTransfer* release_latest_attention_transfer();
  ::Anki::Vector::external_interface::LatestAttentionTransfer* mutable_latest_attention_transfer();
  void set_allocated_latest_attention_transfer(::Anki::Vector::external_interface::LatestAttentionTransfer* latest_attention_transfer);
  private:
  const ::Anki::Vector::external_interface::LatestAttentionTransfer& _internal_latest_attention_transfer() const;
  ::Anki::Vector::external_interface::LatestAttentionTransfer* _internal_mutable_latest_attention_transfer();
  public:
  void unsafe_arena_set_allocated_latest_attention_transfer(
      ::Anki::Vector::external_interface::LatestAttentionTransfer* latest_attention_transfer);
  ::Anki::Vector::external_interface::LatestAttentionTransfer* unsafe_arena_release_latest_attention_transfer();

  // .Anki.Vector.external_interface.PhotosInfoRequest photos_info_request = 200;
  bool has_photos_info_request() const;
  private:
  bool _internal_has_photos_info_request() const;
  public:
  void clear_photos_info_request();
  const ::Anki::Vector::external_interface::PhotosInfoRequest& photos_info_request() const;
  ::Anki::Vector::external_interface::PhotosInfoRequest* release_photos_info_request();
  ::Anki::Vector::external_interface::PhotosInfoRequest* mutable_photos_info_request();
  void set_allocated_photos_info_request(::Anki::Vector::external_interface::PhotosInfoRequest* photos_info_request);
  private:
  const ::Anki::Vector::external_interface::PhotosInfoRequest& _internal_photos_info_request() const;
  ::Anki::Vector::external_interface::PhotosInfoRequest* _internal_mutable_photos_info_request();
  public:
  void unsafe_arena_set_allocated_photos_info_request(
      ::Anki::Vector::external_interface::PhotosInfoRequest* photos_info_request);
  ::Anki::Vector::external_interface::PhotosInfoRequest* unsafe_arena_release_photos_info_request();

  // .Anki.Vector.external_interface.PhotosInfoResponse photos_info_response = 201;
  bool has_photos_info_response() const;
  private:
  bool _internal_has_photos_info_response() const;
  public:
  void clear_photos_info_response();
  const ::Anki::Vector::external_interface::PhotosInfoResponse& photos_info_response() const;
  ::Anki::Vector::external_interface::PhotosInfoResponse* release_photos_info_response();
  ::Anki::Vector::external_interface::PhotosInfoResponse* mutable_photos_info_response();
  void set_allocated_photos_info_response(::Anki::Vector::external_interface::PhotosInfoResponse* photos_info_response);
  private:
  const ::Anki::Vector::external_interface::PhotosInfoResponse& _internal_photos_info_response() const;
  ::Anki::Vector::external_interface::PhotosInfoResponse* _internal_mutable_photos_info_response();
  public:
  void unsafe_arena_set_allocated_photos_info_response(
      ::Anki::Vector::external_interface::PhotosInfoResponse* photos_info_response);
  ::Anki::Vector::external_interface::PhotosInfoResponse* unsafe_arena_release_photos_info_response();

  // .Anki.Vector.external_interface.PhotoRequest photo_request = 202;
  bool has_photo_request() const;
  private:
  bool _internal_has_photo_request() const;
  public:
  void clear_photo_request();
  const ::Anki::Vector::external_interface::PhotoRequest& photo_request() const;
  ::Anki::Vector::external_interface::PhotoRequest* release_photo_request();
  ::Anki::Vector::external_interface::PhotoRequest* mutable_photo_request();
  void set_allocated_photo_request(::Anki::Vector::external_interface::PhotoRequest* photo_request);
  private:
  const ::Anki::Vector::external_interface::PhotoRequest& _internal_photo_request() const;
  ::Anki::Vector::external_interface::PhotoRequest* _internal_mutable_photo_request();
  public:
  void unsafe_arena_set_allocated_photo_request(
      ::Anki::Vector::external_interface::PhotoRequest* photo_request);
  ::Anki::Vector::external_interface::PhotoRequest* unsafe_arena_release_photo_request();

  // .Anki.Vector.external_interface.PhotoPathMessage photo_path_message = 203;
  bool has_photo_path_message() const;
  private:
  bool _internal_has_photo_path_message() const;
  public:
  void clear_photo_path_message();
  const ::Anki::Vector::external_interface::PhotoPathMessage& photo_path_message() const;
  ::Anki::Vector::external_interface::PhotoPathMessage* release_photo_path_message();
  ::Anki::Vector::external_interface::PhotoPathMessage* mutable_photo_path_message();
  void set_allocated_photo_path_message(::Anki::Vector::external_interface::PhotoPathMessage* photo_path_message);
  private:
  const ::Anki::Vector::external_interface::PhotoPathMessage& _internal_photo_path_message() const;
  ::Anki::Vector::external_interface::PhotoPathMessage* _internal_mutable_photo_path_message();
  public:
  void unsafe_arena_set_allocated_photo_path_message(
      ::Anki::Vector::external_interface::PhotoPathMessage* photo_path_message);
  ::Anki::Vector::external_interface::PhotoPathMessage* unsafe_arena_release_photo_path_message();

  // .Anki.Vector.external_interface.ThumbnailRequest thumbnail_request = 204;
  bool has_thumbnail_request() const;
  private:
  bool _internal_has_thumbnail_request() const;
  public:
  void clear_thumbnail_request();
  const ::Anki::Vector::external_interface::ThumbnailRequest& thumbnail_request() const;
  ::Anki::Vector::external_interface::ThumbnailRequest* release_thumbnail_request();
  ::Anki::Vector::external_interface::ThumbnailRequest* mutable_thumbnail_request();
  void set_allocated_thumbnail_request(::Anki::Vector::external_interface::ThumbnailRequest* thumbnail_request);
  private:
  const ::Anki::Vector::external_interface::ThumbnailRequest& _internal_thumbnail_request() const;
  ::Anki::Vector::external_interface::ThumbnailRequest* _internal_mutable_thumbnail_request();
  public:
  void unsafe_arena_set_allocated_thumbnail_request(
      ::Anki::Vector::external_interface::ThumbnailRequest* thumbnail_request);
  ::Anki::Vector::external_interface::ThumbnailRequest* unsafe_arena_release_thumbnail_request();

  // .Anki.Vector.external_interface.ThumbnailPathMessage thumbnail_path_message = 205;
  bool has_thumbnail_path_message() const;
  private:
  bool _internal_has_thumbnail_path_message() const;
  public:
  void clear_thumbnail_path_message();
  const ::Anki::Vector::external_interface::ThumbnailPathMessage& thumbnail_path_message() const;
  ::Anki::Vector::external_interface::ThumbnailPathMessage* release_thumbnail_path_message();
  ::Anki::Vector::external_interface::ThumbnailPathMessage* mutable_thumbnail_path_message();
  void set_allocated_thumbnail_path_message(::Anki::Vector::external_interface::ThumbnailPathMessage* thumbnail_path_message);
  private:
  const ::Anki::Vector::external_interface::ThumbnailPathMessage& _internal_thumbnail_path_message() const;
  ::Anki::Vector::external_interface::ThumbnailPathMessage* _internal_mutable_thumbnail_path_message();
  public:
  void unsafe_arena_set_allocated_thumbnail_path_message(
      ::Anki::Vector::external_interface::ThumbnailPathMessage* thumbnail_path_message);
  ::Anki::Vector::external_interface::ThumbnailPathMessage* unsafe_arena_release_thumbnail_path_message();

  // .Anki.Vector.external_interface.DeletePhotoRequest delete_photo_request = 206;
  bool has_delete_photo_request() const;
  private:
  bool _internal_has_delete_photo_request() const;
  public:
  void clear_delete_photo_request();
  const ::Anki::Vector::external_interface::DeletePhotoRequest& delete_photo_request() const;
  ::Anki::Vector::external_interface::DeletePhotoRequest* release_delete_photo_request();
  ::Anki::Vector::external_interface::DeletePhotoRequest* mutable_delete_photo_request();
  void set_allocated_delete_photo_request(::Anki::Vector::external_interface::DeletePhotoRequest* delete_photo_request);
  private:
  const ::Anki::Vector::external_interface::DeletePhotoRequest& _internal_delete_photo_request() const;
  ::Anki::Vector::external_interface::DeletePhotoRequest* _internal_mutable_delete_photo_request();
  public:
  void unsafe_arena_set_allocated_delete_photo_request(
      ::Anki::Vector::external_interface::DeletePhotoRequest* delete_photo_request);
  ::Anki::Vector::external_interface::DeletePhotoRequest* unsafe_arena_release_delete_photo_request();

  // .Anki.Vector.external_interface.DeletePhotoResponse delete_photo_response = 207;
  bool has_delete_photo_response() const;
  private:
  bool _internal_has_delete_photo_response() const;
  public:
  void clear_delete_photo_response();
  const ::Anki::Vector::external_interface::DeletePhotoResponse& delete_photo_response() const;
  ::Anki::Vector::external_interface::DeletePhotoResponse* release_delete_photo_response();
  ::Anki::Vector::external_interface::DeletePhotoResponse* mutable_delete_photo_response();
  void set_allocated_delete_photo_response(::Anki::Vector::external_interface::DeletePhotoResponse* delete_photo_response);
  private:
  const ::Anki::Vector::external_interface::DeletePhotoResponse& _internal_delete_photo_response() const;
  ::Anki::Vector::external_interface::DeletePhotoResponse* _internal_mutable_delete_photo_response();
  public:
  void unsafe_arena_set_allocated_delete_photo_response(
      ::Anki::Vector::external_interface::DeletePhotoResponse* delete_photo_response);
  ::Anki::Vector::external_interface::DeletePhotoResponse* unsafe_arena_release_delete_photo_response();

  // .Anki.Vector.external_interface.PullJdocsRequest pull_jdocs_request = 300;
  bool has_pull_jdocs_request() const;
  private:
  bool _internal_has_pull_jdocs_request() const;
  public:
  void clear_pull_jdocs_request();
  const ::Anki::Vector::external_interface::PullJdocsRequest& pull_jdocs_request() const;
  ::Anki::Vector::external_interface::PullJdocsRequest* release_pull_jdocs_request();
  ::Anki::Vector::external_interface::PullJdocsRequest* mutable_pull_jdocs_request();
  void set_allocated_pull_jdocs_request(::Anki::Vector::external_interface::PullJdocsRequest* pull_jdocs_request);
  private:
  const ::Anki::Vector::external_interface::PullJdocsRequest& _internal_pull_jdocs_request() const;
  ::Anki::Vector::external_interface::PullJdocsRequest* _internal_mutable_pull_jdocs_request();
  public:
  void unsafe_arena_set_allocated_pull_jdocs_request(
      ::Anki::Vector::external_interface::PullJdocsRequest* pull_jdocs_request);
  ::Anki::Vector::external_interface::PullJdocsRequest* unsafe_arena_release_pull_jdocs_request();

  // .Anki.Vector.external_interface.PullJdocsResponse pull_jdocs_response = 301;
  bool has_pull_jdocs_response() const;
  private:
  bool _internal_has_pull_jdocs_response() const;
  public:
  void clear_pull_jdocs_response();
  const ::Anki::Vector::external_interface::PullJdocsResponse& pull_jdocs_response() const;
  ::Anki::Vector::external_interface::PullJdocsResponse* release_pull_jdocs_response();
  ::Anki::Vector::external_interface::PullJdocsResponse* mutable_pull_jdocs_response();
  void set_allocated_pull_jdocs_response(::Anki::Vector::external_interface::PullJdocsResponse* pull_jdocs_response);
  private:
  const ::Anki::Vector::external_interface::PullJdocsResponse& _internal_pull_jdocs_response() const;
  ::Anki::Vector::external_interface::PullJdocsResponse* _internal_mutable_pull_jdocs_response();
  public:
  void unsafe_arena_set_allocated_pull_jdocs_response(
      ::Anki::Vector::external_interface::PullJdocsResponse* pull_jdocs_response);
  ::Anki::Vector::external_interface::PullJdocsResponse* unsafe_arena_release_pull_jdocs_response();

  // .Anki.Vector.external_interface.UpdateSettingsRequest update_settings_request = 302;
  bool has_update_settings_request() const;
  private:
  bool _internal_has_update_settings_request() const;
  public:
  void clear_update_settings_request();
  const ::Anki::Vector::external_interface::UpdateSettingsRequest& update_settings_request() const;
  ::Anki::Vector::external_interface::UpdateSettingsRequest* release_update_settings_request();
  ::Anki::Vector::external_interface::UpdateSettingsRequest* mutable_update_settings_request();
  void set_allocated_update_settings_request(::Anki::Vector::external_interface::UpdateSettingsRequest* update_settings_request);
  private:
  const ::Anki::Vector::external_interface::UpdateSettingsRequest& _internal_update_settings_request() const;
  ::Anki::Vector::external_interface::UpdateSettingsRequest* _internal_mutable_update_settings_request();
  public:
  void unsafe_arena_set_allocated_update_settings_request(
      ::Anki::Vector::external_interface::UpdateSettingsRequest* update_settings_request);
  ::Anki::Vector::external_interface::UpdateSettingsRequest* unsafe_arena_release_update_settings_request();

  // .Anki.Vector.external_interface.UpdateSettingsResponse update_settings_response = 303;
  bool has_update_settings_response() const;
  private:
  bool _internal_has_update_settings_response() const;
  public:
  void clear_update_settings_response();
  const ::Anki::Vector::external_interface::UpdateSettingsResponse& update_settings_response() const;
  ::Anki::Vector::external_interface::UpdateSettingsResponse* release_update_settings_response();
  ::Anki::Vector::external_interface::UpdateSettingsResponse* mutable_update_settings_response();
  void set_allocated_update_settings_response(::Anki::Vector::external_interface::UpdateSettingsResponse* update_settings_response);
  private:
  const ::Anki::Vector::external_interface::UpdateSettingsResponse& _internal_update_settings_response() const;
  ::Anki::Vector::external_interface::UpdateSettingsResponse* _internal_mutable_update_settings_response();
  public:
  void unsafe_arena_set_allocated_update_settings_response(
      ::Anki::Vector::external_interface::UpdateSettingsResponse* update_settings_response);
  ::Anki::Vector::external_interface::UpdateSettingsResponse* unsafe_arena_release_update_settings_response();

  // .Anki.Vector.external_interface.UpdateAccountSettingsRequest update_account_settings_request = 304;
  bool has_update_account_settings_request() const;
  private:
  bool _internal_has_update_account_settings_request() const;
  public:
  void clear_update_account_settings_request();
  const ::Anki::Vector::external_interface::UpdateAccountSettingsRequest& update_account_settings_request() const;
  ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* release_update_account_settings_request();
  ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* mutable_update_account_settings_request();
  void set_allocated_update_account_settings_request(::Anki::Vector::external_interface::UpdateAccountSettingsRequest* update_account_settings_request);
  private:
  const ::Anki::Vector::external_interface::UpdateAccountSettingsRequest& _internal_update_account_settings_request() const;
  ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* _internal_mutable_update_account_settings_request();
  public:
  void unsafe_arena_set_allocated_update_account_settings_request(
      ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* update_account_settings_request);
  ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* unsafe_arena_release_update_account_settings_request();

  // .Anki.Vector.external_interface.UpdateAccountSettingsResponse update_account_settings_response = 305;
  bool has_update_account_settings_response() const;
  private:
  bool _internal_has_update_account_settings_response() const;
  public:
  void clear_update_account_settings_response();
  const ::Anki::Vector::external_interface::UpdateAccountSettingsResponse& update_account_settings_response() const;
  ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* release_update_account_settings_response();
  ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* mutable_update_account_settings_response();
  void set_allocated_update_account_settings_response(::Anki::Vector::external_interface::UpdateAccountSettingsResponse* update_account_settings_response);
  private:
  const ::Anki::Vector::external_interface::UpdateAccountSettingsResponse& _internal_update_account_settings_response() const;
  ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* _internal_mutable_update_account_settings_response();
  public:
  void unsafe_arena_set_allocated_update_account_settings_response(
      ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* update_account_settings_response);
  ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* unsafe_arena_release_update_account_settings_response();

  // .Anki.Vector.external_interface.UpdateUserEntitlementsRequest update_user_entitlements_request = 306;
  bool has_update_user_entitlements_request() const;
  private:
  bool _internal_has_update_user_entitlements_request() const;
  public:
  void clear_update_user_entitlements_request();
  const ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest& update_user_entitlements_request() const;
  ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* release_update_user_entitlements_request();
  ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* mutable_update_user_entitlements_request();
  void set_allocated_update_user_entitlements_request(::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* update_user_entitlements_request);
  private:
  const ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest& _internal_update_user_entitlements_request() const;
  ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* _internal_mutable_update_user_entitlements_request();
  public:
  void unsafe_arena_set_allocated_update_user_entitlements_request(
      ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* update_user_entitlements_request);
  ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* unsafe_arena_release_update_user_entitlements_request();

  // .Anki.Vector.external_interface.UpdateUserEntitlementsResponse update_user_entitlements_response = 307;
  bool has_update_user_entitlements_response() const;
  private:
  bool _internal_has_update_user_entitlements_response() const;
  public:
  void clear_update_user_entitlements_response();
  const ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse& update_user_entitlements_response() const;
  ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* release_update_user_entitlements_response();
  ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* mutable_update_user_entitlements_response();
  void set_allocated_update_user_entitlements_response(::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* update_user_entitlements_response);
  private:
  const ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse& _internal_update_user_entitlements_response() const;
  ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* _internal_mutable_update_user_entitlements_response();
  public:
  void unsafe_arena_set_allocated_update_user_entitlements_response(
      ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* update_user_entitlements_response);
  ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* unsafe_arena_release_update_user_entitlements_response();

  // .Anki.Vector.external_interface.DriveOffChargerRequest drive_off_charger_request = 400;
  bool has_drive_off_charger_request() const;
  private:
  bool _internal_has_drive_off_charger_request() const;
  public:
  void clear_drive_off_charger_request();
  const ::Anki::Vector::external_interface::DriveOffChargerRequest& drive_off_charger_request() const;
  ::Anki::Vector::external_interface::DriveOffChargerRequest* release_drive_off_charger_request();
  ::Anki::Vector::external_interface::DriveOffChargerRequest* mutable_drive_off_charger_request();
  void set_allocated_drive_off_charger_request(::Anki::Vector::external_interface::DriveOffChargerRequest* drive_off_charger_request);
  private:
  const ::Anki::Vector::external_interface::DriveOffChargerRequest& _internal_drive_off_charger_request() const;
  ::Anki::Vector::external_interface::DriveOffChargerRequest* _internal_mutable_drive_off_charger_request();
  public:
  void unsafe_arena_set_allocated_drive_off_charger_request(
      ::Anki::Vector::external_interface::DriveOffChargerRequest* drive_off_charger_request);
  ::Anki::Vector::external_interface::DriveOffChargerRequest* unsafe_arena_release_drive_off_charger_request();

  // .Anki.Vector.external_interface.DriveOffChargerResponse drive_off_charger_response = 401;
  bool has_drive_off_charger_response() const;
  private:
  bool _internal_has_drive_off_charger_response() const;
  public:
  void clear_drive_off_charger_response();
  const ::Anki::Vector::external_interface::DriveOffChargerResponse& drive_off_charger_response() const;
  ::Anki::Vector::external_interface::DriveOffChargerResponse* release_drive_off_charger_response();
  ::Anki::Vector::external_interface::DriveOffChargerResponse* mutable_drive_off_charger_response();
  void set_allocated_drive_off_charger_response(::Anki::Vector::external_interface::DriveOffChargerResponse* drive_off_charger_response);
  private:
  const ::Anki::Vector::external_interface::DriveOffChargerResponse& _internal_drive_off_charger_response() const;
  ::Anki::Vector::external_interface::DriveOffChargerResponse* _internal_mutable_drive_off_charger_response();
  public:
  void unsafe_arena_set_allocated_drive_off_charger_response(
      ::Anki::Vector::external_interface::DriveOffChargerResponse* drive_off_charger_response);
  ::Anki::Vector::external_interface::DriveOffChargerResponse* unsafe_arena_release_drive_off_charger_response();

  // .Anki.Vector.external_interface.DriveOnChargerRequest drive_on_charger_request = 402;
  bool has_drive_on_charger_request() const;
  private:
  bool _internal_has_drive_on_charger_request() const;
  public:
  void clear_drive_on_charger_request();
  const ::Anki::Vector::external_interface::DriveOnChargerRequest& drive_on_charger_request() const;
  ::Anki::Vector::external_interface::DriveOnChargerRequest* release_drive_on_charger_request();
  ::Anki::Vector::external_interface::DriveOnChargerRequest* mutable_drive_on_charger_request();
  void set_allocated_drive_on_charger_request(::Anki::Vector::external_interface::DriveOnChargerRequest* drive_on_charger_request);
  private:
  const ::Anki::Vector::external_interface::DriveOnChargerRequest& _internal_drive_on_charger_request() const;
  ::Anki::Vector::external_interface::DriveOnChargerRequest* _internal_mutable_drive_on_charger_request();
  public:
  void unsafe_arena_set_allocated_drive_on_charger_request(
      ::Anki::Vector::external_interface::DriveOnChargerRequest* drive_on_charger_request);
  ::Anki::Vector::external_interface::DriveOnChargerRequest* unsafe_arena_release_drive_on_charger_request();

  // .Anki.Vector.external_interface.DriveOnChargerResponse drive_on_charger_response = 403;
  bool has_drive_on_charger_response() const;
  private:
  bool _internal_has_drive_on_charger_response() const;
  public:
  void clear_drive_on_charger_response();
  const ::Anki::Vector::external_interface::DriveOnChargerResponse& drive_on_charger_response() const;
  ::Anki::Vector::external_interface::DriveOnChargerResponse* release_drive_on_charger_response();
  ::Anki::Vector::external_interface::DriveOnChargerResponse* mutable_drive_on_charger_response();
  void set_allocated_drive_on_charger_response(::Anki::Vector::external_interface::DriveOnChargerResponse* drive_on_charger_response);
  private:
  const ::Anki::Vector::external_interface::DriveOnChargerResponse& _internal_drive_on_charger_response() const;
  ::Anki::Vector::external_interface::DriveOnChargerResponse* _internal_mutable_drive_on_charger_response();
  public:
  void unsafe_arena_set_allocated_drive_on_charger_response(
      ::Anki::Vector::external_interface::DriveOnChargerResponse* drive_on_charger_response);
  ::Anki::Vector::external_interface::DriveOnChargerResponse* unsafe_arena_release_drive_on_charger_response();

  // .Anki.Vector.external_interface.FindFacesRequest find_faces_request = 404;
  bool has_find_faces_request() const;
  private:
  bool _internal_has_find_faces_request() const;
  public:
  void clear_find_faces_request();
  const ::Anki::Vector::external_interface::FindFacesRequest& find_faces_request() const;
  ::Anki::Vector::external_interface::FindFacesRequest* release_find_faces_request();
  ::Anki::Vector::external_interface::FindFacesRequest* mutable_find_faces_request();
  void set_allocated_find_faces_request(::Anki::Vector::external_interface::FindFacesRequest* find_faces_request);
  private:
  const ::Anki::Vector::external_interface::FindFacesRequest& _internal_find_faces_request() const;
  ::Anki::Vector::external_interface::FindFacesRequest* _internal_mutable_find_faces_request();
  public:
  void unsafe_arena_set_allocated_find_faces_request(
      ::Anki::Vector::external_interface::FindFacesRequest* find_faces_request);
  ::Anki::Vector::external_interface::FindFacesRequest* unsafe_arena_release_find_faces_request();

  // .Anki.Vector.external_interface.FindFacesResponse find_faces_response = 405;
  bool has_find_faces_response() const;
  private:
  bool _internal_has_find_faces_response() const;
  public:
  void clear_find_faces_response();
  const ::Anki::Vector::external_interface::FindFacesResponse& find_faces_response() const;
  ::Anki::Vector::external_interface::FindFacesResponse* release_find_faces_response();
  ::Anki::Vector::external_interface::FindFacesResponse* mutable_find_faces_response();
  void set_allocated_find_faces_response(::Anki::Vector::external_interface::FindFacesResponse* find_faces_response);
  private:
  const ::Anki::Vector::external_interface::FindFacesResponse& _internal_find_faces_response() const;
  ::Anki::Vector::external_interface::FindFacesResponse* _internal_mutable_find_faces_response();
  public:
  void unsafe_arena_set_allocated_find_faces_response(
      ::Anki::Vector::external_interface::FindFacesResponse* find_faces_response);
  ::Anki::Vector::external_interface::FindFacesResponse* unsafe_arena_release_find_faces_response();

  // .Anki.Vector.external_interface.LookAroundInPlaceRequest look_around_in_place_request = 406;
  bool has_look_around_in_place_request() const;
  private:
  bool _internal_has_look_around_in_place_request() const;
  public:
  void clear_look_around_in_place_request();
  const ::Anki::Vector::external_interface::LookAroundInPlaceRequest& look_around_in_place_request() const;
  ::Anki::Vector::external_interface::LookAroundInPlaceRequest* release_look_around_in_place_request();
  ::Anki::Vector::external_interface::LookAroundInPlaceRequest* mutable_look_around_in_place_request();
  void set_allocated_look_around_in_place_request(::Anki::Vector::external_interface::LookAroundInPlaceRequest* look_around_in_place_request);
  private:
  const ::Anki::Vector::external_interface::LookAroundInPlaceRequest& _internal_look_around_in_place_request() const;
  ::Anki::Vector::external_interface::LookAroundInPlaceRequest* _internal_mutable_look_around_in_place_request();
  public:
  void unsafe_arena_set_allocated_look_around_in_place_request(
      ::Anki::Vector::external_interface::LookAroundInPlaceRequest* look_around_in_place_request);
  ::Anki::Vector::external_interface::LookAroundInPlaceRequest* unsafe_arena_release_look_around_in_place_request();

  // .Anki.Vector.external_interface.LookAroundInPlaceResponse look_around_in_place_response = 407;
  bool has_look_around_in_place_response() const;
  private:
  bool _internal_has_look_around_in_place_response() const;
  public:
  void clear_look_around_in_place_response();
  const ::Anki::Vector::external_interface::LookAroundInPlaceResponse& look_around_in_place_response() const;
  ::Anki::Vector::external_interface::LookAroundInPlaceResponse* release_look_around_in_place_response();
  ::Anki::Vector::external_interface::LookAroundInPlaceResponse* mutable_look_around_in_place_response();
  void set_allocated_look_around_in_place_response(::Anki::Vector::external_interface::LookAroundInPlaceResponse* look_around_in_place_response);
  private:
  const ::Anki::Vector::external_interface::LookAroundInPlaceResponse& _internal_look_around_in_place_response() const;
  ::Anki::Vector::external_interface::LookAroundInPlaceResponse* _internal_mutable_look_around_in_place_response();
  public:
  void unsafe_arena_set_allocated_look_around_in_place_response(
      ::Anki::Vector::external_interface::LookAroundInPlaceResponse* look_around_in_place_response);
  ::Anki::Vector::external_interface::LookAroundInPlaceResponse* unsafe_arena_release_look_around_in_place_response();

  // .Anki.Vector.external_interface.RollBlockRequest roll_block_request = 408;
  bool has_roll_block_request() const;
  private:
  bool _internal_has_roll_block_request() const;
  public:
  void clear_roll_block_request();
  const ::Anki::Vector::external_interface::RollBlockRequest& roll_block_request() const;
  ::Anki::Vector::external_interface::RollBlockRequest* release_roll_block_request();
  ::Anki::Vector::external_interface::RollBlockRequest* mutable_roll_block_request();
  void set_allocated_roll_block_request(::Anki::Vector::external_interface::RollBlockRequest* roll_block_request);
  private:
  const ::Anki::Vector::external_interface::RollBlockRequest& _internal_roll_block_request() const;
  ::Anki::Vector::external_interface::RollBlockRequest* _internal_mutable_roll_block_request();
  public:
  void unsafe_arena_set_allocated_roll_block_request(
      ::Anki::Vector::external_interface::RollBlockRequest* roll_block_request);
  ::Anki::Vector::external_interface::RollBlockRequest* unsafe_arena_release_roll_block_request();

  // .Anki.Vector.external_interface.RollBlockResponse roll_block_response = 409;
  bool has_roll_block_response() const;
  private:
  bool _internal_has_roll_block_response() const;
  public:
  void clear_roll_block_response();
  const ::Anki::Vector::external_interface::RollBlockResponse& roll_block_response() const;
  ::Anki::Vector::external_interface::RollBlockResponse* release_roll_block_response();
  ::Anki::Vector::external_interface::RollBlockResponse* mutable_roll_block_response();
  void set_allocated_roll_block_response(::Anki::Vector::external_interface::RollBlockResponse* roll_block_response);
  private:
  const ::Anki::Vector::external_interface::RollBlockResponse& _internal_roll_block_response() const;
  ::Anki::Vector::external_interface::RollBlockResponse* _internal_mutable_roll_block_response();
  public:
  void unsafe_arena_set_allocated_roll_block_response(
      ::Anki::Vector::external_interface::RollBlockResponse* roll_block_response);
  ::Anki::Vector::external_interface::RollBlockResponse* unsafe_arena_release_roll_block_response();

  // .Anki.Vector.external_interface.EnrollFaceRequest enroll_face_request = 410;
  bool has_enroll_face_request() const;
  private:
  bool _internal_has_enroll_face_request() const;
  public:
  void clear_enroll_face_request();
  const ::Anki::Vector::external_interface::EnrollFaceRequest& enroll_face_request() const;
  ::Anki::Vector::external_interface::EnrollFaceRequest* release_enroll_face_request();
  ::Anki::Vector::external_interface::EnrollFaceRequest* mutable_enroll_face_request();
  void set_allocated_enroll_face_request(::Anki::Vector::external_interface::EnrollFaceRequest* enroll_face_request);
  private:
  const ::Anki::Vector::external_interface::EnrollFaceRequest& _internal_enroll_face_request() const;
  ::Anki::Vector::external_interface::EnrollFaceRequest* _internal_mutable_enroll_face_request();
  public:
  void unsafe_arena_set_allocated_enroll_face_request(
      ::Anki::Vector::external_interface::EnrollFaceRequest* enroll_face_request);
  ::Anki::Vector::external_interface::EnrollFaceRequest* unsafe_arena_release_enroll_face_request();

  // .Anki.Vector.external_interface.EnrollFaceResponse enroll_face_response = 411;
  bool has_enroll_face_response() const;
  private:
  bool _internal_has_enroll_face_response() const;
  public:
  void clear_enroll_face_response();
  const ::Anki::Vector::external_interface::EnrollFaceResponse& enroll_face_response() const;
  ::Anki::Vector::external_interface::EnrollFaceResponse* release_enroll_face_response();
  ::Anki::Vector::external_interface::EnrollFaceResponse* mutable_enroll_face_response();
  void set_allocated_enroll_face_response(::Anki::Vector::external_interface::EnrollFaceResponse* enroll_face_response);
  private:
  const ::Anki::Vector::external_interface::EnrollFaceResponse& _internal_enroll_face_response() const;
  ::Anki::Vector::external_interface::EnrollFaceResponse* _internal_mutable_enroll_face_response();
  public:
  void unsafe_arena_set_allocated_enroll_face_response(
      ::Anki::Vector::external_interface::EnrollFaceResponse* enroll_face_response);
  ::Anki::Vector::external_interface::EnrollFaceResponse* unsafe_arena_release_enroll_face_response();

  // .Anki.Vector.external_interface.SetFaceToEnrollRequest set_face_to_enroll_request = 412;
  bool has_set_face_to_enroll_request() const;
  private:
  bool _internal_has_set_face_to_enroll_request() const;
  public:
  void clear_set_face_to_enroll_request();
  const ::Anki::Vector::external_interface::SetFaceToEnrollRequest& set_face_to_enroll_request() const;
  ::Anki::Vector::external_interface::SetFaceToEnrollRequest* release_set_face_to_enroll_request();
  ::Anki::Vector::external_interface::SetFaceToEnrollRequest* mutable_set_face_to_enroll_request();
  void set_allocated_set_face_to_enroll_request(::Anki::Vector::external_interface::SetFaceToEnrollRequest* set_face_to_enroll_request);
  private:
  const ::Anki::Vector::external_interface::SetFaceToEnrollRequest& _internal_set_face_to_enroll_request() const;
  ::Anki::Vector::external_interface::SetFaceToEnrollRequest* _internal_mutable_set_face_to_enroll_request();
  public:
  void unsafe_arena_set_allocated_set_face_to_enroll_request(
      ::Anki::Vector::external_interface::SetFaceToEnrollRequest* set_face_to_enroll_request);
  ::Anki::Vector::external_interface::SetFaceToEnrollRequest* unsafe_arena_release_set_face_to_enroll_request();

  // .Anki.Vector.external_interface.SetFaceToEnrollResponse set_face_to_enroll_response = 413;
  bool has_set_face_to_enroll_response() const;
  private:
  bool _internal_has_set_face_to_enroll_response() const;
  public:
  void clear_set_face_to_enroll_response();
  const ::Anki::Vector::external_interface::SetFaceToEnrollResponse& set_face_to_enroll_response() const;
  ::Anki::Vector::external_interface::SetFaceToEnrollResponse* release_set_face_to_enroll_response();
  ::Anki::Vector::external_interface::SetFaceToEnrollResponse* mutable_set_face_to_enroll_response();
  void set_allocated_set_face_to_enroll_response(::Anki::Vector::external_interface::SetFaceToEnrollResponse* set_face_to_enroll_response);
  private:
  const ::Anki::Vector::external_interface::SetFaceToEnrollResponse& _internal_set_face_to_enroll_response() const;
  ::Anki::Vector::external_interface::SetFaceToEnrollResponse* _internal_mutable_set_face_to_enroll_response();
  public:
  void unsafe_arena_set_allocated_set_face_to_enroll_response(
      ::Anki::Vector::external_interface::SetFaceToEnrollResponse* set_face_to_enroll_response);
  ::Anki::Vector::external_interface::SetFaceToEnrollResponse* unsafe_arena_release_set_face_to_enroll_response();

  // .Anki.Vector.external_interface.CancelBehaviorRequest cancel_behavior_request = 414;
  bool has_cancel_behavior_request() const;
  private:
  bool _internal_has_cancel_behavior_request() const;
  public:
  void clear_cancel_behavior_request();
  const ::Anki::Vector::external_interface::CancelBehaviorRequest& cancel_behavior_request() const;
  ::Anki::Vector::external_interface::CancelBehaviorRequest* release_cancel_behavior_request();
  ::Anki::Vector::external_interface::CancelBehaviorRequest* mutable_cancel_behavior_request();
  void set_allocated_cancel_behavior_request(::Anki::Vector::external_interface::CancelBehaviorRequest* cancel_behavior_request);
  private:
  const ::Anki::Vector::external_interface::CancelBehaviorRequest& _internal_cancel_behavior_request() const;
  ::Anki::Vector::external_interface::CancelBehaviorRequest* _internal_mutable_cancel_behavior_request();
  public:
  void unsafe_arena_set_allocated_cancel_behavior_request(
      ::Anki::Vector::external_interface::CancelBehaviorRequest* cancel_behavior_request);
  ::Anki::Vector::external_interface::CancelBehaviorRequest* unsafe_arena_release_cancel_behavior_request();

  // .Anki.Vector.external_interface.CancelBehaviorResponse cancel_behavior_response = 415;
  bool has_cancel_behavior_response() const;
  private:
  bool _internal_has_cancel_behavior_response() const;
  public:
  void clear_cancel_behavior_response();
  const ::Anki::Vector::external_interface::CancelBehaviorResponse& cancel_behavior_response() const;
  ::Anki::Vector::external_interface::CancelBehaviorResponse* release_cancel_behavior_response();
  ::Anki::Vector::external_interface::CancelBehaviorResponse* mutable_cancel_behavior_response();
  void set_allocated_cancel_behavior_response(::Anki::Vector::external_interface::CancelBehaviorResponse* cancel_behavior_response);
  private:
  const ::Anki::Vector::external_interface::CancelBehaviorResponse& _internal_cancel_behavior_response() const;
  ::Anki::Vector::external_interface::CancelBehaviorResponse* _internal_mutable_cancel_behavior_response();
  public:
  void unsafe_arena_set_allocated_cancel_behavior_response(
      ::Anki::Vector::external_interface::CancelBehaviorResponse* cancel_behavior_response);
  ::Anki::Vector::external_interface::CancelBehaviorResponse* unsafe_arena_release_cancel_behavior_response();

  // .Anki.Vector.external_interface.TurnInPlaceRequest turn_in_place_request = 500;
  bool has_turn_in_place_request() const;
  private:
  bool _internal_has_turn_in_place_request() const;
  public:
  void clear_turn_in_place_request();
  const ::Anki::Vector::external_interface::TurnInPlaceRequest& turn_in_place_request() const;
  ::Anki::Vector::external_interface::TurnInPlaceRequest* release_turn_in_place_request();
  ::Anki::Vector::external_interface::TurnInPlaceRequest* mutable_turn_in_place_request();
  void set_allocated_turn_in_place_request(::Anki::Vector::external_interface::TurnInPlaceRequest* turn_in_place_request);
  private:
  const ::Anki::Vector::external_interface::TurnInPlaceRequest& _internal_turn_in_place_request() const;
  ::Anki::Vector::external_interface::TurnInPlaceRequest* _internal_mutable_turn_in_place_request();
  public:
  void unsafe_arena_set_allocated_turn_in_place_request(
      ::Anki::Vector::external_interface::TurnInPlaceRequest* turn_in_place_request);
  ::Anki::Vector::external_interface::TurnInPlaceRequest* unsafe_arena_release_turn_in_place_request();

  // .Anki.Vector.external_interface.TurnInPlaceResponse turn_in_place_response = 501;
  bool has_turn_in_place_response() const;
  private:
  bool _internal_has_turn_in_place_response() const;
  public:
  void clear_turn_in_place_response();
  const ::Anki::Vector::external_interface::TurnInPlaceResponse& turn_in_place_response() const;
  ::Anki::Vector::external_interface::TurnInPlaceResponse* release_turn_in_place_response();
  ::Anki::Vector::external_interface::TurnInPlaceResponse* mutable_turn_in_place_response();
  void set_allocated_turn_in_place_response(::Anki::Vector::external_interface::TurnInPlaceResponse* turn_in_place_response);
  private:
  const ::Anki::Vector::external_interface::TurnInPlaceResponse& _internal_turn_in_place_response() const;
  ::Anki::Vector::external_interface::TurnInPlaceResponse* _internal_mutable_turn_in_place_response();
  public:
  void unsafe_arena_set_allocated_turn_in_place_response(
      ::Anki::Vector::external_interface::TurnInPlaceResponse* turn_in_place_response);
  ::Anki::Vector::external_interface::TurnInPlaceResponse* unsafe_arena_release_turn_in_place_response();

  // .Anki.Vector.external_interface.DriveStraightRequest drive_straight_request = 502;
  bool has_drive_straight_request() const;
  private:
  bool _internal_has_drive_straight_request() const;
  public:
  void clear_drive_straight_request();
  const ::Anki::Vector::external_interface::DriveStraightRequest& drive_straight_request() const;
  ::Anki::Vector::external_interface::DriveStraightRequest* release_drive_straight_request();
  ::Anki::Vector::external_interface::DriveStraightRequest* mutable_drive_straight_request();
  void set_allocated_drive_straight_request(::Anki::Vector::external_interface::DriveStraightRequest* drive_straight_request);
  private:
  const ::Anki::Vector::external_interface::DriveStraightRequest& _internal_drive_straight_request() const;
  ::Anki::Vector::external_interface::DriveStraightRequest* _internal_mutable_drive_straight_request();
  public:
  void unsafe_arena_set_allocated_drive_straight_request(
      ::Anki::Vector::external_interface::DriveStraightRequest* drive_straight_request);
  ::Anki::Vector::external_interface::DriveStraightRequest* unsafe_arena_release_drive_straight_request();

  // .Anki.Vector.external_interface.DriveStraightResponse drive_straight_response = 503;
  bool has_drive_straight_response() const;
  private:
  bool _internal_has_drive_straight_response() const;
  public:
  void clear_drive_straight_response();
  const ::Anki::Vector::external_interface::DriveStraightResponse& drive_straight_response() const;
  ::Anki::Vector::external_interface::DriveStraightResponse* release_drive_straight_response();
  ::Anki::Vector::external_interface::DriveStraightResponse* mutable_drive_straight_response();
  void set_allocated_drive_straight_response(::Anki::Vector::external_interface::DriveStraightResponse* drive_straight_response);
  private:
  const ::Anki::Vector::external_interface::DriveStraightResponse& _internal_drive_straight_response() const;
  ::Anki::Vector::external_interface::DriveStraightResponse* _internal_mutable_drive_straight_response();
  public:
  void unsafe_arena_set_allocated_drive_straight_response(
      ::Anki::Vector::external_interface::DriveStraightResponse* drive_straight_response);
  ::Anki::Vector::external_interface::DriveStraightResponse* unsafe_arena_release_drive_straight_response();

  // .Anki.Vector.external_interface.SetHeadAngleRequest set_head_angle_request = 504;
  bool has_set_head_angle_request() const;
  private:
  bool _internal_has_set_head_angle_request() const;
  public:
  void clear_set_head_angle_request();
  const ::Anki::Vector::external_interface::SetHeadAngleRequest& set_head_angle_request() const;
  ::Anki::Vector::external_interface::SetHeadAngleRequest* release_set_head_angle_request();
  ::Anki::Vector::external_interface::SetHeadAngleRequest* mutable_set_head_angle_request();
  void set_allocated_set_head_angle_request(::Anki::Vector::external_interface::SetHeadAngleRequest* set_head_angle_request);
  private:
  const ::Anki::Vector::external_interface::SetHeadAngleRequest& _internal_set_head_angle_request() const;
  ::Anki::Vector::external_interface::SetHeadAngleRequest* _internal_mutable_set_head_angle_request();
  public:
  void unsafe_arena_set_allocated_set_head_angle_request(
      ::Anki::Vector::external_interface::SetHeadAngleRequest* set_head_angle_request);
  ::Anki::Vector::external_interface::SetHeadAngleRequest* unsafe_arena_release_set_head_angle_request();

  // .Anki.Vector.external_interface.SetHeadAngleResponse set_head_angle_response = 505;
  bool has_set_head_angle_response() const;
  private:
  bool _internal_has_set_head_angle_response() const;
  public:
  void clear_set_head_angle_response();
  const ::Anki::Vector::external_interface::SetHeadAngleResponse& set_head_angle_response() const;
  ::Anki::Vector::external_interface::SetHeadAngleResponse* release_set_head_angle_response();
  ::Anki::Vector::external_interface::SetHeadAngleResponse* mutable_set_head_angle_response();
  void set_allocated_set_head_angle_response(::Anki::Vector::external_interface::SetHeadAngleResponse* set_head_angle_response);
  private:
  const ::Anki::Vector::external_interface::SetHeadAngleResponse& _internal_set_head_angle_response() const;
  ::Anki::Vector::external_interface::SetHeadAngleResponse* _internal_mutable_set_head_angle_response();
  public:
  void unsafe_arena_set_allocated_set_head_angle_response(
      ::Anki::Vector::external_interface::SetHeadAngleResponse* set_head_angle_response);
  ::Anki::Vector::external_interface::SetHeadAngleResponse* unsafe_arena_release_set_head_angle_response();

  // .Anki.Vector.external_interface.SetLiftHeightRequest set_lift_height_request = 506;
  bool has_set_lift_height_request() const;
  private:
  bool _internal_has_set_lift_height_request() const;
  public:
  void clear_set_lift_height_request();
  const ::Anki::Vector::external_interface::SetLiftHeightRequest& set_lift_height_request() const;
  ::Anki::Vector::external_interface::SetLiftHeightRequest* release_set_lift_height_request();
  ::Anki::Vector::external_interface::SetLiftHeightRequest* mutable_set_lift_height_request();
  void set_allocated_set_lift_height_request(::Anki::Vector::external_interface::SetLiftHeightRequest* set_lift_height_request);
  private:
  const ::Anki::Vector::external_interface::SetLiftHeightRequest& _internal_set_lift_height_request() const;
  ::Anki::Vector::external_interface::SetLiftHeightRequest* _internal_mutable_set_lift_height_request();
  public:
  void unsafe_arena_set_allocated_set_lift_height_request(
      ::Anki::Vector::external_interface::SetLiftHeightRequest* set_lift_height_request);
  ::Anki::Vector::external_interface::SetLiftHeightRequest* unsafe_arena_release_set_lift_height_request();

  // .Anki.Vector.external_interface.SetLiftHeightResponse set_lift_height_response = 507;
  bool has_set_lift_height_response() const;
  private:
  bool _internal_has_set_lift_height_response() const;
  public:
  void clear_set_lift_height_response();
  const ::Anki::Vector::external_interface::SetLiftHeightResponse& set_lift_height_response() const;
  ::Anki::Vector::external_interface::SetLiftHeightResponse* release_set_lift_height_response();
  ::Anki::Vector::external_interface::SetLiftHeightResponse* mutable_set_lift_height_response();
  void set_allocated_set_lift_height_response(::Anki::Vector::external_interface::SetLiftHeightResponse* set_lift_height_response);
  private:
  const ::Anki::Vector::external_interface::SetLiftHeightResponse& _internal_set_lift_height_response() const;
  ::Anki::Vector::external_interface::SetLiftHeightResponse* _internal_mutable_set_lift_height_response();
  public:
  void unsafe_arena_set_allocated_set_lift_height_response(
      ::Anki::Vector::external_interface::SetLiftHeightResponse* set_lift_height_response);
  ::Anki::Vector::external_interface::SetLiftHeightResponse* unsafe_arena_release_set_lift_height_response();

  // .Anki.Vector.external_interface.PlayAnimationRequest play_animation_request = 508;
  bool has_play_animation_request() const;
  private:
  bool _internal_has_play_animation_request() const;
  public:
  void clear_play_animation_request();
  const ::Anki::Vector::external_interface::PlayAnimationRequest& play_animation_request() const;
  ::Anki::Vector::external_interface::PlayAnimationRequest* release_play_animation_request();
  ::Anki::Vector::external_interface::PlayAnimationRequest* mutable_play_animation_request();
  void set_allocated_play_animation_request(::Anki::Vector::external_interface::PlayAnimationRequest* play_animation_request);
  private:
  const ::Anki::Vector::external_interface::PlayAnimationRequest& _internal_play_animation_request() const;
  ::Anki::Vector::external_interface::PlayAnimationRequest* _internal_mutable_play_animation_request();
  public:
  void unsafe_arena_set_allocated_play_animation_request(
      ::Anki::Vector::external_interface::PlayAnimationRequest* play_animation_request);
  ::Anki::Vector::external_interface::PlayAnimationRequest* unsafe_arena_release_play_animation_request();

  // .Anki.Vector.external_interface.PlayAnimationResponse play_animation_response = 509;
  bool has_play_animation_response() const;
  private:
  bool _internal_has_play_animation_response() const;
  public:
  void clear_play_animation_response();
  const ::Anki::Vector::external_interface::PlayAnimationResponse& play_animation_response() const;
  ::Anki::Vector::external_interface::PlayAnimationResponse* release_play_animation_response();
  ::Anki::Vector::external_interface::PlayAnimationResponse* mutable_play_animation_response();
  void set_allocated_play_animation_response(::Anki::Vector::external_interface::PlayAnimationResponse* play_animation_response);
  private:
  const ::Anki::Vector::external_interface::PlayAnimationResponse& _internal_play_animation_response() const;
  ::Anki::Vector::external_interface::PlayAnimationResponse* _internal_mutable_play_animation_response();
  public:
  void unsafe_arena_set_allocated_play_animation_response(
      ::Anki::Vector::external_interface::PlayAnimationResponse* play_animation_response);
  ::Anki::Vector::external_interface::PlayAnimationResponse* unsafe_arena_release_play_animation_response();

  // .Anki.Vector.external_interface.GoToPoseRequest go_to_pose_request = 510;
  bool has_go_to_pose_request() const;
  private:
  bool _internal_has_go_to_pose_request() const;
  public:
  void clear_go_to_pose_request();
  const ::Anki::Vector::external_interface::GoToPoseRequest& go_to_pose_request() const;
  ::Anki::Vector::external_interface::GoToPoseRequest* release_go_to_pose_request();
  ::Anki::Vector::external_interface::GoToPoseRequest* mutable_go_to_pose_request();
  void set_allocated_go_to_pose_request(::Anki::Vector::external_interface::GoToPoseRequest* go_to_pose_request);
  private:
  const ::Anki::Vector::external_interface::GoToPoseRequest& _internal_go_to_pose_request() const;
  ::Anki::Vector::external_interface::GoToPoseRequest* _internal_mutable_go_to_pose_request();
  public:
  void unsafe_arena_set_allocated_go_to_pose_request(
      ::Anki::Vector::external_interface::GoToPoseRequest* go_to_pose_request);
  ::Anki::Vector::external_interface::GoToPoseRequest* unsafe_arena_release_go_to_pose_request();

  // .Anki.Vector.external_interface.GoToPoseResponse go_to_pose_response = 511;
  bool has_go_to_pose_response() const;
  private:
  bool _internal_has_go_to_pose_response() const;
  public:
  void clear_go_to_pose_response();
  const ::Anki::Vector::external_interface::GoToPoseResponse& go_to_pose_response() const;
  ::Anki::Vector::external_interface::GoToPoseResponse* release_go_to_pose_response();
  ::Anki::Vector::external_interface::GoToPoseResponse* mutable_go_to_pose_response();
  void set_allocated_go_to_pose_response(::Anki::Vector::external_interface::GoToPoseResponse* go_to_pose_response);
  private:
  const ::Anki::Vector::external_interface::GoToPoseResponse& _internal_go_to_pose_response() const;
  ::Anki::Vector::external_interface::GoToPoseResponse* _internal_mutable_go_to_pose_response();
  public:
  void unsafe_arena_set_allocated_go_to_pose_response(
      ::Anki::Vector::external_interface::GoToPoseResponse* go_to_pose_response);
  ::Anki::Vector::external_interface::GoToPoseResponse* unsafe_arena_release_go_to_pose_response();

  // .Anki.Vector.external_interface.DockWithCubeRequest dock_with_cube_request = 512;
  bool has_dock_with_cube_request() const;
  private:
  bool _internal_has_dock_with_cube_request() const;
  public:
  void clear_dock_with_cube_request();
  const ::Anki::Vector::external_interface::DockWithCubeRequest& dock_with_cube_request() const;
  ::Anki::Vector::external_interface::DockWithCubeRequest* release_dock_with_cube_request();
  ::Anki::Vector::external_interface::DockWithCubeRequest* mutable_dock_with_cube_request();
  void set_allocated_dock_with_cube_request(::Anki::Vector::external_interface::DockWithCubeRequest* dock_with_cube_request);
  private:
  const ::Anki::Vector::external_interface::DockWithCubeRequest& _internal_dock_with_cube_request() const;
  ::Anki::Vector::external_interface::DockWithCubeRequest* _internal_mutable_dock_with_cube_request();
  public:
  void unsafe_arena_set_allocated_dock_with_cube_request(
      ::Anki::Vector::external_interface::DockWithCubeRequest* dock_with_cube_request);
  ::Anki::Vector::external_interface::DockWithCubeRequest* unsafe_arena_release_dock_with_cube_request();

  // .Anki.Vector.external_interface.DockWithCubeResponse dock_with_cube_response = 513;
  bool has_dock_with_cube_response() const;
  private:
  bool _internal_has_dock_with_cube_response() const;
  public:
  void clear_dock_with_cube_response();
  const ::Anki::Vector::external_interface::DockWithCubeResponse& dock_with_cube_response() const;
  ::Anki::Vector::external_interface::DockWithCubeResponse* release_dock_with_cube_response();
  ::Anki::Vector::external_interface::DockWithCubeResponse* mutable_dock_with_cube_response();
  void set_allocated_dock_with_cube_response(::Anki::Vector::external_interface::DockWithCubeResponse* dock_with_cube_response);
  private:
  const ::Anki::Vector::external_interface::DockWithCubeResponse& _internal_dock_with_cube_response() const;
  ::Anki::Vector::external_interface::DockWithCubeResponse* _internal_mutable_dock_with_cube_response();
  public:
  void unsafe_arena_set_allocated_dock_with_cube_response(
      ::Anki::Vector::external_interface::DockWithCubeResponse* dock_with_cube_response);
  ::Anki::Vector::external_interface::DockWithCubeResponse* unsafe_arena_release_dock_with_cube_response();

  // .Anki.Vector.external_interface.DriveWheelsRequest drive_wheels_request = 514;
  bool has_drive_wheels_request() const;
  private:
  bool _internal_has_drive_wheels_request() const;
  public:
  void clear_drive_wheels_request();
  const ::Anki::Vector::external_interface::DriveWheelsRequest& drive_wheels_request() const;
  ::Anki::Vector::external_interface::DriveWheelsRequest* release_drive_wheels_request();
  ::Anki::Vector::external_interface::DriveWheelsRequest* mutable_drive_wheels_request();
  void set_allocated_drive_wheels_request(::Anki::Vector::external_interface::DriveWheelsRequest* drive_wheels_request);
  private:
  const ::Anki::Vector::external_interface::DriveWheelsRequest& _internal_drive_wheels_request() const;
  ::Anki::Vector::external_interface::DriveWheelsRequest* _internal_mutable_drive_wheels_request();
  public:
  void unsafe_arena_set_allocated_drive_wheels_request(
      ::Anki::Vector::external_interface::DriveWheelsRequest* drive_wheels_request);
  ::Anki::Vector::external_interface::DriveWheelsRequest* unsafe_arena_release_drive_wheels_request();

  // .Anki.Vector.external_interface.DriveWheelsResponse drive_wheels_response = 515;
  bool has_drive_wheels_response() const;
  private:
  bool _internal_has_drive_wheels_response() const;
  public:
  void clear_drive_wheels_response();
  const ::Anki::Vector::external_interface::DriveWheelsResponse& drive_wheels_response() const;
  ::Anki::Vector::external_interface::DriveWheelsResponse* release_drive_wheels_response();
  ::Anki::Vector::external_interface::DriveWheelsResponse* mutable_drive_wheels_response();
  void set_allocated_drive_wheels_response(::Anki::Vector::external_interface::DriveWheelsResponse* drive_wheels_response);
  private:
  const ::Anki::Vector::external_interface::DriveWheelsResponse& _internal_drive_wheels_response() const;
  ::Anki::Vector::external_interface::DriveWheelsResponse* _internal_mutable_drive_wheels_response();
  public:
  void unsafe_arena_set_allocated_drive_wheels_response(
      ::Anki::Vector::external_interface::DriveWheelsResponse* drive_wheels_response);
  ::Anki::Vector::external_interface::DriveWheelsResponse* unsafe_arena_release_drive_wheels_response();

  // .Anki.Vector.external_interface.ListAnimationsRequest list_animations_request = 516;
  bool has_list_animations_request() const;
  private:
  bool _internal_has_list_animations_request() const;
  public:
  void clear_list_animations_request();
  const ::Anki::Vector::external_interface::ListAnimationsRequest& list_animations_request() const;
  ::Anki::Vector::external_interface::ListAnimationsRequest* release_list_animations_request();
  ::Anki::Vector::external_interface::ListAnimationsRequest* mutable_list_animations_request();
  void set_allocated_list_animations_request(::Anki::Vector::external_interface::ListAnimationsRequest* list_animations_request);
  private:
  const ::Anki::Vector::external_interface::ListAnimationsRequest& _internal_list_animations_request() const;
  ::Anki::Vector::external_interface::ListAnimationsRequest* _internal_mutable_list_animations_request();
  public:
  void unsafe_arena_set_allocated_list_animations_request(
      ::Anki::Vector::external_interface::ListAnimationsRequest* list_animations_request);
  ::Anki::Vector::external_interface::ListAnimationsRequest* unsafe_arena_release_list_animations_request();

  // .Anki.Vector.external_interface.ListAnimationsResponse list_animations_response = 517;
  bool has_list_animations_response() const;
  private:
  bool _internal_has_list_animations_response() const;
  public:
  void clear_list_animations_response();
  const ::Anki::Vector::external_interface::ListAnimationsResponse& list_animations_response() const;
  ::Anki::Vector::external_interface::ListAnimationsResponse* release_list_animations_response();
  ::Anki::Vector::external_interface::ListAnimationsResponse* mutable_list_animations_response();
  void set_allocated_list_animations_response(::Anki::Vector::external_interface::ListAnimationsResponse* list_animations_response);
  private:
  const ::Anki::Vector::external_interface::ListAnimationsResponse& _internal_list_animations_response() const;
  ::Anki::Vector::external_interface::ListAnimationsResponse* _internal_mutable_list_animations_response();
  public:
  void unsafe_arena_set_allocated_list_animations_response(
      ::Anki::Vector::external_interface::ListAnimationsResponse* list_animations_response);
  ::Anki::Vector::external_interface::ListAnimationsResponse* unsafe_arena_release_list_animations_response();

  // .Anki.Vector.external_interface.PlayAnimationTriggerRequest play_animation_trigger_request = 518;
  bool has_play_animation_trigger_request() const;
  private:
  bool _internal_has_play_animation_trigger_request() const;
  public:
  void clear_play_animation_trigger_request();
  const ::Anki::Vector::external_interface::PlayAnimationTriggerRequest& play_animation_trigger_request() const;
  ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* release_play_animation_trigger_request();
  ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* mutable_play_animation_trigger_request();
  void set_allocated_play_animation_trigger_request(::Anki::Vector::external_interface::PlayAnimationTriggerRequest* play_animation_trigger_request);
  private:
  const ::Anki::Vector::external_interface::PlayAnimationTriggerRequest& _internal_play_animation_trigger_request() const;
  ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* _internal_mutable_play_animation_trigger_request();
  public:
  void unsafe_arena_set_allocated_play_animation_trigger_request(
      ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* play_animation_trigger_request);
  ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* unsafe_arena_release_play_animation_trigger_request();

  // .Anki.Vector.external_interface.ListAnimationTriggersRequest list_animation_triggers_request = 519;
  bool has_list_animation_triggers_request() const;
  private:
  bool _internal_has_list_animation_triggers_request() const;
  public:
  void clear_list_animation_triggers_request();
  const ::Anki::Vector::external_interface::ListAnimationTriggersRequest& list_animation_triggers_request() const;
  ::Anki::Vector::external_interface::ListAnimationTriggersRequest* release_list_animation_triggers_request();
  ::Anki::Vector::external_interface::ListAnimationTriggersRequest* mutable_list_animation_triggers_request();
  void set_allocated_list_animation_triggers_request(::Anki::Vector::external_interface::ListAnimationTriggersRequest* list_animation_triggers_request);
  private:
  const ::Anki::Vector::external_interface::ListAnimationTriggersRequest& _internal_list_animation_triggers_request() const;
  ::Anki::Vector::external_interface::ListAnimationTriggersRequest* _internal_mutable_list_animation_triggers_request();
  public:
  void unsafe_arena_set_allocated_list_animation_triggers_request(
      ::Anki::Vector::external_interface::ListAnimationTriggersRequest* list_animation_triggers_request);
  ::Anki::Vector::external_interface::ListAnimationTriggersRequest* unsafe_arena_release_list_animation_triggers_request();

  // .Anki.Vector.external_interface.ListAnimationTriggersResponse list_animation_triggers_response = 520;
  bool has_list_animation_triggers_response() const;
  private:
  bool _internal_has_list_animation_triggers_response() const;
  public:
  void clear_list_animation_triggers_response();
  const ::Anki::Vector::external_interface::ListAnimationTriggersResponse& list_animation_triggers_response() const;
  ::Anki::Vector::external_interface::ListAnimationTriggersResponse* release_list_animation_triggers_response();
  ::Anki::Vector::external_interface::ListAnimationTriggersResponse* mutable_list_animation_triggers_response();
  void set_allocated_list_animation_triggers_response(::Anki::Vector::external_interface::ListAnimationTriggersResponse* list_animation_triggers_response);
  private:
  const ::Anki::Vector::external_interface::ListAnimationTriggersResponse& _internal_list_animation_triggers_response() const;
  ::Anki::Vector::external_interface::ListAnimationTriggersResponse* _internal_mutable_list_animation_triggers_response();
  public:
  void unsafe_arena_set_allocated_list_animation_triggers_response(
      ::Anki::Vector::external_interface::ListAnimationTriggersResponse* list_animation_triggers_response);
  ::Anki::Vector::external_interface::ListAnimationTriggersResponse* unsafe_arena_release_list_animation_triggers_response();

  // .Anki.Vector.external_interface.CancelActionByIdTagRequest cancel_action_by_id_tag_request = 521;
  bool has_cancel_action_by_id_tag_request() const;
  private:
  bool _internal_has_cancel_action_by_id_tag_request() const;
  public:
  void clear_cancel_action_by_id_tag_request();
  const ::Anki::Vector::external_interface::CancelActionByIdTagRequest& cancel_action_by_id_tag_request() const;
  ::Anki::Vector::external_interface::CancelActionByIdTagRequest* release_cancel_action_by_id_tag_request();
  ::Anki::Vector::external_interface::CancelActionByIdTagRequest* mutable_cancel_action_by_id_tag_request();
  void set_allocated_cancel_action_by_id_tag_request(::Anki::Vector::external_interface::CancelActionByIdTagRequest* cancel_action_by_id_tag_request);
  private:
  const ::Anki::Vector::external_interface::CancelActionByIdTagRequest& _internal_cancel_action_by_id_tag_request() const;
  ::Anki::Vector::external_interface::CancelActionByIdTagRequest* _internal_mutable_cancel_action_by_id_tag_request();
  public:
  void unsafe_arena_set_allocated_cancel_action_by_id_tag_request(
      ::Anki::Vector::external_interface::CancelActionByIdTagRequest* cancel_action_by_id_tag_request);
  ::Anki::Vector::external_interface::CancelActionByIdTagRequest* unsafe_arena_release_cancel_action_by_id_tag_request();

  // .Anki.Vector.external_interface.CancelActionByIdTagResponse cancel_action_by_id_tag_response = 522;
  bool has_cancel_action_by_id_tag_response() const;
  private:
  bool _internal_has_cancel_action_by_id_tag_response() const;
  public:
  void clear_cancel_action_by_id_tag_response();
  const ::Anki::Vector::external_interface::CancelActionByIdTagResponse& cancel_action_by_id_tag_response() const;
  ::Anki::Vector::external_interface::CancelActionByIdTagResponse* release_cancel_action_by_id_tag_response();
  ::Anki::Vector::external_interface::CancelActionByIdTagResponse* mutable_cancel_action_by_id_tag_response();
  void set_allocated_cancel_action_by_id_tag_response(::Anki::Vector::external_interface::CancelActionByIdTagResponse* cancel_action_by_id_tag_response);
  private:
  const ::Anki::Vector::external_interface::CancelActionByIdTagResponse& _internal_cancel_action_by_id_tag_response() const;
  ::Anki::Vector::external_interface::CancelActionByIdTagResponse* _internal_mutable_cancel_action_by_id_tag_response();
  public:
  void unsafe_arena_set_allocated_cancel_action_by_id_tag_response(
      ::Anki::Vector::external_interface::CancelActionByIdTagResponse* cancel_action_by_id_tag_response);
  ::Anki::Vector::external_interface::CancelActionByIdTagResponse* unsafe_arena_release_cancel_action_by_id_tag_response();

  // .Anki.Vector.external_interface.TurnTowardsFaceRequest turn_towards_face_request = 523;
  bool has_turn_towards_face_request() const;
  private:
  bool _internal_has_turn_towards_face_request() const;
  public:
  void clear_turn_towards_face_request();
  const ::Anki::Vector::external_interface::TurnTowardsFaceRequest& turn_towards_face_request() const;
  ::Anki::Vector::external_interface::TurnTowardsFaceRequest* release_turn_towards_face_request();
  ::Anki::Vector::external_interface::TurnTowardsFaceRequest* mutable_turn_towards_face_request();
  void set_allocated_turn_towards_face_request(::Anki::Vector::external_interface::TurnTowardsFaceRequest* turn_towards_face_request);
  private:
  const ::Anki::Vector::external_interface::TurnTowardsFaceRequest& _internal_turn_towards_face_request() const;
  ::Anki::Vector::external_interface::TurnTowardsFaceRequest* _internal_mutable_turn_towards_face_request();
  public:
  void unsafe_arena_set_allocated_turn_towards_face_request(
      ::Anki::Vector::external_interface::TurnTowardsFaceRequest* turn_towards_face_request);
  ::Anki::Vector::external_interface::TurnTowardsFaceRequest* unsafe_arena_release_turn_towards_face_request();

  // .Anki.Vector.external_interface.TurnTowardsFaceResponse turn_towards_face_response = 524;
  bool has_turn_towards_face_response() const;
  private:
  bool _internal_has_turn_towards_face_response() const;
  public:
  void clear_turn_towards_face_response();
  const ::Anki::Vector::external_interface::TurnTowardsFaceResponse& turn_towards_face_response() const;
  ::Anki::Vector::external_interface::TurnTowardsFaceResponse* release_turn_towards_face_response();
  ::Anki::Vector::external_interface::TurnTowardsFaceResponse* mutable_turn_towards_face_response();
  void set_allocated_turn_towards_face_response(::Anki::Vector::external_interface::TurnTowardsFaceResponse* turn_towards_face_response);
  private:
  const ::Anki::Vector::external_interface::TurnTowardsFaceResponse& _internal_turn_towards_face_response() const;
  ::Anki::Vector::external_interface::TurnTowardsFaceResponse* _internal_mutable_turn_towards_face_response();
  public:
  void unsafe_arena_set_allocated_turn_towards_face_response(
      ::Anki::Vector::external_interface::TurnTowardsFaceResponse* turn_towards_face_response);
  ::Anki::Vector::external_interface::TurnTowardsFaceResponse* unsafe_arena_release_turn_towards_face_response();

  // .Anki.Vector.external_interface.GoToObjectRequest go_to_object_request = 525;
  bool has_go_to_object_request() const;
  private:
  bool _internal_has_go_to_object_request() const;
  public:
  void clear_go_to_object_request();
  const ::Anki::Vector::external_interface::GoToObjectRequest& go_to_object_request() const;
  ::Anki::Vector::external_interface::GoToObjectRequest* release_go_to_object_request();
  ::Anki::Vector::external_interface::GoToObjectRequest* mutable_go_to_object_request();
  void set_allocated_go_to_object_request(::Anki::Vector::external_interface::GoToObjectRequest* go_to_object_request);
  private:
  const ::Anki::Vector::external_interface::GoToObjectRequest& _internal_go_to_object_request() const;
  ::Anki::Vector::external_interface::GoToObjectRequest* _internal_mutable_go_to_object_request();
  public:
  void unsafe_arena_set_allocated_go_to_object_request(
      ::Anki::Vector::external_interface::GoToObjectRequest* go_to_object_request);
  ::Anki::Vector::external_interface::GoToObjectRequest* unsafe_arena_release_go_to_object_request();

  // .Anki.Vector.external_interface.GoToObjectResponse go_to_object_response = 526;
  bool has_go_to_object_response() const;
  private:
  bool _internal_has_go_to_object_response() const;
  public:
  void clear_go_to_object_response();
  const ::Anki::Vector::external_interface::GoToObjectResponse& go_to_object_response() const;
  ::Anki::Vector::external_interface::GoToObjectResponse* release_go_to_object_response();
  ::Anki::Vector::external_interface::GoToObjectResponse* mutable_go_to_object_response();
  void set_allocated_go_to_object_response(::Anki::Vector::external_interface::GoToObjectResponse* go_to_object_response);
  private:
  const ::Anki::Vector::external_interface::GoToObjectResponse& _internal_go_to_object_response() const;
  ::Anki::Vector::external_interface::GoToObjectResponse* _internal_mutable_go_to_object_response();
  public:
  void unsafe_arena_set_allocated_go_to_object_response(
      ::Anki::Vector::external_interface::GoToObjectResponse* go_to_object_response);
  ::Anki::Vector::external_interface::GoToObjectResponse* unsafe_arena_release_go_to_object_response();

  // .Anki.Vector.external_interface.RollObjectRequest roll_object_request = 527;
  bool has_roll_object_request() const;
  private:
  bool _internal_has_roll_object_request() const;
  public:
  void clear_roll_object_request();
  const ::Anki::Vector::external_interface::RollObjectRequest& roll_object_request() const;
  ::Anki::Vector::external_interface::RollObjectRequest* release_roll_object_request();
  ::Anki::Vector::external_interface::RollObjectRequest* mutable_roll_object_request();
  void set_allocated_roll_object_request(::Anki::Vector::external_interface::RollObjectRequest* roll_object_request);
  private:
  const ::Anki::Vector::external_interface::RollObjectRequest& _internal_roll_object_request() const;
  ::Anki::Vector::external_interface::RollObjectRequest* _internal_mutable_roll_object_request();
  public:
  void unsafe_arena_set_allocated_roll_object_request(
      ::Anki::Vector::external_interface::RollObjectRequest* roll_object_request);
  ::Anki::Vector::external_interface::RollObjectRequest* unsafe_arena_release_roll_object_request();

  // .Anki.Vector.external_interface.RollObjectResponse roll_object_response = 528;
  bool has_roll_object_response() const;
  private:
  bool _internal_has_roll_object_response() const;
  public:
  void clear_roll_object_response();
  const ::Anki::Vector::external_interface::RollObjectResponse& roll_object_response() const;
  ::Anki::Vector::external_interface::RollObjectResponse* release_roll_object_response();
  ::Anki::Vector::external_interface::RollObjectResponse* mutable_roll_object_response();
  void set_allocated_roll_object_response(::Anki::Vector::external_interface::RollObjectResponse* roll_object_response);
  private:
  const ::Anki::Vector::external_interface::RollObjectResponse& _internal_roll_object_response() const;
  ::Anki::Vector::external_interface::RollObjectResponse* _internal_mutable_roll_object_response();
  public:
  void unsafe_arena_set_allocated_roll_object_response(
      ::Anki::Vector::external_interface::RollObjectResponse* roll_object_response);
  ::Anki::Vector::external_interface::RollObjectResponse* unsafe_arena_release_roll_object_response();

  // .Anki.Vector.external_interface.PopAWheelieRequest pop_a_wheelie_request = 529;
  bool has_pop_a_wheelie_request() const;
  private:
  bool _internal_has_pop_a_wheelie_request() const;
  public:
  void clear_pop_a_wheelie_request();
  const ::Anki::Vector::external_interface::PopAWheelieRequest& pop_a_wheelie_request() const;
  ::Anki::Vector::external_interface::PopAWheelieRequest* release_pop_a_wheelie_request();
  ::Anki::Vector::external_interface::PopAWheelieRequest* mutable_pop_a_wheelie_request();
  void set_allocated_pop_a_wheelie_request(::Anki::Vector::external_interface::PopAWheelieRequest* pop_a_wheelie_request);
  private:
  const ::Anki::Vector::external_interface::PopAWheelieRequest& _internal_pop_a_wheelie_request() const;
  ::Anki::Vector::external_interface::PopAWheelieRequest* _internal_mutable_pop_a_wheelie_request();
  public:
  void unsafe_arena_set_allocated_pop_a_wheelie_request(
      ::Anki::Vector::external_interface::PopAWheelieRequest* pop_a_wheelie_request);
  ::Anki::Vector::external_interface::PopAWheelieRequest* unsafe_arena_release_pop_a_wheelie_request();

  // .Anki.Vector.external_interface.PopAWheelieResponse pop_a_wheelie_response = 530;
  bool has_pop_a_wheelie_response() const;
  private:
  bool _internal_has_pop_a_wheelie_response() const;
  public:
  void clear_pop_a_wheelie_response();
  const ::Anki::Vector::external_interface::PopAWheelieResponse& pop_a_wheelie_response() const;
  ::Anki::Vector::external_interface::PopAWheelieResponse* release_pop_a_wheelie_response();
  ::Anki::Vector::external_interface::PopAWheelieResponse* mutable_pop_a_wheelie_response();
  void set_allocated_pop_a_wheelie_response(::Anki::Vector::external_interface::PopAWheelieResponse* pop_a_wheelie_response);
  private:
  const ::Anki::Vector::external_interface::PopAWheelieResponse& _internal_pop_a_wheelie_response() const;
  ::Anki::Vector::external_interface::PopAWheelieResponse* _internal_mutable_pop_a_wheelie_response();
  public:
  void unsafe_arena_set_allocated_pop_a_wheelie_response(
      ::Anki::Vector::external_interface::PopAWheelieResponse* pop_a_wheelie_response);
  ::Anki::Vector::external_interface::PopAWheelieResponse* unsafe_arena_release_pop_a_wheelie_response();

  // .Anki.Vector.external_interface.PickupObjectRequest pickup_object_request = 531;
  bool has_pickup_object_request() const;
  private:
  bool _internal_has_pickup_object_request() const;
  public:
  void clear_pickup_object_request();
  const ::Anki::Vector::external_interface::PickupObjectRequest& pickup_object_request() const;
  ::Anki::Vector::external_interface::PickupObjectRequest* release_pickup_object_request();
  ::Anki::Vector::external_interface::PickupObjectRequest* mutable_pickup_object_request();
  void set_allocated_pickup_object_request(::Anki::Vector::external_interface::PickupObjectRequest* pickup_object_request);
  private:
  const ::Anki::Vector::external_interface::PickupObjectRequest& _internal_pickup_object_request() const;
  ::Anki::Vector::external_interface::PickupObjectRequest* _internal_mutable_pickup_object_request();
  public:
  void unsafe_arena_set_allocated_pickup_object_request(
      ::Anki::Vector::external_interface::PickupObjectRequest* pickup_object_request);
  ::Anki::Vector::external_interface::PickupObjectRequest* unsafe_arena_release_pickup_object_request();

  // .Anki.Vector.external_interface.PickupObjectResponse pickup_object_response = 532;
  bool has_pickup_object_response() const;
  private:
  bool _internal_has_pickup_object_response() const;
  public:
  void clear_pickup_object_response();
  const ::Anki::Vector::external_interface::PickupObjectResponse& pickup_object_response() const;
  ::Anki::Vector::external_interface::PickupObjectResponse* release_pickup_object_response();
  ::Anki::Vector::external_interface::PickupObjectResponse* mutable_pickup_object_response();
  void set_allocated_pickup_object_response(::Anki::Vector::external_interface::PickupObjectResponse* pickup_object_response);
  private:
  const ::Anki::Vector::external_interface::PickupObjectResponse& _internal_pickup_object_response() const;
  ::Anki::Vector::external_interface::PickupObjectResponse* _internal_mutable_pickup_object_response();
  public:
  void unsafe_arena_set_allocated_pickup_object_response(
      ::Anki::Vector::external_interface::PickupObjectResponse* pickup_object_response);
  ::Anki::Vector::external_interface::PickupObjectResponse* unsafe_arena_release_pickup_object_response();

  // .Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest place_object_on_ground_here_request = 533;
  bool has_place_object_on_ground_here_request() const;
  private:
  bool _internal_has_place_object_on_ground_here_request() const;
  public:
  void clear_place_object_on_ground_here_request();
  const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest& place_object_on_ground_here_request() const;
  ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* release_place_object_on_ground_here_request();
  ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* mutable_place_object_on_ground_here_request();
  void set_allocated_place_object_on_ground_here_request(::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* place_object_on_ground_here_request);
  private:
  const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest& _internal_place_object_on_ground_here_request() const;
  ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* _internal_mutable_place_object_on_ground_here_request();
  public:
  void unsafe_arena_set_allocated_place_object_on_ground_here_request(
      ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* place_object_on_ground_here_request);
  ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* unsafe_arena_release_place_object_on_ground_here_request();

  // .Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse place_object_on_ground_here_response = 534;
  bool has_place_object_on_ground_here_response() const;
  private:
  bool _internal_has_place_object_on_ground_here_response() const;
  public:
  void clear_place_object_on_ground_here_response();
  const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse& place_object_on_ground_here_response() const;
  ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* release_place_object_on_ground_here_response();
  ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* mutable_place_object_on_ground_here_response();
  void set_allocated_place_object_on_ground_here_response(::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* place_object_on_ground_here_response);
  private:
  const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse& _internal_place_object_on_ground_here_response() const;
  ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* _internal_mutable_place_object_on_ground_here_response();
  public:
  void unsafe_arena_set_allocated_place_object_on_ground_here_response(
      ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* place_object_on_ground_here_response);
  ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* unsafe_arena_release_place_object_on_ground_here_response();

  // .Anki.Vector.external_interface.StopAllMotorsRequest stop_all_motors_request = 535;
  bool has_stop_all_motors_request() const;
  private:
  bool _internal_has_stop_all_motors_request() const;
  public:
  void clear_stop_all_motors_request();
  const ::Anki::Vector::external_interface::StopAllMotorsRequest& stop_all_motors_request() const;
  ::Anki::Vector::external_interface::StopAllMotorsRequest* release_stop_all_motors_request();
  ::Anki::Vector::external_interface::StopAllMotorsRequest* mutable_stop_all_motors_request();
  void set_allocated_stop_all_motors_request(::Anki::Vector::external_interface::StopAllMotorsRequest* stop_all_motors_request);
  private:
  const ::Anki::Vector::external_interface::StopAllMotorsRequest& _internal_stop_all_motors_request() const;
  ::Anki::Vector::external_interface::StopAllMotorsRequest* _internal_mutable_stop_all_motors_request();
  public:
  void unsafe_arena_set_allocated_stop_all_motors_request(
      ::Anki::Vector::external_interface::StopAllMotorsRequest* stop_all_motors_request);
  ::Anki::Vector::external_interface::StopAllMotorsRequest* unsafe_arena_release_stop_all_motors_request();

  // .Anki.Vector.external_interface.StopAllMotorsResponse stop_all_motors_response = 536;
  bool has_stop_all_motors_response() const;
  private:
  bool _internal_has_stop_all_motors_response() const;
  public:
  void clear_stop_all_motors_response();
  const ::Anki::Vector::external_interface::StopAllMotorsResponse& stop_all_motors_response() const;
  ::Anki::Vector::external_interface::StopAllMotorsResponse* release_stop_all_motors_response();
  ::Anki::Vector::external_interface::StopAllMotorsResponse* mutable_stop_all_motors_response();
  void set_allocated_stop_all_motors_response(::Anki::Vector::external_interface::StopAllMotorsResponse* stop_all_motors_response);
  private:
  const ::Anki::Vector::external_interface::StopAllMotorsResponse& _internal_stop_all_motors_response() const;
  ::Anki::Vector::external_interface::StopAllMotorsResponse* _internal_mutable_stop_all_motors_response();
  public:
  void unsafe_arena_set_allocated_stop_all_motors_response(
      ::Anki::Vector::external_interface::StopAllMotorsResponse* stop_all_motors_response);
  ::Anki::Vector::external_interface::StopAllMotorsResponse* unsafe_arena_release_stop_all_motors_response();

  // .Anki.Vector.external_interface.RobotHistoryRequest robot_history_request = 600;
  bool has_robot_history_request() const;
  private:
  bool _internal_has_robot_history_request() const;
  public:
  void clear_robot_history_request();
  const ::Anki::Vector::external_interface::RobotHistoryRequest& robot_history_request() const;
  ::Anki::Vector::external_interface::RobotHistoryRequest* release_robot_history_request();
  ::Anki::Vector::external_interface::RobotHistoryRequest* mutable_robot_history_request();
  void set_allocated_robot_history_request(::Anki::Vector::external_interface::RobotHistoryRequest* robot_history_request);
  private:
  const ::Anki::Vector::external_interface::RobotHistoryRequest& _internal_robot_history_request() const;
  ::Anki::Vector::external_interface::RobotHistoryRequest* _internal_mutable_robot_history_request();
  public:
  void unsafe_arena_set_allocated_robot_history_request(
      ::Anki::Vector::external_interface::RobotHistoryRequest* robot_history_request);
  ::Anki::Vector::external_interface::RobotHistoryRequest* unsafe_arena_release_robot_history_request();

  // .Anki.Vector.external_interface.RobotHistoryResponse robot_history_response = 601;
  bool has_robot_history_response() const;
  private:
  bool _internal_has_robot_history_response() const;
  public:
  void clear_robot_history_response();
  const ::Anki::Vector::external_interface::RobotHistoryResponse& robot_history_response() const;
  ::Anki::Vector::external_interface::RobotHistoryResponse* release_robot_history_response();
  ::Anki::Vector::external_interface::RobotHistoryResponse* mutable_robot_history_response();
  void set_allocated_robot_history_response(::Anki::Vector::external_interface::RobotHistoryResponse* robot_history_response);
  private:
  const ::Anki::Vector::external_interface::RobotHistoryResponse& _internal_robot_history_response() const;
  ::Anki::Vector::external_interface::RobotHistoryResponse* _internal_mutable_robot_history_response();
  public:
  void unsafe_arena_set_allocated_robot_history_response(
      ::Anki::Vector::external_interface::RobotHistoryResponse* robot_history_response);
  ::Anki::Vector::external_interface::RobotHistoryResponse* unsafe_arena_release_robot_history_response();

  // .Anki.Vector.external_interface.ConnectCubeRequest connect_cube_request = 700;
  bool has_connect_cube_request() const;
  private:
  bool _internal_has_connect_cube_request() const;
  public:
  void clear_connect_cube_request();
  const ::Anki::Vector::external_interface::ConnectCubeRequest& connect_cube_request() const;
  ::Anki::Vector::external_interface::ConnectCubeRequest* release_connect_cube_request();
  ::Anki::Vector::external_interface::ConnectCubeRequest* mutable_connect_cube_request();
  void set_allocated_connect_cube_request(::Anki::Vector::external_interface::ConnectCubeRequest* connect_cube_request);
  private:
  const ::Anki::Vector::external_interface::ConnectCubeRequest& _internal_connect_cube_request() const;
  ::Anki::Vector::external_interface::ConnectCubeRequest* _internal_mutable_connect_cube_request();
  public:
  void unsafe_arena_set_allocated_connect_cube_request(
      ::Anki::Vector::external_interface::ConnectCubeRequest* connect_cube_request);
  ::Anki::Vector::external_interface::ConnectCubeRequest* unsafe_arena_release_connect_cube_request();

  // .Anki.Vector.external_interface.ConnectCubeResponse connect_cube_response = 701;
  bool has_connect_cube_response() const;
  private:
  bool _internal_has_connect_cube_response() const;
  public:
  void clear_connect_cube_response();
  const ::Anki::Vector::external_interface::ConnectCubeResponse& connect_cube_response() const;
  ::Anki::Vector::external_interface::ConnectCubeResponse* release_connect_cube_response();
  ::Anki::Vector::external_interface::ConnectCubeResponse* mutable_connect_cube_response();
  void set_allocated_connect_cube_response(::Anki::Vector::external_interface::ConnectCubeResponse* connect_cube_response);
  private:
  const ::Anki::Vector::external_interface::ConnectCubeResponse& _internal_connect_cube_response() const;
  ::Anki::Vector::external_interface::ConnectCubeResponse* _internal_mutable_connect_cube_response();
  public:
  void unsafe_arena_set_allocated_connect_cube_response(
      ::Anki::Vector::external_interface::ConnectCubeResponse* connect_cube_response);
  ::Anki::Vector::external_interface::ConnectCubeResponse* unsafe_arena_release_connect_cube_response();

  // .Anki.Vector.external_interface.DisconnectCubeRequest disconnect_cube_request = 702;
  bool has_disconnect_cube_request() const;
  private:
  bool _internal_has_disconnect_cube_request() const;
  public:
  void clear_disconnect_cube_request();
  const ::Anki::Vector::external_interface::DisconnectCubeRequest& disconnect_cube_request() const;
  ::Anki::Vector::external_interface::DisconnectCubeRequest* release_disconnect_cube_request();
  ::Anki::Vector::external_interface::DisconnectCubeRequest* mutable_disconnect_cube_request();
  void set_allocated_disconnect_cube_request(::Anki::Vector::external_interface::DisconnectCubeRequest* disconnect_cube_request);
  private:
  const ::Anki::Vector::external_interface::DisconnectCubeRequest& _internal_disconnect_cube_request() const;
  ::Anki::Vector::external_interface::DisconnectCubeRequest* _internal_mutable_disconnect_cube_request();
  public:
  void unsafe_arena_set_allocated_disconnect_cube_request(
      ::Anki::Vector::external_interface::DisconnectCubeRequest* disconnect_cube_request);
  ::Anki::Vector::external_interface::DisconnectCubeRequest* unsafe_arena_release_disconnect_cube_request();

  // .Anki.Vector.external_interface.FlashCubeLightsRequest flash_cube_lights_request = 703;
  bool has_flash_cube_lights_request() const;
  private:
  bool _internal_has_flash_cube_lights_request() const;
  public:
  void clear_flash_cube_lights_request();
  const ::Anki::Vector::external_interface::FlashCubeLightsRequest& flash_cube_lights_request() const;
  ::Anki::Vector::external_interface::FlashCubeLightsRequest* release_flash_cube_lights_request();
  ::Anki::Vector::external_interface::FlashCubeLightsRequest* mutable_flash_cube_lights_request();
  void set_allocated_flash_cube_lights_request(::Anki::Vector::external_interface::FlashCubeLightsRequest* flash_cube_lights_request);
  private:
  const ::Anki::Vector::external_interface::FlashCubeLightsRequest& _internal_flash_cube_lights_request() const;
  ::Anki::Vector::external_interface::FlashCubeLightsRequest* _internal_mutable_flash_cube_lights_request();
  public:
  void unsafe_arena_set_allocated_flash_cube_lights_request(
      ::Anki::Vector::external_interface::FlashCubeLightsRequest* flash_cube_lights_request);
  ::Anki::Vector::external_interface::FlashCubeLightsRequest* unsafe_arena_release_flash_cube_lights_request();

  // .Anki.Vector.external_interface.ForgetPreferredCubeRequest forget_preferred_cube_request = 704;
  bool has_forget_preferred_cube_request() const;
  private:
  bool _internal_has_forget_preferred_cube_request() const;
  public:
  void clear_forget_preferred_cube_request();
  const ::Anki::Vector::external_interface::ForgetPreferredCubeRequest& forget_preferred_cube_request() const;
  ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* release_forget_preferred_cube_request();
  ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* mutable_forget_preferred_cube_request();
  void set_allocated_forget_preferred_cube_request(::Anki::Vector::external_interface::ForgetPreferredCubeRequest* forget_preferred_cube_request);
  private:
  const ::Anki::Vector::external_interface::ForgetPreferredCubeRequest& _internal_forget_preferred_cube_request() const;
  ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* _internal_mutable_forget_preferred_cube_request();
  public:
  void unsafe_arena_set_allocated_forget_preferred_cube_request(
      ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* forget_preferred_cube_request);
  ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* unsafe_arena_release_forget_preferred_cube_request();

  // .Anki.Vector.external_interface.SetPreferredCubeRequest set_preferred_cube_request = 705;
  bool has_set_preferred_cube_request() const;
  private:
  bool _internal_has_set_preferred_cube_request() const;
  public:
  void clear_set_preferred_cube_request();
  const ::Anki::Vector::external_interface::SetPreferredCubeRequest& set_preferred_cube_request() const;
  ::Anki::Vector::external_interface::SetPreferredCubeRequest* release_set_preferred_cube_request();
  ::Anki::Vector::external_interface::SetPreferredCubeRequest* mutable_set_preferred_cube_request();
  void set_allocated_set_preferred_cube_request(::Anki::Vector::external_interface::SetPreferredCubeRequest* set_preferred_cube_request);
  private:
  const ::Anki::Vector::external_interface::SetPreferredCubeRequest& _internal_set_preferred_cube_request() const;
  ::Anki::Vector::external_interface::SetPreferredCubeRequest* _internal_mutable_set_preferred_cube_request();
  public:
  void unsafe_arena_set_allocated_set_preferred_cube_request(
      ::Anki::Vector::external_interface::SetPreferredCubeRequest* set_preferred_cube_request);
  ::Anki::Vector::external_interface::SetPreferredCubeRequest* unsafe_arena_release_set_preferred_cube_request();

  // .Anki.Vector.external_interface.SetCubeLightsRequest set_cube_lights_request = 706;
  bool has_set_cube_lights_request() const;
  private:
  bool _internal_has_set_cube_lights_request() const;
  public:
  void clear_set_cube_lights_request();
  const ::Anki::Vector::external_interface::SetCubeLightsRequest& set_cube_lights_request() const;
  ::Anki::Vector::external_interface::SetCubeLightsRequest* release_set_cube_lights_request();
  ::Anki::Vector::external_interface::SetCubeLightsRequest* mutable_set_cube_lights_request();
  void set_allocated_set_cube_lights_request(::Anki::Vector::external_interface::SetCubeLightsRequest* set_cube_lights_request);
  private:
  const ::Anki::Vector::external_interface::SetCubeLightsRequest& _internal_set_cube_lights_request() const;
  ::Anki::Vector::external_interface::SetCubeLightsRequest* _internal_mutable_set_cube_lights_request();
  public:
  void unsafe_arena_set_allocated_set_cube_lights_request(
      ::Anki::Vector::external_interface::SetCubeLightsRequest* set_cube_lights_request);
  ::Anki::Vector::external_interface::SetCubeLightsRequest* unsafe_arena_release_set_cube_lights_request();

  // .Anki.Vector.external_interface.CubesAvailableRequest cubes_available_request = 707;
  bool has_cubes_available_request() const;
  private:
  bool _internal_has_cubes_available_request() const;
  public:
  void clear_cubes_available_request();
  const ::Anki::Vector::external_interface::CubesAvailableRequest& cubes_available_request() const;
  ::Anki::Vector::external_interface::CubesAvailableRequest* release_cubes_available_request();
  ::Anki::Vector::external_interface::CubesAvailableRequest* mutable_cubes_available_request();
  void set_allocated_cubes_available_request(::Anki::Vector::external_interface::CubesAvailableRequest* cubes_available_request);
  private:
  const ::Anki::Vector::external_interface::CubesAvailableRequest& _internal_cubes_available_request() const;
  ::Anki::Vector::external_interface::CubesAvailableRequest* _internal_mutable_cubes_available_request();
  public:
  void unsafe_arena_set_allocated_cubes_available_request(
      ::Anki::Vector::external_interface::CubesAvailableRequest* cubes_available_request);
  ::Anki::Vector::external_interface::CubesAvailableRequest* unsafe_arena_release_cubes_available_request();

  // .Anki.Vector.external_interface.CubesAvailableResponse cubes_available_response = 708;
  bool has_cubes_available_response() const;
  private:
  bool _internal_has_cubes_available_response() const;
  public:
  void clear_cubes_available_response();
  const ::Anki::Vector::external_interface::CubesAvailableResponse& cubes_available_response() const;
  ::Anki::Vector::external_interface::CubesAvailableResponse* release_cubes_available_response();
  ::Anki::Vector::external_interface::CubesAvailableResponse* mutable_cubes_available_response();
  void set_allocated_cubes_available_response(::Anki::Vector::external_interface::CubesAvailableResponse* cubes_available_response);
  private:
  const ::Anki::Vector::external_interface::CubesAvailableResponse& _internal_cubes_available_response() const;
  ::Anki::Vector::external_interface::CubesAvailableResponse* _internal_mutable_cubes_available_response();
  public:
  void unsafe_arena_set_allocated_cubes_available_response(
      ::Anki::Vector::external_interface::CubesAvailableResponse* cubes_available_response);
  ::Anki::Vector::external_interface::CubesAvailableResponse* unsafe_arena_release_cubes_available_response();

  // .Anki.Vector.external_interface.BatteryStateRequest battery_state_request = 800;
  bool has_battery_state_request() const;
  private:
  bool _internal_has_battery_state_request() const;
  public:
  void clear_battery_state_request();
  const ::Anki::Vector::external_interface::BatteryStateRequest& battery_state_request() const;
  ::Anki::Vector::external_interface::BatteryStateRequest* release_battery_state_request();
  ::Anki::Vector::external_interface::BatteryStateRequest* mutable_battery_state_request();
  void set_allocated_battery_state_request(::Anki::Vector::external_interface::BatteryStateRequest* battery_state_request);
  private:
  const ::Anki::Vector::external_interface::BatteryStateRequest& _internal_battery_state_request() const;
  ::Anki::Vector::external_interface::BatteryStateRequest* _internal_mutable_battery_state_request();
  public:
  void unsafe_arena_set_allocated_battery_state_request(
      ::Anki::Vector::external_interface::BatteryStateRequest* battery_state_request);
  ::Anki::Vector::external_interface::BatteryStateRequest* unsafe_arena_release_battery_state_request();

  // .Anki.Vector.external_interface.BatteryStateResponse battery_state_response = 801;
  bool has_battery_state_response() const;
  private:
  bool _internal_has_battery_state_response() const;
  public:
  void clear_battery_state_response();
  const ::Anki::Vector::external_interface::BatteryStateResponse& battery_state_response() const;
  ::Anki::Vector::external_interface::BatteryStateResponse* release_battery_state_response();
  ::Anki::Vector::external_interface::BatteryStateResponse* mutable_battery_state_response();
  void set_allocated_battery_state_response(::Anki::Vector::external_interface::BatteryStateResponse* battery_state_response);
  private:
  const ::Anki::Vector::external_interface::BatteryStateResponse& _internal_battery_state_response() const;
  ::Anki::Vector::external_interface::BatteryStateResponse* _internal_mutable_battery_state_response();
  public:
  void unsafe_arena_set_allocated_battery_state_response(
      ::Anki::Vector::external_interface::BatteryStateResponse* battery_state_response);
  ::Anki::Vector::external_interface::BatteryStateResponse* unsafe_arena_release_battery_state_response();

  // .Anki.Vector.external_interface.VersionStateRequest version_state_request = 802;
  bool has_version_state_request() const;
  private:
  bool _internal_has_version_state_request() const;
  public:
  void clear_version_state_request();
  const ::Anki::Vector::external_interface::VersionStateRequest& version_state_request() const;
  ::Anki::Vector::external_interface::VersionStateRequest* release_version_state_request();
  ::Anki::Vector::external_interface::VersionStateRequest* mutable_version_state_request();
  void set_allocated_version_state_request(::Anki::Vector::external_interface::VersionStateRequest* version_state_request);
  private:
  const ::Anki::Vector::external_interface::VersionStateRequest& _internal_version_state_request() const;
  ::Anki::Vector::external_interface::VersionStateRequest* _internal_mutable_version_state_request();
  public:
  void unsafe_arena_set_allocated_version_state_request(
      ::Anki::Vector::external_interface::VersionStateRequest* version_state_request);
  ::Anki::Vector::external_interface::VersionStateRequest* unsafe_arena_release_version_state_request();

  // .Anki.Vector.external_interface.VersionStateResponse version_state_response = 803;
  bool has_version_state_response() const;
  private:
  bool _internal_has_version_state_response() const;
  public:
  void clear_version_state_response();
  const ::Anki::Vector::external_interface::VersionStateResponse& version_state_response() const;
  ::Anki::Vector::external_interface::VersionStateResponse* release_version_state_response();
  ::Anki::Vector::external_interface::VersionStateResponse* mutable_version_state_response();
  void set_allocated_version_state_response(::Anki::Vector::external_interface::VersionStateResponse* version_state_response);
  private:
  const ::Anki::Vector::external_interface::VersionStateResponse& _internal_version_state_response() const;
  ::Anki::Vector::external_interface::VersionStateResponse* _internal_mutable_version_state_response();
  public:
  void unsafe_arena_set_allocated_version_state_response(
      ::Anki::Vector::external_interface::VersionStateResponse* version_state_response);
  ::Anki::Vector::external_interface::VersionStateResponse* unsafe_arena_release_version_state_response();

  // .Anki.Vector.external_interface.SayTextRequest say_text_request = 900;
  bool has_say_text_request() const;
  private:
  bool _internal_has_say_text_request() const;
  public:
  void clear_say_text_request();
  const ::Anki::Vector::external_interface::SayTextRequest& say_text_request() const;
  ::Anki::Vector::external_interface::SayTextRequest* release_say_text_request();
  ::Anki::Vector::external_interface::SayTextRequest* mutable_say_text_request();
  void set_allocated_say_text_request(::Anki::Vector::external_interface::SayTextRequest* say_text_request);
  private:
  const ::Anki::Vector::external_interface::SayTextRequest& _internal_say_text_request() const;
  ::Anki::Vector::external_interface::SayTextRequest* _internal_mutable_say_text_request();
  public:
  void unsafe_arena_set_allocated_say_text_request(
      ::Anki::Vector::external_interface::SayTextRequest* say_text_request);
  ::Anki::Vector::external_interface::SayTextRequest* unsafe_arena_release_say_text_request();

  // .Anki.Vector.external_interface.SayTextResponse say_text_response = 901;
  bool has_say_text_response() const;
  private:
  bool _internal_has_say_text_response() const;
  public:
  void clear_say_text_response();
  const ::Anki::Vector::external_interface::SayTextResponse& say_text_response() const;
  ::Anki::Vector::external_interface::SayTextResponse* release_say_text_response();
  ::Anki::Vector::external_interface::SayTextResponse* mutable_say_text_response();
  void set_allocated_say_text_response(::Anki::Vector::external_interface::SayTextResponse* say_text_response);
  private:
  const ::Anki::Vector::external_interface::SayTextResponse& _internal_say_text_response() const;
  ::Anki::Vector::external_interface::SayTextResponse* _internal_mutable_say_text_response();
  public:
  void unsafe_arena_set_allocated_say_text_response(
      ::Anki::Vector::external_interface::SayTextResponse* say_text_response);
  ::Anki::Vector::external_interface::SayTextResponse* unsafe_arena_release_say_text_response();

  // .Anki.Vector.external_interface.ControlRequest control_request = 1000;
  bool has_control_request() const;
  private:
  bool _internal_has_control_request() const;
  public:
  void clear_control_request();
  const ::Anki::Vector::external_interface::ControlRequest& control_request() const;
  ::Anki::Vector::external_interface::ControlRequest* release_control_request();
  ::Anki::Vector::external_interface::ControlRequest* mutable_control_request();
  void set_allocated_control_request(::Anki::Vector::external_interface::ControlRequest* control_request);
  private:
  const ::Anki::Vector::external_interface::ControlRequest& _internal_control_request() const;
  ::Anki::Vector::external_interface::ControlRequest* _internal_mutable_control_request();
  public:
  void unsafe_arena_set_allocated_control_request(
      ::Anki::Vector::external_interface::ControlRequest* control_request);
  ::Anki::Vector::external_interface::ControlRequest* unsafe_arena_release_control_request();

  // .Anki.Vector.external_interface.ControlRelease control_release = 1001;
  bool has_control_release() const;
  private:
  bool _internal_has_control_release() const;
  public:
  void clear_control_release();
  const ::Anki::Vector::external_interface::ControlRelease& control_release() const;
  ::Anki::Vector::external_interface::ControlRelease* release_control_release();
  ::Anki::Vector::external_interface::ControlRelease* mutable_control_release();
  void set_allocated_control_release(::Anki::Vector::external_interface::ControlRelease* control_release);
  private:
  const ::Anki::Vector::external_interface::ControlRelease& _internal_control_release() const;
  ::Anki::Vector::external_interface::ControlRelease* _internal_mutable_control_release();
  public:
  void unsafe_arena_set_allocated_control_release(
      ::Anki::Vector::external_interface::ControlRelease* control_release);
  ::Anki::Vector::external_interface::ControlRelease* unsafe_arena_release_control_release();

  // .Anki.Vector.external_interface.BehaviorControlResponse behavior_control_response = 1002;
  bool has_behavior_control_response() const;
  private:
  bool _internal_has_behavior_control_response() const;
  public:
  void clear_behavior_control_response();
  const ::Anki::Vector::external_interface::BehaviorControlResponse& behavior_control_response() const;
  ::Anki::Vector::external_interface::BehaviorControlResponse* release_behavior_control_response();
  ::Anki::Vector::external_interface::BehaviorControlResponse* mutable_behavior_control_response();
  void set_allocated_behavior_control_response(::Anki::Vector::external_interface::BehaviorControlResponse* behavior_control_response);
  private:
  const ::Anki::Vector::external_interface::BehaviorControlResponse& _internal_behavior_control_response() const;
  ::Anki::Vector::external_interface::BehaviorControlResponse* _internal_mutable_behavior_control_response();
  public:
  void unsafe_arena_set_allocated_behavior_control_response(
      ::Anki::Vector::external_interface::BehaviorControlResponse* behavior_control_response);
  ::Anki::Vector::external_interface::BehaviorControlResponse* unsafe_arena_release_behavior_control_response();

  // .Anki.Vector.external_interface.ImageChunk image_chunk = 1101;
  bool has_image_chunk() const;
  private:
  bool _internal_has_image_chunk() const;
  public:
  void clear_image_chunk();
  const ::Anki::Vector::external_interface::ImageChunk& image_chunk() const;
  ::Anki::Vector::external_interface::ImageChunk* release_image_chunk();
  ::Anki::Vector::external_interface::ImageChunk* mutable_image_chunk();
  void set_allocated_image_chunk(::Anki::Vector::external_interface::ImageChunk* image_chunk);
  private:
  const ::Anki::Vector::external_interface::ImageChunk& _internal_image_chunk() const;
  ::Anki::Vector::external_interface::ImageChunk* _internal_mutable_image_chunk();
  public:
  void unsafe_arena_set_allocated_image_chunk(
      ::Anki::Vector::external_interface::ImageChunk* image_chunk);
  ::Anki::Vector::external_interface::ImageChunk* unsafe_arena_release_image_chunk();

  // .Anki.Vector.external_interface.EnableMarkerDetectionRequest enable_marker_detection_request = 1102;
  bool has_enable_marker_detection_request() const;
  private:
  bool _internal_has_enable_marker_detection_request() const;
  public:
  void clear_enable_marker_detection_request();
  const ::Anki::Vector::external_interface::EnableMarkerDetectionRequest& enable_marker_detection_request() const;
  ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* release_enable_marker_detection_request();
  ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* mutable_enable_marker_detection_request();
  void set_allocated_enable_marker_detection_request(::Anki::Vector::external_interface::EnableMarkerDetectionRequest* enable_marker_detection_request);
  private:
  const ::Anki::Vector::external_interface::EnableMarkerDetectionRequest& _internal_enable_marker_detection_request() const;
  ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* _internal_mutable_enable_marker_detection_request();
  public:
  void unsafe_arena_set_allocated_enable_marker_detection_request(
      ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* enable_marker_detection_request);
  ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* unsafe_arena_release_enable_marker_detection_request();

  // .Anki.Vector.external_interface.EnableMarkerDetectionResponse enable_marker_detection_response = 1103;
  bool has_enable_marker_detection_response() const;
  private:
  bool _internal_has_enable_marker_detection_response() const;
  public:
  void clear_enable_marker_detection_response();
  const ::Anki::Vector::external_interface::EnableMarkerDetectionResponse& enable_marker_detection_response() const;
  ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* release_enable_marker_detection_response();
  ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* mutable_enable_marker_detection_response();
  void set_allocated_enable_marker_detection_response(::Anki::Vector::external_interface::EnableMarkerDetectionResponse* enable_marker_detection_response);
  private:
  const ::Anki::Vector::external_interface::EnableMarkerDetectionResponse& _internal_enable_marker_detection_response() const;
  ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* _internal_mutable_enable_marker_detection_response();
  public:
  void unsafe_arena_set_allocated_enable_marker_detection_response(
      ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* enable_marker_detection_response);
  ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* unsafe_arena_release_enable_marker_detection_response();

  // .Anki.Vector.external_interface.EnableFaceDetectionRequest enable_face_detection_request = 1104;
  bool has_enable_face_detection_request() const;
  private:
  bool _internal_has_enable_face_detection_request() const;
  public:
  void clear_enable_face_detection_request();
  const ::Anki::Vector::external_interface::EnableFaceDetectionRequest& enable_face_detection_request() const;
  ::Anki::Vector::external_interface::EnableFaceDetectionRequest* release_enable_face_detection_request();
  ::Anki::Vector::external_interface::EnableFaceDetectionRequest* mutable_enable_face_detection_request();
  void set_allocated_enable_face_detection_request(::Anki::Vector::external_interface::EnableFaceDetectionRequest* enable_face_detection_request);
  private:
  const ::Anki::Vector::external_interface::EnableFaceDetectionRequest& _internal_enable_face_detection_request() const;
  ::Anki::Vector::external_interface::EnableFaceDetectionRequest* _internal_mutable_enable_face_detection_request();
  public:
  void unsafe_arena_set_allocated_enable_face_detection_request(
      ::Anki::Vector::external_interface::EnableFaceDetectionRequest* enable_face_detection_request);
  ::Anki::Vector::external_interface::EnableFaceDetectionRequest* unsafe_arena_release_enable_face_detection_request();

  // .Anki.Vector.external_interface.EnableFaceDetectionResponse enable_face_detection_response = 1105;
  bool has_enable_face_detection_response() const;
  private:
  bool _internal_has_enable_face_detection_response() const;
  public:
  void clear_enable_face_detection_response();
  const ::Anki::Vector::external_interface::EnableFaceDetectionResponse& enable_face_detection_response() const;
  ::Anki::Vector::external_interface::EnableFaceDetectionResponse* release_enable_face_detection_response();
  ::Anki::Vector::external_interface::EnableFaceDetectionResponse* mutable_enable_face_detection_response();
  void set_allocated_enable_face_detection_response(::Anki::Vector::external_interface::EnableFaceDetectionResponse* enable_face_detection_response);
  private:
  const ::Anki::Vector::external_interface::EnableFaceDetectionResponse& _internal_enable_face_detection_response() const;
  ::Anki::Vector::external_interface::EnableFaceDetectionResponse* _internal_mutable_enable_face_detection_response();
  public:
  void unsafe_arena_set_allocated_enable_face_detection_response(
      ::Anki::Vector::external_interface::EnableFaceDetectionResponse* enable_face_detection_response);
  ::Anki::Vector::external_interface::EnableFaceDetectionResponse* unsafe_arena_release_enable_face_detection_response();

  // .Anki.Vector.external_interface.EnableMotionDetectionRequest enable_motion_detection_request = 1106;
  bool has_enable_motion_detection_request() const;
  private:
  bool _internal_has_enable_motion_detection_request() const;
  public:
  void clear_enable_motion_detection_request();
  const ::Anki::Vector::external_interface::EnableMotionDetectionRequest& enable_motion_detection_request() const;
  ::Anki::Vector::external_interface::EnableMotionDetectionRequest* release_enable_motion_detection_request();
  ::Anki::Vector::external_interface::EnableMotionDetectionRequest* mutable_enable_motion_detection_request();
  void set_allocated_enable_motion_detection_request(::Anki::Vector::external_interface::EnableMotionDetectionRequest* enable_motion_detection_request);
  private:
  const ::Anki::Vector::external_interface::EnableMotionDetectionRequest& _internal_enable_motion_detection_request() const;
  ::Anki::Vector::external_interface::EnableMotionDetectionRequest* _internal_mutable_enable_motion_detection_request();
  public:
  void unsafe_arena_set_allocated_enable_motion_detection_request(
      ::Anki::Vector::external_interface::EnableMotionDetectionRequest* enable_motion_detection_request);
  ::Anki::Vector::external_interface::EnableMotionDetectionRequest* unsafe_arena_release_enable_motion_detection_request();

  // .Anki.Vector.external_interface.EnableMotionDetectionResponse enable_motion_detection_response = 1107;
  bool has_enable_motion_detection_response() const;
  private:
  bool _internal_has_enable_motion_detection_response() const;
  public:
  void clear_enable_motion_detection_response();
  const ::Anki::Vector::external_interface::EnableMotionDetectionResponse& enable_motion_detection_response() const;
  ::Anki::Vector::external_interface::EnableMotionDetectionResponse* release_enable_motion_detection_response();
  ::Anki::Vector::external_interface::EnableMotionDetectionResponse* mutable_enable_motion_detection_response();
  void set_allocated_enable_motion_detection_response(::Anki::Vector::external_interface::EnableMotionDetectionResponse* enable_motion_detection_response);
  private:
  const ::Anki::Vector::external_interface::EnableMotionDetectionResponse& _internal_enable_motion_detection_response() const;
  ::Anki::Vector::external_interface::EnableMotionDetectionResponse* _internal_mutable_enable_motion_detection_response();
  public:
  void unsafe_arena_set_allocated_enable_motion_detection_response(
      ::Anki::Vector::external_interface::EnableMotionDetectionResponse* enable_motion_detection_response);
  ::Anki::Vector::external_interface::EnableMotionDetectionResponse* unsafe_arena_release_enable_motion_detection_response();

  // .Anki.Vector.external_interface.EnableMirrorModeRequest enable_mirror_mode_request = 1108;
  bool has_enable_mirror_mode_request() const;
  private:
  bool _internal_has_enable_mirror_mode_request() const;
  public:
  void clear_enable_mirror_mode_request();
  const ::Anki::Vector::external_interface::EnableMirrorModeRequest& enable_mirror_mode_request() const;
  ::Anki::Vector::external_interface::EnableMirrorModeRequest* release_enable_mirror_mode_request();
  ::Anki::Vector::external_interface::EnableMirrorModeRequest* mutable_enable_mirror_mode_request();
  void set_allocated_enable_mirror_mode_request(::Anki::Vector::external_interface::EnableMirrorModeRequest* enable_mirror_mode_request);
  private:
  const ::Anki::Vector::external_interface::EnableMirrorModeRequest& _internal_enable_mirror_mode_request() const;
  ::Anki::Vector::external_interface::EnableMirrorModeRequest* _internal_mutable_enable_mirror_mode_request();
  public:
  void unsafe_arena_set_allocated_enable_mirror_mode_request(
      ::Anki::Vector::external_interface::EnableMirrorModeRequest* enable_mirror_mode_request);
  ::Anki::Vector::external_interface::EnableMirrorModeRequest* unsafe_arena_release_enable_mirror_mode_request();

  // .Anki.Vector.external_interface.EnableMirrorModeResponse enable_mirror_mode_response = 1109;
  bool has_enable_mirror_mode_response() const;
  private:
  bool _internal_has_enable_mirror_mode_response() const;
  public:
  void clear_enable_mirror_mode_response();
  const ::Anki::Vector::external_interface::EnableMirrorModeResponse& enable_mirror_mode_response() const;
  ::Anki::Vector::external_interface::EnableMirrorModeResponse* release_enable_mirror_mode_response();
  ::Anki::Vector::external_interface::EnableMirrorModeResponse* mutable_enable_mirror_mode_response();
  void set_allocated_enable_mirror_mode_response(::Anki::Vector::external_interface::EnableMirrorModeResponse* enable_mirror_mode_response);
  private:
  const ::Anki::Vector::external_interface::EnableMirrorModeResponse& _internal_enable_mirror_mode_response() const;
  ::Anki::Vector::external_interface::EnableMirrorModeResponse* _internal_mutable_enable_mirror_mode_response();
  public:
  void unsafe_arena_set_allocated_enable_mirror_mode_response(
      ::Anki::Vector::external_interface::EnableMirrorModeResponse* enable_mirror_mode_response);
  ::Anki::Vector::external_interface::EnableMirrorModeResponse* unsafe_arena_release_enable_mirror_mode_response();

  // .Anki.Vector.external_interface.EnableImageStreamingRequest enable_image_streaming_request = 1110;
  bool has_enable_image_streaming_request() const;
  private:
  bool _internal_has_enable_image_streaming_request() const;
  public:
  void clear_enable_image_streaming_request();
  const ::Anki::Vector::external_interface::EnableImageStreamingRequest& enable_image_streaming_request() const;
  ::Anki::Vector::external_interface::EnableImageStreamingRequest* release_enable_image_streaming_request();
  ::Anki::Vector::external_interface::EnableImageStreamingRequest* mutable_enable_image_streaming_request();
  void set_allocated_enable_image_streaming_request(::Anki::Vector::external_interface::EnableImageStreamingRequest* enable_image_streaming_request);
  private:
  const ::Anki::Vector::external_interface::EnableImageStreamingRequest& _internal_enable_image_streaming_request() const;
  ::Anki::Vector::external_interface::EnableImageStreamingRequest* _internal_mutable_enable_image_streaming_request();
  public:
  void unsafe_arena_set_allocated_enable_image_streaming_request(
      ::Anki::Vector::external_interface::EnableImageStreamingRequest* enable_image_streaming_request);
  ::Anki::Vector::external_interface::EnableImageStreamingRequest* unsafe_arena_release_enable_image_streaming_request();

  // .Anki.Vector.external_interface.EnableImageStreamingResponse enable_image_streaming_response = 1111;
  bool has_enable_image_streaming_response() const;
  private:
  bool _internal_has_enable_image_streaming_response() const;
  public:
  void clear_enable_image_streaming_response();
  const ::Anki::Vector::external_interface::EnableImageStreamingResponse& enable_image_streaming_response() const;
  ::Anki::Vector::external_interface::EnableImageStreamingResponse* release_enable_image_streaming_response();
  ::Anki::Vector::external_interface::EnableImageStreamingResponse* mutable_enable_image_streaming_response();
  void set_allocated_enable_image_streaming_response(::Anki::Vector::external_interface::EnableImageStreamingResponse* enable_image_streaming_response);
  private:
  const ::Anki::Vector::external_interface::EnableImageStreamingResponse& _internal_enable_image_streaming_response() const;
  ::Anki::Vector::external_interface::EnableImageStreamingResponse* _internal_mutable_enable_image_streaming_response();
  public:
  void unsafe_arena_set_allocated_enable_image_streaming_response(
      ::Anki::Vector::external_interface::EnableImageStreamingResponse* enable_image_streaming_response);
  ::Anki::Vector::external_interface::EnableImageStreamingResponse* unsafe_arena_release_enable_image_streaming_response();

  // .Anki.Vector.external_interface.IsImageStreamingEnabledRequest is_image_streaming_enabled_request = 1112;
  bool has_is_image_streaming_enabled_request() const;
  private:
  bool _internal_has_is_image_streaming_enabled_request() const;
  public:
  void clear_is_image_streaming_enabled_request();
  const ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest& is_image_streaming_enabled_request() const;
  ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* release_is_image_streaming_enabled_request();
  ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* mutable_is_image_streaming_enabled_request();
  void set_allocated_is_image_streaming_enabled_request(::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* is_image_streaming_enabled_request);
  private:
  const ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest& _internal_is_image_streaming_enabled_request() const;
  ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* _internal_mutable_is_image_streaming_enabled_request();
  public:
  void unsafe_arena_set_allocated_is_image_streaming_enabled_request(
      ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* is_image_streaming_enabled_request);
  ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* unsafe_arena_release_is_image_streaming_enabled_request();

  // .Anki.Vector.external_interface.IsImageStreamingEnabledResponse is_image_streaming_enabled_response = 1113;
  bool has_is_image_streaming_enabled_response() const;
  private:
  bool _internal_has_is_image_streaming_enabled_response() const;
  public:
  void clear_is_image_streaming_enabled_response();
  const ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse& is_image_streaming_enabled_response() const;
  ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* release_is_image_streaming_enabled_response();
  ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* mutable_is_image_streaming_enabled_response();
  void set_allocated_is_image_streaming_enabled_response(::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* is_image_streaming_enabled_response);
  private:
  const ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse& _internal_is_image_streaming_enabled_response() const;
  ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* _internal_mutable_is_image_streaming_enabled_response();
  public:
  void unsafe_arena_set_allocated_is_image_streaming_enabled_response(
      ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* is_image_streaming_enabled_response);
  ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* unsafe_arena_release_is_image_streaming_enabled_response();

  // .Anki.Vector.external_interface.CheckCloudRequest check_cloud_request = 1200;
  bool has_check_cloud_request() const;
  private:
  bool _internal_has_check_cloud_request() const;
  public:
  void clear_check_cloud_request();
  const ::Anki::Vector::external_interface::CheckCloudRequest& check_cloud_request() const;
  ::Anki::Vector::external_interface::CheckCloudRequest* release_check_cloud_request();
  ::Anki::Vector::external_interface::CheckCloudRequest* mutable_check_cloud_request();
  void set_allocated_check_cloud_request(::Anki::Vector::external_interface::CheckCloudRequest* check_cloud_request);
  private:
  const ::Anki::Vector::external_interface::CheckCloudRequest& _internal_check_cloud_request() const;
  ::Anki::Vector::external_interface::CheckCloudRequest* _internal_mutable_check_cloud_request();
  public:
  void unsafe_arena_set_allocated_check_cloud_request(
      ::Anki::Vector::external_interface::CheckCloudRequest* check_cloud_request);
  ::Anki::Vector::external_interface::CheckCloudRequest* unsafe_arena_release_check_cloud_request();

  // .Anki.Vector.external_interface.CheckCloudResponse check_cloud_response = 1201;
  bool has_check_cloud_response() const;
  private:
  bool _internal_has_check_cloud_response() const;
  public:
  void clear_check_cloud_response();
  const ::Anki::Vector::external_interface::CheckCloudResponse& check_cloud_response() const;
  ::Anki::Vector::external_interface::CheckCloudResponse* release_check_cloud_response();
  ::Anki::Vector::external_interface::CheckCloudResponse* mutable_check_cloud_response();
  void set_allocated_check_cloud_response(::Anki::Vector::external_interface::CheckCloudResponse* check_cloud_response);
  private:
  const ::Anki::Vector::external_interface::CheckCloudResponse& _internal_check_cloud_response() const;
  ::Anki::Vector::external_interface::CheckCloudResponse* _internal_mutable_check_cloud_response();
  public:
  void unsafe_arena_set_allocated_check_cloud_response(
      ::Anki::Vector::external_interface::CheckCloudResponse* check_cloud_response);
  ::Anki::Vector::external_interface::CheckCloudResponse* unsafe_arena_release_check_cloud_response();

  // .Anki.Vector.external_interface.AudioSendModeRequest audio_send_mode_request = 1300;
  bool has_audio_send_mode_request() const;
  private:
  bool _internal_has_audio_send_mode_request() const;
  public:
  void clear_audio_send_mode_request();
  const ::Anki::Vector::external_interface::AudioSendModeRequest& audio_send_mode_request() const;
  ::Anki::Vector::external_interface::AudioSendModeRequest* release_audio_send_mode_request();
  ::Anki::Vector::external_interface::AudioSendModeRequest* mutable_audio_send_mode_request();
  void set_allocated_audio_send_mode_request(::Anki::Vector::external_interface::AudioSendModeRequest* audio_send_mode_request);
  private:
  const ::Anki::Vector::external_interface::AudioSendModeRequest& _internal_audio_send_mode_request() const;
  ::Anki::Vector::external_interface::AudioSendModeRequest* _internal_mutable_audio_send_mode_request();
  public:
  void unsafe_arena_set_allocated_audio_send_mode_request(
      ::Anki::Vector::external_interface::AudioSendModeRequest* audio_send_mode_request);
  ::Anki::Vector::external_interface::AudioSendModeRequest* unsafe_arena_release_audio_send_mode_request();

  // .Anki.Vector.external_interface.AudioSendModeChanged audio_send_mode_changed = 1301;
  bool has_audio_send_mode_changed() const;
  private:
  bool _internal_has_audio_send_mode_changed() const;
  public:
  void clear_audio_send_mode_changed();
  const ::Anki::Vector::external_interface::AudioSendModeChanged& audio_send_mode_changed() const;
  ::Anki::Vector::external_interface::AudioSendModeChanged* release_audio_send_mode_changed();
  ::Anki::Vector::external_interface::AudioSendModeChanged* mutable_audio_send_mode_changed();
  void set_allocated_audio_send_mode_changed(::Anki::Vector::external_interface::AudioSendModeChanged* audio_send_mode_changed);
  private:
  const ::Anki::Vector::external_interface::AudioSendModeChanged& _internal_audio_send_mode_changed() const;
  ::Anki::Vector::external_interface::AudioSendModeChanged* _internal_mutable_audio_send_mode_changed();
  public:
  void unsafe_arena_set_allocated_audio_send_mode_changed(
      ::Anki::Vector::external_interface::AudioSendModeChanged* audio_send_mode_changed);
  ::Anki::Vector::external_interface::AudioSendModeChanged* unsafe_arena_release_audio_send_mode_changed();

  // .Anki.Vector.external_interface.AudioChunk audio_chunk = 1302;
  bool has_audio_chunk() const;
  private:
  bool _internal_has_audio_chunk() const;
  public:
  void clear_audio_chunk();
  const ::Anki::Vector::external_interface::AudioChunk& audio_chunk() const;
  ::Anki::Vector::external_interface::AudioChunk* release_audio_chunk();
  ::Anki::Vector::external_interface::AudioChunk* mutable_audio_chunk();
  void set_allocated_audio_chunk(::Anki::Vector::external_interface::AudioChunk* audio_chunk);
  private:
  const ::Anki::Vector::external_interface::AudioChunk& _internal_audio_chunk() const;
  ::Anki::Vector::external_interface::AudioChunk* _internal_mutable_audio_chunk();
  public:
  void unsafe_arena_set_allocated_audio_chunk(
      ::Anki::Vector::external_interface::AudioChunk* audio_chunk);
  ::Anki::Vector::external_interface::AudioChunk* unsafe_arena_release_audio_chunk();

  // .Anki.Vector.external_interface.FeatureFlagRequest feature_flag_request = 1400;
  bool has_feature_flag_request() const;
  private:
  bool _internal_has_feature_flag_request() const;
  public:
  void clear_feature_flag_request();
  const ::Anki::Vector::external_interface::FeatureFlagRequest& feature_flag_request() const;
  ::Anki::Vector::external_interface::FeatureFlagRequest* release_feature_flag_request();
  ::Anki::Vector::external_interface::FeatureFlagRequest* mutable_feature_flag_request();
  void set_allocated_feature_flag_request(::Anki::Vector::external_interface::FeatureFlagRequest* feature_flag_request);
  private:
  const ::Anki::Vector::external_interface::FeatureFlagRequest& _internal_feature_flag_request() const;
  ::Anki::Vector::external_interface::FeatureFlagRequest* _internal_mutable_feature_flag_request();
  public:
  void unsafe_arena_set_allocated_feature_flag_request(
      ::Anki::Vector::external_interface::FeatureFlagRequest* feature_flag_request);
  ::Anki::Vector::external_interface::FeatureFlagRequest* unsafe_arena_release_feature_flag_request();

  // .Anki.Vector.external_interface.FeatureFlagResponse feature_flag_response = 1401;
  bool has_feature_flag_response() const;
  private:
  bool _internal_has_feature_flag_response() const;
  public:
  void clear_feature_flag_response();
  const ::Anki::Vector::external_interface::FeatureFlagResponse& feature_flag_response() const;
  ::Anki::Vector::external_interface::FeatureFlagResponse* release_feature_flag_response();
  ::Anki::Vector::external_interface::FeatureFlagResponse* mutable_feature_flag_response();
  void set_allocated_feature_flag_response(::Anki::Vector::external_interface::FeatureFlagResponse* feature_flag_response);
  private:
  const ::Anki::Vector::external_interface::FeatureFlagResponse& _internal_feature_flag_response() const;
  ::Anki::Vector::external_interface::FeatureFlagResponse* _internal_mutable_feature_flag_response();
  public:
  void unsafe_arena_set_allocated_feature_flag_response(
      ::Anki::Vector::external_interface::FeatureFlagResponse* feature_flag_response);
  ::Anki::Vector::external_interface::FeatureFlagResponse* unsafe_arena_release_feature_flag_response();

  // .Anki.Vector.external_interface.FeatureFlagListRequest feature_flag_list_request = 1402;
  bool has_feature_flag_list_request() const;
  private:
  bool _internal_has_feature_flag_list_request() const;
  public:
  void clear_feature_flag_list_request();
  const ::Anki::Vector::external_interface::FeatureFlagListRequest& feature_flag_list_request() const;
  ::Anki::Vector::external_interface::FeatureFlagListRequest* release_feature_flag_list_request();
  ::Anki::Vector::external_interface::FeatureFlagListRequest* mutable_feature_flag_list_request();
  void set_allocated_feature_flag_list_request(::Anki::Vector::external_interface::FeatureFlagListRequest* feature_flag_list_request);
  private:
  const ::Anki::Vector::external_interface::FeatureFlagListRequest& _internal_feature_flag_list_request() const;
  ::Anki::Vector::external_interface::FeatureFlagListRequest* _internal_mutable_feature_flag_list_request();
  public:
  void unsafe_arena_set_allocated_feature_flag_list_request(
      ::Anki::Vector::external_interface::FeatureFlagListRequest* feature_flag_list_request);
  ::Anki::Vector::external_interface::FeatureFlagListRequest* unsafe_arena_release_feature_flag_list_request();

  // .Anki.Vector.external_interface.FeatureFlagListResponse feature_flag_list_response = 1403;
  bool has_feature_flag_list_response() const;
  private:
  bool _internal_has_feature_flag_list_response() const;
  public:
  void clear_feature_flag_list_response();
  const ::Anki::Vector::external_interface::FeatureFlagListResponse& feature_flag_list_response() const;
  ::Anki::Vector::external_interface::FeatureFlagListResponse* release_feature_flag_list_response();
  ::Anki::Vector::external_interface::FeatureFlagListResponse* mutable_feature_flag_list_response();
  void set_allocated_feature_flag_list_response(::Anki::Vector::external_interface::FeatureFlagListResponse* feature_flag_list_response);
  private:
  const ::Anki::Vector::external_interface::FeatureFlagListResponse& _internal_feature_flag_list_response() const;
  ::Anki::Vector::external_interface::FeatureFlagListResponse* _internal_mutable_feature_flag_list_response();
  public:
  void unsafe_arena_set_allocated_feature_flag_list_response(
      ::Anki::Vector::external_interface::FeatureFlagListResponse* feature_flag_list_response);
  ::Anki::Vector::external_interface::FeatureFlagListResponse* unsafe_arena_release_feature_flag_list_response();

  // .Anki.Vector.external_interface.AppDisconnected app_disconnected = 1500;
  bool has_app_disconnected() const;
  private:
  bool _internal_has_app_disconnected() const;
  public:
  void clear_app_disconnected();
  const ::Anki::Vector::external_interface::AppDisconnected& app_disconnected() const;
  ::Anki::Vector::external_interface::AppDisconnected* release_app_disconnected();
  ::Anki::Vector::external_interface::AppDisconnected* mutable_app_disconnected();
  void set_allocated_app_disconnected(::Anki::Vector::external_interface::AppDisconnected* app_disconnected);
  private:
  const ::Anki::Vector::external_interface::AppDisconnected& _internal_app_disconnected() const;
  ::Anki::Vector::external_interface::AppDisconnected* _internal_mutable_app_disconnected();
  public:
  void unsafe_arena_set_allocated_app_disconnected(
      ::Anki::Vector::external_interface::AppDisconnected* app_disconnected);
  ::Anki::Vector::external_interface::AppDisconnected* unsafe_arena_release_app_disconnected();

  // .Anki.Vector.external_interface.AlexaAuthStateRequest alexa_auth_state_request = 1600;
  bool has_alexa_auth_state_request() const;
  private:
  bool _internal_has_alexa_auth_state_request() const;
  public:
  void clear_alexa_auth_state_request();
  const ::Anki::Vector::external_interface::AlexaAuthStateRequest& alexa_auth_state_request() const;
  ::Anki::Vector::external_interface::AlexaAuthStateRequest* release_alexa_auth_state_request();
  ::Anki::Vector::external_interface::AlexaAuthStateRequest* mutable_alexa_auth_state_request();
  void set_allocated_alexa_auth_state_request(::Anki::Vector::external_interface::AlexaAuthStateRequest* alexa_auth_state_request);
  private:
  const ::Anki::Vector::external_interface::AlexaAuthStateRequest& _internal_alexa_auth_state_request() const;
  ::Anki::Vector::external_interface::AlexaAuthStateRequest* _internal_mutable_alexa_auth_state_request();
  public:
  void unsafe_arena_set_allocated_alexa_auth_state_request(
      ::Anki::Vector::external_interface::AlexaAuthStateRequest* alexa_auth_state_request);
  ::Anki::Vector::external_interface::AlexaAuthStateRequest* unsafe_arena_release_alexa_auth_state_request();

  // .Anki.Vector.external_interface.AlexaAuthStateResponse alexa_auth_state_response = 1601;
  bool has_alexa_auth_state_response() const;
  private:
  bool _internal_has_alexa_auth_state_response() const;
  public:
  void clear_alexa_auth_state_response();
  const ::Anki::Vector::external_interface::AlexaAuthStateResponse& alexa_auth_state_response() const;
  ::Anki::Vector::external_interface::AlexaAuthStateResponse* release_alexa_auth_state_response();
  ::Anki::Vector::external_interface::AlexaAuthStateResponse* mutable_alexa_auth_state_response();
  void set_allocated_alexa_auth_state_response(::Anki::Vector::external_interface::AlexaAuthStateResponse* alexa_auth_state_response);
  private:
  const ::Anki::Vector::external_interface::AlexaAuthStateResponse& _internal_alexa_auth_state_response() const;
  ::Anki::Vector::external_interface::AlexaAuthStateResponse* _internal_mutable_alexa_auth_state_response();
  public:
  void unsafe_arena_set_allocated_alexa_auth_state_response(
      ::Anki::Vector::external_interface::AlexaAuthStateResponse* alexa_auth_state_response);
  ::Anki::Vector::external_interface::AlexaAuthStateResponse* unsafe_arena_release_alexa_auth_state_response();

  // .Anki.Vector.external_interface.AlexaOptInRequest alexa_opt_in_request = 1602;
  bool has_alexa_opt_in_request() const;
  private:
  bool _internal_has_alexa_opt_in_request() const;
  public:
  void clear_alexa_opt_in_request();
  const ::Anki::Vector::external_interface::AlexaOptInRequest& alexa_opt_in_request() const;
  ::Anki::Vector::external_interface::AlexaOptInRequest* release_alexa_opt_in_request();
  ::Anki::Vector::external_interface::AlexaOptInRequest* mutable_alexa_opt_in_request();
  void set_allocated_alexa_opt_in_request(::Anki::Vector::external_interface::AlexaOptInRequest* alexa_opt_in_request);
  private:
  const ::Anki::Vector::external_interface::AlexaOptInRequest& _internal_alexa_opt_in_request() const;
  ::Anki::Vector::external_interface::AlexaOptInRequest* _internal_mutable_alexa_opt_in_request();
  public:
  void unsafe_arena_set_allocated_alexa_opt_in_request(
      ::Anki::Vector::external_interface::AlexaOptInRequest* alexa_opt_in_request);
  ::Anki::Vector::external_interface::AlexaOptInRequest* unsafe_arena_release_alexa_opt_in_request();

  // .Anki.Vector.external_interface.AlexaOptInResponse alexa_opt_in_response = 1603;
  bool has_alexa_opt_in_response() const;
  private:
  bool _internal_has_alexa_opt_in_response() const;
  public:
  void clear_alexa_opt_in_response();
  const ::Anki::Vector::external_interface::AlexaOptInResponse& alexa_opt_in_response() const;
  ::Anki::Vector::external_interface::AlexaOptInResponse* release_alexa_opt_in_response();
  ::Anki::Vector::external_interface::AlexaOptInResponse* mutable_alexa_opt_in_response();
  void set_allocated_alexa_opt_in_response(::Anki::Vector::external_interface::AlexaOptInResponse* alexa_opt_in_response);
  private:
  const ::Anki::Vector::external_interface::AlexaOptInResponse& _internal_alexa_opt_in_response() const;
  ::Anki::Vector::external_interface::AlexaOptInResponse* _internal_mutable_alexa_opt_in_response();
  public:
  void unsafe_arena_set_allocated_alexa_opt_in_response(
      ::Anki::Vector::external_interface::AlexaOptInResponse* alexa_opt_in_response);
  ::Anki::Vector::external_interface::AlexaOptInResponse* unsafe_arena_release_alexa_opt_in_response();

  // .Anki.Vector.external_interface.SetEyeColorRequest set_eye_color_request = 1700;
  bool has_set_eye_color_request() const;
  private:
  bool _internal_has_set_eye_color_request() const;
  public:
  void clear_set_eye_color_request();
  const ::Anki::Vector::external_interface::SetEyeColorRequest& set_eye_color_request() const;
  ::Anki::Vector::external_interface::SetEyeColorRequest* release_set_eye_color_request();
  ::Anki::Vector::external_interface::SetEyeColorRequest* mutable_set_eye_color_request();
  void set_allocated_set_eye_color_request(::Anki::Vector::external_interface::SetEyeColorRequest* set_eye_color_request);
  private:
  const ::Anki::Vector::external_interface::SetEyeColorRequest& _internal_set_eye_color_request() const;
  ::Anki::Vector::external_interface::SetEyeColorRequest* _internal_mutable_set_eye_color_request();
  public:
  void unsafe_arena_set_allocated_set_eye_color_request(
      ::Anki::Vector::external_interface::SetEyeColorRequest* set_eye_color_request);
  ::Anki::Vector::external_interface::SetEyeColorRequest* unsafe_arena_release_set_eye_color_request();

  // .Anki.Vector.external_interface.SetEyeColorResponse set_eye_color_response = 1701;
  bool has_set_eye_color_response() const;
  private:
  bool _internal_has_set_eye_color_response() const;
  public:
  void clear_set_eye_color_response();
  const ::Anki::Vector::external_interface::SetEyeColorResponse& set_eye_color_response() const;
  ::Anki::Vector::external_interface::SetEyeColorResponse* release_set_eye_color_response();
  ::Anki::Vector::external_interface::SetEyeColorResponse* mutable_set_eye_color_response();
  void set_allocated_set_eye_color_response(::Anki::Vector::external_interface::SetEyeColorResponse* set_eye_color_response);
  private:
  const ::Anki::Vector::external_interface::SetEyeColorResponse& _internal_set_eye_color_response() const;
  ::Anki::Vector::external_interface::SetEyeColorResponse* _internal_mutable_set_eye_color_response();
  public:
  void unsafe_arena_set_allocated_set_eye_color_response(
      ::Anki::Vector::external_interface::SetEyeColorResponse* set_eye_color_response);
  ::Anki::Vector::external_interface::SetEyeColorResponse* unsafe_arena_release_set_eye_color_response();

  // .Anki.Vector.external_interface.MasterVolumeRequest master_volume_request = 1702;
  bool has_master_volume_request() const;
  private:
  bool _internal_has_master_volume_request() const;
  public:
  void clear_master_volume_request();
  const ::Anki::Vector::external_interface::MasterVolumeRequest& master_volume_request() const;
  ::Anki::Vector::external_interface::MasterVolumeRequest* release_master_volume_request();
  ::Anki::Vector::external_interface::MasterVolumeRequest* mutable_master_volume_request();
  void set_allocated_master_volume_request(::Anki::Vector::external_interface::MasterVolumeRequest* master_volume_request);
  private:
  const ::Anki::Vector::external_interface::MasterVolumeRequest& _internal_master_volume_request() const;
  ::Anki::Vector::external_interface::MasterVolumeRequest* _internal_mutable_master_volume_request();
  public:
  void unsafe_arena_set_allocated_master_volume_request(
      ::Anki::Vector::external_interface::MasterVolumeRequest* master_volume_request);
  ::Anki::Vector::external_interface::MasterVolumeRequest* unsafe_arena_release_master_volume_request();

  // .Anki.Vector.external_interface.MasterVolumeResponse master_volume_response = 1703;
  bool has_master_volume_response() const;
  private:
  bool _internal_has_master_volume_response() const;
  public:
  void clear_master_volume_response();
  const ::Anki::Vector::external_interface::MasterVolumeResponse& master_volume_response() const;
  ::Anki::Vector::external_interface::MasterVolumeResponse* release_master_volume_response();
  ::Anki::Vector::external_interface::MasterVolumeResponse* mutable_master_volume_response();
  void set_allocated_master_volume_response(::Anki::Vector::external_interface::MasterVolumeResponse* master_volume_response);
  private:
  const ::Anki::Vector::external_interface::MasterVolumeResponse& _internal_master_volume_response() const;
  ::Anki::Vector::external_interface::MasterVolumeResponse* _internal_mutable_master_volume_response();
  public:
  void unsafe_arena_set_allocated_master_volume_response(
      ::Anki::Vector::external_interface::MasterVolumeResponse* master_volume_response);
  ::Anki::Vector::external_interface::MasterVolumeResponse* unsafe_arena_release_master_volume_response();

  // .Anki.Vector.external_interface.SetCameraSettingsRequest set_camera_settings_request = 1704;
  bool has_set_camera_settings_request() const;
  private:
  bool _internal_has_set_camera_settings_request() const;
  public:
  void clear_set_camera_settings_request();
  const ::Anki::Vector::external_interface::SetCameraSettingsRequest& set_camera_settings_request() const;
  ::Anki::Vector::external_interface::SetCameraSettingsRequest* release_set_camera_settings_request();
  ::Anki::Vector::external_interface::SetCameraSettingsRequest* mutable_set_camera_settings_request();
  void set_allocated_set_camera_settings_request(::Anki::Vector::external_interface::SetCameraSettingsRequest* set_camera_settings_request);
  private:
  const ::Anki::Vector::external_interface::SetCameraSettingsRequest& _internal_set_camera_settings_request() const;
  ::Anki::Vector::external_interface::SetCameraSettingsRequest* _internal_mutable_set_camera_settings_request();
  public:
  void unsafe_arena_set_allocated_set_camera_settings_request(
      ::Anki::Vector::external_interface::SetCameraSettingsRequest* set_camera_settings_request);
  ::Anki::Vector::external_interface::SetCameraSettingsRequest* unsafe_arena_release_set_camera_settings_request();

  // .Anki.Vector.external_interface.SetCameraSettingsResponse set_camera_settings_response = 1705;
  bool has_set_camera_settings_response() const;
  private:
  bool _internal_has_set_camera_settings_response() const;
  public:
  void clear_set_camera_settings_response();
  const ::Anki::Vector::external_interface::SetCameraSettingsResponse& set_camera_settings_response() const;
  ::Anki::Vector::external_interface::SetCameraSettingsResponse* release_set_camera_settings_response();
  ::Anki::Vector::external_interface::SetCameraSettingsResponse* mutable_set_camera_settings_response();
  void set_allocated_set_camera_settings_response(::Anki::Vector::external_interface::SetCameraSettingsResponse* set_camera_settings_response);
  private:
  const ::Anki::Vector::external_interface::SetCameraSettingsResponse& _internal_set_camera_settings_response() const;
  ::Anki::Vector::external_interface::SetCameraSettingsResponse* _internal_mutable_set_camera_settings_response();
  public:
  void unsafe_arena_set_allocated_set_camera_settings_response(
      ::Anki::Vector::external_interface::SetCameraSettingsResponse* set_camera_settings_response);
  ::Anki::Vector::external_interface::SetCameraSettingsResponse* unsafe_arena_release_set_camera_settings_response();

  // .Anki.Vector.external_interface.CameraConfigRequest camera_config_request = 1706;
  bool has_camera_config_request() const;
  private:
  bool _internal_has_camera_config_request() const;
  public:
  void clear_camera_config_request();
  const ::Anki::Vector::external_interface::CameraConfigRequest& camera_config_request() const;
  ::Anki::Vector::external_interface::CameraConfigRequest* release_camera_config_request();
  ::Anki::Vector::external_interface::CameraConfigRequest* mutable_camera_config_request();
  void set_allocated_camera_config_request(::Anki::Vector::external_interface::CameraConfigRequest* camera_config_request);
  private:
  const ::Anki::Vector::external_interface::CameraConfigRequest& _internal_camera_config_request() const;
  ::Anki::Vector::external_interface::CameraConfigRequest* _internal_mutable_camera_config_request();
  public:
  void unsafe_arena_set_allocated_camera_config_request(
      ::Anki::Vector::external_interface::CameraConfigRequest* camera_config_request);
  ::Anki::Vector::external_interface::CameraConfigRequest* unsafe_arena_release_camera_config_request();

  // .Anki.Vector.external_interface.CameraConfigResponse camera_config_response = 1707;
  bool has_camera_config_response() const;
  private:
  bool _internal_has_camera_config_response() const;
  public:
  void clear_camera_config_response();
  const ::Anki::Vector::external_interface::CameraConfigResponse& camera_config_response() const;
  ::Anki::Vector::external_interface::CameraConfigResponse* release_camera_config_response();
  ::Anki::Vector::external_interface::CameraConfigResponse* mutable_camera_config_response();
  void set_allocated_camera_config_response(::Anki::Vector::external_interface::CameraConfigResponse* camera_config_response);
  private:
  const ::Anki::Vector::external_interface::CameraConfigResponse& _internal_camera_config_response() const;
  ::Anki::Vector::external_interface::CameraConfigResponse* _internal_mutable_camera_config_response();
  public:
  void unsafe_arena_set_allocated_camera_config_response(
      ::Anki::Vector::external_interface::CameraConfigResponse* camera_config_response);
  ::Anki::Vector::external_interface::CameraConfigResponse* unsafe_arena_release_camera_config_response();

  // .Anki.Vector.external_interface.ExternalAudioStreamPrepare external_audio_stream_prepare = 1800;
  bool has_external_audio_stream_prepare() const;
  private:
  bool _internal_has_external_audio_stream_prepare() const;
  public:
  void clear_external_audio_stream_prepare();
  const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare& external_audio_stream_prepare() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* release_external_audio_stream_prepare();
  ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* mutable_external_audio_stream_prepare();
  void set_allocated_external_audio_stream_prepare(::Anki::Vector::external_interface::ExternalAudioStreamPrepare* external_audio_stream_prepare);
  private:
  const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare& _internal_external_audio_stream_prepare() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* _internal_mutable_external_audio_stream_prepare();
  public:
  void unsafe_arena_set_allocated_external_audio_stream_prepare(
      ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* external_audio_stream_prepare);
  ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* unsafe_arena_release_external_audio_stream_prepare();

  // .Anki.Vector.external_interface.ExternalAudioStreamChunk external_audio_stream_chunk = 1801;
  bool has_external_audio_stream_chunk() const;
  private:
  bool _internal_has_external_audio_stream_chunk() const;
  public:
  void clear_external_audio_stream_chunk();
  const ::Anki::Vector::external_interface::ExternalAudioStreamChunk& external_audio_stream_chunk() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamChunk* release_external_audio_stream_chunk();
  ::Anki::Vector::external_interface::ExternalAudioStreamChunk* mutable_external_audio_stream_chunk();
  void set_allocated_external_audio_stream_chunk(::Anki::Vector::external_interface::ExternalAudioStreamChunk* external_audio_stream_chunk);
  private:
  const ::Anki::Vector::external_interface::ExternalAudioStreamChunk& _internal_external_audio_stream_chunk() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamChunk* _internal_mutable_external_audio_stream_chunk();
  public:
  void unsafe_arena_set_allocated_external_audio_stream_chunk(
      ::Anki::Vector::external_interface::ExternalAudioStreamChunk* external_audio_stream_chunk);
  ::Anki::Vector::external_interface::ExternalAudioStreamChunk* unsafe_arena_release_external_audio_stream_chunk();

  // .Anki.Vector.external_interface.ExternalAudioStreamCancel external_audio_stream_cancel = 1802;
  bool has_external_audio_stream_cancel() const;
  private:
  bool _internal_has_external_audio_stream_cancel() const;
  public:
  void clear_external_audio_stream_cancel();
  const ::Anki::Vector::external_interface::ExternalAudioStreamCancel& external_audio_stream_cancel() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamCancel* release_external_audio_stream_cancel();
  ::Anki::Vector::external_interface::ExternalAudioStreamCancel* mutable_external_audio_stream_cancel();
  void set_allocated_external_audio_stream_cancel(::Anki::Vector::external_interface::ExternalAudioStreamCancel* external_audio_stream_cancel);
  private:
  const ::Anki::Vector::external_interface::ExternalAudioStreamCancel& _internal_external_audio_stream_cancel() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamCancel* _internal_mutable_external_audio_stream_cancel();
  public:
  void unsafe_arena_set_allocated_external_audio_stream_cancel(
      ::Anki::Vector::external_interface::ExternalAudioStreamCancel* external_audio_stream_cancel);
  ::Anki::Vector::external_interface::ExternalAudioStreamCancel* unsafe_arena_release_external_audio_stream_cancel();

  // .Anki.Vector.external_interface.ExternalAudioStreamComplete external_audio_stream_complete = 1803;
  bool has_external_audio_stream_complete() const;
  private:
  bool _internal_has_external_audio_stream_complete() const;
  public:
  void clear_external_audio_stream_complete();
  const ::Anki::Vector::external_interface::ExternalAudioStreamComplete& external_audio_stream_complete() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamComplete* release_external_audio_stream_complete();
  ::Anki::Vector::external_interface::ExternalAudioStreamComplete* mutable_external_audio_stream_complete();
  void set_allocated_external_audio_stream_complete(::Anki::Vector::external_interface::ExternalAudioStreamComplete* external_audio_stream_complete);
  private:
  const ::Anki::Vector::external_interface::ExternalAudioStreamComplete& _internal_external_audio_stream_complete() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamComplete* _internal_mutable_external_audio_stream_complete();
  public:
  void unsafe_arena_set_allocated_external_audio_stream_complete(
      ::Anki::Vector::external_interface::ExternalAudioStreamComplete* external_audio_stream_complete);
  ::Anki::Vector::external_interface::ExternalAudioStreamComplete* unsafe_arena_release_external_audio_stream_complete();

  // .Anki.Vector.external_interface.ExternalAudioStreamResponse external_audio_stream_response = 1804;
  bool has_external_audio_stream_response() const;
  private:
  bool _internal_has_external_audio_stream_response() const;
  public:
  void clear_external_audio_stream_response();
  const ::Anki::Vector::external_interface::ExternalAudioStreamResponse& external_audio_stream_response() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamResponse* release_external_audio_stream_response();
  ::Anki::Vector::external_interface::ExternalAudioStreamResponse* mutable_external_audio_stream_response();
  void set_allocated_external_audio_stream_response(::Anki::Vector::external_interface::ExternalAudioStreamResponse* external_audio_stream_response);
  private:
  const ::Anki::Vector::external_interface::ExternalAudioStreamResponse& _internal_external_audio_stream_response() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamResponse* _internal_mutable_external_audio_stream_response();
  public:
  void unsafe_arena_set_allocated_external_audio_stream_response(
      ::Anki::Vector::external_interface::ExternalAudioStreamResponse* external_audio_stream_response);
  ::Anki::Vector::external_interface::ExternalAudioStreamResponse* unsafe_arena_release_external_audio_stream_response();

  void clear_oneof_message_type();
  OneofMessageTypeCase oneof_message_type_case() const;
  
  // Begin code inserted by Anki plugin.
  explicit GatewayWrapper( ::google::protobuf::uint64 connection_id );
  explicit GatewayWrapper( Event* event );
  explicit GatewayWrapper( OnboardingStateRequest* onboarding_state_request );
  explicit GatewayWrapper( OnboardingState* onboarding_state );
  explicit GatewayWrapper( OnboardingSkipOnboarding* onboarding_skip_onboarding );
  explicit GatewayWrapper( OnboardingRestart* onboarding_restart );
  explicit GatewayWrapper( OnboardingCompleteRequest* onboarding_complete_request );
  explicit GatewayWrapper( OnboardingCompleteResponse* onboarding_complete_response );
  explicit GatewayWrapper( OnboardingWakeUpRequest* onboarding_wake_up_request );
  explicit GatewayWrapper( OnboardingWakeUpResponse* onboarding_wake_up_response );
  explicit GatewayWrapper( OnboardingWakeUpStartedRequest* onboarding_wake_up_started_request );
  explicit GatewayWrapper( OnboardingWakeUpStartedResponse* onboarding_wake_up_started_response );
  explicit GatewayWrapper( OnboardingSetPhaseRequest* onboarding_set_phase_request );
  explicit GatewayWrapper( OnboardingSetPhaseResponse* onboarding_set_phase_response );
  explicit GatewayWrapper( OnboardingPhaseProgressRequest* onboarding_phase_progress_request );
  explicit GatewayWrapper( OnboardingPhaseProgressResponse* onboarding_phase_progress_response );
  explicit GatewayWrapper( OnboardingChargeInfoRequest* onboarding_charge_info_request );
  explicit GatewayWrapper( OnboardingChargeInfoResponse* onboarding_charge_info_response );
  explicit GatewayWrapper( OnboardingMarkCompleteAndExit* onboarding_mark_complete_and_exit );
  explicit GatewayWrapper( LatestAttentionTransferRequest* latest_attention_transfer_request );
  explicit GatewayWrapper( LatestAttentionTransfer* latest_attention_transfer );
  explicit GatewayWrapper( PhotosInfoRequest* photos_info_request );
  explicit GatewayWrapper( PhotosInfoResponse* photos_info_response );
  explicit GatewayWrapper( PhotoRequest* photo_request );
  explicit GatewayWrapper( PhotoPathMessage* photo_path_message );
  explicit GatewayWrapper( ThumbnailRequest* thumbnail_request );
  explicit GatewayWrapper( ThumbnailPathMessage* thumbnail_path_message );
  explicit GatewayWrapper( DeletePhotoRequest* delete_photo_request );
  explicit GatewayWrapper( DeletePhotoResponse* delete_photo_response );
  explicit GatewayWrapper( PullJdocsRequest* pull_jdocs_request );
  explicit GatewayWrapper( PullJdocsResponse* pull_jdocs_response );
  explicit GatewayWrapper( UpdateSettingsRequest* update_settings_request );
  explicit GatewayWrapper( UpdateSettingsResponse* update_settings_response );
  explicit GatewayWrapper( UpdateAccountSettingsRequest* update_account_settings_request );
  explicit GatewayWrapper( UpdateAccountSettingsResponse* update_account_settings_response );
  explicit GatewayWrapper( UpdateUserEntitlementsRequest* update_user_entitlements_request );
  explicit GatewayWrapper( UpdateUserEntitlementsResponse* update_user_entitlements_response );
  explicit GatewayWrapper( DriveOffChargerRequest* drive_off_charger_request );
  explicit GatewayWrapper( DriveOffChargerResponse* drive_off_charger_response );
  explicit GatewayWrapper( DriveOnChargerRequest* drive_on_charger_request );
  explicit GatewayWrapper( DriveOnChargerResponse* drive_on_charger_response );
  explicit GatewayWrapper( FindFacesRequest* find_faces_request );
  explicit GatewayWrapper( FindFacesResponse* find_faces_response );
  explicit GatewayWrapper( LookAroundInPlaceRequest* look_around_in_place_request );
  explicit GatewayWrapper( LookAroundInPlaceResponse* look_around_in_place_response );
  explicit GatewayWrapper( RollBlockRequest* roll_block_request );
  explicit GatewayWrapper( RollBlockResponse* roll_block_response );
  explicit GatewayWrapper( EnrollFaceRequest* enroll_face_request );
  explicit GatewayWrapper( EnrollFaceResponse* enroll_face_response );
  explicit GatewayWrapper( SetFaceToEnrollRequest* set_face_to_enroll_request );
  explicit GatewayWrapper( SetFaceToEnrollResponse* set_face_to_enroll_response );
  explicit GatewayWrapper( CancelBehaviorRequest* cancel_behavior_request );
  explicit GatewayWrapper( CancelBehaviorResponse* cancel_behavior_response );
  explicit GatewayWrapper( TurnInPlaceRequest* turn_in_place_request );
  explicit GatewayWrapper( TurnInPlaceResponse* turn_in_place_response );
  explicit GatewayWrapper( DriveStraightRequest* drive_straight_request );
  explicit GatewayWrapper( DriveStraightResponse* drive_straight_response );
  explicit GatewayWrapper( SetHeadAngleRequest* set_head_angle_request );
  explicit GatewayWrapper( SetHeadAngleResponse* set_head_angle_response );
  explicit GatewayWrapper( SetLiftHeightRequest* set_lift_height_request );
  explicit GatewayWrapper( SetLiftHeightResponse* set_lift_height_response );
  explicit GatewayWrapper( PlayAnimationRequest* play_animation_request );
  explicit GatewayWrapper( PlayAnimationResponse* play_animation_response );
  explicit GatewayWrapper( GoToPoseRequest* go_to_pose_request );
  explicit GatewayWrapper( GoToPoseResponse* go_to_pose_response );
  explicit GatewayWrapper( DockWithCubeRequest* dock_with_cube_request );
  explicit GatewayWrapper( DockWithCubeResponse* dock_with_cube_response );
  explicit GatewayWrapper( DriveWheelsRequest* drive_wheels_request );
  explicit GatewayWrapper( DriveWheelsResponse* drive_wheels_response );
  explicit GatewayWrapper( ListAnimationsRequest* list_animations_request );
  explicit GatewayWrapper( ListAnimationsResponse* list_animations_response );
  explicit GatewayWrapper( PlayAnimationTriggerRequest* play_animation_trigger_request );
  explicit GatewayWrapper( ListAnimationTriggersRequest* list_animation_triggers_request );
  explicit GatewayWrapper( ListAnimationTriggersResponse* list_animation_triggers_response );
  explicit GatewayWrapper( CancelActionByIdTagRequest* cancel_action_by_id_tag_request );
  explicit GatewayWrapper( CancelActionByIdTagResponse* cancel_action_by_id_tag_response );
  explicit GatewayWrapper( TurnTowardsFaceRequest* turn_towards_face_request );
  explicit GatewayWrapper( TurnTowardsFaceResponse* turn_towards_face_response );
  explicit GatewayWrapper( GoToObjectRequest* go_to_object_request );
  explicit GatewayWrapper( GoToObjectResponse* go_to_object_response );
  explicit GatewayWrapper( RollObjectRequest* roll_object_request );
  explicit GatewayWrapper( RollObjectResponse* roll_object_response );
  explicit GatewayWrapper( PopAWheelieRequest* pop_a_wheelie_request );
  explicit GatewayWrapper( PopAWheelieResponse* pop_a_wheelie_response );
  explicit GatewayWrapper( PickupObjectRequest* pickup_object_request );
  explicit GatewayWrapper( PickupObjectResponse* pickup_object_response );
  explicit GatewayWrapper( PlaceObjectOnGroundHereRequest* place_object_on_ground_here_request );
  explicit GatewayWrapper( PlaceObjectOnGroundHereResponse* place_object_on_ground_here_response );
  explicit GatewayWrapper( StopAllMotorsRequest* stop_all_motors_request );
  explicit GatewayWrapper( StopAllMotorsResponse* stop_all_motors_response );
  explicit GatewayWrapper( RobotHistoryRequest* robot_history_request );
  explicit GatewayWrapper( RobotHistoryResponse* robot_history_response );
  explicit GatewayWrapper( ConnectCubeRequest* connect_cube_request );
  explicit GatewayWrapper( ConnectCubeResponse* connect_cube_response );
  explicit GatewayWrapper( DisconnectCubeRequest* disconnect_cube_request );
  explicit GatewayWrapper( FlashCubeLightsRequest* flash_cube_lights_request );
  explicit GatewayWrapper( ForgetPreferredCubeRequest* forget_preferred_cube_request );
  explicit GatewayWrapper( SetPreferredCubeRequest* set_preferred_cube_request );
  explicit GatewayWrapper( SetCubeLightsRequest* set_cube_lights_request );
  explicit GatewayWrapper( CubesAvailableRequest* cubes_available_request );
  explicit GatewayWrapper( CubesAvailableResponse* cubes_available_response );
  explicit GatewayWrapper( BatteryStateRequest* battery_state_request );
  explicit GatewayWrapper( BatteryStateResponse* battery_state_response );
  explicit GatewayWrapper( VersionStateRequest* version_state_request );
  explicit GatewayWrapper( VersionStateResponse* version_state_response );
  explicit GatewayWrapper( SayTextRequest* say_text_request );
  explicit GatewayWrapper( SayTextResponse* say_text_response );
  explicit GatewayWrapper( ControlRequest* control_request );
  explicit GatewayWrapper( ControlRelease* control_release );
  explicit GatewayWrapper( BehaviorControlResponse* behavior_control_response );
  explicit GatewayWrapper( ImageChunk* image_chunk );
  explicit GatewayWrapper( EnableMarkerDetectionRequest* enable_marker_detection_request );
  explicit GatewayWrapper( EnableMarkerDetectionResponse* enable_marker_detection_response );
  explicit GatewayWrapper( EnableFaceDetectionRequest* enable_face_detection_request );
  explicit GatewayWrapper( EnableFaceDetectionResponse* enable_face_detection_response );
  explicit GatewayWrapper( EnableMotionDetectionRequest* enable_motion_detection_request );
  explicit GatewayWrapper( EnableMotionDetectionResponse* enable_motion_detection_response );
  explicit GatewayWrapper( EnableMirrorModeRequest* enable_mirror_mode_request );
  explicit GatewayWrapper( EnableMirrorModeResponse* enable_mirror_mode_response );
  explicit GatewayWrapper( EnableImageStreamingRequest* enable_image_streaming_request );
  explicit GatewayWrapper( EnableImageStreamingResponse* enable_image_streaming_response );
  explicit GatewayWrapper( IsImageStreamingEnabledRequest* is_image_streaming_enabled_request );
  explicit GatewayWrapper( IsImageStreamingEnabledResponse* is_image_streaming_enabled_response );
  explicit GatewayWrapper( CheckCloudRequest* check_cloud_request );
  explicit GatewayWrapper( CheckCloudResponse* check_cloud_response );
  explicit GatewayWrapper( AudioSendModeRequest* audio_send_mode_request );
  explicit GatewayWrapper( AudioSendModeChanged* audio_send_mode_changed );
  explicit GatewayWrapper( AudioChunk* audio_chunk );
  explicit GatewayWrapper( FeatureFlagRequest* feature_flag_request );
  explicit GatewayWrapper( FeatureFlagResponse* feature_flag_response );
  explicit GatewayWrapper( FeatureFlagListRequest* feature_flag_list_request );
  explicit GatewayWrapper( FeatureFlagListResponse* feature_flag_list_response );
  explicit GatewayWrapper( AppDisconnected* app_disconnected );
  explicit GatewayWrapper( AlexaAuthStateRequest* alexa_auth_state_request );
  explicit GatewayWrapper( AlexaAuthStateResponse* alexa_auth_state_response );
  explicit GatewayWrapper( AlexaOptInRequest* alexa_opt_in_request );
  explicit GatewayWrapper( AlexaOptInResponse* alexa_opt_in_response );
  explicit GatewayWrapper( SetEyeColorRequest* set_eye_color_request );
  explicit GatewayWrapper( SetEyeColorResponse* set_eye_color_response );
  explicit GatewayWrapper( MasterVolumeRequest* master_volume_request );
  explicit GatewayWrapper( MasterVolumeResponse* master_volume_response );
  explicit GatewayWrapper( SetCameraSettingsRequest* set_camera_settings_request );
  explicit GatewayWrapper( SetCameraSettingsResponse* set_camera_settings_response );
  explicit GatewayWrapper( CameraConfigRequest* camera_config_request );
  explicit GatewayWrapper( CameraConfigResponse* camera_config_response );
  explicit GatewayWrapper( ExternalAudioStreamPrepare* external_audio_stream_prepare );
  explicit GatewayWrapper( ExternalAudioStreamChunk* external_audio_stream_chunk );
  explicit GatewayWrapper( ExternalAudioStreamCancel* external_audio_stream_cancel );
  explicit GatewayWrapper( ExternalAudioStreamComplete* external_audio_stream_complete );
  explicit GatewayWrapper( ExternalAudioStreamResponse* external_audio_stream_response );
  // End code inserted by Anki plugin.
  
  
  // Begin code inserted by Anki plugin.
  inline ::Anki::Vector::external_interface::GatewayWrapperTag GetTag() const {
    return static_cast<::Anki::Vector::external_interface::GatewayWrapperTag>( _oneof_case_[0] );
  }
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.GatewayWrapper)
 private:
  class _Internal;
  void set_has_event();
  void set_has_onboarding_state_request();
  void set_has_onboarding_state();
  void set_has_onboarding_skip_onboarding();
  void set_has_onboarding_restart();
  void set_has_onboarding_complete_request();
  void set_has_onboarding_complete_response();
  void set_has_onboarding_wake_up_request();
  void set_has_onboarding_wake_up_response();
  void set_has_onboarding_wake_up_started_request();
  void set_has_onboarding_wake_up_started_response();
  void set_has_onboarding_set_phase_request();
  void set_has_onboarding_set_phase_response();
  void set_has_onboarding_phase_progress_request();
  void set_has_onboarding_phase_progress_response();
  void set_has_onboarding_charge_info_request();
  void set_has_onboarding_charge_info_response();
  void set_has_onboarding_mark_complete_and_exit();
  void set_has_latest_attention_transfer_request();
  void set_has_latest_attention_transfer();
  void set_has_photos_info_request();
  void set_has_photos_info_response();
  void set_has_photo_request();
  void set_has_photo_path_message();
  void set_has_thumbnail_request();
  void set_has_thumbnail_path_message();
  void set_has_delete_photo_request();
  void set_has_delete_photo_response();
  void set_has_pull_jdocs_request();
  void set_has_pull_jdocs_response();
  void set_has_update_settings_request();
  void set_has_update_settings_response();
  void set_has_update_account_settings_request();
  void set_has_update_account_settings_response();
  void set_has_update_user_entitlements_request();
  void set_has_update_user_entitlements_response();
  void set_has_drive_off_charger_request();
  void set_has_drive_off_charger_response();
  void set_has_drive_on_charger_request();
  void set_has_drive_on_charger_response();
  void set_has_find_faces_request();
  void set_has_find_faces_response();
  void set_has_look_around_in_place_request();
  void set_has_look_around_in_place_response();
  void set_has_roll_block_request();
  void set_has_roll_block_response();
  void set_has_enroll_face_request();
  void set_has_enroll_face_response();
  void set_has_set_face_to_enroll_request();
  void set_has_set_face_to_enroll_response();
  void set_has_cancel_behavior_request();
  void set_has_cancel_behavior_response();
  void set_has_turn_in_place_request();
  void set_has_turn_in_place_response();
  void set_has_drive_straight_request();
  void set_has_drive_straight_response();
  void set_has_set_head_angle_request();
  void set_has_set_head_angle_response();
  void set_has_set_lift_height_request();
  void set_has_set_lift_height_response();
  void set_has_play_animation_request();
  void set_has_play_animation_response();
  void set_has_go_to_pose_request();
  void set_has_go_to_pose_response();
  void set_has_dock_with_cube_request();
  void set_has_dock_with_cube_response();
  void set_has_drive_wheels_request();
  void set_has_drive_wheels_response();
  void set_has_list_animations_request();
  void set_has_list_animations_response();
  void set_has_play_animation_trigger_request();
  void set_has_list_animation_triggers_request();
  void set_has_list_animation_triggers_response();
  void set_has_cancel_action_by_id_tag_request();
  void set_has_cancel_action_by_id_tag_response();
  void set_has_turn_towards_face_request();
  void set_has_turn_towards_face_response();
  void set_has_go_to_object_request();
  void set_has_go_to_object_response();
  void set_has_roll_object_request();
  void set_has_roll_object_response();
  void set_has_pop_a_wheelie_request();
  void set_has_pop_a_wheelie_response();
  void set_has_pickup_object_request();
  void set_has_pickup_object_response();
  void set_has_place_object_on_ground_here_request();
  void set_has_place_object_on_ground_here_response();
  void set_has_stop_all_motors_request();
  void set_has_stop_all_motors_response();
  void set_has_robot_history_request();
  void set_has_robot_history_response();
  void set_has_connect_cube_request();
  void set_has_connect_cube_response();
  void set_has_disconnect_cube_request();
  void set_has_flash_cube_lights_request();
  void set_has_forget_preferred_cube_request();
  void set_has_set_preferred_cube_request();
  void set_has_set_cube_lights_request();
  void set_has_cubes_available_request();
  void set_has_cubes_available_response();
  void set_has_battery_state_request();
  void set_has_battery_state_response();
  void set_has_version_state_request();
  void set_has_version_state_response();
  void set_has_say_text_request();
  void set_has_say_text_response();
  void set_has_control_request();
  void set_has_control_release();
  void set_has_behavior_control_response();
  void set_has_image_chunk();
  void set_has_enable_marker_detection_request();
  void set_has_enable_marker_detection_response();
  void set_has_enable_face_detection_request();
  void set_has_enable_face_detection_response();
  void set_has_enable_motion_detection_request();
  void set_has_enable_motion_detection_response();
  void set_has_enable_mirror_mode_request();
  void set_has_enable_mirror_mode_response();
  void set_has_enable_image_streaming_request();
  void set_has_enable_image_streaming_response();
  void set_has_is_image_streaming_enabled_request();
  void set_has_is_image_streaming_enabled_response();
  void set_has_check_cloud_request();
  void set_has_check_cloud_response();
  void set_has_audio_send_mode_request();
  void set_has_audio_send_mode_changed();
  void set_has_audio_chunk();
  void set_has_feature_flag_request();
  void set_has_feature_flag_response();
  void set_has_feature_flag_list_request();
  void set_has_feature_flag_list_response();
  void set_has_app_disconnected();
  void set_has_alexa_auth_state_request();
  void set_has_alexa_auth_state_response();
  void set_has_alexa_opt_in_request();
  void set_has_alexa_opt_in_response();
  void set_has_set_eye_color_request();
  void set_has_set_eye_color_response();
  void set_has_master_volume_request();
  void set_has_master_volume_response();
  void set_has_set_camera_settings_request();
  void set_has_set_camera_settings_response();
  void set_has_camera_config_request();
  void set_has_camera_config_response();
  void set_has_external_audio_stream_prepare();
  void set_has_external_audio_stream_chunk();
  void set_has_external_audio_stream_cancel();
  void set_has_external_audio_stream_complete();
  void set_has_external_audio_stream_response();

  inline bool has_oneof_message_type() const;
  inline void clear_has_oneof_message_type();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::uint64 connection_id_;
  union OneofMessageTypeUnion {
    OneofMessageTypeUnion() {}
    ::Anki::Vector::external_interface::Event* event_;
    ::Anki::Vector::external_interface::OnboardingStateRequest* onboarding_state_request_;
    ::Anki::Vector::external_interface::OnboardingState* onboarding_state_;
    ::Anki::Vector::external_interface::OnboardingSkipOnboarding* onboarding_skip_onboarding_;
    ::Anki::Vector::external_interface::OnboardingRestart* onboarding_restart_;
    ::Anki::Vector::external_interface::OnboardingCompleteRequest* onboarding_complete_request_;
    ::Anki::Vector::external_interface::OnboardingCompleteResponse* onboarding_complete_response_;
    ::Anki::Vector::external_interface::OnboardingWakeUpRequest* onboarding_wake_up_request_;
    ::Anki::Vector::external_interface::OnboardingWakeUpResponse* onboarding_wake_up_response_;
    ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* onboarding_wake_up_started_request_;
    ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* onboarding_wake_up_started_response_;
    ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* onboarding_set_phase_request_;
    ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* onboarding_set_phase_response_;
    ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* onboarding_phase_progress_request_;
    ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* onboarding_phase_progress_response_;
    ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* onboarding_charge_info_request_;
    ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* onboarding_charge_info_response_;
    ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* onboarding_mark_complete_and_exit_;
    ::Anki::Vector::external_interface::LatestAttentionTransferRequest* latest_attention_transfer_request_;
    ::Anki::Vector::external_interface::LatestAttentionTransfer* latest_attention_transfer_;
    ::Anki::Vector::external_interface::PhotosInfoRequest* photos_info_request_;
    ::Anki::Vector::external_interface::PhotosInfoResponse* photos_info_response_;
    ::Anki::Vector::external_interface::PhotoRequest* photo_request_;
    ::Anki::Vector::external_interface::PhotoPathMessage* photo_path_message_;
    ::Anki::Vector::external_interface::ThumbnailRequest* thumbnail_request_;
    ::Anki::Vector::external_interface::ThumbnailPathMessage* thumbnail_path_message_;
    ::Anki::Vector::external_interface::DeletePhotoRequest* delete_photo_request_;
    ::Anki::Vector::external_interface::DeletePhotoResponse* delete_photo_response_;
    ::Anki::Vector::external_interface::PullJdocsRequest* pull_jdocs_request_;
    ::Anki::Vector::external_interface::PullJdocsResponse* pull_jdocs_response_;
    ::Anki::Vector::external_interface::UpdateSettingsRequest* update_settings_request_;
    ::Anki::Vector::external_interface::UpdateSettingsResponse* update_settings_response_;
    ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* update_account_settings_request_;
    ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* update_account_settings_response_;
    ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* update_user_entitlements_request_;
    ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* update_user_entitlements_response_;
    ::Anki::Vector::external_interface::DriveOffChargerRequest* drive_off_charger_request_;
    ::Anki::Vector::external_interface::DriveOffChargerResponse* drive_off_charger_response_;
    ::Anki::Vector::external_interface::DriveOnChargerRequest* drive_on_charger_request_;
    ::Anki::Vector::external_interface::DriveOnChargerResponse* drive_on_charger_response_;
    ::Anki::Vector::external_interface::FindFacesRequest* find_faces_request_;
    ::Anki::Vector::external_interface::FindFacesResponse* find_faces_response_;
    ::Anki::Vector::external_interface::LookAroundInPlaceRequest* look_around_in_place_request_;
    ::Anki::Vector::external_interface::LookAroundInPlaceResponse* look_around_in_place_response_;
    ::Anki::Vector::external_interface::RollBlockRequest* roll_block_request_;
    ::Anki::Vector::external_interface::RollBlockResponse* roll_block_response_;
    ::Anki::Vector::external_interface::EnrollFaceRequest* enroll_face_request_;
    ::Anki::Vector::external_interface::EnrollFaceResponse* enroll_face_response_;
    ::Anki::Vector::external_interface::SetFaceToEnrollRequest* set_face_to_enroll_request_;
    ::Anki::Vector::external_interface::SetFaceToEnrollResponse* set_face_to_enroll_response_;
    ::Anki::Vector::external_interface::CancelBehaviorRequest* cancel_behavior_request_;
    ::Anki::Vector::external_interface::CancelBehaviorResponse* cancel_behavior_response_;
    ::Anki::Vector::external_interface::TurnInPlaceRequest* turn_in_place_request_;
    ::Anki::Vector::external_interface::TurnInPlaceResponse* turn_in_place_response_;
    ::Anki::Vector::external_interface::DriveStraightRequest* drive_straight_request_;
    ::Anki::Vector::external_interface::DriveStraightResponse* drive_straight_response_;
    ::Anki::Vector::external_interface::SetHeadAngleRequest* set_head_angle_request_;
    ::Anki::Vector::external_interface::SetHeadAngleResponse* set_head_angle_response_;
    ::Anki::Vector::external_interface::SetLiftHeightRequest* set_lift_height_request_;
    ::Anki::Vector::external_interface::SetLiftHeightResponse* set_lift_height_response_;
    ::Anki::Vector::external_interface::PlayAnimationRequest* play_animation_request_;
    ::Anki::Vector::external_interface::PlayAnimationResponse* play_animation_response_;
    ::Anki::Vector::external_interface::GoToPoseRequest* go_to_pose_request_;
    ::Anki::Vector::external_interface::GoToPoseResponse* go_to_pose_response_;
    ::Anki::Vector::external_interface::DockWithCubeRequest* dock_with_cube_request_;
    ::Anki::Vector::external_interface::DockWithCubeResponse* dock_with_cube_response_;
    ::Anki::Vector::external_interface::DriveWheelsRequest* drive_wheels_request_;
    ::Anki::Vector::external_interface::DriveWheelsResponse* drive_wheels_response_;
    ::Anki::Vector::external_interface::ListAnimationsRequest* list_animations_request_;
    ::Anki::Vector::external_interface::ListAnimationsResponse* list_animations_response_;
    ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* play_animation_trigger_request_;
    ::Anki::Vector::external_interface::ListAnimationTriggersRequest* list_animation_triggers_request_;
    ::Anki::Vector::external_interface::ListAnimationTriggersResponse* list_animation_triggers_response_;
    ::Anki::Vector::external_interface::CancelActionByIdTagRequest* cancel_action_by_id_tag_request_;
    ::Anki::Vector::external_interface::CancelActionByIdTagResponse* cancel_action_by_id_tag_response_;
    ::Anki::Vector::external_interface::TurnTowardsFaceRequest* turn_towards_face_request_;
    ::Anki::Vector::external_interface::TurnTowardsFaceResponse* turn_towards_face_response_;
    ::Anki::Vector::external_interface::GoToObjectRequest* go_to_object_request_;
    ::Anki::Vector::external_interface::GoToObjectResponse* go_to_object_response_;
    ::Anki::Vector::external_interface::RollObjectRequest* roll_object_request_;
    ::Anki::Vector::external_interface::RollObjectResponse* roll_object_response_;
    ::Anki::Vector::external_interface::PopAWheelieRequest* pop_a_wheelie_request_;
    ::Anki::Vector::external_interface::PopAWheelieResponse* pop_a_wheelie_response_;
    ::Anki::Vector::external_interface::PickupObjectRequest* pickup_object_request_;
    ::Anki::Vector::external_interface::PickupObjectResponse* pickup_object_response_;
    ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* place_object_on_ground_here_request_;
    ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* place_object_on_ground_here_response_;
    ::Anki::Vector::external_interface::StopAllMotorsRequest* stop_all_motors_request_;
    ::Anki::Vector::external_interface::StopAllMotorsResponse* stop_all_motors_response_;
    ::Anki::Vector::external_interface::RobotHistoryRequest* robot_history_request_;
    ::Anki::Vector::external_interface::RobotHistoryResponse* robot_history_response_;
    ::Anki::Vector::external_interface::ConnectCubeRequest* connect_cube_request_;
    ::Anki::Vector::external_interface::ConnectCubeResponse* connect_cube_response_;
    ::Anki::Vector::external_interface::DisconnectCubeRequest* disconnect_cube_request_;
    ::Anki::Vector::external_interface::FlashCubeLightsRequest* flash_cube_lights_request_;
    ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* forget_preferred_cube_request_;
    ::Anki::Vector::external_interface::SetPreferredCubeRequest* set_preferred_cube_request_;
    ::Anki::Vector::external_interface::SetCubeLightsRequest* set_cube_lights_request_;
    ::Anki::Vector::external_interface::CubesAvailableRequest* cubes_available_request_;
    ::Anki::Vector::external_interface::CubesAvailableResponse* cubes_available_response_;
    ::Anki::Vector::external_interface::BatteryStateRequest* battery_state_request_;
    ::Anki::Vector::external_interface::BatteryStateResponse* battery_state_response_;
    ::Anki::Vector::external_interface::VersionStateRequest* version_state_request_;
    ::Anki::Vector::external_interface::VersionStateResponse* version_state_response_;
    ::Anki::Vector::external_interface::SayTextRequest* say_text_request_;
    ::Anki::Vector::external_interface::SayTextResponse* say_text_response_;
    ::Anki::Vector::external_interface::ControlRequest* control_request_;
    ::Anki::Vector::external_interface::ControlRelease* control_release_;
    ::Anki::Vector::external_interface::BehaviorControlResponse* behavior_control_response_;
    ::Anki::Vector::external_interface::ImageChunk* image_chunk_;
    ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* enable_marker_detection_request_;
    ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* enable_marker_detection_response_;
    ::Anki::Vector::external_interface::EnableFaceDetectionRequest* enable_face_detection_request_;
    ::Anki::Vector::external_interface::EnableFaceDetectionResponse* enable_face_detection_response_;
    ::Anki::Vector::external_interface::EnableMotionDetectionRequest* enable_motion_detection_request_;
    ::Anki::Vector::external_interface::EnableMotionDetectionResponse* enable_motion_detection_response_;
    ::Anki::Vector::external_interface::EnableMirrorModeRequest* enable_mirror_mode_request_;
    ::Anki::Vector::external_interface::EnableMirrorModeResponse* enable_mirror_mode_response_;
    ::Anki::Vector::external_interface::EnableImageStreamingRequest* enable_image_streaming_request_;
    ::Anki::Vector::external_interface::EnableImageStreamingResponse* enable_image_streaming_response_;
    ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* is_image_streaming_enabled_request_;
    ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* is_image_streaming_enabled_response_;
    ::Anki::Vector::external_interface::CheckCloudRequest* check_cloud_request_;
    ::Anki::Vector::external_interface::CheckCloudResponse* check_cloud_response_;
    ::Anki::Vector::external_interface::AudioSendModeRequest* audio_send_mode_request_;
    ::Anki::Vector::external_interface::AudioSendModeChanged* audio_send_mode_changed_;
    ::Anki::Vector::external_interface::AudioChunk* audio_chunk_;
    ::Anki::Vector::external_interface::FeatureFlagRequest* feature_flag_request_;
    ::Anki::Vector::external_interface::FeatureFlagResponse* feature_flag_response_;
    ::Anki::Vector::external_interface::FeatureFlagListRequest* feature_flag_list_request_;
    ::Anki::Vector::external_interface::FeatureFlagListResponse* feature_flag_list_response_;
    ::Anki::Vector::external_interface::AppDisconnected* app_disconnected_;
    ::Anki::Vector::external_interface::AlexaAuthStateRequest* alexa_auth_state_request_;
    ::Anki::Vector::external_interface::AlexaAuthStateResponse* alexa_auth_state_response_;
    ::Anki::Vector::external_interface::AlexaOptInRequest* alexa_opt_in_request_;
    ::Anki::Vector::external_interface::AlexaOptInResponse* alexa_opt_in_response_;
    ::Anki::Vector::external_interface::SetEyeColorRequest* set_eye_color_request_;
    ::Anki::Vector::external_interface::SetEyeColorResponse* set_eye_color_response_;
    ::Anki::Vector::external_interface::MasterVolumeRequest* master_volume_request_;
    ::Anki::Vector::external_interface::MasterVolumeResponse* master_volume_response_;
    ::Anki::Vector::external_interface::SetCameraSettingsRequest* set_camera_settings_request_;
    ::Anki::Vector::external_interface::SetCameraSettingsResponse* set_camera_settings_response_;
    ::Anki::Vector::external_interface::CameraConfigRequest* camera_config_request_;
    ::Anki::Vector::external_interface::CameraConfigResponse* camera_config_response_;
    ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* external_audio_stream_prepare_;
    ::Anki::Vector::external_interface::ExternalAudioStreamChunk* external_audio_stream_chunk_;
    ::Anki::Vector::external_interface::ExternalAudioStreamCancel* external_audio_stream_cancel_;
    ::Anki::Vector::external_interface::ExternalAudioStreamComplete* external_audio_stream_complete_;
    ::Anki::Vector::external_interface::ExternalAudioStreamResponse* external_audio_stream_response_;
  } oneof_message_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_shared_2eproto;
};
// ===================================================================


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

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

// int64 client_version = 1;
inline void ProtocolVersionRequest::clear_client_version() {
  client_version_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 ProtocolVersionRequest::_internal_client_version() const {
  return client_version_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 ProtocolVersionRequest::client_version() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ProtocolVersionRequest.client_version)
  return _internal_client_version();
}
inline void ProtocolVersionRequest::_internal_set_client_version(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  client_version_ = value;
}
inline void ProtocolVersionRequest::set_client_version(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_client_version(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ProtocolVersionRequest.client_version)
}

// int64 min_host_version = 2;
inline void ProtocolVersionRequest::clear_min_host_version() {
  min_host_version_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 ProtocolVersionRequest::_internal_min_host_version() const {
  return min_host_version_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 ProtocolVersionRequest::min_host_version() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ProtocolVersionRequest.min_host_version)
  return _internal_min_host_version();
}
inline void ProtocolVersionRequest::_internal_set_min_host_version(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  min_host_version_ = value;
}
inline void ProtocolVersionRequest::set_min_host_version(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_min_host_version(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ProtocolVersionRequest.min_host_version)
}

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

// ProtocolVersionResponse

// .Anki.Vector.external_interface.ProtocolVersionResponse.Result result = 1;
inline void ProtocolVersionResponse::clear_result() {
  result_ = 0;
}
inline ::Anki::Vector::external_interface::ProtocolVersionResponse_Result ProtocolVersionResponse::_internal_result() const {
  return static_cast< ::Anki::Vector::external_interface::ProtocolVersionResponse_Result >(result_);
}
inline ::Anki::Vector::external_interface::ProtocolVersionResponse_Result ProtocolVersionResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ProtocolVersionResponse.result)
  return _internal_result();
}
inline void ProtocolVersionResponse::_internal_set_result(::Anki::Vector::external_interface::ProtocolVersionResponse_Result value) {
  
  result_ = value;
}
inline void ProtocolVersionResponse::set_result(::Anki::Vector::external_interface::ProtocolVersionResponse_Result value) {
  _internal_set_result(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ProtocolVersionResponse.result)
}

// int64 host_version = 2;
inline void ProtocolVersionResponse::clear_host_version() {
  host_version_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 ProtocolVersionResponse::_internal_host_version() const {
  return host_version_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 ProtocolVersionResponse::host_version() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ProtocolVersionResponse.host_version)
  return _internal_host_version();
}
inline void ProtocolVersionResponse::_internal_set_host_version(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  host_version_ = value;
}
inline void ProtocolVersionResponse::set_host_version(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_host_version(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ProtocolVersionResponse.host_version)
}

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

// ConnectionResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool ConnectionResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool ConnectionResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& ConnectionResponse::_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& ConnectionResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ConnectionResponse.status)
  return _internal_status();
}
inline void ConnectionResponse::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.ConnectionResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* ConnectionResponse::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* ConnectionResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ConnectionResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* ConnectionResponse::_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* ConnectionResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ConnectionResponse.status)
  return _internal_mutable_status();
}
inline void ConnectionResponse::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.ConnectionResponse.status)
}

// bool is_primary = 2;
inline void ConnectionResponse::clear_is_primary() {
  is_primary_ = false;
}
inline bool ConnectionResponse::_internal_is_primary() const {
  return is_primary_;
}
inline bool ConnectionResponse::is_primary() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ConnectionResponse.is_primary)
  return _internal_is_primary();
}
inline void ConnectionResponse::_internal_set_is_primary(bool value) {
  
  is_primary_ = value;
}
inline void ConnectionResponse::set_is_primary(bool value) {
  _internal_set_is_primary(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ConnectionResponse.is_primary)
}

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

// Event

// .Anki.Vector.external_interface.TimeStampedStatus time_stamped_status = 1;
inline bool Event::_internal_has_time_stamped_status() const {
  return event_type_case() == kTimeStampedStatus;
}
inline bool Event::has_time_stamped_status() const {
  return _internal_has_time_stamped_status();
}
inline void Event::set_has_time_stamped_status() {
  _oneof_case_[0] = kTimeStampedStatus;
}
inline ::Anki::Vector::external_interface::TimeStampedStatus* Event::release_time_stamped_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.time_stamped_status)
  if (_internal_has_time_stamped_status()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::TimeStampedStatus* temp = event_type_.time_stamped_status_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.time_stamped_status_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::TimeStampedStatus& Event::_internal_time_stamped_status() const {
  return _internal_has_time_stamped_status()
      ? *event_type_.time_stamped_status_
      : *reinterpret_cast< ::Anki::Vector::external_interface::TimeStampedStatus*>(&::Anki::Vector::external_interface::_TimeStampedStatus_default_instance_);
}
inline const ::Anki::Vector::external_interface::TimeStampedStatus& Event::time_stamped_status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.time_stamped_status)
  return _internal_time_stamped_status();
}
inline ::Anki::Vector::external_interface::TimeStampedStatus* Event::unsafe_arena_release_time_stamped_status() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.time_stamped_status)
  if (_internal_has_time_stamped_status()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::TimeStampedStatus* temp = event_type_.time_stamped_status_;
    event_type_.time_stamped_status_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_time_stamped_status(::Anki::Vector::external_interface::TimeStampedStatus* time_stamped_status) {
  clear_event_type();
  if (time_stamped_status) {
    set_has_time_stamped_status();
    event_type_.time_stamped_status_ = time_stamped_status;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.time_stamped_status)
}
inline ::Anki::Vector::external_interface::TimeStampedStatus* Event::_internal_mutable_time_stamped_status() {
  if (!_internal_has_time_stamped_status()) {
    clear_event_type();
    set_has_time_stamped_status();
    event_type_.time_stamped_status_ = CreateMaybeMessage< ::Anki::Vector::external_interface::TimeStampedStatus >(GetArena());
  }
  return event_type_.time_stamped_status_;
}
inline ::Anki::Vector::external_interface::TimeStampedStatus* Event::mutable_time_stamped_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.time_stamped_status)
  return _internal_mutable_time_stamped_status();
}

// .Anki.Vector.external_interface.Onboarding onboarding = 2;
inline bool Event::_internal_has_onboarding() const {
  return event_type_case() == kOnboarding;
}
inline bool Event::has_onboarding() const {
  return _internal_has_onboarding();
}
inline void Event::set_has_onboarding() {
  _oneof_case_[0] = kOnboarding;
}
inline ::Anki::Vector::external_interface::Onboarding* Event::release_onboarding() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.onboarding)
  if (_internal_has_onboarding()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::Onboarding* temp = event_type_.onboarding_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.onboarding_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::Onboarding& Event::_internal_onboarding() const {
  return _internal_has_onboarding()
      ? *event_type_.onboarding_
      : *reinterpret_cast< ::Anki::Vector::external_interface::Onboarding*>(&::Anki::Vector::external_interface::_Onboarding_default_instance_);
}
inline const ::Anki::Vector::external_interface::Onboarding& Event::onboarding() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.onboarding)
  return _internal_onboarding();
}
inline ::Anki::Vector::external_interface::Onboarding* Event::unsafe_arena_release_onboarding() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.onboarding)
  if (_internal_has_onboarding()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::Onboarding* temp = event_type_.onboarding_;
    event_type_.onboarding_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_onboarding(::Anki::Vector::external_interface::Onboarding* onboarding) {
  clear_event_type();
  if (onboarding) {
    set_has_onboarding();
    event_type_.onboarding_ = onboarding;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.onboarding)
}
inline ::Anki::Vector::external_interface::Onboarding* Event::_internal_mutable_onboarding() {
  if (!_internal_has_onboarding()) {
    clear_event_type();
    set_has_onboarding();
    event_type_.onboarding_ = CreateMaybeMessage< ::Anki::Vector::external_interface::Onboarding >(GetArena());
  }
  return event_type_.onboarding_;
}
inline ::Anki::Vector::external_interface::Onboarding* Event::mutable_onboarding() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.onboarding)
  return _internal_mutable_onboarding();
}

// .Anki.Vector.external_interface.WakeWord wake_word = 3;
inline bool Event::_internal_has_wake_word() const {
  return event_type_case() == kWakeWord;
}
inline bool Event::has_wake_word() const {
  return _internal_has_wake_word();
}
inline void Event::set_has_wake_word() {
  _oneof_case_[0] = kWakeWord;
}
inline ::Anki::Vector::external_interface::WakeWord* Event::release_wake_word() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.wake_word)
  if (_internal_has_wake_word()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::WakeWord* temp = event_type_.wake_word_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.wake_word_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::WakeWord& Event::_internal_wake_word() const {
  return _internal_has_wake_word()
      ? *event_type_.wake_word_
      : *reinterpret_cast< ::Anki::Vector::external_interface::WakeWord*>(&::Anki::Vector::external_interface::_WakeWord_default_instance_);
}
inline const ::Anki::Vector::external_interface::WakeWord& Event::wake_word() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.wake_word)
  return _internal_wake_word();
}
inline ::Anki::Vector::external_interface::WakeWord* Event::unsafe_arena_release_wake_word() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.wake_word)
  if (_internal_has_wake_word()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::WakeWord* temp = event_type_.wake_word_;
    event_type_.wake_word_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_wake_word(::Anki::Vector::external_interface::WakeWord* wake_word) {
  clear_event_type();
  if (wake_word) {
    set_has_wake_word();
    event_type_.wake_word_ = wake_word;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.wake_word)
}
inline ::Anki::Vector::external_interface::WakeWord* Event::_internal_mutable_wake_word() {
  if (!_internal_has_wake_word()) {
    clear_event_type();
    set_has_wake_word();
    event_type_.wake_word_ = CreateMaybeMessage< ::Anki::Vector::external_interface::WakeWord >(GetArena());
  }
  return event_type_.wake_word_;
}
inline ::Anki::Vector::external_interface::WakeWord* Event::mutable_wake_word() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.wake_word)
  return _internal_mutable_wake_word();
}

// .Anki.Vector.external_interface.AttentionTransfer attention_transfer = 4;
inline bool Event::_internal_has_attention_transfer() const {
  return event_type_case() == kAttentionTransfer;
}
inline bool Event::has_attention_transfer() const {
  return _internal_has_attention_transfer();
}
inline void Event::set_has_attention_transfer() {
  _oneof_case_[0] = kAttentionTransfer;
}
inline ::Anki::Vector::external_interface::AttentionTransfer* Event::release_attention_transfer() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.attention_transfer)
  if (_internal_has_attention_transfer()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::AttentionTransfer* temp = event_type_.attention_transfer_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.attention_transfer_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::AttentionTransfer& Event::_internal_attention_transfer() const {
  return _internal_has_attention_transfer()
      ? *event_type_.attention_transfer_
      : *reinterpret_cast< ::Anki::Vector::external_interface::AttentionTransfer*>(&::Anki::Vector::external_interface::_AttentionTransfer_default_instance_);
}
inline const ::Anki::Vector::external_interface::AttentionTransfer& Event::attention_transfer() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.attention_transfer)
  return _internal_attention_transfer();
}
inline ::Anki::Vector::external_interface::AttentionTransfer* Event::unsafe_arena_release_attention_transfer() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.attention_transfer)
  if (_internal_has_attention_transfer()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::AttentionTransfer* temp = event_type_.attention_transfer_;
    event_type_.attention_transfer_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_attention_transfer(::Anki::Vector::external_interface::AttentionTransfer* attention_transfer) {
  clear_event_type();
  if (attention_transfer) {
    set_has_attention_transfer();
    event_type_.attention_transfer_ = attention_transfer;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.attention_transfer)
}
inline ::Anki::Vector::external_interface::AttentionTransfer* Event::_internal_mutable_attention_transfer() {
  if (!_internal_has_attention_transfer()) {
    clear_event_type();
    set_has_attention_transfer();
    event_type_.attention_transfer_ = CreateMaybeMessage< ::Anki::Vector::external_interface::AttentionTransfer >(GetArena());
  }
  return event_type_.attention_transfer_;
}
inline ::Anki::Vector::external_interface::AttentionTransfer* Event::mutable_attention_transfer() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.attention_transfer)
  return _internal_mutable_attention_transfer();
}

// .Anki.Vector.external_interface.RobotObservedFace robot_observed_face = 5;
inline bool Event::_internal_has_robot_observed_face() const {
  return event_type_case() == kRobotObservedFace;
}
inline bool Event::has_robot_observed_face() const {
  return _internal_has_robot_observed_face();
}
inline void Event::set_has_robot_observed_face() {
  _oneof_case_[0] = kRobotObservedFace;
}
inline ::Anki::Vector::external_interface::RobotObservedFace* Event::release_robot_observed_face() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.robot_observed_face)
  if (_internal_has_robot_observed_face()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::RobotObservedFace* temp = event_type_.robot_observed_face_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.robot_observed_face_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::RobotObservedFace& Event::_internal_robot_observed_face() const {
  return _internal_has_robot_observed_face()
      ? *event_type_.robot_observed_face_
      : *reinterpret_cast< ::Anki::Vector::external_interface::RobotObservedFace*>(&::Anki::Vector::external_interface::_RobotObservedFace_default_instance_);
}
inline const ::Anki::Vector::external_interface::RobotObservedFace& Event::robot_observed_face() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.robot_observed_face)
  return _internal_robot_observed_face();
}
inline ::Anki::Vector::external_interface::RobotObservedFace* Event::unsafe_arena_release_robot_observed_face() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.robot_observed_face)
  if (_internal_has_robot_observed_face()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::RobotObservedFace* temp = event_type_.robot_observed_face_;
    event_type_.robot_observed_face_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_robot_observed_face(::Anki::Vector::external_interface::RobotObservedFace* robot_observed_face) {
  clear_event_type();
  if (robot_observed_face) {
    set_has_robot_observed_face();
    event_type_.robot_observed_face_ = robot_observed_face;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.robot_observed_face)
}
inline ::Anki::Vector::external_interface::RobotObservedFace* Event::_internal_mutable_robot_observed_face() {
  if (!_internal_has_robot_observed_face()) {
    clear_event_type();
    set_has_robot_observed_face();
    event_type_.robot_observed_face_ = CreateMaybeMessage< ::Anki::Vector::external_interface::RobotObservedFace >(GetArena());
  }
  return event_type_.robot_observed_face_;
}
inline ::Anki::Vector::external_interface::RobotObservedFace* Event::mutable_robot_observed_face() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.robot_observed_face)
  return _internal_mutable_robot_observed_face();
}

// .Anki.Vector.external_interface.RobotChangedObservedFaceID robot_changed_observed_face_id = 6;
inline bool Event::_internal_has_robot_changed_observed_face_id() const {
  return event_type_case() == kRobotChangedObservedFaceId;
}
inline bool Event::has_robot_changed_observed_face_id() const {
  return _internal_has_robot_changed_observed_face_id();
}
inline void Event::set_has_robot_changed_observed_face_id() {
  _oneof_case_[0] = kRobotChangedObservedFaceId;
}
inline ::Anki::Vector::external_interface::RobotChangedObservedFaceID* Event::release_robot_changed_observed_face_id() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.robot_changed_observed_face_id)
  if (_internal_has_robot_changed_observed_face_id()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::RobotChangedObservedFaceID* temp = event_type_.robot_changed_observed_face_id_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.robot_changed_observed_face_id_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::RobotChangedObservedFaceID& Event::_internal_robot_changed_observed_face_id() const {
  return _internal_has_robot_changed_observed_face_id()
      ? *event_type_.robot_changed_observed_face_id_
      : *reinterpret_cast< ::Anki::Vector::external_interface::RobotChangedObservedFaceID*>(&::Anki::Vector::external_interface::_RobotChangedObservedFaceID_default_instance_);
}
inline const ::Anki::Vector::external_interface::RobotChangedObservedFaceID& Event::robot_changed_observed_face_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.robot_changed_observed_face_id)
  return _internal_robot_changed_observed_face_id();
}
inline ::Anki::Vector::external_interface::RobotChangedObservedFaceID* Event::unsafe_arena_release_robot_changed_observed_face_id() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.robot_changed_observed_face_id)
  if (_internal_has_robot_changed_observed_face_id()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::RobotChangedObservedFaceID* temp = event_type_.robot_changed_observed_face_id_;
    event_type_.robot_changed_observed_face_id_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_robot_changed_observed_face_id(::Anki::Vector::external_interface::RobotChangedObservedFaceID* robot_changed_observed_face_id) {
  clear_event_type();
  if (robot_changed_observed_face_id) {
    set_has_robot_changed_observed_face_id();
    event_type_.robot_changed_observed_face_id_ = robot_changed_observed_face_id;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.robot_changed_observed_face_id)
}
inline ::Anki::Vector::external_interface::RobotChangedObservedFaceID* Event::_internal_mutable_robot_changed_observed_face_id() {
  if (!_internal_has_robot_changed_observed_face_id()) {
    clear_event_type();
    set_has_robot_changed_observed_face_id();
    event_type_.robot_changed_observed_face_id_ = CreateMaybeMessage< ::Anki::Vector::external_interface::RobotChangedObservedFaceID >(GetArena());
  }
  return event_type_.robot_changed_observed_face_id_;
}
inline ::Anki::Vector::external_interface::RobotChangedObservedFaceID* Event::mutable_robot_changed_observed_face_id() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.robot_changed_observed_face_id)
  return _internal_mutable_robot_changed_observed_face_id();
}

// .Anki.Vector.external_interface.ObjectEvent object_event = 7;
inline bool Event::_internal_has_object_event() const {
  return event_type_case() == kObjectEvent;
}
inline bool Event::has_object_event() const {
  return _internal_has_object_event();
}
inline void Event::set_has_object_event() {
  _oneof_case_[0] = kObjectEvent;
}
inline ::Anki::Vector::external_interface::ObjectEvent* Event::release_object_event() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.object_event)
  if (_internal_has_object_event()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::ObjectEvent* temp = event_type_.object_event_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.object_event_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ObjectEvent& Event::_internal_object_event() const {
  return _internal_has_object_event()
      ? *event_type_.object_event_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ObjectEvent*>(&::Anki::Vector::external_interface::_ObjectEvent_default_instance_);
}
inline const ::Anki::Vector::external_interface::ObjectEvent& Event::object_event() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.object_event)
  return _internal_object_event();
}
inline ::Anki::Vector::external_interface::ObjectEvent* Event::unsafe_arena_release_object_event() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.object_event)
  if (_internal_has_object_event()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::ObjectEvent* temp = event_type_.object_event_;
    event_type_.object_event_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_object_event(::Anki::Vector::external_interface::ObjectEvent* object_event) {
  clear_event_type();
  if (object_event) {
    set_has_object_event();
    event_type_.object_event_ = object_event;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.object_event)
}
inline ::Anki::Vector::external_interface::ObjectEvent* Event::_internal_mutable_object_event() {
  if (!_internal_has_object_event()) {
    clear_event_type();
    set_has_object_event();
    event_type_.object_event_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ObjectEvent >(GetArena());
  }
  return event_type_.object_event_;
}
inline ::Anki::Vector::external_interface::ObjectEvent* Event::mutable_object_event() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.object_event)
  return _internal_mutable_object_event();
}

// .Anki.Vector.external_interface.StimulationInfo stimulation_info = 8;
inline bool Event::_internal_has_stimulation_info() const {
  return event_type_case() == kStimulationInfo;
}
inline bool Event::has_stimulation_info() const {
  return _internal_has_stimulation_info();
}
inline void Event::set_has_stimulation_info() {
  _oneof_case_[0] = kStimulationInfo;
}
inline ::Anki::Vector::external_interface::StimulationInfo* Event::release_stimulation_info() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.stimulation_info)
  if (_internal_has_stimulation_info()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::StimulationInfo* temp = event_type_.stimulation_info_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.stimulation_info_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::StimulationInfo& Event::_internal_stimulation_info() const {
  return _internal_has_stimulation_info()
      ? *event_type_.stimulation_info_
      : *reinterpret_cast< ::Anki::Vector::external_interface::StimulationInfo*>(&::Anki::Vector::external_interface::_StimulationInfo_default_instance_);
}
inline const ::Anki::Vector::external_interface::StimulationInfo& Event::stimulation_info() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.stimulation_info)
  return _internal_stimulation_info();
}
inline ::Anki::Vector::external_interface::StimulationInfo* Event::unsafe_arena_release_stimulation_info() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.stimulation_info)
  if (_internal_has_stimulation_info()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::StimulationInfo* temp = event_type_.stimulation_info_;
    event_type_.stimulation_info_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_stimulation_info(::Anki::Vector::external_interface::StimulationInfo* stimulation_info) {
  clear_event_type();
  if (stimulation_info) {
    set_has_stimulation_info();
    event_type_.stimulation_info_ = stimulation_info;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.stimulation_info)
}
inline ::Anki::Vector::external_interface::StimulationInfo* Event::_internal_mutable_stimulation_info() {
  if (!_internal_has_stimulation_info()) {
    clear_event_type();
    set_has_stimulation_info();
    event_type_.stimulation_info_ = CreateMaybeMessage< ::Anki::Vector::external_interface::StimulationInfo >(GetArena());
  }
  return event_type_.stimulation_info_;
}
inline ::Anki::Vector::external_interface::StimulationInfo* Event::mutable_stimulation_info() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.stimulation_info)
  return _internal_mutable_stimulation_info();
}

// .Anki.Vector.external_interface.PhotoTaken photo_taken = 9;
inline bool Event::_internal_has_photo_taken() const {
  return event_type_case() == kPhotoTaken;
}
inline bool Event::has_photo_taken() const {
  return _internal_has_photo_taken();
}
inline void Event::set_has_photo_taken() {
  _oneof_case_[0] = kPhotoTaken;
}
inline ::Anki::Vector::external_interface::PhotoTaken* Event::release_photo_taken() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.photo_taken)
  if (_internal_has_photo_taken()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::PhotoTaken* temp = event_type_.photo_taken_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.photo_taken_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PhotoTaken& Event::_internal_photo_taken() const {
  return _internal_has_photo_taken()
      ? *event_type_.photo_taken_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PhotoTaken*>(&::Anki::Vector::external_interface::_PhotoTaken_default_instance_);
}
inline const ::Anki::Vector::external_interface::PhotoTaken& Event::photo_taken() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.photo_taken)
  return _internal_photo_taken();
}
inline ::Anki::Vector::external_interface::PhotoTaken* Event::unsafe_arena_release_photo_taken() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.photo_taken)
  if (_internal_has_photo_taken()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::PhotoTaken* temp = event_type_.photo_taken_;
    event_type_.photo_taken_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_photo_taken(::Anki::Vector::external_interface::PhotoTaken* photo_taken) {
  clear_event_type();
  if (photo_taken) {
    set_has_photo_taken();
    event_type_.photo_taken_ = photo_taken;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.photo_taken)
}
inline ::Anki::Vector::external_interface::PhotoTaken* Event::_internal_mutable_photo_taken() {
  if (!_internal_has_photo_taken()) {
    clear_event_type();
    set_has_photo_taken();
    event_type_.photo_taken_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PhotoTaken >(GetArena());
  }
  return event_type_.photo_taken_;
}
inline ::Anki::Vector::external_interface::PhotoTaken* Event::mutable_photo_taken() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.photo_taken)
  return _internal_mutable_photo_taken();
}

// .Anki.Vector.external_interface.RobotState robot_state = 10;
inline bool Event::_internal_has_robot_state() const {
  return event_type_case() == kRobotState;
}
inline bool Event::has_robot_state() const {
  return _internal_has_robot_state();
}
inline void Event::set_has_robot_state() {
  _oneof_case_[0] = kRobotState;
}
inline ::Anki::Vector::external_interface::RobotState* Event::release_robot_state() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.robot_state)
  if (_internal_has_robot_state()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::RobotState* temp = event_type_.robot_state_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.robot_state_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::RobotState& Event::_internal_robot_state() const {
  return _internal_has_robot_state()
      ? *event_type_.robot_state_
      : *reinterpret_cast< ::Anki::Vector::external_interface::RobotState*>(&::Anki::Vector::external_interface::_RobotState_default_instance_);
}
inline const ::Anki::Vector::external_interface::RobotState& Event::robot_state() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.robot_state)
  return _internal_robot_state();
}
inline ::Anki::Vector::external_interface::RobotState* Event::unsafe_arena_release_robot_state() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.robot_state)
  if (_internal_has_robot_state()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::RobotState* temp = event_type_.robot_state_;
    event_type_.robot_state_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_robot_state(::Anki::Vector::external_interface::RobotState* robot_state) {
  clear_event_type();
  if (robot_state) {
    set_has_robot_state();
    event_type_.robot_state_ = robot_state;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.robot_state)
}
inline ::Anki::Vector::external_interface::RobotState* Event::_internal_mutable_robot_state() {
  if (!_internal_has_robot_state()) {
    clear_event_type();
    set_has_robot_state();
    event_type_.robot_state_ = CreateMaybeMessage< ::Anki::Vector::external_interface::RobotState >(GetArena());
  }
  return event_type_.robot_state_;
}
inline ::Anki::Vector::external_interface::RobotState* Event::mutable_robot_state() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.robot_state)
  return _internal_mutable_robot_state();
}

// .Anki.Vector.external_interface.CubeBattery cube_battery = 11;
inline bool Event::_internal_has_cube_battery() const {
  return event_type_case() == kCubeBattery;
}
inline bool Event::has_cube_battery() const {
  return _internal_has_cube_battery();
}
inline void Event::set_has_cube_battery() {
  _oneof_case_[0] = kCubeBattery;
}
inline ::Anki::Vector::external_interface::CubeBattery* Event::release_cube_battery() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.cube_battery)
  if (_internal_has_cube_battery()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::CubeBattery* temp = event_type_.cube_battery_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.cube_battery_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CubeBattery& Event::_internal_cube_battery() const {
  return _internal_has_cube_battery()
      ? *event_type_.cube_battery_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CubeBattery*>(&::Anki::Vector::external_interface::_CubeBattery_default_instance_);
}
inline const ::Anki::Vector::external_interface::CubeBattery& Event::cube_battery() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.cube_battery)
  return _internal_cube_battery();
}
inline ::Anki::Vector::external_interface::CubeBattery* Event::unsafe_arena_release_cube_battery() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.cube_battery)
  if (_internal_has_cube_battery()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::CubeBattery* temp = event_type_.cube_battery_;
    event_type_.cube_battery_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_cube_battery(::Anki::Vector::external_interface::CubeBattery* cube_battery) {
  clear_event_type();
  if (cube_battery) {
    set_has_cube_battery();
    event_type_.cube_battery_ = cube_battery;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.cube_battery)
}
inline ::Anki::Vector::external_interface::CubeBattery* Event::_internal_mutable_cube_battery() {
  if (!_internal_has_cube_battery()) {
    clear_event_type();
    set_has_cube_battery();
    event_type_.cube_battery_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CubeBattery >(GetArena());
  }
  return event_type_.cube_battery_;
}
inline ::Anki::Vector::external_interface::CubeBattery* Event::mutable_cube_battery() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.cube_battery)
  return _internal_mutable_cube_battery();
}

// .Anki.Vector.external_interface.KeepAlivePing keep_alive = 12;
inline bool Event::_internal_has_keep_alive() const {
  return event_type_case() == kKeepAlive;
}
inline bool Event::has_keep_alive() const {
  return _internal_has_keep_alive();
}
inline void Event::set_has_keep_alive() {
  _oneof_case_[0] = kKeepAlive;
}
inline ::Anki::Vector::external_interface::KeepAlivePing* Event::release_keep_alive() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.keep_alive)
  if (_internal_has_keep_alive()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::KeepAlivePing* temp = event_type_.keep_alive_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.keep_alive_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::KeepAlivePing& Event::_internal_keep_alive() const {
  return _internal_has_keep_alive()
      ? *event_type_.keep_alive_
      : *reinterpret_cast< ::Anki::Vector::external_interface::KeepAlivePing*>(&::Anki::Vector::external_interface::_KeepAlivePing_default_instance_);
}
inline const ::Anki::Vector::external_interface::KeepAlivePing& Event::keep_alive() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.keep_alive)
  return _internal_keep_alive();
}
inline ::Anki::Vector::external_interface::KeepAlivePing* Event::unsafe_arena_release_keep_alive() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.keep_alive)
  if (_internal_has_keep_alive()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::KeepAlivePing* temp = event_type_.keep_alive_;
    event_type_.keep_alive_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_keep_alive(::Anki::Vector::external_interface::KeepAlivePing* keep_alive) {
  clear_event_type();
  if (keep_alive) {
    set_has_keep_alive();
    event_type_.keep_alive_ = keep_alive;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.keep_alive)
}
inline ::Anki::Vector::external_interface::KeepAlivePing* Event::_internal_mutable_keep_alive() {
  if (!_internal_has_keep_alive()) {
    clear_event_type();
    set_has_keep_alive();
    event_type_.keep_alive_ = CreateMaybeMessage< ::Anki::Vector::external_interface::KeepAlivePing >(GetArena());
  }
  return event_type_.keep_alive_;
}
inline ::Anki::Vector::external_interface::KeepAlivePing* Event::mutable_keep_alive() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.keep_alive)
  return _internal_mutable_keep_alive();
}

// .Anki.Vector.external_interface.ConnectionResponse connection_response = 13;
inline bool Event::_internal_has_connection_response() const {
  return event_type_case() == kConnectionResponse;
}
inline bool Event::has_connection_response() const {
  return _internal_has_connection_response();
}
inline void Event::set_has_connection_response() {
  _oneof_case_[0] = kConnectionResponse;
}
inline void Event::clear_connection_response() {
  if (_internal_has_connection_response()) {
    if (GetArena() == nullptr) {
      delete event_type_.connection_response_;
    }
    clear_has_event_type();
  }
}
inline ::Anki::Vector::external_interface::ConnectionResponse* Event::release_connection_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.connection_response)
  if (_internal_has_connection_response()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::ConnectionResponse* temp = event_type_.connection_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.connection_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ConnectionResponse& Event::_internal_connection_response() const {
  return _internal_has_connection_response()
      ? *event_type_.connection_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ConnectionResponse*>(&::Anki::Vector::external_interface::_ConnectionResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::ConnectionResponse& Event::connection_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.connection_response)
  return _internal_connection_response();
}
inline ::Anki::Vector::external_interface::ConnectionResponse* Event::unsafe_arena_release_connection_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.connection_response)
  if (_internal_has_connection_response()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::ConnectionResponse* temp = event_type_.connection_response_;
    event_type_.connection_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_connection_response(::Anki::Vector::external_interface::ConnectionResponse* connection_response) {
  clear_event_type();
  if (connection_response) {
    set_has_connection_response();
    event_type_.connection_response_ = connection_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.connection_response)
}
inline ::Anki::Vector::external_interface::ConnectionResponse* Event::_internal_mutable_connection_response() {
  if (!_internal_has_connection_response()) {
    clear_event_type();
    set_has_connection_response();
    event_type_.connection_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ConnectionResponse >(GetArena());
  }
  return event_type_.connection_response_;
}
inline ::Anki::Vector::external_interface::ConnectionResponse* Event::mutable_connection_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.connection_response)
  return _internal_mutable_connection_response();
}

// .Anki.Vector.external_interface.JdocsChanged jdocs_changed = 14;
inline bool Event::_internal_has_jdocs_changed() const {
  return event_type_case() == kJdocsChanged;
}
inline bool Event::has_jdocs_changed() const {
  return _internal_has_jdocs_changed();
}
inline void Event::set_has_jdocs_changed() {
  _oneof_case_[0] = kJdocsChanged;
}
inline ::Anki::Vector::external_interface::JdocsChanged* Event::release_jdocs_changed() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.jdocs_changed)
  if (_internal_has_jdocs_changed()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::JdocsChanged* temp = event_type_.jdocs_changed_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.jdocs_changed_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::JdocsChanged& Event::_internal_jdocs_changed() const {
  return _internal_has_jdocs_changed()
      ? *event_type_.jdocs_changed_
      : *reinterpret_cast< ::Anki::Vector::external_interface::JdocsChanged*>(&::Anki::Vector::external_interface::_JdocsChanged_default_instance_);
}
inline const ::Anki::Vector::external_interface::JdocsChanged& Event::jdocs_changed() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.jdocs_changed)
  return _internal_jdocs_changed();
}
inline ::Anki::Vector::external_interface::JdocsChanged* Event::unsafe_arena_release_jdocs_changed() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.jdocs_changed)
  if (_internal_has_jdocs_changed()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::JdocsChanged* temp = event_type_.jdocs_changed_;
    event_type_.jdocs_changed_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_jdocs_changed(::Anki::Vector::external_interface::JdocsChanged* jdocs_changed) {
  clear_event_type();
  if (jdocs_changed) {
    set_has_jdocs_changed();
    event_type_.jdocs_changed_ = jdocs_changed;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.jdocs_changed)
}
inline ::Anki::Vector::external_interface::JdocsChanged* Event::_internal_mutable_jdocs_changed() {
  if (!_internal_has_jdocs_changed()) {
    clear_event_type();
    set_has_jdocs_changed();
    event_type_.jdocs_changed_ = CreateMaybeMessage< ::Anki::Vector::external_interface::JdocsChanged >(GetArena());
  }
  return event_type_.jdocs_changed_;
}
inline ::Anki::Vector::external_interface::JdocsChanged* Event::mutable_jdocs_changed() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.jdocs_changed)
  return _internal_mutable_jdocs_changed();
}

// .Anki.Vector.external_interface.AlexaAuthEvent alexa_auth_event = 15;
inline bool Event::_internal_has_alexa_auth_event() const {
  return event_type_case() == kAlexaAuthEvent;
}
inline bool Event::has_alexa_auth_event() const {
  return _internal_has_alexa_auth_event();
}
inline void Event::set_has_alexa_auth_event() {
  _oneof_case_[0] = kAlexaAuthEvent;
}
inline ::Anki::Vector::external_interface::AlexaAuthEvent* Event::release_alexa_auth_event() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.alexa_auth_event)
  if (_internal_has_alexa_auth_event()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::AlexaAuthEvent* temp = event_type_.alexa_auth_event_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.alexa_auth_event_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::AlexaAuthEvent& Event::_internal_alexa_auth_event() const {
  return _internal_has_alexa_auth_event()
      ? *event_type_.alexa_auth_event_
      : *reinterpret_cast< ::Anki::Vector::external_interface::AlexaAuthEvent*>(&::Anki::Vector::external_interface::_AlexaAuthEvent_default_instance_);
}
inline const ::Anki::Vector::external_interface::AlexaAuthEvent& Event::alexa_auth_event() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.alexa_auth_event)
  return _internal_alexa_auth_event();
}
inline ::Anki::Vector::external_interface::AlexaAuthEvent* Event::unsafe_arena_release_alexa_auth_event() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.alexa_auth_event)
  if (_internal_has_alexa_auth_event()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::AlexaAuthEvent* temp = event_type_.alexa_auth_event_;
    event_type_.alexa_auth_event_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_alexa_auth_event(::Anki::Vector::external_interface::AlexaAuthEvent* alexa_auth_event) {
  clear_event_type();
  if (alexa_auth_event) {
    set_has_alexa_auth_event();
    event_type_.alexa_auth_event_ = alexa_auth_event;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.alexa_auth_event)
}
inline ::Anki::Vector::external_interface::AlexaAuthEvent* Event::_internal_mutable_alexa_auth_event() {
  if (!_internal_has_alexa_auth_event()) {
    clear_event_type();
    set_has_alexa_auth_event();
    event_type_.alexa_auth_event_ = CreateMaybeMessage< ::Anki::Vector::external_interface::AlexaAuthEvent >(GetArena());
  }
  return event_type_.alexa_auth_event_;
}
inline ::Anki::Vector::external_interface::AlexaAuthEvent* Event::mutable_alexa_auth_event() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.alexa_auth_event)
  return _internal_mutable_alexa_auth_event();
}

// .Anki.Vector.external_interface.MirrorModeDisabled mirror_mode_disabled = 16;
inline bool Event::_internal_has_mirror_mode_disabled() const {
  return event_type_case() == kMirrorModeDisabled;
}
inline bool Event::has_mirror_mode_disabled() const {
  return _internal_has_mirror_mode_disabled();
}
inline void Event::set_has_mirror_mode_disabled() {
  _oneof_case_[0] = kMirrorModeDisabled;
}
inline ::Anki::Vector::external_interface::MirrorModeDisabled* Event::release_mirror_mode_disabled() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.mirror_mode_disabled)
  if (_internal_has_mirror_mode_disabled()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::MirrorModeDisabled* temp = event_type_.mirror_mode_disabled_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.mirror_mode_disabled_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::MirrorModeDisabled& Event::_internal_mirror_mode_disabled() const {
  return _internal_has_mirror_mode_disabled()
      ? *event_type_.mirror_mode_disabled_
      : *reinterpret_cast< ::Anki::Vector::external_interface::MirrorModeDisabled*>(&::Anki::Vector::external_interface::_MirrorModeDisabled_default_instance_);
}
inline const ::Anki::Vector::external_interface::MirrorModeDisabled& Event::mirror_mode_disabled() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.mirror_mode_disabled)
  return _internal_mirror_mode_disabled();
}
inline ::Anki::Vector::external_interface::MirrorModeDisabled* Event::unsafe_arena_release_mirror_mode_disabled() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.mirror_mode_disabled)
  if (_internal_has_mirror_mode_disabled()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::MirrorModeDisabled* temp = event_type_.mirror_mode_disabled_;
    event_type_.mirror_mode_disabled_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_mirror_mode_disabled(::Anki::Vector::external_interface::MirrorModeDisabled* mirror_mode_disabled) {
  clear_event_type();
  if (mirror_mode_disabled) {
    set_has_mirror_mode_disabled();
    event_type_.mirror_mode_disabled_ = mirror_mode_disabled;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.mirror_mode_disabled)
}
inline ::Anki::Vector::external_interface::MirrorModeDisabled* Event::_internal_mutable_mirror_mode_disabled() {
  if (!_internal_has_mirror_mode_disabled()) {
    clear_event_type();
    set_has_mirror_mode_disabled();
    event_type_.mirror_mode_disabled_ = CreateMaybeMessage< ::Anki::Vector::external_interface::MirrorModeDisabled >(GetArena());
  }
  return event_type_.mirror_mode_disabled_;
}
inline ::Anki::Vector::external_interface::MirrorModeDisabled* Event::mutable_mirror_mode_disabled() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.mirror_mode_disabled)
  return _internal_mutable_mirror_mode_disabled();
}

// .Anki.Vector.external_interface.VisionModesAutoDisabled vision_modes_auto_disabled = 17;
inline bool Event::_internal_has_vision_modes_auto_disabled() const {
  return event_type_case() == kVisionModesAutoDisabled;
}
inline bool Event::has_vision_modes_auto_disabled() const {
  return _internal_has_vision_modes_auto_disabled();
}
inline void Event::set_has_vision_modes_auto_disabled() {
  _oneof_case_[0] = kVisionModesAutoDisabled;
}
inline ::Anki::Vector::external_interface::VisionModesAutoDisabled* Event::release_vision_modes_auto_disabled() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.vision_modes_auto_disabled)
  if (_internal_has_vision_modes_auto_disabled()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::VisionModesAutoDisabled* temp = event_type_.vision_modes_auto_disabled_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.vision_modes_auto_disabled_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::VisionModesAutoDisabled& Event::_internal_vision_modes_auto_disabled() const {
  return _internal_has_vision_modes_auto_disabled()
      ? *event_type_.vision_modes_auto_disabled_
      : *reinterpret_cast< ::Anki::Vector::external_interface::VisionModesAutoDisabled*>(&::Anki::Vector::external_interface::_VisionModesAutoDisabled_default_instance_);
}
inline const ::Anki::Vector::external_interface::VisionModesAutoDisabled& Event::vision_modes_auto_disabled() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.vision_modes_auto_disabled)
  return _internal_vision_modes_auto_disabled();
}
inline ::Anki::Vector::external_interface::VisionModesAutoDisabled* Event::unsafe_arena_release_vision_modes_auto_disabled() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.vision_modes_auto_disabled)
  if (_internal_has_vision_modes_auto_disabled()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::VisionModesAutoDisabled* temp = event_type_.vision_modes_auto_disabled_;
    event_type_.vision_modes_auto_disabled_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_vision_modes_auto_disabled(::Anki::Vector::external_interface::VisionModesAutoDisabled* vision_modes_auto_disabled) {
  clear_event_type();
  if (vision_modes_auto_disabled) {
    set_has_vision_modes_auto_disabled();
    event_type_.vision_modes_auto_disabled_ = vision_modes_auto_disabled;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.vision_modes_auto_disabled)
}
inline ::Anki::Vector::external_interface::VisionModesAutoDisabled* Event::_internal_mutable_vision_modes_auto_disabled() {
  if (!_internal_has_vision_modes_auto_disabled()) {
    clear_event_type();
    set_has_vision_modes_auto_disabled();
    event_type_.vision_modes_auto_disabled_ = CreateMaybeMessage< ::Anki::Vector::external_interface::VisionModesAutoDisabled >(GetArena());
  }
  return event_type_.vision_modes_auto_disabled_;
}
inline ::Anki::Vector::external_interface::VisionModesAutoDisabled* Event::mutable_vision_modes_auto_disabled() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.vision_modes_auto_disabled)
  return _internal_mutable_vision_modes_auto_disabled();
}

// .Anki.Vector.external_interface.CheckUpdateStatusResponse check_update_status_response = 18;
inline bool Event::_internal_has_check_update_status_response() const {
  return event_type_case() == kCheckUpdateStatusResponse;
}
inline bool Event::has_check_update_status_response() const {
  return _internal_has_check_update_status_response();
}
inline void Event::set_has_check_update_status_response() {
  _oneof_case_[0] = kCheckUpdateStatusResponse;
}
inline ::Anki::Vector::external_interface::CheckUpdateStatusResponse* Event::release_check_update_status_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.check_update_status_response)
  if (_internal_has_check_update_status_response()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::CheckUpdateStatusResponse* temp = event_type_.check_update_status_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.check_update_status_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CheckUpdateStatusResponse& Event::_internal_check_update_status_response() const {
  return _internal_has_check_update_status_response()
      ? *event_type_.check_update_status_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CheckUpdateStatusResponse*>(&::Anki::Vector::external_interface::_CheckUpdateStatusResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::CheckUpdateStatusResponse& Event::check_update_status_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.check_update_status_response)
  return _internal_check_update_status_response();
}
inline ::Anki::Vector::external_interface::CheckUpdateStatusResponse* Event::unsafe_arena_release_check_update_status_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.check_update_status_response)
  if (_internal_has_check_update_status_response()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::CheckUpdateStatusResponse* temp = event_type_.check_update_status_response_;
    event_type_.check_update_status_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_check_update_status_response(::Anki::Vector::external_interface::CheckUpdateStatusResponse* check_update_status_response) {
  clear_event_type();
  if (check_update_status_response) {
    set_has_check_update_status_response();
    event_type_.check_update_status_response_ = check_update_status_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.check_update_status_response)
}
inline ::Anki::Vector::external_interface::CheckUpdateStatusResponse* Event::_internal_mutable_check_update_status_response() {
  if (!_internal_has_check_update_status_response()) {
    clear_event_type();
    set_has_check_update_status_response();
    event_type_.check_update_status_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CheckUpdateStatusResponse >(GetArena());
  }
  return event_type_.check_update_status_response_;
}
inline ::Anki::Vector::external_interface::CheckUpdateStatusResponse* Event::mutable_check_update_status_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.check_update_status_response)
  return _internal_mutable_check_update_status_response();
}

// .Anki.Vector.external_interface.UserIntent user_intent = 19;
inline bool Event::_internal_has_user_intent() const {
  return event_type_case() == kUserIntent;
}
inline bool Event::has_user_intent() const {
  return _internal_has_user_intent();
}
inline void Event::set_has_user_intent() {
  _oneof_case_[0] = kUserIntent;
}
inline ::Anki::Vector::external_interface::UserIntent* Event::release_user_intent() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.user_intent)
  if (_internal_has_user_intent()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::UserIntent* temp = event_type_.user_intent_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.user_intent_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::UserIntent& Event::_internal_user_intent() const {
  return _internal_has_user_intent()
      ? *event_type_.user_intent_
      : *reinterpret_cast< ::Anki::Vector::external_interface::UserIntent*>(&::Anki::Vector::external_interface::_UserIntent_default_instance_);
}
inline const ::Anki::Vector::external_interface::UserIntent& Event::user_intent() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.user_intent)
  return _internal_user_intent();
}
inline ::Anki::Vector::external_interface::UserIntent* Event::unsafe_arena_release_user_intent() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.user_intent)
  if (_internal_has_user_intent()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::UserIntent* temp = event_type_.user_intent_;
    event_type_.user_intent_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_user_intent(::Anki::Vector::external_interface::UserIntent* user_intent) {
  clear_event_type();
  if (user_intent) {
    set_has_user_intent();
    event_type_.user_intent_ = user_intent;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.user_intent)
}
inline ::Anki::Vector::external_interface::UserIntent* Event::_internal_mutable_user_intent() {
  if (!_internal_has_user_intent()) {
    clear_event_type();
    set_has_user_intent();
    event_type_.user_intent_ = CreateMaybeMessage< ::Anki::Vector::external_interface::UserIntent >(GetArena());
  }
  return event_type_.user_intent_;
}
inline ::Anki::Vector::external_interface::UserIntent* Event::mutable_user_intent() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.user_intent)
  return _internal_mutable_user_intent();
}

// .Anki.Vector.external_interface.RobotObservedMotion robot_observed_motion = 20;
inline bool Event::_internal_has_robot_observed_motion() const {
  return event_type_case() == kRobotObservedMotion;
}
inline bool Event::has_robot_observed_motion() const {
  return _internal_has_robot_observed_motion();
}
inline void Event::set_has_robot_observed_motion() {
  _oneof_case_[0] = kRobotObservedMotion;
}
inline ::Anki::Vector::external_interface::RobotObservedMotion* Event::release_robot_observed_motion() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.robot_observed_motion)
  if (_internal_has_robot_observed_motion()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::RobotObservedMotion* temp = event_type_.robot_observed_motion_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.robot_observed_motion_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::RobotObservedMotion& Event::_internal_robot_observed_motion() const {
  return _internal_has_robot_observed_motion()
      ? *event_type_.robot_observed_motion_
      : *reinterpret_cast< ::Anki::Vector::external_interface::RobotObservedMotion*>(&::Anki::Vector::external_interface::_RobotObservedMotion_default_instance_);
}
inline const ::Anki::Vector::external_interface::RobotObservedMotion& Event::robot_observed_motion() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.robot_observed_motion)
  return _internal_robot_observed_motion();
}
inline ::Anki::Vector::external_interface::RobotObservedMotion* Event::unsafe_arena_release_robot_observed_motion() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.robot_observed_motion)
  if (_internal_has_robot_observed_motion()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::RobotObservedMotion* temp = event_type_.robot_observed_motion_;
    event_type_.robot_observed_motion_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_robot_observed_motion(::Anki::Vector::external_interface::RobotObservedMotion* robot_observed_motion) {
  clear_event_type();
  if (robot_observed_motion) {
    set_has_robot_observed_motion();
    event_type_.robot_observed_motion_ = robot_observed_motion;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.robot_observed_motion)
}
inline ::Anki::Vector::external_interface::RobotObservedMotion* Event::_internal_mutable_robot_observed_motion() {
  if (!_internal_has_robot_observed_motion()) {
    clear_event_type();
    set_has_robot_observed_motion();
    event_type_.robot_observed_motion_ = CreateMaybeMessage< ::Anki::Vector::external_interface::RobotObservedMotion >(GetArena());
  }
  return event_type_.robot_observed_motion_;
}
inline ::Anki::Vector::external_interface::RobotObservedMotion* Event::mutable_robot_observed_motion() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.robot_observed_motion)
  return _internal_mutable_robot_observed_motion();
}

// .Anki.Vector.external_interface.RobotErasedEnrolledFace robot_erased_enrolled_face = 21;
inline bool Event::_internal_has_robot_erased_enrolled_face() const {
  return event_type_case() == kRobotErasedEnrolledFace;
}
inline bool Event::has_robot_erased_enrolled_face() const {
  return _internal_has_robot_erased_enrolled_face();
}
inline void Event::set_has_robot_erased_enrolled_face() {
  _oneof_case_[0] = kRobotErasedEnrolledFace;
}
inline ::Anki::Vector::external_interface::RobotErasedEnrolledFace* Event::release_robot_erased_enrolled_face() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.robot_erased_enrolled_face)
  if (_internal_has_robot_erased_enrolled_face()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::RobotErasedEnrolledFace* temp = event_type_.robot_erased_enrolled_face_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.robot_erased_enrolled_face_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::RobotErasedEnrolledFace& Event::_internal_robot_erased_enrolled_face() const {
  return _internal_has_robot_erased_enrolled_face()
      ? *event_type_.robot_erased_enrolled_face_
      : *reinterpret_cast< ::Anki::Vector::external_interface::RobotErasedEnrolledFace*>(&::Anki::Vector::external_interface::_RobotErasedEnrolledFace_default_instance_);
}
inline const ::Anki::Vector::external_interface::RobotErasedEnrolledFace& Event::robot_erased_enrolled_face() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.robot_erased_enrolled_face)
  return _internal_robot_erased_enrolled_face();
}
inline ::Anki::Vector::external_interface::RobotErasedEnrolledFace* Event::unsafe_arena_release_robot_erased_enrolled_face() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.robot_erased_enrolled_face)
  if (_internal_has_robot_erased_enrolled_face()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::RobotErasedEnrolledFace* temp = event_type_.robot_erased_enrolled_face_;
    event_type_.robot_erased_enrolled_face_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_robot_erased_enrolled_face(::Anki::Vector::external_interface::RobotErasedEnrolledFace* robot_erased_enrolled_face) {
  clear_event_type();
  if (robot_erased_enrolled_face) {
    set_has_robot_erased_enrolled_face();
    event_type_.robot_erased_enrolled_face_ = robot_erased_enrolled_face;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.robot_erased_enrolled_face)
}
inline ::Anki::Vector::external_interface::RobotErasedEnrolledFace* Event::_internal_mutable_robot_erased_enrolled_face() {
  if (!_internal_has_robot_erased_enrolled_face()) {
    clear_event_type();
    set_has_robot_erased_enrolled_face();
    event_type_.robot_erased_enrolled_face_ = CreateMaybeMessage< ::Anki::Vector::external_interface::RobotErasedEnrolledFace >(GetArena());
  }
  return event_type_.robot_erased_enrolled_face_;
}
inline ::Anki::Vector::external_interface::RobotErasedEnrolledFace* Event::mutable_robot_erased_enrolled_face() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.robot_erased_enrolled_face)
  return _internal_mutable_robot_erased_enrolled_face();
}

// .Anki.Vector.external_interface.RobotRenamedEnrolledFace robot_renamed_enrolled_face = 22;
inline bool Event::_internal_has_robot_renamed_enrolled_face() const {
  return event_type_case() == kRobotRenamedEnrolledFace;
}
inline bool Event::has_robot_renamed_enrolled_face() const {
  return _internal_has_robot_renamed_enrolled_face();
}
inline void Event::set_has_robot_renamed_enrolled_face() {
  _oneof_case_[0] = kRobotRenamedEnrolledFace;
}
inline ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* Event::release_robot_renamed_enrolled_face() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.robot_renamed_enrolled_face)
  if (_internal_has_robot_renamed_enrolled_face()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* temp = event_type_.robot_renamed_enrolled_face_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.robot_renamed_enrolled_face_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::RobotRenamedEnrolledFace& Event::_internal_robot_renamed_enrolled_face() const {
  return _internal_has_robot_renamed_enrolled_face()
      ? *event_type_.robot_renamed_enrolled_face_
      : *reinterpret_cast< ::Anki::Vector::external_interface::RobotRenamedEnrolledFace*>(&::Anki::Vector::external_interface::_RobotRenamedEnrolledFace_default_instance_);
}
inline const ::Anki::Vector::external_interface::RobotRenamedEnrolledFace& Event::robot_renamed_enrolled_face() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.robot_renamed_enrolled_face)
  return _internal_robot_renamed_enrolled_face();
}
inline ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* Event::unsafe_arena_release_robot_renamed_enrolled_face() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.robot_renamed_enrolled_face)
  if (_internal_has_robot_renamed_enrolled_face()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* temp = event_type_.robot_renamed_enrolled_face_;
    event_type_.robot_renamed_enrolled_face_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_robot_renamed_enrolled_face(::Anki::Vector::external_interface::RobotRenamedEnrolledFace* robot_renamed_enrolled_face) {
  clear_event_type();
  if (robot_renamed_enrolled_face) {
    set_has_robot_renamed_enrolled_face();
    event_type_.robot_renamed_enrolled_face_ = robot_renamed_enrolled_face;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.robot_renamed_enrolled_face)
}
inline ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* Event::_internal_mutable_robot_renamed_enrolled_face() {
  if (!_internal_has_robot_renamed_enrolled_face()) {
    clear_event_type();
    set_has_robot_renamed_enrolled_face();
    event_type_.robot_renamed_enrolled_face_ = CreateMaybeMessage< ::Anki::Vector::external_interface::RobotRenamedEnrolledFace >(GetArena());
  }
  return event_type_.robot_renamed_enrolled_face_;
}
inline ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* Event::mutable_robot_renamed_enrolled_face() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.robot_renamed_enrolled_face)
  return _internal_mutable_robot_renamed_enrolled_face();
}

// .Anki.Vector.external_interface.CameraSettingsUpdate camera_settings_update = 23;
inline bool Event::_internal_has_camera_settings_update() const {
  return event_type_case() == kCameraSettingsUpdate;
}
inline bool Event::has_camera_settings_update() const {
  return _internal_has_camera_settings_update();
}
inline void Event::set_has_camera_settings_update() {
  _oneof_case_[0] = kCameraSettingsUpdate;
}
inline ::Anki::Vector::external_interface::CameraSettingsUpdate* Event::release_camera_settings_update() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.camera_settings_update)
  if (_internal_has_camera_settings_update()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::CameraSettingsUpdate* temp = event_type_.camera_settings_update_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.camera_settings_update_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CameraSettingsUpdate& Event::_internal_camera_settings_update() const {
  return _internal_has_camera_settings_update()
      ? *event_type_.camera_settings_update_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CameraSettingsUpdate*>(&::Anki::Vector::external_interface::_CameraSettingsUpdate_default_instance_);
}
inline const ::Anki::Vector::external_interface::CameraSettingsUpdate& Event::camera_settings_update() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.camera_settings_update)
  return _internal_camera_settings_update();
}
inline ::Anki::Vector::external_interface::CameraSettingsUpdate* Event::unsafe_arena_release_camera_settings_update() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.camera_settings_update)
  if (_internal_has_camera_settings_update()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::CameraSettingsUpdate* temp = event_type_.camera_settings_update_;
    event_type_.camera_settings_update_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_camera_settings_update(::Anki::Vector::external_interface::CameraSettingsUpdate* camera_settings_update) {
  clear_event_type();
  if (camera_settings_update) {
    set_has_camera_settings_update();
    event_type_.camera_settings_update_ = camera_settings_update;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.camera_settings_update)
}
inline ::Anki::Vector::external_interface::CameraSettingsUpdate* Event::_internal_mutable_camera_settings_update() {
  if (!_internal_has_camera_settings_update()) {
    clear_event_type();
    set_has_camera_settings_update();
    event_type_.camera_settings_update_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CameraSettingsUpdate >(GetArena());
  }
  return event_type_.camera_settings_update_;
}
inline ::Anki::Vector::external_interface::CameraSettingsUpdate* Event::mutable_camera_settings_update() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.camera_settings_update)
  return _internal_mutable_camera_settings_update();
}

// .Anki.Vector.external_interface.UnexpectedMovement unexpected_movement = 24;
inline bool Event::_internal_has_unexpected_movement() const {
  return event_type_case() == kUnexpectedMovement;
}
inline bool Event::has_unexpected_movement() const {
  return _internal_has_unexpected_movement();
}
inline void Event::set_has_unexpected_movement() {
  _oneof_case_[0] = kUnexpectedMovement;
}
inline ::Anki::Vector::external_interface::UnexpectedMovement* Event::release_unexpected_movement() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Event.unexpected_movement)
  if (_internal_has_unexpected_movement()) {
    clear_has_event_type();
      ::Anki::Vector::external_interface::UnexpectedMovement* temp = event_type_.unexpected_movement_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    event_type_.unexpected_movement_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::UnexpectedMovement& Event::_internal_unexpected_movement() const {
  return _internal_has_unexpected_movement()
      ? *event_type_.unexpected_movement_
      : *reinterpret_cast< ::Anki::Vector::external_interface::UnexpectedMovement*>(&::Anki::Vector::external_interface::_UnexpectedMovement_default_instance_);
}
inline const ::Anki::Vector::external_interface::UnexpectedMovement& Event::unexpected_movement() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Event.unexpected_movement)
  return _internal_unexpected_movement();
}
inline ::Anki::Vector::external_interface::UnexpectedMovement* Event::unsafe_arena_release_unexpected_movement() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Event.unexpected_movement)
  if (_internal_has_unexpected_movement()) {
    clear_has_event_type();
    ::Anki::Vector::external_interface::UnexpectedMovement* temp = event_type_.unexpected_movement_;
    event_type_.unexpected_movement_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Event::unsafe_arena_set_allocated_unexpected_movement(::Anki::Vector::external_interface::UnexpectedMovement* unexpected_movement) {
  clear_event_type();
  if (unexpected_movement) {
    set_has_unexpected_movement();
    event_type_.unexpected_movement_ = unexpected_movement;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Event.unexpected_movement)
}
inline ::Anki::Vector::external_interface::UnexpectedMovement* Event::_internal_mutable_unexpected_movement() {
  if (!_internal_has_unexpected_movement()) {
    clear_event_type();
    set_has_unexpected_movement();
    event_type_.unexpected_movement_ = CreateMaybeMessage< ::Anki::Vector::external_interface::UnexpectedMovement >(GetArena());
  }
  return event_type_.unexpected_movement_;
}
inline ::Anki::Vector::external_interface::UnexpectedMovement* Event::mutable_unexpected_movement() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Event.unexpected_movement)
  return _internal_mutable_unexpected_movement();
}

inline bool Event::has_event_type() const {
  return event_type_case() != EVENT_TYPE_NOT_SET;
}
inline void Event::clear_has_event_type() {
  _oneof_case_[0] = EVENT_TYPE_NOT_SET;
}
inline Event::EventTypeCase Event::event_type_case() const {
  return Event::EventTypeCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// FilterList

// repeated string list = 1;
inline int FilterList::_internal_list_size() const {
  return list_.size();
}
inline int FilterList::list_size() const {
  return _internal_list_size();
}
inline void FilterList::clear_list() {
  list_.Clear();
}
inline std::string* FilterList::add_list() {
  // @@protoc_insertion_point(field_add_mutable:Anki.Vector.external_interface.FilterList.list)
  return _internal_add_list();
}
inline const std::string& FilterList::_internal_list(int index) const {
  return list_.Get(index);
}
inline const std::string& FilterList::list(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FilterList.list)
  return _internal_list(index);
}
inline std::string* FilterList::mutable_list(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.FilterList.list)
  return list_.Mutable(index);
}
inline void FilterList::set_list(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FilterList.list)
  list_.Mutable(index)->assign(value);
}
inline void FilterList::set_list(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FilterList.list)
  list_.Mutable(index)->assign(std::move(value));
}
inline void FilterList::set_list(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  list_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.FilterList.list)
}
inline void FilterList::set_list(int index, const char* value, size_t size) {
  list_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Anki.Vector.external_interface.FilterList.list)
}
inline std::string* FilterList::_internal_add_list() {
  return list_.Add();
}
inline void FilterList::add_list(const std::string& value) {
  list_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.FilterList.list)
}
inline void FilterList::add_list(std::string&& value) {
  list_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.FilterList.list)
}
inline void FilterList::add_list(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  list_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:Anki.Vector.external_interface.FilterList.list)
}
inline void FilterList::add_list(const char* value, size_t size) {
  list_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:Anki.Vector.external_interface.FilterList.list)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
FilterList::list() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.FilterList.list)
  return list_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
FilterList::mutable_list() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.FilterList.list)
  return &list_;
}

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

// EventRequest

// .Anki.Vector.external_interface.FilterList white_list = 1;
inline bool EventRequest::_internal_has_white_list() const {
  return list_type_case() == kWhiteList;
}
inline bool EventRequest::has_white_list() const {
  return _internal_has_white_list();
}
inline void EventRequest::set_has_white_list() {
  _oneof_case_[0] = kWhiteList;
}
inline void EventRequest::clear_white_list() {
  if (_internal_has_white_list()) {
    if (GetArena() == nullptr) {
      delete list_type_.white_list_;
    }
    clear_has_list_type();
  }
}
inline ::Anki::Vector::external_interface::FilterList* EventRequest::release_white_list() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.EventRequest.white_list)
  if (_internal_has_white_list()) {
    clear_has_list_type();
      ::Anki::Vector::external_interface::FilterList* temp = list_type_.white_list_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    list_type_.white_list_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::FilterList& EventRequest::_internal_white_list() const {
  return _internal_has_white_list()
      ? *list_type_.white_list_
      : *reinterpret_cast< ::Anki::Vector::external_interface::FilterList*>(&::Anki::Vector::external_interface::_FilterList_default_instance_);
}
inline const ::Anki::Vector::external_interface::FilterList& EventRequest::white_list() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EventRequest.white_list)
  return _internal_white_list();
}
inline ::Anki::Vector::external_interface::FilterList* EventRequest::unsafe_arena_release_white_list() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.EventRequest.white_list)
  if (_internal_has_white_list()) {
    clear_has_list_type();
    ::Anki::Vector::external_interface::FilterList* temp = list_type_.white_list_;
    list_type_.white_list_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void EventRequest::unsafe_arena_set_allocated_white_list(::Anki::Vector::external_interface::FilterList* white_list) {
  clear_list_type();
  if (white_list) {
    set_has_white_list();
    list_type_.white_list_ = white_list;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.EventRequest.white_list)
}
inline ::Anki::Vector::external_interface::FilterList* EventRequest::_internal_mutable_white_list() {
  if (!_internal_has_white_list()) {
    clear_list_type();
    set_has_white_list();
    list_type_.white_list_ = CreateMaybeMessage< ::Anki::Vector::external_interface::FilterList >(GetArena());
  }
  return list_type_.white_list_;
}
inline ::Anki::Vector::external_interface::FilterList* EventRequest::mutable_white_list() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.EventRequest.white_list)
  return _internal_mutable_white_list();
}

// .Anki.Vector.external_interface.FilterList black_list = 2;
inline bool EventRequest::_internal_has_black_list() const {
  return list_type_case() == kBlackList;
}
inline bool EventRequest::has_black_list() const {
  return _internal_has_black_list();
}
inline void EventRequest::set_has_black_list() {
  _oneof_case_[0] = kBlackList;
}
inline void EventRequest::clear_black_list() {
  if (_internal_has_black_list()) {
    if (GetArena() == nullptr) {
      delete list_type_.black_list_;
    }
    clear_has_list_type();
  }
}
inline ::Anki::Vector::external_interface::FilterList* EventRequest::release_black_list() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.EventRequest.black_list)
  if (_internal_has_black_list()) {
    clear_has_list_type();
      ::Anki::Vector::external_interface::FilterList* temp = list_type_.black_list_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    list_type_.black_list_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::FilterList& EventRequest::_internal_black_list() const {
  return _internal_has_black_list()
      ? *list_type_.black_list_
      : *reinterpret_cast< ::Anki::Vector::external_interface::FilterList*>(&::Anki::Vector::external_interface::_FilterList_default_instance_);
}
inline const ::Anki::Vector::external_interface::FilterList& EventRequest::black_list() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EventRequest.black_list)
  return _internal_black_list();
}
inline ::Anki::Vector::external_interface::FilterList* EventRequest::unsafe_arena_release_black_list() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.EventRequest.black_list)
  if (_internal_has_black_list()) {
    clear_has_list_type();
    ::Anki::Vector::external_interface::FilterList* temp = list_type_.black_list_;
    list_type_.black_list_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void EventRequest::unsafe_arena_set_allocated_black_list(::Anki::Vector::external_interface::FilterList* black_list) {
  clear_list_type();
  if (black_list) {
    set_has_black_list();
    list_type_.black_list_ = black_list;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.EventRequest.black_list)
}
inline ::Anki::Vector::external_interface::FilterList* EventRequest::_internal_mutable_black_list() {
  if (!_internal_has_black_list()) {
    clear_list_type();
    set_has_black_list();
    list_type_.black_list_ = CreateMaybeMessage< ::Anki::Vector::external_interface::FilterList >(GetArena());
  }
  return list_type_.black_list_;
}
inline ::Anki::Vector::external_interface::FilterList* EventRequest::mutable_black_list() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.EventRequest.black_list)
  return _internal_mutable_black_list();
}

// string connection_id = 3;
inline void EventRequest::clear_connection_id() {
  connection_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& EventRequest::connection_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EventRequest.connection_id)
  return _internal_connection_id();
}
inline void EventRequest::set_connection_id(const std::string& value) {
  _internal_set_connection_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.EventRequest.connection_id)
}
inline std::string* EventRequest::mutable_connection_id() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.EventRequest.connection_id)
  return _internal_mutable_connection_id();
}
inline const std::string& EventRequest::_internal_connection_id() const {
  return connection_id_.Get();
}
inline void EventRequest::_internal_set_connection_id(const std::string& value) {
  
  connection_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void EventRequest::set_connection_id(std::string&& value) {
  
  connection_id_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.EventRequest.connection_id)
}
inline void EventRequest::set_connection_id(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  connection_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.EventRequest.connection_id)
}
inline void EventRequest::set_connection_id(const char* value,
    size_t size) {
  
  connection_id_.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.EventRequest.connection_id)
}
inline std::string* EventRequest::_internal_mutable_connection_id() {
  
  return connection_id_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* EventRequest::release_connection_id() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.EventRequest.connection_id)
  return connection_id_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void EventRequest::set_allocated_connection_id(std::string* connection_id) {
  if (connection_id != nullptr) {
    
  } else {
    
  }
  connection_id_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), connection_id,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.EventRequest.connection_id)
}
inline std::string* EventRequest::unsafe_arena_release_connection_id() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.EventRequest.connection_id)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return connection_id_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void EventRequest::unsafe_arena_set_allocated_connection_id(
    std::string* connection_id) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (connection_id != nullptr) {
    
  } else {
    
  }
  connection_id_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      connection_id, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.EventRequest.connection_id)
}

inline bool EventRequest::has_list_type() const {
  return list_type_case() != LIST_TYPE_NOT_SET;
}
inline void EventRequest::clear_has_list_type() {
  _oneof_case_[0] = LIST_TYPE_NOT_SET;
}
inline EventRequest::ListTypeCase EventRequest::list_type_case() const {
  return EventRequest::ListTypeCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// EventResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool EventResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool EventResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& EventResponse::_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& EventResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EventResponse.status)
  return _internal_status();
}
inline void EventResponse::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.EventResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* EventResponse::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* EventResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.EventResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* EventResponse::_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* EventResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.EventResponse.status)
  return _internal_mutable_status();
}
inline void EventResponse::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.EventResponse.status)
}

// .Anki.Vector.external_interface.Event event = 2;
inline bool EventResponse::_internal_has_event() const {
  return this != internal_default_instance() && event_ != nullptr;
}
inline bool EventResponse::has_event() const {
  return _internal_has_event();
}
inline void EventResponse::clear_event() {
  if (GetArena() == nullptr && event_ != nullptr) {
    delete event_;
  }
  event_ = nullptr;
}
inline const ::Anki::Vector::external_interface::Event& EventResponse::_internal_event() const {
  const ::Anki::Vector::external_interface::Event* p = event_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::Event*>(
      &::Anki::Vector::external_interface::_Event_default_instance_);
}
inline const ::Anki::Vector::external_interface::Event& EventResponse::event() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EventResponse.event)
  return _internal_event();
}
inline void EventResponse::unsafe_arena_set_allocated_event(
    ::Anki::Vector::external_interface::Event* event) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(event_);
  }
  event_ = event;
  if (event) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.EventResponse.event)
}
inline ::Anki::Vector::external_interface::Event* EventResponse::release_event() {
  auto temp = unsafe_arena_release_event();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::Event* EventResponse::unsafe_arena_release_event() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.EventResponse.event)
  
  ::Anki::Vector::external_interface::Event* temp = event_;
  event_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::Event* EventResponse::_internal_mutable_event() {
  
  if (event_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::Event>(GetArena());
    event_ = p;
  }
  return event_;
}
inline ::Anki::Vector::external_interface::Event* EventResponse::mutable_event() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.EventResponse.event)
  return _internal_mutable_event();
}
inline void EventResponse::set_allocated_event(::Anki::Vector::external_interface::Event* event) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete event_;
  }
  if (event) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(event);
    if (message_arena != submessage_arena) {
      event = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, event, submessage_arena);
    }
    
  } else {
    
  }
  event_ = event;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.EventResponse.event)
}

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

// UserAuthenticationRequest

// bytes user_session_id = 1;
inline void UserAuthenticationRequest::clear_user_session_id() {
  user_session_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UserAuthenticationRequest::user_session_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UserAuthenticationRequest.user_session_id)
  return _internal_user_session_id();
}
inline void UserAuthenticationRequest::set_user_session_id(const std::string& value) {
  _internal_set_user_session_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UserAuthenticationRequest.user_session_id)
}
inline std::string* UserAuthenticationRequest::mutable_user_session_id() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UserAuthenticationRequest.user_session_id)
  return _internal_mutable_user_session_id();
}
inline const std::string& UserAuthenticationRequest::_internal_user_session_id() const {
  return user_session_id_.Get();
}
inline void UserAuthenticationRequest::_internal_set_user_session_id(const std::string& value) {
  
  user_session_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UserAuthenticationRequest::set_user_session_id(std::string&& value) {
  
  user_session_id_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.UserAuthenticationRequest.user_session_id)
}
inline void UserAuthenticationRequest::set_user_session_id(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  user_session_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.UserAuthenticationRequest.user_session_id)
}
inline void UserAuthenticationRequest::set_user_session_id(const void* value,
    size_t size) {
  
  user_session_id_.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.UserAuthenticationRequest.user_session_id)
}
inline std::string* UserAuthenticationRequest::_internal_mutable_user_session_id() {
  
  return user_session_id_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UserAuthenticationRequest::release_user_session_id() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UserAuthenticationRequest.user_session_id)
  return user_session_id_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UserAuthenticationRequest::set_allocated_user_session_id(std::string* user_session_id) {
  if (user_session_id != nullptr) {
    
  } else {
    
  }
  user_session_id_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), user_session_id,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UserAuthenticationRequest.user_session_id)
}
inline std::string* UserAuthenticationRequest::unsafe_arena_release_user_session_id() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.UserAuthenticationRequest.user_session_id)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return user_session_id_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void UserAuthenticationRequest::unsafe_arena_set_allocated_user_session_id(
    std::string* user_session_id) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (user_session_id != nullptr) {
    
  } else {
    
  }
  user_session_id_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      user_session_id, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UserAuthenticationRequest.user_session_id)
}

// bytes client_name = 2;
inline void UserAuthenticationRequest::clear_client_name() {
  client_name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UserAuthenticationRequest::client_name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UserAuthenticationRequest.client_name)
  return _internal_client_name();
}
inline void UserAuthenticationRequest::set_client_name(const std::string& value) {
  _internal_set_client_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UserAuthenticationRequest.client_name)
}
inline std::string* UserAuthenticationRequest::mutable_client_name() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UserAuthenticationRequest.client_name)
  return _internal_mutable_client_name();
}
inline const std::string& UserAuthenticationRequest::_internal_client_name() const {
  return client_name_.Get();
}
inline void UserAuthenticationRequest::_internal_set_client_name(const std::string& value) {
  
  client_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UserAuthenticationRequest::set_client_name(std::string&& value) {
  
  client_name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.UserAuthenticationRequest.client_name)
}
inline void UserAuthenticationRequest::set_client_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  client_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.UserAuthenticationRequest.client_name)
}
inline void UserAuthenticationRequest::set_client_name(const void* value,
    size_t size) {
  
  client_name_.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.UserAuthenticationRequest.client_name)
}
inline std::string* UserAuthenticationRequest::_internal_mutable_client_name() {
  
  return client_name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UserAuthenticationRequest::release_client_name() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UserAuthenticationRequest.client_name)
  return client_name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UserAuthenticationRequest::set_allocated_client_name(std::string* client_name) {
  if (client_name != nullptr) {
    
  } else {
    
  }
  client_name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), client_name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UserAuthenticationRequest.client_name)
}
inline std::string* UserAuthenticationRequest::unsafe_arena_release_client_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.UserAuthenticationRequest.client_name)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return client_name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void UserAuthenticationRequest::unsafe_arena_set_allocated_client_name(
    std::string* client_name) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (client_name != nullptr) {
    
  } else {
    
  }
  client_name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      client_name, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UserAuthenticationRequest.client_name)
}

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

// UserAuthenticationResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool UserAuthenticationResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool UserAuthenticationResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& UserAuthenticationResponse::_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& UserAuthenticationResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UserAuthenticationResponse.status)
  return _internal_status();
}
inline void UserAuthenticationResponse::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.UserAuthenticationResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* UserAuthenticationResponse::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* UserAuthenticationResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UserAuthenticationResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* UserAuthenticationResponse::_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* UserAuthenticationResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UserAuthenticationResponse.status)
  return _internal_mutable_status();
}
inline void UserAuthenticationResponse::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.UserAuthenticationResponse.status)
}

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

// bytes client_token_guid = 3;
inline void UserAuthenticationResponse::clear_client_token_guid() {
  client_token_guid_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UserAuthenticationResponse::client_token_guid() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UserAuthenticationResponse.client_token_guid)
  return _internal_client_token_guid();
}
inline void UserAuthenticationResponse::set_client_token_guid(const std::string& value) {
  _internal_set_client_token_guid(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UserAuthenticationResponse.client_token_guid)
}
inline std::string* UserAuthenticationResponse::mutable_client_token_guid() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UserAuthenticationResponse.client_token_guid)
  return _internal_mutable_client_token_guid();
}
inline const std::string& UserAuthenticationResponse::_internal_client_token_guid() const {
  return client_token_guid_.Get();
}
inline void UserAuthenticationResponse::_internal_set_client_token_guid(const std::string& value) {
  
  client_token_guid_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UserAuthenticationResponse::set_client_token_guid(std::string&& value) {
  
  client_token_guid_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.UserAuthenticationResponse.client_token_guid)
}
inline void UserAuthenticationResponse::set_client_token_guid(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  client_token_guid_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.UserAuthenticationResponse.client_token_guid)
}
inline void UserAuthenticationResponse::set_client_token_guid(const void* value,
    size_t size) {
  
  client_token_guid_.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.UserAuthenticationResponse.client_token_guid)
}
inline std::string* UserAuthenticationResponse::_internal_mutable_client_token_guid() {
  
  return client_token_guid_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UserAuthenticationResponse::release_client_token_guid() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UserAuthenticationResponse.client_token_guid)
  return client_token_guid_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UserAuthenticationResponse::set_allocated_client_token_guid(std::string* client_token_guid) {
  if (client_token_guid != nullptr) {
    
  } else {
    
  }
  client_token_guid_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), client_token_guid,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UserAuthenticationResponse.client_token_guid)
}
inline std::string* UserAuthenticationResponse::unsafe_arena_release_client_token_guid() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.UserAuthenticationResponse.client_token_guid)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return client_token_guid_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void UserAuthenticationResponse::unsafe_arena_set_allocated_client_token_guid(
    std::string* client_token_guid) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (client_token_guid != nullptr) {
    
  } else {
    
  }
  client_token_guid_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      client_token_guid, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UserAuthenticationResponse.client_token_guid)
}

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

// GatewayWrapper

// uint64 connection_id = 1;
inline void GatewayWrapper::clear_connection_id() {
  connection_id_ = PROTOBUF_ULONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::uint64 GatewayWrapper::_internal_connection_id() const {
  return connection_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint64 GatewayWrapper::connection_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.connection_id)
  return _internal_connection_id();
}
inline void GatewayWrapper::_internal_set_connection_id(::PROTOBUF_NAMESPACE_ID::uint64 value) {
  
  connection_id_ = value;
}
inline void GatewayWrapper::set_connection_id(::PROTOBUF_NAMESPACE_ID::uint64 value) {
  _internal_set_connection_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GatewayWrapper.connection_id)
}

// .Anki.Vector.external_interface.Event event = 2;
inline bool GatewayWrapper::_internal_has_event() const {
  return oneof_message_type_case() == kEvent;
}
inline bool GatewayWrapper::has_event() const {
  return _internal_has_event();
}
inline void GatewayWrapper::set_has_event() {
  _oneof_case_[0] = kEvent;
}
inline void GatewayWrapper::clear_event() {
  if (_internal_has_event()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.event_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::Event* GatewayWrapper::release_event() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.event)
  if (_internal_has_event()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::Event* temp = oneof_message_type_.event_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.event_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::Event& GatewayWrapper::_internal_event() const {
  return _internal_has_event()
      ? *oneof_message_type_.event_
      : *reinterpret_cast< ::Anki::Vector::external_interface::Event*>(&::Anki::Vector::external_interface::_Event_default_instance_);
}
inline const ::Anki::Vector::external_interface::Event& GatewayWrapper::event() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.event)
  return _internal_event();
}
inline ::Anki::Vector::external_interface::Event* GatewayWrapper::unsafe_arena_release_event() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.event)
  if (_internal_has_event()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::Event* temp = oneof_message_type_.event_;
    oneof_message_type_.event_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_event(::Anki::Vector::external_interface::Event* event) {
  clear_oneof_message_type();
  if (event) {
    set_has_event();
    oneof_message_type_.event_ = event;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.event)
}
inline ::Anki::Vector::external_interface::Event* GatewayWrapper::_internal_mutable_event() {
  if (!_internal_has_event()) {
    clear_oneof_message_type();
    set_has_event();
    oneof_message_type_.event_ = CreateMaybeMessage< ::Anki::Vector::external_interface::Event >(GetArena());
  }
  return oneof_message_type_.event_;
}
inline ::Anki::Vector::external_interface::Event* GatewayWrapper::mutable_event() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.event)
  return _internal_mutable_event();
}

// .Anki.Vector.external_interface.OnboardingStateRequest onboarding_state_request = 3;
inline bool GatewayWrapper::_internal_has_onboarding_state_request() const {
  return oneof_message_type_case() == kOnboardingStateRequest;
}
inline bool GatewayWrapper::has_onboarding_state_request() const {
  return _internal_has_onboarding_state_request();
}
inline void GatewayWrapper::set_has_onboarding_state_request() {
  _oneof_case_[0] = kOnboardingStateRequest;
}
inline ::Anki::Vector::external_interface::OnboardingStateRequest* GatewayWrapper::release_onboarding_state_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_state_request)
  if (_internal_has_onboarding_state_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingStateRequest* temp = oneof_message_type_.onboarding_state_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_state_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingStateRequest& GatewayWrapper::_internal_onboarding_state_request() const {
  return _internal_has_onboarding_state_request()
      ? *oneof_message_type_.onboarding_state_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingStateRequest*>(&::Anki::Vector::external_interface::_OnboardingStateRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingStateRequest& GatewayWrapper::onboarding_state_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_state_request)
  return _internal_onboarding_state_request();
}
inline ::Anki::Vector::external_interface::OnboardingStateRequest* GatewayWrapper::unsafe_arena_release_onboarding_state_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_state_request)
  if (_internal_has_onboarding_state_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingStateRequest* temp = oneof_message_type_.onboarding_state_request_;
    oneof_message_type_.onboarding_state_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_state_request(::Anki::Vector::external_interface::OnboardingStateRequest* onboarding_state_request) {
  clear_oneof_message_type();
  if (onboarding_state_request) {
    set_has_onboarding_state_request();
    oneof_message_type_.onboarding_state_request_ = onboarding_state_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_state_request)
}
inline ::Anki::Vector::external_interface::OnboardingStateRequest* GatewayWrapper::_internal_mutable_onboarding_state_request() {
  if (!_internal_has_onboarding_state_request()) {
    clear_oneof_message_type();
    set_has_onboarding_state_request();
    oneof_message_type_.onboarding_state_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingStateRequest >(GetArena());
  }
  return oneof_message_type_.onboarding_state_request_;
}
inline ::Anki::Vector::external_interface::OnboardingStateRequest* GatewayWrapper::mutable_onboarding_state_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_state_request)
  return _internal_mutable_onboarding_state_request();
}

// .Anki.Vector.external_interface.OnboardingState onboarding_state = 4;
inline bool GatewayWrapper::_internal_has_onboarding_state() const {
  return oneof_message_type_case() == kOnboardingState;
}
inline bool GatewayWrapper::has_onboarding_state() const {
  return _internal_has_onboarding_state();
}
inline void GatewayWrapper::set_has_onboarding_state() {
  _oneof_case_[0] = kOnboardingState;
}
inline ::Anki::Vector::external_interface::OnboardingState* GatewayWrapper::release_onboarding_state() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_state)
  if (_internal_has_onboarding_state()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingState* temp = oneof_message_type_.onboarding_state_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_state_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingState& GatewayWrapper::_internal_onboarding_state() const {
  return _internal_has_onboarding_state()
      ? *oneof_message_type_.onboarding_state_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingState*>(&::Anki::Vector::external_interface::_OnboardingState_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingState& GatewayWrapper::onboarding_state() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_state)
  return _internal_onboarding_state();
}
inline ::Anki::Vector::external_interface::OnboardingState* GatewayWrapper::unsafe_arena_release_onboarding_state() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_state)
  if (_internal_has_onboarding_state()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingState* temp = oneof_message_type_.onboarding_state_;
    oneof_message_type_.onboarding_state_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_state(::Anki::Vector::external_interface::OnboardingState* onboarding_state) {
  clear_oneof_message_type();
  if (onboarding_state) {
    set_has_onboarding_state();
    oneof_message_type_.onboarding_state_ = onboarding_state;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_state)
}
inline ::Anki::Vector::external_interface::OnboardingState* GatewayWrapper::_internal_mutable_onboarding_state() {
  if (!_internal_has_onboarding_state()) {
    clear_oneof_message_type();
    set_has_onboarding_state();
    oneof_message_type_.onboarding_state_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingState >(GetArena());
  }
  return oneof_message_type_.onboarding_state_;
}
inline ::Anki::Vector::external_interface::OnboardingState* GatewayWrapper::mutable_onboarding_state() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_state)
  return _internal_mutable_onboarding_state();
}

// .Anki.Vector.external_interface.OnboardingSkipOnboarding onboarding_skip_onboarding = 5;
inline bool GatewayWrapper::_internal_has_onboarding_skip_onboarding() const {
  return oneof_message_type_case() == kOnboardingSkipOnboarding;
}
inline bool GatewayWrapper::has_onboarding_skip_onboarding() const {
  return _internal_has_onboarding_skip_onboarding();
}
inline void GatewayWrapper::set_has_onboarding_skip_onboarding() {
  _oneof_case_[0] = kOnboardingSkipOnboarding;
}
inline ::Anki::Vector::external_interface::OnboardingSkipOnboarding* GatewayWrapper::release_onboarding_skip_onboarding() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_skip_onboarding)
  if (_internal_has_onboarding_skip_onboarding()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingSkipOnboarding* temp = oneof_message_type_.onboarding_skip_onboarding_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_skip_onboarding_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingSkipOnboarding& GatewayWrapper::_internal_onboarding_skip_onboarding() const {
  return _internal_has_onboarding_skip_onboarding()
      ? *oneof_message_type_.onboarding_skip_onboarding_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingSkipOnboarding*>(&::Anki::Vector::external_interface::_OnboardingSkipOnboarding_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingSkipOnboarding& GatewayWrapper::onboarding_skip_onboarding() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_skip_onboarding)
  return _internal_onboarding_skip_onboarding();
}
inline ::Anki::Vector::external_interface::OnboardingSkipOnboarding* GatewayWrapper::unsafe_arena_release_onboarding_skip_onboarding() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_skip_onboarding)
  if (_internal_has_onboarding_skip_onboarding()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingSkipOnboarding* temp = oneof_message_type_.onboarding_skip_onboarding_;
    oneof_message_type_.onboarding_skip_onboarding_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_skip_onboarding(::Anki::Vector::external_interface::OnboardingSkipOnboarding* onboarding_skip_onboarding) {
  clear_oneof_message_type();
  if (onboarding_skip_onboarding) {
    set_has_onboarding_skip_onboarding();
    oneof_message_type_.onboarding_skip_onboarding_ = onboarding_skip_onboarding;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_skip_onboarding)
}
inline ::Anki::Vector::external_interface::OnboardingSkipOnboarding* GatewayWrapper::_internal_mutable_onboarding_skip_onboarding() {
  if (!_internal_has_onboarding_skip_onboarding()) {
    clear_oneof_message_type();
    set_has_onboarding_skip_onboarding();
    oneof_message_type_.onboarding_skip_onboarding_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingSkipOnboarding >(GetArena());
  }
  return oneof_message_type_.onboarding_skip_onboarding_;
}
inline ::Anki::Vector::external_interface::OnboardingSkipOnboarding* GatewayWrapper::mutable_onboarding_skip_onboarding() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_skip_onboarding)
  return _internal_mutable_onboarding_skip_onboarding();
}

// .Anki.Vector.external_interface.OnboardingRestart onboarding_restart = 6;
inline bool GatewayWrapper::_internal_has_onboarding_restart() const {
  return oneof_message_type_case() == kOnboardingRestart;
}
inline bool GatewayWrapper::has_onboarding_restart() const {
  return _internal_has_onboarding_restart();
}
inline void GatewayWrapper::set_has_onboarding_restart() {
  _oneof_case_[0] = kOnboardingRestart;
}
inline ::Anki::Vector::external_interface::OnboardingRestart* GatewayWrapper::release_onboarding_restart() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_restart)
  if (_internal_has_onboarding_restart()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingRestart* temp = oneof_message_type_.onboarding_restart_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_restart_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingRestart& GatewayWrapper::_internal_onboarding_restart() const {
  return _internal_has_onboarding_restart()
      ? *oneof_message_type_.onboarding_restart_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingRestart*>(&::Anki::Vector::external_interface::_OnboardingRestart_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingRestart& GatewayWrapper::onboarding_restart() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_restart)
  return _internal_onboarding_restart();
}
inline ::Anki::Vector::external_interface::OnboardingRestart* GatewayWrapper::unsafe_arena_release_onboarding_restart() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_restart)
  if (_internal_has_onboarding_restart()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingRestart* temp = oneof_message_type_.onboarding_restart_;
    oneof_message_type_.onboarding_restart_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_restart(::Anki::Vector::external_interface::OnboardingRestart* onboarding_restart) {
  clear_oneof_message_type();
  if (onboarding_restart) {
    set_has_onboarding_restart();
    oneof_message_type_.onboarding_restart_ = onboarding_restart;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_restart)
}
inline ::Anki::Vector::external_interface::OnboardingRestart* GatewayWrapper::_internal_mutable_onboarding_restart() {
  if (!_internal_has_onboarding_restart()) {
    clear_oneof_message_type();
    set_has_onboarding_restart();
    oneof_message_type_.onboarding_restart_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingRestart >(GetArena());
  }
  return oneof_message_type_.onboarding_restart_;
}
inline ::Anki::Vector::external_interface::OnboardingRestart* GatewayWrapper::mutable_onboarding_restart() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_restart)
  return _internal_mutable_onboarding_restart();
}

// .Anki.Vector.external_interface.OnboardingCompleteRequest onboarding_complete_request = 11;
inline bool GatewayWrapper::_internal_has_onboarding_complete_request() const {
  return oneof_message_type_case() == kOnboardingCompleteRequest;
}
inline bool GatewayWrapper::has_onboarding_complete_request() const {
  return _internal_has_onboarding_complete_request();
}
inline void GatewayWrapper::set_has_onboarding_complete_request() {
  _oneof_case_[0] = kOnboardingCompleteRequest;
}
inline ::Anki::Vector::external_interface::OnboardingCompleteRequest* GatewayWrapper::release_onboarding_complete_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_complete_request)
  if (_internal_has_onboarding_complete_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingCompleteRequest* temp = oneof_message_type_.onboarding_complete_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_complete_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingCompleteRequest& GatewayWrapper::_internal_onboarding_complete_request() const {
  return _internal_has_onboarding_complete_request()
      ? *oneof_message_type_.onboarding_complete_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingCompleteRequest*>(&::Anki::Vector::external_interface::_OnboardingCompleteRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingCompleteRequest& GatewayWrapper::onboarding_complete_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_complete_request)
  return _internal_onboarding_complete_request();
}
inline ::Anki::Vector::external_interface::OnboardingCompleteRequest* GatewayWrapper::unsafe_arena_release_onboarding_complete_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_complete_request)
  if (_internal_has_onboarding_complete_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingCompleteRequest* temp = oneof_message_type_.onboarding_complete_request_;
    oneof_message_type_.onboarding_complete_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_complete_request(::Anki::Vector::external_interface::OnboardingCompleteRequest* onboarding_complete_request) {
  clear_oneof_message_type();
  if (onboarding_complete_request) {
    set_has_onboarding_complete_request();
    oneof_message_type_.onboarding_complete_request_ = onboarding_complete_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_complete_request)
}
inline ::Anki::Vector::external_interface::OnboardingCompleteRequest* GatewayWrapper::_internal_mutable_onboarding_complete_request() {
  if (!_internal_has_onboarding_complete_request()) {
    clear_oneof_message_type();
    set_has_onboarding_complete_request();
    oneof_message_type_.onboarding_complete_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingCompleteRequest >(GetArena());
  }
  return oneof_message_type_.onboarding_complete_request_;
}
inline ::Anki::Vector::external_interface::OnboardingCompleteRequest* GatewayWrapper::mutable_onboarding_complete_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_complete_request)
  return _internal_mutable_onboarding_complete_request();
}

// .Anki.Vector.external_interface.OnboardingCompleteResponse onboarding_complete_response = 12;
inline bool GatewayWrapper::_internal_has_onboarding_complete_response() const {
  return oneof_message_type_case() == kOnboardingCompleteResponse;
}
inline bool GatewayWrapper::has_onboarding_complete_response() const {
  return _internal_has_onboarding_complete_response();
}
inline void GatewayWrapper::set_has_onboarding_complete_response() {
  _oneof_case_[0] = kOnboardingCompleteResponse;
}
inline ::Anki::Vector::external_interface::OnboardingCompleteResponse* GatewayWrapper::release_onboarding_complete_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_complete_response)
  if (_internal_has_onboarding_complete_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingCompleteResponse* temp = oneof_message_type_.onboarding_complete_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_complete_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingCompleteResponse& GatewayWrapper::_internal_onboarding_complete_response() const {
  return _internal_has_onboarding_complete_response()
      ? *oneof_message_type_.onboarding_complete_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingCompleteResponse*>(&::Anki::Vector::external_interface::_OnboardingCompleteResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingCompleteResponse& GatewayWrapper::onboarding_complete_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_complete_response)
  return _internal_onboarding_complete_response();
}
inline ::Anki::Vector::external_interface::OnboardingCompleteResponse* GatewayWrapper::unsafe_arena_release_onboarding_complete_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_complete_response)
  if (_internal_has_onboarding_complete_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingCompleteResponse* temp = oneof_message_type_.onboarding_complete_response_;
    oneof_message_type_.onboarding_complete_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_complete_response(::Anki::Vector::external_interface::OnboardingCompleteResponse* onboarding_complete_response) {
  clear_oneof_message_type();
  if (onboarding_complete_response) {
    set_has_onboarding_complete_response();
    oneof_message_type_.onboarding_complete_response_ = onboarding_complete_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_complete_response)
}
inline ::Anki::Vector::external_interface::OnboardingCompleteResponse* GatewayWrapper::_internal_mutable_onboarding_complete_response() {
  if (!_internal_has_onboarding_complete_response()) {
    clear_oneof_message_type();
    set_has_onboarding_complete_response();
    oneof_message_type_.onboarding_complete_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingCompleteResponse >(GetArena());
  }
  return oneof_message_type_.onboarding_complete_response_;
}
inline ::Anki::Vector::external_interface::OnboardingCompleteResponse* GatewayWrapper::mutable_onboarding_complete_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_complete_response)
  return _internal_mutable_onboarding_complete_response();
}

// .Anki.Vector.external_interface.OnboardingWakeUpRequest onboarding_wake_up_request = 13;
inline bool GatewayWrapper::_internal_has_onboarding_wake_up_request() const {
  return oneof_message_type_case() == kOnboardingWakeUpRequest;
}
inline bool GatewayWrapper::has_onboarding_wake_up_request() const {
  return _internal_has_onboarding_wake_up_request();
}
inline void GatewayWrapper::set_has_onboarding_wake_up_request() {
  _oneof_case_[0] = kOnboardingWakeUpRequest;
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpRequest* GatewayWrapper::release_onboarding_wake_up_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_request)
  if (_internal_has_onboarding_wake_up_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingWakeUpRequest* temp = oneof_message_type_.onboarding_wake_up_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_wake_up_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingWakeUpRequest& GatewayWrapper::_internal_onboarding_wake_up_request() const {
  return _internal_has_onboarding_wake_up_request()
      ? *oneof_message_type_.onboarding_wake_up_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingWakeUpRequest*>(&::Anki::Vector::external_interface::_OnboardingWakeUpRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingWakeUpRequest& GatewayWrapper::onboarding_wake_up_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_request)
  return _internal_onboarding_wake_up_request();
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpRequest* GatewayWrapper::unsafe_arena_release_onboarding_wake_up_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_request)
  if (_internal_has_onboarding_wake_up_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingWakeUpRequest* temp = oneof_message_type_.onboarding_wake_up_request_;
    oneof_message_type_.onboarding_wake_up_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_wake_up_request(::Anki::Vector::external_interface::OnboardingWakeUpRequest* onboarding_wake_up_request) {
  clear_oneof_message_type();
  if (onboarding_wake_up_request) {
    set_has_onboarding_wake_up_request();
    oneof_message_type_.onboarding_wake_up_request_ = onboarding_wake_up_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_request)
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpRequest* GatewayWrapper::_internal_mutable_onboarding_wake_up_request() {
  if (!_internal_has_onboarding_wake_up_request()) {
    clear_oneof_message_type();
    set_has_onboarding_wake_up_request();
    oneof_message_type_.onboarding_wake_up_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingWakeUpRequest >(GetArena());
  }
  return oneof_message_type_.onboarding_wake_up_request_;
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpRequest* GatewayWrapper::mutable_onboarding_wake_up_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_request)
  return _internal_mutable_onboarding_wake_up_request();
}

// .Anki.Vector.external_interface.OnboardingWakeUpResponse onboarding_wake_up_response = 14;
inline bool GatewayWrapper::_internal_has_onboarding_wake_up_response() const {
  return oneof_message_type_case() == kOnboardingWakeUpResponse;
}
inline bool GatewayWrapper::has_onboarding_wake_up_response() const {
  return _internal_has_onboarding_wake_up_response();
}
inline void GatewayWrapper::set_has_onboarding_wake_up_response() {
  _oneof_case_[0] = kOnboardingWakeUpResponse;
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpResponse* GatewayWrapper::release_onboarding_wake_up_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_response)
  if (_internal_has_onboarding_wake_up_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingWakeUpResponse* temp = oneof_message_type_.onboarding_wake_up_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_wake_up_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingWakeUpResponse& GatewayWrapper::_internal_onboarding_wake_up_response() const {
  return _internal_has_onboarding_wake_up_response()
      ? *oneof_message_type_.onboarding_wake_up_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingWakeUpResponse*>(&::Anki::Vector::external_interface::_OnboardingWakeUpResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingWakeUpResponse& GatewayWrapper::onboarding_wake_up_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_response)
  return _internal_onboarding_wake_up_response();
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpResponse* GatewayWrapper::unsafe_arena_release_onboarding_wake_up_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_response)
  if (_internal_has_onboarding_wake_up_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingWakeUpResponse* temp = oneof_message_type_.onboarding_wake_up_response_;
    oneof_message_type_.onboarding_wake_up_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_wake_up_response(::Anki::Vector::external_interface::OnboardingWakeUpResponse* onboarding_wake_up_response) {
  clear_oneof_message_type();
  if (onboarding_wake_up_response) {
    set_has_onboarding_wake_up_response();
    oneof_message_type_.onboarding_wake_up_response_ = onboarding_wake_up_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_response)
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpResponse* GatewayWrapper::_internal_mutable_onboarding_wake_up_response() {
  if (!_internal_has_onboarding_wake_up_response()) {
    clear_oneof_message_type();
    set_has_onboarding_wake_up_response();
    oneof_message_type_.onboarding_wake_up_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingWakeUpResponse >(GetArena());
  }
  return oneof_message_type_.onboarding_wake_up_response_;
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpResponse* GatewayWrapper::mutable_onboarding_wake_up_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_response)
  return _internal_mutable_onboarding_wake_up_response();
}

// .Anki.Vector.external_interface.OnboardingWakeUpStartedRequest onboarding_wake_up_started_request = 15;
inline bool GatewayWrapper::_internal_has_onboarding_wake_up_started_request() const {
  return oneof_message_type_case() == kOnboardingWakeUpStartedRequest;
}
inline bool GatewayWrapper::has_onboarding_wake_up_started_request() const {
  return _internal_has_onboarding_wake_up_started_request();
}
inline void GatewayWrapper::set_has_onboarding_wake_up_started_request() {
  _oneof_case_[0] = kOnboardingWakeUpStartedRequest;
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* GatewayWrapper::release_onboarding_wake_up_started_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_started_request)
  if (_internal_has_onboarding_wake_up_started_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* temp = oneof_message_type_.onboarding_wake_up_started_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_wake_up_started_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest& GatewayWrapper::_internal_onboarding_wake_up_started_request() const {
  return _internal_has_onboarding_wake_up_started_request()
      ? *oneof_message_type_.onboarding_wake_up_started_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest*>(&::Anki::Vector::external_interface::_OnboardingWakeUpStartedRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest& GatewayWrapper::onboarding_wake_up_started_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_started_request)
  return _internal_onboarding_wake_up_started_request();
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* GatewayWrapper::unsafe_arena_release_onboarding_wake_up_started_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_started_request)
  if (_internal_has_onboarding_wake_up_started_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* temp = oneof_message_type_.onboarding_wake_up_started_request_;
    oneof_message_type_.onboarding_wake_up_started_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_wake_up_started_request(::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* onboarding_wake_up_started_request) {
  clear_oneof_message_type();
  if (onboarding_wake_up_started_request) {
    set_has_onboarding_wake_up_started_request();
    oneof_message_type_.onboarding_wake_up_started_request_ = onboarding_wake_up_started_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_started_request)
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* GatewayWrapper::_internal_mutable_onboarding_wake_up_started_request() {
  if (!_internal_has_onboarding_wake_up_started_request()) {
    clear_oneof_message_type();
    set_has_onboarding_wake_up_started_request();
    oneof_message_type_.onboarding_wake_up_started_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest >(GetArena());
  }
  return oneof_message_type_.onboarding_wake_up_started_request_;
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* GatewayWrapper::mutable_onboarding_wake_up_started_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_started_request)
  return _internal_mutable_onboarding_wake_up_started_request();
}

// .Anki.Vector.external_interface.OnboardingWakeUpStartedResponse onboarding_wake_up_started_response = 16;
inline bool GatewayWrapper::_internal_has_onboarding_wake_up_started_response() const {
  return oneof_message_type_case() == kOnboardingWakeUpStartedResponse;
}
inline bool GatewayWrapper::has_onboarding_wake_up_started_response() const {
  return _internal_has_onboarding_wake_up_started_response();
}
inline void GatewayWrapper::set_has_onboarding_wake_up_started_response() {
  _oneof_case_[0] = kOnboardingWakeUpStartedResponse;
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* GatewayWrapper::release_onboarding_wake_up_started_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_started_response)
  if (_internal_has_onboarding_wake_up_started_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* temp = oneof_message_type_.onboarding_wake_up_started_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_wake_up_started_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse& GatewayWrapper::_internal_onboarding_wake_up_started_response() const {
  return _internal_has_onboarding_wake_up_started_response()
      ? *oneof_message_type_.onboarding_wake_up_started_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse*>(&::Anki::Vector::external_interface::_OnboardingWakeUpStartedResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse& GatewayWrapper::onboarding_wake_up_started_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_started_response)
  return _internal_onboarding_wake_up_started_response();
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* GatewayWrapper::unsafe_arena_release_onboarding_wake_up_started_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_started_response)
  if (_internal_has_onboarding_wake_up_started_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* temp = oneof_message_type_.onboarding_wake_up_started_response_;
    oneof_message_type_.onboarding_wake_up_started_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_wake_up_started_response(::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* onboarding_wake_up_started_response) {
  clear_oneof_message_type();
  if (onboarding_wake_up_started_response) {
    set_has_onboarding_wake_up_started_response();
    oneof_message_type_.onboarding_wake_up_started_response_ = onboarding_wake_up_started_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_started_response)
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* GatewayWrapper::_internal_mutable_onboarding_wake_up_started_response() {
  if (!_internal_has_onboarding_wake_up_started_response()) {
    clear_oneof_message_type();
    set_has_onboarding_wake_up_started_response();
    oneof_message_type_.onboarding_wake_up_started_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse >(GetArena());
  }
  return oneof_message_type_.onboarding_wake_up_started_response_;
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* GatewayWrapper::mutable_onboarding_wake_up_started_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_started_response)
  return _internal_mutable_onboarding_wake_up_started_response();
}

// .Anki.Vector.external_interface.OnboardingSetPhaseRequest onboarding_set_phase_request = 17;
inline bool GatewayWrapper::_internal_has_onboarding_set_phase_request() const {
  return oneof_message_type_case() == kOnboardingSetPhaseRequest;
}
inline bool GatewayWrapper::has_onboarding_set_phase_request() const {
  return _internal_has_onboarding_set_phase_request();
}
inline void GatewayWrapper::set_has_onboarding_set_phase_request() {
  _oneof_case_[0] = kOnboardingSetPhaseRequest;
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* GatewayWrapper::release_onboarding_set_phase_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_set_phase_request)
  if (_internal_has_onboarding_set_phase_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* temp = oneof_message_type_.onboarding_set_phase_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_set_phase_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingSetPhaseRequest& GatewayWrapper::_internal_onboarding_set_phase_request() const {
  return _internal_has_onboarding_set_phase_request()
      ? *oneof_message_type_.onboarding_set_phase_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingSetPhaseRequest*>(&::Anki::Vector::external_interface::_OnboardingSetPhaseRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingSetPhaseRequest& GatewayWrapper::onboarding_set_phase_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_set_phase_request)
  return _internal_onboarding_set_phase_request();
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* GatewayWrapper::unsafe_arena_release_onboarding_set_phase_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_set_phase_request)
  if (_internal_has_onboarding_set_phase_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* temp = oneof_message_type_.onboarding_set_phase_request_;
    oneof_message_type_.onboarding_set_phase_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_set_phase_request(::Anki::Vector::external_interface::OnboardingSetPhaseRequest* onboarding_set_phase_request) {
  clear_oneof_message_type();
  if (onboarding_set_phase_request) {
    set_has_onboarding_set_phase_request();
    oneof_message_type_.onboarding_set_phase_request_ = onboarding_set_phase_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_set_phase_request)
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* GatewayWrapper::_internal_mutable_onboarding_set_phase_request() {
  if (!_internal_has_onboarding_set_phase_request()) {
    clear_oneof_message_type();
    set_has_onboarding_set_phase_request();
    oneof_message_type_.onboarding_set_phase_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingSetPhaseRequest >(GetArena());
  }
  return oneof_message_type_.onboarding_set_phase_request_;
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* GatewayWrapper::mutable_onboarding_set_phase_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_set_phase_request)
  return _internal_mutable_onboarding_set_phase_request();
}

// .Anki.Vector.external_interface.OnboardingSetPhaseResponse onboarding_set_phase_response = 18;
inline bool GatewayWrapper::_internal_has_onboarding_set_phase_response() const {
  return oneof_message_type_case() == kOnboardingSetPhaseResponse;
}
inline bool GatewayWrapper::has_onboarding_set_phase_response() const {
  return _internal_has_onboarding_set_phase_response();
}
inline void GatewayWrapper::set_has_onboarding_set_phase_response() {
  _oneof_case_[0] = kOnboardingSetPhaseResponse;
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* GatewayWrapper::release_onboarding_set_phase_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_set_phase_response)
  if (_internal_has_onboarding_set_phase_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* temp = oneof_message_type_.onboarding_set_phase_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_set_phase_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingSetPhaseResponse& GatewayWrapper::_internal_onboarding_set_phase_response() const {
  return _internal_has_onboarding_set_phase_response()
      ? *oneof_message_type_.onboarding_set_phase_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingSetPhaseResponse*>(&::Anki::Vector::external_interface::_OnboardingSetPhaseResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingSetPhaseResponse& GatewayWrapper::onboarding_set_phase_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_set_phase_response)
  return _internal_onboarding_set_phase_response();
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* GatewayWrapper::unsafe_arena_release_onboarding_set_phase_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_set_phase_response)
  if (_internal_has_onboarding_set_phase_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* temp = oneof_message_type_.onboarding_set_phase_response_;
    oneof_message_type_.onboarding_set_phase_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_set_phase_response(::Anki::Vector::external_interface::OnboardingSetPhaseResponse* onboarding_set_phase_response) {
  clear_oneof_message_type();
  if (onboarding_set_phase_response) {
    set_has_onboarding_set_phase_response();
    oneof_message_type_.onboarding_set_phase_response_ = onboarding_set_phase_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_set_phase_response)
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* GatewayWrapper::_internal_mutable_onboarding_set_phase_response() {
  if (!_internal_has_onboarding_set_phase_response()) {
    clear_oneof_message_type();
    set_has_onboarding_set_phase_response();
    oneof_message_type_.onboarding_set_phase_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingSetPhaseResponse >(GetArena());
  }
  return oneof_message_type_.onboarding_set_phase_response_;
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* GatewayWrapper::mutable_onboarding_set_phase_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_set_phase_response)
  return _internal_mutable_onboarding_set_phase_response();
}

// .Anki.Vector.external_interface.OnboardingPhaseProgressRequest onboarding_phase_progress_request = 19;
inline bool GatewayWrapper::_internal_has_onboarding_phase_progress_request() const {
  return oneof_message_type_case() == kOnboardingPhaseProgressRequest;
}
inline bool GatewayWrapper::has_onboarding_phase_progress_request() const {
  return _internal_has_onboarding_phase_progress_request();
}
inline void GatewayWrapper::set_has_onboarding_phase_progress_request() {
  _oneof_case_[0] = kOnboardingPhaseProgressRequest;
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* GatewayWrapper::release_onboarding_phase_progress_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_phase_progress_request)
  if (_internal_has_onboarding_phase_progress_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* temp = oneof_message_type_.onboarding_phase_progress_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_phase_progress_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest& GatewayWrapper::_internal_onboarding_phase_progress_request() const {
  return _internal_has_onboarding_phase_progress_request()
      ? *oneof_message_type_.onboarding_phase_progress_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest*>(&::Anki::Vector::external_interface::_OnboardingPhaseProgressRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest& GatewayWrapper::onboarding_phase_progress_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_phase_progress_request)
  return _internal_onboarding_phase_progress_request();
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* GatewayWrapper::unsafe_arena_release_onboarding_phase_progress_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_phase_progress_request)
  if (_internal_has_onboarding_phase_progress_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* temp = oneof_message_type_.onboarding_phase_progress_request_;
    oneof_message_type_.onboarding_phase_progress_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_phase_progress_request(::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* onboarding_phase_progress_request) {
  clear_oneof_message_type();
  if (onboarding_phase_progress_request) {
    set_has_onboarding_phase_progress_request();
    oneof_message_type_.onboarding_phase_progress_request_ = onboarding_phase_progress_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_phase_progress_request)
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* GatewayWrapper::_internal_mutable_onboarding_phase_progress_request() {
  if (!_internal_has_onboarding_phase_progress_request()) {
    clear_oneof_message_type();
    set_has_onboarding_phase_progress_request();
    oneof_message_type_.onboarding_phase_progress_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest >(GetArena());
  }
  return oneof_message_type_.onboarding_phase_progress_request_;
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* GatewayWrapper::mutable_onboarding_phase_progress_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_phase_progress_request)
  return _internal_mutable_onboarding_phase_progress_request();
}

// .Anki.Vector.external_interface.OnboardingPhaseProgressResponse onboarding_phase_progress_response = 20;
inline bool GatewayWrapper::_internal_has_onboarding_phase_progress_response() const {
  return oneof_message_type_case() == kOnboardingPhaseProgressResponse;
}
inline bool GatewayWrapper::has_onboarding_phase_progress_response() const {
  return _internal_has_onboarding_phase_progress_response();
}
inline void GatewayWrapper::set_has_onboarding_phase_progress_response() {
  _oneof_case_[0] = kOnboardingPhaseProgressResponse;
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* GatewayWrapper::release_onboarding_phase_progress_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_phase_progress_response)
  if (_internal_has_onboarding_phase_progress_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* temp = oneof_message_type_.onboarding_phase_progress_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_phase_progress_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse& GatewayWrapper::_internal_onboarding_phase_progress_response() const {
  return _internal_has_onboarding_phase_progress_response()
      ? *oneof_message_type_.onboarding_phase_progress_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse*>(&::Anki::Vector::external_interface::_OnboardingPhaseProgressResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse& GatewayWrapper::onboarding_phase_progress_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_phase_progress_response)
  return _internal_onboarding_phase_progress_response();
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* GatewayWrapper::unsafe_arena_release_onboarding_phase_progress_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_phase_progress_response)
  if (_internal_has_onboarding_phase_progress_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* temp = oneof_message_type_.onboarding_phase_progress_response_;
    oneof_message_type_.onboarding_phase_progress_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_phase_progress_response(::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* onboarding_phase_progress_response) {
  clear_oneof_message_type();
  if (onboarding_phase_progress_response) {
    set_has_onboarding_phase_progress_response();
    oneof_message_type_.onboarding_phase_progress_response_ = onboarding_phase_progress_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_phase_progress_response)
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* GatewayWrapper::_internal_mutable_onboarding_phase_progress_response() {
  if (!_internal_has_onboarding_phase_progress_response()) {
    clear_oneof_message_type();
    set_has_onboarding_phase_progress_response();
    oneof_message_type_.onboarding_phase_progress_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse >(GetArena());
  }
  return oneof_message_type_.onboarding_phase_progress_response_;
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* GatewayWrapper::mutable_onboarding_phase_progress_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_phase_progress_response)
  return _internal_mutable_onboarding_phase_progress_response();
}

// .Anki.Vector.external_interface.OnboardingChargeInfoRequest onboarding_charge_info_request = 21;
inline bool GatewayWrapper::_internal_has_onboarding_charge_info_request() const {
  return oneof_message_type_case() == kOnboardingChargeInfoRequest;
}
inline bool GatewayWrapper::has_onboarding_charge_info_request() const {
  return _internal_has_onboarding_charge_info_request();
}
inline void GatewayWrapper::set_has_onboarding_charge_info_request() {
  _oneof_case_[0] = kOnboardingChargeInfoRequest;
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* GatewayWrapper::release_onboarding_charge_info_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_charge_info_request)
  if (_internal_has_onboarding_charge_info_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* temp = oneof_message_type_.onboarding_charge_info_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_charge_info_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingChargeInfoRequest& GatewayWrapper::_internal_onboarding_charge_info_request() const {
  return _internal_has_onboarding_charge_info_request()
      ? *oneof_message_type_.onboarding_charge_info_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingChargeInfoRequest*>(&::Anki::Vector::external_interface::_OnboardingChargeInfoRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingChargeInfoRequest& GatewayWrapper::onboarding_charge_info_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_charge_info_request)
  return _internal_onboarding_charge_info_request();
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* GatewayWrapper::unsafe_arena_release_onboarding_charge_info_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_charge_info_request)
  if (_internal_has_onboarding_charge_info_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* temp = oneof_message_type_.onboarding_charge_info_request_;
    oneof_message_type_.onboarding_charge_info_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_charge_info_request(::Anki::Vector::external_interface::OnboardingChargeInfoRequest* onboarding_charge_info_request) {
  clear_oneof_message_type();
  if (onboarding_charge_info_request) {
    set_has_onboarding_charge_info_request();
    oneof_message_type_.onboarding_charge_info_request_ = onboarding_charge_info_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_charge_info_request)
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* GatewayWrapper::_internal_mutable_onboarding_charge_info_request() {
  if (!_internal_has_onboarding_charge_info_request()) {
    clear_oneof_message_type();
    set_has_onboarding_charge_info_request();
    oneof_message_type_.onboarding_charge_info_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingChargeInfoRequest >(GetArena());
  }
  return oneof_message_type_.onboarding_charge_info_request_;
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* GatewayWrapper::mutable_onboarding_charge_info_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_charge_info_request)
  return _internal_mutable_onboarding_charge_info_request();
}

// .Anki.Vector.external_interface.OnboardingChargeInfoResponse onboarding_charge_info_response = 22;
inline bool GatewayWrapper::_internal_has_onboarding_charge_info_response() const {
  return oneof_message_type_case() == kOnboardingChargeInfoResponse;
}
inline bool GatewayWrapper::has_onboarding_charge_info_response() const {
  return _internal_has_onboarding_charge_info_response();
}
inline void GatewayWrapper::set_has_onboarding_charge_info_response() {
  _oneof_case_[0] = kOnboardingChargeInfoResponse;
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* GatewayWrapper::release_onboarding_charge_info_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_charge_info_response)
  if (_internal_has_onboarding_charge_info_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* temp = oneof_message_type_.onboarding_charge_info_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_charge_info_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingChargeInfoResponse& GatewayWrapper::_internal_onboarding_charge_info_response() const {
  return _internal_has_onboarding_charge_info_response()
      ? *oneof_message_type_.onboarding_charge_info_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingChargeInfoResponse*>(&::Anki::Vector::external_interface::_OnboardingChargeInfoResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingChargeInfoResponse& GatewayWrapper::onboarding_charge_info_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_charge_info_response)
  return _internal_onboarding_charge_info_response();
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* GatewayWrapper::unsafe_arena_release_onboarding_charge_info_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_charge_info_response)
  if (_internal_has_onboarding_charge_info_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* temp = oneof_message_type_.onboarding_charge_info_response_;
    oneof_message_type_.onboarding_charge_info_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_charge_info_response(::Anki::Vector::external_interface::OnboardingChargeInfoResponse* onboarding_charge_info_response) {
  clear_oneof_message_type();
  if (onboarding_charge_info_response) {
    set_has_onboarding_charge_info_response();
    oneof_message_type_.onboarding_charge_info_response_ = onboarding_charge_info_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_charge_info_response)
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* GatewayWrapper::_internal_mutable_onboarding_charge_info_response() {
  if (!_internal_has_onboarding_charge_info_response()) {
    clear_oneof_message_type();
    set_has_onboarding_charge_info_response();
    oneof_message_type_.onboarding_charge_info_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingChargeInfoResponse >(GetArena());
  }
  return oneof_message_type_.onboarding_charge_info_response_;
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* GatewayWrapper::mutable_onboarding_charge_info_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_charge_info_response)
  return _internal_mutable_onboarding_charge_info_response();
}

// .Anki.Vector.external_interface.OnboardingMarkCompleteAndExit onboarding_mark_complete_and_exit = 23;
inline bool GatewayWrapper::_internal_has_onboarding_mark_complete_and_exit() const {
  return oneof_message_type_case() == kOnboardingMarkCompleteAndExit;
}
inline bool GatewayWrapper::has_onboarding_mark_complete_and_exit() const {
  return _internal_has_onboarding_mark_complete_and_exit();
}
inline void GatewayWrapper::set_has_onboarding_mark_complete_and_exit() {
  _oneof_case_[0] = kOnboardingMarkCompleteAndExit;
}
inline ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* GatewayWrapper::release_onboarding_mark_complete_and_exit() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_mark_complete_and_exit)
  if (_internal_has_onboarding_mark_complete_and_exit()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* temp = oneof_message_type_.onboarding_mark_complete_and_exit_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.onboarding_mark_complete_and_exit_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit& GatewayWrapper::_internal_onboarding_mark_complete_and_exit() const {
  return _internal_has_onboarding_mark_complete_and_exit()
      ? *oneof_message_type_.onboarding_mark_complete_and_exit_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit*>(&::Anki::Vector::external_interface::_OnboardingMarkCompleteAndExit_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit& GatewayWrapper::onboarding_mark_complete_and_exit() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.onboarding_mark_complete_and_exit)
  return _internal_onboarding_mark_complete_and_exit();
}
inline ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* GatewayWrapper::unsafe_arena_release_onboarding_mark_complete_and_exit() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.onboarding_mark_complete_and_exit)
  if (_internal_has_onboarding_mark_complete_and_exit()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* temp = oneof_message_type_.onboarding_mark_complete_and_exit_;
    oneof_message_type_.onboarding_mark_complete_and_exit_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_onboarding_mark_complete_and_exit(::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* onboarding_mark_complete_and_exit) {
  clear_oneof_message_type();
  if (onboarding_mark_complete_and_exit) {
    set_has_onboarding_mark_complete_and_exit();
    oneof_message_type_.onboarding_mark_complete_and_exit_ = onboarding_mark_complete_and_exit;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_mark_complete_and_exit)
}
inline ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* GatewayWrapper::_internal_mutable_onboarding_mark_complete_and_exit() {
  if (!_internal_has_onboarding_mark_complete_and_exit()) {
    clear_oneof_message_type();
    set_has_onboarding_mark_complete_and_exit();
    oneof_message_type_.onboarding_mark_complete_and_exit_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit >(GetArena());
  }
  return oneof_message_type_.onboarding_mark_complete_and_exit_;
}
inline ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* GatewayWrapper::mutable_onboarding_mark_complete_and_exit() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.onboarding_mark_complete_and_exit)
  return _internal_mutable_onboarding_mark_complete_and_exit();
}

// .Anki.Vector.external_interface.LatestAttentionTransferRequest latest_attention_transfer_request = 100;
inline bool GatewayWrapper::_internal_has_latest_attention_transfer_request() const {
  return oneof_message_type_case() == kLatestAttentionTransferRequest;
}
inline bool GatewayWrapper::has_latest_attention_transfer_request() const {
  return _internal_has_latest_attention_transfer_request();
}
inline void GatewayWrapper::set_has_latest_attention_transfer_request() {
  _oneof_case_[0] = kLatestAttentionTransferRequest;
}
inline ::Anki::Vector::external_interface::LatestAttentionTransferRequest* GatewayWrapper::release_latest_attention_transfer_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.latest_attention_transfer_request)
  if (_internal_has_latest_attention_transfer_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::LatestAttentionTransferRequest* temp = oneof_message_type_.latest_attention_transfer_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.latest_attention_transfer_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::LatestAttentionTransferRequest& GatewayWrapper::_internal_latest_attention_transfer_request() const {
  return _internal_has_latest_attention_transfer_request()
      ? *oneof_message_type_.latest_attention_transfer_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::LatestAttentionTransferRequest*>(&::Anki::Vector::external_interface::_LatestAttentionTransferRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::LatestAttentionTransferRequest& GatewayWrapper::latest_attention_transfer_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.latest_attention_transfer_request)
  return _internal_latest_attention_transfer_request();
}
inline ::Anki::Vector::external_interface::LatestAttentionTransferRequest* GatewayWrapper::unsafe_arena_release_latest_attention_transfer_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.latest_attention_transfer_request)
  if (_internal_has_latest_attention_transfer_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::LatestAttentionTransferRequest* temp = oneof_message_type_.latest_attention_transfer_request_;
    oneof_message_type_.latest_attention_transfer_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_latest_attention_transfer_request(::Anki::Vector::external_interface::LatestAttentionTransferRequest* latest_attention_transfer_request) {
  clear_oneof_message_type();
  if (latest_attention_transfer_request) {
    set_has_latest_attention_transfer_request();
    oneof_message_type_.latest_attention_transfer_request_ = latest_attention_transfer_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.latest_attention_transfer_request)
}
inline ::Anki::Vector::external_interface::LatestAttentionTransferRequest* GatewayWrapper::_internal_mutable_latest_attention_transfer_request() {
  if (!_internal_has_latest_attention_transfer_request()) {
    clear_oneof_message_type();
    set_has_latest_attention_transfer_request();
    oneof_message_type_.latest_attention_transfer_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::LatestAttentionTransferRequest >(GetArena());
  }
  return oneof_message_type_.latest_attention_transfer_request_;
}
inline ::Anki::Vector::external_interface::LatestAttentionTransferRequest* GatewayWrapper::mutable_latest_attention_transfer_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.latest_attention_transfer_request)
  return _internal_mutable_latest_attention_transfer_request();
}

// .Anki.Vector.external_interface.LatestAttentionTransfer latest_attention_transfer = 101;
inline bool GatewayWrapper::_internal_has_latest_attention_transfer() const {
  return oneof_message_type_case() == kLatestAttentionTransfer;
}
inline bool GatewayWrapper::has_latest_attention_transfer() const {
  return _internal_has_latest_attention_transfer();
}
inline void GatewayWrapper::set_has_latest_attention_transfer() {
  _oneof_case_[0] = kLatestAttentionTransfer;
}
inline ::Anki::Vector::external_interface::LatestAttentionTransfer* GatewayWrapper::release_latest_attention_transfer() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.latest_attention_transfer)
  if (_internal_has_latest_attention_transfer()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::LatestAttentionTransfer* temp = oneof_message_type_.latest_attention_transfer_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.latest_attention_transfer_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::LatestAttentionTransfer& GatewayWrapper::_internal_latest_attention_transfer() const {
  return _internal_has_latest_attention_transfer()
      ? *oneof_message_type_.latest_attention_transfer_
      : *reinterpret_cast< ::Anki::Vector::external_interface::LatestAttentionTransfer*>(&::Anki::Vector::external_interface::_LatestAttentionTransfer_default_instance_);
}
inline const ::Anki::Vector::external_interface::LatestAttentionTransfer& GatewayWrapper::latest_attention_transfer() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.latest_attention_transfer)
  return _internal_latest_attention_transfer();
}
inline ::Anki::Vector::external_interface::LatestAttentionTransfer* GatewayWrapper::unsafe_arena_release_latest_attention_transfer() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.latest_attention_transfer)
  if (_internal_has_latest_attention_transfer()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::LatestAttentionTransfer* temp = oneof_message_type_.latest_attention_transfer_;
    oneof_message_type_.latest_attention_transfer_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_latest_attention_transfer(::Anki::Vector::external_interface::LatestAttentionTransfer* latest_attention_transfer) {
  clear_oneof_message_type();
  if (latest_attention_transfer) {
    set_has_latest_attention_transfer();
    oneof_message_type_.latest_attention_transfer_ = latest_attention_transfer;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.latest_attention_transfer)
}
inline ::Anki::Vector::external_interface::LatestAttentionTransfer* GatewayWrapper::_internal_mutable_latest_attention_transfer() {
  if (!_internal_has_latest_attention_transfer()) {
    clear_oneof_message_type();
    set_has_latest_attention_transfer();
    oneof_message_type_.latest_attention_transfer_ = CreateMaybeMessage< ::Anki::Vector::external_interface::LatestAttentionTransfer >(GetArena());
  }
  return oneof_message_type_.latest_attention_transfer_;
}
inline ::Anki::Vector::external_interface::LatestAttentionTransfer* GatewayWrapper::mutable_latest_attention_transfer() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.latest_attention_transfer)
  return _internal_mutable_latest_attention_transfer();
}

// .Anki.Vector.external_interface.PhotosInfoRequest photos_info_request = 200;
inline bool GatewayWrapper::_internal_has_photos_info_request() const {
  return oneof_message_type_case() == kPhotosInfoRequest;
}
inline bool GatewayWrapper::has_photos_info_request() const {
  return _internal_has_photos_info_request();
}
inline void GatewayWrapper::set_has_photos_info_request() {
  _oneof_case_[0] = kPhotosInfoRequest;
}
inline ::Anki::Vector::external_interface::PhotosInfoRequest* GatewayWrapper::release_photos_info_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.photos_info_request)
  if (_internal_has_photos_info_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PhotosInfoRequest* temp = oneof_message_type_.photos_info_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.photos_info_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PhotosInfoRequest& GatewayWrapper::_internal_photos_info_request() const {
  return _internal_has_photos_info_request()
      ? *oneof_message_type_.photos_info_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PhotosInfoRequest*>(&::Anki::Vector::external_interface::_PhotosInfoRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::PhotosInfoRequest& GatewayWrapper::photos_info_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.photos_info_request)
  return _internal_photos_info_request();
}
inline ::Anki::Vector::external_interface::PhotosInfoRequest* GatewayWrapper::unsafe_arena_release_photos_info_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.photos_info_request)
  if (_internal_has_photos_info_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PhotosInfoRequest* temp = oneof_message_type_.photos_info_request_;
    oneof_message_type_.photos_info_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_photos_info_request(::Anki::Vector::external_interface::PhotosInfoRequest* photos_info_request) {
  clear_oneof_message_type();
  if (photos_info_request) {
    set_has_photos_info_request();
    oneof_message_type_.photos_info_request_ = photos_info_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.photos_info_request)
}
inline ::Anki::Vector::external_interface::PhotosInfoRequest* GatewayWrapper::_internal_mutable_photos_info_request() {
  if (!_internal_has_photos_info_request()) {
    clear_oneof_message_type();
    set_has_photos_info_request();
    oneof_message_type_.photos_info_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PhotosInfoRequest >(GetArena());
  }
  return oneof_message_type_.photos_info_request_;
}
inline ::Anki::Vector::external_interface::PhotosInfoRequest* GatewayWrapper::mutable_photos_info_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.photos_info_request)
  return _internal_mutable_photos_info_request();
}

// .Anki.Vector.external_interface.PhotosInfoResponse photos_info_response = 201;
inline bool GatewayWrapper::_internal_has_photos_info_response() const {
  return oneof_message_type_case() == kPhotosInfoResponse;
}
inline bool GatewayWrapper::has_photos_info_response() const {
  return _internal_has_photos_info_response();
}
inline void GatewayWrapper::set_has_photos_info_response() {
  _oneof_case_[0] = kPhotosInfoResponse;
}
inline ::Anki::Vector::external_interface::PhotosInfoResponse* GatewayWrapper::release_photos_info_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.photos_info_response)
  if (_internal_has_photos_info_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PhotosInfoResponse* temp = oneof_message_type_.photos_info_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.photos_info_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PhotosInfoResponse& GatewayWrapper::_internal_photos_info_response() const {
  return _internal_has_photos_info_response()
      ? *oneof_message_type_.photos_info_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PhotosInfoResponse*>(&::Anki::Vector::external_interface::_PhotosInfoResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::PhotosInfoResponse& GatewayWrapper::photos_info_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.photos_info_response)
  return _internal_photos_info_response();
}
inline ::Anki::Vector::external_interface::PhotosInfoResponse* GatewayWrapper::unsafe_arena_release_photos_info_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.photos_info_response)
  if (_internal_has_photos_info_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PhotosInfoResponse* temp = oneof_message_type_.photos_info_response_;
    oneof_message_type_.photos_info_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_photos_info_response(::Anki::Vector::external_interface::PhotosInfoResponse* photos_info_response) {
  clear_oneof_message_type();
  if (photos_info_response) {
    set_has_photos_info_response();
    oneof_message_type_.photos_info_response_ = photos_info_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.photos_info_response)
}
inline ::Anki::Vector::external_interface::PhotosInfoResponse* GatewayWrapper::_internal_mutable_photos_info_response() {
  if (!_internal_has_photos_info_response()) {
    clear_oneof_message_type();
    set_has_photos_info_response();
    oneof_message_type_.photos_info_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PhotosInfoResponse >(GetArena());
  }
  return oneof_message_type_.photos_info_response_;
}
inline ::Anki::Vector::external_interface::PhotosInfoResponse* GatewayWrapper::mutable_photos_info_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.photos_info_response)
  return _internal_mutable_photos_info_response();
}

// .Anki.Vector.external_interface.PhotoRequest photo_request = 202;
inline bool GatewayWrapper::_internal_has_photo_request() const {
  return oneof_message_type_case() == kPhotoRequest;
}
inline bool GatewayWrapper::has_photo_request() const {
  return _internal_has_photo_request();
}
inline void GatewayWrapper::set_has_photo_request() {
  _oneof_case_[0] = kPhotoRequest;
}
inline ::Anki::Vector::external_interface::PhotoRequest* GatewayWrapper::release_photo_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.photo_request)
  if (_internal_has_photo_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PhotoRequest* temp = oneof_message_type_.photo_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.photo_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PhotoRequest& GatewayWrapper::_internal_photo_request() const {
  return _internal_has_photo_request()
      ? *oneof_message_type_.photo_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PhotoRequest*>(&::Anki::Vector::external_interface::_PhotoRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::PhotoRequest& GatewayWrapper::photo_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.photo_request)
  return _internal_photo_request();
}
inline ::Anki::Vector::external_interface::PhotoRequest* GatewayWrapper::unsafe_arena_release_photo_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.photo_request)
  if (_internal_has_photo_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PhotoRequest* temp = oneof_message_type_.photo_request_;
    oneof_message_type_.photo_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_photo_request(::Anki::Vector::external_interface::PhotoRequest* photo_request) {
  clear_oneof_message_type();
  if (photo_request) {
    set_has_photo_request();
    oneof_message_type_.photo_request_ = photo_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.photo_request)
}
inline ::Anki::Vector::external_interface::PhotoRequest* GatewayWrapper::_internal_mutable_photo_request() {
  if (!_internal_has_photo_request()) {
    clear_oneof_message_type();
    set_has_photo_request();
    oneof_message_type_.photo_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PhotoRequest >(GetArena());
  }
  return oneof_message_type_.photo_request_;
}
inline ::Anki::Vector::external_interface::PhotoRequest* GatewayWrapper::mutable_photo_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.photo_request)
  return _internal_mutable_photo_request();
}

// .Anki.Vector.external_interface.PhotoPathMessage photo_path_message = 203;
inline bool GatewayWrapper::_internal_has_photo_path_message() const {
  return oneof_message_type_case() == kPhotoPathMessage;
}
inline bool GatewayWrapper::has_photo_path_message() const {
  return _internal_has_photo_path_message();
}
inline void GatewayWrapper::set_has_photo_path_message() {
  _oneof_case_[0] = kPhotoPathMessage;
}
inline ::Anki::Vector::external_interface::PhotoPathMessage* GatewayWrapper::release_photo_path_message() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.photo_path_message)
  if (_internal_has_photo_path_message()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PhotoPathMessage* temp = oneof_message_type_.photo_path_message_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.photo_path_message_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PhotoPathMessage& GatewayWrapper::_internal_photo_path_message() const {
  return _internal_has_photo_path_message()
      ? *oneof_message_type_.photo_path_message_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PhotoPathMessage*>(&::Anki::Vector::external_interface::_PhotoPathMessage_default_instance_);
}
inline const ::Anki::Vector::external_interface::PhotoPathMessage& GatewayWrapper::photo_path_message() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.photo_path_message)
  return _internal_photo_path_message();
}
inline ::Anki::Vector::external_interface::PhotoPathMessage* GatewayWrapper::unsafe_arena_release_photo_path_message() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.photo_path_message)
  if (_internal_has_photo_path_message()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PhotoPathMessage* temp = oneof_message_type_.photo_path_message_;
    oneof_message_type_.photo_path_message_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_photo_path_message(::Anki::Vector::external_interface::PhotoPathMessage* photo_path_message) {
  clear_oneof_message_type();
  if (photo_path_message) {
    set_has_photo_path_message();
    oneof_message_type_.photo_path_message_ = photo_path_message;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.photo_path_message)
}
inline ::Anki::Vector::external_interface::PhotoPathMessage* GatewayWrapper::_internal_mutable_photo_path_message() {
  if (!_internal_has_photo_path_message()) {
    clear_oneof_message_type();
    set_has_photo_path_message();
    oneof_message_type_.photo_path_message_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PhotoPathMessage >(GetArena());
  }
  return oneof_message_type_.photo_path_message_;
}
inline ::Anki::Vector::external_interface::PhotoPathMessage* GatewayWrapper::mutable_photo_path_message() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.photo_path_message)
  return _internal_mutable_photo_path_message();
}

// .Anki.Vector.external_interface.ThumbnailRequest thumbnail_request = 204;
inline bool GatewayWrapper::_internal_has_thumbnail_request() const {
  return oneof_message_type_case() == kThumbnailRequest;
}
inline bool GatewayWrapper::has_thumbnail_request() const {
  return _internal_has_thumbnail_request();
}
inline void GatewayWrapper::set_has_thumbnail_request() {
  _oneof_case_[0] = kThumbnailRequest;
}
inline ::Anki::Vector::external_interface::ThumbnailRequest* GatewayWrapper::release_thumbnail_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.thumbnail_request)
  if (_internal_has_thumbnail_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ThumbnailRequest* temp = oneof_message_type_.thumbnail_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.thumbnail_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ThumbnailRequest& GatewayWrapper::_internal_thumbnail_request() const {
  return _internal_has_thumbnail_request()
      ? *oneof_message_type_.thumbnail_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ThumbnailRequest*>(&::Anki::Vector::external_interface::_ThumbnailRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::ThumbnailRequest& GatewayWrapper::thumbnail_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.thumbnail_request)
  return _internal_thumbnail_request();
}
inline ::Anki::Vector::external_interface::ThumbnailRequest* GatewayWrapper::unsafe_arena_release_thumbnail_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.thumbnail_request)
  if (_internal_has_thumbnail_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ThumbnailRequest* temp = oneof_message_type_.thumbnail_request_;
    oneof_message_type_.thumbnail_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_thumbnail_request(::Anki::Vector::external_interface::ThumbnailRequest* thumbnail_request) {
  clear_oneof_message_type();
  if (thumbnail_request) {
    set_has_thumbnail_request();
    oneof_message_type_.thumbnail_request_ = thumbnail_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.thumbnail_request)
}
inline ::Anki::Vector::external_interface::ThumbnailRequest* GatewayWrapper::_internal_mutable_thumbnail_request() {
  if (!_internal_has_thumbnail_request()) {
    clear_oneof_message_type();
    set_has_thumbnail_request();
    oneof_message_type_.thumbnail_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ThumbnailRequest >(GetArena());
  }
  return oneof_message_type_.thumbnail_request_;
}
inline ::Anki::Vector::external_interface::ThumbnailRequest* GatewayWrapper::mutable_thumbnail_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.thumbnail_request)
  return _internal_mutable_thumbnail_request();
}

// .Anki.Vector.external_interface.ThumbnailPathMessage thumbnail_path_message = 205;
inline bool GatewayWrapper::_internal_has_thumbnail_path_message() const {
  return oneof_message_type_case() == kThumbnailPathMessage;
}
inline bool GatewayWrapper::has_thumbnail_path_message() const {
  return _internal_has_thumbnail_path_message();
}
inline void GatewayWrapper::set_has_thumbnail_path_message() {
  _oneof_case_[0] = kThumbnailPathMessage;
}
inline ::Anki::Vector::external_interface::ThumbnailPathMessage* GatewayWrapper::release_thumbnail_path_message() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.thumbnail_path_message)
  if (_internal_has_thumbnail_path_message()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ThumbnailPathMessage* temp = oneof_message_type_.thumbnail_path_message_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.thumbnail_path_message_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ThumbnailPathMessage& GatewayWrapper::_internal_thumbnail_path_message() const {
  return _internal_has_thumbnail_path_message()
      ? *oneof_message_type_.thumbnail_path_message_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ThumbnailPathMessage*>(&::Anki::Vector::external_interface::_ThumbnailPathMessage_default_instance_);
}
inline const ::Anki::Vector::external_interface::ThumbnailPathMessage& GatewayWrapper::thumbnail_path_message() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.thumbnail_path_message)
  return _internal_thumbnail_path_message();
}
inline ::Anki::Vector::external_interface::ThumbnailPathMessage* GatewayWrapper::unsafe_arena_release_thumbnail_path_message() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.thumbnail_path_message)
  if (_internal_has_thumbnail_path_message()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ThumbnailPathMessage* temp = oneof_message_type_.thumbnail_path_message_;
    oneof_message_type_.thumbnail_path_message_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_thumbnail_path_message(::Anki::Vector::external_interface::ThumbnailPathMessage* thumbnail_path_message) {
  clear_oneof_message_type();
  if (thumbnail_path_message) {
    set_has_thumbnail_path_message();
    oneof_message_type_.thumbnail_path_message_ = thumbnail_path_message;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.thumbnail_path_message)
}
inline ::Anki::Vector::external_interface::ThumbnailPathMessage* GatewayWrapper::_internal_mutable_thumbnail_path_message() {
  if (!_internal_has_thumbnail_path_message()) {
    clear_oneof_message_type();
    set_has_thumbnail_path_message();
    oneof_message_type_.thumbnail_path_message_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ThumbnailPathMessage >(GetArena());
  }
  return oneof_message_type_.thumbnail_path_message_;
}
inline ::Anki::Vector::external_interface::ThumbnailPathMessage* GatewayWrapper::mutable_thumbnail_path_message() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.thumbnail_path_message)
  return _internal_mutable_thumbnail_path_message();
}

// .Anki.Vector.external_interface.DeletePhotoRequest delete_photo_request = 206;
inline bool GatewayWrapper::_internal_has_delete_photo_request() const {
  return oneof_message_type_case() == kDeletePhotoRequest;
}
inline bool GatewayWrapper::has_delete_photo_request() const {
  return _internal_has_delete_photo_request();
}
inline void GatewayWrapper::set_has_delete_photo_request() {
  _oneof_case_[0] = kDeletePhotoRequest;
}
inline ::Anki::Vector::external_interface::DeletePhotoRequest* GatewayWrapper::release_delete_photo_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.delete_photo_request)
  if (_internal_has_delete_photo_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::DeletePhotoRequest* temp = oneof_message_type_.delete_photo_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.delete_photo_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::DeletePhotoRequest& GatewayWrapper::_internal_delete_photo_request() const {
  return _internal_has_delete_photo_request()
      ? *oneof_message_type_.delete_photo_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::DeletePhotoRequest*>(&::Anki::Vector::external_interface::_DeletePhotoRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::DeletePhotoRequest& GatewayWrapper::delete_photo_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.delete_photo_request)
  return _internal_delete_photo_request();
}
inline ::Anki::Vector::external_interface::DeletePhotoRequest* GatewayWrapper::unsafe_arena_release_delete_photo_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.delete_photo_request)
  if (_internal_has_delete_photo_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::DeletePhotoRequest* temp = oneof_message_type_.delete_photo_request_;
    oneof_message_type_.delete_photo_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_delete_photo_request(::Anki::Vector::external_interface::DeletePhotoRequest* delete_photo_request) {
  clear_oneof_message_type();
  if (delete_photo_request) {
    set_has_delete_photo_request();
    oneof_message_type_.delete_photo_request_ = delete_photo_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.delete_photo_request)
}
inline ::Anki::Vector::external_interface::DeletePhotoRequest* GatewayWrapper::_internal_mutable_delete_photo_request() {
  if (!_internal_has_delete_photo_request()) {
    clear_oneof_message_type();
    set_has_delete_photo_request();
    oneof_message_type_.delete_photo_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::DeletePhotoRequest >(GetArena());
  }
  return oneof_message_type_.delete_photo_request_;
}
inline ::Anki::Vector::external_interface::DeletePhotoRequest* GatewayWrapper::mutable_delete_photo_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.delete_photo_request)
  return _internal_mutable_delete_photo_request();
}

// .Anki.Vector.external_interface.DeletePhotoResponse delete_photo_response = 207;
inline bool GatewayWrapper::_internal_has_delete_photo_response() const {
  return oneof_message_type_case() == kDeletePhotoResponse;
}
inline bool GatewayWrapper::has_delete_photo_response() const {
  return _internal_has_delete_photo_response();
}
inline void GatewayWrapper::set_has_delete_photo_response() {
  _oneof_case_[0] = kDeletePhotoResponse;
}
inline ::Anki::Vector::external_interface::DeletePhotoResponse* GatewayWrapper::release_delete_photo_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.delete_photo_response)
  if (_internal_has_delete_photo_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::DeletePhotoResponse* temp = oneof_message_type_.delete_photo_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.delete_photo_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::DeletePhotoResponse& GatewayWrapper::_internal_delete_photo_response() const {
  return _internal_has_delete_photo_response()
      ? *oneof_message_type_.delete_photo_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::DeletePhotoResponse*>(&::Anki::Vector::external_interface::_DeletePhotoResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::DeletePhotoResponse& GatewayWrapper::delete_photo_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.delete_photo_response)
  return _internal_delete_photo_response();
}
inline ::Anki::Vector::external_interface::DeletePhotoResponse* GatewayWrapper::unsafe_arena_release_delete_photo_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.delete_photo_response)
  if (_internal_has_delete_photo_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::DeletePhotoResponse* temp = oneof_message_type_.delete_photo_response_;
    oneof_message_type_.delete_photo_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_delete_photo_response(::Anki::Vector::external_interface::DeletePhotoResponse* delete_photo_response) {
  clear_oneof_message_type();
  if (delete_photo_response) {
    set_has_delete_photo_response();
    oneof_message_type_.delete_photo_response_ = delete_photo_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.delete_photo_response)
}
inline ::Anki::Vector::external_interface::DeletePhotoResponse* GatewayWrapper::_internal_mutable_delete_photo_response() {
  if (!_internal_has_delete_photo_response()) {
    clear_oneof_message_type();
    set_has_delete_photo_response();
    oneof_message_type_.delete_photo_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::DeletePhotoResponse >(GetArena());
  }
  return oneof_message_type_.delete_photo_response_;
}
inline ::Anki::Vector::external_interface::DeletePhotoResponse* GatewayWrapper::mutable_delete_photo_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.delete_photo_response)
  return _internal_mutable_delete_photo_response();
}

// .Anki.Vector.external_interface.PullJdocsRequest pull_jdocs_request = 300;
inline bool GatewayWrapper::_internal_has_pull_jdocs_request() const {
  return oneof_message_type_case() == kPullJdocsRequest;
}
inline bool GatewayWrapper::has_pull_jdocs_request() const {
  return _internal_has_pull_jdocs_request();
}
inline void GatewayWrapper::set_has_pull_jdocs_request() {
  _oneof_case_[0] = kPullJdocsRequest;
}
inline ::Anki::Vector::external_interface::PullJdocsRequest* GatewayWrapper::release_pull_jdocs_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.pull_jdocs_request)
  if (_internal_has_pull_jdocs_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PullJdocsRequest* temp = oneof_message_type_.pull_jdocs_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.pull_jdocs_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PullJdocsRequest& GatewayWrapper::_internal_pull_jdocs_request() const {
  return _internal_has_pull_jdocs_request()
      ? *oneof_message_type_.pull_jdocs_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PullJdocsRequest*>(&::Anki::Vector::external_interface::_PullJdocsRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::PullJdocsRequest& GatewayWrapper::pull_jdocs_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.pull_jdocs_request)
  return _internal_pull_jdocs_request();
}
inline ::Anki::Vector::external_interface::PullJdocsRequest* GatewayWrapper::unsafe_arena_release_pull_jdocs_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.pull_jdocs_request)
  if (_internal_has_pull_jdocs_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PullJdocsRequest* temp = oneof_message_type_.pull_jdocs_request_;
    oneof_message_type_.pull_jdocs_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_pull_jdocs_request(::Anki::Vector::external_interface::PullJdocsRequest* pull_jdocs_request) {
  clear_oneof_message_type();
  if (pull_jdocs_request) {
    set_has_pull_jdocs_request();
    oneof_message_type_.pull_jdocs_request_ = pull_jdocs_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.pull_jdocs_request)
}
inline ::Anki::Vector::external_interface::PullJdocsRequest* GatewayWrapper::_internal_mutable_pull_jdocs_request() {
  if (!_internal_has_pull_jdocs_request()) {
    clear_oneof_message_type();
    set_has_pull_jdocs_request();
    oneof_message_type_.pull_jdocs_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PullJdocsRequest >(GetArena());
  }
  return oneof_message_type_.pull_jdocs_request_;
}
inline ::Anki::Vector::external_interface::PullJdocsRequest* GatewayWrapper::mutable_pull_jdocs_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.pull_jdocs_request)
  return _internal_mutable_pull_jdocs_request();
}

// .Anki.Vector.external_interface.PullJdocsResponse pull_jdocs_response = 301;
inline bool GatewayWrapper::_internal_has_pull_jdocs_response() const {
  return oneof_message_type_case() == kPullJdocsResponse;
}
inline bool GatewayWrapper::has_pull_jdocs_response() const {
  return _internal_has_pull_jdocs_response();
}
inline void GatewayWrapper::set_has_pull_jdocs_response() {
  _oneof_case_[0] = kPullJdocsResponse;
}
inline ::Anki::Vector::external_interface::PullJdocsResponse* GatewayWrapper::release_pull_jdocs_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.pull_jdocs_response)
  if (_internal_has_pull_jdocs_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PullJdocsResponse* temp = oneof_message_type_.pull_jdocs_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.pull_jdocs_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PullJdocsResponse& GatewayWrapper::_internal_pull_jdocs_response() const {
  return _internal_has_pull_jdocs_response()
      ? *oneof_message_type_.pull_jdocs_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PullJdocsResponse*>(&::Anki::Vector::external_interface::_PullJdocsResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::PullJdocsResponse& GatewayWrapper::pull_jdocs_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.pull_jdocs_response)
  return _internal_pull_jdocs_response();
}
inline ::Anki::Vector::external_interface::PullJdocsResponse* GatewayWrapper::unsafe_arena_release_pull_jdocs_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.pull_jdocs_response)
  if (_internal_has_pull_jdocs_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PullJdocsResponse* temp = oneof_message_type_.pull_jdocs_response_;
    oneof_message_type_.pull_jdocs_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_pull_jdocs_response(::Anki::Vector::external_interface::PullJdocsResponse* pull_jdocs_response) {
  clear_oneof_message_type();
  if (pull_jdocs_response) {
    set_has_pull_jdocs_response();
    oneof_message_type_.pull_jdocs_response_ = pull_jdocs_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.pull_jdocs_response)
}
inline ::Anki::Vector::external_interface::PullJdocsResponse* GatewayWrapper::_internal_mutable_pull_jdocs_response() {
  if (!_internal_has_pull_jdocs_response()) {
    clear_oneof_message_type();
    set_has_pull_jdocs_response();
    oneof_message_type_.pull_jdocs_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PullJdocsResponse >(GetArena());
  }
  return oneof_message_type_.pull_jdocs_response_;
}
inline ::Anki::Vector::external_interface::PullJdocsResponse* GatewayWrapper::mutable_pull_jdocs_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.pull_jdocs_response)
  return _internal_mutable_pull_jdocs_response();
}

// .Anki.Vector.external_interface.UpdateSettingsRequest update_settings_request = 302;
inline bool GatewayWrapper::_internal_has_update_settings_request() const {
  return oneof_message_type_case() == kUpdateSettingsRequest;
}
inline bool GatewayWrapper::has_update_settings_request() const {
  return _internal_has_update_settings_request();
}
inline void GatewayWrapper::set_has_update_settings_request() {
  _oneof_case_[0] = kUpdateSettingsRequest;
}
inline ::Anki::Vector::external_interface::UpdateSettingsRequest* GatewayWrapper::release_update_settings_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.update_settings_request)
  if (_internal_has_update_settings_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::UpdateSettingsRequest* temp = oneof_message_type_.update_settings_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.update_settings_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::UpdateSettingsRequest& GatewayWrapper::_internal_update_settings_request() const {
  return _internal_has_update_settings_request()
      ? *oneof_message_type_.update_settings_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::UpdateSettingsRequest*>(&::Anki::Vector::external_interface::_UpdateSettingsRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::UpdateSettingsRequest& GatewayWrapper::update_settings_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.update_settings_request)
  return _internal_update_settings_request();
}
inline ::Anki::Vector::external_interface::UpdateSettingsRequest* GatewayWrapper::unsafe_arena_release_update_settings_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.update_settings_request)
  if (_internal_has_update_settings_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::UpdateSettingsRequest* temp = oneof_message_type_.update_settings_request_;
    oneof_message_type_.update_settings_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_update_settings_request(::Anki::Vector::external_interface::UpdateSettingsRequest* update_settings_request) {
  clear_oneof_message_type();
  if (update_settings_request) {
    set_has_update_settings_request();
    oneof_message_type_.update_settings_request_ = update_settings_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.update_settings_request)
}
inline ::Anki::Vector::external_interface::UpdateSettingsRequest* GatewayWrapper::_internal_mutable_update_settings_request() {
  if (!_internal_has_update_settings_request()) {
    clear_oneof_message_type();
    set_has_update_settings_request();
    oneof_message_type_.update_settings_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateSettingsRequest >(GetArena());
  }
  return oneof_message_type_.update_settings_request_;
}
inline ::Anki::Vector::external_interface::UpdateSettingsRequest* GatewayWrapper::mutable_update_settings_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.update_settings_request)
  return _internal_mutable_update_settings_request();
}

// .Anki.Vector.external_interface.UpdateSettingsResponse update_settings_response = 303;
inline bool GatewayWrapper::_internal_has_update_settings_response() const {
  return oneof_message_type_case() == kUpdateSettingsResponse;
}
inline bool GatewayWrapper::has_update_settings_response() const {
  return _internal_has_update_settings_response();
}
inline void GatewayWrapper::set_has_update_settings_response() {
  _oneof_case_[0] = kUpdateSettingsResponse;
}
inline ::Anki::Vector::external_interface::UpdateSettingsResponse* GatewayWrapper::release_update_settings_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.update_settings_response)
  if (_internal_has_update_settings_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::UpdateSettingsResponse* temp = oneof_message_type_.update_settings_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.update_settings_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::UpdateSettingsResponse& GatewayWrapper::_internal_update_settings_response() const {
  return _internal_has_update_settings_response()
      ? *oneof_message_type_.update_settings_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::UpdateSettingsResponse*>(&::Anki::Vector::external_interface::_UpdateSettingsResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::UpdateSettingsResponse& GatewayWrapper::update_settings_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.update_settings_response)
  return _internal_update_settings_response();
}
inline ::Anki::Vector::external_interface::UpdateSettingsResponse* GatewayWrapper::unsafe_arena_release_update_settings_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.update_settings_response)
  if (_internal_has_update_settings_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::UpdateSettingsResponse* temp = oneof_message_type_.update_settings_response_;
    oneof_message_type_.update_settings_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_update_settings_response(::Anki::Vector::external_interface::UpdateSettingsResponse* update_settings_response) {
  clear_oneof_message_type();
  if (update_settings_response) {
    set_has_update_settings_response();
    oneof_message_type_.update_settings_response_ = update_settings_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.update_settings_response)
}
inline ::Anki::Vector::external_interface::UpdateSettingsResponse* GatewayWrapper::_internal_mutable_update_settings_response() {
  if (!_internal_has_update_settings_response()) {
    clear_oneof_message_type();
    set_has_update_settings_response();
    oneof_message_type_.update_settings_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateSettingsResponse >(GetArena());
  }
  return oneof_message_type_.update_settings_response_;
}
inline ::Anki::Vector::external_interface::UpdateSettingsResponse* GatewayWrapper::mutable_update_settings_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.update_settings_response)
  return _internal_mutable_update_settings_response();
}

// .Anki.Vector.external_interface.UpdateAccountSettingsRequest update_account_settings_request = 304;
inline bool GatewayWrapper::_internal_has_update_account_settings_request() const {
  return oneof_message_type_case() == kUpdateAccountSettingsRequest;
}
inline bool GatewayWrapper::has_update_account_settings_request() const {
  return _internal_has_update_account_settings_request();
}
inline void GatewayWrapper::set_has_update_account_settings_request() {
  _oneof_case_[0] = kUpdateAccountSettingsRequest;
}
inline ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* GatewayWrapper::release_update_account_settings_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.update_account_settings_request)
  if (_internal_has_update_account_settings_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* temp = oneof_message_type_.update_account_settings_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.update_account_settings_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::UpdateAccountSettingsRequest& GatewayWrapper::_internal_update_account_settings_request() const {
  return _internal_has_update_account_settings_request()
      ? *oneof_message_type_.update_account_settings_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::UpdateAccountSettingsRequest*>(&::Anki::Vector::external_interface::_UpdateAccountSettingsRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::UpdateAccountSettingsRequest& GatewayWrapper::update_account_settings_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.update_account_settings_request)
  return _internal_update_account_settings_request();
}
inline ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* GatewayWrapper::unsafe_arena_release_update_account_settings_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.update_account_settings_request)
  if (_internal_has_update_account_settings_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* temp = oneof_message_type_.update_account_settings_request_;
    oneof_message_type_.update_account_settings_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_update_account_settings_request(::Anki::Vector::external_interface::UpdateAccountSettingsRequest* update_account_settings_request) {
  clear_oneof_message_type();
  if (update_account_settings_request) {
    set_has_update_account_settings_request();
    oneof_message_type_.update_account_settings_request_ = update_account_settings_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.update_account_settings_request)
}
inline ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* GatewayWrapper::_internal_mutable_update_account_settings_request() {
  if (!_internal_has_update_account_settings_request()) {
    clear_oneof_message_type();
    set_has_update_account_settings_request();
    oneof_message_type_.update_account_settings_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateAccountSettingsRequest >(GetArena());
  }
  return oneof_message_type_.update_account_settings_request_;
}
inline ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* GatewayWrapper::mutable_update_account_settings_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.update_account_settings_request)
  return _internal_mutable_update_account_settings_request();
}

// .Anki.Vector.external_interface.UpdateAccountSettingsResponse update_account_settings_response = 305;
inline bool GatewayWrapper::_internal_has_update_account_settings_response() const {
  return oneof_message_type_case() == kUpdateAccountSettingsResponse;
}
inline bool GatewayWrapper::has_update_account_settings_response() const {
  return _internal_has_update_account_settings_response();
}
inline void GatewayWrapper::set_has_update_account_settings_response() {
  _oneof_case_[0] = kUpdateAccountSettingsResponse;
}
inline ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* GatewayWrapper::release_update_account_settings_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.update_account_settings_response)
  if (_internal_has_update_account_settings_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* temp = oneof_message_type_.update_account_settings_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.update_account_settings_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::UpdateAccountSettingsResponse& GatewayWrapper::_internal_update_account_settings_response() const {
  return _internal_has_update_account_settings_response()
      ? *oneof_message_type_.update_account_settings_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::UpdateAccountSettingsResponse*>(&::Anki::Vector::external_interface::_UpdateAccountSettingsResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::UpdateAccountSettingsResponse& GatewayWrapper::update_account_settings_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.update_account_settings_response)
  return _internal_update_account_settings_response();
}
inline ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* GatewayWrapper::unsafe_arena_release_update_account_settings_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.update_account_settings_response)
  if (_internal_has_update_account_settings_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* temp = oneof_message_type_.update_account_settings_response_;
    oneof_message_type_.update_account_settings_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_update_account_settings_response(::Anki::Vector::external_interface::UpdateAccountSettingsResponse* update_account_settings_response) {
  clear_oneof_message_type();
  if (update_account_settings_response) {
    set_has_update_account_settings_response();
    oneof_message_type_.update_account_settings_response_ = update_account_settings_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.update_account_settings_response)
}
inline ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* GatewayWrapper::_internal_mutable_update_account_settings_response() {
  if (!_internal_has_update_account_settings_response()) {
    clear_oneof_message_type();
    set_has_update_account_settings_response();
    oneof_message_type_.update_account_settings_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateAccountSettingsResponse >(GetArena());
  }
  return oneof_message_type_.update_account_settings_response_;
}
inline ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* GatewayWrapper::mutable_update_account_settings_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.update_account_settings_response)
  return _internal_mutable_update_account_settings_response();
}

// .Anki.Vector.external_interface.UpdateUserEntitlementsRequest update_user_entitlements_request = 306;
inline bool GatewayWrapper::_internal_has_update_user_entitlements_request() const {
  return oneof_message_type_case() == kUpdateUserEntitlementsRequest;
}
inline bool GatewayWrapper::has_update_user_entitlements_request() const {
  return _internal_has_update_user_entitlements_request();
}
inline void GatewayWrapper::set_has_update_user_entitlements_request() {
  _oneof_case_[0] = kUpdateUserEntitlementsRequest;
}
inline ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* GatewayWrapper::release_update_user_entitlements_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.update_user_entitlements_request)
  if (_internal_has_update_user_entitlements_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* temp = oneof_message_type_.update_user_entitlements_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.update_user_entitlements_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest& GatewayWrapper::_internal_update_user_entitlements_request() const {
  return _internal_has_update_user_entitlements_request()
      ? *oneof_message_type_.update_user_entitlements_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest*>(&::Anki::Vector::external_interface::_UpdateUserEntitlementsRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest& GatewayWrapper::update_user_entitlements_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.update_user_entitlements_request)
  return _internal_update_user_entitlements_request();
}
inline ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* GatewayWrapper::unsafe_arena_release_update_user_entitlements_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.update_user_entitlements_request)
  if (_internal_has_update_user_entitlements_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* temp = oneof_message_type_.update_user_entitlements_request_;
    oneof_message_type_.update_user_entitlements_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_update_user_entitlements_request(::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* update_user_entitlements_request) {
  clear_oneof_message_type();
  if (update_user_entitlements_request) {
    set_has_update_user_entitlements_request();
    oneof_message_type_.update_user_entitlements_request_ = update_user_entitlements_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.update_user_entitlements_request)
}
inline ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* GatewayWrapper::_internal_mutable_update_user_entitlements_request() {
  if (!_internal_has_update_user_entitlements_request()) {
    clear_oneof_message_type();
    set_has_update_user_entitlements_request();
    oneof_message_type_.update_user_entitlements_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest >(GetArena());
  }
  return oneof_message_type_.update_user_entitlements_request_;
}
inline ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* GatewayWrapper::mutable_update_user_entitlements_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.update_user_entitlements_request)
  return _internal_mutable_update_user_entitlements_request();
}

// .Anki.Vector.external_interface.UpdateUserEntitlementsResponse update_user_entitlements_response = 307;
inline bool GatewayWrapper::_internal_has_update_user_entitlements_response() const {
  return oneof_message_type_case() == kUpdateUserEntitlementsResponse;
}
inline bool GatewayWrapper::has_update_user_entitlements_response() const {
  return _internal_has_update_user_entitlements_response();
}
inline void GatewayWrapper::set_has_update_user_entitlements_response() {
  _oneof_case_[0] = kUpdateUserEntitlementsResponse;
}
inline ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* GatewayWrapper::release_update_user_entitlements_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.update_user_entitlements_response)
  if (_internal_has_update_user_entitlements_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* temp = oneof_message_type_.update_user_entitlements_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.update_user_entitlements_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse& GatewayWrapper::_internal_update_user_entitlements_response() const {
  return _internal_has_update_user_entitlements_response()
      ? *oneof_message_type_.update_user_entitlements_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse*>(&::Anki::Vector::external_interface::_UpdateUserEntitlementsResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse& GatewayWrapper::update_user_entitlements_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.update_user_entitlements_response)
  return _internal_update_user_entitlements_response();
}
inline ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* GatewayWrapper::unsafe_arena_release_update_user_entitlements_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.update_user_entitlements_response)
  if (_internal_has_update_user_entitlements_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* temp = oneof_message_type_.update_user_entitlements_response_;
    oneof_message_type_.update_user_entitlements_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_update_user_entitlements_response(::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* update_user_entitlements_response) {
  clear_oneof_message_type();
  if (update_user_entitlements_response) {
    set_has_update_user_entitlements_response();
    oneof_message_type_.update_user_entitlements_response_ = update_user_entitlements_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.update_user_entitlements_response)
}
inline ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* GatewayWrapper::_internal_mutable_update_user_entitlements_response() {
  if (!_internal_has_update_user_entitlements_response()) {
    clear_oneof_message_type();
    set_has_update_user_entitlements_response();
    oneof_message_type_.update_user_entitlements_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse >(GetArena());
  }
  return oneof_message_type_.update_user_entitlements_response_;
}
inline ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* GatewayWrapper::mutable_update_user_entitlements_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.update_user_entitlements_response)
  return _internal_mutable_update_user_entitlements_response();
}

// .Anki.Vector.external_interface.DriveOffChargerRequest drive_off_charger_request = 400;
inline bool GatewayWrapper::_internal_has_drive_off_charger_request() const {
  return oneof_message_type_case() == kDriveOffChargerRequest;
}
inline bool GatewayWrapper::has_drive_off_charger_request() const {
  return _internal_has_drive_off_charger_request();
}
inline void GatewayWrapper::set_has_drive_off_charger_request() {
  _oneof_case_[0] = kDriveOffChargerRequest;
}
inline ::Anki::Vector::external_interface::DriveOffChargerRequest* GatewayWrapper::release_drive_off_charger_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.drive_off_charger_request)
  if (_internal_has_drive_off_charger_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::DriveOffChargerRequest* temp = oneof_message_type_.drive_off_charger_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.drive_off_charger_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::DriveOffChargerRequest& GatewayWrapper::_internal_drive_off_charger_request() const {
  return _internal_has_drive_off_charger_request()
      ? *oneof_message_type_.drive_off_charger_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::DriveOffChargerRequest*>(&::Anki::Vector::external_interface::_DriveOffChargerRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::DriveOffChargerRequest& GatewayWrapper::drive_off_charger_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.drive_off_charger_request)
  return _internal_drive_off_charger_request();
}
inline ::Anki::Vector::external_interface::DriveOffChargerRequest* GatewayWrapper::unsafe_arena_release_drive_off_charger_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.drive_off_charger_request)
  if (_internal_has_drive_off_charger_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::DriveOffChargerRequest* temp = oneof_message_type_.drive_off_charger_request_;
    oneof_message_type_.drive_off_charger_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_drive_off_charger_request(::Anki::Vector::external_interface::DriveOffChargerRequest* drive_off_charger_request) {
  clear_oneof_message_type();
  if (drive_off_charger_request) {
    set_has_drive_off_charger_request();
    oneof_message_type_.drive_off_charger_request_ = drive_off_charger_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_off_charger_request)
}
inline ::Anki::Vector::external_interface::DriveOffChargerRequest* GatewayWrapper::_internal_mutable_drive_off_charger_request() {
  if (!_internal_has_drive_off_charger_request()) {
    clear_oneof_message_type();
    set_has_drive_off_charger_request();
    oneof_message_type_.drive_off_charger_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::DriveOffChargerRequest >(GetArena());
  }
  return oneof_message_type_.drive_off_charger_request_;
}
inline ::Anki::Vector::external_interface::DriveOffChargerRequest* GatewayWrapper::mutable_drive_off_charger_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.drive_off_charger_request)
  return _internal_mutable_drive_off_charger_request();
}

// .Anki.Vector.external_interface.DriveOffChargerResponse drive_off_charger_response = 401;
inline bool GatewayWrapper::_internal_has_drive_off_charger_response() const {
  return oneof_message_type_case() == kDriveOffChargerResponse;
}
inline bool GatewayWrapper::has_drive_off_charger_response() const {
  return _internal_has_drive_off_charger_response();
}
inline void GatewayWrapper::set_has_drive_off_charger_response() {
  _oneof_case_[0] = kDriveOffChargerResponse;
}
inline ::Anki::Vector::external_interface::DriveOffChargerResponse* GatewayWrapper::release_drive_off_charger_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.drive_off_charger_response)
  if (_internal_has_drive_off_charger_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::DriveOffChargerResponse* temp = oneof_message_type_.drive_off_charger_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.drive_off_charger_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::DriveOffChargerResponse& GatewayWrapper::_internal_drive_off_charger_response() const {
  return _internal_has_drive_off_charger_response()
      ? *oneof_message_type_.drive_off_charger_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::DriveOffChargerResponse*>(&::Anki::Vector::external_interface::_DriveOffChargerResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::DriveOffChargerResponse& GatewayWrapper::drive_off_charger_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.drive_off_charger_response)
  return _internal_drive_off_charger_response();
}
inline ::Anki::Vector::external_interface::DriveOffChargerResponse* GatewayWrapper::unsafe_arena_release_drive_off_charger_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.drive_off_charger_response)
  if (_internal_has_drive_off_charger_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::DriveOffChargerResponse* temp = oneof_message_type_.drive_off_charger_response_;
    oneof_message_type_.drive_off_charger_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_drive_off_charger_response(::Anki::Vector::external_interface::DriveOffChargerResponse* drive_off_charger_response) {
  clear_oneof_message_type();
  if (drive_off_charger_response) {
    set_has_drive_off_charger_response();
    oneof_message_type_.drive_off_charger_response_ = drive_off_charger_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_off_charger_response)
}
inline ::Anki::Vector::external_interface::DriveOffChargerResponse* GatewayWrapper::_internal_mutable_drive_off_charger_response() {
  if (!_internal_has_drive_off_charger_response()) {
    clear_oneof_message_type();
    set_has_drive_off_charger_response();
    oneof_message_type_.drive_off_charger_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::DriveOffChargerResponse >(GetArena());
  }
  return oneof_message_type_.drive_off_charger_response_;
}
inline ::Anki::Vector::external_interface::DriveOffChargerResponse* GatewayWrapper::mutable_drive_off_charger_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.drive_off_charger_response)
  return _internal_mutable_drive_off_charger_response();
}

// .Anki.Vector.external_interface.DriveOnChargerRequest drive_on_charger_request = 402;
inline bool GatewayWrapper::_internal_has_drive_on_charger_request() const {
  return oneof_message_type_case() == kDriveOnChargerRequest;
}
inline bool GatewayWrapper::has_drive_on_charger_request() const {
  return _internal_has_drive_on_charger_request();
}
inline void GatewayWrapper::set_has_drive_on_charger_request() {
  _oneof_case_[0] = kDriveOnChargerRequest;
}
inline ::Anki::Vector::external_interface::DriveOnChargerRequest* GatewayWrapper::release_drive_on_charger_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.drive_on_charger_request)
  if (_internal_has_drive_on_charger_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::DriveOnChargerRequest* temp = oneof_message_type_.drive_on_charger_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.drive_on_charger_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::DriveOnChargerRequest& GatewayWrapper::_internal_drive_on_charger_request() const {
  return _internal_has_drive_on_charger_request()
      ? *oneof_message_type_.drive_on_charger_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::DriveOnChargerRequest*>(&::Anki::Vector::external_interface::_DriveOnChargerRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::DriveOnChargerRequest& GatewayWrapper::drive_on_charger_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.drive_on_charger_request)
  return _internal_drive_on_charger_request();
}
inline ::Anki::Vector::external_interface::DriveOnChargerRequest* GatewayWrapper::unsafe_arena_release_drive_on_charger_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.drive_on_charger_request)
  if (_internal_has_drive_on_charger_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::DriveOnChargerRequest* temp = oneof_message_type_.drive_on_charger_request_;
    oneof_message_type_.drive_on_charger_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_drive_on_charger_request(::Anki::Vector::external_interface::DriveOnChargerRequest* drive_on_charger_request) {
  clear_oneof_message_type();
  if (drive_on_charger_request) {
    set_has_drive_on_charger_request();
    oneof_message_type_.drive_on_charger_request_ = drive_on_charger_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_on_charger_request)
}
inline ::Anki::Vector::external_interface::DriveOnChargerRequest* GatewayWrapper::_internal_mutable_drive_on_charger_request() {
  if (!_internal_has_drive_on_charger_request()) {
    clear_oneof_message_type();
    set_has_drive_on_charger_request();
    oneof_message_type_.drive_on_charger_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::DriveOnChargerRequest >(GetArena());
  }
  return oneof_message_type_.drive_on_charger_request_;
}
inline ::Anki::Vector::external_interface::DriveOnChargerRequest* GatewayWrapper::mutable_drive_on_charger_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.drive_on_charger_request)
  return _internal_mutable_drive_on_charger_request();
}

// .Anki.Vector.external_interface.DriveOnChargerResponse drive_on_charger_response = 403;
inline bool GatewayWrapper::_internal_has_drive_on_charger_response() const {
  return oneof_message_type_case() == kDriveOnChargerResponse;
}
inline bool GatewayWrapper::has_drive_on_charger_response() const {
  return _internal_has_drive_on_charger_response();
}
inline void GatewayWrapper::set_has_drive_on_charger_response() {
  _oneof_case_[0] = kDriveOnChargerResponse;
}
inline ::Anki::Vector::external_interface::DriveOnChargerResponse* GatewayWrapper::release_drive_on_charger_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.drive_on_charger_response)
  if (_internal_has_drive_on_charger_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::DriveOnChargerResponse* temp = oneof_message_type_.drive_on_charger_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.drive_on_charger_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::DriveOnChargerResponse& GatewayWrapper::_internal_drive_on_charger_response() const {
  return _internal_has_drive_on_charger_response()
      ? *oneof_message_type_.drive_on_charger_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::DriveOnChargerResponse*>(&::Anki::Vector::external_interface::_DriveOnChargerResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::DriveOnChargerResponse& GatewayWrapper::drive_on_charger_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.drive_on_charger_response)
  return _internal_drive_on_charger_response();
}
inline ::Anki::Vector::external_interface::DriveOnChargerResponse* GatewayWrapper::unsafe_arena_release_drive_on_charger_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.drive_on_charger_response)
  if (_internal_has_drive_on_charger_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::DriveOnChargerResponse* temp = oneof_message_type_.drive_on_charger_response_;
    oneof_message_type_.drive_on_charger_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_drive_on_charger_response(::Anki::Vector::external_interface::DriveOnChargerResponse* drive_on_charger_response) {
  clear_oneof_message_type();
  if (drive_on_charger_response) {
    set_has_drive_on_charger_response();
    oneof_message_type_.drive_on_charger_response_ = drive_on_charger_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_on_charger_response)
}
inline ::Anki::Vector::external_interface::DriveOnChargerResponse* GatewayWrapper::_internal_mutable_drive_on_charger_response() {
  if (!_internal_has_drive_on_charger_response()) {
    clear_oneof_message_type();
    set_has_drive_on_charger_response();
    oneof_message_type_.drive_on_charger_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::DriveOnChargerResponse >(GetArena());
  }
  return oneof_message_type_.drive_on_charger_response_;
}
inline ::Anki::Vector::external_interface::DriveOnChargerResponse* GatewayWrapper::mutable_drive_on_charger_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.drive_on_charger_response)
  return _internal_mutable_drive_on_charger_response();
}

// .Anki.Vector.external_interface.FindFacesRequest find_faces_request = 404;
inline bool GatewayWrapper::_internal_has_find_faces_request() const {
  return oneof_message_type_case() == kFindFacesRequest;
}
inline bool GatewayWrapper::has_find_faces_request() const {
  return _internal_has_find_faces_request();
}
inline void GatewayWrapper::set_has_find_faces_request() {
  _oneof_case_[0] = kFindFacesRequest;
}
inline ::Anki::Vector::external_interface::FindFacesRequest* GatewayWrapper::release_find_faces_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.find_faces_request)
  if (_internal_has_find_faces_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::FindFacesRequest* temp = oneof_message_type_.find_faces_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.find_faces_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::FindFacesRequest& GatewayWrapper::_internal_find_faces_request() const {
  return _internal_has_find_faces_request()
      ? *oneof_message_type_.find_faces_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::FindFacesRequest*>(&::Anki::Vector::external_interface::_FindFacesRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::FindFacesRequest& GatewayWrapper::find_faces_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.find_faces_request)
  return _internal_find_faces_request();
}
inline ::Anki::Vector::external_interface::FindFacesRequest* GatewayWrapper::unsafe_arena_release_find_faces_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.find_faces_request)
  if (_internal_has_find_faces_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::FindFacesRequest* temp = oneof_message_type_.find_faces_request_;
    oneof_message_type_.find_faces_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_find_faces_request(::Anki::Vector::external_interface::FindFacesRequest* find_faces_request) {
  clear_oneof_message_type();
  if (find_faces_request) {
    set_has_find_faces_request();
    oneof_message_type_.find_faces_request_ = find_faces_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.find_faces_request)
}
inline ::Anki::Vector::external_interface::FindFacesRequest* GatewayWrapper::_internal_mutable_find_faces_request() {
  if (!_internal_has_find_faces_request()) {
    clear_oneof_message_type();
    set_has_find_faces_request();
    oneof_message_type_.find_faces_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::FindFacesRequest >(GetArena());
  }
  return oneof_message_type_.find_faces_request_;
}
inline ::Anki::Vector::external_interface::FindFacesRequest* GatewayWrapper::mutable_find_faces_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.find_faces_request)
  return _internal_mutable_find_faces_request();
}

// .Anki.Vector.external_interface.FindFacesResponse find_faces_response = 405;
inline bool GatewayWrapper::_internal_has_find_faces_response() const {
  return oneof_message_type_case() == kFindFacesResponse;
}
inline bool GatewayWrapper::has_find_faces_response() const {
  return _internal_has_find_faces_response();
}
inline void GatewayWrapper::set_has_find_faces_response() {
  _oneof_case_[0] = kFindFacesResponse;
}
inline ::Anki::Vector::external_interface::FindFacesResponse* GatewayWrapper::release_find_faces_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.find_faces_response)
  if (_internal_has_find_faces_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::FindFacesResponse* temp = oneof_message_type_.find_faces_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.find_faces_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::FindFacesResponse& GatewayWrapper::_internal_find_faces_response() const {
  return _internal_has_find_faces_response()
      ? *oneof_message_type_.find_faces_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::FindFacesResponse*>(&::Anki::Vector::external_interface::_FindFacesResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::FindFacesResponse& GatewayWrapper::find_faces_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.find_faces_response)
  return _internal_find_faces_response();
}
inline ::Anki::Vector::external_interface::FindFacesResponse* GatewayWrapper::unsafe_arena_release_find_faces_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.find_faces_response)
  if (_internal_has_find_faces_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::FindFacesResponse* temp = oneof_message_type_.find_faces_response_;
    oneof_message_type_.find_faces_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_find_faces_response(::Anki::Vector::external_interface::FindFacesResponse* find_faces_response) {
  clear_oneof_message_type();
  if (find_faces_response) {
    set_has_find_faces_response();
    oneof_message_type_.find_faces_response_ = find_faces_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.find_faces_response)
}
inline ::Anki::Vector::external_interface::FindFacesResponse* GatewayWrapper::_internal_mutable_find_faces_response() {
  if (!_internal_has_find_faces_response()) {
    clear_oneof_message_type();
    set_has_find_faces_response();
    oneof_message_type_.find_faces_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::FindFacesResponse >(GetArena());
  }
  return oneof_message_type_.find_faces_response_;
}
inline ::Anki::Vector::external_interface::FindFacesResponse* GatewayWrapper::mutable_find_faces_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.find_faces_response)
  return _internal_mutable_find_faces_response();
}

// .Anki.Vector.external_interface.LookAroundInPlaceRequest look_around_in_place_request = 406;
inline bool GatewayWrapper::_internal_has_look_around_in_place_request() const {
  return oneof_message_type_case() == kLookAroundInPlaceRequest;
}
inline bool GatewayWrapper::has_look_around_in_place_request() const {
  return _internal_has_look_around_in_place_request();
}
inline void GatewayWrapper::set_has_look_around_in_place_request() {
  _oneof_case_[0] = kLookAroundInPlaceRequest;
}
inline ::Anki::Vector::external_interface::LookAroundInPlaceRequest* GatewayWrapper::release_look_around_in_place_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.look_around_in_place_request)
  if (_internal_has_look_around_in_place_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::LookAroundInPlaceRequest* temp = oneof_message_type_.look_around_in_place_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.look_around_in_place_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::LookAroundInPlaceRequest& GatewayWrapper::_internal_look_around_in_place_request() const {
  return _internal_has_look_around_in_place_request()
      ? *oneof_message_type_.look_around_in_place_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::LookAroundInPlaceRequest*>(&::Anki::Vector::external_interface::_LookAroundInPlaceRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::LookAroundInPlaceRequest& GatewayWrapper::look_around_in_place_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.look_around_in_place_request)
  return _internal_look_around_in_place_request();
}
inline ::Anki::Vector::external_interface::LookAroundInPlaceRequest* GatewayWrapper::unsafe_arena_release_look_around_in_place_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.look_around_in_place_request)
  if (_internal_has_look_around_in_place_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::LookAroundInPlaceRequest* temp = oneof_message_type_.look_around_in_place_request_;
    oneof_message_type_.look_around_in_place_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_look_around_in_place_request(::Anki::Vector::external_interface::LookAroundInPlaceRequest* look_around_in_place_request) {
  clear_oneof_message_type();
  if (look_around_in_place_request) {
    set_has_look_around_in_place_request();
    oneof_message_type_.look_around_in_place_request_ = look_around_in_place_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.look_around_in_place_request)
}
inline ::Anki::Vector::external_interface::LookAroundInPlaceRequest* GatewayWrapper::_internal_mutable_look_around_in_place_request() {
  if (!_internal_has_look_around_in_place_request()) {
    clear_oneof_message_type();
    set_has_look_around_in_place_request();
    oneof_message_type_.look_around_in_place_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::LookAroundInPlaceRequest >(GetArena());
  }
  return oneof_message_type_.look_around_in_place_request_;
}
inline ::Anki::Vector::external_interface::LookAroundInPlaceRequest* GatewayWrapper::mutable_look_around_in_place_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.look_around_in_place_request)
  return _internal_mutable_look_around_in_place_request();
}

// .Anki.Vector.external_interface.LookAroundInPlaceResponse look_around_in_place_response = 407;
inline bool GatewayWrapper::_internal_has_look_around_in_place_response() const {
  return oneof_message_type_case() == kLookAroundInPlaceResponse;
}
inline bool GatewayWrapper::has_look_around_in_place_response() const {
  return _internal_has_look_around_in_place_response();
}
inline void GatewayWrapper::set_has_look_around_in_place_response() {
  _oneof_case_[0] = kLookAroundInPlaceResponse;
}
inline ::Anki::Vector::external_interface::LookAroundInPlaceResponse* GatewayWrapper::release_look_around_in_place_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.look_around_in_place_response)
  if (_internal_has_look_around_in_place_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::LookAroundInPlaceResponse* temp = oneof_message_type_.look_around_in_place_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.look_around_in_place_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::LookAroundInPlaceResponse& GatewayWrapper::_internal_look_around_in_place_response() const {
  return _internal_has_look_around_in_place_response()
      ? *oneof_message_type_.look_around_in_place_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::LookAroundInPlaceResponse*>(&::Anki::Vector::external_interface::_LookAroundInPlaceResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::LookAroundInPlaceResponse& GatewayWrapper::look_around_in_place_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.look_around_in_place_response)
  return _internal_look_around_in_place_response();
}
inline ::Anki::Vector::external_interface::LookAroundInPlaceResponse* GatewayWrapper::unsafe_arena_release_look_around_in_place_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.look_around_in_place_response)
  if (_internal_has_look_around_in_place_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::LookAroundInPlaceResponse* temp = oneof_message_type_.look_around_in_place_response_;
    oneof_message_type_.look_around_in_place_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_look_around_in_place_response(::Anki::Vector::external_interface::LookAroundInPlaceResponse* look_around_in_place_response) {
  clear_oneof_message_type();
  if (look_around_in_place_response) {
    set_has_look_around_in_place_response();
    oneof_message_type_.look_around_in_place_response_ = look_around_in_place_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.look_around_in_place_response)
}
inline ::Anki::Vector::external_interface::LookAroundInPlaceResponse* GatewayWrapper::_internal_mutable_look_around_in_place_response() {
  if (!_internal_has_look_around_in_place_response()) {
    clear_oneof_message_type();
    set_has_look_around_in_place_response();
    oneof_message_type_.look_around_in_place_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::LookAroundInPlaceResponse >(GetArena());
  }
  return oneof_message_type_.look_around_in_place_response_;
}
inline ::Anki::Vector::external_interface::LookAroundInPlaceResponse* GatewayWrapper::mutable_look_around_in_place_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.look_around_in_place_response)
  return _internal_mutable_look_around_in_place_response();
}

// .Anki.Vector.external_interface.RollBlockRequest roll_block_request = 408;
inline bool GatewayWrapper::_internal_has_roll_block_request() const {
  return oneof_message_type_case() == kRollBlockRequest;
}
inline bool GatewayWrapper::has_roll_block_request() const {
  return _internal_has_roll_block_request();
}
inline void GatewayWrapper::set_has_roll_block_request() {
  _oneof_case_[0] = kRollBlockRequest;
}
inline ::Anki::Vector::external_interface::RollBlockRequest* GatewayWrapper::release_roll_block_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.roll_block_request)
  if (_internal_has_roll_block_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::RollBlockRequest* temp = oneof_message_type_.roll_block_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.roll_block_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::RollBlockRequest& GatewayWrapper::_internal_roll_block_request() const {
  return _internal_has_roll_block_request()
      ? *oneof_message_type_.roll_block_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::RollBlockRequest*>(&::Anki::Vector::external_interface::_RollBlockRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::RollBlockRequest& GatewayWrapper::roll_block_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.roll_block_request)
  return _internal_roll_block_request();
}
inline ::Anki::Vector::external_interface::RollBlockRequest* GatewayWrapper::unsafe_arena_release_roll_block_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.roll_block_request)
  if (_internal_has_roll_block_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::RollBlockRequest* temp = oneof_message_type_.roll_block_request_;
    oneof_message_type_.roll_block_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_roll_block_request(::Anki::Vector::external_interface::RollBlockRequest* roll_block_request) {
  clear_oneof_message_type();
  if (roll_block_request) {
    set_has_roll_block_request();
    oneof_message_type_.roll_block_request_ = roll_block_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.roll_block_request)
}
inline ::Anki::Vector::external_interface::RollBlockRequest* GatewayWrapper::_internal_mutable_roll_block_request() {
  if (!_internal_has_roll_block_request()) {
    clear_oneof_message_type();
    set_has_roll_block_request();
    oneof_message_type_.roll_block_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::RollBlockRequest >(GetArena());
  }
  return oneof_message_type_.roll_block_request_;
}
inline ::Anki::Vector::external_interface::RollBlockRequest* GatewayWrapper::mutable_roll_block_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.roll_block_request)
  return _internal_mutable_roll_block_request();
}

// .Anki.Vector.external_interface.RollBlockResponse roll_block_response = 409;
inline bool GatewayWrapper::_internal_has_roll_block_response() const {
  return oneof_message_type_case() == kRollBlockResponse;
}
inline bool GatewayWrapper::has_roll_block_response() const {
  return _internal_has_roll_block_response();
}
inline void GatewayWrapper::set_has_roll_block_response() {
  _oneof_case_[0] = kRollBlockResponse;
}
inline ::Anki::Vector::external_interface::RollBlockResponse* GatewayWrapper::release_roll_block_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.roll_block_response)
  if (_internal_has_roll_block_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::RollBlockResponse* temp = oneof_message_type_.roll_block_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.roll_block_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::RollBlockResponse& GatewayWrapper::_internal_roll_block_response() const {
  return _internal_has_roll_block_response()
      ? *oneof_message_type_.roll_block_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::RollBlockResponse*>(&::Anki::Vector::external_interface::_RollBlockResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::RollBlockResponse& GatewayWrapper::roll_block_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.roll_block_response)
  return _internal_roll_block_response();
}
inline ::Anki::Vector::external_interface::RollBlockResponse* GatewayWrapper::unsafe_arena_release_roll_block_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.roll_block_response)
  if (_internal_has_roll_block_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::RollBlockResponse* temp = oneof_message_type_.roll_block_response_;
    oneof_message_type_.roll_block_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_roll_block_response(::Anki::Vector::external_interface::RollBlockResponse* roll_block_response) {
  clear_oneof_message_type();
  if (roll_block_response) {
    set_has_roll_block_response();
    oneof_message_type_.roll_block_response_ = roll_block_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.roll_block_response)
}
inline ::Anki::Vector::external_interface::RollBlockResponse* GatewayWrapper::_internal_mutable_roll_block_response() {
  if (!_internal_has_roll_block_response()) {
    clear_oneof_message_type();
    set_has_roll_block_response();
    oneof_message_type_.roll_block_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::RollBlockResponse >(GetArena());
  }
  return oneof_message_type_.roll_block_response_;
}
inline ::Anki::Vector::external_interface::RollBlockResponse* GatewayWrapper::mutable_roll_block_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.roll_block_response)
  return _internal_mutable_roll_block_response();
}

// .Anki.Vector.external_interface.EnrollFaceRequest enroll_face_request = 410;
inline bool GatewayWrapper::_internal_has_enroll_face_request() const {
  return oneof_message_type_case() == kEnrollFaceRequest;
}
inline bool GatewayWrapper::has_enroll_face_request() const {
  return _internal_has_enroll_face_request();
}
inline void GatewayWrapper::set_has_enroll_face_request() {
  _oneof_case_[0] = kEnrollFaceRequest;
}
inline ::Anki::Vector::external_interface::EnrollFaceRequest* GatewayWrapper::release_enroll_face_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.enroll_face_request)
  if (_internal_has_enroll_face_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::EnrollFaceRequest* temp = oneof_message_type_.enroll_face_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.enroll_face_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::EnrollFaceRequest& GatewayWrapper::_internal_enroll_face_request() const {
  return _internal_has_enroll_face_request()
      ? *oneof_message_type_.enroll_face_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::EnrollFaceRequest*>(&::Anki::Vector::external_interface::_EnrollFaceRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::EnrollFaceRequest& GatewayWrapper::enroll_face_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.enroll_face_request)
  return _internal_enroll_face_request();
}
inline ::Anki::Vector::external_interface::EnrollFaceRequest* GatewayWrapper::unsafe_arena_release_enroll_face_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.enroll_face_request)
  if (_internal_has_enroll_face_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::EnrollFaceRequest* temp = oneof_message_type_.enroll_face_request_;
    oneof_message_type_.enroll_face_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_enroll_face_request(::Anki::Vector::external_interface::EnrollFaceRequest* enroll_face_request) {
  clear_oneof_message_type();
  if (enroll_face_request) {
    set_has_enroll_face_request();
    oneof_message_type_.enroll_face_request_ = enroll_face_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enroll_face_request)
}
inline ::Anki::Vector::external_interface::EnrollFaceRequest* GatewayWrapper::_internal_mutable_enroll_face_request() {
  if (!_internal_has_enroll_face_request()) {
    clear_oneof_message_type();
    set_has_enroll_face_request();
    oneof_message_type_.enroll_face_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::EnrollFaceRequest >(GetArena());
  }
  return oneof_message_type_.enroll_face_request_;
}
inline ::Anki::Vector::external_interface::EnrollFaceRequest* GatewayWrapper::mutable_enroll_face_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.enroll_face_request)
  return _internal_mutable_enroll_face_request();
}

// .Anki.Vector.external_interface.EnrollFaceResponse enroll_face_response = 411;
inline bool GatewayWrapper::_internal_has_enroll_face_response() const {
  return oneof_message_type_case() == kEnrollFaceResponse;
}
inline bool GatewayWrapper::has_enroll_face_response() const {
  return _internal_has_enroll_face_response();
}
inline void GatewayWrapper::set_has_enroll_face_response() {
  _oneof_case_[0] = kEnrollFaceResponse;
}
inline ::Anki::Vector::external_interface::EnrollFaceResponse* GatewayWrapper::release_enroll_face_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.enroll_face_response)
  if (_internal_has_enroll_face_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::EnrollFaceResponse* temp = oneof_message_type_.enroll_face_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.enroll_face_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::EnrollFaceResponse& GatewayWrapper::_internal_enroll_face_response() const {
  return _internal_has_enroll_face_response()
      ? *oneof_message_type_.enroll_face_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::EnrollFaceResponse*>(&::Anki::Vector::external_interface::_EnrollFaceResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::EnrollFaceResponse& GatewayWrapper::enroll_face_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.enroll_face_response)
  return _internal_enroll_face_response();
}
inline ::Anki::Vector::external_interface::EnrollFaceResponse* GatewayWrapper::unsafe_arena_release_enroll_face_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.enroll_face_response)
  if (_internal_has_enroll_face_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::EnrollFaceResponse* temp = oneof_message_type_.enroll_face_response_;
    oneof_message_type_.enroll_face_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_enroll_face_response(::Anki::Vector::external_interface::EnrollFaceResponse* enroll_face_response) {
  clear_oneof_message_type();
  if (enroll_face_response) {
    set_has_enroll_face_response();
    oneof_message_type_.enroll_face_response_ = enroll_face_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enroll_face_response)
}
inline ::Anki::Vector::external_interface::EnrollFaceResponse* GatewayWrapper::_internal_mutable_enroll_face_response() {
  if (!_internal_has_enroll_face_response()) {
    clear_oneof_message_type();
    set_has_enroll_face_response();
    oneof_message_type_.enroll_face_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::EnrollFaceResponse >(GetArena());
  }
  return oneof_message_type_.enroll_face_response_;
}
inline ::Anki::Vector::external_interface::EnrollFaceResponse* GatewayWrapper::mutable_enroll_face_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.enroll_face_response)
  return _internal_mutable_enroll_face_response();
}

// .Anki.Vector.external_interface.SetFaceToEnrollRequest set_face_to_enroll_request = 412;
inline bool GatewayWrapper::_internal_has_set_face_to_enroll_request() const {
  return oneof_message_type_case() == kSetFaceToEnrollRequest;
}
inline bool GatewayWrapper::has_set_face_to_enroll_request() const {
  return _internal_has_set_face_to_enroll_request();
}
inline void GatewayWrapper::set_has_set_face_to_enroll_request() {
  _oneof_case_[0] = kSetFaceToEnrollRequest;
}
inline ::Anki::Vector::external_interface::SetFaceToEnrollRequest* GatewayWrapper::release_set_face_to_enroll_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.set_face_to_enroll_request)
  if (_internal_has_set_face_to_enroll_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SetFaceToEnrollRequest* temp = oneof_message_type_.set_face_to_enroll_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.set_face_to_enroll_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SetFaceToEnrollRequest& GatewayWrapper::_internal_set_face_to_enroll_request() const {
  return _internal_has_set_face_to_enroll_request()
      ? *oneof_message_type_.set_face_to_enroll_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SetFaceToEnrollRequest*>(&::Anki::Vector::external_interface::_SetFaceToEnrollRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::SetFaceToEnrollRequest& GatewayWrapper::set_face_to_enroll_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.set_face_to_enroll_request)
  return _internal_set_face_to_enroll_request();
}
inline ::Anki::Vector::external_interface::SetFaceToEnrollRequest* GatewayWrapper::unsafe_arena_release_set_face_to_enroll_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.set_face_to_enroll_request)
  if (_internal_has_set_face_to_enroll_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SetFaceToEnrollRequest* temp = oneof_message_type_.set_face_to_enroll_request_;
    oneof_message_type_.set_face_to_enroll_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_set_face_to_enroll_request(::Anki::Vector::external_interface::SetFaceToEnrollRequest* set_face_to_enroll_request) {
  clear_oneof_message_type();
  if (set_face_to_enroll_request) {
    set_has_set_face_to_enroll_request();
    oneof_message_type_.set_face_to_enroll_request_ = set_face_to_enroll_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_face_to_enroll_request)
}
inline ::Anki::Vector::external_interface::SetFaceToEnrollRequest* GatewayWrapper::_internal_mutable_set_face_to_enroll_request() {
  if (!_internal_has_set_face_to_enroll_request()) {
    clear_oneof_message_type();
    set_has_set_face_to_enroll_request();
    oneof_message_type_.set_face_to_enroll_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SetFaceToEnrollRequest >(GetArena());
  }
  return oneof_message_type_.set_face_to_enroll_request_;
}
inline ::Anki::Vector::external_interface::SetFaceToEnrollRequest* GatewayWrapper::mutable_set_face_to_enroll_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.set_face_to_enroll_request)
  return _internal_mutable_set_face_to_enroll_request();
}

// .Anki.Vector.external_interface.SetFaceToEnrollResponse set_face_to_enroll_response = 413;
inline bool GatewayWrapper::_internal_has_set_face_to_enroll_response() const {
  return oneof_message_type_case() == kSetFaceToEnrollResponse;
}
inline bool GatewayWrapper::has_set_face_to_enroll_response() const {
  return _internal_has_set_face_to_enroll_response();
}
inline void GatewayWrapper::set_has_set_face_to_enroll_response() {
  _oneof_case_[0] = kSetFaceToEnrollResponse;
}
inline ::Anki::Vector::external_interface::SetFaceToEnrollResponse* GatewayWrapper::release_set_face_to_enroll_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.set_face_to_enroll_response)
  if (_internal_has_set_face_to_enroll_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SetFaceToEnrollResponse* temp = oneof_message_type_.set_face_to_enroll_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.set_face_to_enroll_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SetFaceToEnrollResponse& GatewayWrapper::_internal_set_face_to_enroll_response() const {
  return _internal_has_set_face_to_enroll_response()
      ? *oneof_message_type_.set_face_to_enroll_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SetFaceToEnrollResponse*>(&::Anki::Vector::external_interface::_SetFaceToEnrollResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::SetFaceToEnrollResponse& GatewayWrapper::set_face_to_enroll_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.set_face_to_enroll_response)
  return _internal_set_face_to_enroll_response();
}
inline ::Anki::Vector::external_interface::SetFaceToEnrollResponse* GatewayWrapper::unsafe_arena_release_set_face_to_enroll_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.set_face_to_enroll_response)
  if (_internal_has_set_face_to_enroll_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SetFaceToEnrollResponse* temp = oneof_message_type_.set_face_to_enroll_response_;
    oneof_message_type_.set_face_to_enroll_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_set_face_to_enroll_response(::Anki::Vector::external_interface::SetFaceToEnrollResponse* set_face_to_enroll_response) {
  clear_oneof_message_type();
  if (set_face_to_enroll_response) {
    set_has_set_face_to_enroll_response();
    oneof_message_type_.set_face_to_enroll_response_ = set_face_to_enroll_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_face_to_enroll_response)
}
inline ::Anki::Vector::external_interface::SetFaceToEnrollResponse* GatewayWrapper::_internal_mutable_set_face_to_enroll_response() {
  if (!_internal_has_set_face_to_enroll_response()) {
    clear_oneof_message_type();
    set_has_set_face_to_enroll_response();
    oneof_message_type_.set_face_to_enroll_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SetFaceToEnrollResponse >(GetArena());
  }
  return oneof_message_type_.set_face_to_enroll_response_;
}
inline ::Anki::Vector::external_interface::SetFaceToEnrollResponse* GatewayWrapper::mutable_set_face_to_enroll_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.set_face_to_enroll_response)
  return _internal_mutable_set_face_to_enroll_response();
}

// .Anki.Vector.external_interface.CancelBehaviorRequest cancel_behavior_request = 414;
inline bool GatewayWrapper::_internal_has_cancel_behavior_request() const {
  return oneof_message_type_case() == kCancelBehaviorRequest;
}
inline bool GatewayWrapper::has_cancel_behavior_request() const {
  return _internal_has_cancel_behavior_request();
}
inline void GatewayWrapper::set_has_cancel_behavior_request() {
  _oneof_case_[0] = kCancelBehaviorRequest;
}
inline ::Anki::Vector::external_interface::CancelBehaviorRequest* GatewayWrapper::release_cancel_behavior_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.cancel_behavior_request)
  if (_internal_has_cancel_behavior_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::CancelBehaviorRequest* temp = oneof_message_type_.cancel_behavior_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.cancel_behavior_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CancelBehaviorRequest& GatewayWrapper::_internal_cancel_behavior_request() const {
  return _internal_has_cancel_behavior_request()
      ? *oneof_message_type_.cancel_behavior_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CancelBehaviorRequest*>(&::Anki::Vector::external_interface::_CancelBehaviorRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::CancelBehaviorRequest& GatewayWrapper::cancel_behavior_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.cancel_behavior_request)
  return _internal_cancel_behavior_request();
}
inline ::Anki::Vector::external_interface::CancelBehaviorRequest* GatewayWrapper::unsafe_arena_release_cancel_behavior_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.cancel_behavior_request)
  if (_internal_has_cancel_behavior_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::CancelBehaviorRequest* temp = oneof_message_type_.cancel_behavior_request_;
    oneof_message_type_.cancel_behavior_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_cancel_behavior_request(::Anki::Vector::external_interface::CancelBehaviorRequest* cancel_behavior_request) {
  clear_oneof_message_type();
  if (cancel_behavior_request) {
    set_has_cancel_behavior_request();
    oneof_message_type_.cancel_behavior_request_ = cancel_behavior_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.cancel_behavior_request)
}
inline ::Anki::Vector::external_interface::CancelBehaviorRequest* GatewayWrapper::_internal_mutable_cancel_behavior_request() {
  if (!_internal_has_cancel_behavior_request()) {
    clear_oneof_message_type();
    set_has_cancel_behavior_request();
    oneof_message_type_.cancel_behavior_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CancelBehaviorRequest >(GetArena());
  }
  return oneof_message_type_.cancel_behavior_request_;
}
inline ::Anki::Vector::external_interface::CancelBehaviorRequest* GatewayWrapper::mutable_cancel_behavior_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.cancel_behavior_request)
  return _internal_mutable_cancel_behavior_request();
}

// .Anki.Vector.external_interface.CancelBehaviorResponse cancel_behavior_response = 415;
inline bool GatewayWrapper::_internal_has_cancel_behavior_response() const {
  return oneof_message_type_case() == kCancelBehaviorResponse;
}
inline bool GatewayWrapper::has_cancel_behavior_response() const {
  return _internal_has_cancel_behavior_response();
}
inline void GatewayWrapper::set_has_cancel_behavior_response() {
  _oneof_case_[0] = kCancelBehaviorResponse;
}
inline ::Anki::Vector::external_interface::CancelBehaviorResponse* GatewayWrapper::release_cancel_behavior_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.cancel_behavior_response)
  if (_internal_has_cancel_behavior_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::CancelBehaviorResponse* temp = oneof_message_type_.cancel_behavior_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.cancel_behavior_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CancelBehaviorResponse& GatewayWrapper::_internal_cancel_behavior_response() const {
  return _internal_has_cancel_behavior_response()
      ? *oneof_message_type_.cancel_behavior_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CancelBehaviorResponse*>(&::Anki::Vector::external_interface::_CancelBehaviorResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::CancelBehaviorResponse& GatewayWrapper::cancel_behavior_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.cancel_behavior_response)
  return _internal_cancel_behavior_response();
}
inline ::Anki::Vector::external_interface::CancelBehaviorResponse* GatewayWrapper::unsafe_arena_release_cancel_behavior_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.cancel_behavior_response)
  if (_internal_has_cancel_behavior_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::CancelBehaviorResponse* temp = oneof_message_type_.cancel_behavior_response_;
    oneof_message_type_.cancel_behavior_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_cancel_behavior_response(::Anki::Vector::external_interface::CancelBehaviorResponse* cancel_behavior_response) {
  clear_oneof_message_type();
  if (cancel_behavior_response) {
    set_has_cancel_behavior_response();
    oneof_message_type_.cancel_behavior_response_ = cancel_behavior_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.cancel_behavior_response)
}
inline ::Anki::Vector::external_interface::CancelBehaviorResponse* GatewayWrapper::_internal_mutable_cancel_behavior_response() {
  if (!_internal_has_cancel_behavior_response()) {
    clear_oneof_message_type();
    set_has_cancel_behavior_response();
    oneof_message_type_.cancel_behavior_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CancelBehaviorResponse >(GetArena());
  }
  return oneof_message_type_.cancel_behavior_response_;
}
inline ::Anki::Vector::external_interface::CancelBehaviorResponse* GatewayWrapper::mutable_cancel_behavior_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.cancel_behavior_response)
  return _internal_mutable_cancel_behavior_response();
}

// .Anki.Vector.external_interface.TurnInPlaceRequest turn_in_place_request = 500;
inline bool GatewayWrapper::_internal_has_turn_in_place_request() const {
  return oneof_message_type_case() == kTurnInPlaceRequest;
}
inline bool GatewayWrapper::has_turn_in_place_request() const {
  return _internal_has_turn_in_place_request();
}
inline void GatewayWrapper::set_has_turn_in_place_request() {
  _oneof_case_[0] = kTurnInPlaceRequest;
}
inline ::Anki::Vector::external_interface::TurnInPlaceRequest* GatewayWrapper::release_turn_in_place_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.turn_in_place_request)
  if (_internal_has_turn_in_place_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::TurnInPlaceRequest* temp = oneof_message_type_.turn_in_place_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.turn_in_place_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::TurnInPlaceRequest& GatewayWrapper::_internal_turn_in_place_request() const {
  return _internal_has_turn_in_place_request()
      ? *oneof_message_type_.turn_in_place_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::TurnInPlaceRequest*>(&::Anki::Vector::external_interface::_TurnInPlaceRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::TurnInPlaceRequest& GatewayWrapper::turn_in_place_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.turn_in_place_request)
  return _internal_turn_in_place_request();
}
inline ::Anki::Vector::external_interface::TurnInPlaceRequest* GatewayWrapper::unsafe_arena_release_turn_in_place_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.turn_in_place_request)
  if (_internal_has_turn_in_place_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::TurnInPlaceRequest* temp = oneof_message_type_.turn_in_place_request_;
    oneof_message_type_.turn_in_place_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_turn_in_place_request(::Anki::Vector::external_interface::TurnInPlaceRequest* turn_in_place_request) {
  clear_oneof_message_type();
  if (turn_in_place_request) {
    set_has_turn_in_place_request();
    oneof_message_type_.turn_in_place_request_ = turn_in_place_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.turn_in_place_request)
}
inline ::Anki::Vector::external_interface::TurnInPlaceRequest* GatewayWrapper::_internal_mutable_turn_in_place_request() {
  if (!_internal_has_turn_in_place_request()) {
    clear_oneof_message_type();
    set_has_turn_in_place_request();
    oneof_message_type_.turn_in_place_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::TurnInPlaceRequest >(GetArena());
  }
  return oneof_message_type_.turn_in_place_request_;
}
inline ::Anki::Vector::external_interface::TurnInPlaceRequest* GatewayWrapper::mutable_turn_in_place_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.turn_in_place_request)
  return _internal_mutable_turn_in_place_request();
}

// .Anki.Vector.external_interface.TurnInPlaceResponse turn_in_place_response = 501;
inline bool GatewayWrapper::_internal_has_turn_in_place_response() const {
  return oneof_message_type_case() == kTurnInPlaceResponse;
}
inline bool GatewayWrapper::has_turn_in_place_response() const {
  return _internal_has_turn_in_place_response();
}
inline void GatewayWrapper::set_has_turn_in_place_response() {
  _oneof_case_[0] = kTurnInPlaceResponse;
}
inline ::Anki::Vector::external_interface::TurnInPlaceResponse* GatewayWrapper::release_turn_in_place_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.turn_in_place_response)
  if (_internal_has_turn_in_place_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::TurnInPlaceResponse* temp = oneof_message_type_.turn_in_place_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.turn_in_place_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::TurnInPlaceResponse& GatewayWrapper::_internal_turn_in_place_response() const {
  return _internal_has_turn_in_place_response()
      ? *oneof_message_type_.turn_in_place_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::TurnInPlaceResponse*>(&::Anki::Vector::external_interface::_TurnInPlaceResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::TurnInPlaceResponse& GatewayWrapper::turn_in_place_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.turn_in_place_response)
  return _internal_turn_in_place_response();
}
inline ::Anki::Vector::external_interface::TurnInPlaceResponse* GatewayWrapper::unsafe_arena_release_turn_in_place_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.turn_in_place_response)
  if (_internal_has_turn_in_place_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::TurnInPlaceResponse* temp = oneof_message_type_.turn_in_place_response_;
    oneof_message_type_.turn_in_place_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_turn_in_place_response(::Anki::Vector::external_interface::TurnInPlaceResponse* turn_in_place_response) {
  clear_oneof_message_type();
  if (turn_in_place_response) {
    set_has_turn_in_place_response();
    oneof_message_type_.turn_in_place_response_ = turn_in_place_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.turn_in_place_response)
}
inline ::Anki::Vector::external_interface::TurnInPlaceResponse* GatewayWrapper::_internal_mutable_turn_in_place_response() {
  if (!_internal_has_turn_in_place_response()) {
    clear_oneof_message_type();
    set_has_turn_in_place_response();
    oneof_message_type_.turn_in_place_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::TurnInPlaceResponse >(GetArena());
  }
  return oneof_message_type_.turn_in_place_response_;
}
inline ::Anki::Vector::external_interface::TurnInPlaceResponse* GatewayWrapper::mutable_turn_in_place_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.turn_in_place_response)
  return _internal_mutable_turn_in_place_response();
}

// .Anki.Vector.external_interface.DriveStraightRequest drive_straight_request = 502;
inline bool GatewayWrapper::_internal_has_drive_straight_request() const {
  return oneof_message_type_case() == kDriveStraightRequest;
}
inline bool GatewayWrapper::has_drive_straight_request() const {
  return _internal_has_drive_straight_request();
}
inline void GatewayWrapper::set_has_drive_straight_request() {
  _oneof_case_[0] = kDriveStraightRequest;
}
inline ::Anki::Vector::external_interface::DriveStraightRequest* GatewayWrapper::release_drive_straight_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.drive_straight_request)
  if (_internal_has_drive_straight_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::DriveStraightRequest* temp = oneof_message_type_.drive_straight_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.drive_straight_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::DriveStraightRequest& GatewayWrapper::_internal_drive_straight_request() const {
  return _internal_has_drive_straight_request()
      ? *oneof_message_type_.drive_straight_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::DriveStraightRequest*>(&::Anki::Vector::external_interface::_DriveStraightRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::DriveStraightRequest& GatewayWrapper::drive_straight_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.drive_straight_request)
  return _internal_drive_straight_request();
}
inline ::Anki::Vector::external_interface::DriveStraightRequest* GatewayWrapper::unsafe_arena_release_drive_straight_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.drive_straight_request)
  if (_internal_has_drive_straight_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::DriveStraightRequest* temp = oneof_message_type_.drive_straight_request_;
    oneof_message_type_.drive_straight_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_drive_straight_request(::Anki::Vector::external_interface::DriveStraightRequest* drive_straight_request) {
  clear_oneof_message_type();
  if (drive_straight_request) {
    set_has_drive_straight_request();
    oneof_message_type_.drive_straight_request_ = drive_straight_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_straight_request)
}
inline ::Anki::Vector::external_interface::DriveStraightRequest* GatewayWrapper::_internal_mutable_drive_straight_request() {
  if (!_internal_has_drive_straight_request()) {
    clear_oneof_message_type();
    set_has_drive_straight_request();
    oneof_message_type_.drive_straight_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::DriveStraightRequest >(GetArena());
  }
  return oneof_message_type_.drive_straight_request_;
}
inline ::Anki::Vector::external_interface::DriveStraightRequest* GatewayWrapper::mutable_drive_straight_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.drive_straight_request)
  return _internal_mutable_drive_straight_request();
}

// .Anki.Vector.external_interface.DriveStraightResponse drive_straight_response = 503;
inline bool GatewayWrapper::_internal_has_drive_straight_response() const {
  return oneof_message_type_case() == kDriveStraightResponse;
}
inline bool GatewayWrapper::has_drive_straight_response() const {
  return _internal_has_drive_straight_response();
}
inline void GatewayWrapper::set_has_drive_straight_response() {
  _oneof_case_[0] = kDriveStraightResponse;
}
inline ::Anki::Vector::external_interface::DriveStraightResponse* GatewayWrapper::release_drive_straight_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.drive_straight_response)
  if (_internal_has_drive_straight_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::DriveStraightResponse* temp = oneof_message_type_.drive_straight_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.drive_straight_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::DriveStraightResponse& GatewayWrapper::_internal_drive_straight_response() const {
  return _internal_has_drive_straight_response()
      ? *oneof_message_type_.drive_straight_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::DriveStraightResponse*>(&::Anki::Vector::external_interface::_DriveStraightResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::DriveStraightResponse& GatewayWrapper::drive_straight_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.drive_straight_response)
  return _internal_drive_straight_response();
}
inline ::Anki::Vector::external_interface::DriveStraightResponse* GatewayWrapper::unsafe_arena_release_drive_straight_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.drive_straight_response)
  if (_internal_has_drive_straight_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::DriveStraightResponse* temp = oneof_message_type_.drive_straight_response_;
    oneof_message_type_.drive_straight_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_drive_straight_response(::Anki::Vector::external_interface::DriveStraightResponse* drive_straight_response) {
  clear_oneof_message_type();
  if (drive_straight_response) {
    set_has_drive_straight_response();
    oneof_message_type_.drive_straight_response_ = drive_straight_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_straight_response)
}
inline ::Anki::Vector::external_interface::DriveStraightResponse* GatewayWrapper::_internal_mutable_drive_straight_response() {
  if (!_internal_has_drive_straight_response()) {
    clear_oneof_message_type();
    set_has_drive_straight_response();
    oneof_message_type_.drive_straight_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::DriveStraightResponse >(GetArena());
  }
  return oneof_message_type_.drive_straight_response_;
}
inline ::Anki::Vector::external_interface::DriveStraightResponse* GatewayWrapper::mutable_drive_straight_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.drive_straight_response)
  return _internal_mutable_drive_straight_response();
}

// .Anki.Vector.external_interface.SetHeadAngleRequest set_head_angle_request = 504;
inline bool GatewayWrapper::_internal_has_set_head_angle_request() const {
  return oneof_message_type_case() == kSetHeadAngleRequest;
}
inline bool GatewayWrapper::has_set_head_angle_request() const {
  return _internal_has_set_head_angle_request();
}
inline void GatewayWrapper::set_has_set_head_angle_request() {
  _oneof_case_[0] = kSetHeadAngleRequest;
}
inline ::Anki::Vector::external_interface::SetHeadAngleRequest* GatewayWrapper::release_set_head_angle_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.set_head_angle_request)
  if (_internal_has_set_head_angle_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SetHeadAngleRequest* temp = oneof_message_type_.set_head_angle_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.set_head_angle_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SetHeadAngleRequest& GatewayWrapper::_internal_set_head_angle_request() const {
  return _internal_has_set_head_angle_request()
      ? *oneof_message_type_.set_head_angle_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SetHeadAngleRequest*>(&::Anki::Vector::external_interface::_SetHeadAngleRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::SetHeadAngleRequest& GatewayWrapper::set_head_angle_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.set_head_angle_request)
  return _internal_set_head_angle_request();
}
inline ::Anki::Vector::external_interface::SetHeadAngleRequest* GatewayWrapper::unsafe_arena_release_set_head_angle_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.set_head_angle_request)
  if (_internal_has_set_head_angle_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SetHeadAngleRequest* temp = oneof_message_type_.set_head_angle_request_;
    oneof_message_type_.set_head_angle_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_set_head_angle_request(::Anki::Vector::external_interface::SetHeadAngleRequest* set_head_angle_request) {
  clear_oneof_message_type();
  if (set_head_angle_request) {
    set_has_set_head_angle_request();
    oneof_message_type_.set_head_angle_request_ = set_head_angle_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_head_angle_request)
}
inline ::Anki::Vector::external_interface::SetHeadAngleRequest* GatewayWrapper::_internal_mutable_set_head_angle_request() {
  if (!_internal_has_set_head_angle_request()) {
    clear_oneof_message_type();
    set_has_set_head_angle_request();
    oneof_message_type_.set_head_angle_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SetHeadAngleRequest >(GetArena());
  }
  return oneof_message_type_.set_head_angle_request_;
}
inline ::Anki::Vector::external_interface::SetHeadAngleRequest* GatewayWrapper::mutable_set_head_angle_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.set_head_angle_request)
  return _internal_mutable_set_head_angle_request();
}

// .Anki.Vector.external_interface.SetHeadAngleResponse set_head_angle_response = 505;
inline bool GatewayWrapper::_internal_has_set_head_angle_response() const {
  return oneof_message_type_case() == kSetHeadAngleResponse;
}
inline bool GatewayWrapper::has_set_head_angle_response() const {
  return _internal_has_set_head_angle_response();
}
inline void GatewayWrapper::set_has_set_head_angle_response() {
  _oneof_case_[0] = kSetHeadAngleResponse;
}
inline ::Anki::Vector::external_interface::SetHeadAngleResponse* GatewayWrapper::release_set_head_angle_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.set_head_angle_response)
  if (_internal_has_set_head_angle_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SetHeadAngleResponse* temp = oneof_message_type_.set_head_angle_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.set_head_angle_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SetHeadAngleResponse& GatewayWrapper::_internal_set_head_angle_response() const {
  return _internal_has_set_head_angle_response()
      ? *oneof_message_type_.set_head_angle_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SetHeadAngleResponse*>(&::Anki::Vector::external_interface::_SetHeadAngleResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::SetHeadAngleResponse& GatewayWrapper::set_head_angle_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.set_head_angle_response)
  return _internal_set_head_angle_response();
}
inline ::Anki::Vector::external_interface::SetHeadAngleResponse* GatewayWrapper::unsafe_arena_release_set_head_angle_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.set_head_angle_response)
  if (_internal_has_set_head_angle_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SetHeadAngleResponse* temp = oneof_message_type_.set_head_angle_response_;
    oneof_message_type_.set_head_angle_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_set_head_angle_response(::Anki::Vector::external_interface::SetHeadAngleResponse* set_head_angle_response) {
  clear_oneof_message_type();
  if (set_head_angle_response) {
    set_has_set_head_angle_response();
    oneof_message_type_.set_head_angle_response_ = set_head_angle_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_head_angle_response)
}
inline ::Anki::Vector::external_interface::SetHeadAngleResponse* GatewayWrapper::_internal_mutable_set_head_angle_response() {
  if (!_internal_has_set_head_angle_response()) {
    clear_oneof_message_type();
    set_has_set_head_angle_response();
    oneof_message_type_.set_head_angle_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SetHeadAngleResponse >(GetArena());
  }
  return oneof_message_type_.set_head_angle_response_;
}
inline ::Anki::Vector::external_interface::SetHeadAngleResponse* GatewayWrapper::mutable_set_head_angle_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.set_head_angle_response)
  return _internal_mutable_set_head_angle_response();
}

// .Anki.Vector.external_interface.SetLiftHeightRequest set_lift_height_request = 506;
inline bool GatewayWrapper::_internal_has_set_lift_height_request() const {
  return oneof_message_type_case() == kSetLiftHeightRequest;
}
inline bool GatewayWrapper::has_set_lift_height_request() const {
  return _internal_has_set_lift_height_request();
}
inline void GatewayWrapper::set_has_set_lift_height_request() {
  _oneof_case_[0] = kSetLiftHeightRequest;
}
inline ::Anki::Vector::external_interface::SetLiftHeightRequest* GatewayWrapper::release_set_lift_height_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.set_lift_height_request)
  if (_internal_has_set_lift_height_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SetLiftHeightRequest* temp = oneof_message_type_.set_lift_height_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.set_lift_height_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SetLiftHeightRequest& GatewayWrapper::_internal_set_lift_height_request() const {
  return _internal_has_set_lift_height_request()
      ? *oneof_message_type_.set_lift_height_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SetLiftHeightRequest*>(&::Anki::Vector::external_interface::_SetLiftHeightRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::SetLiftHeightRequest& GatewayWrapper::set_lift_height_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.set_lift_height_request)
  return _internal_set_lift_height_request();
}
inline ::Anki::Vector::external_interface::SetLiftHeightRequest* GatewayWrapper::unsafe_arena_release_set_lift_height_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.set_lift_height_request)
  if (_internal_has_set_lift_height_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SetLiftHeightRequest* temp = oneof_message_type_.set_lift_height_request_;
    oneof_message_type_.set_lift_height_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_set_lift_height_request(::Anki::Vector::external_interface::SetLiftHeightRequest* set_lift_height_request) {
  clear_oneof_message_type();
  if (set_lift_height_request) {
    set_has_set_lift_height_request();
    oneof_message_type_.set_lift_height_request_ = set_lift_height_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_lift_height_request)
}
inline ::Anki::Vector::external_interface::SetLiftHeightRequest* GatewayWrapper::_internal_mutable_set_lift_height_request() {
  if (!_internal_has_set_lift_height_request()) {
    clear_oneof_message_type();
    set_has_set_lift_height_request();
    oneof_message_type_.set_lift_height_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SetLiftHeightRequest >(GetArena());
  }
  return oneof_message_type_.set_lift_height_request_;
}
inline ::Anki::Vector::external_interface::SetLiftHeightRequest* GatewayWrapper::mutable_set_lift_height_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.set_lift_height_request)
  return _internal_mutable_set_lift_height_request();
}

// .Anki.Vector.external_interface.SetLiftHeightResponse set_lift_height_response = 507;
inline bool GatewayWrapper::_internal_has_set_lift_height_response() const {
  return oneof_message_type_case() == kSetLiftHeightResponse;
}
inline bool GatewayWrapper::has_set_lift_height_response() const {
  return _internal_has_set_lift_height_response();
}
inline void GatewayWrapper::set_has_set_lift_height_response() {
  _oneof_case_[0] = kSetLiftHeightResponse;
}
inline ::Anki::Vector::external_interface::SetLiftHeightResponse* GatewayWrapper::release_set_lift_height_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.set_lift_height_response)
  if (_internal_has_set_lift_height_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SetLiftHeightResponse* temp = oneof_message_type_.set_lift_height_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.set_lift_height_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SetLiftHeightResponse& GatewayWrapper::_internal_set_lift_height_response() const {
  return _internal_has_set_lift_height_response()
      ? *oneof_message_type_.set_lift_height_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SetLiftHeightResponse*>(&::Anki::Vector::external_interface::_SetLiftHeightResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::SetLiftHeightResponse& GatewayWrapper::set_lift_height_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.set_lift_height_response)
  return _internal_set_lift_height_response();
}
inline ::Anki::Vector::external_interface::SetLiftHeightResponse* GatewayWrapper::unsafe_arena_release_set_lift_height_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.set_lift_height_response)
  if (_internal_has_set_lift_height_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SetLiftHeightResponse* temp = oneof_message_type_.set_lift_height_response_;
    oneof_message_type_.set_lift_height_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_set_lift_height_response(::Anki::Vector::external_interface::SetLiftHeightResponse* set_lift_height_response) {
  clear_oneof_message_type();
  if (set_lift_height_response) {
    set_has_set_lift_height_response();
    oneof_message_type_.set_lift_height_response_ = set_lift_height_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_lift_height_response)
}
inline ::Anki::Vector::external_interface::SetLiftHeightResponse* GatewayWrapper::_internal_mutable_set_lift_height_response() {
  if (!_internal_has_set_lift_height_response()) {
    clear_oneof_message_type();
    set_has_set_lift_height_response();
    oneof_message_type_.set_lift_height_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SetLiftHeightResponse >(GetArena());
  }
  return oneof_message_type_.set_lift_height_response_;
}
inline ::Anki::Vector::external_interface::SetLiftHeightResponse* GatewayWrapper::mutable_set_lift_height_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.set_lift_height_response)
  return _internal_mutable_set_lift_height_response();
}

// .Anki.Vector.external_interface.PlayAnimationRequest play_animation_request = 508;
inline bool GatewayWrapper::_internal_has_play_animation_request() const {
  return oneof_message_type_case() == kPlayAnimationRequest;
}
inline bool GatewayWrapper::has_play_animation_request() const {
  return _internal_has_play_animation_request();
}
inline void GatewayWrapper::set_has_play_animation_request() {
  _oneof_case_[0] = kPlayAnimationRequest;
}
inline ::Anki::Vector::external_interface::PlayAnimationRequest* GatewayWrapper::release_play_animation_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.play_animation_request)
  if (_internal_has_play_animation_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PlayAnimationRequest* temp = oneof_message_type_.play_animation_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.play_animation_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PlayAnimationRequest& GatewayWrapper::_internal_play_animation_request() const {
  return _internal_has_play_animation_request()
      ? *oneof_message_type_.play_animation_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PlayAnimationRequest*>(&::Anki::Vector::external_interface::_PlayAnimationRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::PlayAnimationRequest& GatewayWrapper::play_animation_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.play_animation_request)
  return _internal_play_animation_request();
}
inline ::Anki::Vector::external_interface::PlayAnimationRequest* GatewayWrapper::unsafe_arena_release_play_animation_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.play_animation_request)
  if (_internal_has_play_animation_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PlayAnimationRequest* temp = oneof_message_type_.play_animation_request_;
    oneof_message_type_.play_animation_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_play_animation_request(::Anki::Vector::external_interface::PlayAnimationRequest* play_animation_request) {
  clear_oneof_message_type();
  if (play_animation_request) {
    set_has_play_animation_request();
    oneof_message_type_.play_animation_request_ = play_animation_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.play_animation_request)
}
inline ::Anki::Vector::external_interface::PlayAnimationRequest* GatewayWrapper::_internal_mutable_play_animation_request() {
  if (!_internal_has_play_animation_request()) {
    clear_oneof_message_type();
    set_has_play_animation_request();
    oneof_message_type_.play_animation_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PlayAnimationRequest >(GetArena());
  }
  return oneof_message_type_.play_animation_request_;
}
inline ::Anki::Vector::external_interface::PlayAnimationRequest* GatewayWrapper::mutable_play_animation_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.play_animation_request)
  return _internal_mutable_play_animation_request();
}

// .Anki.Vector.external_interface.PlayAnimationResponse play_animation_response = 509;
inline bool GatewayWrapper::_internal_has_play_animation_response() const {
  return oneof_message_type_case() == kPlayAnimationResponse;
}
inline bool GatewayWrapper::has_play_animation_response() const {
  return _internal_has_play_animation_response();
}
inline void GatewayWrapper::set_has_play_animation_response() {
  _oneof_case_[0] = kPlayAnimationResponse;
}
inline ::Anki::Vector::external_interface::PlayAnimationResponse* GatewayWrapper::release_play_animation_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.play_animation_response)
  if (_internal_has_play_animation_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PlayAnimationResponse* temp = oneof_message_type_.play_animation_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.play_animation_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PlayAnimationResponse& GatewayWrapper::_internal_play_animation_response() const {
  return _internal_has_play_animation_response()
      ? *oneof_message_type_.play_animation_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PlayAnimationResponse*>(&::Anki::Vector::external_interface::_PlayAnimationResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::PlayAnimationResponse& GatewayWrapper::play_animation_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.play_animation_response)
  return _internal_play_animation_response();
}
inline ::Anki::Vector::external_interface::PlayAnimationResponse* GatewayWrapper::unsafe_arena_release_play_animation_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.play_animation_response)
  if (_internal_has_play_animation_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PlayAnimationResponse* temp = oneof_message_type_.play_animation_response_;
    oneof_message_type_.play_animation_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_play_animation_response(::Anki::Vector::external_interface::PlayAnimationResponse* play_animation_response) {
  clear_oneof_message_type();
  if (play_animation_response) {
    set_has_play_animation_response();
    oneof_message_type_.play_animation_response_ = play_animation_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.play_animation_response)
}
inline ::Anki::Vector::external_interface::PlayAnimationResponse* GatewayWrapper::_internal_mutable_play_animation_response() {
  if (!_internal_has_play_animation_response()) {
    clear_oneof_message_type();
    set_has_play_animation_response();
    oneof_message_type_.play_animation_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PlayAnimationResponse >(GetArena());
  }
  return oneof_message_type_.play_animation_response_;
}
inline ::Anki::Vector::external_interface::PlayAnimationResponse* GatewayWrapper::mutable_play_animation_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.play_animation_response)
  return _internal_mutable_play_animation_response();
}

// .Anki.Vector.external_interface.GoToPoseRequest go_to_pose_request = 510;
inline bool GatewayWrapper::_internal_has_go_to_pose_request() const {
  return oneof_message_type_case() == kGoToPoseRequest;
}
inline bool GatewayWrapper::has_go_to_pose_request() const {
  return _internal_has_go_to_pose_request();
}
inline void GatewayWrapper::set_has_go_to_pose_request() {
  _oneof_case_[0] = kGoToPoseRequest;
}
inline ::Anki::Vector::external_interface::GoToPoseRequest* GatewayWrapper::release_go_to_pose_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.go_to_pose_request)
  if (_internal_has_go_to_pose_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::GoToPoseRequest* temp = oneof_message_type_.go_to_pose_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.go_to_pose_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::GoToPoseRequest& GatewayWrapper::_internal_go_to_pose_request() const {
  return _internal_has_go_to_pose_request()
      ? *oneof_message_type_.go_to_pose_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::GoToPoseRequest*>(&::Anki::Vector::external_interface::_GoToPoseRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::GoToPoseRequest& GatewayWrapper::go_to_pose_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.go_to_pose_request)
  return _internal_go_to_pose_request();
}
inline ::Anki::Vector::external_interface::GoToPoseRequest* GatewayWrapper::unsafe_arena_release_go_to_pose_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.go_to_pose_request)
  if (_internal_has_go_to_pose_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::GoToPoseRequest* temp = oneof_message_type_.go_to_pose_request_;
    oneof_message_type_.go_to_pose_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_go_to_pose_request(::Anki::Vector::external_interface::GoToPoseRequest* go_to_pose_request) {
  clear_oneof_message_type();
  if (go_to_pose_request) {
    set_has_go_to_pose_request();
    oneof_message_type_.go_to_pose_request_ = go_to_pose_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.go_to_pose_request)
}
inline ::Anki::Vector::external_interface::GoToPoseRequest* GatewayWrapper::_internal_mutable_go_to_pose_request() {
  if (!_internal_has_go_to_pose_request()) {
    clear_oneof_message_type();
    set_has_go_to_pose_request();
    oneof_message_type_.go_to_pose_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::GoToPoseRequest >(GetArena());
  }
  return oneof_message_type_.go_to_pose_request_;
}
inline ::Anki::Vector::external_interface::GoToPoseRequest* GatewayWrapper::mutable_go_to_pose_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.go_to_pose_request)
  return _internal_mutable_go_to_pose_request();
}

// .Anki.Vector.external_interface.GoToPoseResponse go_to_pose_response = 511;
inline bool GatewayWrapper::_internal_has_go_to_pose_response() const {
  return oneof_message_type_case() == kGoToPoseResponse;
}
inline bool GatewayWrapper::has_go_to_pose_response() const {
  return _internal_has_go_to_pose_response();
}
inline void GatewayWrapper::set_has_go_to_pose_response() {
  _oneof_case_[0] = kGoToPoseResponse;
}
inline ::Anki::Vector::external_interface::GoToPoseResponse* GatewayWrapper::release_go_to_pose_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.go_to_pose_response)
  if (_internal_has_go_to_pose_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::GoToPoseResponse* temp = oneof_message_type_.go_to_pose_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.go_to_pose_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::GoToPoseResponse& GatewayWrapper::_internal_go_to_pose_response() const {
  return _internal_has_go_to_pose_response()
      ? *oneof_message_type_.go_to_pose_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::GoToPoseResponse*>(&::Anki::Vector::external_interface::_GoToPoseResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::GoToPoseResponse& GatewayWrapper::go_to_pose_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.go_to_pose_response)
  return _internal_go_to_pose_response();
}
inline ::Anki::Vector::external_interface::GoToPoseResponse* GatewayWrapper::unsafe_arena_release_go_to_pose_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.go_to_pose_response)
  if (_internal_has_go_to_pose_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::GoToPoseResponse* temp = oneof_message_type_.go_to_pose_response_;
    oneof_message_type_.go_to_pose_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_go_to_pose_response(::Anki::Vector::external_interface::GoToPoseResponse* go_to_pose_response) {
  clear_oneof_message_type();
  if (go_to_pose_response) {
    set_has_go_to_pose_response();
    oneof_message_type_.go_to_pose_response_ = go_to_pose_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.go_to_pose_response)
}
inline ::Anki::Vector::external_interface::GoToPoseResponse* GatewayWrapper::_internal_mutable_go_to_pose_response() {
  if (!_internal_has_go_to_pose_response()) {
    clear_oneof_message_type();
    set_has_go_to_pose_response();
    oneof_message_type_.go_to_pose_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::GoToPoseResponse >(GetArena());
  }
  return oneof_message_type_.go_to_pose_response_;
}
inline ::Anki::Vector::external_interface::GoToPoseResponse* GatewayWrapper::mutable_go_to_pose_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.go_to_pose_response)
  return _internal_mutable_go_to_pose_response();
}

// .Anki.Vector.external_interface.DockWithCubeRequest dock_with_cube_request = 512;
inline bool GatewayWrapper::_internal_has_dock_with_cube_request() const {
  return oneof_message_type_case() == kDockWithCubeRequest;
}
inline bool GatewayWrapper::has_dock_with_cube_request() const {
  return _internal_has_dock_with_cube_request();
}
inline void GatewayWrapper::set_has_dock_with_cube_request() {
  _oneof_case_[0] = kDockWithCubeRequest;
}
inline ::Anki::Vector::external_interface::DockWithCubeRequest* GatewayWrapper::release_dock_with_cube_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.dock_with_cube_request)
  if (_internal_has_dock_with_cube_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::DockWithCubeRequest* temp = oneof_message_type_.dock_with_cube_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.dock_with_cube_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::DockWithCubeRequest& GatewayWrapper::_internal_dock_with_cube_request() const {
  return _internal_has_dock_with_cube_request()
      ? *oneof_message_type_.dock_with_cube_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::DockWithCubeRequest*>(&::Anki::Vector::external_interface::_DockWithCubeRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::DockWithCubeRequest& GatewayWrapper::dock_with_cube_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.dock_with_cube_request)
  return _internal_dock_with_cube_request();
}
inline ::Anki::Vector::external_interface::DockWithCubeRequest* GatewayWrapper::unsafe_arena_release_dock_with_cube_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.dock_with_cube_request)
  if (_internal_has_dock_with_cube_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::DockWithCubeRequest* temp = oneof_message_type_.dock_with_cube_request_;
    oneof_message_type_.dock_with_cube_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_dock_with_cube_request(::Anki::Vector::external_interface::DockWithCubeRequest* dock_with_cube_request) {
  clear_oneof_message_type();
  if (dock_with_cube_request) {
    set_has_dock_with_cube_request();
    oneof_message_type_.dock_with_cube_request_ = dock_with_cube_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.dock_with_cube_request)
}
inline ::Anki::Vector::external_interface::DockWithCubeRequest* GatewayWrapper::_internal_mutable_dock_with_cube_request() {
  if (!_internal_has_dock_with_cube_request()) {
    clear_oneof_message_type();
    set_has_dock_with_cube_request();
    oneof_message_type_.dock_with_cube_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::DockWithCubeRequest >(GetArena());
  }
  return oneof_message_type_.dock_with_cube_request_;
}
inline ::Anki::Vector::external_interface::DockWithCubeRequest* GatewayWrapper::mutable_dock_with_cube_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.dock_with_cube_request)
  return _internal_mutable_dock_with_cube_request();
}

// .Anki.Vector.external_interface.DockWithCubeResponse dock_with_cube_response = 513;
inline bool GatewayWrapper::_internal_has_dock_with_cube_response() const {
  return oneof_message_type_case() == kDockWithCubeResponse;
}
inline bool GatewayWrapper::has_dock_with_cube_response() const {
  return _internal_has_dock_with_cube_response();
}
inline void GatewayWrapper::set_has_dock_with_cube_response() {
  _oneof_case_[0] = kDockWithCubeResponse;
}
inline ::Anki::Vector::external_interface::DockWithCubeResponse* GatewayWrapper::release_dock_with_cube_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.dock_with_cube_response)
  if (_internal_has_dock_with_cube_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::DockWithCubeResponse* temp = oneof_message_type_.dock_with_cube_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.dock_with_cube_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::DockWithCubeResponse& GatewayWrapper::_internal_dock_with_cube_response() const {
  return _internal_has_dock_with_cube_response()
      ? *oneof_message_type_.dock_with_cube_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::DockWithCubeResponse*>(&::Anki::Vector::external_interface::_DockWithCubeResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::DockWithCubeResponse& GatewayWrapper::dock_with_cube_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.dock_with_cube_response)
  return _internal_dock_with_cube_response();
}
inline ::Anki::Vector::external_interface::DockWithCubeResponse* GatewayWrapper::unsafe_arena_release_dock_with_cube_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.dock_with_cube_response)
  if (_internal_has_dock_with_cube_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::DockWithCubeResponse* temp = oneof_message_type_.dock_with_cube_response_;
    oneof_message_type_.dock_with_cube_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_dock_with_cube_response(::Anki::Vector::external_interface::DockWithCubeResponse* dock_with_cube_response) {
  clear_oneof_message_type();
  if (dock_with_cube_response) {
    set_has_dock_with_cube_response();
    oneof_message_type_.dock_with_cube_response_ = dock_with_cube_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.dock_with_cube_response)
}
inline ::Anki::Vector::external_interface::DockWithCubeResponse* GatewayWrapper::_internal_mutable_dock_with_cube_response() {
  if (!_internal_has_dock_with_cube_response()) {
    clear_oneof_message_type();
    set_has_dock_with_cube_response();
    oneof_message_type_.dock_with_cube_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::DockWithCubeResponse >(GetArena());
  }
  return oneof_message_type_.dock_with_cube_response_;
}
inline ::Anki::Vector::external_interface::DockWithCubeResponse* GatewayWrapper::mutable_dock_with_cube_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.dock_with_cube_response)
  return _internal_mutable_dock_with_cube_response();
}

// .Anki.Vector.external_interface.DriveWheelsRequest drive_wheels_request = 514;
inline bool GatewayWrapper::_internal_has_drive_wheels_request() const {
  return oneof_message_type_case() == kDriveWheelsRequest;
}
inline bool GatewayWrapper::has_drive_wheels_request() const {
  return _internal_has_drive_wheels_request();
}
inline void GatewayWrapper::set_has_drive_wheels_request() {
  _oneof_case_[0] = kDriveWheelsRequest;
}
inline ::Anki::Vector::external_interface::DriveWheelsRequest* GatewayWrapper::release_drive_wheels_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.drive_wheels_request)
  if (_internal_has_drive_wheels_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::DriveWheelsRequest* temp = oneof_message_type_.drive_wheels_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.drive_wheels_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::DriveWheelsRequest& GatewayWrapper::_internal_drive_wheels_request() const {
  return _internal_has_drive_wheels_request()
      ? *oneof_message_type_.drive_wheels_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::DriveWheelsRequest*>(&::Anki::Vector::external_interface::_DriveWheelsRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::DriveWheelsRequest& GatewayWrapper::drive_wheels_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.drive_wheels_request)
  return _internal_drive_wheels_request();
}
inline ::Anki::Vector::external_interface::DriveWheelsRequest* GatewayWrapper::unsafe_arena_release_drive_wheels_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.drive_wheels_request)
  if (_internal_has_drive_wheels_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::DriveWheelsRequest* temp = oneof_message_type_.drive_wheels_request_;
    oneof_message_type_.drive_wheels_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_drive_wheels_request(::Anki::Vector::external_interface::DriveWheelsRequest* drive_wheels_request) {
  clear_oneof_message_type();
  if (drive_wheels_request) {
    set_has_drive_wheels_request();
    oneof_message_type_.drive_wheels_request_ = drive_wheels_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_wheels_request)
}
inline ::Anki::Vector::external_interface::DriveWheelsRequest* GatewayWrapper::_internal_mutable_drive_wheels_request() {
  if (!_internal_has_drive_wheels_request()) {
    clear_oneof_message_type();
    set_has_drive_wheels_request();
    oneof_message_type_.drive_wheels_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::DriveWheelsRequest >(GetArena());
  }
  return oneof_message_type_.drive_wheels_request_;
}
inline ::Anki::Vector::external_interface::DriveWheelsRequest* GatewayWrapper::mutable_drive_wheels_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.drive_wheels_request)
  return _internal_mutable_drive_wheels_request();
}

// .Anki.Vector.external_interface.DriveWheelsResponse drive_wheels_response = 515;
inline bool GatewayWrapper::_internal_has_drive_wheels_response() const {
  return oneof_message_type_case() == kDriveWheelsResponse;
}
inline bool GatewayWrapper::has_drive_wheels_response() const {
  return _internal_has_drive_wheels_response();
}
inline void GatewayWrapper::set_has_drive_wheels_response() {
  _oneof_case_[0] = kDriveWheelsResponse;
}
inline ::Anki::Vector::external_interface::DriveWheelsResponse* GatewayWrapper::release_drive_wheels_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.drive_wheels_response)
  if (_internal_has_drive_wheels_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::DriveWheelsResponse* temp = oneof_message_type_.drive_wheels_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.drive_wheels_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::DriveWheelsResponse& GatewayWrapper::_internal_drive_wheels_response() const {
  return _internal_has_drive_wheels_response()
      ? *oneof_message_type_.drive_wheels_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::DriveWheelsResponse*>(&::Anki::Vector::external_interface::_DriveWheelsResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::DriveWheelsResponse& GatewayWrapper::drive_wheels_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.drive_wheels_response)
  return _internal_drive_wheels_response();
}
inline ::Anki::Vector::external_interface::DriveWheelsResponse* GatewayWrapper::unsafe_arena_release_drive_wheels_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.drive_wheels_response)
  if (_internal_has_drive_wheels_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::DriveWheelsResponse* temp = oneof_message_type_.drive_wheels_response_;
    oneof_message_type_.drive_wheels_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_drive_wheels_response(::Anki::Vector::external_interface::DriveWheelsResponse* drive_wheels_response) {
  clear_oneof_message_type();
  if (drive_wheels_response) {
    set_has_drive_wheels_response();
    oneof_message_type_.drive_wheels_response_ = drive_wheels_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_wheels_response)
}
inline ::Anki::Vector::external_interface::DriveWheelsResponse* GatewayWrapper::_internal_mutable_drive_wheels_response() {
  if (!_internal_has_drive_wheels_response()) {
    clear_oneof_message_type();
    set_has_drive_wheels_response();
    oneof_message_type_.drive_wheels_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::DriveWheelsResponse >(GetArena());
  }
  return oneof_message_type_.drive_wheels_response_;
}
inline ::Anki::Vector::external_interface::DriveWheelsResponse* GatewayWrapper::mutable_drive_wheels_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.drive_wheels_response)
  return _internal_mutable_drive_wheels_response();
}

// .Anki.Vector.external_interface.ListAnimationsRequest list_animations_request = 516;
inline bool GatewayWrapper::_internal_has_list_animations_request() const {
  return oneof_message_type_case() == kListAnimationsRequest;
}
inline bool GatewayWrapper::has_list_animations_request() const {
  return _internal_has_list_animations_request();
}
inline void GatewayWrapper::set_has_list_animations_request() {
  _oneof_case_[0] = kListAnimationsRequest;
}
inline ::Anki::Vector::external_interface::ListAnimationsRequest* GatewayWrapper::release_list_animations_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.list_animations_request)
  if (_internal_has_list_animations_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ListAnimationsRequest* temp = oneof_message_type_.list_animations_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.list_animations_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ListAnimationsRequest& GatewayWrapper::_internal_list_animations_request() const {
  return _internal_has_list_animations_request()
      ? *oneof_message_type_.list_animations_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ListAnimationsRequest*>(&::Anki::Vector::external_interface::_ListAnimationsRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::ListAnimationsRequest& GatewayWrapper::list_animations_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.list_animations_request)
  return _internal_list_animations_request();
}
inline ::Anki::Vector::external_interface::ListAnimationsRequest* GatewayWrapper::unsafe_arena_release_list_animations_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.list_animations_request)
  if (_internal_has_list_animations_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ListAnimationsRequest* temp = oneof_message_type_.list_animations_request_;
    oneof_message_type_.list_animations_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_list_animations_request(::Anki::Vector::external_interface::ListAnimationsRequest* list_animations_request) {
  clear_oneof_message_type();
  if (list_animations_request) {
    set_has_list_animations_request();
    oneof_message_type_.list_animations_request_ = list_animations_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.list_animations_request)
}
inline ::Anki::Vector::external_interface::ListAnimationsRequest* GatewayWrapper::_internal_mutable_list_animations_request() {
  if (!_internal_has_list_animations_request()) {
    clear_oneof_message_type();
    set_has_list_animations_request();
    oneof_message_type_.list_animations_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ListAnimationsRequest >(GetArena());
  }
  return oneof_message_type_.list_animations_request_;
}
inline ::Anki::Vector::external_interface::ListAnimationsRequest* GatewayWrapper::mutable_list_animations_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.list_animations_request)
  return _internal_mutable_list_animations_request();
}

// .Anki.Vector.external_interface.ListAnimationsResponse list_animations_response = 517;
inline bool GatewayWrapper::_internal_has_list_animations_response() const {
  return oneof_message_type_case() == kListAnimationsResponse;
}
inline bool GatewayWrapper::has_list_animations_response() const {
  return _internal_has_list_animations_response();
}
inline void GatewayWrapper::set_has_list_animations_response() {
  _oneof_case_[0] = kListAnimationsResponse;
}
inline ::Anki::Vector::external_interface::ListAnimationsResponse* GatewayWrapper::release_list_animations_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.list_animations_response)
  if (_internal_has_list_animations_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ListAnimationsResponse* temp = oneof_message_type_.list_animations_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.list_animations_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ListAnimationsResponse& GatewayWrapper::_internal_list_animations_response() const {
  return _internal_has_list_animations_response()
      ? *oneof_message_type_.list_animations_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ListAnimationsResponse*>(&::Anki::Vector::external_interface::_ListAnimationsResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::ListAnimationsResponse& GatewayWrapper::list_animations_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.list_animations_response)
  return _internal_list_animations_response();
}
inline ::Anki::Vector::external_interface::ListAnimationsResponse* GatewayWrapper::unsafe_arena_release_list_animations_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.list_animations_response)
  if (_internal_has_list_animations_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ListAnimationsResponse* temp = oneof_message_type_.list_animations_response_;
    oneof_message_type_.list_animations_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_list_animations_response(::Anki::Vector::external_interface::ListAnimationsResponse* list_animations_response) {
  clear_oneof_message_type();
  if (list_animations_response) {
    set_has_list_animations_response();
    oneof_message_type_.list_animations_response_ = list_animations_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.list_animations_response)
}
inline ::Anki::Vector::external_interface::ListAnimationsResponse* GatewayWrapper::_internal_mutable_list_animations_response() {
  if (!_internal_has_list_animations_response()) {
    clear_oneof_message_type();
    set_has_list_animations_response();
    oneof_message_type_.list_animations_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ListAnimationsResponse >(GetArena());
  }
  return oneof_message_type_.list_animations_response_;
}
inline ::Anki::Vector::external_interface::ListAnimationsResponse* GatewayWrapper::mutable_list_animations_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.list_animations_response)
  return _internal_mutable_list_animations_response();
}

// .Anki.Vector.external_interface.PlayAnimationTriggerRequest play_animation_trigger_request = 518;
inline bool GatewayWrapper::_internal_has_play_animation_trigger_request() const {
  return oneof_message_type_case() == kPlayAnimationTriggerRequest;
}
inline bool GatewayWrapper::has_play_animation_trigger_request() const {
  return _internal_has_play_animation_trigger_request();
}
inline void GatewayWrapper::set_has_play_animation_trigger_request() {
  _oneof_case_[0] = kPlayAnimationTriggerRequest;
}
inline ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* GatewayWrapper::release_play_animation_trigger_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.play_animation_trigger_request)
  if (_internal_has_play_animation_trigger_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* temp = oneof_message_type_.play_animation_trigger_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.play_animation_trigger_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PlayAnimationTriggerRequest& GatewayWrapper::_internal_play_animation_trigger_request() const {
  return _internal_has_play_animation_trigger_request()
      ? *oneof_message_type_.play_animation_trigger_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PlayAnimationTriggerRequest*>(&::Anki::Vector::external_interface::_PlayAnimationTriggerRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::PlayAnimationTriggerRequest& GatewayWrapper::play_animation_trigger_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.play_animation_trigger_request)
  return _internal_play_animation_trigger_request();
}
inline ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* GatewayWrapper::unsafe_arena_release_play_animation_trigger_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.play_animation_trigger_request)
  if (_internal_has_play_animation_trigger_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* temp = oneof_message_type_.play_animation_trigger_request_;
    oneof_message_type_.play_animation_trigger_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_play_animation_trigger_request(::Anki::Vector::external_interface::PlayAnimationTriggerRequest* play_animation_trigger_request) {
  clear_oneof_message_type();
  if (play_animation_trigger_request) {
    set_has_play_animation_trigger_request();
    oneof_message_type_.play_animation_trigger_request_ = play_animation_trigger_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.play_animation_trigger_request)
}
inline ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* GatewayWrapper::_internal_mutable_play_animation_trigger_request() {
  if (!_internal_has_play_animation_trigger_request()) {
    clear_oneof_message_type();
    set_has_play_animation_trigger_request();
    oneof_message_type_.play_animation_trigger_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PlayAnimationTriggerRequest >(GetArena());
  }
  return oneof_message_type_.play_animation_trigger_request_;
}
inline ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* GatewayWrapper::mutable_play_animation_trigger_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.play_animation_trigger_request)
  return _internal_mutable_play_animation_trigger_request();
}

// .Anki.Vector.external_interface.ListAnimationTriggersRequest list_animation_triggers_request = 519;
inline bool GatewayWrapper::_internal_has_list_animation_triggers_request() const {
  return oneof_message_type_case() == kListAnimationTriggersRequest;
}
inline bool GatewayWrapper::has_list_animation_triggers_request() const {
  return _internal_has_list_animation_triggers_request();
}
inline void GatewayWrapper::set_has_list_animation_triggers_request() {
  _oneof_case_[0] = kListAnimationTriggersRequest;
}
inline ::Anki::Vector::external_interface::ListAnimationTriggersRequest* GatewayWrapper::release_list_animation_triggers_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.list_animation_triggers_request)
  if (_internal_has_list_animation_triggers_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ListAnimationTriggersRequest* temp = oneof_message_type_.list_animation_triggers_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.list_animation_triggers_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ListAnimationTriggersRequest& GatewayWrapper::_internal_list_animation_triggers_request() const {
  return _internal_has_list_animation_triggers_request()
      ? *oneof_message_type_.list_animation_triggers_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ListAnimationTriggersRequest*>(&::Anki::Vector::external_interface::_ListAnimationTriggersRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::ListAnimationTriggersRequest& GatewayWrapper::list_animation_triggers_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.list_animation_triggers_request)
  return _internal_list_animation_triggers_request();
}
inline ::Anki::Vector::external_interface::ListAnimationTriggersRequest* GatewayWrapper::unsafe_arena_release_list_animation_triggers_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.list_animation_triggers_request)
  if (_internal_has_list_animation_triggers_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ListAnimationTriggersRequest* temp = oneof_message_type_.list_animation_triggers_request_;
    oneof_message_type_.list_animation_triggers_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_list_animation_triggers_request(::Anki::Vector::external_interface::ListAnimationTriggersRequest* list_animation_triggers_request) {
  clear_oneof_message_type();
  if (list_animation_triggers_request) {
    set_has_list_animation_triggers_request();
    oneof_message_type_.list_animation_triggers_request_ = list_animation_triggers_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.list_animation_triggers_request)
}
inline ::Anki::Vector::external_interface::ListAnimationTriggersRequest* GatewayWrapper::_internal_mutable_list_animation_triggers_request() {
  if (!_internal_has_list_animation_triggers_request()) {
    clear_oneof_message_type();
    set_has_list_animation_triggers_request();
    oneof_message_type_.list_animation_triggers_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ListAnimationTriggersRequest >(GetArena());
  }
  return oneof_message_type_.list_animation_triggers_request_;
}
inline ::Anki::Vector::external_interface::ListAnimationTriggersRequest* GatewayWrapper::mutable_list_animation_triggers_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.list_animation_triggers_request)
  return _internal_mutable_list_animation_triggers_request();
}

// .Anki.Vector.external_interface.ListAnimationTriggersResponse list_animation_triggers_response = 520;
inline bool GatewayWrapper::_internal_has_list_animation_triggers_response() const {
  return oneof_message_type_case() == kListAnimationTriggersResponse;
}
inline bool GatewayWrapper::has_list_animation_triggers_response() const {
  return _internal_has_list_animation_triggers_response();
}
inline void GatewayWrapper::set_has_list_animation_triggers_response() {
  _oneof_case_[0] = kListAnimationTriggersResponse;
}
inline ::Anki::Vector::external_interface::ListAnimationTriggersResponse* GatewayWrapper::release_list_animation_triggers_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.list_animation_triggers_response)
  if (_internal_has_list_animation_triggers_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ListAnimationTriggersResponse* temp = oneof_message_type_.list_animation_triggers_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.list_animation_triggers_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ListAnimationTriggersResponse& GatewayWrapper::_internal_list_animation_triggers_response() const {
  return _internal_has_list_animation_triggers_response()
      ? *oneof_message_type_.list_animation_triggers_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ListAnimationTriggersResponse*>(&::Anki::Vector::external_interface::_ListAnimationTriggersResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::ListAnimationTriggersResponse& GatewayWrapper::list_animation_triggers_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.list_animation_triggers_response)
  return _internal_list_animation_triggers_response();
}
inline ::Anki::Vector::external_interface::ListAnimationTriggersResponse* GatewayWrapper::unsafe_arena_release_list_animation_triggers_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.list_animation_triggers_response)
  if (_internal_has_list_animation_triggers_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ListAnimationTriggersResponse* temp = oneof_message_type_.list_animation_triggers_response_;
    oneof_message_type_.list_animation_triggers_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_list_animation_triggers_response(::Anki::Vector::external_interface::ListAnimationTriggersResponse* list_animation_triggers_response) {
  clear_oneof_message_type();
  if (list_animation_triggers_response) {
    set_has_list_animation_triggers_response();
    oneof_message_type_.list_animation_triggers_response_ = list_animation_triggers_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.list_animation_triggers_response)
}
inline ::Anki::Vector::external_interface::ListAnimationTriggersResponse* GatewayWrapper::_internal_mutable_list_animation_triggers_response() {
  if (!_internal_has_list_animation_triggers_response()) {
    clear_oneof_message_type();
    set_has_list_animation_triggers_response();
    oneof_message_type_.list_animation_triggers_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ListAnimationTriggersResponse >(GetArena());
  }
  return oneof_message_type_.list_animation_triggers_response_;
}
inline ::Anki::Vector::external_interface::ListAnimationTriggersResponse* GatewayWrapper::mutable_list_animation_triggers_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.list_animation_triggers_response)
  return _internal_mutable_list_animation_triggers_response();
}

// .Anki.Vector.external_interface.CancelActionByIdTagRequest cancel_action_by_id_tag_request = 521;
inline bool GatewayWrapper::_internal_has_cancel_action_by_id_tag_request() const {
  return oneof_message_type_case() == kCancelActionByIdTagRequest;
}
inline bool GatewayWrapper::has_cancel_action_by_id_tag_request() const {
  return _internal_has_cancel_action_by_id_tag_request();
}
inline void GatewayWrapper::set_has_cancel_action_by_id_tag_request() {
  _oneof_case_[0] = kCancelActionByIdTagRequest;
}
inline ::Anki::Vector::external_interface::CancelActionByIdTagRequest* GatewayWrapper::release_cancel_action_by_id_tag_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.cancel_action_by_id_tag_request)
  if (_internal_has_cancel_action_by_id_tag_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::CancelActionByIdTagRequest* temp = oneof_message_type_.cancel_action_by_id_tag_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.cancel_action_by_id_tag_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CancelActionByIdTagRequest& GatewayWrapper::_internal_cancel_action_by_id_tag_request() const {
  return _internal_has_cancel_action_by_id_tag_request()
      ? *oneof_message_type_.cancel_action_by_id_tag_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CancelActionByIdTagRequest*>(&::Anki::Vector::external_interface::_CancelActionByIdTagRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::CancelActionByIdTagRequest& GatewayWrapper::cancel_action_by_id_tag_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.cancel_action_by_id_tag_request)
  return _internal_cancel_action_by_id_tag_request();
}
inline ::Anki::Vector::external_interface::CancelActionByIdTagRequest* GatewayWrapper::unsafe_arena_release_cancel_action_by_id_tag_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.cancel_action_by_id_tag_request)
  if (_internal_has_cancel_action_by_id_tag_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::CancelActionByIdTagRequest* temp = oneof_message_type_.cancel_action_by_id_tag_request_;
    oneof_message_type_.cancel_action_by_id_tag_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_cancel_action_by_id_tag_request(::Anki::Vector::external_interface::CancelActionByIdTagRequest* cancel_action_by_id_tag_request) {
  clear_oneof_message_type();
  if (cancel_action_by_id_tag_request) {
    set_has_cancel_action_by_id_tag_request();
    oneof_message_type_.cancel_action_by_id_tag_request_ = cancel_action_by_id_tag_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.cancel_action_by_id_tag_request)
}
inline ::Anki::Vector::external_interface::CancelActionByIdTagRequest* GatewayWrapper::_internal_mutable_cancel_action_by_id_tag_request() {
  if (!_internal_has_cancel_action_by_id_tag_request()) {
    clear_oneof_message_type();
    set_has_cancel_action_by_id_tag_request();
    oneof_message_type_.cancel_action_by_id_tag_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CancelActionByIdTagRequest >(GetArena());
  }
  return oneof_message_type_.cancel_action_by_id_tag_request_;
}
inline ::Anki::Vector::external_interface::CancelActionByIdTagRequest* GatewayWrapper::mutable_cancel_action_by_id_tag_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.cancel_action_by_id_tag_request)
  return _internal_mutable_cancel_action_by_id_tag_request();
}

// .Anki.Vector.external_interface.CancelActionByIdTagResponse cancel_action_by_id_tag_response = 522;
inline bool GatewayWrapper::_internal_has_cancel_action_by_id_tag_response() const {
  return oneof_message_type_case() == kCancelActionByIdTagResponse;
}
inline bool GatewayWrapper::has_cancel_action_by_id_tag_response() const {
  return _internal_has_cancel_action_by_id_tag_response();
}
inline void GatewayWrapper::set_has_cancel_action_by_id_tag_response() {
  _oneof_case_[0] = kCancelActionByIdTagResponse;
}
inline ::Anki::Vector::external_interface::CancelActionByIdTagResponse* GatewayWrapper::release_cancel_action_by_id_tag_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.cancel_action_by_id_tag_response)
  if (_internal_has_cancel_action_by_id_tag_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::CancelActionByIdTagResponse* temp = oneof_message_type_.cancel_action_by_id_tag_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.cancel_action_by_id_tag_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CancelActionByIdTagResponse& GatewayWrapper::_internal_cancel_action_by_id_tag_response() const {
  return _internal_has_cancel_action_by_id_tag_response()
      ? *oneof_message_type_.cancel_action_by_id_tag_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CancelActionByIdTagResponse*>(&::Anki::Vector::external_interface::_CancelActionByIdTagResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::CancelActionByIdTagResponse& GatewayWrapper::cancel_action_by_id_tag_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.cancel_action_by_id_tag_response)
  return _internal_cancel_action_by_id_tag_response();
}
inline ::Anki::Vector::external_interface::CancelActionByIdTagResponse* GatewayWrapper::unsafe_arena_release_cancel_action_by_id_tag_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.cancel_action_by_id_tag_response)
  if (_internal_has_cancel_action_by_id_tag_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::CancelActionByIdTagResponse* temp = oneof_message_type_.cancel_action_by_id_tag_response_;
    oneof_message_type_.cancel_action_by_id_tag_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_cancel_action_by_id_tag_response(::Anki::Vector::external_interface::CancelActionByIdTagResponse* cancel_action_by_id_tag_response) {
  clear_oneof_message_type();
  if (cancel_action_by_id_tag_response) {
    set_has_cancel_action_by_id_tag_response();
    oneof_message_type_.cancel_action_by_id_tag_response_ = cancel_action_by_id_tag_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.cancel_action_by_id_tag_response)
}
inline ::Anki::Vector::external_interface::CancelActionByIdTagResponse* GatewayWrapper::_internal_mutable_cancel_action_by_id_tag_response() {
  if (!_internal_has_cancel_action_by_id_tag_response()) {
    clear_oneof_message_type();
    set_has_cancel_action_by_id_tag_response();
    oneof_message_type_.cancel_action_by_id_tag_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CancelActionByIdTagResponse >(GetArena());
  }
  return oneof_message_type_.cancel_action_by_id_tag_response_;
}
inline ::Anki::Vector::external_interface::CancelActionByIdTagResponse* GatewayWrapper::mutable_cancel_action_by_id_tag_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.cancel_action_by_id_tag_response)
  return _internal_mutable_cancel_action_by_id_tag_response();
}

// .Anki.Vector.external_interface.TurnTowardsFaceRequest turn_towards_face_request = 523;
inline bool GatewayWrapper::_internal_has_turn_towards_face_request() const {
  return oneof_message_type_case() == kTurnTowardsFaceRequest;
}
inline bool GatewayWrapper::has_turn_towards_face_request() const {
  return _internal_has_turn_towards_face_request();
}
inline void GatewayWrapper::set_has_turn_towards_face_request() {
  _oneof_case_[0] = kTurnTowardsFaceRequest;
}
inline ::Anki::Vector::external_interface::TurnTowardsFaceRequest* GatewayWrapper::release_turn_towards_face_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.turn_towards_face_request)
  if (_internal_has_turn_towards_face_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::TurnTowardsFaceRequest* temp = oneof_message_type_.turn_towards_face_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.turn_towards_face_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::TurnTowardsFaceRequest& GatewayWrapper::_internal_turn_towards_face_request() const {
  return _internal_has_turn_towards_face_request()
      ? *oneof_message_type_.turn_towards_face_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::TurnTowardsFaceRequest*>(&::Anki::Vector::external_interface::_TurnTowardsFaceRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::TurnTowardsFaceRequest& GatewayWrapper::turn_towards_face_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.turn_towards_face_request)
  return _internal_turn_towards_face_request();
}
inline ::Anki::Vector::external_interface::TurnTowardsFaceRequest* GatewayWrapper::unsafe_arena_release_turn_towards_face_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.turn_towards_face_request)
  if (_internal_has_turn_towards_face_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::TurnTowardsFaceRequest* temp = oneof_message_type_.turn_towards_face_request_;
    oneof_message_type_.turn_towards_face_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_turn_towards_face_request(::Anki::Vector::external_interface::TurnTowardsFaceRequest* turn_towards_face_request) {
  clear_oneof_message_type();
  if (turn_towards_face_request) {
    set_has_turn_towards_face_request();
    oneof_message_type_.turn_towards_face_request_ = turn_towards_face_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.turn_towards_face_request)
}
inline ::Anki::Vector::external_interface::TurnTowardsFaceRequest* GatewayWrapper::_internal_mutable_turn_towards_face_request() {
  if (!_internal_has_turn_towards_face_request()) {
    clear_oneof_message_type();
    set_has_turn_towards_face_request();
    oneof_message_type_.turn_towards_face_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::TurnTowardsFaceRequest >(GetArena());
  }
  return oneof_message_type_.turn_towards_face_request_;
}
inline ::Anki::Vector::external_interface::TurnTowardsFaceRequest* GatewayWrapper::mutable_turn_towards_face_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.turn_towards_face_request)
  return _internal_mutable_turn_towards_face_request();
}

// .Anki.Vector.external_interface.TurnTowardsFaceResponse turn_towards_face_response = 524;
inline bool GatewayWrapper::_internal_has_turn_towards_face_response() const {
  return oneof_message_type_case() == kTurnTowardsFaceResponse;
}
inline bool GatewayWrapper::has_turn_towards_face_response() const {
  return _internal_has_turn_towards_face_response();
}
inline void GatewayWrapper::set_has_turn_towards_face_response() {
  _oneof_case_[0] = kTurnTowardsFaceResponse;
}
inline ::Anki::Vector::external_interface::TurnTowardsFaceResponse* GatewayWrapper::release_turn_towards_face_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.turn_towards_face_response)
  if (_internal_has_turn_towards_face_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::TurnTowardsFaceResponse* temp = oneof_message_type_.turn_towards_face_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.turn_towards_face_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::TurnTowardsFaceResponse& GatewayWrapper::_internal_turn_towards_face_response() const {
  return _internal_has_turn_towards_face_response()
      ? *oneof_message_type_.turn_towards_face_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::TurnTowardsFaceResponse*>(&::Anki::Vector::external_interface::_TurnTowardsFaceResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::TurnTowardsFaceResponse& GatewayWrapper::turn_towards_face_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.turn_towards_face_response)
  return _internal_turn_towards_face_response();
}
inline ::Anki::Vector::external_interface::TurnTowardsFaceResponse* GatewayWrapper::unsafe_arena_release_turn_towards_face_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.turn_towards_face_response)
  if (_internal_has_turn_towards_face_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::TurnTowardsFaceResponse* temp = oneof_message_type_.turn_towards_face_response_;
    oneof_message_type_.turn_towards_face_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_turn_towards_face_response(::Anki::Vector::external_interface::TurnTowardsFaceResponse* turn_towards_face_response) {
  clear_oneof_message_type();
  if (turn_towards_face_response) {
    set_has_turn_towards_face_response();
    oneof_message_type_.turn_towards_face_response_ = turn_towards_face_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.turn_towards_face_response)
}
inline ::Anki::Vector::external_interface::TurnTowardsFaceResponse* GatewayWrapper::_internal_mutable_turn_towards_face_response() {
  if (!_internal_has_turn_towards_face_response()) {
    clear_oneof_message_type();
    set_has_turn_towards_face_response();
    oneof_message_type_.turn_towards_face_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::TurnTowardsFaceResponse >(GetArena());
  }
  return oneof_message_type_.turn_towards_face_response_;
}
inline ::Anki::Vector::external_interface::TurnTowardsFaceResponse* GatewayWrapper::mutable_turn_towards_face_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.turn_towards_face_response)
  return _internal_mutable_turn_towards_face_response();
}

// .Anki.Vector.external_interface.GoToObjectRequest go_to_object_request = 525;
inline bool GatewayWrapper::_internal_has_go_to_object_request() const {
  return oneof_message_type_case() == kGoToObjectRequest;
}
inline bool GatewayWrapper::has_go_to_object_request() const {
  return _internal_has_go_to_object_request();
}
inline void GatewayWrapper::set_has_go_to_object_request() {
  _oneof_case_[0] = kGoToObjectRequest;
}
inline ::Anki::Vector::external_interface::GoToObjectRequest* GatewayWrapper::release_go_to_object_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.go_to_object_request)
  if (_internal_has_go_to_object_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::GoToObjectRequest* temp = oneof_message_type_.go_to_object_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.go_to_object_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::GoToObjectRequest& GatewayWrapper::_internal_go_to_object_request() const {
  return _internal_has_go_to_object_request()
      ? *oneof_message_type_.go_to_object_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::GoToObjectRequest*>(&::Anki::Vector::external_interface::_GoToObjectRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::GoToObjectRequest& GatewayWrapper::go_to_object_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.go_to_object_request)
  return _internal_go_to_object_request();
}
inline ::Anki::Vector::external_interface::GoToObjectRequest* GatewayWrapper::unsafe_arena_release_go_to_object_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.go_to_object_request)
  if (_internal_has_go_to_object_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::GoToObjectRequest* temp = oneof_message_type_.go_to_object_request_;
    oneof_message_type_.go_to_object_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_go_to_object_request(::Anki::Vector::external_interface::GoToObjectRequest* go_to_object_request) {
  clear_oneof_message_type();
  if (go_to_object_request) {
    set_has_go_to_object_request();
    oneof_message_type_.go_to_object_request_ = go_to_object_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.go_to_object_request)
}
inline ::Anki::Vector::external_interface::GoToObjectRequest* GatewayWrapper::_internal_mutable_go_to_object_request() {
  if (!_internal_has_go_to_object_request()) {
    clear_oneof_message_type();
    set_has_go_to_object_request();
    oneof_message_type_.go_to_object_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::GoToObjectRequest >(GetArena());
  }
  return oneof_message_type_.go_to_object_request_;
}
inline ::Anki::Vector::external_interface::GoToObjectRequest* GatewayWrapper::mutable_go_to_object_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.go_to_object_request)
  return _internal_mutable_go_to_object_request();
}

// .Anki.Vector.external_interface.GoToObjectResponse go_to_object_response = 526;
inline bool GatewayWrapper::_internal_has_go_to_object_response() const {
  return oneof_message_type_case() == kGoToObjectResponse;
}
inline bool GatewayWrapper::has_go_to_object_response() const {
  return _internal_has_go_to_object_response();
}
inline void GatewayWrapper::set_has_go_to_object_response() {
  _oneof_case_[0] = kGoToObjectResponse;
}
inline ::Anki::Vector::external_interface::GoToObjectResponse* GatewayWrapper::release_go_to_object_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.go_to_object_response)
  if (_internal_has_go_to_object_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::GoToObjectResponse* temp = oneof_message_type_.go_to_object_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.go_to_object_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::GoToObjectResponse& GatewayWrapper::_internal_go_to_object_response() const {
  return _internal_has_go_to_object_response()
      ? *oneof_message_type_.go_to_object_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::GoToObjectResponse*>(&::Anki::Vector::external_interface::_GoToObjectResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::GoToObjectResponse& GatewayWrapper::go_to_object_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.go_to_object_response)
  return _internal_go_to_object_response();
}
inline ::Anki::Vector::external_interface::GoToObjectResponse* GatewayWrapper::unsafe_arena_release_go_to_object_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.go_to_object_response)
  if (_internal_has_go_to_object_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::GoToObjectResponse* temp = oneof_message_type_.go_to_object_response_;
    oneof_message_type_.go_to_object_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_go_to_object_response(::Anki::Vector::external_interface::GoToObjectResponse* go_to_object_response) {
  clear_oneof_message_type();
  if (go_to_object_response) {
    set_has_go_to_object_response();
    oneof_message_type_.go_to_object_response_ = go_to_object_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.go_to_object_response)
}
inline ::Anki::Vector::external_interface::GoToObjectResponse* GatewayWrapper::_internal_mutable_go_to_object_response() {
  if (!_internal_has_go_to_object_response()) {
    clear_oneof_message_type();
    set_has_go_to_object_response();
    oneof_message_type_.go_to_object_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::GoToObjectResponse >(GetArena());
  }
  return oneof_message_type_.go_to_object_response_;
}
inline ::Anki::Vector::external_interface::GoToObjectResponse* GatewayWrapper::mutable_go_to_object_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.go_to_object_response)
  return _internal_mutable_go_to_object_response();
}

// .Anki.Vector.external_interface.RollObjectRequest roll_object_request = 527;
inline bool GatewayWrapper::_internal_has_roll_object_request() const {
  return oneof_message_type_case() == kRollObjectRequest;
}
inline bool GatewayWrapper::has_roll_object_request() const {
  return _internal_has_roll_object_request();
}
inline void GatewayWrapper::set_has_roll_object_request() {
  _oneof_case_[0] = kRollObjectRequest;
}
inline ::Anki::Vector::external_interface::RollObjectRequest* GatewayWrapper::release_roll_object_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.roll_object_request)
  if (_internal_has_roll_object_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::RollObjectRequest* temp = oneof_message_type_.roll_object_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.roll_object_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::RollObjectRequest& GatewayWrapper::_internal_roll_object_request() const {
  return _internal_has_roll_object_request()
      ? *oneof_message_type_.roll_object_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::RollObjectRequest*>(&::Anki::Vector::external_interface::_RollObjectRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::RollObjectRequest& GatewayWrapper::roll_object_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.roll_object_request)
  return _internal_roll_object_request();
}
inline ::Anki::Vector::external_interface::RollObjectRequest* GatewayWrapper::unsafe_arena_release_roll_object_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.roll_object_request)
  if (_internal_has_roll_object_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::RollObjectRequest* temp = oneof_message_type_.roll_object_request_;
    oneof_message_type_.roll_object_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_roll_object_request(::Anki::Vector::external_interface::RollObjectRequest* roll_object_request) {
  clear_oneof_message_type();
  if (roll_object_request) {
    set_has_roll_object_request();
    oneof_message_type_.roll_object_request_ = roll_object_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.roll_object_request)
}
inline ::Anki::Vector::external_interface::RollObjectRequest* GatewayWrapper::_internal_mutable_roll_object_request() {
  if (!_internal_has_roll_object_request()) {
    clear_oneof_message_type();
    set_has_roll_object_request();
    oneof_message_type_.roll_object_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::RollObjectRequest >(GetArena());
  }
  return oneof_message_type_.roll_object_request_;
}
inline ::Anki::Vector::external_interface::RollObjectRequest* GatewayWrapper::mutable_roll_object_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.roll_object_request)
  return _internal_mutable_roll_object_request();
}

// .Anki.Vector.external_interface.RollObjectResponse roll_object_response = 528;
inline bool GatewayWrapper::_internal_has_roll_object_response() const {
  return oneof_message_type_case() == kRollObjectResponse;
}
inline bool GatewayWrapper::has_roll_object_response() const {
  return _internal_has_roll_object_response();
}
inline void GatewayWrapper::set_has_roll_object_response() {
  _oneof_case_[0] = kRollObjectResponse;
}
inline ::Anki::Vector::external_interface::RollObjectResponse* GatewayWrapper::release_roll_object_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.roll_object_response)
  if (_internal_has_roll_object_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::RollObjectResponse* temp = oneof_message_type_.roll_object_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.roll_object_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::RollObjectResponse& GatewayWrapper::_internal_roll_object_response() const {
  return _internal_has_roll_object_response()
      ? *oneof_message_type_.roll_object_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::RollObjectResponse*>(&::Anki::Vector::external_interface::_RollObjectResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::RollObjectResponse& GatewayWrapper::roll_object_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.roll_object_response)
  return _internal_roll_object_response();
}
inline ::Anki::Vector::external_interface::RollObjectResponse* GatewayWrapper::unsafe_arena_release_roll_object_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.roll_object_response)
  if (_internal_has_roll_object_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::RollObjectResponse* temp = oneof_message_type_.roll_object_response_;
    oneof_message_type_.roll_object_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_roll_object_response(::Anki::Vector::external_interface::RollObjectResponse* roll_object_response) {
  clear_oneof_message_type();
  if (roll_object_response) {
    set_has_roll_object_response();
    oneof_message_type_.roll_object_response_ = roll_object_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.roll_object_response)
}
inline ::Anki::Vector::external_interface::RollObjectResponse* GatewayWrapper::_internal_mutable_roll_object_response() {
  if (!_internal_has_roll_object_response()) {
    clear_oneof_message_type();
    set_has_roll_object_response();
    oneof_message_type_.roll_object_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::RollObjectResponse >(GetArena());
  }
  return oneof_message_type_.roll_object_response_;
}
inline ::Anki::Vector::external_interface::RollObjectResponse* GatewayWrapper::mutable_roll_object_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.roll_object_response)
  return _internal_mutable_roll_object_response();
}

// .Anki.Vector.external_interface.PopAWheelieRequest pop_a_wheelie_request = 529;
inline bool GatewayWrapper::_internal_has_pop_a_wheelie_request() const {
  return oneof_message_type_case() == kPopAWheelieRequest;
}
inline bool GatewayWrapper::has_pop_a_wheelie_request() const {
  return _internal_has_pop_a_wheelie_request();
}
inline void GatewayWrapper::set_has_pop_a_wheelie_request() {
  _oneof_case_[0] = kPopAWheelieRequest;
}
inline ::Anki::Vector::external_interface::PopAWheelieRequest* GatewayWrapper::release_pop_a_wheelie_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.pop_a_wheelie_request)
  if (_internal_has_pop_a_wheelie_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PopAWheelieRequest* temp = oneof_message_type_.pop_a_wheelie_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.pop_a_wheelie_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PopAWheelieRequest& GatewayWrapper::_internal_pop_a_wheelie_request() const {
  return _internal_has_pop_a_wheelie_request()
      ? *oneof_message_type_.pop_a_wheelie_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PopAWheelieRequest*>(&::Anki::Vector::external_interface::_PopAWheelieRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::PopAWheelieRequest& GatewayWrapper::pop_a_wheelie_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.pop_a_wheelie_request)
  return _internal_pop_a_wheelie_request();
}
inline ::Anki::Vector::external_interface::PopAWheelieRequest* GatewayWrapper::unsafe_arena_release_pop_a_wheelie_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.pop_a_wheelie_request)
  if (_internal_has_pop_a_wheelie_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PopAWheelieRequest* temp = oneof_message_type_.pop_a_wheelie_request_;
    oneof_message_type_.pop_a_wheelie_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_pop_a_wheelie_request(::Anki::Vector::external_interface::PopAWheelieRequest* pop_a_wheelie_request) {
  clear_oneof_message_type();
  if (pop_a_wheelie_request) {
    set_has_pop_a_wheelie_request();
    oneof_message_type_.pop_a_wheelie_request_ = pop_a_wheelie_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.pop_a_wheelie_request)
}
inline ::Anki::Vector::external_interface::PopAWheelieRequest* GatewayWrapper::_internal_mutable_pop_a_wheelie_request() {
  if (!_internal_has_pop_a_wheelie_request()) {
    clear_oneof_message_type();
    set_has_pop_a_wheelie_request();
    oneof_message_type_.pop_a_wheelie_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PopAWheelieRequest >(GetArena());
  }
  return oneof_message_type_.pop_a_wheelie_request_;
}
inline ::Anki::Vector::external_interface::PopAWheelieRequest* GatewayWrapper::mutable_pop_a_wheelie_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.pop_a_wheelie_request)
  return _internal_mutable_pop_a_wheelie_request();
}

// .Anki.Vector.external_interface.PopAWheelieResponse pop_a_wheelie_response = 530;
inline bool GatewayWrapper::_internal_has_pop_a_wheelie_response() const {
  return oneof_message_type_case() == kPopAWheelieResponse;
}
inline bool GatewayWrapper::has_pop_a_wheelie_response() const {
  return _internal_has_pop_a_wheelie_response();
}
inline void GatewayWrapper::set_has_pop_a_wheelie_response() {
  _oneof_case_[0] = kPopAWheelieResponse;
}
inline ::Anki::Vector::external_interface::PopAWheelieResponse* GatewayWrapper::release_pop_a_wheelie_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.pop_a_wheelie_response)
  if (_internal_has_pop_a_wheelie_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PopAWheelieResponse* temp = oneof_message_type_.pop_a_wheelie_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.pop_a_wheelie_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PopAWheelieResponse& GatewayWrapper::_internal_pop_a_wheelie_response() const {
  return _internal_has_pop_a_wheelie_response()
      ? *oneof_message_type_.pop_a_wheelie_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PopAWheelieResponse*>(&::Anki::Vector::external_interface::_PopAWheelieResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::PopAWheelieResponse& GatewayWrapper::pop_a_wheelie_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.pop_a_wheelie_response)
  return _internal_pop_a_wheelie_response();
}
inline ::Anki::Vector::external_interface::PopAWheelieResponse* GatewayWrapper::unsafe_arena_release_pop_a_wheelie_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.pop_a_wheelie_response)
  if (_internal_has_pop_a_wheelie_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PopAWheelieResponse* temp = oneof_message_type_.pop_a_wheelie_response_;
    oneof_message_type_.pop_a_wheelie_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_pop_a_wheelie_response(::Anki::Vector::external_interface::PopAWheelieResponse* pop_a_wheelie_response) {
  clear_oneof_message_type();
  if (pop_a_wheelie_response) {
    set_has_pop_a_wheelie_response();
    oneof_message_type_.pop_a_wheelie_response_ = pop_a_wheelie_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.pop_a_wheelie_response)
}
inline ::Anki::Vector::external_interface::PopAWheelieResponse* GatewayWrapper::_internal_mutable_pop_a_wheelie_response() {
  if (!_internal_has_pop_a_wheelie_response()) {
    clear_oneof_message_type();
    set_has_pop_a_wheelie_response();
    oneof_message_type_.pop_a_wheelie_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PopAWheelieResponse >(GetArena());
  }
  return oneof_message_type_.pop_a_wheelie_response_;
}
inline ::Anki::Vector::external_interface::PopAWheelieResponse* GatewayWrapper::mutable_pop_a_wheelie_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.pop_a_wheelie_response)
  return _internal_mutable_pop_a_wheelie_response();
}

// .Anki.Vector.external_interface.PickupObjectRequest pickup_object_request = 531;
inline bool GatewayWrapper::_internal_has_pickup_object_request() const {
  return oneof_message_type_case() == kPickupObjectRequest;
}
inline bool GatewayWrapper::has_pickup_object_request() const {
  return _internal_has_pickup_object_request();
}
inline void GatewayWrapper::set_has_pickup_object_request() {
  _oneof_case_[0] = kPickupObjectRequest;
}
inline ::Anki::Vector::external_interface::PickupObjectRequest* GatewayWrapper::release_pickup_object_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.pickup_object_request)
  if (_internal_has_pickup_object_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PickupObjectRequest* temp = oneof_message_type_.pickup_object_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.pickup_object_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PickupObjectRequest& GatewayWrapper::_internal_pickup_object_request() const {
  return _internal_has_pickup_object_request()
      ? *oneof_message_type_.pickup_object_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PickupObjectRequest*>(&::Anki::Vector::external_interface::_PickupObjectRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::PickupObjectRequest& GatewayWrapper::pickup_object_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.pickup_object_request)
  return _internal_pickup_object_request();
}
inline ::Anki::Vector::external_interface::PickupObjectRequest* GatewayWrapper::unsafe_arena_release_pickup_object_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.pickup_object_request)
  if (_internal_has_pickup_object_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PickupObjectRequest* temp = oneof_message_type_.pickup_object_request_;
    oneof_message_type_.pickup_object_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_pickup_object_request(::Anki::Vector::external_interface::PickupObjectRequest* pickup_object_request) {
  clear_oneof_message_type();
  if (pickup_object_request) {
    set_has_pickup_object_request();
    oneof_message_type_.pickup_object_request_ = pickup_object_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.pickup_object_request)
}
inline ::Anki::Vector::external_interface::PickupObjectRequest* GatewayWrapper::_internal_mutable_pickup_object_request() {
  if (!_internal_has_pickup_object_request()) {
    clear_oneof_message_type();
    set_has_pickup_object_request();
    oneof_message_type_.pickup_object_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PickupObjectRequest >(GetArena());
  }
  return oneof_message_type_.pickup_object_request_;
}
inline ::Anki::Vector::external_interface::PickupObjectRequest* GatewayWrapper::mutable_pickup_object_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.pickup_object_request)
  return _internal_mutable_pickup_object_request();
}

// .Anki.Vector.external_interface.PickupObjectResponse pickup_object_response = 532;
inline bool GatewayWrapper::_internal_has_pickup_object_response() const {
  return oneof_message_type_case() == kPickupObjectResponse;
}
inline bool GatewayWrapper::has_pickup_object_response() const {
  return _internal_has_pickup_object_response();
}
inline void GatewayWrapper::set_has_pickup_object_response() {
  _oneof_case_[0] = kPickupObjectResponse;
}
inline ::Anki::Vector::external_interface::PickupObjectResponse* GatewayWrapper::release_pickup_object_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.pickup_object_response)
  if (_internal_has_pickup_object_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PickupObjectResponse* temp = oneof_message_type_.pickup_object_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.pickup_object_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PickupObjectResponse& GatewayWrapper::_internal_pickup_object_response() const {
  return _internal_has_pickup_object_response()
      ? *oneof_message_type_.pickup_object_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PickupObjectResponse*>(&::Anki::Vector::external_interface::_PickupObjectResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::PickupObjectResponse& GatewayWrapper::pickup_object_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.pickup_object_response)
  return _internal_pickup_object_response();
}
inline ::Anki::Vector::external_interface::PickupObjectResponse* GatewayWrapper::unsafe_arena_release_pickup_object_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.pickup_object_response)
  if (_internal_has_pickup_object_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PickupObjectResponse* temp = oneof_message_type_.pickup_object_response_;
    oneof_message_type_.pickup_object_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_pickup_object_response(::Anki::Vector::external_interface::PickupObjectResponse* pickup_object_response) {
  clear_oneof_message_type();
  if (pickup_object_response) {
    set_has_pickup_object_response();
    oneof_message_type_.pickup_object_response_ = pickup_object_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.pickup_object_response)
}
inline ::Anki::Vector::external_interface::PickupObjectResponse* GatewayWrapper::_internal_mutable_pickup_object_response() {
  if (!_internal_has_pickup_object_response()) {
    clear_oneof_message_type();
    set_has_pickup_object_response();
    oneof_message_type_.pickup_object_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PickupObjectResponse >(GetArena());
  }
  return oneof_message_type_.pickup_object_response_;
}
inline ::Anki::Vector::external_interface::PickupObjectResponse* GatewayWrapper::mutable_pickup_object_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.pickup_object_response)
  return _internal_mutable_pickup_object_response();
}

// .Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest place_object_on_ground_here_request = 533;
inline bool GatewayWrapper::_internal_has_place_object_on_ground_here_request() const {
  return oneof_message_type_case() == kPlaceObjectOnGroundHereRequest;
}
inline bool GatewayWrapper::has_place_object_on_ground_here_request() const {
  return _internal_has_place_object_on_ground_here_request();
}
inline void GatewayWrapper::set_has_place_object_on_ground_here_request() {
  _oneof_case_[0] = kPlaceObjectOnGroundHereRequest;
}
inline ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* GatewayWrapper::release_place_object_on_ground_here_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.place_object_on_ground_here_request)
  if (_internal_has_place_object_on_ground_here_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* temp = oneof_message_type_.place_object_on_ground_here_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.place_object_on_ground_here_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest& GatewayWrapper::_internal_place_object_on_ground_here_request() const {
  return _internal_has_place_object_on_ground_here_request()
      ? *oneof_message_type_.place_object_on_ground_here_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest*>(&::Anki::Vector::external_interface::_PlaceObjectOnGroundHereRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest& GatewayWrapper::place_object_on_ground_here_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.place_object_on_ground_here_request)
  return _internal_place_object_on_ground_here_request();
}
inline ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* GatewayWrapper::unsafe_arena_release_place_object_on_ground_here_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.place_object_on_ground_here_request)
  if (_internal_has_place_object_on_ground_here_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* temp = oneof_message_type_.place_object_on_ground_here_request_;
    oneof_message_type_.place_object_on_ground_here_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_place_object_on_ground_here_request(::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* place_object_on_ground_here_request) {
  clear_oneof_message_type();
  if (place_object_on_ground_here_request) {
    set_has_place_object_on_ground_here_request();
    oneof_message_type_.place_object_on_ground_here_request_ = place_object_on_ground_here_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.place_object_on_ground_here_request)
}
inline ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* GatewayWrapper::_internal_mutable_place_object_on_ground_here_request() {
  if (!_internal_has_place_object_on_ground_here_request()) {
    clear_oneof_message_type();
    set_has_place_object_on_ground_here_request();
    oneof_message_type_.place_object_on_ground_here_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest >(GetArena());
  }
  return oneof_message_type_.place_object_on_ground_here_request_;
}
inline ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* GatewayWrapper::mutable_place_object_on_ground_here_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.place_object_on_ground_here_request)
  return _internal_mutable_place_object_on_ground_here_request();
}

// .Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse place_object_on_ground_here_response = 534;
inline bool GatewayWrapper::_internal_has_place_object_on_ground_here_response() const {
  return oneof_message_type_case() == kPlaceObjectOnGroundHereResponse;
}
inline bool GatewayWrapper::has_place_object_on_ground_here_response() const {
  return _internal_has_place_object_on_ground_here_response();
}
inline void GatewayWrapper::set_has_place_object_on_ground_here_response() {
  _oneof_case_[0] = kPlaceObjectOnGroundHereResponse;
}
inline ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* GatewayWrapper::release_place_object_on_ground_here_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.place_object_on_ground_here_response)
  if (_internal_has_place_object_on_ground_here_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* temp = oneof_message_type_.place_object_on_ground_here_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.place_object_on_ground_here_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse& GatewayWrapper::_internal_place_object_on_ground_here_response() const {
  return _internal_has_place_object_on_ground_here_response()
      ? *oneof_message_type_.place_object_on_ground_here_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse*>(&::Anki::Vector::external_interface::_PlaceObjectOnGroundHereResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse& GatewayWrapper::place_object_on_ground_here_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.place_object_on_ground_here_response)
  return _internal_place_object_on_ground_here_response();
}
inline ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* GatewayWrapper::unsafe_arena_release_place_object_on_ground_here_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.place_object_on_ground_here_response)
  if (_internal_has_place_object_on_ground_here_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* temp = oneof_message_type_.place_object_on_ground_here_response_;
    oneof_message_type_.place_object_on_ground_here_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_place_object_on_ground_here_response(::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* place_object_on_ground_here_response) {
  clear_oneof_message_type();
  if (place_object_on_ground_here_response) {
    set_has_place_object_on_ground_here_response();
    oneof_message_type_.place_object_on_ground_here_response_ = place_object_on_ground_here_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.place_object_on_ground_here_response)
}
inline ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* GatewayWrapper::_internal_mutable_place_object_on_ground_here_response() {
  if (!_internal_has_place_object_on_ground_here_response()) {
    clear_oneof_message_type();
    set_has_place_object_on_ground_here_response();
    oneof_message_type_.place_object_on_ground_here_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse >(GetArena());
  }
  return oneof_message_type_.place_object_on_ground_here_response_;
}
inline ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* GatewayWrapper::mutable_place_object_on_ground_here_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.place_object_on_ground_here_response)
  return _internal_mutable_place_object_on_ground_here_response();
}

// .Anki.Vector.external_interface.StopAllMotorsRequest stop_all_motors_request = 535;
inline bool GatewayWrapper::_internal_has_stop_all_motors_request() const {
  return oneof_message_type_case() == kStopAllMotorsRequest;
}
inline bool GatewayWrapper::has_stop_all_motors_request() const {
  return _internal_has_stop_all_motors_request();
}
inline void GatewayWrapper::set_has_stop_all_motors_request() {
  _oneof_case_[0] = kStopAllMotorsRequest;
}
inline ::Anki::Vector::external_interface::StopAllMotorsRequest* GatewayWrapper::release_stop_all_motors_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.stop_all_motors_request)
  if (_internal_has_stop_all_motors_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::StopAllMotorsRequest* temp = oneof_message_type_.stop_all_motors_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.stop_all_motors_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::StopAllMotorsRequest& GatewayWrapper::_internal_stop_all_motors_request() const {
  return _internal_has_stop_all_motors_request()
      ? *oneof_message_type_.stop_all_motors_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::StopAllMotorsRequest*>(&::Anki::Vector::external_interface::_StopAllMotorsRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::StopAllMotorsRequest& GatewayWrapper::stop_all_motors_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.stop_all_motors_request)
  return _internal_stop_all_motors_request();
}
inline ::Anki::Vector::external_interface::StopAllMotorsRequest* GatewayWrapper::unsafe_arena_release_stop_all_motors_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.stop_all_motors_request)
  if (_internal_has_stop_all_motors_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::StopAllMotorsRequest* temp = oneof_message_type_.stop_all_motors_request_;
    oneof_message_type_.stop_all_motors_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_stop_all_motors_request(::Anki::Vector::external_interface::StopAllMotorsRequest* stop_all_motors_request) {
  clear_oneof_message_type();
  if (stop_all_motors_request) {
    set_has_stop_all_motors_request();
    oneof_message_type_.stop_all_motors_request_ = stop_all_motors_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.stop_all_motors_request)
}
inline ::Anki::Vector::external_interface::StopAllMotorsRequest* GatewayWrapper::_internal_mutable_stop_all_motors_request() {
  if (!_internal_has_stop_all_motors_request()) {
    clear_oneof_message_type();
    set_has_stop_all_motors_request();
    oneof_message_type_.stop_all_motors_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::StopAllMotorsRequest >(GetArena());
  }
  return oneof_message_type_.stop_all_motors_request_;
}
inline ::Anki::Vector::external_interface::StopAllMotorsRequest* GatewayWrapper::mutable_stop_all_motors_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.stop_all_motors_request)
  return _internal_mutable_stop_all_motors_request();
}

// .Anki.Vector.external_interface.StopAllMotorsResponse stop_all_motors_response = 536;
inline bool GatewayWrapper::_internal_has_stop_all_motors_response() const {
  return oneof_message_type_case() == kStopAllMotorsResponse;
}
inline bool GatewayWrapper::has_stop_all_motors_response() const {
  return _internal_has_stop_all_motors_response();
}
inline void GatewayWrapper::set_has_stop_all_motors_response() {
  _oneof_case_[0] = kStopAllMotorsResponse;
}
inline ::Anki::Vector::external_interface::StopAllMotorsResponse* GatewayWrapper::release_stop_all_motors_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.stop_all_motors_response)
  if (_internal_has_stop_all_motors_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::StopAllMotorsResponse* temp = oneof_message_type_.stop_all_motors_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.stop_all_motors_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::StopAllMotorsResponse& GatewayWrapper::_internal_stop_all_motors_response() const {
  return _internal_has_stop_all_motors_response()
      ? *oneof_message_type_.stop_all_motors_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::StopAllMotorsResponse*>(&::Anki::Vector::external_interface::_StopAllMotorsResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::StopAllMotorsResponse& GatewayWrapper::stop_all_motors_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.stop_all_motors_response)
  return _internal_stop_all_motors_response();
}
inline ::Anki::Vector::external_interface::StopAllMotorsResponse* GatewayWrapper::unsafe_arena_release_stop_all_motors_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.stop_all_motors_response)
  if (_internal_has_stop_all_motors_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::StopAllMotorsResponse* temp = oneof_message_type_.stop_all_motors_response_;
    oneof_message_type_.stop_all_motors_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_stop_all_motors_response(::Anki::Vector::external_interface::StopAllMotorsResponse* stop_all_motors_response) {
  clear_oneof_message_type();
  if (stop_all_motors_response) {
    set_has_stop_all_motors_response();
    oneof_message_type_.stop_all_motors_response_ = stop_all_motors_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.stop_all_motors_response)
}
inline ::Anki::Vector::external_interface::StopAllMotorsResponse* GatewayWrapper::_internal_mutable_stop_all_motors_response() {
  if (!_internal_has_stop_all_motors_response()) {
    clear_oneof_message_type();
    set_has_stop_all_motors_response();
    oneof_message_type_.stop_all_motors_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::StopAllMotorsResponse >(GetArena());
  }
  return oneof_message_type_.stop_all_motors_response_;
}
inline ::Anki::Vector::external_interface::StopAllMotorsResponse* GatewayWrapper::mutable_stop_all_motors_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.stop_all_motors_response)
  return _internal_mutable_stop_all_motors_response();
}

// .Anki.Vector.external_interface.RobotHistoryRequest robot_history_request = 600;
inline bool GatewayWrapper::_internal_has_robot_history_request() const {
  return oneof_message_type_case() == kRobotHistoryRequest;
}
inline bool GatewayWrapper::has_robot_history_request() const {
  return _internal_has_robot_history_request();
}
inline void GatewayWrapper::set_has_robot_history_request() {
  _oneof_case_[0] = kRobotHistoryRequest;
}
inline ::Anki::Vector::external_interface::RobotHistoryRequest* GatewayWrapper::release_robot_history_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.robot_history_request)
  if (_internal_has_robot_history_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::RobotHistoryRequest* temp = oneof_message_type_.robot_history_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.robot_history_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::RobotHistoryRequest& GatewayWrapper::_internal_robot_history_request() const {
  return _internal_has_robot_history_request()
      ? *oneof_message_type_.robot_history_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::RobotHistoryRequest*>(&::Anki::Vector::external_interface::_RobotHistoryRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::RobotHistoryRequest& GatewayWrapper::robot_history_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.robot_history_request)
  return _internal_robot_history_request();
}
inline ::Anki::Vector::external_interface::RobotHistoryRequest* GatewayWrapper::unsafe_arena_release_robot_history_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.robot_history_request)
  if (_internal_has_robot_history_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::RobotHistoryRequest* temp = oneof_message_type_.robot_history_request_;
    oneof_message_type_.robot_history_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_robot_history_request(::Anki::Vector::external_interface::RobotHistoryRequest* robot_history_request) {
  clear_oneof_message_type();
  if (robot_history_request) {
    set_has_robot_history_request();
    oneof_message_type_.robot_history_request_ = robot_history_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.robot_history_request)
}
inline ::Anki::Vector::external_interface::RobotHistoryRequest* GatewayWrapper::_internal_mutable_robot_history_request() {
  if (!_internal_has_robot_history_request()) {
    clear_oneof_message_type();
    set_has_robot_history_request();
    oneof_message_type_.robot_history_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::RobotHistoryRequest >(GetArena());
  }
  return oneof_message_type_.robot_history_request_;
}
inline ::Anki::Vector::external_interface::RobotHistoryRequest* GatewayWrapper::mutable_robot_history_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.robot_history_request)
  return _internal_mutable_robot_history_request();
}

// .Anki.Vector.external_interface.RobotHistoryResponse robot_history_response = 601;
inline bool GatewayWrapper::_internal_has_robot_history_response() const {
  return oneof_message_type_case() == kRobotHistoryResponse;
}
inline bool GatewayWrapper::has_robot_history_response() const {
  return _internal_has_robot_history_response();
}
inline void GatewayWrapper::set_has_robot_history_response() {
  _oneof_case_[0] = kRobotHistoryResponse;
}
inline ::Anki::Vector::external_interface::RobotHistoryResponse* GatewayWrapper::release_robot_history_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.robot_history_response)
  if (_internal_has_robot_history_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::RobotHistoryResponse* temp = oneof_message_type_.robot_history_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.robot_history_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::RobotHistoryResponse& GatewayWrapper::_internal_robot_history_response() const {
  return _internal_has_robot_history_response()
      ? *oneof_message_type_.robot_history_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::RobotHistoryResponse*>(&::Anki::Vector::external_interface::_RobotHistoryResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::RobotHistoryResponse& GatewayWrapper::robot_history_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.robot_history_response)
  return _internal_robot_history_response();
}
inline ::Anki::Vector::external_interface::RobotHistoryResponse* GatewayWrapper::unsafe_arena_release_robot_history_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.robot_history_response)
  if (_internal_has_robot_history_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::RobotHistoryResponse* temp = oneof_message_type_.robot_history_response_;
    oneof_message_type_.robot_history_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_robot_history_response(::Anki::Vector::external_interface::RobotHistoryResponse* robot_history_response) {
  clear_oneof_message_type();
  if (robot_history_response) {
    set_has_robot_history_response();
    oneof_message_type_.robot_history_response_ = robot_history_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.robot_history_response)
}
inline ::Anki::Vector::external_interface::RobotHistoryResponse* GatewayWrapper::_internal_mutable_robot_history_response() {
  if (!_internal_has_robot_history_response()) {
    clear_oneof_message_type();
    set_has_robot_history_response();
    oneof_message_type_.robot_history_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::RobotHistoryResponse >(GetArena());
  }
  return oneof_message_type_.robot_history_response_;
}
inline ::Anki::Vector::external_interface::RobotHistoryResponse* GatewayWrapper::mutable_robot_history_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.robot_history_response)
  return _internal_mutable_robot_history_response();
}

// .Anki.Vector.external_interface.ConnectCubeRequest connect_cube_request = 700;
inline bool GatewayWrapper::_internal_has_connect_cube_request() const {
  return oneof_message_type_case() == kConnectCubeRequest;
}
inline bool GatewayWrapper::has_connect_cube_request() const {
  return _internal_has_connect_cube_request();
}
inline void GatewayWrapper::set_has_connect_cube_request() {
  _oneof_case_[0] = kConnectCubeRequest;
}
inline ::Anki::Vector::external_interface::ConnectCubeRequest* GatewayWrapper::release_connect_cube_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.connect_cube_request)
  if (_internal_has_connect_cube_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ConnectCubeRequest* temp = oneof_message_type_.connect_cube_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.connect_cube_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ConnectCubeRequest& GatewayWrapper::_internal_connect_cube_request() const {
  return _internal_has_connect_cube_request()
      ? *oneof_message_type_.connect_cube_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ConnectCubeRequest*>(&::Anki::Vector::external_interface::_ConnectCubeRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::ConnectCubeRequest& GatewayWrapper::connect_cube_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.connect_cube_request)
  return _internal_connect_cube_request();
}
inline ::Anki::Vector::external_interface::ConnectCubeRequest* GatewayWrapper::unsafe_arena_release_connect_cube_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.connect_cube_request)
  if (_internal_has_connect_cube_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ConnectCubeRequest* temp = oneof_message_type_.connect_cube_request_;
    oneof_message_type_.connect_cube_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_connect_cube_request(::Anki::Vector::external_interface::ConnectCubeRequest* connect_cube_request) {
  clear_oneof_message_type();
  if (connect_cube_request) {
    set_has_connect_cube_request();
    oneof_message_type_.connect_cube_request_ = connect_cube_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.connect_cube_request)
}
inline ::Anki::Vector::external_interface::ConnectCubeRequest* GatewayWrapper::_internal_mutable_connect_cube_request() {
  if (!_internal_has_connect_cube_request()) {
    clear_oneof_message_type();
    set_has_connect_cube_request();
    oneof_message_type_.connect_cube_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ConnectCubeRequest >(GetArena());
  }
  return oneof_message_type_.connect_cube_request_;
}
inline ::Anki::Vector::external_interface::ConnectCubeRequest* GatewayWrapper::mutable_connect_cube_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.connect_cube_request)
  return _internal_mutable_connect_cube_request();
}

// .Anki.Vector.external_interface.ConnectCubeResponse connect_cube_response = 701;
inline bool GatewayWrapper::_internal_has_connect_cube_response() const {
  return oneof_message_type_case() == kConnectCubeResponse;
}
inline bool GatewayWrapper::has_connect_cube_response() const {
  return _internal_has_connect_cube_response();
}
inline void GatewayWrapper::set_has_connect_cube_response() {
  _oneof_case_[0] = kConnectCubeResponse;
}
inline ::Anki::Vector::external_interface::ConnectCubeResponse* GatewayWrapper::release_connect_cube_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.connect_cube_response)
  if (_internal_has_connect_cube_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ConnectCubeResponse* temp = oneof_message_type_.connect_cube_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.connect_cube_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ConnectCubeResponse& GatewayWrapper::_internal_connect_cube_response() const {
  return _internal_has_connect_cube_response()
      ? *oneof_message_type_.connect_cube_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ConnectCubeResponse*>(&::Anki::Vector::external_interface::_ConnectCubeResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::ConnectCubeResponse& GatewayWrapper::connect_cube_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.connect_cube_response)
  return _internal_connect_cube_response();
}
inline ::Anki::Vector::external_interface::ConnectCubeResponse* GatewayWrapper::unsafe_arena_release_connect_cube_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.connect_cube_response)
  if (_internal_has_connect_cube_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ConnectCubeResponse* temp = oneof_message_type_.connect_cube_response_;
    oneof_message_type_.connect_cube_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_connect_cube_response(::Anki::Vector::external_interface::ConnectCubeResponse* connect_cube_response) {
  clear_oneof_message_type();
  if (connect_cube_response) {
    set_has_connect_cube_response();
    oneof_message_type_.connect_cube_response_ = connect_cube_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.connect_cube_response)
}
inline ::Anki::Vector::external_interface::ConnectCubeResponse* GatewayWrapper::_internal_mutable_connect_cube_response() {
  if (!_internal_has_connect_cube_response()) {
    clear_oneof_message_type();
    set_has_connect_cube_response();
    oneof_message_type_.connect_cube_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ConnectCubeResponse >(GetArena());
  }
  return oneof_message_type_.connect_cube_response_;
}
inline ::Anki::Vector::external_interface::ConnectCubeResponse* GatewayWrapper::mutable_connect_cube_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.connect_cube_response)
  return _internal_mutable_connect_cube_response();
}

// .Anki.Vector.external_interface.DisconnectCubeRequest disconnect_cube_request = 702;
inline bool GatewayWrapper::_internal_has_disconnect_cube_request() const {
  return oneof_message_type_case() == kDisconnectCubeRequest;
}
inline bool GatewayWrapper::has_disconnect_cube_request() const {
  return _internal_has_disconnect_cube_request();
}
inline void GatewayWrapper::set_has_disconnect_cube_request() {
  _oneof_case_[0] = kDisconnectCubeRequest;
}
inline ::Anki::Vector::external_interface::DisconnectCubeRequest* GatewayWrapper::release_disconnect_cube_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.disconnect_cube_request)
  if (_internal_has_disconnect_cube_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::DisconnectCubeRequest* temp = oneof_message_type_.disconnect_cube_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.disconnect_cube_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::DisconnectCubeRequest& GatewayWrapper::_internal_disconnect_cube_request() const {
  return _internal_has_disconnect_cube_request()
      ? *oneof_message_type_.disconnect_cube_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::DisconnectCubeRequest*>(&::Anki::Vector::external_interface::_DisconnectCubeRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::DisconnectCubeRequest& GatewayWrapper::disconnect_cube_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.disconnect_cube_request)
  return _internal_disconnect_cube_request();
}
inline ::Anki::Vector::external_interface::DisconnectCubeRequest* GatewayWrapper::unsafe_arena_release_disconnect_cube_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.disconnect_cube_request)
  if (_internal_has_disconnect_cube_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::DisconnectCubeRequest* temp = oneof_message_type_.disconnect_cube_request_;
    oneof_message_type_.disconnect_cube_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_disconnect_cube_request(::Anki::Vector::external_interface::DisconnectCubeRequest* disconnect_cube_request) {
  clear_oneof_message_type();
  if (disconnect_cube_request) {
    set_has_disconnect_cube_request();
    oneof_message_type_.disconnect_cube_request_ = disconnect_cube_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.disconnect_cube_request)
}
inline ::Anki::Vector::external_interface::DisconnectCubeRequest* GatewayWrapper::_internal_mutable_disconnect_cube_request() {
  if (!_internal_has_disconnect_cube_request()) {
    clear_oneof_message_type();
    set_has_disconnect_cube_request();
    oneof_message_type_.disconnect_cube_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::DisconnectCubeRequest >(GetArena());
  }
  return oneof_message_type_.disconnect_cube_request_;
}
inline ::Anki::Vector::external_interface::DisconnectCubeRequest* GatewayWrapper::mutable_disconnect_cube_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.disconnect_cube_request)
  return _internal_mutable_disconnect_cube_request();
}

// .Anki.Vector.external_interface.FlashCubeLightsRequest flash_cube_lights_request = 703;
inline bool GatewayWrapper::_internal_has_flash_cube_lights_request() const {
  return oneof_message_type_case() == kFlashCubeLightsRequest;
}
inline bool GatewayWrapper::has_flash_cube_lights_request() const {
  return _internal_has_flash_cube_lights_request();
}
inline void GatewayWrapper::set_has_flash_cube_lights_request() {
  _oneof_case_[0] = kFlashCubeLightsRequest;
}
inline ::Anki::Vector::external_interface::FlashCubeLightsRequest* GatewayWrapper::release_flash_cube_lights_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.flash_cube_lights_request)
  if (_internal_has_flash_cube_lights_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::FlashCubeLightsRequest* temp = oneof_message_type_.flash_cube_lights_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.flash_cube_lights_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::FlashCubeLightsRequest& GatewayWrapper::_internal_flash_cube_lights_request() const {
  return _internal_has_flash_cube_lights_request()
      ? *oneof_message_type_.flash_cube_lights_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::FlashCubeLightsRequest*>(&::Anki::Vector::external_interface::_FlashCubeLightsRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::FlashCubeLightsRequest& GatewayWrapper::flash_cube_lights_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.flash_cube_lights_request)
  return _internal_flash_cube_lights_request();
}
inline ::Anki::Vector::external_interface::FlashCubeLightsRequest* GatewayWrapper::unsafe_arena_release_flash_cube_lights_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.flash_cube_lights_request)
  if (_internal_has_flash_cube_lights_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::FlashCubeLightsRequest* temp = oneof_message_type_.flash_cube_lights_request_;
    oneof_message_type_.flash_cube_lights_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_flash_cube_lights_request(::Anki::Vector::external_interface::FlashCubeLightsRequest* flash_cube_lights_request) {
  clear_oneof_message_type();
  if (flash_cube_lights_request) {
    set_has_flash_cube_lights_request();
    oneof_message_type_.flash_cube_lights_request_ = flash_cube_lights_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.flash_cube_lights_request)
}
inline ::Anki::Vector::external_interface::FlashCubeLightsRequest* GatewayWrapper::_internal_mutable_flash_cube_lights_request() {
  if (!_internal_has_flash_cube_lights_request()) {
    clear_oneof_message_type();
    set_has_flash_cube_lights_request();
    oneof_message_type_.flash_cube_lights_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::FlashCubeLightsRequest >(GetArena());
  }
  return oneof_message_type_.flash_cube_lights_request_;
}
inline ::Anki::Vector::external_interface::FlashCubeLightsRequest* GatewayWrapper::mutable_flash_cube_lights_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.flash_cube_lights_request)
  return _internal_mutable_flash_cube_lights_request();
}

// .Anki.Vector.external_interface.ForgetPreferredCubeRequest forget_preferred_cube_request = 704;
inline bool GatewayWrapper::_internal_has_forget_preferred_cube_request() const {
  return oneof_message_type_case() == kForgetPreferredCubeRequest;
}
inline bool GatewayWrapper::has_forget_preferred_cube_request() const {
  return _internal_has_forget_preferred_cube_request();
}
inline void GatewayWrapper::set_has_forget_preferred_cube_request() {
  _oneof_case_[0] = kForgetPreferredCubeRequest;
}
inline ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* GatewayWrapper::release_forget_preferred_cube_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.forget_preferred_cube_request)
  if (_internal_has_forget_preferred_cube_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* temp = oneof_message_type_.forget_preferred_cube_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.forget_preferred_cube_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ForgetPreferredCubeRequest& GatewayWrapper::_internal_forget_preferred_cube_request() const {
  return _internal_has_forget_preferred_cube_request()
      ? *oneof_message_type_.forget_preferred_cube_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ForgetPreferredCubeRequest*>(&::Anki::Vector::external_interface::_ForgetPreferredCubeRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::ForgetPreferredCubeRequest& GatewayWrapper::forget_preferred_cube_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.forget_preferred_cube_request)
  return _internal_forget_preferred_cube_request();
}
inline ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* GatewayWrapper::unsafe_arena_release_forget_preferred_cube_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.forget_preferred_cube_request)
  if (_internal_has_forget_preferred_cube_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* temp = oneof_message_type_.forget_preferred_cube_request_;
    oneof_message_type_.forget_preferred_cube_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_forget_preferred_cube_request(::Anki::Vector::external_interface::ForgetPreferredCubeRequest* forget_preferred_cube_request) {
  clear_oneof_message_type();
  if (forget_preferred_cube_request) {
    set_has_forget_preferred_cube_request();
    oneof_message_type_.forget_preferred_cube_request_ = forget_preferred_cube_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.forget_preferred_cube_request)
}
inline ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* GatewayWrapper::_internal_mutable_forget_preferred_cube_request() {
  if (!_internal_has_forget_preferred_cube_request()) {
    clear_oneof_message_type();
    set_has_forget_preferred_cube_request();
    oneof_message_type_.forget_preferred_cube_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ForgetPreferredCubeRequest >(GetArena());
  }
  return oneof_message_type_.forget_preferred_cube_request_;
}
inline ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* GatewayWrapper::mutable_forget_preferred_cube_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.forget_preferred_cube_request)
  return _internal_mutable_forget_preferred_cube_request();
}

// .Anki.Vector.external_interface.SetPreferredCubeRequest set_preferred_cube_request = 705;
inline bool GatewayWrapper::_internal_has_set_preferred_cube_request() const {
  return oneof_message_type_case() == kSetPreferredCubeRequest;
}
inline bool GatewayWrapper::has_set_preferred_cube_request() const {
  return _internal_has_set_preferred_cube_request();
}
inline void GatewayWrapper::set_has_set_preferred_cube_request() {
  _oneof_case_[0] = kSetPreferredCubeRequest;
}
inline ::Anki::Vector::external_interface::SetPreferredCubeRequest* GatewayWrapper::release_set_preferred_cube_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.set_preferred_cube_request)
  if (_internal_has_set_preferred_cube_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SetPreferredCubeRequest* temp = oneof_message_type_.set_preferred_cube_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.set_preferred_cube_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SetPreferredCubeRequest& GatewayWrapper::_internal_set_preferred_cube_request() const {
  return _internal_has_set_preferred_cube_request()
      ? *oneof_message_type_.set_preferred_cube_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SetPreferredCubeRequest*>(&::Anki::Vector::external_interface::_SetPreferredCubeRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::SetPreferredCubeRequest& GatewayWrapper::set_preferred_cube_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.set_preferred_cube_request)
  return _internal_set_preferred_cube_request();
}
inline ::Anki::Vector::external_interface::SetPreferredCubeRequest* GatewayWrapper::unsafe_arena_release_set_preferred_cube_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.set_preferred_cube_request)
  if (_internal_has_set_preferred_cube_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SetPreferredCubeRequest* temp = oneof_message_type_.set_preferred_cube_request_;
    oneof_message_type_.set_preferred_cube_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_set_preferred_cube_request(::Anki::Vector::external_interface::SetPreferredCubeRequest* set_preferred_cube_request) {
  clear_oneof_message_type();
  if (set_preferred_cube_request) {
    set_has_set_preferred_cube_request();
    oneof_message_type_.set_preferred_cube_request_ = set_preferred_cube_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_preferred_cube_request)
}
inline ::Anki::Vector::external_interface::SetPreferredCubeRequest* GatewayWrapper::_internal_mutable_set_preferred_cube_request() {
  if (!_internal_has_set_preferred_cube_request()) {
    clear_oneof_message_type();
    set_has_set_preferred_cube_request();
    oneof_message_type_.set_preferred_cube_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SetPreferredCubeRequest >(GetArena());
  }
  return oneof_message_type_.set_preferred_cube_request_;
}
inline ::Anki::Vector::external_interface::SetPreferredCubeRequest* GatewayWrapper::mutable_set_preferred_cube_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.set_preferred_cube_request)
  return _internal_mutable_set_preferred_cube_request();
}

// .Anki.Vector.external_interface.SetCubeLightsRequest set_cube_lights_request = 706;
inline bool GatewayWrapper::_internal_has_set_cube_lights_request() const {
  return oneof_message_type_case() == kSetCubeLightsRequest;
}
inline bool GatewayWrapper::has_set_cube_lights_request() const {
  return _internal_has_set_cube_lights_request();
}
inline void GatewayWrapper::set_has_set_cube_lights_request() {
  _oneof_case_[0] = kSetCubeLightsRequest;
}
inline ::Anki::Vector::external_interface::SetCubeLightsRequest* GatewayWrapper::release_set_cube_lights_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.set_cube_lights_request)
  if (_internal_has_set_cube_lights_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SetCubeLightsRequest* temp = oneof_message_type_.set_cube_lights_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.set_cube_lights_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SetCubeLightsRequest& GatewayWrapper::_internal_set_cube_lights_request() const {
  return _internal_has_set_cube_lights_request()
      ? *oneof_message_type_.set_cube_lights_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SetCubeLightsRequest*>(&::Anki::Vector::external_interface::_SetCubeLightsRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::SetCubeLightsRequest& GatewayWrapper::set_cube_lights_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.set_cube_lights_request)
  return _internal_set_cube_lights_request();
}
inline ::Anki::Vector::external_interface::SetCubeLightsRequest* GatewayWrapper::unsafe_arena_release_set_cube_lights_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.set_cube_lights_request)
  if (_internal_has_set_cube_lights_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SetCubeLightsRequest* temp = oneof_message_type_.set_cube_lights_request_;
    oneof_message_type_.set_cube_lights_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_set_cube_lights_request(::Anki::Vector::external_interface::SetCubeLightsRequest* set_cube_lights_request) {
  clear_oneof_message_type();
  if (set_cube_lights_request) {
    set_has_set_cube_lights_request();
    oneof_message_type_.set_cube_lights_request_ = set_cube_lights_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_cube_lights_request)
}
inline ::Anki::Vector::external_interface::SetCubeLightsRequest* GatewayWrapper::_internal_mutable_set_cube_lights_request() {
  if (!_internal_has_set_cube_lights_request()) {
    clear_oneof_message_type();
    set_has_set_cube_lights_request();
    oneof_message_type_.set_cube_lights_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SetCubeLightsRequest >(GetArena());
  }
  return oneof_message_type_.set_cube_lights_request_;
}
inline ::Anki::Vector::external_interface::SetCubeLightsRequest* GatewayWrapper::mutable_set_cube_lights_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.set_cube_lights_request)
  return _internal_mutable_set_cube_lights_request();
}

// .Anki.Vector.external_interface.CubesAvailableRequest cubes_available_request = 707;
inline bool GatewayWrapper::_internal_has_cubes_available_request() const {
  return oneof_message_type_case() == kCubesAvailableRequest;
}
inline bool GatewayWrapper::has_cubes_available_request() const {
  return _internal_has_cubes_available_request();
}
inline void GatewayWrapper::set_has_cubes_available_request() {
  _oneof_case_[0] = kCubesAvailableRequest;
}
inline ::Anki::Vector::external_interface::CubesAvailableRequest* GatewayWrapper::release_cubes_available_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.cubes_available_request)
  if (_internal_has_cubes_available_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::CubesAvailableRequest* temp = oneof_message_type_.cubes_available_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.cubes_available_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CubesAvailableRequest& GatewayWrapper::_internal_cubes_available_request() const {
  return _internal_has_cubes_available_request()
      ? *oneof_message_type_.cubes_available_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CubesAvailableRequest*>(&::Anki::Vector::external_interface::_CubesAvailableRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::CubesAvailableRequest& GatewayWrapper::cubes_available_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.cubes_available_request)
  return _internal_cubes_available_request();
}
inline ::Anki::Vector::external_interface::CubesAvailableRequest* GatewayWrapper::unsafe_arena_release_cubes_available_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.cubes_available_request)
  if (_internal_has_cubes_available_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::CubesAvailableRequest* temp = oneof_message_type_.cubes_available_request_;
    oneof_message_type_.cubes_available_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_cubes_available_request(::Anki::Vector::external_interface::CubesAvailableRequest* cubes_available_request) {
  clear_oneof_message_type();
  if (cubes_available_request) {
    set_has_cubes_available_request();
    oneof_message_type_.cubes_available_request_ = cubes_available_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.cubes_available_request)
}
inline ::Anki::Vector::external_interface::CubesAvailableRequest* GatewayWrapper::_internal_mutable_cubes_available_request() {
  if (!_internal_has_cubes_available_request()) {
    clear_oneof_message_type();
    set_has_cubes_available_request();
    oneof_message_type_.cubes_available_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CubesAvailableRequest >(GetArena());
  }
  return oneof_message_type_.cubes_available_request_;
}
inline ::Anki::Vector::external_interface::CubesAvailableRequest* GatewayWrapper::mutable_cubes_available_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.cubes_available_request)
  return _internal_mutable_cubes_available_request();
}

// .Anki.Vector.external_interface.CubesAvailableResponse cubes_available_response = 708;
inline bool GatewayWrapper::_internal_has_cubes_available_response() const {
  return oneof_message_type_case() == kCubesAvailableResponse;
}
inline bool GatewayWrapper::has_cubes_available_response() const {
  return _internal_has_cubes_available_response();
}
inline void GatewayWrapper::set_has_cubes_available_response() {
  _oneof_case_[0] = kCubesAvailableResponse;
}
inline ::Anki::Vector::external_interface::CubesAvailableResponse* GatewayWrapper::release_cubes_available_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.cubes_available_response)
  if (_internal_has_cubes_available_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::CubesAvailableResponse* temp = oneof_message_type_.cubes_available_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.cubes_available_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CubesAvailableResponse& GatewayWrapper::_internal_cubes_available_response() const {
  return _internal_has_cubes_available_response()
      ? *oneof_message_type_.cubes_available_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CubesAvailableResponse*>(&::Anki::Vector::external_interface::_CubesAvailableResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::CubesAvailableResponse& GatewayWrapper::cubes_available_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.cubes_available_response)
  return _internal_cubes_available_response();
}
inline ::Anki::Vector::external_interface::CubesAvailableResponse* GatewayWrapper::unsafe_arena_release_cubes_available_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.cubes_available_response)
  if (_internal_has_cubes_available_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::CubesAvailableResponse* temp = oneof_message_type_.cubes_available_response_;
    oneof_message_type_.cubes_available_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_cubes_available_response(::Anki::Vector::external_interface::CubesAvailableResponse* cubes_available_response) {
  clear_oneof_message_type();
  if (cubes_available_response) {
    set_has_cubes_available_response();
    oneof_message_type_.cubes_available_response_ = cubes_available_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.cubes_available_response)
}
inline ::Anki::Vector::external_interface::CubesAvailableResponse* GatewayWrapper::_internal_mutable_cubes_available_response() {
  if (!_internal_has_cubes_available_response()) {
    clear_oneof_message_type();
    set_has_cubes_available_response();
    oneof_message_type_.cubes_available_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CubesAvailableResponse >(GetArena());
  }
  return oneof_message_type_.cubes_available_response_;
}
inline ::Anki::Vector::external_interface::CubesAvailableResponse* GatewayWrapper::mutable_cubes_available_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.cubes_available_response)
  return _internal_mutable_cubes_available_response();
}

// .Anki.Vector.external_interface.BatteryStateRequest battery_state_request = 800;
inline bool GatewayWrapper::_internal_has_battery_state_request() const {
  return oneof_message_type_case() == kBatteryStateRequest;
}
inline bool GatewayWrapper::has_battery_state_request() const {
  return _internal_has_battery_state_request();
}
inline void GatewayWrapper::set_has_battery_state_request() {
  _oneof_case_[0] = kBatteryStateRequest;
}
inline ::Anki::Vector::external_interface::BatteryStateRequest* GatewayWrapper::release_battery_state_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.battery_state_request)
  if (_internal_has_battery_state_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::BatteryStateRequest* temp = oneof_message_type_.battery_state_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.battery_state_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::BatteryStateRequest& GatewayWrapper::_internal_battery_state_request() const {
  return _internal_has_battery_state_request()
      ? *oneof_message_type_.battery_state_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::BatteryStateRequest*>(&::Anki::Vector::external_interface::_BatteryStateRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::BatteryStateRequest& GatewayWrapper::battery_state_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.battery_state_request)
  return _internal_battery_state_request();
}
inline ::Anki::Vector::external_interface::BatteryStateRequest* GatewayWrapper::unsafe_arena_release_battery_state_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.battery_state_request)
  if (_internal_has_battery_state_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::BatteryStateRequest* temp = oneof_message_type_.battery_state_request_;
    oneof_message_type_.battery_state_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_battery_state_request(::Anki::Vector::external_interface::BatteryStateRequest* battery_state_request) {
  clear_oneof_message_type();
  if (battery_state_request) {
    set_has_battery_state_request();
    oneof_message_type_.battery_state_request_ = battery_state_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.battery_state_request)
}
inline ::Anki::Vector::external_interface::BatteryStateRequest* GatewayWrapper::_internal_mutable_battery_state_request() {
  if (!_internal_has_battery_state_request()) {
    clear_oneof_message_type();
    set_has_battery_state_request();
    oneof_message_type_.battery_state_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::BatteryStateRequest >(GetArena());
  }
  return oneof_message_type_.battery_state_request_;
}
inline ::Anki::Vector::external_interface::BatteryStateRequest* GatewayWrapper::mutable_battery_state_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.battery_state_request)
  return _internal_mutable_battery_state_request();
}

// .Anki.Vector.external_interface.BatteryStateResponse battery_state_response = 801;
inline bool GatewayWrapper::_internal_has_battery_state_response() const {
  return oneof_message_type_case() == kBatteryStateResponse;
}
inline bool GatewayWrapper::has_battery_state_response() const {
  return _internal_has_battery_state_response();
}
inline void GatewayWrapper::set_has_battery_state_response() {
  _oneof_case_[0] = kBatteryStateResponse;
}
inline ::Anki::Vector::external_interface::BatteryStateResponse* GatewayWrapper::release_battery_state_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.battery_state_response)
  if (_internal_has_battery_state_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::BatteryStateResponse* temp = oneof_message_type_.battery_state_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.battery_state_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::BatteryStateResponse& GatewayWrapper::_internal_battery_state_response() const {
  return _internal_has_battery_state_response()
      ? *oneof_message_type_.battery_state_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::BatteryStateResponse*>(&::Anki::Vector::external_interface::_BatteryStateResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::BatteryStateResponse& GatewayWrapper::battery_state_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.battery_state_response)
  return _internal_battery_state_response();
}
inline ::Anki::Vector::external_interface::BatteryStateResponse* GatewayWrapper::unsafe_arena_release_battery_state_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.battery_state_response)
  if (_internal_has_battery_state_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::BatteryStateResponse* temp = oneof_message_type_.battery_state_response_;
    oneof_message_type_.battery_state_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_battery_state_response(::Anki::Vector::external_interface::BatteryStateResponse* battery_state_response) {
  clear_oneof_message_type();
  if (battery_state_response) {
    set_has_battery_state_response();
    oneof_message_type_.battery_state_response_ = battery_state_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.battery_state_response)
}
inline ::Anki::Vector::external_interface::BatteryStateResponse* GatewayWrapper::_internal_mutable_battery_state_response() {
  if (!_internal_has_battery_state_response()) {
    clear_oneof_message_type();
    set_has_battery_state_response();
    oneof_message_type_.battery_state_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::BatteryStateResponse >(GetArena());
  }
  return oneof_message_type_.battery_state_response_;
}
inline ::Anki::Vector::external_interface::BatteryStateResponse* GatewayWrapper::mutable_battery_state_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.battery_state_response)
  return _internal_mutable_battery_state_response();
}

// .Anki.Vector.external_interface.VersionStateRequest version_state_request = 802;
inline bool GatewayWrapper::_internal_has_version_state_request() const {
  return oneof_message_type_case() == kVersionStateRequest;
}
inline bool GatewayWrapper::has_version_state_request() const {
  return _internal_has_version_state_request();
}
inline void GatewayWrapper::set_has_version_state_request() {
  _oneof_case_[0] = kVersionStateRequest;
}
inline ::Anki::Vector::external_interface::VersionStateRequest* GatewayWrapper::release_version_state_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.version_state_request)
  if (_internal_has_version_state_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::VersionStateRequest* temp = oneof_message_type_.version_state_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.version_state_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::VersionStateRequest& GatewayWrapper::_internal_version_state_request() const {
  return _internal_has_version_state_request()
      ? *oneof_message_type_.version_state_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::VersionStateRequest*>(&::Anki::Vector::external_interface::_VersionStateRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::VersionStateRequest& GatewayWrapper::version_state_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.version_state_request)
  return _internal_version_state_request();
}
inline ::Anki::Vector::external_interface::VersionStateRequest* GatewayWrapper::unsafe_arena_release_version_state_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.version_state_request)
  if (_internal_has_version_state_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::VersionStateRequest* temp = oneof_message_type_.version_state_request_;
    oneof_message_type_.version_state_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_version_state_request(::Anki::Vector::external_interface::VersionStateRequest* version_state_request) {
  clear_oneof_message_type();
  if (version_state_request) {
    set_has_version_state_request();
    oneof_message_type_.version_state_request_ = version_state_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.version_state_request)
}
inline ::Anki::Vector::external_interface::VersionStateRequest* GatewayWrapper::_internal_mutable_version_state_request() {
  if (!_internal_has_version_state_request()) {
    clear_oneof_message_type();
    set_has_version_state_request();
    oneof_message_type_.version_state_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::VersionStateRequest >(GetArena());
  }
  return oneof_message_type_.version_state_request_;
}
inline ::Anki::Vector::external_interface::VersionStateRequest* GatewayWrapper::mutable_version_state_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.version_state_request)
  return _internal_mutable_version_state_request();
}

// .Anki.Vector.external_interface.VersionStateResponse version_state_response = 803;
inline bool GatewayWrapper::_internal_has_version_state_response() const {
  return oneof_message_type_case() == kVersionStateResponse;
}
inline bool GatewayWrapper::has_version_state_response() const {
  return _internal_has_version_state_response();
}
inline void GatewayWrapper::set_has_version_state_response() {
  _oneof_case_[0] = kVersionStateResponse;
}
inline ::Anki::Vector::external_interface::VersionStateResponse* GatewayWrapper::release_version_state_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.version_state_response)
  if (_internal_has_version_state_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::VersionStateResponse* temp = oneof_message_type_.version_state_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.version_state_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::VersionStateResponse& GatewayWrapper::_internal_version_state_response() const {
  return _internal_has_version_state_response()
      ? *oneof_message_type_.version_state_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::VersionStateResponse*>(&::Anki::Vector::external_interface::_VersionStateResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::VersionStateResponse& GatewayWrapper::version_state_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.version_state_response)
  return _internal_version_state_response();
}
inline ::Anki::Vector::external_interface::VersionStateResponse* GatewayWrapper::unsafe_arena_release_version_state_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.version_state_response)
  if (_internal_has_version_state_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::VersionStateResponse* temp = oneof_message_type_.version_state_response_;
    oneof_message_type_.version_state_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_version_state_response(::Anki::Vector::external_interface::VersionStateResponse* version_state_response) {
  clear_oneof_message_type();
  if (version_state_response) {
    set_has_version_state_response();
    oneof_message_type_.version_state_response_ = version_state_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.version_state_response)
}
inline ::Anki::Vector::external_interface::VersionStateResponse* GatewayWrapper::_internal_mutable_version_state_response() {
  if (!_internal_has_version_state_response()) {
    clear_oneof_message_type();
    set_has_version_state_response();
    oneof_message_type_.version_state_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::VersionStateResponse >(GetArena());
  }
  return oneof_message_type_.version_state_response_;
}
inline ::Anki::Vector::external_interface::VersionStateResponse* GatewayWrapper::mutable_version_state_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.version_state_response)
  return _internal_mutable_version_state_response();
}

// .Anki.Vector.external_interface.SayTextRequest say_text_request = 900;
inline bool GatewayWrapper::_internal_has_say_text_request() const {
  return oneof_message_type_case() == kSayTextRequest;
}
inline bool GatewayWrapper::has_say_text_request() const {
  return _internal_has_say_text_request();
}
inline void GatewayWrapper::set_has_say_text_request() {
  _oneof_case_[0] = kSayTextRequest;
}
inline ::Anki::Vector::external_interface::SayTextRequest* GatewayWrapper::release_say_text_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.say_text_request)
  if (_internal_has_say_text_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SayTextRequest* temp = oneof_message_type_.say_text_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.say_text_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SayTextRequest& GatewayWrapper::_internal_say_text_request() const {
  return _internal_has_say_text_request()
      ? *oneof_message_type_.say_text_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SayTextRequest*>(&::Anki::Vector::external_interface::_SayTextRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::SayTextRequest& GatewayWrapper::say_text_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.say_text_request)
  return _internal_say_text_request();
}
inline ::Anki::Vector::external_interface::SayTextRequest* GatewayWrapper::unsafe_arena_release_say_text_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.say_text_request)
  if (_internal_has_say_text_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SayTextRequest* temp = oneof_message_type_.say_text_request_;
    oneof_message_type_.say_text_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_say_text_request(::Anki::Vector::external_interface::SayTextRequest* say_text_request) {
  clear_oneof_message_type();
  if (say_text_request) {
    set_has_say_text_request();
    oneof_message_type_.say_text_request_ = say_text_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.say_text_request)
}
inline ::Anki::Vector::external_interface::SayTextRequest* GatewayWrapper::_internal_mutable_say_text_request() {
  if (!_internal_has_say_text_request()) {
    clear_oneof_message_type();
    set_has_say_text_request();
    oneof_message_type_.say_text_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SayTextRequest >(GetArena());
  }
  return oneof_message_type_.say_text_request_;
}
inline ::Anki::Vector::external_interface::SayTextRequest* GatewayWrapper::mutable_say_text_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.say_text_request)
  return _internal_mutable_say_text_request();
}

// .Anki.Vector.external_interface.SayTextResponse say_text_response = 901;
inline bool GatewayWrapper::_internal_has_say_text_response() const {
  return oneof_message_type_case() == kSayTextResponse;
}
inline bool GatewayWrapper::has_say_text_response() const {
  return _internal_has_say_text_response();
}
inline void GatewayWrapper::set_has_say_text_response() {
  _oneof_case_[0] = kSayTextResponse;
}
inline ::Anki::Vector::external_interface::SayTextResponse* GatewayWrapper::release_say_text_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.say_text_response)
  if (_internal_has_say_text_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SayTextResponse* temp = oneof_message_type_.say_text_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.say_text_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SayTextResponse& GatewayWrapper::_internal_say_text_response() const {
  return _internal_has_say_text_response()
      ? *oneof_message_type_.say_text_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SayTextResponse*>(&::Anki::Vector::external_interface::_SayTextResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::SayTextResponse& GatewayWrapper::say_text_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.say_text_response)
  return _internal_say_text_response();
}
inline ::Anki::Vector::external_interface::SayTextResponse* GatewayWrapper::unsafe_arena_release_say_text_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.say_text_response)
  if (_internal_has_say_text_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SayTextResponse* temp = oneof_message_type_.say_text_response_;
    oneof_message_type_.say_text_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_say_text_response(::Anki::Vector::external_interface::SayTextResponse* say_text_response) {
  clear_oneof_message_type();
  if (say_text_response) {
    set_has_say_text_response();
    oneof_message_type_.say_text_response_ = say_text_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.say_text_response)
}
inline ::Anki::Vector::external_interface::SayTextResponse* GatewayWrapper::_internal_mutable_say_text_response() {
  if (!_internal_has_say_text_response()) {
    clear_oneof_message_type();
    set_has_say_text_response();
    oneof_message_type_.say_text_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SayTextResponse >(GetArena());
  }
  return oneof_message_type_.say_text_response_;
}
inline ::Anki::Vector::external_interface::SayTextResponse* GatewayWrapper::mutable_say_text_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.say_text_response)
  return _internal_mutable_say_text_response();
}

// .Anki.Vector.external_interface.ControlRequest control_request = 1000;
inline bool GatewayWrapper::_internal_has_control_request() const {
  return oneof_message_type_case() == kControlRequest;
}
inline bool GatewayWrapper::has_control_request() const {
  return _internal_has_control_request();
}
inline void GatewayWrapper::set_has_control_request() {
  _oneof_case_[0] = kControlRequest;
}
inline ::Anki::Vector::external_interface::ControlRequest* GatewayWrapper::release_control_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.control_request)
  if (_internal_has_control_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ControlRequest* temp = oneof_message_type_.control_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.control_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ControlRequest& GatewayWrapper::_internal_control_request() const {
  return _internal_has_control_request()
      ? *oneof_message_type_.control_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ControlRequest*>(&::Anki::Vector::external_interface::_ControlRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::ControlRequest& GatewayWrapper::control_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.control_request)
  return _internal_control_request();
}
inline ::Anki::Vector::external_interface::ControlRequest* GatewayWrapper::unsafe_arena_release_control_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.control_request)
  if (_internal_has_control_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ControlRequest* temp = oneof_message_type_.control_request_;
    oneof_message_type_.control_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_control_request(::Anki::Vector::external_interface::ControlRequest* control_request) {
  clear_oneof_message_type();
  if (control_request) {
    set_has_control_request();
    oneof_message_type_.control_request_ = control_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.control_request)
}
inline ::Anki::Vector::external_interface::ControlRequest* GatewayWrapper::_internal_mutable_control_request() {
  if (!_internal_has_control_request()) {
    clear_oneof_message_type();
    set_has_control_request();
    oneof_message_type_.control_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ControlRequest >(GetArena());
  }
  return oneof_message_type_.control_request_;
}
inline ::Anki::Vector::external_interface::ControlRequest* GatewayWrapper::mutable_control_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.control_request)
  return _internal_mutable_control_request();
}

// .Anki.Vector.external_interface.ControlRelease control_release = 1001;
inline bool GatewayWrapper::_internal_has_control_release() const {
  return oneof_message_type_case() == kControlRelease;
}
inline bool GatewayWrapper::has_control_release() const {
  return _internal_has_control_release();
}
inline void GatewayWrapper::set_has_control_release() {
  _oneof_case_[0] = kControlRelease;
}
inline ::Anki::Vector::external_interface::ControlRelease* GatewayWrapper::release_control_release() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.control_release)
  if (_internal_has_control_release()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ControlRelease* temp = oneof_message_type_.control_release_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.control_release_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ControlRelease& GatewayWrapper::_internal_control_release() const {
  return _internal_has_control_release()
      ? *oneof_message_type_.control_release_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ControlRelease*>(&::Anki::Vector::external_interface::_ControlRelease_default_instance_);
}
inline const ::Anki::Vector::external_interface::ControlRelease& GatewayWrapper::control_release() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.control_release)
  return _internal_control_release();
}
inline ::Anki::Vector::external_interface::ControlRelease* GatewayWrapper::unsafe_arena_release_control_release() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.control_release)
  if (_internal_has_control_release()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ControlRelease* temp = oneof_message_type_.control_release_;
    oneof_message_type_.control_release_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_control_release(::Anki::Vector::external_interface::ControlRelease* control_release) {
  clear_oneof_message_type();
  if (control_release) {
    set_has_control_release();
    oneof_message_type_.control_release_ = control_release;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.control_release)
}
inline ::Anki::Vector::external_interface::ControlRelease* GatewayWrapper::_internal_mutable_control_release() {
  if (!_internal_has_control_release()) {
    clear_oneof_message_type();
    set_has_control_release();
    oneof_message_type_.control_release_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ControlRelease >(GetArena());
  }
  return oneof_message_type_.control_release_;
}
inline ::Anki::Vector::external_interface::ControlRelease* GatewayWrapper::mutable_control_release() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.control_release)
  return _internal_mutable_control_release();
}

// .Anki.Vector.external_interface.BehaviorControlResponse behavior_control_response = 1002;
inline bool GatewayWrapper::_internal_has_behavior_control_response() const {
  return oneof_message_type_case() == kBehaviorControlResponse;
}
inline bool GatewayWrapper::has_behavior_control_response() const {
  return _internal_has_behavior_control_response();
}
inline void GatewayWrapper::set_has_behavior_control_response() {
  _oneof_case_[0] = kBehaviorControlResponse;
}
inline ::Anki::Vector::external_interface::BehaviorControlResponse* GatewayWrapper::release_behavior_control_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.behavior_control_response)
  if (_internal_has_behavior_control_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::BehaviorControlResponse* temp = oneof_message_type_.behavior_control_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.behavior_control_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::BehaviorControlResponse& GatewayWrapper::_internal_behavior_control_response() const {
  return _internal_has_behavior_control_response()
      ? *oneof_message_type_.behavior_control_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::BehaviorControlResponse*>(&::Anki::Vector::external_interface::_BehaviorControlResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::BehaviorControlResponse& GatewayWrapper::behavior_control_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.behavior_control_response)
  return _internal_behavior_control_response();
}
inline ::Anki::Vector::external_interface::BehaviorControlResponse* GatewayWrapper::unsafe_arena_release_behavior_control_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.behavior_control_response)
  if (_internal_has_behavior_control_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::BehaviorControlResponse* temp = oneof_message_type_.behavior_control_response_;
    oneof_message_type_.behavior_control_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_behavior_control_response(::Anki::Vector::external_interface::BehaviorControlResponse* behavior_control_response) {
  clear_oneof_message_type();
  if (behavior_control_response) {
    set_has_behavior_control_response();
    oneof_message_type_.behavior_control_response_ = behavior_control_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.behavior_control_response)
}
inline ::Anki::Vector::external_interface::BehaviorControlResponse* GatewayWrapper::_internal_mutable_behavior_control_response() {
  if (!_internal_has_behavior_control_response()) {
    clear_oneof_message_type();
    set_has_behavior_control_response();
    oneof_message_type_.behavior_control_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::BehaviorControlResponse >(GetArena());
  }
  return oneof_message_type_.behavior_control_response_;
}
inline ::Anki::Vector::external_interface::BehaviorControlResponse* GatewayWrapper::mutable_behavior_control_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.behavior_control_response)
  return _internal_mutable_behavior_control_response();
}

// .Anki.Vector.external_interface.ImageChunk image_chunk = 1101;
inline bool GatewayWrapper::_internal_has_image_chunk() const {
  return oneof_message_type_case() == kImageChunk;
}
inline bool GatewayWrapper::has_image_chunk() const {
  return _internal_has_image_chunk();
}
inline void GatewayWrapper::set_has_image_chunk() {
  _oneof_case_[0] = kImageChunk;
}
inline ::Anki::Vector::external_interface::ImageChunk* GatewayWrapper::release_image_chunk() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.image_chunk)
  if (_internal_has_image_chunk()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ImageChunk* temp = oneof_message_type_.image_chunk_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.image_chunk_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ImageChunk& GatewayWrapper::_internal_image_chunk() const {
  return _internal_has_image_chunk()
      ? *oneof_message_type_.image_chunk_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ImageChunk*>(&::Anki::Vector::external_interface::_ImageChunk_default_instance_);
}
inline const ::Anki::Vector::external_interface::ImageChunk& GatewayWrapper::image_chunk() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.image_chunk)
  return _internal_image_chunk();
}
inline ::Anki::Vector::external_interface::ImageChunk* GatewayWrapper::unsafe_arena_release_image_chunk() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.image_chunk)
  if (_internal_has_image_chunk()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ImageChunk* temp = oneof_message_type_.image_chunk_;
    oneof_message_type_.image_chunk_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_image_chunk(::Anki::Vector::external_interface::ImageChunk* image_chunk) {
  clear_oneof_message_type();
  if (image_chunk) {
    set_has_image_chunk();
    oneof_message_type_.image_chunk_ = image_chunk;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.image_chunk)
}
inline ::Anki::Vector::external_interface::ImageChunk* GatewayWrapper::_internal_mutable_image_chunk() {
  if (!_internal_has_image_chunk()) {
    clear_oneof_message_type();
    set_has_image_chunk();
    oneof_message_type_.image_chunk_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ImageChunk >(GetArena());
  }
  return oneof_message_type_.image_chunk_;
}
inline ::Anki::Vector::external_interface::ImageChunk* GatewayWrapper::mutable_image_chunk() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.image_chunk)
  return _internal_mutable_image_chunk();
}

// .Anki.Vector.external_interface.EnableMarkerDetectionRequest enable_marker_detection_request = 1102;
inline bool GatewayWrapper::_internal_has_enable_marker_detection_request() const {
  return oneof_message_type_case() == kEnableMarkerDetectionRequest;
}
inline bool GatewayWrapper::has_enable_marker_detection_request() const {
  return _internal_has_enable_marker_detection_request();
}
inline void GatewayWrapper::set_has_enable_marker_detection_request() {
  _oneof_case_[0] = kEnableMarkerDetectionRequest;
}
inline ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* GatewayWrapper::release_enable_marker_detection_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.enable_marker_detection_request)
  if (_internal_has_enable_marker_detection_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* temp = oneof_message_type_.enable_marker_detection_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.enable_marker_detection_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::EnableMarkerDetectionRequest& GatewayWrapper::_internal_enable_marker_detection_request() const {
  return _internal_has_enable_marker_detection_request()
      ? *oneof_message_type_.enable_marker_detection_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::EnableMarkerDetectionRequest*>(&::Anki::Vector::external_interface::_EnableMarkerDetectionRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::EnableMarkerDetectionRequest& GatewayWrapper::enable_marker_detection_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.enable_marker_detection_request)
  return _internal_enable_marker_detection_request();
}
inline ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* GatewayWrapper::unsafe_arena_release_enable_marker_detection_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.enable_marker_detection_request)
  if (_internal_has_enable_marker_detection_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* temp = oneof_message_type_.enable_marker_detection_request_;
    oneof_message_type_.enable_marker_detection_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_enable_marker_detection_request(::Anki::Vector::external_interface::EnableMarkerDetectionRequest* enable_marker_detection_request) {
  clear_oneof_message_type();
  if (enable_marker_detection_request) {
    set_has_enable_marker_detection_request();
    oneof_message_type_.enable_marker_detection_request_ = enable_marker_detection_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_marker_detection_request)
}
inline ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* GatewayWrapper::_internal_mutable_enable_marker_detection_request() {
  if (!_internal_has_enable_marker_detection_request()) {
    clear_oneof_message_type();
    set_has_enable_marker_detection_request();
    oneof_message_type_.enable_marker_detection_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::EnableMarkerDetectionRequest >(GetArena());
  }
  return oneof_message_type_.enable_marker_detection_request_;
}
inline ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* GatewayWrapper::mutable_enable_marker_detection_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.enable_marker_detection_request)
  return _internal_mutable_enable_marker_detection_request();
}

// .Anki.Vector.external_interface.EnableMarkerDetectionResponse enable_marker_detection_response = 1103;
inline bool GatewayWrapper::_internal_has_enable_marker_detection_response() const {
  return oneof_message_type_case() == kEnableMarkerDetectionResponse;
}
inline bool GatewayWrapper::has_enable_marker_detection_response() const {
  return _internal_has_enable_marker_detection_response();
}
inline void GatewayWrapper::set_has_enable_marker_detection_response() {
  _oneof_case_[0] = kEnableMarkerDetectionResponse;
}
inline ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* GatewayWrapper::release_enable_marker_detection_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.enable_marker_detection_response)
  if (_internal_has_enable_marker_detection_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* temp = oneof_message_type_.enable_marker_detection_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.enable_marker_detection_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::EnableMarkerDetectionResponse& GatewayWrapper::_internal_enable_marker_detection_response() const {
  return _internal_has_enable_marker_detection_response()
      ? *oneof_message_type_.enable_marker_detection_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::EnableMarkerDetectionResponse*>(&::Anki::Vector::external_interface::_EnableMarkerDetectionResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::EnableMarkerDetectionResponse& GatewayWrapper::enable_marker_detection_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.enable_marker_detection_response)
  return _internal_enable_marker_detection_response();
}
inline ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* GatewayWrapper::unsafe_arena_release_enable_marker_detection_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.enable_marker_detection_response)
  if (_internal_has_enable_marker_detection_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* temp = oneof_message_type_.enable_marker_detection_response_;
    oneof_message_type_.enable_marker_detection_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_enable_marker_detection_response(::Anki::Vector::external_interface::EnableMarkerDetectionResponse* enable_marker_detection_response) {
  clear_oneof_message_type();
  if (enable_marker_detection_response) {
    set_has_enable_marker_detection_response();
    oneof_message_type_.enable_marker_detection_response_ = enable_marker_detection_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_marker_detection_response)
}
inline ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* GatewayWrapper::_internal_mutable_enable_marker_detection_response() {
  if (!_internal_has_enable_marker_detection_response()) {
    clear_oneof_message_type();
    set_has_enable_marker_detection_response();
    oneof_message_type_.enable_marker_detection_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::EnableMarkerDetectionResponse >(GetArena());
  }
  return oneof_message_type_.enable_marker_detection_response_;
}
inline ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* GatewayWrapper::mutable_enable_marker_detection_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.enable_marker_detection_response)
  return _internal_mutable_enable_marker_detection_response();
}

// .Anki.Vector.external_interface.EnableFaceDetectionRequest enable_face_detection_request = 1104;
inline bool GatewayWrapper::_internal_has_enable_face_detection_request() const {
  return oneof_message_type_case() == kEnableFaceDetectionRequest;
}
inline bool GatewayWrapper::has_enable_face_detection_request() const {
  return _internal_has_enable_face_detection_request();
}
inline void GatewayWrapper::set_has_enable_face_detection_request() {
  _oneof_case_[0] = kEnableFaceDetectionRequest;
}
inline ::Anki::Vector::external_interface::EnableFaceDetectionRequest* GatewayWrapper::release_enable_face_detection_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.enable_face_detection_request)
  if (_internal_has_enable_face_detection_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::EnableFaceDetectionRequest* temp = oneof_message_type_.enable_face_detection_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.enable_face_detection_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::EnableFaceDetectionRequest& GatewayWrapper::_internal_enable_face_detection_request() const {
  return _internal_has_enable_face_detection_request()
      ? *oneof_message_type_.enable_face_detection_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::EnableFaceDetectionRequest*>(&::Anki::Vector::external_interface::_EnableFaceDetectionRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::EnableFaceDetectionRequest& GatewayWrapper::enable_face_detection_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.enable_face_detection_request)
  return _internal_enable_face_detection_request();
}
inline ::Anki::Vector::external_interface::EnableFaceDetectionRequest* GatewayWrapper::unsafe_arena_release_enable_face_detection_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.enable_face_detection_request)
  if (_internal_has_enable_face_detection_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::EnableFaceDetectionRequest* temp = oneof_message_type_.enable_face_detection_request_;
    oneof_message_type_.enable_face_detection_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_enable_face_detection_request(::Anki::Vector::external_interface::EnableFaceDetectionRequest* enable_face_detection_request) {
  clear_oneof_message_type();
  if (enable_face_detection_request) {
    set_has_enable_face_detection_request();
    oneof_message_type_.enable_face_detection_request_ = enable_face_detection_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_face_detection_request)
}
inline ::Anki::Vector::external_interface::EnableFaceDetectionRequest* GatewayWrapper::_internal_mutable_enable_face_detection_request() {
  if (!_internal_has_enable_face_detection_request()) {
    clear_oneof_message_type();
    set_has_enable_face_detection_request();
    oneof_message_type_.enable_face_detection_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::EnableFaceDetectionRequest >(GetArena());
  }
  return oneof_message_type_.enable_face_detection_request_;
}
inline ::Anki::Vector::external_interface::EnableFaceDetectionRequest* GatewayWrapper::mutable_enable_face_detection_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.enable_face_detection_request)
  return _internal_mutable_enable_face_detection_request();
}

// .Anki.Vector.external_interface.EnableFaceDetectionResponse enable_face_detection_response = 1105;
inline bool GatewayWrapper::_internal_has_enable_face_detection_response() const {
  return oneof_message_type_case() == kEnableFaceDetectionResponse;
}
inline bool GatewayWrapper::has_enable_face_detection_response() const {
  return _internal_has_enable_face_detection_response();
}
inline void GatewayWrapper::set_has_enable_face_detection_response() {
  _oneof_case_[0] = kEnableFaceDetectionResponse;
}
inline ::Anki::Vector::external_interface::EnableFaceDetectionResponse* GatewayWrapper::release_enable_face_detection_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.enable_face_detection_response)
  if (_internal_has_enable_face_detection_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::EnableFaceDetectionResponse* temp = oneof_message_type_.enable_face_detection_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.enable_face_detection_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::EnableFaceDetectionResponse& GatewayWrapper::_internal_enable_face_detection_response() const {
  return _internal_has_enable_face_detection_response()
      ? *oneof_message_type_.enable_face_detection_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::EnableFaceDetectionResponse*>(&::Anki::Vector::external_interface::_EnableFaceDetectionResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::EnableFaceDetectionResponse& GatewayWrapper::enable_face_detection_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.enable_face_detection_response)
  return _internal_enable_face_detection_response();
}
inline ::Anki::Vector::external_interface::EnableFaceDetectionResponse* GatewayWrapper::unsafe_arena_release_enable_face_detection_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.enable_face_detection_response)
  if (_internal_has_enable_face_detection_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::EnableFaceDetectionResponse* temp = oneof_message_type_.enable_face_detection_response_;
    oneof_message_type_.enable_face_detection_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_enable_face_detection_response(::Anki::Vector::external_interface::EnableFaceDetectionResponse* enable_face_detection_response) {
  clear_oneof_message_type();
  if (enable_face_detection_response) {
    set_has_enable_face_detection_response();
    oneof_message_type_.enable_face_detection_response_ = enable_face_detection_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_face_detection_response)
}
inline ::Anki::Vector::external_interface::EnableFaceDetectionResponse* GatewayWrapper::_internal_mutable_enable_face_detection_response() {
  if (!_internal_has_enable_face_detection_response()) {
    clear_oneof_message_type();
    set_has_enable_face_detection_response();
    oneof_message_type_.enable_face_detection_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::EnableFaceDetectionResponse >(GetArena());
  }
  return oneof_message_type_.enable_face_detection_response_;
}
inline ::Anki::Vector::external_interface::EnableFaceDetectionResponse* GatewayWrapper::mutable_enable_face_detection_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.enable_face_detection_response)
  return _internal_mutable_enable_face_detection_response();
}

// .Anki.Vector.external_interface.EnableMotionDetectionRequest enable_motion_detection_request = 1106;
inline bool GatewayWrapper::_internal_has_enable_motion_detection_request() const {
  return oneof_message_type_case() == kEnableMotionDetectionRequest;
}
inline bool GatewayWrapper::has_enable_motion_detection_request() const {
  return _internal_has_enable_motion_detection_request();
}
inline void GatewayWrapper::set_has_enable_motion_detection_request() {
  _oneof_case_[0] = kEnableMotionDetectionRequest;
}
inline ::Anki::Vector::external_interface::EnableMotionDetectionRequest* GatewayWrapper::release_enable_motion_detection_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.enable_motion_detection_request)
  if (_internal_has_enable_motion_detection_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::EnableMotionDetectionRequest* temp = oneof_message_type_.enable_motion_detection_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.enable_motion_detection_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::EnableMotionDetectionRequest& GatewayWrapper::_internal_enable_motion_detection_request() const {
  return _internal_has_enable_motion_detection_request()
      ? *oneof_message_type_.enable_motion_detection_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::EnableMotionDetectionRequest*>(&::Anki::Vector::external_interface::_EnableMotionDetectionRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::EnableMotionDetectionRequest& GatewayWrapper::enable_motion_detection_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.enable_motion_detection_request)
  return _internal_enable_motion_detection_request();
}
inline ::Anki::Vector::external_interface::EnableMotionDetectionRequest* GatewayWrapper::unsafe_arena_release_enable_motion_detection_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.enable_motion_detection_request)
  if (_internal_has_enable_motion_detection_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::EnableMotionDetectionRequest* temp = oneof_message_type_.enable_motion_detection_request_;
    oneof_message_type_.enable_motion_detection_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_enable_motion_detection_request(::Anki::Vector::external_interface::EnableMotionDetectionRequest* enable_motion_detection_request) {
  clear_oneof_message_type();
  if (enable_motion_detection_request) {
    set_has_enable_motion_detection_request();
    oneof_message_type_.enable_motion_detection_request_ = enable_motion_detection_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_motion_detection_request)
}
inline ::Anki::Vector::external_interface::EnableMotionDetectionRequest* GatewayWrapper::_internal_mutable_enable_motion_detection_request() {
  if (!_internal_has_enable_motion_detection_request()) {
    clear_oneof_message_type();
    set_has_enable_motion_detection_request();
    oneof_message_type_.enable_motion_detection_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::EnableMotionDetectionRequest >(GetArena());
  }
  return oneof_message_type_.enable_motion_detection_request_;
}
inline ::Anki::Vector::external_interface::EnableMotionDetectionRequest* GatewayWrapper::mutable_enable_motion_detection_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.enable_motion_detection_request)
  return _internal_mutable_enable_motion_detection_request();
}

// .Anki.Vector.external_interface.EnableMotionDetectionResponse enable_motion_detection_response = 1107;
inline bool GatewayWrapper::_internal_has_enable_motion_detection_response() const {
  return oneof_message_type_case() == kEnableMotionDetectionResponse;
}
inline bool GatewayWrapper::has_enable_motion_detection_response() const {
  return _internal_has_enable_motion_detection_response();
}
inline void GatewayWrapper::set_has_enable_motion_detection_response() {
  _oneof_case_[0] = kEnableMotionDetectionResponse;
}
inline ::Anki::Vector::external_interface::EnableMotionDetectionResponse* GatewayWrapper::release_enable_motion_detection_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.enable_motion_detection_response)
  if (_internal_has_enable_motion_detection_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::EnableMotionDetectionResponse* temp = oneof_message_type_.enable_motion_detection_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.enable_motion_detection_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::EnableMotionDetectionResponse& GatewayWrapper::_internal_enable_motion_detection_response() const {
  return _internal_has_enable_motion_detection_response()
      ? *oneof_message_type_.enable_motion_detection_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::EnableMotionDetectionResponse*>(&::Anki::Vector::external_interface::_EnableMotionDetectionResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::EnableMotionDetectionResponse& GatewayWrapper::enable_motion_detection_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.enable_motion_detection_response)
  return _internal_enable_motion_detection_response();
}
inline ::Anki::Vector::external_interface::EnableMotionDetectionResponse* GatewayWrapper::unsafe_arena_release_enable_motion_detection_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.enable_motion_detection_response)
  if (_internal_has_enable_motion_detection_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::EnableMotionDetectionResponse* temp = oneof_message_type_.enable_motion_detection_response_;
    oneof_message_type_.enable_motion_detection_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_enable_motion_detection_response(::Anki::Vector::external_interface::EnableMotionDetectionResponse* enable_motion_detection_response) {
  clear_oneof_message_type();
  if (enable_motion_detection_response) {
    set_has_enable_motion_detection_response();
    oneof_message_type_.enable_motion_detection_response_ = enable_motion_detection_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_motion_detection_response)
}
inline ::Anki::Vector::external_interface::EnableMotionDetectionResponse* GatewayWrapper::_internal_mutable_enable_motion_detection_response() {
  if (!_internal_has_enable_motion_detection_response()) {
    clear_oneof_message_type();
    set_has_enable_motion_detection_response();
    oneof_message_type_.enable_motion_detection_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::EnableMotionDetectionResponse >(GetArena());
  }
  return oneof_message_type_.enable_motion_detection_response_;
}
inline ::Anki::Vector::external_interface::EnableMotionDetectionResponse* GatewayWrapper::mutable_enable_motion_detection_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.enable_motion_detection_response)
  return _internal_mutable_enable_motion_detection_response();
}

// .Anki.Vector.external_interface.EnableMirrorModeRequest enable_mirror_mode_request = 1108;
inline bool GatewayWrapper::_internal_has_enable_mirror_mode_request() const {
  return oneof_message_type_case() == kEnableMirrorModeRequest;
}
inline bool GatewayWrapper::has_enable_mirror_mode_request() const {
  return _internal_has_enable_mirror_mode_request();
}
inline void GatewayWrapper::set_has_enable_mirror_mode_request() {
  _oneof_case_[0] = kEnableMirrorModeRequest;
}
inline ::Anki::Vector::external_interface::EnableMirrorModeRequest* GatewayWrapper::release_enable_mirror_mode_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.enable_mirror_mode_request)
  if (_internal_has_enable_mirror_mode_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::EnableMirrorModeRequest* temp = oneof_message_type_.enable_mirror_mode_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.enable_mirror_mode_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::EnableMirrorModeRequest& GatewayWrapper::_internal_enable_mirror_mode_request() const {
  return _internal_has_enable_mirror_mode_request()
      ? *oneof_message_type_.enable_mirror_mode_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::EnableMirrorModeRequest*>(&::Anki::Vector::external_interface::_EnableMirrorModeRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::EnableMirrorModeRequest& GatewayWrapper::enable_mirror_mode_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.enable_mirror_mode_request)
  return _internal_enable_mirror_mode_request();
}
inline ::Anki::Vector::external_interface::EnableMirrorModeRequest* GatewayWrapper::unsafe_arena_release_enable_mirror_mode_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.enable_mirror_mode_request)
  if (_internal_has_enable_mirror_mode_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::EnableMirrorModeRequest* temp = oneof_message_type_.enable_mirror_mode_request_;
    oneof_message_type_.enable_mirror_mode_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_enable_mirror_mode_request(::Anki::Vector::external_interface::EnableMirrorModeRequest* enable_mirror_mode_request) {
  clear_oneof_message_type();
  if (enable_mirror_mode_request) {
    set_has_enable_mirror_mode_request();
    oneof_message_type_.enable_mirror_mode_request_ = enable_mirror_mode_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_mirror_mode_request)
}
inline ::Anki::Vector::external_interface::EnableMirrorModeRequest* GatewayWrapper::_internal_mutable_enable_mirror_mode_request() {
  if (!_internal_has_enable_mirror_mode_request()) {
    clear_oneof_message_type();
    set_has_enable_mirror_mode_request();
    oneof_message_type_.enable_mirror_mode_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::EnableMirrorModeRequest >(GetArena());
  }
  return oneof_message_type_.enable_mirror_mode_request_;
}
inline ::Anki::Vector::external_interface::EnableMirrorModeRequest* GatewayWrapper::mutable_enable_mirror_mode_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.enable_mirror_mode_request)
  return _internal_mutable_enable_mirror_mode_request();
}

// .Anki.Vector.external_interface.EnableMirrorModeResponse enable_mirror_mode_response = 1109;
inline bool GatewayWrapper::_internal_has_enable_mirror_mode_response() const {
  return oneof_message_type_case() == kEnableMirrorModeResponse;
}
inline bool GatewayWrapper::has_enable_mirror_mode_response() const {
  return _internal_has_enable_mirror_mode_response();
}
inline void GatewayWrapper::set_has_enable_mirror_mode_response() {
  _oneof_case_[0] = kEnableMirrorModeResponse;
}
inline ::Anki::Vector::external_interface::EnableMirrorModeResponse* GatewayWrapper::release_enable_mirror_mode_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.enable_mirror_mode_response)
  if (_internal_has_enable_mirror_mode_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::EnableMirrorModeResponse* temp = oneof_message_type_.enable_mirror_mode_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.enable_mirror_mode_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::EnableMirrorModeResponse& GatewayWrapper::_internal_enable_mirror_mode_response() const {
  return _internal_has_enable_mirror_mode_response()
      ? *oneof_message_type_.enable_mirror_mode_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::EnableMirrorModeResponse*>(&::Anki::Vector::external_interface::_EnableMirrorModeResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::EnableMirrorModeResponse& GatewayWrapper::enable_mirror_mode_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.enable_mirror_mode_response)
  return _internal_enable_mirror_mode_response();
}
inline ::Anki::Vector::external_interface::EnableMirrorModeResponse* GatewayWrapper::unsafe_arena_release_enable_mirror_mode_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.enable_mirror_mode_response)
  if (_internal_has_enable_mirror_mode_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::EnableMirrorModeResponse* temp = oneof_message_type_.enable_mirror_mode_response_;
    oneof_message_type_.enable_mirror_mode_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_enable_mirror_mode_response(::Anki::Vector::external_interface::EnableMirrorModeResponse* enable_mirror_mode_response) {
  clear_oneof_message_type();
  if (enable_mirror_mode_response) {
    set_has_enable_mirror_mode_response();
    oneof_message_type_.enable_mirror_mode_response_ = enable_mirror_mode_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_mirror_mode_response)
}
inline ::Anki::Vector::external_interface::EnableMirrorModeResponse* GatewayWrapper::_internal_mutable_enable_mirror_mode_response() {
  if (!_internal_has_enable_mirror_mode_response()) {
    clear_oneof_message_type();
    set_has_enable_mirror_mode_response();
    oneof_message_type_.enable_mirror_mode_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::EnableMirrorModeResponse >(GetArena());
  }
  return oneof_message_type_.enable_mirror_mode_response_;
}
inline ::Anki::Vector::external_interface::EnableMirrorModeResponse* GatewayWrapper::mutable_enable_mirror_mode_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.enable_mirror_mode_response)
  return _internal_mutable_enable_mirror_mode_response();
}

// .Anki.Vector.external_interface.EnableImageStreamingRequest enable_image_streaming_request = 1110;
inline bool GatewayWrapper::_internal_has_enable_image_streaming_request() const {
  return oneof_message_type_case() == kEnableImageStreamingRequest;
}
inline bool GatewayWrapper::has_enable_image_streaming_request() const {
  return _internal_has_enable_image_streaming_request();
}
inline void GatewayWrapper::set_has_enable_image_streaming_request() {
  _oneof_case_[0] = kEnableImageStreamingRequest;
}
inline ::Anki::Vector::external_interface::EnableImageStreamingRequest* GatewayWrapper::release_enable_image_streaming_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.enable_image_streaming_request)
  if (_internal_has_enable_image_streaming_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::EnableImageStreamingRequest* temp = oneof_message_type_.enable_image_streaming_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.enable_image_streaming_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::EnableImageStreamingRequest& GatewayWrapper::_internal_enable_image_streaming_request() const {
  return _internal_has_enable_image_streaming_request()
      ? *oneof_message_type_.enable_image_streaming_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::EnableImageStreamingRequest*>(&::Anki::Vector::external_interface::_EnableImageStreamingRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::EnableImageStreamingRequest& GatewayWrapper::enable_image_streaming_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.enable_image_streaming_request)
  return _internal_enable_image_streaming_request();
}
inline ::Anki::Vector::external_interface::EnableImageStreamingRequest* GatewayWrapper::unsafe_arena_release_enable_image_streaming_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.enable_image_streaming_request)
  if (_internal_has_enable_image_streaming_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::EnableImageStreamingRequest* temp = oneof_message_type_.enable_image_streaming_request_;
    oneof_message_type_.enable_image_streaming_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_enable_image_streaming_request(::Anki::Vector::external_interface::EnableImageStreamingRequest* enable_image_streaming_request) {
  clear_oneof_message_type();
  if (enable_image_streaming_request) {
    set_has_enable_image_streaming_request();
    oneof_message_type_.enable_image_streaming_request_ = enable_image_streaming_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_image_streaming_request)
}
inline ::Anki::Vector::external_interface::EnableImageStreamingRequest* GatewayWrapper::_internal_mutable_enable_image_streaming_request() {
  if (!_internal_has_enable_image_streaming_request()) {
    clear_oneof_message_type();
    set_has_enable_image_streaming_request();
    oneof_message_type_.enable_image_streaming_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::EnableImageStreamingRequest >(GetArena());
  }
  return oneof_message_type_.enable_image_streaming_request_;
}
inline ::Anki::Vector::external_interface::EnableImageStreamingRequest* GatewayWrapper::mutable_enable_image_streaming_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.enable_image_streaming_request)
  return _internal_mutable_enable_image_streaming_request();
}

// .Anki.Vector.external_interface.EnableImageStreamingResponse enable_image_streaming_response = 1111;
inline bool GatewayWrapper::_internal_has_enable_image_streaming_response() const {
  return oneof_message_type_case() == kEnableImageStreamingResponse;
}
inline bool GatewayWrapper::has_enable_image_streaming_response() const {
  return _internal_has_enable_image_streaming_response();
}
inline void GatewayWrapper::set_has_enable_image_streaming_response() {
  _oneof_case_[0] = kEnableImageStreamingResponse;
}
inline ::Anki::Vector::external_interface::EnableImageStreamingResponse* GatewayWrapper::release_enable_image_streaming_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.enable_image_streaming_response)
  if (_internal_has_enable_image_streaming_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::EnableImageStreamingResponse* temp = oneof_message_type_.enable_image_streaming_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.enable_image_streaming_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::EnableImageStreamingResponse& GatewayWrapper::_internal_enable_image_streaming_response() const {
  return _internal_has_enable_image_streaming_response()
      ? *oneof_message_type_.enable_image_streaming_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::EnableImageStreamingResponse*>(&::Anki::Vector::external_interface::_EnableImageStreamingResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::EnableImageStreamingResponse& GatewayWrapper::enable_image_streaming_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.enable_image_streaming_response)
  return _internal_enable_image_streaming_response();
}
inline ::Anki::Vector::external_interface::EnableImageStreamingResponse* GatewayWrapper::unsafe_arena_release_enable_image_streaming_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.enable_image_streaming_response)
  if (_internal_has_enable_image_streaming_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::EnableImageStreamingResponse* temp = oneof_message_type_.enable_image_streaming_response_;
    oneof_message_type_.enable_image_streaming_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_enable_image_streaming_response(::Anki::Vector::external_interface::EnableImageStreamingResponse* enable_image_streaming_response) {
  clear_oneof_message_type();
  if (enable_image_streaming_response) {
    set_has_enable_image_streaming_response();
    oneof_message_type_.enable_image_streaming_response_ = enable_image_streaming_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_image_streaming_response)
}
inline ::Anki::Vector::external_interface::EnableImageStreamingResponse* GatewayWrapper::_internal_mutable_enable_image_streaming_response() {
  if (!_internal_has_enable_image_streaming_response()) {
    clear_oneof_message_type();
    set_has_enable_image_streaming_response();
    oneof_message_type_.enable_image_streaming_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::EnableImageStreamingResponse >(GetArena());
  }
  return oneof_message_type_.enable_image_streaming_response_;
}
inline ::Anki::Vector::external_interface::EnableImageStreamingResponse* GatewayWrapper::mutable_enable_image_streaming_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.enable_image_streaming_response)
  return _internal_mutable_enable_image_streaming_response();
}

// .Anki.Vector.external_interface.IsImageStreamingEnabledRequest is_image_streaming_enabled_request = 1112;
inline bool GatewayWrapper::_internal_has_is_image_streaming_enabled_request() const {
  return oneof_message_type_case() == kIsImageStreamingEnabledRequest;
}
inline bool GatewayWrapper::has_is_image_streaming_enabled_request() const {
  return _internal_has_is_image_streaming_enabled_request();
}
inline void GatewayWrapper::set_has_is_image_streaming_enabled_request() {
  _oneof_case_[0] = kIsImageStreamingEnabledRequest;
}
inline ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* GatewayWrapper::release_is_image_streaming_enabled_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.is_image_streaming_enabled_request)
  if (_internal_has_is_image_streaming_enabled_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* temp = oneof_message_type_.is_image_streaming_enabled_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.is_image_streaming_enabled_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest& GatewayWrapper::_internal_is_image_streaming_enabled_request() const {
  return _internal_has_is_image_streaming_enabled_request()
      ? *oneof_message_type_.is_image_streaming_enabled_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest*>(&::Anki::Vector::external_interface::_IsImageStreamingEnabledRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest& GatewayWrapper::is_image_streaming_enabled_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.is_image_streaming_enabled_request)
  return _internal_is_image_streaming_enabled_request();
}
inline ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* GatewayWrapper::unsafe_arena_release_is_image_streaming_enabled_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.is_image_streaming_enabled_request)
  if (_internal_has_is_image_streaming_enabled_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* temp = oneof_message_type_.is_image_streaming_enabled_request_;
    oneof_message_type_.is_image_streaming_enabled_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_is_image_streaming_enabled_request(::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* is_image_streaming_enabled_request) {
  clear_oneof_message_type();
  if (is_image_streaming_enabled_request) {
    set_has_is_image_streaming_enabled_request();
    oneof_message_type_.is_image_streaming_enabled_request_ = is_image_streaming_enabled_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.is_image_streaming_enabled_request)
}
inline ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* GatewayWrapper::_internal_mutable_is_image_streaming_enabled_request() {
  if (!_internal_has_is_image_streaming_enabled_request()) {
    clear_oneof_message_type();
    set_has_is_image_streaming_enabled_request();
    oneof_message_type_.is_image_streaming_enabled_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest >(GetArena());
  }
  return oneof_message_type_.is_image_streaming_enabled_request_;
}
inline ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* GatewayWrapper::mutable_is_image_streaming_enabled_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.is_image_streaming_enabled_request)
  return _internal_mutable_is_image_streaming_enabled_request();
}

// .Anki.Vector.external_interface.IsImageStreamingEnabledResponse is_image_streaming_enabled_response = 1113;
inline bool GatewayWrapper::_internal_has_is_image_streaming_enabled_response() const {
  return oneof_message_type_case() == kIsImageStreamingEnabledResponse;
}
inline bool GatewayWrapper::has_is_image_streaming_enabled_response() const {
  return _internal_has_is_image_streaming_enabled_response();
}
inline void GatewayWrapper::set_has_is_image_streaming_enabled_response() {
  _oneof_case_[0] = kIsImageStreamingEnabledResponse;
}
inline ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* GatewayWrapper::release_is_image_streaming_enabled_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.is_image_streaming_enabled_response)
  if (_internal_has_is_image_streaming_enabled_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* temp = oneof_message_type_.is_image_streaming_enabled_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.is_image_streaming_enabled_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse& GatewayWrapper::_internal_is_image_streaming_enabled_response() const {
  return _internal_has_is_image_streaming_enabled_response()
      ? *oneof_message_type_.is_image_streaming_enabled_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse*>(&::Anki::Vector::external_interface::_IsImageStreamingEnabledResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse& GatewayWrapper::is_image_streaming_enabled_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.is_image_streaming_enabled_response)
  return _internal_is_image_streaming_enabled_response();
}
inline ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* GatewayWrapper::unsafe_arena_release_is_image_streaming_enabled_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.is_image_streaming_enabled_response)
  if (_internal_has_is_image_streaming_enabled_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* temp = oneof_message_type_.is_image_streaming_enabled_response_;
    oneof_message_type_.is_image_streaming_enabled_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_is_image_streaming_enabled_response(::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* is_image_streaming_enabled_response) {
  clear_oneof_message_type();
  if (is_image_streaming_enabled_response) {
    set_has_is_image_streaming_enabled_response();
    oneof_message_type_.is_image_streaming_enabled_response_ = is_image_streaming_enabled_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.is_image_streaming_enabled_response)
}
inline ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* GatewayWrapper::_internal_mutable_is_image_streaming_enabled_response() {
  if (!_internal_has_is_image_streaming_enabled_response()) {
    clear_oneof_message_type();
    set_has_is_image_streaming_enabled_response();
    oneof_message_type_.is_image_streaming_enabled_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse >(GetArena());
  }
  return oneof_message_type_.is_image_streaming_enabled_response_;
}
inline ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* GatewayWrapper::mutable_is_image_streaming_enabled_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.is_image_streaming_enabled_response)
  return _internal_mutable_is_image_streaming_enabled_response();
}

// .Anki.Vector.external_interface.CheckCloudRequest check_cloud_request = 1200;
inline bool GatewayWrapper::_internal_has_check_cloud_request() const {
  return oneof_message_type_case() == kCheckCloudRequest;
}
inline bool GatewayWrapper::has_check_cloud_request() const {
  return _internal_has_check_cloud_request();
}
inline void GatewayWrapper::set_has_check_cloud_request() {
  _oneof_case_[0] = kCheckCloudRequest;
}
inline ::Anki::Vector::external_interface::CheckCloudRequest* GatewayWrapper::release_check_cloud_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.check_cloud_request)
  if (_internal_has_check_cloud_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::CheckCloudRequest* temp = oneof_message_type_.check_cloud_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.check_cloud_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CheckCloudRequest& GatewayWrapper::_internal_check_cloud_request() const {
  return _internal_has_check_cloud_request()
      ? *oneof_message_type_.check_cloud_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CheckCloudRequest*>(&::Anki::Vector::external_interface::_CheckCloudRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::CheckCloudRequest& GatewayWrapper::check_cloud_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.check_cloud_request)
  return _internal_check_cloud_request();
}
inline ::Anki::Vector::external_interface::CheckCloudRequest* GatewayWrapper::unsafe_arena_release_check_cloud_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.check_cloud_request)
  if (_internal_has_check_cloud_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::CheckCloudRequest* temp = oneof_message_type_.check_cloud_request_;
    oneof_message_type_.check_cloud_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_check_cloud_request(::Anki::Vector::external_interface::CheckCloudRequest* check_cloud_request) {
  clear_oneof_message_type();
  if (check_cloud_request) {
    set_has_check_cloud_request();
    oneof_message_type_.check_cloud_request_ = check_cloud_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.check_cloud_request)
}
inline ::Anki::Vector::external_interface::CheckCloudRequest* GatewayWrapper::_internal_mutable_check_cloud_request() {
  if (!_internal_has_check_cloud_request()) {
    clear_oneof_message_type();
    set_has_check_cloud_request();
    oneof_message_type_.check_cloud_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CheckCloudRequest >(GetArena());
  }
  return oneof_message_type_.check_cloud_request_;
}
inline ::Anki::Vector::external_interface::CheckCloudRequest* GatewayWrapper::mutable_check_cloud_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.check_cloud_request)
  return _internal_mutable_check_cloud_request();
}

// .Anki.Vector.external_interface.CheckCloudResponse check_cloud_response = 1201;
inline bool GatewayWrapper::_internal_has_check_cloud_response() const {
  return oneof_message_type_case() == kCheckCloudResponse;
}
inline bool GatewayWrapper::has_check_cloud_response() const {
  return _internal_has_check_cloud_response();
}
inline void GatewayWrapper::set_has_check_cloud_response() {
  _oneof_case_[0] = kCheckCloudResponse;
}
inline ::Anki::Vector::external_interface::CheckCloudResponse* GatewayWrapper::release_check_cloud_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.check_cloud_response)
  if (_internal_has_check_cloud_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::CheckCloudResponse* temp = oneof_message_type_.check_cloud_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.check_cloud_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CheckCloudResponse& GatewayWrapper::_internal_check_cloud_response() const {
  return _internal_has_check_cloud_response()
      ? *oneof_message_type_.check_cloud_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CheckCloudResponse*>(&::Anki::Vector::external_interface::_CheckCloudResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::CheckCloudResponse& GatewayWrapper::check_cloud_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.check_cloud_response)
  return _internal_check_cloud_response();
}
inline ::Anki::Vector::external_interface::CheckCloudResponse* GatewayWrapper::unsafe_arena_release_check_cloud_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.check_cloud_response)
  if (_internal_has_check_cloud_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::CheckCloudResponse* temp = oneof_message_type_.check_cloud_response_;
    oneof_message_type_.check_cloud_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_check_cloud_response(::Anki::Vector::external_interface::CheckCloudResponse* check_cloud_response) {
  clear_oneof_message_type();
  if (check_cloud_response) {
    set_has_check_cloud_response();
    oneof_message_type_.check_cloud_response_ = check_cloud_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.check_cloud_response)
}
inline ::Anki::Vector::external_interface::CheckCloudResponse* GatewayWrapper::_internal_mutable_check_cloud_response() {
  if (!_internal_has_check_cloud_response()) {
    clear_oneof_message_type();
    set_has_check_cloud_response();
    oneof_message_type_.check_cloud_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CheckCloudResponse >(GetArena());
  }
  return oneof_message_type_.check_cloud_response_;
}
inline ::Anki::Vector::external_interface::CheckCloudResponse* GatewayWrapper::mutable_check_cloud_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.check_cloud_response)
  return _internal_mutable_check_cloud_response();
}

// .Anki.Vector.external_interface.AudioSendModeRequest audio_send_mode_request = 1300;
inline bool GatewayWrapper::_internal_has_audio_send_mode_request() const {
  return oneof_message_type_case() == kAudioSendModeRequest;
}
inline bool GatewayWrapper::has_audio_send_mode_request() const {
  return _internal_has_audio_send_mode_request();
}
inline void GatewayWrapper::set_has_audio_send_mode_request() {
  _oneof_case_[0] = kAudioSendModeRequest;
}
inline ::Anki::Vector::external_interface::AudioSendModeRequest* GatewayWrapper::release_audio_send_mode_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.audio_send_mode_request)
  if (_internal_has_audio_send_mode_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::AudioSendModeRequest* temp = oneof_message_type_.audio_send_mode_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.audio_send_mode_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::AudioSendModeRequest& GatewayWrapper::_internal_audio_send_mode_request() const {
  return _internal_has_audio_send_mode_request()
      ? *oneof_message_type_.audio_send_mode_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::AudioSendModeRequest*>(&::Anki::Vector::external_interface::_AudioSendModeRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::AudioSendModeRequest& GatewayWrapper::audio_send_mode_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.audio_send_mode_request)
  return _internal_audio_send_mode_request();
}
inline ::Anki::Vector::external_interface::AudioSendModeRequest* GatewayWrapper::unsafe_arena_release_audio_send_mode_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.audio_send_mode_request)
  if (_internal_has_audio_send_mode_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::AudioSendModeRequest* temp = oneof_message_type_.audio_send_mode_request_;
    oneof_message_type_.audio_send_mode_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_audio_send_mode_request(::Anki::Vector::external_interface::AudioSendModeRequest* audio_send_mode_request) {
  clear_oneof_message_type();
  if (audio_send_mode_request) {
    set_has_audio_send_mode_request();
    oneof_message_type_.audio_send_mode_request_ = audio_send_mode_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.audio_send_mode_request)
}
inline ::Anki::Vector::external_interface::AudioSendModeRequest* GatewayWrapper::_internal_mutable_audio_send_mode_request() {
  if (!_internal_has_audio_send_mode_request()) {
    clear_oneof_message_type();
    set_has_audio_send_mode_request();
    oneof_message_type_.audio_send_mode_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::AudioSendModeRequest >(GetArena());
  }
  return oneof_message_type_.audio_send_mode_request_;
}
inline ::Anki::Vector::external_interface::AudioSendModeRequest* GatewayWrapper::mutable_audio_send_mode_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.audio_send_mode_request)
  return _internal_mutable_audio_send_mode_request();
}

// .Anki.Vector.external_interface.AudioSendModeChanged audio_send_mode_changed = 1301;
inline bool GatewayWrapper::_internal_has_audio_send_mode_changed() const {
  return oneof_message_type_case() == kAudioSendModeChanged;
}
inline bool GatewayWrapper::has_audio_send_mode_changed() const {
  return _internal_has_audio_send_mode_changed();
}
inline void GatewayWrapper::set_has_audio_send_mode_changed() {
  _oneof_case_[0] = kAudioSendModeChanged;
}
inline ::Anki::Vector::external_interface::AudioSendModeChanged* GatewayWrapper::release_audio_send_mode_changed() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.audio_send_mode_changed)
  if (_internal_has_audio_send_mode_changed()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::AudioSendModeChanged* temp = oneof_message_type_.audio_send_mode_changed_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.audio_send_mode_changed_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::AudioSendModeChanged& GatewayWrapper::_internal_audio_send_mode_changed() const {
  return _internal_has_audio_send_mode_changed()
      ? *oneof_message_type_.audio_send_mode_changed_
      : *reinterpret_cast< ::Anki::Vector::external_interface::AudioSendModeChanged*>(&::Anki::Vector::external_interface::_AudioSendModeChanged_default_instance_);
}
inline const ::Anki::Vector::external_interface::AudioSendModeChanged& GatewayWrapper::audio_send_mode_changed() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.audio_send_mode_changed)
  return _internal_audio_send_mode_changed();
}
inline ::Anki::Vector::external_interface::AudioSendModeChanged* GatewayWrapper::unsafe_arena_release_audio_send_mode_changed() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.audio_send_mode_changed)
  if (_internal_has_audio_send_mode_changed()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::AudioSendModeChanged* temp = oneof_message_type_.audio_send_mode_changed_;
    oneof_message_type_.audio_send_mode_changed_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_audio_send_mode_changed(::Anki::Vector::external_interface::AudioSendModeChanged* audio_send_mode_changed) {
  clear_oneof_message_type();
  if (audio_send_mode_changed) {
    set_has_audio_send_mode_changed();
    oneof_message_type_.audio_send_mode_changed_ = audio_send_mode_changed;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.audio_send_mode_changed)
}
inline ::Anki::Vector::external_interface::AudioSendModeChanged* GatewayWrapper::_internal_mutable_audio_send_mode_changed() {
  if (!_internal_has_audio_send_mode_changed()) {
    clear_oneof_message_type();
    set_has_audio_send_mode_changed();
    oneof_message_type_.audio_send_mode_changed_ = CreateMaybeMessage< ::Anki::Vector::external_interface::AudioSendModeChanged >(GetArena());
  }
  return oneof_message_type_.audio_send_mode_changed_;
}
inline ::Anki::Vector::external_interface::AudioSendModeChanged* GatewayWrapper::mutable_audio_send_mode_changed() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.audio_send_mode_changed)
  return _internal_mutable_audio_send_mode_changed();
}

// .Anki.Vector.external_interface.AudioChunk audio_chunk = 1302;
inline bool GatewayWrapper::_internal_has_audio_chunk() const {
  return oneof_message_type_case() == kAudioChunk;
}
inline bool GatewayWrapper::has_audio_chunk() const {
  return _internal_has_audio_chunk();
}
inline void GatewayWrapper::set_has_audio_chunk() {
  _oneof_case_[0] = kAudioChunk;
}
inline ::Anki::Vector::external_interface::AudioChunk* GatewayWrapper::release_audio_chunk() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.audio_chunk)
  if (_internal_has_audio_chunk()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::AudioChunk* temp = oneof_message_type_.audio_chunk_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.audio_chunk_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::AudioChunk& GatewayWrapper::_internal_audio_chunk() const {
  return _internal_has_audio_chunk()
      ? *oneof_message_type_.audio_chunk_
      : *reinterpret_cast< ::Anki::Vector::external_interface::AudioChunk*>(&::Anki::Vector::external_interface::_AudioChunk_default_instance_);
}
inline const ::Anki::Vector::external_interface::AudioChunk& GatewayWrapper::audio_chunk() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.audio_chunk)
  return _internal_audio_chunk();
}
inline ::Anki::Vector::external_interface::AudioChunk* GatewayWrapper::unsafe_arena_release_audio_chunk() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.audio_chunk)
  if (_internal_has_audio_chunk()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::AudioChunk* temp = oneof_message_type_.audio_chunk_;
    oneof_message_type_.audio_chunk_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_audio_chunk(::Anki::Vector::external_interface::AudioChunk* audio_chunk) {
  clear_oneof_message_type();
  if (audio_chunk) {
    set_has_audio_chunk();
    oneof_message_type_.audio_chunk_ = audio_chunk;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.audio_chunk)
}
inline ::Anki::Vector::external_interface::AudioChunk* GatewayWrapper::_internal_mutable_audio_chunk() {
  if (!_internal_has_audio_chunk()) {
    clear_oneof_message_type();
    set_has_audio_chunk();
    oneof_message_type_.audio_chunk_ = CreateMaybeMessage< ::Anki::Vector::external_interface::AudioChunk >(GetArena());
  }
  return oneof_message_type_.audio_chunk_;
}
inline ::Anki::Vector::external_interface::AudioChunk* GatewayWrapper::mutable_audio_chunk() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.audio_chunk)
  return _internal_mutable_audio_chunk();
}

// .Anki.Vector.external_interface.FeatureFlagRequest feature_flag_request = 1400;
inline bool GatewayWrapper::_internal_has_feature_flag_request() const {
  return oneof_message_type_case() == kFeatureFlagRequest;
}
inline bool GatewayWrapper::has_feature_flag_request() const {
  return _internal_has_feature_flag_request();
}
inline void GatewayWrapper::set_has_feature_flag_request() {
  _oneof_case_[0] = kFeatureFlagRequest;
}
inline ::Anki::Vector::external_interface::FeatureFlagRequest* GatewayWrapper::release_feature_flag_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.feature_flag_request)
  if (_internal_has_feature_flag_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::FeatureFlagRequest* temp = oneof_message_type_.feature_flag_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.feature_flag_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::FeatureFlagRequest& GatewayWrapper::_internal_feature_flag_request() const {
  return _internal_has_feature_flag_request()
      ? *oneof_message_type_.feature_flag_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::FeatureFlagRequest*>(&::Anki::Vector::external_interface::_FeatureFlagRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::FeatureFlagRequest& GatewayWrapper::feature_flag_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.feature_flag_request)
  return _internal_feature_flag_request();
}
inline ::Anki::Vector::external_interface::FeatureFlagRequest* GatewayWrapper::unsafe_arena_release_feature_flag_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.feature_flag_request)
  if (_internal_has_feature_flag_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::FeatureFlagRequest* temp = oneof_message_type_.feature_flag_request_;
    oneof_message_type_.feature_flag_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_feature_flag_request(::Anki::Vector::external_interface::FeatureFlagRequest* feature_flag_request) {
  clear_oneof_message_type();
  if (feature_flag_request) {
    set_has_feature_flag_request();
    oneof_message_type_.feature_flag_request_ = feature_flag_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.feature_flag_request)
}
inline ::Anki::Vector::external_interface::FeatureFlagRequest* GatewayWrapper::_internal_mutable_feature_flag_request() {
  if (!_internal_has_feature_flag_request()) {
    clear_oneof_message_type();
    set_has_feature_flag_request();
    oneof_message_type_.feature_flag_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::FeatureFlagRequest >(GetArena());
  }
  return oneof_message_type_.feature_flag_request_;
}
inline ::Anki::Vector::external_interface::FeatureFlagRequest* GatewayWrapper::mutable_feature_flag_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.feature_flag_request)
  return _internal_mutable_feature_flag_request();
}

// .Anki.Vector.external_interface.FeatureFlagResponse feature_flag_response = 1401;
inline bool GatewayWrapper::_internal_has_feature_flag_response() const {
  return oneof_message_type_case() == kFeatureFlagResponse;
}
inline bool GatewayWrapper::has_feature_flag_response() const {
  return _internal_has_feature_flag_response();
}
inline void GatewayWrapper::set_has_feature_flag_response() {
  _oneof_case_[0] = kFeatureFlagResponse;
}
inline ::Anki::Vector::external_interface::FeatureFlagResponse* GatewayWrapper::release_feature_flag_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.feature_flag_response)
  if (_internal_has_feature_flag_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::FeatureFlagResponse* temp = oneof_message_type_.feature_flag_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.feature_flag_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::FeatureFlagResponse& GatewayWrapper::_internal_feature_flag_response() const {
  return _internal_has_feature_flag_response()
      ? *oneof_message_type_.feature_flag_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::FeatureFlagResponse*>(&::Anki::Vector::external_interface::_FeatureFlagResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::FeatureFlagResponse& GatewayWrapper::feature_flag_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.feature_flag_response)
  return _internal_feature_flag_response();
}
inline ::Anki::Vector::external_interface::FeatureFlagResponse* GatewayWrapper::unsafe_arena_release_feature_flag_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.feature_flag_response)
  if (_internal_has_feature_flag_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::FeatureFlagResponse* temp = oneof_message_type_.feature_flag_response_;
    oneof_message_type_.feature_flag_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_feature_flag_response(::Anki::Vector::external_interface::FeatureFlagResponse* feature_flag_response) {
  clear_oneof_message_type();
  if (feature_flag_response) {
    set_has_feature_flag_response();
    oneof_message_type_.feature_flag_response_ = feature_flag_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.feature_flag_response)
}
inline ::Anki::Vector::external_interface::FeatureFlagResponse* GatewayWrapper::_internal_mutable_feature_flag_response() {
  if (!_internal_has_feature_flag_response()) {
    clear_oneof_message_type();
    set_has_feature_flag_response();
    oneof_message_type_.feature_flag_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::FeatureFlagResponse >(GetArena());
  }
  return oneof_message_type_.feature_flag_response_;
}
inline ::Anki::Vector::external_interface::FeatureFlagResponse* GatewayWrapper::mutable_feature_flag_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.feature_flag_response)
  return _internal_mutable_feature_flag_response();
}

// .Anki.Vector.external_interface.FeatureFlagListRequest feature_flag_list_request = 1402;
inline bool GatewayWrapper::_internal_has_feature_flag_list_request() const {
  return oneof_message_type_case() == kFeatureFlagListRequest;
}
inline bool GatewayWrapper::has_feature_flag_list_request() const {
  return _internal_has_feature_flag_list_request();
}
inline void GatewayWrapper::set_has_feature_flag_list_request() {
  _oneof_case_[0] = kFeatureFlagListRequest;
}
inline ::Anki::Vector::external_interface::FeatureFlagListRequest* GatewayWrapper::release_feature_flag_list_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.feature_flag_list_request)
  if (_internal_has_feature_flag_list_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::FeatureFlagListRequest* temp = oneof_message_type_.feature_flag_list_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.feature_flag_list_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::FeatureFlagListRequest& GatewayWrapper::_internal_feature_flag_list_request() const {
  return _internal_has_feature_flag_list_request()
      ? *oneof_message_type_.feature_flag_list_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::FeatureFlagListRequest*>(&::Anki::Vector::external_interface::_FeatureFlagListRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::FeatureFlagListRequest& GatewayWrapper::feature_flag_list_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.feature_flag_list_request)
  return _internal_feature_flag_list_request();
}
inline ::Anki::Vector::external_interface::FeatureFlagListRequest* GatewayWrapper::unsafe_arena_release_feature_flag_list_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.feature_flag_list_request)
  if (_internal_has_feature_flag_list_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::FeatureFlagListRequest* temp = oneof_message_type_.feature_flag_list_request_;
    oneof_message_type_.feature_flag_list_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_feature_flag_list_request(::Anki::Vector::external_interface::FeatureFlagListRequest* feature_flag_list_request) {
  clear_oneof_message_type();
  if (feature_flag_list_request) {
    set_has_feature_flag_list_request();
    oneof_message_type_.feature_flag_list_request_ = feature_flag_list_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.feature_flag_list_request)
}
inline ::Anki::Vector::external_interface::FeatureFlagListRequest* GatewayWrapper::_internal_mutable_feature_flag_list_request() {
  if (!_internal_has_feature_flag_list_request()) {
    clear_oneof_message_type();
    set_has_feature_flag_list_request();
    oneof_message_type_.feature_flag_list_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::FeatureFlagListRequest >(GetArena());
  }
  return oneof_message_type_.feature_flag_list_request_;
}
inline ::Anki::Vector::external_interface::FeatureFlagListRequest* GatewayWrapper::mutable_feature_flag_list_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.feature_flag_list_request)
  return _internal_mutable_feature_flag_list_request();
}

// .Anki.Vector.external_interface.FeatureFlagListResponse feature_flag_list_response = 1403;
inline bool GatewayWrapper::_internal_has_feature_flag_list_response() const {
  return oneof_message_type_case() == kFeatureFlagListResponse;
}
inline bool GatewayWrapper::has_feature_flag_list_response() const {
  return _internal_has_feature_flag_list_response();
}
inline void GatewayWrapper::set_has_feature_flag_list_response() {
  _oneof_case_[0] = kFeatureFlagListResponse;
}
inline ::Anki::Vector::external_interface::FeatureFlagListResponse* GatewayWrapper::release_feature_flag_list_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.feature_flag_list_response)
  if (_internal_has_feature_flag_list_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::FeatureFlagListResponse* temp = oneof_message_type_.feature_flag_list_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.feature_flag_list_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::FeatureFlagListResponse& GatewayWrapper::_internal_feature_flag_list_response() const {
  return _internal_has_feature_flag_list_response()
      ? *oneof_message_type_.feature_flag_list_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::FeatureFlagListResponse*>(&::Anki::Vector::external_interface::_FeatureFlagListResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::FeatureFlagListResponse& GatewayWrapper::feature_flag_list_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.feature_flag_list_response)
  return _internal_feature_flag_list_response();
}
inline ::Anki::Vector::external_interface::FeatureFlagListResponse* GatewayWrapper::unsafe_arena_release_feature_flag_list_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.feature_flag_list_response)
  if (_internal_has_feature_flag_list_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::FeatureFlagListResponse* temp = oneof_message_type_.feature_flag_list_response_;
    oneof_message_type_.feature_flag_list_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_feature_flag_list_response(::Anki::Vector::external_interface::FeatureFlagListResponse* feature_flag_list_response) {
  clear_oneof_message_type();
  if (feature_flag_list_response) {
    set_has_feature_flag_list_response();
    oneof_message_type_.feature_flag_list_response_ = feature_flag_list_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.feature_flag_list_response)
}
inline ::Anki::Vector::external_interface::FeatureFlagListResponse* GatewayWrapper::_internal_mutable_feature_flag_list_response() {
  if (!_internal_has_feature_flag_list_response()) {
    clear_oneof_message_type();
    set_has_feature_flag_list_response();
    oneof_message_type_.feature_flag_list_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::FeatureFlagListResponse >(GetArena());
  }
  return oneof_message_type_.feature_flag_list_response_;
}
inline ::Anki::Vector::external_interface::FeatureFlagListResponse* GatewayWrapper::mutable_feature_flag_list_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.feature_flag_list_response)
  return _internal_mutable_feature_flag_list_response();
}

// .Anki.Vector.external_interface.AppDisconnected app_disconnected = 1500;
inline bool GatewayWrapper::_internal_has_app_disconnected() const {
  return oneof_message_type_case() == kAppDisconnected;
}
inline bool GatewayWrapper::has_app_disconnected() const {
  return _internal_has_app_disconnected();
}
inline void GatewayWrapper::set_has_app_disconnected() {
  _oneof_case_[0] = kAppDisconnected;
}
inline ::Anki::Vector::external_interface::AppDisconnected* GatewayWrapper::release_app_disconnected() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.app_disconnected)
  if (_internal_has_app_disconnected()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::AppDisconnected* temp = oneof_message_type_.app_disconnected_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.app_disconnected_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::AppDisconnected& GatewayWrapper::_internal_app_disconnected() const {
  return _internal_has_app_disconnected()
      ? *oneof_message_type_.app_disconnected_
      : *reinterpret_cast< ::Anki::Vector::external_interface::AppDisconnected*>(&::Anki::Vector::external_interface::_AppDisconnected_default_instance_);
}
inline const ::Anki::Vector::external_interface::AppDisconnected& GatewayWrapper::app_disconnected() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.app_disconnected)
  return _internal_app_disconnected();
}
inline ::Anki::Vector::external_interface::AppDisconnected* GatewayWrapper::unsafe_arena_release_app_disconnected() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.app_disconnected)
  if (_internal_has_app_disconnected()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::AppDisconnected* temp = oneof_message_type_.app_disconnected_;
    oneof_message_type_.app_disconnected_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_app_disconnected(::Anki::Vector::external_interface::AppDisconnected* app_disconnected) {
  clear_oneof_message_type();
  if (app_disconnected) {
    set_has_app_disconnected();
    oneof_message_type_.app_disconnected_ = app_disconnected;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.app_disconnected)
}
inline ::Anki::Vector::external_interface::AppDisconnected* GatewayWrapper::_internal_mutable_app_disconnected() {
  if (!_internal_has_app_disconnected()) {
    clear_oneof_message_type();
    set_has_app_disconnected();
    oneof_message_type_.app_disconnected_ = CreateMaybeMessage< ::Anki::Vector::external_interface::AppDisconnected >(GetArena());
  }
  return oneof_message_type_.app_disconnected_;
}
inline ::Anki::Vector::external_interface::AppDisconnected* GatewayWrapper::mutable_app_disconnected() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.app_disconnected)
  return _internal_mutable_app_disconnected();
}

// .Anki.Vector.external_interface.AlexaAuthStateRequest alexa_auth_state_request = 1600;
inline bool GatewayWrapper::_internal_has_alexa_auth_state_request() const {
  return oneof_message_type_case() == kAlexaAuthStateRequest;
}
inline bool GatewayWrapper::has_alexa_auth_state_request() const {
  return _internal_has_alexa_auth_state_request();
}
inline void GatewayWrapper::set_has_alexa_auth_state_request() {
  _oneof_case_[0] = kAlexaAuthStateRequest;
}
inline ::Anki::Vector::external_interface::AlexaAuthStateRequest* GatewayWrapper::release_alexa_auth_state_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.alexa_auth_state_request)
  if (_internal_has_alexa_auth_state_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::AlexaAuthStateRequest* temp = oneof_message_type_.alexa_auth_state_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.alexa_auth_state_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::AlexaAuthStateRequest& GatewayWrapper::_internal_alexa_auth_state_request() const {
  return _internal_has_alexa_auth_state_request()
      ? *oneof_message_type_.alexa_auth_state_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::AlexaAuthStateRequest*>(&::Anki::Vector::external_interface::_AlexaAuthStateRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::AlexaAuthStateRequest& GatewayWrapper::alexa_auth_state_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.alexa_auth_state_request)
  return _internal_alexa_auth_state_request();
}
inline ::Anki::Vector::external_interface::AlexaAuthStateRequest* GatewayWrapper::unsafe_arena_release_alexa_auth_state_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.alexa_auth_state_request)
  if (_internal_has_alexa_auth_state_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::AlexaAuthStateRequest* temp = oneof_message_type_.alexa_auth_state_request_;
    oneof_message_type_.alexa_auth_state_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_alexa_auth_state_request(::Anki::Vector::external_interface::AlexaAuthStateRequest* alexa_auth_state_request) {
  clear_oneof_message_type();
  if (alexa_auth_state_request) {
    set_has_alexa_auth_state_request();
    oneof_message_type_.alexa_auth_state_request_ = alexa_auth_state_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.alexa_auth_state_request)
}
inline ::Anki::Vector::external_interface::AlexaAuthStateRequest* GatewayWrapper::_internal_mutable_alexa_auth_state_request() {
  if (!_internal_has_alexa_auth_state_request()) {
    clear_oneof_message_type();
    set_has_alexa_auth_state_request();
    oneof_message_type_.alexa_auth_state_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::AlexaAuthStateRequest >(GetArena());
  }
  return oneof_message_type_.alexa_auth_state_request_;
}
inline ::Anki::Vector::external_interface::AlexaAuthStateRequest* GatewayWrapper::mutable_alexa_auth_state_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.alexa_auth_state_request)
  return _internal_mutable_alexa_auth_state_request();
}

// .Anki.Vector.external_interface.AlexaAuthStateResponse alexa_auth_state_response = 1601;
inline bool GatewayWrapper::_internal_has_alexa_auth_state_response() const {
  return oneof_message_type_case() == kAlexaAuthStateResponse;
}
inline bool GatewayWrapper::has_alexa_auth_state_response() const {
  return _internal_has_alexa_auth_state_response();
}
inline void GatewayWrapper::set_has_alexa_auth_state_response() {
  _oneof_case_[0] = kAlexaAuthStateResponse;
}
inline ::Anki::Vector::external_interface::AlexaAuthStateResponse* GatewayWrapper::release_alexa_auth_state_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.alexa_auth_state_response)
  if (_internal_has_alexa_auth_state_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::AlexaAuthStateResponse* temp = oneof_message_type_.alexa_auth_state_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.alexa_auth_state_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::AlexaAuthStateResponse& GatewayWrapper::_internal_alexa_auth_state_response() const {
  return _internal_has_alexa_auth_state_response()
      ? *oneof_message_type_.alexa_auth_state_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::AlexaAuthStateResponse*>(&::Anki::Vector::external_interface::_AlexaAuthStateResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::AlexaAuthStateResponse& GatewayWrapper::alexa_auth_state_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.alexa_auth_state_response)
  return _internal_alexa_auth_state_response();
}
inline ::Anki::Vector::external_interface::AlexaAuthStateResponse* GatewayWrapper::unsafe_arena_release_alexa_auth_state_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.alexa_auth_state_response)
  if (_internal_has_alexa_auth_state_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::AlexaAuthStateResponse* temp = oneof_message_type_.alexa_auth_state_response_;
    oneof_message_type_.alexa_auth_state_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_alexa_auth_state_response(::Anki::Vector::external_interface::AlexaAuthStateResponse* alexa_auth_state_response) {
  clear_oneof_message_type();
  if (alexa_auth_state_response) {
    set_has_alexa_auth_state_response();
    oneof_message_type_.alexa_auth_state_response_ = alexa_auth_state_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.alexa_auth_state_response)
}
inline ::Anki::Vector::external_interface::AlexaAuthStateResponse* GatewayWrapper::_internal_mutable_alexa_auth_state_response() {
  if (!_internal_has_alexa_auth_state_response()) {
    clear_oneof_message_type();
    set_has_alexa_auth_state_response();
    oneof_message_type_.alexa_auth_state_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::AlexaAuthStateResponse >(GetArena());
  }
  return oneof_message_type_.alexa_auth_state_response_;
}
inline ::Anki::Vector::external_interface::AlexaAuthStateResponse* GatewayWrapper::mutable_alexa_auth_state_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.alexa_auth_state_response)
  return _internal_mutable_alexa_auth_state_response();
}

// .Anki.Vector.external_interface.AlexaOptInRequest alexa_opt_in_request = 1602;
inline bool GatewayWrapper::_internal_has_alexa_opt_in_request() const {
  return oneof_message_type_case() == kAlexaOptInRequest;
}
inline bool GatewayWrapper::has_alexa_opt_in_request() const {
  return _internal_has_alexa_opt_in_request();
}
inline void GatewayWrapper::set_has_alexa_opt_in_request() {
  _oneof_case_[0] = kAlexaOptInRequest;
}
inline ::Anki::Vector::external_interface::AlexaOptInRequest* GatewayWrapper::release_alexa_opt_in_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.alexa_opt_in_request)
  if (_internal_has_alexa_opt_in_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::AlexaOptInRequest* temp = oneof_message_type_.alexa_opt_in_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.alexa_opt_in_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::AlexaOptInRequest& GatewayWrapper::_internal_alexa_opt_in_request() const {
  return _internal_has_alexa_opt_in_request()
      ? *oneof_message_type_.alexa_opt_in_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::AlexaOptInRequest*>(&::Anki::Vector::external_interface::_AlexaOptInRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::AlexaOptInRequest& GatewayWrapper::alexa_opt_in_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.alexa_opt_in_request)
  return _internal_alexa_opt_in_request();
}
inline ::Anki::Vector::external_interface::AlexaOptInRequest* GatewayWrapper::unsafe_arena_release_alexa_opt_in_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.alexa_opt_in_request)
  if (_internal_has_alexa_opt_in_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::AlexaOptInRequest* temp = oneof_message_type_.alexa_opt_in_request_;
    oneof_message_type_.alexa_opt_in_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_alexa_opt_in_request(::Anki::Vector::external_interface::AlexaOptInRequest* alexa_opt_in_request) {
  clear_oneof_message_type();
  if (alexa_opt_in_request) {
    set_has_alexa_opt_in_request();
    oneof_message_type_.alexa_opt_in_request_ = alexa_opt_in_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.alexa_opt_in_request)
}
inline ::Anki::Vector::external_interface::AlexaOptInRequest* GatewayWrapper::_internal_mutable_alexa_opt_in_request() {
  if (!_internal_has_alexa_opt_in_request()) {
    clear_oneof_message_type();
    set_has_alexa_opt_in_request();
    oneof_message_type_.alexa_opt_in_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::AlexaOptInRequest >(GetArena());
  }
  return oneof_message_type_.alexa_opt_in_request_;
}
inline ::Anki::Vector::external_interface::AlexaOptInRequest* GatewayWrapper::mutable_alexa_opt_in_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.alexa_opt_in_request)
  return _internal_mutable_alexa_opt_in_request();
}

// .Anki.Vector.external_interface.AlexaOptInResponse alexa_opt_in_response = 1603;
inline bool GatewayWrapper::_internal_has_alexa_opt_in_response() const {
  return oneof_message_type_case() == kAlexaOptInResponse;
}
inline bool GatewayWrapper::has_alexa_opt_in_response() const {
  return _internal_has_alexa_opt_in_response();
}
inline void GatewayWrapper::set_has_alexa_opt_in_response() {
  _oneof_case_[0] = kAlexaOptInResponse;
}
inline ::Anki::Vector::external_interface::AlexaOptInResponse* GatewayWrapper::release_alexa_opt_in_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.alexa_opt_in_response)
  if (_internal_has_alexa_opt_in_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::AlexaOptInResponse* temp = oneof_message_type_.alexa_opt_in_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.alexa_opt_in_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::AlexaOptInResponse& GatewayWrapper::_internal_alexa_opt_in_response() const {
  return _internal_has_alexa_opt_in_response()
      ? *oneof_message_type_.alexa_opt_in_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::AlexaOptInResponse*>(&::Anki::Vector::external_interface::_AlexaOptInResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::AlexaOptInResponse& GatewayWrapper::alexa_opt_in_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.alexa_opt_in_response)
  return _internal_alexa_opt_in_response();
}
inline ::Anki::Vector::external_interface::AlexaOptInResponse* GatewayWrapper::unsafe_arena_release_alexa_opt_in_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.alexa_opt_in_response)
  if (_internal_has_alexa_opt_in_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::AlexaOptInResponse* temp = oneof_message_type_.alexa_opt_in_response_;
    oneof_message_type_.alexa_opt_in_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_alexa_opt_in_response(::Anki::Vector::external_interface::AlexaOptInResponse* alexa_opt_in_response) {
  clear_oneof_message_type();
  if (alexa_opt_in_response) {
    set_has_alexa_opt_in_response();
    oneof_message_type_.alexa_opt_in_response_ = alexa_opt_in_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.alexa_opt_in_response)
}
inline ::Anki::Vector::external_interface::AlexaOptInResponse* GatewayWrapper::_internal_mutable_alexa_opt_in_response() {
  if (!_internal_has_alexa_opt_in_response()) {
    clear_oneof_message_type();
    set_has_alexa_opt_in_response();
    oneof_message_type_.alexa_opt_in_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::AlexaOptInResponse >(GetArena());
  }
  return oneof_message_type_.alexa_opt_in_response_;
}
inline ::Anki::Vector::external_interface::AlexaOptInResponse* GatewayWrapper::mutable_alexa_opt_in_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.alexa_opt_in_response)
  return _internal_mutable_alexa_opt_in_response();
}

// .Anki.Vector.external_interface.SetEyeColorRequest set_eye_color_request = 1700;
inline bool GatewayWrapper::_internal_has_set_eye_color_request() const {
  return oneof_message_type_case() == kSetEyeColorRequest;
}
inline bool GatewayWrapper::has_set_eye_color_request() const {
  return _internal_has_set_eye_color_request();
}
inline void GatewayWrapper::set_has_set_eye_color_request() {
  _oneof_case_[0] = kSetEyeColorRequest;
}
inline ::Anki::Vector::external_interface::SetEyeColorRequest* GatewayWrapper::release_set_eye_color_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.set_eye_color_request)
  if (_internal_has_set_eye_color_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SetEyeColorRequest* temp = oneof_message_type_.set_eye_color_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.set_eye_color_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SetEyeColorRequest& GatewayWrapper::_internal_set_eye_color_request() const {
  return _internal_has_set_eye_color_request()
      ? *oneof_message_type_.set_eye_color_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SetEyeColorRequest*>(&::Anki::Vector::external_interface::_SetEyeColorRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::SetEyeColorRequest& GatewayWrapper::set_eye_color_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.set_eye_color_request)
  return _internal_set_eye_color_request();
}
inline ::Anki::Vector::external_interface::SetEyeColorRequest* GatewayWrapper::unsafe_arena_release_set_eye_color_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.set_eye_color_request)
  if (_internal_has_set_eye_color_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SetEyeColorRequest* temp = oneof_message_type_.set_eye_color_request_;
    oneof_message_type_.set_eye_color_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_set_eye_color_request(::Anki::Vector::external_interface::SetEyeColorRequest* set_eye_color_request) {
  clear_oneof_message_type();
  if (set_eye_color_request) {
    set_has_set_eye_color_request();
    oneof_message_type_.set_eye_color_request_ = set_eye_color_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_eye_color_request)
}
inline ::Anki::Vector::external_interface::SetEyeColorRequest* GatewayWrapper::_internal_mutable_set_eye_color_request() {
  if (!_internal_has_set_eye_color_request()) {
    clear_oneof_message_type();
    set_has_set_eye_color_request();
    oneof_message_type_.set_eye_color_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SetEyeColorRequest >(GetArena());
  }
  return oneof_message_type_.set_eye_color_request_;
}
inline ::Anki::Vector::external_interface::SetEyeColorRequest* GatewayWrapper::mutable_set_eye_color_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.set_eye_color_request)
  return _internal_mutable_set_eye_color_request();
}

// .Anki.Vector.external_interface.SetEyeColorResponse set_eye_color_response = 1701;
inline bool GatewayWrapper::_internal_has_set_eye_color_response() const {
  return oneof_message_type_case() == kSetEyeColorResponse;
}
inline bool GatewayWrapper::has_set_eye_color_response() const {
  return _internal_has_set_eye_color_response();
}
inline void GatewayWrapper::set_has_set_eye_color_response() {
  _oneof_case_[0] = kSetEyeColorResponse;
}
inline ::Anki::Vector::external_interface::SetEyeColorResponse* GatewayWrapper::release_set_eye_color_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.set_eye_color_response)
  if (_internal_has_set_eye_color_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SetEyeColorResponse* temp = oneof_message_type_.set_eye_color_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.set_eye_color_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SetEyeColorResponse& GatewayWrapper::_internal_set_eye_color_response() const {
  return _internal_has_set_eye_color_response()
      ? *oneof_message_type_.set_eye_color_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SetEyeColorResponse*>(&::Anki::Vector::external_interface::_SetEyeColorResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::SetEyeColorResponse& GatewayWrapper::set_eye_color_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.set_eye_color_response)
  return _internal_set_eye_color_response();
}
inline ::Anki::Vector::external_interface::SetEyeColorResponse* GatewayWrapper::unsafe_arena_release_set_eye_color_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.set_eye_color_response)
  if (_internal_has_set_eye_color_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SetEyeColorResponse* temp = oneof_message_type_.set_eye_color_response_;
    oneof_message_type_.set_eye_color_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_set_eye_color_response(::Anki::Vector::external_interface::SetEyeColorResponse* set_eye_color_response) {
  clear_oneof_message_type();
  if (set_eye_color_response) {
    set_has_set_eye_color_response();
    oneof_message_type_.set_eye_color_response_ = set_eye_color_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_eye_color_response)
}
inline ::Anki::Vector::external_interface::SetEyeColorResponse* GatewayWrapper::_internal_mutable_set_eye_color_response() {
  if (!_internal_has_set_eye_color_response()) {
    clear_oneof_message_type();
    set_has_set_eye_color_response();
    oneof_message_type_.set_eye_color_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SetEyeColorResponse >(GetArena());
  }
  return oneof_message_type_.set_eye_color_response_;
}
inline ::Anki::Vector::external_interface::SetEyeColorResponse* GatewayWrapper::mutable_set_eye_color_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.set_eye_color_response)
  return _internal_mutable_set_eye_color_response();
}

// .Anki.Vector.external_interface.MasterVolumeRequest master_volume_request = 1702;
inline bool GatewayWrapper::_internal_has_master_volume_request() const {
  return oneof_message_type_case() == kMasterVolumeRequest;
}
inline bool GatewayWrapper::has_master_volume_request() const {
  return _internal_has_master_volume_request();
}
inline void GatewayWrapper::set_has_master_volume_request() {
  _oneof_case_[0] = kMasterVolumeRequest;
}
inline ::Anki::Vector::external_interface::MasterVolumeRequest* GatewayWrapper::release_master_volume_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.master_volume_request)
  if (_internal_has_master_volume_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::MasterVolumeRequest* temp = oneof_message_type_.master_volume_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.master_volume_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::MasterVolumeRequest& GatewayWrapper::_internal_master_volume_request() const {
  return _internal_has_master_volume_request()
      ? *oneof_message_type_.master_volume_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::MasterVolumeRequest*>(&::Anki::Vector::external_interface::_MasterVolumeRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::MasterVolumeRequest& GatewayWrapper::master_volume_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.master_volume_request)
  return _internal_master_volume_request();
}
inline ::Anki::Vector::external_interface::MasterVolumeRequest* GatewayWrapper::unsafe_arena_release_master_volume_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.master_volume_request)
  if (_internal_has_master_volume_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::MasterVolumeRequest* temp = oneof_message_type_.master_volume_request_;
    oneof_message_type_.master_volume_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_master_volume_request(::Anki::Vector::external_interface::MasterVolumeRequest* master_volume_request) {
  clear_oneof_message_type();
  if (master_volume_request) {
    set_has_master_volume_request();
    oneof_message_type_.master_volume_request_ = master_volume_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.master_volume_request)
}
inline ::Anki::Vector::external_interface::MasterVolumeRequest* GatewayWrapper::_internal_mutable_master_volume_request() {
  if (!_internal_has_master_volume_request()) {
    clear_oneof_message_type();
    set_has_master_volume_request();
    oneof_message_type_.master_volume_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::MasterVolumeRequest >(GetArena());
  }
  return oneof_message_type_.master_volume_request_;
}
inline ::Anki::Vector::external_interface::MasterVolumeRequest* GatewayWrapper::mutable_master_volume_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.master_volume_request)
  return _internal_mutable_master_volume_request();
}

// .Anki.Vector.external_interface.MasterVolumeResponse master_volume_response = 1703;
inline bool GatewayWrapper::_internal_has_master_volume_response() const {
  return oneof_message_type_case() == kMasterVolumeResponse;
}
inline bool GatewayWrapper::has_master_volume_response() const {
  return _internal_has_master_volume_response();
}
inline void GatewayWrapper::set_has_master_volume_response() {
  _oneof_case_[0] = kMasterVolumeResponse;
}
inline ::Anki::Vector::external_interface::MasterVolumeResponse* GatewayWrapper::release_master_volume_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.master_volume_response)
  if (_internal_has_master_volume_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::MasterVolumeResponse* temp = oneof_message_type_.master_volume_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.master_volume_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::MasterVolumeResponse& GatewayWrapper::_internal_master_volume_response() const {
  return _internal_has_master_volume_response()
      ? *oneof_message_type_.master_volume_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::MasterVolumeResponse*>(&::Anki::Vector::external_interface::_MasterVolumeResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::MasterVolumeResponse& GatewayWrapper::master_volume_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.master_volume_response)
  return _internal_master_volume_response();
}
inline ::Anki::Vector::external_interface::MasterVolumeResponse* GatewayWrapper::unsafe_arena_release_master_volume_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.master_volume_response)
  if (_internal_has_master_volume_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::MasterVolumeResponse* temp = oneof_message_type_.master_volume_response_;
    oneof_message_type_.master_volume_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_master_volume_response(::Anki::Vector::external_interface::MasterVolumeResponse* master_volume_response) {
  clear_oneof_message_type();
  if (master_volume_response) {
    set_has_master_volume_response();
    oneof_message_type_.master_volume_response_ = master_volume_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.master_volume_response)
}
inline ::Anki::Vector::external_interface::MasterVolumeResponse* GatewayWrapper::_internal_mutable_master_volume_response() {
  if (!_internal_has_master_volume_response()) {
    clear_oneof_message_type();
    set_has_master_volume_response();
    oneof_message_type_.master_volume_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::MasterVolumeResponse >(GetArena());
  }
  return oneof_message_type_.master_volume_response_;
}
inline ::Anki::Vector::external_interface::MasterVolumeResponse* GatewayWrapper::mutable_master_volume_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.master_volume_response)
  return _internal_mutable_master_volume_response();
}

// .Anki.Vector.external_interface.SetCameraSettingsRequest set_camera_settings_request = 1704;
inline bool GatewayWrapper::_internal_has_set_camera_settings_request() const {
  return oneof_message_type_case() == kSetCameraSettingsRequest;
}
inline bool GatewayWrapper::has_set_camera_settings_request() const {
  return _internal_has_set_camera_settings_request();
}
inline void GatewayWrapper::set_has_set_camera_settings_request() {
  _oneof_case_[0] = kSetCameraSettingsRequest;
}
inline ::Anki::Vector::external_interface::SetCameraSettingsRequest* GatewayWrapper::release_set_camera_settings_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.set_camera_settings_request)
  if (_internal_has_set_camera_settings_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SetCameraSettingsRequest* temp = oneof_message_type_.set_camera_settings_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.set_camera_settings_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SetCameraSettingsRequest& GatewayWrapper::_internal_set_camera_settings_request() const {
  return _internal_has_set_camera_settings_request()
      ? *oneof_message_type_.set_camera_settings_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SetCameraSettingsRequest*>(&::Anki::Vector::external_interface::_SetCameraSettingsRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::SetCameraSettingsRequest& GatewayWrapper::set_camera_settings_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.set_camera_settings_request)
  return _internal_set_camera_settings_request();
}
inline ::Anki::Vector::external_interface::SetCameraSettingsRequest* GatewayWrapper::unsafe_arena_release_set_camera_settings_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.set_camera_settings_request)
  if (_internal_has_set_camera_settings_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SetCameraSettingsRequest* temp = oneof_message_type_.set_camera_settings_request_;
    oneof_message_type_.set_camera_settings_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_set_camera_settings_request(::Anki::Vector::external_interface::SetCameraSettingsRequest* set_camera_settings_request) {
  clear_oneof_message_type();
  if (set_camera_settings_request) {
    set_has_set_camera_settings_request();
    oneof_message_type_.set_camera_settings_request_ = set_camera_settings_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_camera_settings_request)
}
inline ::Anki::Vector::external_interface::SetCameraSettingsRequest* GatewayWrapper::_internal_mutable_set_camera_settings_request() {
  if (!_internal_has_set_camera_settings_request()) {
    clear_oneof_message_type();
    set_has_set_camera_settings_request();
    oneof_message_type_.set_camera_settings_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SetCameraSettingsRequest >(GetArena());
  }
  return oneof_message_type_.set_camera_settings_request_;
}
inline ::Anki::Vector::external_interface::SetCameraSettingsRequest* GatewayWrapper::mutable_set_camera_settings_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.set_camera_settings_request)
  return _internal_mutable_set_camera_settings_request();
}

// .Anki.Vector.external_interface.SetCameraSettingsResponse set_camera_settings_response = 1705;
inline bool GatewayWrapper::_internal_has_set_camera_settings_response() const {
  return oneof_message_type_case() == kSetCameraSettingsResponse;
}
inline bool GatewayWrapper::has_set_camera_settings_response() const {
  return _internal_has_set_camera_settings_response();
}
inline void GatewayWrapper::set_has_set_camera_settings_response() {
  _oneof_case_[0] = kSetCameraSettingsResponse;
}
inline ::Anki::Vector::external_interface::SetCameraSettingsResponse* GatewayWrapper::release_set_camera_settings_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.set_camera_settings_response)
  if (_internal_has_set_camera_settings_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::SetCameraSettingsResponse* temp = oneof_message_type_.set_camera_settings_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.set_camera_settings_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::SetCameraSettingsResponse& GatewayWrapper::_internal_set_camera_settings_response() const {
  return _internal_has_set_camera_settings_response()
      ? *oneof_message_type_.set_camera_settings_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::SetCameraSettingsResponse*>(&::Anki::Vector::external_interface::_SetCameraSettingsResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::SetCameraSettingsResponse& GatewayWrapper::set_camera_settings_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.set_camera_settings_response)
  return _internal_set_camera_settings_response();
}
inline ::Anki::Vector::external_interface::SetCameraSettingsResponse* GatewayWrapper::unsafe_arena_release_set_camera_settings_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.set_camera_settings_response)
  if (_internal_has_set_camera_settings_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::SetCameraSettingsResponse* temp = oneof_message_type_.set_camera_settings_response_;
    oneof_message_type_.set_camera_settings_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_set_camera_settings_response(::Anki::Vector::external_interface::SetCameraSettingsResponse* set_camera_settings_response) {
  clear_oneof_message_type();
  if (set_camera_settings_response) {
    set_has_set_camera_settings_response();
    oneof_message_type_.set_camera_settings_response_ = set_camera_settings_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_camera_settings_response)
}
inline ::Anki::Vector::external_interface::SetCameraSettingsResponse* GatewayWrapper::_internal_mutable_set_camera_settings_response() {
  if (!_internal_has_set_camera_settings_response()) {
    clear_oneof_message_type();
    set_has_set_camera_settings_response();
    oneof_message_type_.set_camera_settings_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::SetCameraSettingsResponse >(GetArena());
  }
  return oneof_message_type_.set_camera_settings_response_;
}
inline ::Anki::Vector::external_interface::SetCameraSettingsResponse* GatewayWrapper::mutable_set_camera_settings_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.set_camera_settings_response)
  return _internal_mutable_set_camera_settings_response();
}

// .Anki.Vector.external_interface.CameraConfigRequest camera_config_request = 1706;
inline bool GatewayWrapper::_internal_has_camera_config_request() const {
  return oneof_message_type_case() == kCameraConfigRequest;
}
inline bool GatewayWrapper::has_camera_config_request() const {
  return _internal_has_camera_config_request();
}
inline void GatewayWrapper::set_has_camera_config_request() {
  _oneof_case_[0] = kCameraConfigRequest;
}
inline ::Anki::Vector::external_interface::CameraConfigRequest* GatewayWrapper::release_camera_config_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.camera_config_request)
  if (_internal_has_camera_config_request()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::CameraConfigRequest* temp = oneof_message_type_.camera_config_request_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.camera_config_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CameraConfigRequest& GatewayWrapper::_internal_camera_config_request() const {
  return _internal_has_camera_config_request()
      ? *oneof_message_type_.camera_config_request_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CameraConfigRequest*>(&::Anki::Vector::external_interface::_CameraConfigRequest_default_instance_);
}
inline const ::Anki::Vector::external_interface::CameraConfigRequest& GatewayWrapper::camera_config_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.camera_config_request)
  return _internal_camera_config_request();
}
inline ::Anki::Vector::external_interface::CameraConfigRequest* GatewayWrapper::unsafe_arena_release_camera_config_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.camera_config_request)
  if (_internal_has_camera_config_request()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::CameraConfigRequest* temp = oneof_message_type_.camera_config_request_;
    oneof_message_type_.camera_config_request_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_camera_config_request(::Anki::Vector::external_interface::CameraConfigRequest* camera_config_request) {
  clear_oneof_message_type();
  if (camera_config_request) {
    set_has_camera_config_request();
    oneof_message_type_.camera_config_request_ = camera_config_request;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.camera_config_request)
}
inline ::Anki::Vector::external_interface::CameraConfigRequest* GatewayWrapper::_internal_mutable_camera_config_request() {
  if (!_internal_has_camera_config_request()) {
    clear_oneof_message_type();
    set_has_camera_config_request();
    oneof_message_type_.camera_config_request_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CameraConfigRequest >(GetArena());
  }
  return oneof_message_type_.camera_config_request_;
}
inline ::Anki::Vector::external_interface::CameraConfigRequest* GatewayWrapper::mutable_camera_config_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.camera_config_request)
  return _internal_mutable_camera_config_request();
}

// .Anki.Vector.external_interface.CameraConfigResponse camera_config_response = 1707;
inline bool GatewayWrapper::_internal_has_camera_config_response() const {
  return oneof_message_type_case() == kCameraConfigResponse;
}
inline bool GatewayWrapper::has_camera_config_response() const {
  return _internal_has_camera_config_response();
}
inline void GatewayWrapper::set_has_camera_config_response() {
  _oneof_case_[0] = kCameraConfigResponse;
}
inline ::Anki::Vector::external_interface::CameraConfigResponse* GatewayWrapper::release_camera_config_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.camera_config_response)
  if (_internal_has_camera_config_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::CameraConfigResponse* temp = oneof_message_type_.camera_config_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.camera_config_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::CameraConfigResponse& GatewayWrapper::_internal_camera_config_response() const {
  return _internal_has_camera_config_response()
      ? *oneof_message_type_.camera_config_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::CameraConfigResponse*>(&::Anki::Vector::external_interface::_CameraConfigResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::CameraConfigResponse& GatewayWrapper::camera_config_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.camera_config_response)
  return _internal_camera_config_response();
}
inline ::Anki::Vector::external_interface::CameraConfigResponse* GatewayWrapper::unsafe_arena_release_camera_config_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.camera_config_response)
  if (_internal_has_camera_config_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::CameraConfigResponse* temp = oneof_message_type_.camera_config_response_;
    oneof_message_type_.camera_config_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_camera_config_response(::Anki::Vector::external_interface::CameraConfigResponse* camera_config_response) {
  clear_oneof_message_type();
  if (camera_config_response) {
    set_has_camera_config_response();
    oneof_message_type_.camera_config_response_ = camera_config_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.camera_config_response)
}
inline ::Anki::Vector::external_interface::CameraConfigResponse* GatewayWrapper::_internal_mutable_camera_config_response() {
  if (!_internal_has_camera_config_response()) {
    clear_oneof_message_type();
    set_has_camera_config_response();
    oneof_message_type_.camera_config_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::CameraConfigResponse >(GetArena());
  }
  return oneof_message_type_.camera_config_response_;
}
inline ::Anki::Vector::external_interface::CameraConfigResponse* GatewayWrapper::mutable_camera_config_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.camera_config_response)
  return _internal_mutable_camera_config_response();
}

// .Anki.Vector.external_interface.ExternalAudioStreamPrepare external_audio_stream_prepare = 1800;
inline bool GatewayWrapper::_internal_has_external_audio_stream_prepare() const {
  return oneof_message_type_case() == kExternalAudioStreamPrepare;
}
inline bool GatewayWrapper::has_external_audio_stream_prepare() const {
  return _internal_has_external_audio_stream_prepare();
}
inline void GatewayWrapper::set_has_external_audio_stream_prepare() {
  _oneof_case_[0] = kExternalAudioStreamPrepare;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* GatewayWrapper::release_external_audio_stream_prepare() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_prepare)
  if (_internal_has_external_audio_stream_prepare()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* temp = oneof_message_type_.external_audio_stream_prepare_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.external_audio_stream_prepare_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare& GatewayWrapper::_internal_external_audio_stream_prepare() const {
  return _internal_has_external_audio_stream_prepare()
      ? *oneof_message_type_.external_audio_stream_prepare_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ExternalAudioStreamPrepare*>(&::Anki::Vector::external_interface::_ExternalAudioStreamPrepare_default_instance_);
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare& GatewayWrapper::external_audio_stream_prepare() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_prepare)
  return _internal_external_audio_stream_prepare();
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* GatewayWrapper::unsafe_arena_release_external_audio_stream_prepare() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_prepare)
  if (_internal_has_external_audio_stream_prepare()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* temp = oneof_message_type_.external_audio_stream_prepare_;
    oneof_message_type_.external_audio_stream_prepare_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_external_audio_stream_prepare(::Anki::Vector::external_interface::ExternalAudioStreamPrepare* external_audio_stream_prepare) {
  clear_oneof_message_type();
  if (external_audio_stream_prepare) {
    set_has_external_audio_stream_prepare();
    oneof_message_type_.external_audio_stream_prepare_ = external_audio_stream_prepare;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_prepare)
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* GatewayWrapper::_internal_mutable_external_audio_stream_prepare() {
  if (!_internal_has_external_audio_stream_prepare()) {
    clear_oneof_message_type();
    set_has_external_audio_stream_prepare();
    oneof_message_type_.external_audio_stream_prepare_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamPrepare >(GetArena());
  }
  return oneof_message_type_.external_audio_stream_prepare_;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* GatewayWrapper::mutable_external_audio_stream_prepare() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_prepare)
  return _internal_mutable_external_audio_stream_prepare();
}

// .Anki.Vector.external_interface.ExternalAudioStreamChunk external_audio_stream_chunk = 1801;
inline bool GatewayWrapper::_internal_has_external_audio_stream_chunk() const {
  return oneof_message_type_case() == kExternalAudioStreamChunk;
}
inline bool GatewayWrapper::has_external_audio_stream_chunk() const {
  return _internal_has_external_audio_stream_chunk();
}
inline void GatewayWrapper::set_has_external_audio_stream_chunk() {
  _oneof_case_[0] = kExternalAudioStreamChunk;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamChunk* GatewayWrapper::release_external_audio_stream_chunk() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_chunk)
  if (_internal_has_external_audio_stream_chunk()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ExternalAudioStreamChunk* temp = oneof_message_type_.external_audio_stream_chunk_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.external_audio_stream_chunk_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamChunk& GatewayWrapper::_internal_external_audio_stream_chunk() const {
  return _internal_has_external_audio_stream_chunk()
      ? *oneof_message_type_.external_audio_stream_chunk_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ExternalAudioStreamChunk*>(&::Anki::Vector::external_interface::_ExternalAudioStreamChunk_default_instance_);
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamChunk& GatewayWrapper::external_audio_stream_chunk() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_chunk)
  return _internal_external_audio_stream_chunk();
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamChunk* GatewayWrapper::unsafe_arena_release_external_audio_stream_chunk() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_chunk)
  if (_internal_has_external_audio_stream_chunk()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ExternalAudioStreamChunk* temp = oneof_message_type_.external_audio_stream_chunk_;
    oneof_message_type_.external_audio_stream_chunk_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_external_audio_stream_chunk(::Anki::Vector::external_interface::ExternalAudioStreamChunk* external_audio_stream_chunk) {
  clear_oneof_message_type();
  if (external_audio_stream_chunk) {
    set_has_external_audio_stream_chunk();
    oneof_message_type_.external_audio_stream_chunk_ = external_audio_stream_chunk;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_chunk)
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamChunk* GatewayWrapper::_internal_mutable_external_audio_stream_chunk() {
  if (!_internal_has_external_audio_stream_chunk()) {
    clear_oneof_message_type();
    set_has_external_audio_stream_chunk();
    oneof_message_type_.external_audio_stream_chunk_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamChunk >(GetArena());
  }
  return oneof_message_type_.external_audio_stream_chunk_;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamChunk* GatewayWrapper::mutable_external_audio_stream_chunk() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_chunk)
  return _internal_mutable_external_audio_stream_chunk();
}

// .Anki.Vector.external_interface.ExternalAudioStreamCancel external_audio_stream_cancel = 1802;
inline bool GatewayWrapper::_internal_has_external_audio_stream_cancel() const {
  return oneof_message_type_case() == kExternalAudioStreamCancel;
}
inline bool GatewayWrapper::has_external_audio_stream_cancel() const {
  return _internal_has_external_audio_stream_cancel();
}
inline void GatewayWrapper::set_has_external_audio_stream_cancel() {
  _oneof_case_[0] = kExternalAudioStreamCancel;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamCancel* GatewayWrapper::release_external_audio_stream_cancel() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_cancel)
  if (_internal_has_external_audio_stream_cancel()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ExternalAudioStreamCancel* temp = oneof_message_type_.external_audio_stream_cancel_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.external_audio_stream_cancel_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamCancel& GatewayWrapper::_internal_external_audio_stream_cancel() const {
  return _internal_has_external_audio_stream_cancel()
      ? *oneof_message_type_.external_audio_stream_cancel_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ExternalAudioStreamCancel*>(&::Anki::Vector::external_interface::_ExternalAudioStreamCancel_default_instance_);
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamCancel& GatewayWrapper::external_audio_stream_cancel() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_cancel)
  return _internal_external_audio_stream_cancel();
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamCancel* GatewayWrapper::unsafe_arena_release_external_audio_stream_cancel() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_cancel)
  if (_internal_has_external_audio_stream_cancel()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ExternalAudioStreamCancel* temp = oneof_message_type_.external_audio_stream_cancel_;
    oneof_message_type_.external_audio_stream_cancel_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_external_audio_stream_cancel(::Anki::Vector::external_interface::ExternalAudioStreamCancel* external_audio_stream_cancel) {
  clear_oneof_message_type();
  if (external_audio_stream_cancel) {
    set_has_external_audio_stream_cancel();
    oneof_message_type_.external_audio_stream_cancel_ = external_audio_stream_cancel;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_cancel)
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamCancel* GatewayWrapper::_internal_mutable_external_audio_stream_cancel() {
  if (!_internal_has_external_audio_stream_cancel()) {
    clear_oneof_message_type();
    set_has_external_audio_stream_cancel();
    oneof_message_type_.external_audio_stream_cancel_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamCancel >(GetArena());
  }
  return oneof_message_type_.external_audio_stream_cancel_;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamCancel* GatewayWrapper::mutable_external_audio_stream_cancel() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_cancel)
  return _internal_mutable_external_audio_stream_cancel();
}

// .Anki.Vector.external_interface.ExternalAudioStreamComplete external_audio_stream_complete = 1803;
inline bool GatewayWrapper::_internal_has_external_audio_stream_complete() const {
  return oneof_message_type_case() == kExternalAudioStreamComplete;
}
inline bool GatewayWrapper::has_external_audio_stream_complete() const {
  return _internal_has_external_audio_stream_complete();
}
inline void GatewayWrapper::set_has_external_audio_stream_complete() {
  _oneof_case_[0] = kExternalAudioStreamComplete;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamComplete* GatewayWrapper::release_external_audio_stream_complete() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_complete)
  if (_internal_has_external_audio_stream_complete()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ExternalAudioStreamComplete* temp = oneof_message_type_.external_audio_stream_complete_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.external_audio_stream_complete_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamComplete& GatewayWrapper::_internal_external_audio_stream_complete() const {
  return _internal_has_external_audio_stream_complete()
      ? *oneof_message_type_.external_audio_stream_complete_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ExternalAudioStreamComplete*>(&::Anki::Vector::external_interface::_ExternalAudioStreamComplete_default_instance_);
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamComplete& GatewayWrapper::external_audio_stream_complete() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_complete)
  return _internal_external_audio_stream_complete();
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamComplete* GatewayWrapper::unsafe_arena_release_external_audio_stream_complete() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_complete)
  if (_internal_has_external_audio_stream_complete()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ExternalAudioStreamComplete* temp = oneof_message_type_.external_audio_stream_complete_;
    oneof_message_type_.external_audio_stream_complete_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_external_audio_stream_complete(::Anki::Vector::external_interface::ExternalAudioStreamComplete* external_audio_stream_complete) {
  clear_oneof_message_type();
  if (external_audio_stream_complete) {
    set_has_external_audio_stream_complete();
    oneof_message_type_.external_audio_stream_complete_ = external_audio_stream_complete;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_complete)
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamComplete* GatewayWrapper::_internal_mutable_external_audio_stream_complete() {
  if (!_internal_has_external_audio_stream_complete()) {
    clear_oneof_message_type();
    set_has_external_audio_stream_complete();
    oneof_message_type_.external_audio_stream_complete_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamComplete >(GetArena());
  }
  return oneof_message_type_.external_audio_stream_complete_;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamComplete* GatewayWrapper::mutable_external_audio_stream_complete() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_complete)
  return _internal_mutable_external_audio_stream_complete();
}

// .Anki.Vector.external_interface.ExternalAudioStreamResponse external_audio_stream_response = 1804;
inline bool GatewayWrapper::_internal_has_external_audio_stream_response() const {
  return oneof_message_type_case() == kExternalAudioStreamResponse;
}
inline bool GatewayWrapper::has_external_audio_stream_response() const {
  return _internal_has_external_audio_stream_response();
}
inline void GatewayWrapper::set_has_external_audio_stream_response() {
  _oneof_case_[0] = kExternalAudioStreamResponse;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamResponse* GatewayWrapper::release_external_audio_stream_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_response)
  if (_internal_has_external_audio_stream_response()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::ExternalAudioStreamResponse* temp = oneof_message_type_.external_audio_stream_response_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.external_audio_stream_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamResponse& GatewayWrapper::_internal_external_audio_stream_response() const {
  return _internal_has_external_audio_stream_response()
      ? *oneof_message_type_.external_audio_stream_response_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ExternalAudioStreamResponse*>(&::Anki::Vector::external_interface::_ExternalAudioStreamResponse_default_instance_);
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamResponse& GatewayWrapper::external_audio_stream_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_response)
  return _internal_external_audio_stream_response();
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamResponse* GatewayWrapper::unsafe_arena_release_external_audio_stream_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_response)
  if (_internal_has_external_audio_stream_response()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::ExternalAudioStreamResponse* temp = oneof_message_type_.external_audio_stream_response_;
    oneof_message_type_.external_audio_stream_response_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GatewayWrapper::unsafe_arena_set_allocated_external_audio_stream_response(::Anki::Vector::external_interface::ExternalAudioStreamResponse* external_audio_stream_response) {
  clear_oneof_message_type();
  if (external_audio_stream_response) {
    set_has_external_audio_stream_response();
    oneof_message_type_.external_audio_stream_response_ = external_audio_stream_response;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_response)
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamResponse* GatewayWrapper::_internal_mutable_external_audio_stream_response() {
  if (!_internal_has_external_audio_stream_response()) {
    clear_oneof_message_type();
    set_has_external_audio_stream_response();
    oneof_message_type_.external_audio_stream_response_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamResponse >(GetArena());
  }
  return oneof_message_type_.external_audio_stream_response_;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamResponse* GatewayWrapper::mutable_external_audio_stream_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_response)
  return _internal_mutable_external_audio_stream_response();
}

inline bool GatewayWrapper::has_oneof_message_type() const {
  return oneof_message_type_case() != ONEOF_MESSAGE_TYPE_NOT_SET;
}
inline void GatewayWrapper::clear_has_oneof_message_type() {
  _oneof_case_[0] = ONEOF_MESSAGE_TYPE_NOT_SET;
}
inline GatewayWrapper::OneofMessageTypeCase GatewayWrapper::oneof_message_type_case() const {
  return GatewayWrapper::OneofMessageTypeCase(_oneof_case_[0]);
}
#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::ProtocolVersionResponse_Result> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::ProtocolVersionResponse_Result>() {
  return ::Anki::Vector::external_interface::ProtocolVersionResponse_Result_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::UserAuthenticationResponse_Code> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::UserAuthenticationResponse_Code>() {
  return ::Anki::Vector::external_interface::UserAuthenticationResponse_Code_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

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