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

#ifndef GOOGLE_PROTOBUF_INCLUDED_messages_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_messages_2eproto

#include <limits>
#include <string>

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

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

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

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

// Internal implementation detail -- do not use these members.
struct TableStruct_messages_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[208]
    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_messages_2eproto;
namespace Anki {
namespace Vector {
namespace external_interface {
class AccelData;
class AccelDataDefaultTypeInternal;
extern AccelDataDefaultTypeInternal _AccelData_default_instance_;
class ActionResult;
class ActionResultDefaultTypeInternal;
extern ActionResultDefaultTypeInternal _ActionResult_default_instance_;
class Animation;
class AnimationDefaultTypeInternal;
extern AnimationDefaultTypeInternal _Animation_default_instance_;
class AnimationTrigger;
class AnimationTriggerDefaultTypeInternal;
extern AnimationTriggerDefaultTypeInternal _AnimationTrigger_default_instance_;
class AppDisconnected;
class AppDisconnectedDefaultTypeInternal;
extern AppDisconnectedDefaultTypeInternal _AppDisconnected_default_instance_;
class AppIntentRequest;
class AppIntentRequestDefaultTypeInternal;
extern AppIntentRequestDefaultTypeInternal _AppIntentRequest_default_instance_;
class AppIntentResponse;
class AppIntentResponseDefaultTypeInternal;
extern AppIntentResponseDefaultTypeInternal _AppIntentResponse_default_instance_;
class AttentionTransfer;
class AttentionTransferDefaultTypeInternal;
extern AttentionTransferDefaultTypeInternal _AttentionTransfer_default_instance_;
class AudioChunk;
class AudioChunkDefaultTypeInternal;
extern AudioChunkDefaultTypeInternal _AudioChunk_default_instance_;
class AudioFeedRequest;
class AudioFeedRequestDefaultTypeInternal;
extern AudioFeedRequestDefaultTypeInternal _AudioFeedRequest_default_instance_;
class AudioFeedResponse;
class AudioFeedResponseDefaultTypeInternal;
extern AudioFeedResponseDefaultTypeInternal _AudioFeedResponse_default_instance_;
class AudioSendModeChanged;
class AudioSendModeChangedDefaultTypeInternal;
extern AudioSendModeChangedDefaultTypeInternal _AudioSendModeChanged_default_instance_;
class AudioSendModeRequest;
class AudioSendModeRequestDefaultTypeInternal;
extern AudioSendModeRequestDefaultTypeInternal _AudioSendModeRequest_default_instance_;
class BatteryStateRequest;
class BatteryStateRequestDefaultTypeInternal;
extern BatteryStateRequestDefaultTypeInternal _BatteryStateRequest_default_instance_;
class BatteryStateResponse;
class BatteryStateResponseDefaultTypeInternal;
extern BatteryStateResponseDefaultTypeInternal _BatteryStateResponse_default_instance_;
class CameraConfigRequest;
class CameraConfigRequestDefaultTypeInternal;
extern CameraConfigRequestDefaultTypeInternal _CameraConfigRequest_default_instance_;
class CameraConfigResponse;
class CameraConfigResponseDefaultTypeInternal;
extern CameraConfigResponseDefaultTypeInternal _CameraConfigResponse_default_instance_;
class CameraFeedRequest;
class CameraFeedRequestDefaultTypeInternal;
extern CameraFeedRequestDefaultTypeInternal _CameraFeedRequest_default_instance_;
class CameraFeedResponse;
class CameraFeedResponseDefaultTypeInternal;
extern CameraFeedResponseDefaultTypeInternal _CameraFeedResponse_default_instance_;
class CameraSettingsUpdate;
class CameraSettingsUpdateDefaultTypeInternal;
extern CameraSettingsUpdateDefaultTypeInternal _CameraSettingsUpdate_default_instance_;
class CancelActionByIdTagRequest;
class CancelActionByIdTagRequestDefaultTypeInternal;
extern CancelActionByIdTagRequestDefaultTypeInternal _CancelActionByIdTagRequest_default_instance_;
class CancelActionByIdTagResponse;
class CancelActionByIdTagResponseDefaultTypeInternal;
extern CancelActionByIdTagResponseDefaultTypeInternal _CancelActionByIdTagResponse_default_instance_;
class CancelBehaviorRequest;
class CancelBehaviorRequestDefaultTypeInternal;
extern CancelBehaviorRequestDefaultTypeInternal _CancelBehaviorRequest_default_instance_;
class CancelBehaviorResponse;
class CancelBehaviorResponseDefaultTypeInternal;
extern CancelBehaviorResponseDefaultTypeInternal _CancelBehaviorResponse_default_instance_;
class CancelFaceEnrollmentRequest;
class CancelFaceEnrollmentRequestDefaultTypeInternal;
extern CancelFaceEnrollmentRequestDefaultTypeInternal _CancelFaceEnrollmentRequest_default_instance_;
class CancelFaceEnrollmentResponse;
class CancelFaceEnrollmentResponseDefaultTypeInternal;
extern CancelFaceEnrollmentResponseDefaultTypeInternal _CancelFaceEnrollmentResponse_default_instance_;
class CaptureSingleImageRequest;
class CaptureSingleImageRequestDefaultTypeInternal;
extern CaptureSingleImageRequestDefaultTypeInternal _CaptureSingleImageRequest_default_instance_;
class CaptureSingleImageResponse;
class CaptureSingleImageResponseDefaultTypeInternal;
extern CaptureSingleImageResponseDefaultTypeInternal _CaptureSingleImageResponse_default_instance_;
class CheckCloudRequest;
class CheckCloudRequestDefaultTypeInternal;
extern CheckCloudRequestDefaultTypeInternal _CheckCloudRequest_default_instance_;
class CheckCloudResponse;
class CheckCloudResponseDefaultTypeInternal;
extern CheckCloudResponseDefaultTypeInternal _CheckCloudResponse_default_instance_;
class CheckUpdateStatusRequest;
class CheckUpdateStatusRequestDefaultTypeInternal;
extern CheckUpdateStatusRequestDefaultTypeInternal _CheckUpdateStatusRequest_default_instance_;
class CheckUpdateStatusResponse;
class CheckUpdateStatusResponseDefaultTypeInternal;
extern CheckUpdateStatusResponseDefaultTypeInternal _CheckUpdateStatusResponse_default_instance_;
class CladPoint;
class CladPointDefaultTypeInternal;
extern CladPointDefaultTypeInternal _CladPoint_default_instance_;
class CladRect;
class CladRectDefaultTypeInternal;
extern CladRectDefaultTypeInternal _CladRect_default_instance_;
class CubeBattery;
class CubeBatteryDefaultTypeInternal;
extern CubeBatteryDefaultTypeInternal _CubeBattery_default_instance_;
class DeletePhotoRequest;
class DeletePhotoRequestDefaultTypeInternal;
extern DeletePhotoRequestDefaultTypeInternal _DeletePhotoRequest_default_instance_;
class DeletePhotoResponse;
class DeletePhotoResponseDefaultTypeInternal;
extern DeletePhotoResponseDefaultTypeInternal _DeletePhotoResponse_default_instance_;
class DisplayFaceImageRGBRequest;
class DisplayFaceImageRGBRequestDefaultTypeInternal;
extern DisplayFaceImageRGBRequestDefaultTypeInternal _DisplayFaceImageRGBRequest_default_instance_;
class DisplayFaceImageRGBResponse;
class DisplayFaceImageRGBResponseDefaultTypeInternal;
extern DisplayFaceImageRGBResponseDefaultTypeInternal _DisplayFaceImageRGBResponse_default_instance_;
class DockWithCubeRequest;
class DockWithCubeRequestDefaultTypeInternal;
extern DockWithCubeRequestDefaultTypeInternal _DockWithCubeRequest_default_instance_;
class DockWithCubeResponse;
class DockWithCubeResponseDefaultTypeInternal;
extern DockWithCubeResponseDefaultTypeInternal _DockWithCubeResponse_default_instance_;
class DriveOffChargerRequest;
class DriveOffChargerRequestDefaultTypeInternal;
extern DriveOffChargerRequestDefaultTypeInternal _DriveOffChargerRequest_default_instance_;
class DriveOffChargerResponse;
class DriveOffChargerResponseDefaultTypeInternal;
extern DriveOffChargerResponseDefaultTypeInternal _DriveOffChargerResponse_default_instance_;
class DriveOnChargerRequest;
class DriveOnChargerRequestDefaultTypeInternal;
extern DriveOnChargerRequestDefaultTypeInternal _DriveOnChargerRequest_default_instance_;
class DriveOnChargerResponse;
class DriveOnChargerResponseDefaultTypeInternal;
extern DriveOnChargerResponseDefaultTypeInternal _DriveOnChargerResponse_default_instance_;
class DriveStraightRequest;
class DriveStraightRequestDefaultTypeInternal;
extern DriveStraightRequestDefaultTypeInternal _DriveStraightRequest_default_instance_;
class DriveStraightResponse;
class DriveStraightResponseDefaultTypeInternal;
extern DriveStraightResponseDefaultTypeInternal _DriveStraightResponse_default_instance_;
class DriveWheelsRequest;
class DriveWheelsRequestDefaultTypeInternal;
extern DriveWheelsRequestDefaultTypeInternal _DriveWheelsRequest_default_instance_;
class DriveWheelsResponse;
class DriveWheelsResponseDefaultTypeInternal;
extern DriveWheelsResponseDefaultTypeInternal _DriveWheelsResponse_default_instance_;
class EnableFaceDetectionRequest;
class EnableFaceDetectionRequestDefaultTypeInternal;
extern EnableFaceDetectionRequestDefaultTypeInternal _EnableFaceDetectionRequest_default_instance_;
class EnableFaceDetectionResponse;
class EnableFaceDetectionResponseDefaultTypeInternal;
extern EnableFaceDetectionResponseDefaultTypeInternal _EnableFaceDetectionResponse_default_instance_;
class EnableImageStreamingRequest;
class EnableImageStreamingRequestDefaultTypeInternal;
extern EnableImageStreamingRequestDefaultTypeInternal _EnableImageStreamingRequest_default_instance_;
class EnableImageStreamingResponse;
class EnableImageStreamingResponseDefaultTypeInternal;
extern EnableImageStreamingResponseDefaultTypeInternal _EnableImageStreamingResponse_default_instance_;
class EnableMarkerDetectionRequest;
class EnableMarkerDetectionRequestDefaultTypeInternal;
extern EnableMarkerDetectionRequestDefaultTypeInternal _EnableMarkerDetectionRequest_default_instance_;
class EnableMarkerDetectionResponse;
class EnableMarkerDetectionResponseDefaultTypeInternal;
extern EnableMarkerDetectionResponseDefaultTypeInternal _EnableMarkerDetectionResponse_default_instance_;
class EnableMirrorModeRequest;
class EnableMirrorModeRequestDefaultTypeInternal;
extern EnableMirrorModeRequestDefaultTypeInternal _EnableMirrorModeRequest_default_instance_;
class EnableMirrorModeResponse;
class EnableMirrorModeResponseDefaultTypeInternal;
extern EnableMirrorModeResponseDefaultTypeInternal _EnableMirrorModeResponse_default_instance_;
class EnableMotionDetectionRequest;
class EnableMotionDetectionRequestDefaultTypeInternal;
extern EnableMotionDetectionRequestDefaultTypeInternal _EnableMotionDetectionRequest_default_instance_;
class EnableMotionDetectionResponse;
class EnableMotionDetectionResponseDefaultTypeInternal;
extern EnableMotionDetectionResponseDefaultTypeInternal _EnableMotionDetectionResponse_default_instance_;
class EnrollFaceRequest;
class EnrollFaceRequestDefaultTypeInternal;
extern EnrollFaceRequestDefaultTypeInternal _EnrollFaceRequest_default_instance_;
class EnrollFaceResponse;
class EnrollFaceResponseDefaultTypeInternal;
extern EnrollFaceResponseDefaultTypeInternal _EnrollFaceResponse_default_instance_;
class EraseAllEnrolledFacesRequest;
class EraseAllEnrolledFacesRequestDefaultTypeInternal;
extern EraseAllEnrolledFacesRequestDefaultTypeInternal _EraseAllEnrolledFacesRequest_default_instance_;
class EraseAllEnrolledFacesResponse;
class EraseAllEnrolledFacesResponseDefaultTypeInternal;
extern EraseAllEnrolledFacesResponseDefaultTypeInternal _EraseAllEnrolledFacesResponse_default_instance_;
class EraseEnrolledFaceByIDRequest;
class EraseEnrolledFaceByIDRequestDefaultTypeInternal;
extern EraseEnrolledFaceByIDRequestDefaultTypeInternal _EraseEnrolledFaceByIDRequest_default_instance_;
class EraseEnrolledFaceByIDResponse;
class EraseEnrolledFaceByIDResponseDefaultTypeInternal;
extern EraseEnrolledFaceByIDResponseDefaultTypeInternal _EraseEnrolledFaceByIDResponse_default_instance_;
class ExternalAudioStreamBufferOverrun;
class ExternalAudioStreamBufferOverrunDefaultTypeInternal;
extern ExternalAudioStreamBufferOverrunDefaultTypeInternal _ExternalAudioStreamBufferOverrun_default_instance_;
class ExternalAudioStreamCancel;
class ExternalAudioStreamCancelDefaultTypeInternal;
extern ExternalAudioStreamCancelDefaultTypeInternal _ExternalAudioStreamCancel_default_instance_;
class ExternalAudioStreamChunk;
class ExternalAudioStreamChunkDefaultTypeInternal;
extern ExternalAudioStreamChunkDefaultTypeInternal _ExternalAudioStreamChunk_default_instance_;
class ExternalAudioStreamComplete;
class ExternalAudioStreamCompleteDefaultTypeInternal;
extern ExternalAudioStreamCompleteDefaultTypeInternal _ExternalAudioStreamComplete_default_instance_;
class ExternalAudioStreamPlaybackComplete;
class ExternalAudioStreamPlaybackCompleteDefaultTypeInternal;
extern ExternalAudioStreamPlaybackCompleteDefaultTypeInternal _ExternalAudioStreamPlaybackComplete_default_instance_;
class ExternalAudioStreamPlaybackFailure;
class ExternalAudioStreamPlaybackFailureDefaultTypeInternal;
extern ExternalAudioStreamPlaybackFailureDefaultTypeInternal _ExternalAudioStreamPlaybackFailure_default_instance_;
class ExternalAudioStreamPrepare;
class ExternalAudioStreamPrepareDefaultTypeInternal;
extern ExternalAudioStreamPrepareDefaultTypeInternal _ExternalAudioStreamPrepare_default_instance_;
class ExternalAudioStreamRequest;
class ExternalAudioStreamRequestDefaultTypeInternal;
extern ExternalAudioStreamRequestDefaultTypeInternal _ExternalAudioStreamRequest_default_instance_;
class ExternalAudioStreamResponse;
class ExternalAudioStreamResponseDefaultTypeInternal;
extern ExternalAudioStreamResponseDefaultTypeInternal _ExternalAudioStreamResponse_default_instance_;
class FaceEnrollmentCompleted;
class FaceEnrollmentCompletedDefaultTypeInternal;
extern FaceEnrollmentCompletedDefaultTypeInternal _FaceEnrollmentCompleted_default_instance_;
class FeatureFlagListRequest;
class FeatureFlagListRequestDefaultTypeInternal;
extern FeatureFlagListRequestDefaultTypeInternal _FeatureFlagListRequest_default_instance_;
class FeatureFlagListResponse;
class FeatureFlagListResponseDefaultTypeInternal;
extern FeatureFlagListResponseDefaultTypeInternal _FeatureFlagListResponse_default_instance_;
class FeatureFlagRequest;
class FeatureFlagRequestDefaultTypeInternal;
extern FeatureFlagRequestDefaultTypeInternal _FeatureFlagRequest_default_instance_;
class FeatureFlagResponse;
class FeatureFlagResponseDefaultTypeInternal;
extern FeatureFlagResponseDefaultTypeInternal _FeatureFlagResponse_default_instance_;
class FeatureStatus;
class FeatureStatusDefaultTypeInternal;
extern FeatureStatusDefaultTypeInternal _FeatureStatus_default_instance_;
class FindFacesRequest;
class FindFacesRequestDefaultTypeInternal;
extern FindFacesRequestDefaultTypeInternal _FindFacesRequest_default_instance_;
class FindFacesResponse;
class FindFacesResponseDefaultTypeInternal;
extern FindFacesResponseDefaultTypeInternal _FindFacesResponse_default_instance_;
class GoToObjectRequest;
class GoToObjectRequestDefaultTypeInternal;
extern GoToObjectRequestDefaultTypeInternal _GoToObjectRequest_default_instance_;
class GoToObjectResponse;
class GoToObjectResponseDefaultTypeInternal;
extern GoToObjectResponseDefaultTypeInternal _GoToObjectResponse_default_instance_;
class GoToPoseRequest;
class GoToPoseRequestDefaultTypeInternal;
extern GoToPoseRequestDefaultTypeInternal _GoToPoseRequest_default_instance_;
class GoToPoseResponse;
class GoToPoseResponseDefaultTypeInternal;
extern GoToPoseResponseDefaultTypeInternal _GoToPoseResponse_default_instance_;
class GyroData;
class GyroDataDefaultTypeInternal;
extern GyroDataDefaultTypeInternal _GyroData_default_instance_;
class ImageChunk;
class ImageChunkDefaultTypeInternal;
extern ImageChunkDefaultTypeInternal _ImageChunk_default_instance_;
class IsImageStreamingEnabledRequest;
class IsImageStreamingEnabledRequestDefaultTypeInternal;
extern IsImageStreamingEnabledRequestDefaultTypeInternal _IsImageStreamingEnabledRequest_default_instance_;
class IsImageStreamingEnabledResponse;
class IsImageStreamingEnabledResponseDefaultTypeInternal;
extern IsImageStreamingEnabledResponseDefaultTypeInternal _IsImageStreamingEnabledResponse_default_instance_;
class KeepAlivePing;
class KeepAlivePingDefaultTypeInternal;
extern KeepAlivePingDefaultTypeInternal _KeepAlivePing_default_instance_;
class LatestAttentionTransfer;
class LatestAttentionTransferDefaultTypeInternal;
extern LatestAttentionTransferDefaultTypeInternal _LatestAttentionTransfer_default_instance_;
class LatestAttentionTransferRequest;
class LatestAttentionTransferRequestDefaultTypeInternal;
extern LatestAttentionTransferRequestDefaultTypeInternal _LatestAttentionTransferRequest_default_instance_;
class LatestAttentionTransferResponse;
class LatestAttentionTransferResponseDefaultTypeInternal;
extern LatestAttentionTransferResponseDefaultTypeInternal _LatestAttentionTransferResponse_default_instance_;
class ListAnimationTriggersRequest;
class ListAnimationTriggersRequestDefaultTypeInternal;
extern ListAnimationTriggersRequestDefaultTypeInternal _ListAnimationTriggersRequest_default_instance_;
class ListAnimationTriggersResponse;
class ListAnimationTriggersResponseDefaultTypeInternal;
extern ListAnimationTriggersResponseDefaultTypeInternal _ListAnimationTriggersResponse_default_instance_;
class ListAnimationsRequest;
class ListAnimationsRequestDefaultTypeInternal;
extern ListAnimationsRequestDefaultTypeInternal _ListAnimationsRequest_default_instance_;
class ListAnimationsResponse;
class ListAnimationsResponseDefaultTypeInternal;
extern ListAnimationsResponseDefaultTypeInternal _ListAnimationsResponse_default_instance_;
class LoadedKnownFace;
class LoadedKnownFaceDefaultTypeInternal;
extern LoadedKnownFaceDefaultTypeInternal _LoadedKnownFace_default_instance_;
class LookAroundInPlaceRequest;
class LookAroundInPlaceRequestDefaultTypeInternal;
extern LookAroundInPlaceRequestDefaultTypeInternal _LookAroundInPlaceRequest_default_instance_;
class LookAroundInPlaceResponse;
class LookAroundInPlaceResponseDefaultTypeInternal;
extern LookAroundInPlaceResponseDefaultTypeInternal _LookAroundInPlaceResponse_default_instance_;
class MasterVolumeRequest;
class MasterVolumeRequestDefaultTypeInternal;
extern MasterVolumeRequestDefaultTypeInternal _MasterVolumeRequest_default_instance_;
class MasterVolumeResponse;
class MasterVolumeResponseDefaultTypeInternal;
extern MasterVolumeResponseDefaultTypeInternal _MasterVolumeResponse_default_instance_;
class MeetVictorFaceScanComplete;
class MeetVictorFaceScanCompleteDefaultTypeInternal;
extern MeetVictorFaceScanCompleteDefaultTypeInternal _MeetVictorFaceScanComplete_default_instance_;
class MeetVictorFaceScanStarted;
class MeetVictorFaceScanStartedDefaultTypeInternal;
extern MeetVictorFaceScanStartedDefaultTypeInternal _MeetVictorFaceScanStarted_default_instance_;
class MirrorModeDisabled;
class MirrorModeDisabledDefaultTypeInternal;
extern MirrorModeDisabledDefaultTypeInternal _MirrorModeDisabled_default_instance_;
class MoveHeadRequest;
class MoveHeadRequestDefaultTypeInternal;
extern MoveHeadRequestDefaultTypeInternal _MoveHeadRequest_default_instance_;
class MoveHeadResponse;
class MoveHeadResponseDefaultTypeInternal;
extern MoveHeadResponseDefaultTypeInternal _MoveHeadResponse_default_instance_;
class MoveLiftRequest;
class MoveLiftRequestDefaultTypeInternal;
extern MoveLiftRequestDefaultTypeInternal _MoveLiftRequest_default_instance_;
class MoveLiftResponse;
class MoveLiftResponseDefaultTypeInternal;
extern MoveLiftResponseDefaultTypeInternal _MoveLiftResponse_default_instance_;
class Onboarding;
class OnboardingDefaultTypeInternal;
extern OnboardingDefaultTypeInternal _Onboarding_default_instance_;
class Onboarding1p0ChargingInfo;
class Onboarding1p0ChargingInfoDefaultTypeInternal;
extern Onboarding1p0ChargingInfoDefaultTypeInternal _Onboarding1p0ChargingInfo_default_instance_;
class OnboardingChargeInfoRequest;
class OnboardingChargeInfoRequestDefaultTypeInternal;
extern OnboardingChargeInfoRequestDefaultTypeInternal _OnboardingChargeInfoRequest_default_instance_;
class OnboardingChargeInfoResponse;
class OnboardingChargeInfoResponseDefaultTypeInternal;
extern OnboardingChargeInfoResponseDefaultTypeInternal _OnboardingChargeInfoResponse_default_instance_;
class OnboardingCompleteRequest;
class OnboardingCompleteRequestDefaultTypeInternal;
extern OnboardingCompleteRequestDefaultTypeInternal _OnboardingCompleteRequest_default_instance_;
class OnboardingCompleteResponse;
class OnboardingCompleteResponseDefaultTypeInternal;
extern OnboardingCompleteResponseDefaultTypeInternal _OnboardingCompleteResponse_default_instance_;
class OnboardingInputRequest;
class OnboardingInputRequestDefaultTypeInternal;
extern OnboardingInputRequestDefaultTypeInternal _OnboardingInputRequest_default_instance_;
class OnboardingInputResponse;
class OnboardingInputResponseDefaultTypeInternal;
extern OnboardingInputResponseDefaultTypeInternal _OnboardingInputResponse_default_instance_;
class OnboardingMarkCompleteAndExit;
class OnboardingMarkCompleteAndExitDefaultTypeInternal;
extern OnboardingMarkCompleteAndExitDefaultTypeInternal _OnboardingMarkCompleteAndExit_default_instance_;
class OnboardingPhaseProgressRequest;
class OnboardingPhaseProgressRequestDefaultTypeInternal;
extern OnboardingPhaseProgressRequestDefaultTypeInternal _OnboardingPhaseProgressRequest_default_instance_;
class OnboardingPhaseProgressResponse;
class OnboardingPhaseProgressResponseDefaultTypeInternal;
extern OnboardingPhaseProgressResponseDefaultTypeInternal _OnboardingPhaseProgressResponse_default_instance_;
class OnboardingRestart;
class OnboardingRestartDefaultTypeInternal;
extern OnboardingRestartDefaultTypeInternal _OnboardingRestart_default_instance_;
class OnboardingSetPhaseRequest;
class OnboardingSetPhaseRequestDefaultTypeInternal;
extern OnboardingSetPhaseRequestDefaultTypeInternal _OnboardingSetPhaseRequest_default_instance_;
class OnboardingSetPhaseResponse;
class OnboardingSetPhaseResponseDefaultTypeInternal;
extern OnboardingSetPhaseResponseDefaultTypeInternal _OnboardingSetPhaseResponse_default_instance_;
class OnboardingSkipOnboarding;
class OnboardingSkipOnboardingDefaultTypeInternal;
extern OnboardingSkipOnboardingDefaultTypeInternal _OnboardingSkipOnboarding_default_instance_;
class OnboardingState;
class OnboardingStateDefaultTypeInternal;
extern OnboardingStateDefaultTypeInternal _OnboardingState_default_instance_;
class OnboardingStateRequest;
class OnboardingStateRequestDefaultTypeInternal;
extern OnboardingStateRequestDefaultTypeInternal _OnboardingStateRequest_default_instance_;
class OnboardingStateResponse;
class OnboardingStateResponseDefaultTypeInternal;
extern OnboardingStateResponseDefaultTypeInternal _OnboardingStateResponse_default_instance_;
class OnboardingWakeUpFinished;
class OnboardingWakeUpFinishedDefaultTypeInternal;
extern OnboardingWakeUpFinishedDefaultTypeInternal _OnboardingWakeUpFinished_default_instance_;
class OnboardingWakeUpRequest;
class OnboardingWakeUpRequestDefaultTypeInternal;
extern OnboardingWakeUpRequestDefaultTypeInternal _OnboardingWakeUpRequest_default_instance_;
class OnboardingWakeUpResponse;
class OnboardingWakeUpResponseDefaultTypeInternal;
extern OnboardingWakeUpResponseDefaultTypeInternal _OnboardingWakeUpResponse_default_instance_;
class OnboardingWakeUpStartedRequest;
class OnboardingWakeUpStartedRequestDefaultTypeInternal;
extern OnboardingWakeUpStartedRequestDefaultTypeInternal _OnboardingWakeUpStartedRequest_default_instance_;
class OnboardingWakeUpStartedResponse;
class OnboardingWakeUpStartedResponseDefaultTypeInternal;
extern OnboardingWakeUpStartedResponseDefaultTypeInternal _OnboardingWakeUpStartedResponse_default_instance_;
class PathMotionProfile;
class PathMotionProfileDefaultTypeInternal;
extern PathMotionProfileDefaultTypeInternal _PathMotionProfile_default_instance_;
class PhotoInfo;
class PhotoInfoDefaultTypeInternal;
extern PhotoInfoDefaultTypeInternal _PhotoInfo_default_instance_;
class PhotoPathMessage;
class PhotoPathMessageDefaultTypeInternal;
extern PhotoPathMessageDefaultTypeInternal _PhotoPathMessage_default_instance_;
class PhotoRequest;
class PhotoRequestDefaultTypeInternal;
extern PhotoRequestDefaultTypeInternal _PhotoRequest_default_instance_;
class PhotoResponse;
class PhotoResponseDefaultTypeInternal;
extern PhotoResponseDefaultTypeInternal _PhotoResponse_default_instance_;
class PhotoTaken;
class PhotoTakenDefaultTypeInternal;
extern PhotoTakenDefaultTypeInternal _PhotoTaken_default_instance_;
class PhotosInfoRequest;
class PhotosInfoRequestDefaultTypeInternal;
extern PhotosInfoRequestDefaultTypeInternal _PhotosInfoRequest_default_instance_;
class PhotosInfoResponse;
class PhotosInfoResponseDefaultTypeInternal;
extern PhotosInfoResponseDefaultTypeInternal _PhotosInfoResponse_default_instance_;
class PickupObjectRequest;
class PickupObjectRequestDefaultTypeInternal;
extern PickupObjectRequestDefaultTypeInternal _PickupObjectRequest_default_instance_;
class PickupObjectResponse;
class PickupObjectResponseDefaultTypeInternal;
extern PickupObjectResponseDefaultTypeInternal _PickupObjectResponse_default_instance_;
class PlaceObjectOnGroundHereRequest;
class PlaceObjectOnGroundHereRequestDefaultTypeInternal;
extern PlaceObjectOnGroundHereRequestDefaultTypeInternal _PlaceObjectOnGroundHereRequest_default_instance_;
class PlaceObjectOnGroundHereResponse;
class PlaceObjectOnGroundHereResponseDefaultTypeInternal;
extern PlaceObjectOnGroundHereResponseDefaultTypeInternal _PlaceObjectOnGroundHereResponse_default_instance_;
class PlayAnimationRequest;
class PlayAnimationRequestDefaultTypeInternal;
extern PlayAnimationRequestDefaultTypeInternal _PlayAnimationRequest_default_instance_;
class PlayAnimationResponse;
class PlayAnimationResponseDefaultTypeInternal;
extern PlayAnimationResponseDefaultTypeInternal _PlayAnimationResponse_default_instance_;
class PlayAnimationTriggerRequest;
class PlayAnimationTriggerRequestDefaultTypeInternal;
extern PlayAnimationTriggerRequestDefaultTypeInternal _PlayAnimationTriggerRequest_default_instance_;
class PopAWheelieRequest;
class PopAWheelieRequestDefaultTypeInternal;
extern PopAWheelieRequestDefaultTypeInternal _PopAWheelieRequest_default_instance_;
class PopAWheelieResponse;
class PopAWheelieResponseDefaultTypeInternal;
extern PopAWheelieResponseDefaultTypeInternal _PopAWheelieResponse_default_instance_;
class PoseStruct;
class PoseStructDefaultTypeInternal;
extern PoseStructDefaultTypeInternal _PoseStruct_default_instance_;
class ProxData;
class ProxDataDefaultTypeInternal;
extern ProxDataDefaultTypeInternal _ProxData_default_instance_;
class RequestEnrolledNamesRequest;
class RequestEnrolledNamesRequestDefaultTypeInternal;
extern RequestEnrolledNamesRequestDefaultTypeInternal _RequestEnrolledNamesRequest_default_instance_;
class RequestEnrolledNamesResponse;
class RequestEnrolledNamesResponseDefaultTypeInternal;
extern RequestEnrolledNamesResponseDefaultTypeInternal _RequestEnrolledNamesResponse_default_instance_;
class RobotChangedObservedFaceID;
class RobotChangedObservedFaceIDDefaultTypeInternal;
extern RobotChangedObservedFaceIDDefaultTypeInternal _RobotChangedObservedFaceID_default_instance_;
class RobotErasedEnrolledFace;
class RobotErasedEnrolledFaceDefaultTypeInternal;
extern RobotErasedEnrolledFaceDefaultTypeInternal _RobotErasedEnrolledFace_default_instance_;
class RobotHistoryRequest;
class RobotHistoryRequestDefaultTypeInternal;
extern RobotHistoryRequestDefaultTypeInternal _RobotHistoryRequest_default_instance_;
class RobotHistoryResponse;
class RobotHistoryResponseDefaultTypeInternal;
extern RobotHistoryResponseDefaultTypeInternal _RobotHistoryResponse_default_instance_;
class RobotObservedFace;
class RobotObservedFaceDefaultTypeInternal;
extern RobotObservedFaceDefaultTypeInternal _RobotObservedFace_default_instance_;
class RobotObservedMotion;
class RobotObservedMotionDefaultTypeInternal;
extern RobotObservedMotionDefaultTypeInternal _RobotObservedMotion_default_instance_;
class RobotRenamedEnrolledFace;
class RobotRenamedEnrolledFaceDefaultTypeInternal;
extern RobotRenamedEnrolledFaceDefaultTypeInternal _RobotRenamedEnrolledFace_default_instance_;
class RobotState;
class RobotStateDefaultTypeInternal;
extern RobotStateDefaultTypeInternal _RobotState_default_instance_;
class RollBlockRequest;
class RollBlockRequestDefaultTypeInternal;
extern RollBlockRequestDefaultTypeInternal _RollBlockRequest_default_instance_;
class RollBlockResponse;
class RollBlockResponseDefaultTypeInternal;
extern RollBlockResponseDefaultTypeInternal _RollBlockResponse_default_instance_;
class RollObjectRequest;
class RollObjectRequestDefaultTypeInternal;
extern RollObjectRequestDefaultTypeInternal _RollObjectRequest_default_instance_;
class RollObjectResponse;
class RollObjectResponseDefaultTypeInternal;
extern RollObjectResponseDefaultTypeInternal _RollObjectResponse_default_instance_;
class SDKInitializationRequest;
class SDKInitializationRequestDefaultTypeInternal;
extern SDKInitializationRequestDefaultTypeInternal _SDKInitializationRequest_default_instance_;
class SDKInitializationResponse;
class SDKInitializationResponseDefaultTypeInternal;
extern SDKInitializationResponseDefaultTypeInternal _SDKInitializationResponse_default_instance_;
class SayTextRequest;
class SayTextRequestDefaultTypeInternal;
extern SayTextRequestDefaultTypeInternal _SayTextRequest_default_instance_;
class SayTextResponse;
class SayTextResponseDefaultTypeInternal;
extern SayTextResponseDefaultTypeInternal _SayTextResponse_default_instance_;
class SetCameraSettingsRequest;
class SetCameraSettingsRequestDefaultTypeInternal;
extern SetCameraSettingsRequestDefaultTypeInternal _SetCameraSettingsRequest_default_instance_;
class SetCameraSettingsResponse;
class SetCameraSettingsResponseDefaultTypeInternal;
extern SetCameraSettingsResponseDefaultTypeInternal _SetCameraSettingsResponse_default_instance_;
class SetEyeColorRequest;
class SetEyeColorRequestDefaultTypeInternal;
extern SetEyeColorRequestDefaultTypeInternal _SetEyeColorRequest_default_instance_;
class SetEyeColorResponse;
class SetEyeColorResponseDefaultTypeInternal;
extern SetEyeColorResponseDefaultTypeInternal _SetEyeColorResponse_default_instance_;
class SetFaceToEnrollRequest;
class SetFaceToEnrollRequestDefaultTypeInternal;
extern SetFaceToEnrollRequestDefaultTypeInternal _SetFaceToEnrollRequest_default_instance_;
class SetFaceToEnrollResponse;
class SetFaceToEnrollResponseDefaultTypeInternal;
extern SetFaceToEnrollResponseDefaultTypeInternal _SetFaceToEnrollResponse_default_instance_;
class SetHeadAngleRequest;
class SetHeadAngleRequestDefaultTypeInternal;
extern SetHeadAngleRequestDefaultTypeInternal _SetHeadAngleRequest_default_instance_;
class SetHeadAngleResponse;
class SetHeadAngleResponseDefaultTypeInternal;
extern SetHeadAngleResponseDefaultTypeInternal _SetHeadAngleResponse_default_instance_;
class SetLiftHeightRequest;
class SetLiftHeightRequestDefaultTypeInternal;
extern SetLiftHeightRequestDefaultTypeInternal _SetLiftHeightRequest_default_instance_;
class SetLiftHeightResponse;
class SetLiftHeightResponseDefaultTypeInternal;
extern SetLiftHeightResponseDefaultTypeInternal _SetLiftHeightResponse_default_instance_;
class Status;
class StatusDefaultTypeInternal;
extern StatusDefaultTypeInternal _Status_default_instance_;
class StimulationInfo;
class StimulationInfoDefaultTypeInternal;
extern StimulationInfoDefaultTypeInternal _StimulationInfo_default_instance_;
class StopAllMotorsRequest;
class StopAllMotorsRequestDefaultTypeInternal;
extern StopAllMotorsRequestDefaultTypeInternal _StopAllMotorsRequest_default_instance_;
class StopAllMotorsResponse;
class StopAllMotorsResponseDefaultTypeInternal;
extern StopAllMotorsResponseDefaultTypeInternal _StopAllMotorsResponse_default_instance_;
class ThumbnailPathMessage;
class ThumbnailPathMessageDefaultTypeInternal;
extern ThumbnailPathMessageDefaultTypeInternal _ThumbnailPathMessage_default_instance_;
class ThumbnailRequest;
class ThumbnailRequestDefaultTypeInternal;
extern ThumbnailRequestDefaultTypeInternal _ThumbnailRequest_default_instance_;
class ThumbnailResponse;
class ThumbnailResponseDefaultTypeInternal;
extern ThumbnailResponseDefaultTypeInternal _ThumbnailResponse_default_instance_;
class TimeStampedStatus;
class TimeStampedStatusDefaultTypeInternal;
extern TimeStampedStatusDefaultTypeInternal _TimeStampedStatus_default_instance_;
class TouchData;
class TouchDataDefaultTypeInternal;
extern TouchDataDefaultTypeInternal _TouchData_default_instance_;
class TurnInPlaceRequest;
class TurnInPlaceRequestDefaultTypeInternal;
extern TurnInPlaceRequestDefaultTypeInternal _TurnInPlaceRequest_default_instance_;
class TurnInPlaceResponse;
class TurnInPlaceResponseDefaultTypeInternal;
extern TurnInPlaceResponseDefaultTypeInternal _TurnInPlaceResponse_default_instance_;
class TurnTowardsFaceRequest;
class TurnTowardsFaceRequestDefaultTypeInternal;
extern TurnTowardsFaceRequestDefaultTypeInternal _TurnTowardsFaceRequest_default_instance_;
class TurnTowardsFaceResponse;
class TurnTowardsFaceResponseDefaultTypeInternal;
extern TurnTowardsFaceResponseDefaultTypeInternal _TurnTowardsFaceResponse_default_instance_;
class UnexpectedMovement;
class UnexpectedMovementDefaultTypeInternal;
extern UnexpectedMovementDefaultTypeInternal _UnexpectedMovement_default_instance_;
class UpdateAndRestartRequest;
class UpdateAndRestartRequestDefaultTypeInternal;
extern UpdateAndRestartRequestDefaultTypeInternal _UpdateAndRestartRequest_default_instance_;
class UpdateAndRestartResponse;
class UpdateAndRestartResponseDefaultTypeInternal;
extern UpdateAndRestartResponseDefaultTypeInternal _UpdateAndRestartResponse_default_instance_;
class UpdateEnrolledFaceByIDRequest;
class UpdateEnrolledFaceByIDRequestDefaultTypeInternal;
extern UpdateEnrolledFaceByIDRequestDefaultTypeInternal _UpdateEnrolledFaceByIDRequest_default_instance_;
class UpdateEnrolledFaceByIDResponse;
class UpdateEnrolledFaceByIDResponseDefaultTypeInternal;
extern UpdateEnrolledFaceByIDResponseDefaultTypeInternal _UpdateEnrolledFaceByIDResponse_default_instance_;
class UploadDebugLogsRequest;
class UploadDebugLogsRequestDefaultTypeInternal;
extern UploadDebugLogsRequestDefaultTypeInternal _UploadDebugLogsRequest_default_instance_;
class UploadDebugLogsResponse;
class UploadDebugLogsResponseDefaultTypeInternal;
extern UploadDebugLogsResponseDefaultTypeInternal _UploadDebugLogsResponse_default_instance_;
class UserIntent;
class UserIntentDefaultTypeInternal;
extern UserIntentDefaultTypeInternal _UserIntent_default_instance_;
class VersionStateRequest;
class VersionStateRequestDefaultTypeInternal;
extern VersionStateRequestDefaultTypeInternal _VersionStateRequest_default_instance_;
class VersionStateResponse;
class VersionStateResponseDefaultTypeInternal;
extern VersionStateResponseDefaultTypeInternal _VersionStateResponse_default_instance_;
class VisionModesAutoDisabled;
class VisionModesAutoDisabledDefaultTypeInternal;
extern VisionModesAutoDisabledDefaultTypeInternal _VisionModesAutoDisabled_default_instance_;
class WakeWord;
class WakeWordDefaultTypeInternal;
extern WakeWordDefaultTypeInternal _WakeWord_default_instance_;
class WakeWordBegin;
class WakeWordBeginDefaultTypeInternal;
extern WakeWordBeginDefaultTypeInternal _WakeWordBegin_default_instance_;
class WakeWordEnd;
class WakeWordEndDefaultTypeInternal;
extern WakeWordEndDefaultTypeInternal _WakeWordEnd_default_instance_;
class _FakeAlexaUsage;
class _FakeAlexaUsageDefaultTypeInternal;
extern _FakeAlexaUsageDefaultTypeInternal __FakeAlexaUsage_default_instance_;
}  // namespace external_interface
}  // namespace Vector
}  // namespace Anki
PROTOBUF_NAMESPACE_OPEN
template<> ::Anki::Vector::external_interface::AccelData* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::AccelData>(Arena*);
template<> ::Anki::Vector::external_interface::ActionResult* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ActionResult>(Arena*);
template<> ::Anki::Vector::external_interface::Animation* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::Animation>(Arena*);
template<> ::Anki::Vector::external_interface::AnimationTrigger* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::AnimationTrigger>(Arena*);
template<> ::Anki::Vector::external_interface::AppDisconnected* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::AppDisconnected>(Arena*);
template<> ::Anki::Vector::external_interface::AppIntentRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::AppIntentRequest>(Arena*);
template<> ::Anki::Vector::external_interface::AppIntentResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::AppIntentResponse>(Arena*);
template<> ::Anki::Vector::external_interface::AttentionTransfer* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::AttentionTransfer>(Arena*);
template<> ::Anki::Vector::external_interface::AudioChunk* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::AudioChunk>(Arena*);
template<> ::Anki::Vector::external_interface::AudioFeedRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::AudioFeedRequest>(Arena*);
template<> ::Anki::Vector::external_interface::AudioFeedResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::AudioFeedResponse>(Arena*);
template<> ::Anki::Vector::external_interface::AudioSendModeChanged* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::AudioSendModeChanged>(Arena*);
template<> ::Anki::Vector::external_interface::AudioSendModeRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::AudioSendModeRequest>(Arena*);
template<> ::Anki::Vector::external_interface::BatteryStateRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::BatteryStateRequest>(Arena*);
template<> ::Anki::Vector::external_interface::BatteryStateResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::BatteryStateResponse>(Arena*);
template<> ::Anki::Vector::external_interface::CameraConfigRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CameraConfigRequest>(Arena*);
template<> ::Anki::Vector::external_interface::CameraConfigResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CameraConfigResponse>(Arena*);
template<> ::Anki::Vector::external_interface::CameraFeedRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CameraFeedRequest>(Arena*);
template<> ::Anki::Vector::external_interface::CameraFeedResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CameraFeedResponse>(Arena*);
template<> ::Anki::Vector::external_interface::CameraSettingsUpdate* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CameraSettingsUpdate>(Arena*);
template<> ::Anki::Vector::external_interface::CancelActionByIdTagRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CancelActionByIdTagRequest>(Arena*);
template<> ::Anki::Vector::external_interface::CancelActionByIdTagResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CancelActionByIdTagResponse>(Arena*);
template<> ::Anki::Vector::external_interface::CancelBehaviorRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CancelBehaviorRequest>(Arena*);
template<> ::Anki::Vector::external_interface::CancelBehaviorResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CancelBehaviorResponse>(Arena*);
template<> ::Anki::Vector::external_interface::CancelFaceEnrollmentRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CancelFaceEnrollmentRequest>(Arena*);
template<> ::Anki::Vector::external_interface::CancelFaceEnrollmentResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CancelFaceEnrollmentResponse>(Arena*);
template<> ::Anki::Vector::external_interface::CaptureSingleImageRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CaptureSingleImageRequest>(Arena*);
template<> ::Anki::Vector::external_interface::CaptureSingleImageResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CaptureSingleImageResponse>(Arena*);
template<> ::Anki::Vector::external_interface::CheckCloudRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CheckCloudRequest>(Arena*);
template<> ::Anki::Vector::external_interface::CheckCloudResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CheckCloudResponse>(Arena*);
template<> ::Anki::Vector::external_interface::CheckUpdateStatusRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CheckUpdateStatusRequest>(Arena*);
template<> ::Anki::Vector::external_interface::CheckUpdateStatusResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CheckUpdateStatusResponse>(Arena*);
template<> ::Anki::Vector::external_interface::CladPoint* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CladPoint>(Arena*);
template<> ::Anki::Vector::external_interface::CladRect* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CladRect>(Arena*);
template<> ::Anki::Vector::external_interface::CubeBattery* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::CubeBattery>(Arena*);
template<> ::Anki::Vector::external_interface::DeletePhotoRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DeletePhotoRequest>(Arena*);
template<> ::Anki::Vector::external_interface::DeletePhotoResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DeletePhotoResponse>(Arena*);
template<> ::Anki::Vector::external_interface::DisplayFaceImageRGBRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DisplayFaceImageRGBRequest>(Arena*);
template<> ::Anki::Vector::external_interface::DisplayFaceImageRGBResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DisplayFaceImageRGBResponse>(Arena*);
template<> ::Anki::Vector::external_interface::DockWithCubeRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DockWithCubeRequest>(Arena*);
template<> ::Anki::Vector::external_interface::DockWithCubeResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DockWithCubeResponse>(Arena*);
template<> ::Anki::Vector::external_interface::DriveOffChargerRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DriveOffChargerRequest>(Arena*);
template<> ::Anki::Vector::external_interface::DriveOffChargerResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DriveOffChargerResponse>(Arena*);
template<> ::Anki::Vector::external_interface::DriveOnChargerRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DriveOnChargerRequest>(Arena*);
template<> ::Anki::Vector::external_interface::DriveOnChargerResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DriveOnChargerResponse>(Arena*);
template<> ::Anki::Vector::external_interface::DriveStraightRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DriveStraightRequest>(Arena*);
template<> ::Anki::Vector::external_interface::DriveStraightResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DriveStraightResponse>(Arena*);
template<> ::Anki::Vector::external_interface::DriveWheelsRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DriveWheelsRequest>(Arena*);
template<> ::Anki::Vector::external_interface::DriveWheelsResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::DriveWheelsResponse>(Arena*);
template<> ::Anki::Vector::external_interface::EnableFaceDetectionRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EnableFaceDetectionRequest>(Arena*);
template<> ::Anki::Vector::external_interface::EnableFaceDetectionResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EnableFaceDetectionResponse>(Arena*);
template<> ::Anki::Vector::external_interface::EnableImageStreamingRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EnableImageStreamingRequest>(Arena*);
template<> ::Anki::Vector::external_interface::EnableImageStreamingResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EnableImageStreamingResponse>(Arena*);
template<> ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EnableMarkerDetectionRequest>(Arena*);
template<> ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EnableMarkerDetectionResponse>(Arena*);
template<> ::Anki::Vector::external_interface::EnableMirrorModeRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EnableMirrorModeRequest>(Arena*);
template<> ::Anki::Vector::external_interface::EnableMirrorModeResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EnableMirrorModeResponse>(Arena*);
template<> ::Anki::Vector::external_interface::EnableMotionDetectionRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EnableMotionDetectionRequest>(Arena*);
template<> ::Anki::Vector::external_interface::EnableMotionDetectionResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EnableMotionDetectionResponse>(Arena*);
template<> ::Anki::Vector::external_interface::EnrollFaceRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EnrollFaceRequest>(Arena*);
template<> ::Anki::Vector::external_interface::EnrollFaceResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EnrollFaceResponse>(Arena*);
template<> ::Anki::Vector::external_interface::EraseAllEnrolledFacesRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EraseAllEnrolledFacesRequest>(Arena*);
template<> ::Anki::Vector::external_interface::EraseAllEnrolledFacesResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EraseAllEnrolledFacesResponse>(Arena*);
template<> ::Anki::Vector::external_interface::EraseEnrolledFaceByIDRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EraseEnrolledFaceByIDRequest>(Arena*);
template<> ::Anki::Vector::external_interface::EraseEnrolledFaceByIDResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::EraseEnrolledFaceByIDResponse>(Arena*);
template<> ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun>(Arena*);
template<> ::Anki::Vector::external_interface::ExternalAudioStreamCancel* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ExternalAudioStreamCancel>(Arena*);
template<> ::Anki::Vector::external_interface::ExternalAudioStreamChunk* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ExternalAudioStreamChunk>(Arena*);
template<> ::Anki::Vector::external_interface::ExternalAudioStreamComplete* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ExternalAudioStreamComplete>(Arena*);
template<> ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete>(Arena*);
template<> ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure>(Arena*);
template<> ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ExternalAudioStreamPrepare>(Arena*);
template<> ::Anki::Vector::external_interface::ExternalAudioStreamRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ExternalAudioStreamRequest>(Arena*);
template<> ::Anki::Vector::external_interface::ExternalAudioStreamResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ExternalAudioStreamResponse>(Arena*);
template<> ::Anki::Vector::external_interface::FaceEnrollmentCompleted* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::FaceEnrollmentCompleted>(Arena*);
template<> ::Anki::Vector::external_interface::FeatureFlagListRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::FeatureFlagListRequest>(Arena*);
template<> ::Anki::Vector::external_interface::FeatureFlagListResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::FeatureFlagListResponse>(Arena*);
template<> ::Anki::Vector::external_interface::FeatureFlagRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::FeatureFlagRequest>(Arena*);
template<> ::Anki::Vector::external_interface::FeatureFlagResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::FeatureFlagResponse>(Arena*);
template<> ::Anki::Vector::external_interface::FeatureStatus* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::FeatureStatus>(Arena*);
template<> ::Anki::Vector::external_interface::FindFacesRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::FindFacesRequest>(Arena*);
template<> ::Anki::Vector::external_interface::FindFacesResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::FindFacesResponse>(Arena*);
template<> ::Anki::Vector::external_interface::GoToObjectRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::GoToObjectRequest>(Arena*);
template<> ::Anki::Vector::external_interface::GoToObjectResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::GoToObjectResponse>(Arena*);
template<> ::Anki::Vector::external_interface::GoToPoseRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::GoToPoseRequest>(Arena*);
template<> ::Anki::Vector::external_interface::GoToPoseResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::GoToPoseResponse>(Arena*);
template<> ::Anki::Vector::external_interface::GyroData* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::GyroData>(Arena*);
template<> ::Anki::Vector::external_interface::ImageChunk* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ImageChunk>(Arena*);
template<> ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::IsImageStreamingEnabledRequest>(Arena*);
template<> ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::IsImageStreamingEnabledResponse>(Arena*);
template<> ::Anki::Vector::external_interface::KeepAlivePing* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::KeepAlivePing>(Arena*);
template<> ::Anki::Vector::external_interface::LatestAttentionTransfer* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::LatestAttentionTransfer>(Arena*);
template<> ::Anki::Vector::external_interface::LatestAttentionTransferRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::LatestAttentionTransferRequest>(Arena*);
template<> ::Anki::Vector::external_interface::LatestAttentionTransferResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::LatestAttentionTransferResponse>(Arena*);
template<> ::Anki::Vector::external_interface::ListAnimationTriggersRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ListAnimationTriggersRequest>(Arena*);
template<> ::Anki::Vector::external_interface::ListAnimationTriggersResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ListAnimationTriggersResponse>(Arena*);
template<> ::Anki::Vector::external_interface::ListAnimationsRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ListAnimationsRequest>(Arena*);
template<> ::Anki::Vector::external_interface::ListAnimationsResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ListAnimationsResponse>(Arena*);
template<> ::Anki::Vector::external_interface::LoadedKnownFace* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::LoadedKnownFace>(Arena*);
template<> ::Anki::Vector::external_interface::LookAroundInPlaceRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::LookAroundInPlaceRequest>(Arena*);
template<> ::Anki::Vector::external_interface::LookAroundInPlaceResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::LookAroundInPlaceResponse>(Arena*);
template<> ::Anki::Vector::external_interface::MasterVolumeRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::MasterVolumeRequest>(Arena*);
template<> ::Anki::Vector::external_interface::MasterVolumeResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::MasterVolumeResponse>(Arena*);
template<> ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::MeetVictorFaceScanComplete>(Arena*);
template<> ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::MeetVictorFaceScanStarted>(Arena*);
template<> ::Anki::Vector::external_interface::MirrorModeDisabled* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::MirrorModeDisabled>(Arena*);
template<> ::Anki::Vector::external_interface::MoveHeadRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::MoveHeadRequest>(Arena*);
template<> ::Anki::Vector::external_interface::MoveHeadResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::MoveHeadResponse>(Arena*);
template<> ::Anki::Vector::external_interface::MoveLiftRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::MoveLiftRequest>(Arena*);
template<> ::Anki::Vector::external_interface::MoveLiftResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::MoveLiftResponse>(Arena*);
template<> ::Anki::Vector::external_interface::Onboarding* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::Onboarding>(Arena*);
template<> ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::Onboarding1p0ChargingInfo>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingChargeInfoRequest>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingChargeInfoResponse>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingCompleteRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingCompleteRequest>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingCompleteResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingCompleteResponse>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingInputRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingInputRequest>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingInputResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingInputResponse>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingPhaseProgressRequest>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingPhaseProgressResponse>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingRestart* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingRestart>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingSetPhaseRequest>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingSetPhaseResponse>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingSkipOnboarding* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingSkipOnboarding>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingState* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingState>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingStateRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingStateRequest>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingStateResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingStateResponse>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingWakeUpFinished* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingWakeUpFinished>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingWakeUpRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingWakeUpRequest>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingWakeUpResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingWakeUpResponse>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest>(Arena*);
template<> ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse>(Arena*);
template<> ::Anki::Vector::external_interface::PathMotionProfile* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PathMotionProfile>(Arena*);
template<> ::Anki::Vector::external_interface::PhotoInfo* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PhotoInfo>(Arena*);
template<> ::Anki::Vector::external_interface::PhotoPathMessage* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PhotoPathMessage>(Arena*);
template<> ::Anki::Vector::external_interface::PhotoRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PhotoRequest>(Arena*);
template<> ::Anki::Vector::external_interface::PhotoResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PhotoResponse>(Arena*);
template<> ::Anki::Vector::external_interface::PhotoTaken* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PhotoTaken>(Arena*);
template<> ::Anki::Vector::external_interface::PhotosInfoRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PhotosInfoRequest>(Arena*);
template<> ::Anki::Vector::external_interface::PhotosInfoResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PhotosInfoResponse>(Arena*);
template<> ::Anki::Vector::external_interface::PickupObjectRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PickupObjectRequest>(Arena*);
template<> ::Anki::Vector::external_interface::PickupObjectResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PickupObjectResponse>(Arena*);
template<> ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest>(Arena*);
template<> ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse>(Arena*);
template<> ::Anki::Vector::external_interface::PlayAnimationRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PlayAnimationRequest>(Arena*);
template<> ::Anki::Vector::external_interface::PlayAnimationResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PlayAnimationResponse>(Arena*);
template<> ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PlayAnimationTriggerRequest>(Arena*);
template<> ::Anki::Vector::external_interface::PopAWheelieRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PopAWheelieRequest>(Arena*);
template<> ::Anki::Vector::external_interface::PopAWheelieResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PopAWheelieResponse>(Arena*);
template<> ::Anki::Vector::external_interface::PoseStruct* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::PoseStruct>(Arena*);
template<> ::Anki::Vector::external_interface::ProxData* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ProxData>(Arena*);
template<> ::Anki::Vector::external_interface::RequestEnrolledNamesRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RequestEnrolledNamesRequest>(Arena*);
template<> ::Anki::Vector::external_interface::RequestEnrolledNamesResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RequestEnrolledNamesResponse>(Arena*);
template<> ::Anki::Vector::external_interface::RobotChangedObservedFaceID* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RobotChangedObservedFaceID>(Arena*);
template<> ::Anki::Vector::external_interface::RobotErasedEnrolledFace* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RobotErasedEnrolledFace>(Arena*);
template<> ::Anki::Vector::external_interface::RobotHistoryRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RobotHistoryRequest>(Arena*);
template<> ::Anki::Vector::external_interface::RobotHistoryResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RobotHistoryResponse>(Arena*);
template<> ::Anki::Vector::external_interface::RobotObservedFace* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RobotObservedFace>(Arena*);
template<> ::Anki::Vector::external_interface::RobotObservedMotion* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RobotObservedMotion>(Arena*);
template<> ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RobotRenamedEnrolledFace>(Arena*);
template<> ::Anki::Vector::external_interface::RobotState* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RobotState>(Arena*);
template<> ::Anki::Vector::external_interface::RollBlockRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RollBlockRequest>(Arena*);
template<> ::Anki::Vector::external_interface::RollBlockResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RollBlockResponse>(Arena*);
template<> ::Anki::Vector::external_interface::RollObjectRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RollObjectRequest>(Arena*);
template<> ::Anki::Vector::external_interface::RollObjectResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::RollObjectResponse>(Arena*);
template<> ::Anki::Vector::external_interface::SDKInitializationRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SDKInitializationRequest>(Arena*);
template<> ::Anki::Vector::external_interface::SDKInitializationResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SDKInitializationResponse>(Arena*);
template<> ::Anki::Vector::external_interface::SayTextRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SayTextRequest>(Arena*);
template<> ::Anki::Vector::external_interface::SayTextResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SayTextResponse>(Arena*);
template<> ::Anki::Vector::external_interface::SetCameraSettingsRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SetCameraSettingsRequest>(Arena*);
template<> ::Anki::Vector::external_interface::SetCameraSettingsResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SetCameraSettingsResponse>(Arena*);
template<> ::Anki::Vector::external_interface::SetEyeColorRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SetEyeColorRequest>(Arena*);
template<> ::Anki::Vector::external_interface::SetEyeColorResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SetEyeColorResponse>(Arena*);
template<> ::Anki::Vector::external_interface::SetFaceToEnrollRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SetFaceToEnrollRequest>(Arena*);
template<> ::Anki::Vector::external_interface::SetFaceToEnrollResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SetFaceToEnrollResponse>(Arena*);
template<> ::Anki::Vector::external_interface::SetHeadAngleRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SetHeadAngleRequest>(Arena*);
template<> ::Anki::Vector::external_interface::SetHeadAngleResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SetHeadAngleResponse>(Arena*);
template<> ::Anki::Vector::external_interface::SetLiftHeightRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SetLiftHeightRequest>(Arena*);
template<> ::Anki::Vector::external_interface::SetLiftHeightResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::SetLiftHeightResponse>(Arena*);
template<> ::Anki::Vector::external_interface::Status* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::Status>(Arena*);
template<> ::Anki::Vector::external_interface::StimulationInfo* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::StimulationInfo>(Arena*);
template<> ::Anki::Vector::external_interface::StopAllMotorsRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::StopAllMotorsRequest>(Arena*);
template<> ::Anki::Vector::external_interface::StopAllMotorsResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::StopAllMotorsResponse>(Arena*);
template<> ::Anki::Vector::external_interface::ThumbnailPathMessage* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ThumbnailPathMessage>(Arena*);
template<> ::Anki::Vector::external_interface::ThumbnailRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ThumbnailRequest>(Arena*);
template<> ::Anki::Vector::external_interface::ThumbnailResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::ThumbnailResponse>(Arena*);
template<> ::Anki::Vector::external_interface::TimeStampedStatus* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::TimeStampedStatus>(Arena*);
template<> ::Anki::Vector::external_interface::TouchData* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::TouchData>(Arena*);
template<> ::Anki::Vector::external_interface::TurnInPlaceRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::TurnInPlaceRequest>(Arena*);
template<> ::Anki::Vector::external_interface::TurnInPlaceResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::TurnInPlaceResponse>(Arena*);
template<> ::Anki::Vector::external_interface::TurnTowardsFaceRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::TurnTowardsFaceRequest>(Arena*);
template<> ::Anki::Vector::external_interface::TurnTowardsFaceResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::TurnTowardsFaceResponse>(Arena*);
template<> ::Anki::Vector::external_interface::UnexpectedMovement* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UnexpectedMovement>(Arena*);
template<> ::Anki::Vector::external_interface::UpdateAndRestartRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UpdateAndRestartRequest>(Arena*);
template<> ::Anki::Vector::external_interface::UpdateAndRestartResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UpdateAndRestartResponse>(Arena*);
template<> ::Anki::Vector::external_interface::UpdateEnrolledFaceByIDRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UpdateEnrolledFaceByIDRequest>(Arena*);
template<> ::Anki::Vector::external_interface::UpdateEnrolledFaceByIDResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UpdateEnrolledFaceByIDResponse>(Arena*);
template<> ::Anki::Vector::external_interface::UploadDebugLogsRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UploadDebugLogsRequest>(Arena*);
template<> ::Anki::Vector::external_interface::UploadDebugLogsResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UploadDebugLogsResponse>(Arena*);
template<> ::Anki::Vector::external_interface::UserIntent* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::UserIntent>(Arena*);
template<> ::Anki::Vector::external_interface::VersionStateRequest* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::VersionStateRequest>(Arena*);
template<> ::Anki::Vector::external_interface::VersionStateResponse* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::VersionStateResponse>(Arena*);
template<> ::Anki::Vector::external_interface::VisionModesAutoDisabled* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::VisionModesAutoDisabled>(Arena*);
template<> ::Anki::Vector::external_interface::WakeWord* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::WakeWord>(Arena*);
template<> ::Anki::Vector::external_interface::WakeWordBegin* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::WakeWordBegin>(Arena*);
template<> ::Anki::Vector::external_interface::WakeWordEnd* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::WakeWordEnd>(Arena*);
template<> ::Anki::Vector::external_interface::_FakeAlexaUsage* Arena::CreateMaybeMessage<::Anki::Vector::external_interface::_FakeAlexaUsage>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace Anki {
namespace Vector {
namespace external_interface {

enum ActionResult_ActionResultCode : int {
  ActionResult_ActionResultCode_ACTION_RESULT_SUCCESS = 0,
  ActionResult_ActionResultCode_ACTION_RESULT_RUNNING = 16777216,
  ActionResult_ActionResultCode_ACTION_RESULT_CANCELLED_WHILE_RUNNING = 33554432,
  ActionResult_ActionResultCode_NOT_STARTED = 33554433,
  ActionResult_ActionResultCode_ABORT = 50331648,
  ActionResult_ActionResultCode_ANIM_ABORTED = 50331649,
  ActionResult_ActionResultCode_BAD_MARKER = 50331650,
  ActionResult_ActionResultCode_BAD_MESSAGE_TAG = 50331651,
  ActionResult_ActionResultCode_BAD_OBJECT = 50331652,
  ActionResult_ActionResultCode_BAD_POSE = 50331653,
  ActionResult_ActionResultCode_BAD_TAG = 50331654,
  ActionResult_ActionResultCode_CHARGER_UNPLUGGED_ABORT = 50331655,
  ActionResult_ActionResultCode_CLIFF_ALIGN_FAILED_TIMEOUT = 50331656,
  ActionResult_ActionResultCode_CLIFF_ALIGN_FAILED_NO_TURNING = 50331657,
  ActionResult_ActionResultCode_CLIFF_ALIGN_FAILED_OVER_TURNING = 50331658,
  ActionResult_ActionResultCode_CLIFF_ALIGN_FAILED_NO_WHITE = 50331659,
  ActionResult_ActionResultCode_CLIFF_ALIGN_FAILED_STOPPED = 50331660,
  ActionResult_ActionResultCode_FAILED_SETTING_CALIBRATION = 50331661,
  ActionResult_ActionResultCode_FOLLOWING_PATH_BUT_NOT_TRAVERSING = 50331662,
  ActionResult_ActionResultCode_INTERRUPTED = 50331663,
  ActionResult_ActionResultCode_INVALID_OFF_TREADS_STATE = 50331664,
  ActionResult_ActionResultCode_MISMATCHED_UP_AXIS = 50331665,
  ActionResult_ActionResultCode_NO_ANIM_NAME = 50331666,
  ActionResult_ActionResultCode_NO_DISTANCE_SET = 50331667,
  ActionResult_ActionResultCode_NO_FACE = 50331668,
  ActionResult_ActionResultCode_NO_GOAL_SET = 50331669,
  ActionResult_ActionResultCode_NO_PREACTION_POSES = 50331670,
  ActionResult_ActionResultCode_NOT_CARRYING_OBJECT_ABORT = 50331671,
  ActionResult_ActionResultCode_NOT_ON_CHARGER_ABORT = 50331672,
  ActionResult_ActionResultCode_NULL_SUBACTION = 50331673,
  ActionResult_ActionResultCode_PATH_PLANNING_FAILED_ABORT = 50331674,
  ActionResult_ActionResultCode_PICKUP_OBJECT_UNEXPECTEDLY_MOVING = 50331675,
  ActionResult_ActionResultCode_SEND_MESSAGE_TO_ROBOT_FAILED = 50331676,
  ActionResult_ActionResultCode_STILL_CARRYING_OBJECT = 50331677,
  ActionResult_ActionResultCode_TIMEOUT = 50331678,
  ActionResult_ActionResultCode_TRACKS_LOCKED = 50331679,
  ActionResult_ActionResultCode_UNEXPECTED_DOCK_ACTION = 50331680,
  ActionResult_ActionResultCode_UNKNOWN_TOOL_CODE = 50331681,
  ActionResult_ActionResultCode_UPDATE_DERIVED_FAILED = 50331682,
  ActionResult_ActionResultCode_VISUAL_OBSERVATION_FAILED = 50331683,
  ActionResult_ActionResultCode_SHOULDNT_DRIVE_ON_CHARGER = 50331684,
  ActionResult_ActionResultCode_RETRY = 67108864,
  ActionResult_ActionResultCode_DID_NOT_REACH_PREACTION_POSE = 67108865,
  ActionResult_ActionResultCode_FAILED_TRAVERSING_PATH = 67108866,
  ActionResult_ActionResultCode_LAST_PICK_AND_PLACE_FAILED = 67108867,
  ActionResult_ActionResultCode_MOTOR_STOPPED_MAKING_PROGRESS = 67108868,
  ActionResult_ActionResultCode_NOT_CARRYING_OBJECT_RETRY = 67108869,
  ActionResult_ActionResultCode_NOT_ON_CHARGER_RETRY = 67108870,
  ActionResult_ActionResultCode_PATH_PLANNING_FAILED_RETRY = 67108871,
  ActionResult_ActionResultCode_PLACEMENT_GOAL_NOT_FREE = 67108872,
  ActionResult_ActionResultCode_PICKUP_OBJECT_UNEXPECTEDLY_NOT_MOVING = 67108873,
  ActionResult_ActionResultCode_STILL_ON_CHARGER = 67108874,
  ActionResult_ActionResultCode_UNEXPECTED_PITCH_ANGLE = 67108875,
  ActionResult_ActionResultCode_ActionResult_ActionResultCode_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  ActionResult_ActionResultCode_ActionResult_ActionResultCode_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool ActionResult_ActionResultCode_IsValid(int value);
constexpr ActionResult_ActionResultCode ActionResult_ActionResultCode_ActionResultCode_MIN = ActionResult_ActionResultCode_ACTION_RESULT_SUCCESS;
constexpr ActionResult_ActionResultCode ActionResult_ActionResultCode_ActionResultCode_MAX = ActionResult_ActionResultCode_UNEXPECTED_PITCH_ANGLE;
constexpr int ActionResult_ActionResultCode_ActionResultCode_ARRAYSIZE = ActionResult_ActionResultCode_ActionResultCode_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ActionResult_ActionResultCode_descriptor();
template<typename T>
inline const std::string& ActionResult_ActionResultCode_Name(T enum_t_value) {
  static_assert(::std::is_same<T, ActionResult_ActionResultCode>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function ActionResult_ActionResultCode_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    ActionResult_ActionResultCode_descriptor(), enum_t_value);
}
inline bool ActionResult_ActionResultCode_Parse(
    const std::string& name, ActionResult_ActionResultCode* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ActionResult_ActionResultCode>(
    ActionResult_ActionResultCode_descriptor(), name, value);
}
enum CubeBattery_CubeBatteryLevel : int {
  CubeBattery_CubeBatteryLevel_Low = 0,
  CubeBattery_CubeBatteryLevel_Normal = 1,
  CubeBattery_CubeBatteryLevel_CubeBattery_CubeBatteryLevel_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  CubeBattery_CubeBatteryLevel_CubeBattery_CubeBatteryLevel_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool CubeBattery_CubeBatteryLevel_IsValid(int value);
constexpr CubeBattery_CubeBatteryLevel CubeBattery_CubeBatteryLevel_CubeBatteryLevel_MIN = CubeBattery_CubeBatteryLevel_Low;
constexpr CubeBattery_CubeBatteryLevel CubeBattery_CubeBatteryLevel_CubeBatteryLevel_MAX = CubeBattery_CubeBatteryLevel_Normal;
constexpr int CubeBattery_CubeBatteryLevel_CubeBatteryLevel_ARRAYSIZE = CubeBattery_CubeBatteryLevel_CubeBatteryLevel_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CubeBattery_CubeBatteryLevel_descriptor();
template<typename T>
inline const std::string& CubeBattery_CubeBatteryLevel_Name(T enum_t_value) {
  static_assert(::std::is_same<T, CubeBattery_CubeBatteryLevel>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function CubeBattery_CubeBatteryLevel_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    CubeBattery_CubeBatteryLevel_descriptor(), enum_t_value);
}
inline bool CubeBattery_CubeBatteryLevel_Parse(
    const std::string& name, CubeBattery_CubeBatteryLevel* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<CubeBattery_CubeBatteryLevel>(
    CubeBattery_CubeBatteryLevel_descriptor(), name, value);
}
enum SayTextResponse_UtteranceState : int {
  SayTextResponse_UtteranceState_INVALID = 0,
  SayTextResponse_UtteranceState_GENERATING = 1,
  SayTextResponse_UtteranceState_READY = 2,
  SayTextResponse_UtteranceState_PLAYING = 3,
  SayTextResponse_UtteranceState_FINISHED = 4,
  SayTextResponse_UtteranceState_SayTextResponse_UtteranceState_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  SayTextResponse_UtteranceState_SayTextResponse_UtteranceState_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool SayTextResponse_UtteranceState_IsValid(int value);
constexpr SayTextResponse_UtteranceState SayTextResponse_UtteranceState_UtteranceState_MIN = SayTextResponse_UtteranceState_INVALID;
constexpr SayTextResponse_UtteranceState SayTextResponse_UtteranceState_UtteranceState_MAX = SayTextResponse_UtteranceState_FINISHED;
constexpr int SayTextResponse_UtteranceState_UtteranceState_ARRAYSIZE = SayTextResponse_UtteranceState_UtteranceState_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SayTextResponse_UtteranceState_descriptor();
template<typename T>
inline const std::string& SayTextResponse_UtteranceState_Name(T enum_t_value) {
  static_assert(::std::is_same<T, SayTextResponse_UtteranceState>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function SayTextResponse_UtteranceState_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    SayTextResponse_UtteranceState_descriptor(), enum_t_value);
}
inline bool SayTextResponse_UtteranceState_Parse(
    const std::string& name, SayTextResponse_UtteranceState* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<SayTextResponse_UtteranceState>(
    SayTextResponse_UtteranceState_descriptor(), name, value);
}
enum ImageChunk_ImageEncoding : int {
  ImageChunk_ImageEncoding_NONE_IMAGE_ENCODING = 0,
  ImageChunk_ImageEncoding_RAW_GRAY = 1,
  ImageChunk_ImageEncoding_RAW_RGB = 2,
  ImageChunk_ImageEncoding_YUYV = 3,
  ImageChunk_ImageEncoding_YUV420SP = 4,
  ImageChunk_ImageEncoding_BAYER = 5,
  ImageChunk_ImageEncoding_JPEG_GRAY = 6,
  ImageChunk_ImageEncoding_JPEG_COLOR = 7,
  ImageChunk_ImageEncoding_JPEG_COLOR_HALF_WIDTH = 8,
  ImageChunk_ImageEncoding_JPEG_MINIMIZED_GRAY = 9,
  ImageChunk_ImageEncoding_JPEG_MINIMIZED_COLOR = 10,
  ImageChunk_ImageEncoding_ImageChunk_ImageEncoding_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  ImageChunk_ImageEncoding_ImageChunk_ImageEncoding_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool ImageChunk_ImageEncoding_IsValid(int value);
constexpr ImageChunk_ImageEncoding ImageChunk_ImageEncoding_ImageEncoding_MIN = ImageChunk_ImageEncoding_NONE_IMAGE_ENCODING;
constexpr ImageChunk_ImageEncoding ImageChunk_ImageEncoding_ImageEncoding_MAX = ImageChunk_ImageEncoding_JPEG_MINIMIZED_COLOR;
constexpr int ImageChunk_ImageEncoding_ImageEncoding_ARRAYSIZE = ImageChunk_ImageEncoding_ImageEncoding_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ImageChunk_ImageEncoding_descriptor();
template<typename T>
inline const std::string& ImageChunk_ImageEncoding_Name(T enum_t_value) {
  static_assert(::std::is_same<T, ImageChunk_ImageEncoding>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function ImageChunk_ImageEncoding_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    ImageChunk_ImageEncoding_descriptor(), enum_t_value);
}
inline bool ImageChunk_ImageEncoding_Parse(
    const std::string& name, ImageChunk_ImageEncoding* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ImageChunk_ImageEncoding>(
    ImageChunk_ImageEncoding_descriptor(), name, value);
}
enum CheckUpdateStatusResponse_UpdateStatus : int {
  CheckUpdateStatusResponse_UpdateStatus_NO_UPDATE = 0,
  CheckUpdateStatusResponse_UpdateStatus_READY_TO_REBOOT_INTO_NEW_OS_VERSION = 1,
  CheckUpdateStatusResponse_UpdateStatus_IN_PROGRESS_DOWNLOAD = 2,
  CheckUpdateStatusResponse_UpdateStatus_FAILURE_INTERRUPTED_DOWNLOAD = 3,
  CheckUpdateStatusResponse_UpdateStatus_IN_PROGRESS_STARTING = 4,
  CheckUpdateStatusResponse_UpdateStatus_IN_PROGRESS_OTHER = 5,
  CheckUpdateStatusResponse_UpdateStatus_FAILURE_OTHER = 6,
  CheckUpdateStatusResponse_UpdateStatus_CheckUpdateStatusResponse_UpdateStatus_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  CheckUpdateStatusResponse_UpdateStatus_CheckUpdateStatusResponse_UpdateStatus_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool CheckUpdateStatusResponse_UpdateStatus_IsValid(int value);
constexpr CheckUpdateStatusResponse_UpdateStatus CheckUpdateStatusResponse_UpdateStatus_UpdateStatus_MIN = CheckUpdateStatusResponse_UpdateStatus_NO_UPDATE;
constexpr CheckUpdateStatusResponse_UpdateStatus CheckUpdateStatusResponse_UpdateStatus_UpdateStatus_MAX = CheckUpdateStatusResponse_UpdateStatus_FAILURE_OTHER;
constexpr int CheckUpdateStatusResponse_UpdateStatus_UpdateStatus_ARRAYSIZE = CheckUpdateStatusResponse_UpdateStatus_UpdateStatus_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CheckUpdateStatusResponse_UpdateStatus_descriptor();
template<typename T>
inline const std::string& CheckUpdateStatusResponse_UpdateStatus_Name(T enum_t_value) {
  static_assert(::std::is_same<T, CheckUpdateStatusResponse_UpdateStatus>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function CheckUpdateStatusResponse_UpdateStatus_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    CheckUpdateStatusResponse_UpdateStatus_descriptor(), enum_t_value);
}
inline bool CheckUpdateStatusResponse_UpdateStatus_Parse(
    const std::string& name, CheckUpdateStatusResponse_UpdateStatus* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<CheckUpdateStatusResponse_UpdateStatus>(
    CheckUpdateStatusResponse_UpdateStatus_descriptor(), name, value);
}
enum CheckCloudResponse_ConnectionCode : int {
  CheckCloudResponse_ConnectionCode_UNKNOWN = 0,
  CheckCloudResponse_ConnectionCode_AVAILABLE = 1,
  CheckCloudResponse_ConnectionCode_BAD_CONNECTIVITY = 2,
  CheckCloudResponse_ConnectionCode_FAILED_TLS = 3,
  CheckCloudResponse_ConnectionCode_FAILED_AUTH = 4,
  CheckCloudResponse_ConnectionCode_INSUFFICIENT_BANDWIDTH = 5,
  CheckCloudResponse_ConnectionCode_CheckCloudResponse_ConnectionCode_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  CheckCloudResponse_ConnectionCode_CheckCloudResponse_ConnectionCode_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool CheckCloudResponse_ConnectionCode_IsValid(int value);
constexpr CheckCloudResponse_ConnectionCode CheckCloudResponse_ConnectionCode_ConnectionCode_MIN = CheckCloudResponse_ConnectionCode_UNKNOWN;
constexpr CheckCloudResponse_ConnectionCode CheckCloudResponse_ConnectionCode_ConnectionCode_MAX = CheckCloudResponse_ConnectionCode_INSUFFICIENT_BANDWIDTH;
constexpr int CheckCloudResponse_ConnectionCode_ConnectionCode_ARRAYSIZE = CheckCloudResponse_ConnectionCode_ConnectionCode_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CheckCloudResponse_ConnectionCode_descriptor();
template<typename T>
inline const std::string& CheckCloudResponse_ConnectionCode_Name(T enum_t_value) {
  static_assert(::std::is_same<T, CheckCloudResponse_ConnectionCode>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function CheckCloudResponse_ConnectionCode_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    CheckCloudResponse_ConnectionCode_descriptor(), enum_t_value);
}
inline bool CheckCloudResponse_ConnectionCode_Parse(
    const std::string& name, CheckCloudResponse_ConnectionCode* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<CheckCloudResponse_ConnectionCode>(
    CheckCloudResponse_ConnectionCode_descriptor(), name, value);
}
enum RobotStatus : int {
  ROBOT_STATUS_NONE = 0,
  ROBOT_STATUS_IS_MOVING = 1,
  ROBOT_STATUS_IS_CARRYING_BLOCK = 2,
  ROBOT_STATUS_IS_PICKING_OR_PLACING = 4,
  ROBOT_STATUS_IS_PICKED_UP = 8,
  ROBOT_STATUS_IS_BUTTON_PRESSED = 16,
  ROBOT_STATUS_IS_FALLING = 32,
  ROBOT_STATUS_IS_ANIMATING = 64,
  ROBOT_STATUS_IS_PATHING = 128,
  ROBOT_STATUS_LIFT_IN_POS = 256,
  ROBOT_STATUS_HEAD_IN_POS = 512,
  ROBOT_STATUS_CALM_POWER_MODE = 1024,
  ROBOT_STATUS_IS_ON_CHARGER = 4096,
  ROBOT_STATUS_IS_CHARGING = 8192,
  ROBOT_STATUS_CLIFF_DETECTED = 16384,
  ROBOT_STATUS_ARE_WHEELS_MOVING = 32768,
  ROBOT_STATUS_IS_BEING_HELD = 65536,
  ROBOT_STATUS_IS_MOTION_DETECTED = 131072,
  RobotStatus_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  RobotStatus_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool RobotStatus_IsValid(int value);
constexpr RobotStatus RobotStatus_MIN = ROBOT_STATUS_NONE;
constexpr RobotStatus RobotStatus_MAX = ROBOT_STATUS_IS_MOTION_DETECTED;
constexpr int RobotStatus_ARRAYSIZE = RobotStatus_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RobotStatus_descriptor();
template<typename T>
inline const std::string& RobotStatus_Name(T enum_t_value) {
  static_assert(::std::is_same<T, RobotStatus>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function RobotStatus_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    RobotStatus_descriptor(), enum_t_value);
}
inline bool RobotStatus_Parse(
    const std::string& name, RobotStatus* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<RobotStatus>(
    RobotStatus_descriptor(), name, value);
}
enum UnexpectedMovementType : int {
  TURNED_BUT_STOPPED = 0,
  TURNED_IN_SAME_DIRECTION = 1,
  TURNED_IN_OPPOSITE_DIRECTION = 2,
  ROTATING_WITHOUT_MOTORS = 3,
  UnexpectedMovementType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  UnexpectedMovementType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool UnexpectedMovementType_IsValid(int value);
constexpr UnexpectedMovementType UnexpectedMovementType_MIN = TURNED_BUT_STOPPED;
constexpr UnexpectedMovementType UnexpectedMovementType_MAX = ROTATING_WITHOUT_MOTORS;
constexpr int UnexpectedMovementType_ARRAYSIZE = UnexpectedMovementType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* UnexpectedMovementType_descriptor();
template<typename T>
inline const std::string& UnexpectedMovementType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, UnexpectedMovementType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function UnexpectedMovementType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    UnexpectedMovementType_descriptor(), enum_t_value);
}
inline bool UnexpectedMovementType_Parse(
    const std::string& name, UnexpectedMovementType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<UnexpectedMovementType>(
    UnexpectedMovementType_descriptor(), name, value);
}
enum UnexpectedMovementSide : int {
  UNKNOWN = 0,
  FRONT = 1,
  BACK = 2,
  LEFT = 3,
  RIGHT = 4,
  UnexpectedMovementSide_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  UnexpectedMovementSide_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool UnexpectedMovementSide_IsValid(int value);
constexpr UnexpectedMovementSide UnexpectedMovementSide_MIN = UNKNOWN;
constexpr UnexpectedMovementSide UnexpectedMovementSide_MAX = RIGHT;
constexpr int UnexpectedMovementSide_ARRAYSIZE = UnexpectedMovementSide_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* UnexpectedMovementSide_descriptor();
template<typename T>
inline const std::string& UnexpectedMovementSide_Name(T enum_t_value) {
  static_assert(::std::is_same<T, UnexpectedMovementSide>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function UnexpectedMovementSide_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    UnexpectedMovementSide_descriptor(), enum_t_value);
}
inline bool UnexpectedMovementSide_Parse(
    const std::string& name, UnexpectedMovementSide* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<UnexpectedMovementSide>(
    UnexpectedMovementSide_descriptor(), name, value);
}
enum FacialExpression : int {
  EXPRESSION_UNKNOWN = 0,
  EXPRESSION_NEUTRAL = 1,
  EXPRESSION_HAPPINESS = 2,
  EXPRESSION_SURPRISE = 3,
  EXPRESSION_ANGER = 4,
  EXPRESSION_SADNESS = 5,
  EXPRESSION_COUNT = 5,
  FacialExpression_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  FacialExpression_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool FacialExpression_IsValid(int value);
constexpr FacialExpression FacialExpression_MIN = EXPRESSION_UNKNOWN;
constexpr FacialExpression FacialExpression_MAX = EXPRESSION_SADNESS;
constexpr int FacialExpression_ARRAYSIZE = FacialExpression_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* FacialExpression_descriptor();
template<typename T>
inline const std::string& FacialExpression_Name(T enum_t_value) {
  static_assert(::std::is_same<T, FacialExpression>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function FacialExpression_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    FacialExpression_descriptor(), enum_t_value);
}
inline bool FacialExpression_Parse(
    const std::string& name, FacialExpression* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<FacialExpression>(
    FacialExpression_descriptor(), name, value);
}
enum FaceEnrollmentResult : int {
  SUCCESS = 0,
  SAW_WRONG_FACE = 1,
  SAW_MULTIPLE_FACES = 2,
  TIMED_OUT = 3,
  SAVE_FAILED = 4,
  INCOMPLETE = 5,
  CANCELLED = 6,
  NAME_IN_USE = 7,
  NAMED_STORAGE_FULL = 8,
  UNKNOWN_FAILURE = 9,
  FaceEnrollmentResult_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  FaceEnrollmentResult_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool FaceEnrollmentResult_IsValid(int value);
constexpr FaceEnrollmentResult FaceEnrollmentResult_MIN = SUCCESS;
constexpr FaceEnrollmentResult FaceEnrollmentResult_MAX = UNKNOWN_FAILURE;
constexpr int FaceEnrollmentResult_ARRAYSIZE = FaceEnrollmentResult_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* FaceEnrollmentResult_descriptor();
template<typename T>
inline const std::string& FaceEnrollmentResult_Name(T enum_t_value) {
  static_assert(::std::is_same<T, FaceEnrollmentResult>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function FaceEnrollmentResult_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    FaceEnrollmentResult_descriptor(), enum_t_value);
}
inline bool FaceEnrollmentResult_Parse(
    const std::string& name, FaceEnrollmentResult* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<FaceEnrollmentResult>(
    FaceEnrollmentResult_descriptor(), name, value);
}
enum BehaviorResults : int {
  BEHAVIOR_INVALID_STATE = 0,
  BEHAVIOR_COMPLETE_STATE = 1,
  BEHAVIOR_WONT_ACTIVATE_STATE = 2,
  BehaviorResults_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  BehaviorResults_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool BehaviorResults_IsValid(int value);
constexpr BehaviorResults BehaviorResults_MIN = BEHAVIOR_INVALID_STATE;
constexpr BehaviorResults BehaviorResults_MAX = BEHAVIOR_WONT_ACTIVATE_STATE;
constexpr int BehaviorResults_ARRAYSIZE = BehaviorResults_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* BehaviorResults_descriptor();
template<typename T>
inline const std::string& BehaviorResults_Name(T enum_t_value) {
  static_assert(::std::is_same<T, BehaviorResults>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function BehaviorResults_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    BehaviorResults_descriptor(), enum_t_value);
}
inline bool BehaviorResults_Parse(
    const std::string& name, BehaviorResults* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<BehaviorResults>(
    BehaviorResults_descriptor(), name, value);
}
enum ActionTagConstants : int {
  INVALID_SDK_TAG = 0,
  FIRST_SDK_TAG = 2000001,
  LAST_SDK_TAG = 3000000,
  ActionTagConstants_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  ActionTagConstants_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool ActionTagConstants_IsValid(int value);
constexpr ActionTagConstants ActionTagConstants_MIN = INVALID_SDK_TAG;
constexpr ActionTagConstants ActionTagConstants_MAX = LAST_SDK_TAG;
constexpr int ActionTagConstants_ARRAYSIZE = ActionTagConstants_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ActionTagConstants_descriptor();
template<typename T>
inline const std::string& ActionTagConstants_Name(T enum_t_value) {
  static_assert(::std::is_same<T, ActionTagConstants>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function ActionTagConstants_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    ActionTagConstants_descriptor(), enum_t_value);
}
inline bool ActionTagConstants_Parse(
    const std::string& name, ActionTagConstants* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ActionTagConstants>(
    ActionTagConstants_descriptor(), name, value);
}
enum AlignmentType : int {
  ALIGNMENT_TYPE_UNKNOWN = 0,
  ALIGNMENT_TYPE_LIFT_FINGER = 1,
  ALIGNMENT_TYPE_LIFT_PLATE = 2,
  ALIGNMENT_TYPE_BODY = 3,
  ALIGNMENT_TYPE_CUSTOM = 4,
  AlignmentType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  AlignmentType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool AlignmentType_IsValid(int value);
constexpr AlignmentType AlignmentType_MIN = ALIGNMENT_TYPE_UNKNOWN;
constexpr AlignmentType AlignmentType_MAX = ALIGNMENT_TYPE_CUSTOM;
constexpr int AlignmentType_ARRAYSIZE = AlignmentType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AlignmentType_descriptor();
template<typename T>
inline const std::string& AlignmentType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, AlignmentType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function AlignmentType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    AlignmentType_descriptor(), enum_t_value);
}
inline bool AlignmentType_Parse(
    const std::string& name, AlignmentType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<AlignmentType>(
    AlignmentType_descriptor(), name, value);
}
enum BatteryLevel : int {
  BATTERY_LEVEL_UNKNOWN = 0,
  BATTERY_LEVEL_LOW = 1,
  BATTERY_LEVEL_NOMINAL = 2,
  BATTERY_LEVEL_FULL = 3,
  BatteryLevel_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  BatteryLevel_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool BatteryLevel_IsValid(int value);
constexpr BatteryLevel BatteryLevel_MIN = BATTERY_LEVEL_UNKNOWN;
constexpr BatteryLevel BatteryLevel_MAX = BATTERY_LEVEL_FULL;
constexpr int BatteryLevel_ARRAYSIZE = BatteryLevel_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* BatteryLevel_descriptor();
template<typename T>
inline const std::string& BatteryLevel_Name(T enum_t_value) {
  static_assert(::std::is_same<T, BatteryLevel>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function BatteryLevel_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    BatteryLevel_descriptor(), enum_t_value);
}
inline bool BatteryLevel_Parse(
    const std::string& name, BatteryLevel* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<BatteryLevel>(
    BatteryLevel_descriptor(), name, value);
}
enum AudioConstants : int {
  AUDIO_CONSTANTS_NULL = 0,
  MIC_DETECTION_DIRECTIONS = 12,
  SAMPLE_COUNTS_PER_ENGINE_MESSAGE = 160,
  SAMPLE_COUNTS_PER_SDK_MESSAGE = 1600,
  MICROPHONE_SAMPLE_RATE = 15625,
  PROCESSED_SAMPLE_RATE = 16000,
  AudioConstants_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  AudioConstants_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool AudioConstants_IsValid(int value);
constexpr AudioConstants AudioConstants_MIN = AUDIO_CONSTANTS_NULL;
constexpr AudioConstants AudioConstants_MAX = PROCESSED_SAMPLE_RATE;
constexpr int AudioConstants_ARRAYSIZE = AudioConstants_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AudioConstants_descriptor();
template<typename T>
inline const std::string& AudioConstants_Name(T enum_t_value) {
  static_assert(::std::is_same<T, AudioConstants>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function AudioConstants_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    AudioConstants_descriptor(), enum_t_value);
}
inline bool AudioConstants_Parse(
    const std::string& name, AudioConstants* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<AudioConstants>(
    AudioConstants_descriptor(), name, value);
}
enum AudioProcessingMode : int {
  AUDIO_UNKNOWN = 0,
  AUDIO_OFF = 1,
  AUDIO_FAST_MODE = 2,
  AUDIO_DIRECTIONAL_MODE = 3,
  AUDIO_VOICE_DETECT_MODE = 4,
  AudioProcessingMode_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  AudioProcessingMode_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool AudioProcessingMode_IsValid(int value);
constexpr AudioProcessingMode AudioProcessingMode_MIN = AUDIO_UNKNOWN;
constexpr AudioProcessingMode AudioProcessingMode_MAX = AUDIO_VOICE_DETECT_MODE;
constexpr int AudioProcessingMode_ARRAYSIZE = AudioProcessingMode_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AudioProcessingMode_descriptor();
template<typename T>
inline const std::string& AudioProcessingMode_Name(T enum_t_value) {
  static_assert(::std::is_same<T, AudioProcessingMode>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function AudioProcessingMode_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    AudioProcessingMode_descriptor(), enum_t_value);
}
inline bool AudioProcessingMode_Parse(
    const std::string& name, AudioProcessingMode* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<AudioProcessingMode>(
    AudioProcessingMode_descriptor(), name, value);
}
enum MasterVolumeLevel : int {
  VOLUME_LOW = 0,
  VOLUME_MEDIUM_LOW = 1,
  VOLUME_MEDIUM = 2,
  VOLUME_MEDIUM_HIGH = 3,
  VOLUME_HIGH = 4,
  MasterVolumeLevel_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  MasterVolumeLevel_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool MasterVolumeLevel_IsValid(int value);
constexpr MasterVolumeLevel MasterVolumeLevel_MIN = VOLUME_LOW;
constexpr MasterVolumeLevel MasterVolumeLevel_MAX = VOLUME_HIGH;
constexpr int MasterVolumeLevel_ARRAYSIZE = MasterVolumeLevel_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* MasterVolumeLevel_descriptor();
template<typename T>
inline const std::string& MasterVolumeLevel_Name(T enum_t_value) {
  static_assert(::std::is_same<T, MasterVolumeLevel>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function MasterVolumeLevel_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    MasterVolumeLevel_descriptor(), enum_t_value);
}
inline bool MasterVolumeLevel_Parse(
    const std::string& name, MasterVolumeLevel* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<MasterVolumeLevel>(
    MasterVolumeLevel_descriptor(), name, value);
}
enum OnboardingStages : int {
  NotStarted = 0,
  TimedOut = 1,
  Complete = 3,
  DevDoNothing = 4,
  OnboardingStages_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  OnboardingStages_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool OnboardingStages_IsValid(int value);
constexpr OnboardingStages OnboardingStages_MIN = NotStarted;
constexpr OnboardingStages OnboardingStages_MAX = DevDoNothing;
constexpr int OnboardingStages_ARRAYSIZE = OnboardingStages_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* OnboardingStages_descriptor();
template<typename T>
inline const std::string& OnboardingStages_Name(T enum_t_value) {
  static_assert(::std::is_same<T, OnboardingStages>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function OnboardingStages_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    OnboardingStages_descriptor(), enum_t_value);
}
inline bool OnboardingStages_Parse(
    const std::string& name, OnboardingStages* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<OnboardingStages>(
    OnboardingStages_descriptor(), name, value);
}
enum OnboardingPhase : int {
  InvalidPhase = 0,
  Default = 1,
  LookAtPhone = 2,
  WakeUp = 3,
  LookAtUser = 4,
  TeachWakeWord = 5,
  TeachComeHere = 6,
  TeachMeetVictor = 7,
  OnboardingPhase_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  OnboardingPhase_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool OnboardingPhase_IsValid(int value);
constexpr OnboardingPhase OnboardingPhase_MIN = InvalidPhase;
constexpr OnboardingPhase OnboardingPhase_MAX = TeachMeetVictor;
constexpr int OnboardingPhase_ARRAYSIZE = OnboardingPhase_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* OnboardingPhase_descriptor();
template<typename T>
inline const std::string& OnboardingPhase_Name(T enum_t_value) {
  static_assert(::std::is_same<T, OnboardingPhase>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function OnboardingPhase_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    OnboardingPhase_descriptor(), enum_t_value);
}
inline bool OnboardingPhase_Parse(
    const std::string& name, OnboardingPhase* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<OnboardingPhase>(
    OnboardingPhase_descriptor(), name, value);
}
enum OnboardingPhaseState : int {
  PhaseInvalid = 0,
  PhasePending = 1,
  PhaseInProgress = 2,
  PhaseComplete = 3,
  OnboardingPhaseState_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  OnboardingPhaseState_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool OnboardingPhaseState_IsValid(int value);
constexpr OnboardingPhaseState OnboardingPhaseState_MIN = PhaseInvalid;
constexpr OnboardingPhaseState OnboardingPhaseState_MAX = PhaseComplete;
constexpr int OnboardingPhaseState_ARRAYSIZE = OnboardingPhaseState_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* OnboardingPhaseState_descriptor();
template<typename T>
inline const std::string& OnboardingPhaseState_Name(T enum_t_value) {
  static_assert(::std::is_same<T, OnboardingPhaseState>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function OnboardingPhaseState_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    OnboardingPhaseState_descriptor(), enum_t_value);
}
inline bool OnboardingPhaseState_Parse(
    const std::string& name, OnboardingPhaseState* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<OnboardingPhaseState>(
    OnboardingPhaseState_descriptor(), name, value);
}
enum AttentionTransferReason : int {
  Invalid = 0,
  NoCloudConnection = 1,
  NoWifi = 2,
  UnmatchedIntent = 3,
  AttentionTransferReason_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  AttentionTransferReason_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool AttentionTransferReason_IsValid(int value);
constexpr AttentionTransferReason AttentionTransferReason_MIN = Invalid;
constexpr AttentionTransferReason AttentionTransferReason_MAX = UnmatchedIntent;
constexpr int AttentionTransferReason_ARRAYSIZE = AttentionTransferReason_MAX + 1;

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

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kNameFieldNumber = 1,
  };
  // string name = 1;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* 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_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_name(
      std::string* name);
  private:
  const std::string& _internal_name() const;
  void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  
  // Begin code inserted by Anki plugin.
  explicit AnimationTrigger( const std::string& name );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.AnimationTrigger)
 private:
  class _Internal;

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kNameFieldNumber = 1,
  };
  // string name = 1;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* 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_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_name(
      std::string* name);
  private:
  const std::string& _internal_name() const;
  void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  
  // Begin code inserted by Anki plugin.
  explicit Animation( const std::string& name );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.Animation)
 private:
  class _Internal;

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kLeftWheelMmpsFieldNumber = 1,
    kRightWheelMmpsFieldNumber = 2,
    kLeftWheelMmps2FieldNumber = 3,
    kRightWheelMmps2FieldNumber = 4,
  };
  // float left_wheel_mmps = 1;
  void clear_left_wheel_mmps();
  float left_wheel_mmps() const;
  void set_left_wheel_mmps(float value);
  private:
  float _internal_left_wheel_mmps() const;
  void _internal_set_left_wheel_mmps(float value);
  public:

  // float right_wheel_mmps = 2;
  void clear_right_wheel_mmps();
  float right_wheel_mmps() const;
  void set_right_wheel_mmps(float value);
  private:
  float _internal_right_wheel_mmps() const;
  void _internal_set_right_wheel_mmps(float value);
  public:

  // float left_wheel_mmps2 = 3;
  void clear_left_wheel_mmps2();
  float left_wheel_mmps2() const;
  void set_left_wheel_mmps2(float value);
  private:
  float _internal_left_wheel_mmps2() const;
  void _internal_set_left_wheel_mmps2(float value);
  public:

  // float right_wheel_mmps2 = 4;
  void clear_right_wheel_mmps2();
  float right_wheel_mmps2() const;
  void set_right_wheel_mmps2(float value);
  private:
  float _internal_right_wheel_mmps2() const;
  void _internal_set_right_wheel_mmps2(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  DriveWheelsRequest( float left_wheel_mmps, float right_wheel_mmps, float left_wheel_mmps2, float right_wheel_mmps2 );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DriveWheelsRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float left_wheel_mmps_;
  float right_wheel_mmps_;
  float left_wheel_mmps2_;
  float right_wheel_mmps2_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kSpeedRadPerSecFieldNumber = 1,
  };
  // float speed_rad_per_sec = 1;
  void clear_speed_rad_per_sec();
  float speed_rad_per_sec() const;
  void set_speed_rad_per_sec(float value);
  private:
  float _internal_speed_rad_per_sec() const;
  void _internal_set_speed_rad_per_sec(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit MoveHeadRequest( float speed_rad_per_sec );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.MoveHeadRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float speed_rad_per_sec_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kSpeedRadPerSecFieldNumber = 1,
  };
  // float speed_rad_per_sec = 1;
  void clear_speed_rad_per_sec();
  float speed_rad_per_sec() const;
  void set_speed_rad_per_sec(float value);
  private:
  float _internal_speed_rad_per_sec() const;
  void _internal_set_speed_rad_per_sec(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit MoveLiftRequest( float speed_rad_per_sec );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.MoveLiftRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float speed_rad_per_sec_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kAnimationTriggerFieldNumber = 1,
    kLoopsFieldNumber = 2,
    kUseLiftSafeFieldNumber = 3,
    kIgnoreBodyTrackFieldNumber = 4,
    kIgnoreHeadTrackFieldNumber = 5,
    kIgnoreLiftTrackFieldNumber = 6,
  };
  // .Anki.Vector.external_interface.AnimationTrigger animation_trigger = 1;
  bool has_animation_trigger() const;
  private:
  bool _internal_has_animation_trigger() const;
  public:
  void clear_animation_trigger();
  const ::Anki::Vector::external_interface::AnimationTrigger& animation_trigger() const;
  ::Anki::Vector::external_interface::AnimationTrigger* release_animation_trigger();
  ::Anki::Vector::external_interface::AnimationTrigger* mutable_animation_trigger();
  void set_allocated_animation_trigger(::Anki::Vector::external_interface::AnimationTrigger* animation_trigger);
  private:
  const ::Anki::Vector::external_interface::AnimationTrigger& _internal_animation_trigger() const;
  ::Anki::Vector::external_interface::AnimationTrigger* _internal_mutable_animation_trigger();
  public:
  void unsafe_arena_set_allocated_animation_trigger(
      ::Anki::Vector::external_interface::AnimationTrigger* animation_trigger);
  ::Anki::Vector::external_interface::AnimationTrigger* unsafe_arena_release_animation_trigger();

  // uint32 loops = 2;
  void clear_loops();
  ::PROTOBUF_NAMESPACE_ID::uint32 loops() const;
  void set_loops(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_loops() const;
  void _internal_set_loops(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // bool use_lift_safe = 3;
  void clear_use_lift_safe();
  bool use_lift_safe() const;
  void set_use_lift_safe(bool value);
  private:
  bool _internal_use_lift_safe() const;
  void _internal_set_use_lift_safe(bool value);
  public:

  // bool ignore_body_track = 4;
  void clear_ignore_body_track();
  bool ignore_body_track() const;
  void set_ignore_body_track(bool value);
  private:
  bool _internal_ignore_body_track() const;
  void _internal_set_ignore_body_track(bool value);
  public:

  // bool ignore_head_track = 5;
  void clear_ignore_head_track();
  bool ignore_head_track() const;
  void set_ignore_head_track(bool value);
  private:
  bool _internal_ignore_head_track() const;
  void _internal_set_ignore_head_track(bool value);
  public:

  // bool ignore_lift_track = 6;
  void clear_ignore_lift_track();
  bool ignore_lift_track() const;
  void set_ignore_lift_track(bool value);
  private:
  bool _internal_ignore_lift_track() const;
  void _internal_set_ignore_lift_track(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  PlayAnimationTriggerRequest( AnimationTrigger* animation_trigger, ::google::protobuf::uint32 loops, bool use_lift_safe, bool ignore_body_track, bool ignore_head_track, bool ignore_lift_track );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PlayAnimationTriggerRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::AnimationTrigger* animation_trigger_;
  ::PROTOBUF_NAMESPACE_ID::uint32 loops_;
  bool use_lift_safe_;
  bool ignore_body_track_;
  bool ignore_head_track_;
  bool ignore_lift_track_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kAnimationFieldNumber = 1,
    kLoopsFieldNumber = 2,
    kIgnoreBodyTrackFieldNumber = 3,
    kIgnoreHeadTrackFieldNumber = 4,
    kIgnoreLiftTrackFieldNumber = 5,
  };
  // .Anki.Vector.external_interface.Animation animation = 1;
  bool has_animation() const;
  private:
  bool _internal_has_animation() const;
  public:
  void clear_animation();
  const ::Anki::Vector::external_interface::Animation& animation() const;
  ::Anki::Vector::external_interface::Animation* release_animation();
  ::Anki::Vector::external_interface::Animation* mutable_animation();
  void set_allocated_animation(::Anki::Vector::external_interface::Animation* animation);
  private:
  const ::Anki::Vector::external_interface::Animation& _internal_animation() const;
  ::Anki::Vector::external_interface::Animation* _internal_mutable_animation();
  public:
  void unsafe_arena_set_allocated_animation(
      ::Anki::Vector::external_interface::Animation* animation);
  ::Anki::Vector::external_interface::Animation* unsafe_arena_release_animation();

  // uint32 loops = 2;
  void clear_loops();
  ::PROTOBUF_NAMESPACE_ID::uint32 loops() const;
  void set_loops(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_loops() const;
  void _internal_set_loops(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // bool ignore_body_track = 3;
  void clear_ignore_body_track();
  bool ignore_body_track() const;
  void set_ignore_body_track(bool value);
  private:
  bool _internal_ignore_body_track() const;
  void _internal_set_ignore_body_track(bool value);
  public:

  // bool ignore_head_track = 4;
  void clear_ignore_head_track();
  bool ignore_head_track() const;
  void set_ignore_head_track(bool value);
  private:
  bool _internal_ignore_head_track() const;
  void _internal_set_ignore_head_track(bool value);
  public:

  // bool ignore_lift_track = 5;
  void clear_ignore_lift_track();
  bool ignore_lift_track() const;
  void set_ignore_lift_track(bool value);
  private:
  bool _internal_ignore_lift_track() const;
  void _internal_set_ignore_lift_track(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  PlayAnimationRequest( Animation* animation, ::google::protobuf::uint32 loops, bool ignore_body_track, bool ignore_head_track, bool ignore_lift_track );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PlayAnimationRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::Animation* animation_;
  ::PROTOBUF_NAMESPACE_ID::uint32 loops_;
  bool ignore_body_track_;
  bool ignore_head_track_;
  bool ignore_lift_track_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kStatusFieldNumber = 1,
    kAnimationFieldNumber = 3,
    kResultFieldNumber = 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.Animation animation = 3;
  bool has_animation() const;
  private:
  bool _internal_has_animation() const;
  public:
  void clear_animation();
  const ::Anki::Vector::external_interface::Animation& animation() const;
  ::Anki::Vector::external_interface::Animation* release_animation();
  ::Anki::Vector::external_interface::Animation* mutable_animation();
  void set_allocated_animation(::Anki::Vector::external_interface::Animation* animation);
  private:
  const ::Anki::Vector::external_interface::Animation& _internal_animation() const;
  ::Anki::Vector::external_interface::Animation* _internal_mutable_animation();
  public:
  void unsafe_arena_set_allocated_animation(
      ::Anki::Vector::external_interface::Animation* animation);
  ::Anki::Vector::external_interface::Animation* unsafe_arena_release_animation();

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  void clear_result();
  ::Anki::Vector::external_interface::BehaviorResults result() const;
  void set_result(::Anki::Vector::external_interface::BehaviorResults value);
  private:
  ::Anki::Vector::external_interface::BehaviorResults _internal_result() const;
  void _internal_set_result(::Anki::Vector::external_interface::BehaviorResults value);
  public:

  
  // Begin code inserted by Anki plugin.
  PlayAnimationResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result, Animation* animation );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PlayAnimationResponse)
 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::Animation* animation_;
  int result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kAnimationNamesFieldNumber = 2,
    kStatusFieldNumber = 1,
  };
  // repeated .Anki.Vector.external_interface.Animation animation_names = 2;
  int animation_names_size() const;
  private:
  int _internal_animation_names_size() const;
  public:
  void clear_animation_names();
  ::Anki::Vector::external_interface::Animation* mutable_animation_names(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::Animation >*
      mutable_animation_names();
  private:
  const ::Anki::Vector::external_interface::Animation& _internal_animation_names(int index) const;
  ::Anki::Vector::external_interface::Animation* _internal_add_animation_names();
  public:
  const ::Anki::Vector::external_interface::Animation& animation_names(int index) const;
  ::Anki::Vector::external_interface::Animation* add_animation_names();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::Animation >&
      animation_names() const;

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kAnimationTriggerNamesFieldNumber = 2,
    kStatusFieldNumber = 1,
  };
  // repeated .Anki.Vector.external_interface.AnimationTrigger animation_trigger_names = 2;
  int animation_trigger_names_size() const;
  private:
  int _internal_animation_trigger_names_size() const;
  public:
  void clear_animation_trigger_names();
  ::Anki::Vector::external_interface::AnimationTrigger* mutable_animation_trigger_names(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::AnimationTrigger >*
      mutable_animation_trigger_names();
  private:
  const ::Anki::Vector::external_interface::AnimationTrigger& _internal_animation_trigger_names(int index) const;
  ::Anki::Vector::external_interface::AnimationTrigger* _internal_add_animation_trigger_names();
  public:
  const ::Anki::Vector::external_interface::AnimationTrigger& animation_trigger_names(int index) const;
  ::Anki::Vector::external_interface::AnimationTrigger* add_animation_trigger_names();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::AnimationTrigger >&
      animation_trigger_names() const;

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kFaceDataFieldNumber = 1,
    kDurationMsFieldNumber = 2,
    kInterruptRunningFieldNumber = 3,
  };
  // bytes face_data = 1;
  void clear_face_data();
  const std::string& face_data() const;
  void set_face_data(const std::string& value);
  void set_face_data(std::string&& value);
  void set_face_data(const char* value);
  void set_face_data(const void* value, size_t size);
  std::string* mutable_face_data();
  std::string* release_face_data();
  void set_allocated_face_data(std::string* face_data);
  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_face_data();
  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_face_data(
      std::string* face_data);
  private:
  const std::string& _internal_face_data() const;
  void _internal_set_face_data(const std::string& value);
  std::string* _internal_mutable_face_data();
  public:

  // uint32 duration_ms = 2;
  void clear_duration_ms();
  ::PROTOBUF_NAMESPACE_ID::uint32 duration_ms() const;
  void set_duration_ms(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_duration_ms() const;
  void _internal_set_duration_ms(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // bool interrupt_running = 3;
  void clear_interrupt_running();
  bool interrupt_running() const;
  void set_interrupt_running(bool value);
  private:
  bool _internal_interrupt_running() const;
  void _internal_set_interrupt_running(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  DisplayFaceImageRGBRequest( const std::string& face_data, ::google::protobuf::uint32 duration_ms, bool interrupt_running );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DisplayFaceImageRGBRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr face_data_;
  ::PROTOBUF_NAMESPACE_ID::uint32 duration_ms_;
  bool interrupt_running_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

  enum StatusTypeCase {
    kFeatureStatus = 1,
    kMeetVictorFaceScanStarted = 2,
    kMeetVictorFaceScanComplete = 3,
    kFaceEnrollmentCompleted = 4,
    STATUS_TYPE_NOT_SET = 0,
  };

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

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

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

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

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

  public:

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

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

  enum : int {
    kFeatureStatusFieldNumber = 1,
    kMeetVictorFaceScanStartedFieldNumber = 2,
    kMeetVictorFaceScanCompleteFieldNumber = 3,
    kFaceEnrollmentCompletedFieldNumber = 4,
  };
  // .Anki.Vector.external_interface.FeatureStatus feature_status = 1;
  bool has_feature_status() const;
  private:
  bool _internal_has_feature_status() const;
  public:
  void clear_feature_status();
  const ::Anki::Vector::external_interface::FeatureStatus& feature_status() const;
  ::Anki::Vector::external_interface::FeatureStatus* release_feature_status();
  ::Anki::Vector::external_interface::FeatureStatus* mutable_feature_status();
  void set_allocated_feature_status(::Anki::Vector::external_interface::FeatureStatus* feature_status);
  private:
  const ::Anki::Vector::external_interface::FeatureStatus& _internal_feature_status() const;
  ::Anki::Vector::external_interface::FeatureStatus* _internal_mutable_feature_status();
  public:
  void unsafe_arena_set_allocated_feature_status(
      ::Anki::Vector::external_interface::FeatureStatus* feature_status);
  ::Anki::Vector::external_interface::FeatureStatus* unsafe_arena_release_feature_status();

  // .Anki.Vector.external_interface.MeetVictorFaceScanStarted meet_victor_face_scan_started = 2;
  bool has_meet_victor_face_scan_started() const;
  private:
  bool _internal_has_meet_victor_face_scan_started() const;
  public:
  void clear_meet_victor_face_scan_started();
  const ::Anki::Vector::external_interface::MeetVictorFaceScanStarted& meet_victor_face_scan_started() const;
  ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* release_meet_victor_face_scan_started();
  ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* mutable_meet_victor_face_scan_started();
  void set_allocated_meet_victor_face_scan_started(::Anki::Vector::external_interface::MeetVictorFaceScanStarted* meet_victor_face_scan_started);
  private:
  const ::Anki::Vector::external_interface::MeetVictorFaceScanStarted& _internal_meet_victor_face_scan_started() const;
  ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* _internal_mutable_meet_victor_face_scan_started();
  public:
  void unsafe_arena_set_allocated_meet_victor_face_scan_started(
      ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* meet_victor_face_scan_started);
  ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* unsafe_arena_release_meet_victor_face_scan_started();

  // .Anki.Vector.external_interface.MeetVictorFaceScanComplete meet_victor_face_scan_complete = 3;
  bool has_meet_victor_face_scan_complete() const;
  private:
  bool _internal_has_meet_victor_face_scan_complete() const;
  public:
  void clear_meet_victor_face_scan_complete();
  const ::Anki::Vector::external_interface::MeetVictorFaceScanComplete& meet_victor_face_scan_complete() const;
  ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* release_meet_victor_face_scan_complete();
  ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* mutable_meet_victor_face_scan_complete();
  void set_allocated_meet_victor_face_scan_complete(::Anki::Vector::external_interface::MeetVictorFaceScanComplete* meet_victor_face_scan_complete);
  private:
  const ::Anki::Vector::external_interface::MeetVictorFaceScanComplete& _internal_meet_victor_face_scan_complete() const;
  ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* _internal_mutable_meet_victor_face_scan_complete();
  public:
  void unsafe_arena_set_allocated_meet_victor_face_scan_complete(
      ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* meet_victor_face_scan_complete);
  ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* unsafe_arena_release_meet_victor_face_scan_complete();

  // .Anki.Vector.external_interface.FaceEnrollmentCompleted face_enrollment_completed = 4;
  bool has_face_enrollment_completed() const;
  private:
  bool _internal_has_face_enrollment_completed() const;
  public:
  void clear_face_enrollment_completed();
  const ::Anki::Vector::external_interface::FaceEnrollmentCompleted& face_enrollment_completed() const;
  ::Anki::Vector::external_interface::FaceEnrollmentCompleted* release_face_enrollment_completed();
  ::Anki::Vector::external_interface::FaceEnrollmentCompleted* mutable_face_enrollment_completed();
  void set_allocated_face_enrollment_completed(::Anki::Vector::external_interface::FaceEnrollmentCompleted* face_enrollment_completed);
  private:
  const ::Anki::Vector::external_interface::FaceEnrollmentCompleted& _internal_face_enrollment_completed() const;
  ::Anki::Vector::external_interface::FaceEnrollmentCompleted* _internal_mutable_face_enrollment_completed();
  public:
  void unsafe_arena_set_allocated_face_enrollment_completed(
      ::Anki::Vector::external_interface::FaceEnrollmentCompleted* face_enrollment_completed);
  ::Anki::Vector::external_interface::FaceEnrollmentCompleted* unsafe_arena_release_face_enrollment_completed();

  void clear_status_type();
  StatusTypeCase status_type_case() const;
  
  // Begin code inserted by Anki plugin.
  explicit Status( FeatureStatus* feature_status );
  explicit Status( MeetVictorFaceScanStarted* meet_victor_face_scan_started );
  explicit Status( MeetVictorFaceScanComplete* meet_victor_face_scan_complete );
  explicit Status( FaceEnrollmentCompleted* face_enrollment_completed );
  // End code inserted by Anki plugin.
  
  
  // Begin code inserted by Anki plugin.
  inline ::Anki::Vector::external_interface::StatusTag GetTag() const {
    return static_cast<::Anki::Vector::external_interface::StatusTag>( _oneof_case_[0] );
  }
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.Status)
 private:
  class _Internal;
  void set_has_feature_status();
  void set_has_meet_victor_face_scan_started();
  void set_has_meet_victor_face_scan_complete();
  void set_has_face_enrollment_completed();

  inline bool has_status_type() const;
  inline void clear_has_status_type();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  union StatusTypeUnion {
    StatusTypeUnion() {}
    ::Anki::Vector::external_interface::FeatureStatus* feature_status_;
    ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* meet_victor_face_scan_started_;
    ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* meet_victor_face_scan_complete_;
    ::Anki::Vector::external_interface::FaceEnrollmentCompleted* face_enrollment_completed_;
  } status_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  enum WakeWordTypeCase {
    kWakeWordBegin = 1,
    kWakeWordEnd = 2,
    WAKE_WORD_TYPE_NOT_SET = 0,
  };

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

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

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

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

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

  public:

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

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

  enum : int {
    kWakeWordBeginFieldNumber = 1,
    kWakeWordEndFieldNumber = 2,
  };
  // .Anki.Vector.external_interface.WakeWordBegin wake_word_begin = 1;
  bool has_wake_word_begin() const;
  private:
  bool _internal_has_wake_word_begin() const;
  public:
  void clear_wake_word_begin();
  const ::Anki::Vector::external_interface::WakeWordBegin& wake_word_begin() const;
  ::Anki::Vector::external_interface::WakeWordBegin* release_wake_word_begin();
  ::Anki::Vector::external_interface::WakeWordBegin* mutable_wake_word_begin();
  void set_allocated_wake_word_begin(::Anki::Vector::external_interface::WakeWordBegin* wake_word_begin);
  private:
  const ::Anki::Vector::external_interface::WakeWordBegin& _internal_wake_word_begin() const;
  ::Anki::Vector::external_interface::WakeWordBegin* _internal_mutable_wake_word_begin();
  public:
  void unsafe_arena_set_allocated_wake_word_begin(
      ::Anki::Vector::external_interface::WakeWordBegin* wake_word_begin);
  ::Anki::Vector::external_interface::WakeWordBegin* unsafe_arena_release_wake_word_begin();

  // .Anki.Vector.external_interface.WakeWordEnd wake_word_end = 2;
  bool has_wake_word_end() const;
  private:
  bool _internal_has_wake_word_end() const;
  public:
  void clear_wake_word_end();
  const ::Anki::Vector::external_interface::WakeWordEnd& wake_word_end() const;
  ::Anki::Vector::external_interface::WakeWordEnd* release_wake_word_end();
  ::Anki::Vector::external_interface::WakeWordEnd* mutable_wake_word_end();
  void set_allocated_wake_word_end(::Anki::Vector::external_interface::WakeWordEnd* wake_word_end);
  private:
  const ::Anki::Vector::external_interface::WakeWordEnd& _internal_wake_word_end() const;
  ::Anki::Vector::external_interface::WakeWordEnd* _internal_mutable_wake_word_end();
  public:
  void unsafe_arena_set_allocated_wake_word_end(
      ::Anki::Vector::external_interface::WakeWordEnd* wake_word_end);
  ::Anki::Vector::external_interface::WakeWordEnd* unsafe_arena_release_wake_word_end();

  void clear_wake_word_type();
  WakeWordTypeCase wake_word_type_case() const;
  
  // Begin code inserted by Anki plugin.
  explicit WakeWord( WakeWordBegin* wake_word_begin );
  explicit WakeWord( WakeWordEnd* wake_word_end );
  // End code inserted by Anki plugin.
  
  
  // Begin code inserted by Anki plugin.
  inline ::Anki::Vector::external_interface::WakeWordTag GetTag() const {
    return static_cast<::Anki::Vector::external_interface::WakeWordTag>( _oneof_case_[0] );
  }
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.WakeWord)
 private:
  class _Internal;
  void set_has_wake_word_begin();
  void set_has_wake_word_end();

  inline bool has_wake_word_type() const;
  inline void clear_has_wake_word_type();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  union WakeWordTypeUnion {
    WakeWordTypeUnion() {}
    ::Anki::Vector::external_interface::WakeWordBegin* wake_word_begin_;
    ::Anki::Vector::external_interface::WakeWordEnd* wake_word_end_;
  } wake_word_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

  // uint32 timestamp_utc = 2;
  void clear_timestamp_utc();
  ::PROTOBUF_NAMESPACE_ID::uint32 timestamp_utc() const;
  void set_timestamp_utc(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_timestamp_utc() const;
  void _internal_set_timestamp_utc(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  TimeStampedStatus( Status* status, ::google::protobuf::uint32 timestamp_utc );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.TimeStampedStatus)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::Status* status_;
  ::PROTOBUF_NAMESPACE_ID::uint32 timestamp_utc_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kXFieldNumber = 1,
    kYFieldNumber = 2,
    kZFieldNumber = 3,
    kQ0FieldNumber = 4,
    kQ1FieldNumber = 5,
    kQ2FieldNumber = 6,
    kQ3FieldNumber = 7,
    kOriginIdFieldNumber = 8,
  };
  // float x = 1;
  void clear_x();
  float x() const;
  void set_x(float value);
  private:
  float _internal_x() const;
  void _internal_set_x(float value);
  public:

  // float y = 2;
  void clear_y();
  float y() const;
  void set_y(float value);
  private:
  float _internal_y() const;
  void _internal_set_y(float value);
  public:

  // float z = 3;
  void clear_z();
  float z() const;
  void set_z(float value);
  private:
  float _internal_z() const;
  void _internal_set_z(float value);
  public:

  // float q0 = 4;
  void clear_q0();
  float q0() const;
  void set_q0(float value);
  private:
  float _internal_q0() const;
  void _internal_set_q0(float value);
  public:

  // float q1 = 5;
  void clear_q1();
  float q1() const;
  void set_q1(float value);
  private:
  float _internal_q1() const;
  void _internal_set_q1(float value);
  public:

  // float q2 = 6;
  void clear_q2();
  float q2() const;
  void set_q2(float value);
  private:
  float _internal_q2() const;
  void _internal_set_q2(float value);
  public:

  // float q3 = 7;
  void clear_q3();
  float q3() const;
  void set_q3(float value);
  private:
  float _internal_q3() const;
  void _internal_set_q3(float value);
  public:

  // uint32 origin_id = 8;
  void clear_origin_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 origin_id() const;
  void set_origin_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_origin_id() const;
  void _internal_set_origin_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  PoseStruct( float x, float y, float z, float q0, float q1, float q2, float q3, ::google::protobuf::uint32 origin_id );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PoseStruct)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float x_;
  float y_;
  float z_;
  float q0_;
  float q1_;
  float q2_;
  float q3_;
  ::PROTOBUF_NAMESPACE_ID::uint32 origin_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kXFieldNumber = 1,
    kYFieldNumber = 2,
    kZFieldNumber = 3,
  };
  // float x = 1;
  void clear_x();
  float x() const;
  void set_x(float value);
  private:
  float _internal_x() const;
  void _internal_set_x(float value);
  public:

  // float y = 2;
  void clear_y();
  float y() const;
  void set_y(float value);
  private:
  float _internal_y() const;
  void _internal_set_y(float value);
  public:

  // float z = 3;
  void clear_z();
  float z() const;
  void set_z(float value);
  private:
  float _internal_z() const;
  void _internal_set_z(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  AccelData( float x, float y, float z );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.AccelData)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float x_;
  float y_;
  float z_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kXFieldNumber = 1,
    kYFieldNumber = 2,
    kZFieldNumber = 3,
  };
  // float x = 1;
  void clear_x();
  float x() const;
  void set_x(float value);
  private:
  float _internal_x() const;
  void _internal_set_x(float value);
  public:

  // float y = 2;
  void clear_y();
  float y() const;
  void set_y(float value);
  private:
  float _internal_y() const;
  void _internal_set_y(float value);
  public:

  // float z = 3;
  void clear_z();
  float z() const;
  void set_z(float value);
  private:
  float _internal_z() const;
  void _internal_set_z(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  GyroData( float x, float y, float z );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.GyroData)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float x_;
  float y_;
  float z_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kDistanceMmFieldNumber = 1,
    kSignalQualityFieldNumber = 2,
    kUnobstructedFieldNumber = 3,
    kFoundObjectFieldNumber = 4,
    kIsLiftInFovFieldNumber = 5,
  };
  // uint32 distance_mm = 1;
  void clear_distance_mm();
  ::PROTOBUF_NAMESPACE_ID::uint32 distance_mm() const;
  void set_distance_mm(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_distance_mm() const;
  void _internal_set_distance_mm(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // float signal_quality = 2;
  void clear_signal_quality();
  float signal_quality() const;
  void set_signal_quality(float value);
  private:
  float _internal_signal_quality() const;
  void _internal_set_signal_quality(float value);
  public:

  // bool unobstructed = 3;
  void clear_unobstructed();
  bool unobstructed() const;
  void set_unobstructed(bool value);
  private:
  bool _internal_unobstructed() const;
  void _internal_set_unobstructed(bool value);
  public:

  // bool found_object = 4;
  void clear_found_object();
  bool found_object() const;
  void set_found_object(bool value);
  private:
  bool _internal_found_object() const;
  void _internal_set_found_object(bool value);
  public:

  // bool is_lift_in_fov = 5;
  void clear_is_lift_in_fov();
  bool is_lift_in_fov() const;
  void set_is_lift_in_fov(bool value);
  private:
  bool _internal_is_lift_in_fov() const;
  void _internal_set_is_lift_in_fov(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  ProxData( ::google::protobuf::uint32 distance_mm, float signal_quality, bool unobstructed, bool found_object, bool is_lift_in_fov );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ProxData)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::uint32 distance_mm_;
  float signal_quality_;
  bool unobstructed_;
  bool found_object_;
  bool is_lift_in_fov_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kRawTouchValueFieldNumber = 1,
    kIsBeingTouchedFieldNumber = 2,
  };
  // uint32 raw_touch_value = 1;
  void clear_raw_touch_value();
  ::PROTOBUF_NAMESPACE_ID::uint32 raw_touch_value() const;
  void set_raw_touch_value(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_raw_touch_value() const;
  void _internal_set_raw_touch_value(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // bool is_being_touched = 2;
  void clear_is_being_touched();
  bool is_being_touched() const;
  void set_is_being_touched(bool value);
  private:
  bool _internal_is_being_touched() const;
  void _internal_set_is_being_touched(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  TouchData( ::google::protobuf::uint32 raw_touch_value, bool is_being_touched );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.TouchData)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::uint32 raw_touch_value_;
  bool is_being_touched_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kPoseFieldNumber = 1,
    kAccelFieldNumber = 8,
    kGyroFieldNumber = 9,
    kProxDataFieldNumber = 16,
    kTouchDataFieldNumber = 17,
    kPoseAngleRadFieldNumber = 2,
    kPosePitchRadFieldNumber = 3,
    kLeftWheelSpeedMmpsFieldNumber = 4,
    kRightWheelSpeedMmpsFieldNumber = 5,
    kHeadAngleRadFieldNumber = 6,
    kLiftHeightMmFieldNumber = 7,
    kCarryingObjectIdFieldNumber = 10,
    kCarryingObjectOnTopIdFieldNumber = 11,
    kHeadTrackingObjectIdFieldNumber = 12,
    kLocalizedToObjectIdFieldNumber = 13,
    kLastImageTimeStampFieldNumber = 14,
    kStatusFieldNumber = 15,
  };
  // .Anki.Vector.external_interface.PoseStruct pose = 1;
  bool has_pose() const;
  private:
  bool _internal_has_pose() const;
  public:
  void clear_pose();
  const ::Anki::Vector::external_interface::PoseStruct& pose() const;
  ::Anki::Vector::external_interface::PoseStruct* release_pose();
  ::Anki::Vector::external_interface::PoseStruct* mutable_pose();
  void set_allocated_pose(::Anki::Vector::external_interface::PoseStruct* pose);
  private:
  const ::Anki::Vector::external_interface::PoseStruct& _internal_pose() const;
  ::Anki::Vector::external_interface::PoseStruct* _internal_mutable_pose();
  public:
  void unsafe_arena_set_allocated_pose(
      ::Anki::Vector::external_interface::PoseStruct* pose);
  ::Anki::Vector::external_interface::PoseStruct* unsafe_arena_release_pose();

  // .Anki.Vector.external_interface.AccelData accel = 8;
  bool has_accel() const;
  private:
  bool _internal_has_accel() const;
  public:
  void clear_accel();
  const ::Anki::Vector::external_interface::AccelData& accel() const;
  ::Anki::Vector::external_interface::AccelData* release_accel();
  ::Anki::Vector::external_interface::AccelData* mutable_accel();
  void set_allocated_accel(::Anki::Vector::external_interface::AccelData* accel);
  private:
  const ::Anki::Vector::external_interface::AccelData& _internal_accel() const;
  ::Anki::Vector::external_interface::AccelData* _internal_mutable_accel();
  public:
  void unsafe_arena_set_allocated_accel(
      ::Anki::Vector::external_interface::AccelData* accel);
  ::Anki::Vector::external_interface::AccelData* unsafe_arena_release_accel();

  // .Anki.Vector.external_interface.GyroData gyro = 9;
  bool has_gyro() const;
  private:
  bool _internal_has_gyro() const;
  public:
  void clear_gyro();
  const ::Anki::Vector::external_interface::GyroData& gyro() const;
  ::Anki::Vector::external_interface::GyroData* release_gyro();
  ::Anki::Vector::external_interface::GyroData* mutable_gyro();
  void set_allocated_gyro(::Anki::Vector::external_interface::GyroData* gyro);
  private:
  const ::Anki::Vector::external_interface::GyroData& _internal_gyro() const;
  ::Anki::Vector::external_interface::GyroData* _internal_mutable_gyro();
  public:
  void unsafe_arena_set_allocated_gyro(
      ::Anki::Vector::external_interface::GyroData* gyro);
  ::Anki::Vector::external_interface::GyroData* unsafe_arena_release_gyro();

  // .Anki.Vector.external_interface.ProxData prox_data = 16;
  bool has_prox_data() const;
  private:
  bool _internal_has_prox_data() const;
  public:
  void clear_prox_data();
  const ::Anki::Vector::external_interface::ProxData& prox_data() const;
  ::Anki::Vector::external_interface::ProxData* release_prox_data();
  ::Anki::Vector::external_interface::ProxData* mutable_prox_data();
  void set_allocated_prox_data(::Anki::Vector::external_interface::ProxData* prox_data);
  private:
  const ::Anki::Vector::external_interface::ProxData& _internal_prox_data() const;
  ::Anki::Vector::external_interface::ProxData* _internal_mutable_prox_data();
  public:
  void unsafe_arena_set_allocated_prox_data(
      ::Anki::Vector::external_interface::ProxData* prox_data);
  ::Anki::Vector::external_interface::ProxData* unsafe_arena_release_prox_data();

  // .Anki.Vector.external_interface.TouchData touch_data = 17;
  bool has_touch_data() const;
  private:
  bool _internal_has_touch_data() const;
  public:
  void clear_touch_data();
  const ::Anki::Vector::external_interface::TouchData& touch_data() const;
  ::Anki::Vector::external_interface::TouchData* release_touch_data();
  ::Anki::Vector::external_interface::TouchData* mutable_touch_data();
  void set_allocated_touch_data(::Anki::Vector::external_interface::TouchData* touch_data);
  private:
  const ::Anki::Vector::external_interface::TouchData& _internal_touch_data() const;
  ::Anki::Vector::external_interface::TouchData* _internal_mutable_touch_data();
  public:
  void unsafe_arena_set_allocated_touch_data(
      ::Anki::Vector::external_interface::TouchData* touch_data);
  ::Anki::Vector::external_interface::TouchData* unsafe_arena_release_touch_data();

  // float pose_angle_rad = 2;
  void clear_pose_angle_rad();
  float pose_angle_rad() const;
  void set_pose_angle_rad(float value);
  private:
  float _internal_pose_angle_rad() const;
  void _internal_set_pose_angle_rad(float value);
  public:

  // float pose_pitch_rad = 3;
  void clear_pose_pitch_rad();
  float pose_pitch_rad() const;
  void set_pose_pitch_rad(float value);
  private:
  float _internal_pose_pitch_rad() const;
  void _internal_set_pose_pitch_rad(float value);
  public:

  // float left_wheel_speed_mmps = 4;
  void clear_left_wheel_speed_mmps();
  float left_wheel_speed_mmps() const;
  void set_left_wheel_speed_mmps(float value);
  private:
  float _internal_left_wheel_speed_mmps() const;
  void _internal_set_left_wheel_speed_mmps(float value);
  public:

  // float right_wheel_speed_mmps = 5;
  void clear_right_wheel_speed_mmps();
  float right_wheel_speed_mmps() const;
  void set_right_wheel_speed_mmps(float value);
  private:
  float _internal_right_wheel_speed_mmps() const;
  void _internal_set_right_wheel_speed_mmps(float value);
  public:

  // float head_angle_rad = 6;
  void clear_head_angle_rad();
  float head_angle_rad() const;
  void set_head_angle_rad(float value);
  private:
  float _internal_head_angle_rad() const;
  void _internal_set_head_angle_rad(float value);
  public:

  // float lift_height_mm = 7;
  void clear_lift_height_mm();
  float lift_height_mm() const;
  void set_lift_height_mm(float value);
  private:
  float _internal_lift_height_mm() const;
  void _internal_set_lift_height_mm(float value);
  public:

  // int32 carrying_object_id = 10;
  void clear_carrying_object_id();
  ::PROTOBUF_NAMESPACE_ID::int32 carrying_object_id() const;
  void set_carrying_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_carrying_object_id() const;
  void _internal_set_carrying_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 carrying_object_on_top_id = 11;
  void clear_carrying_object_on_top_id();
  ::PROTOBUF_NAMESPACE_ID::int32 carrying_object_on_top_id() const;
  void set_carrying_object_on_top_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_carrying_object_on_top_id() const;
  void _internal_set_carrying_object_on_top_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 head_tracking_object_id = 12;
  void clear_head_tracking_object_id();
  ::PROTOBUF_NAMESPACE_ID::int32 head_tracking_object_id() const;
  void set_head_tracking_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_head_tracking_object_id() const;
  void _internal_set_head_tracking_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 localized_to_object_id = 13;
  void clear_localized_to_object_id();
  ::PROTOBUF_NAMESPACE_ID::int32 localized_to_object_id() const;
  void set_localized_to_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_localized_to_object_id() const;
  void _internal_set_localized_to_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // uint32 last_image_time_stamp = 14;
  void clear_last_image_time_stamp();
  ::PROTOBUF_NAMESPACE_ID::uint32 last_image_time_stamp() const;
  void set_last_image_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_last_image_time_stamp() const;
  void _internal_set_last_image_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 status = 15;
  void clear_status();
  ::PROTOBUF_NAMESPACE_ID::uint32 status() const;
  void set_status(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_status() const;
  void _internal_set_status(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  RobotState( PoseStruct* pose, float pose_angle_rad, float pose_pitch_rad, float left_wheel_speed_mmps, float right_wheel_speed_mmps, float head_angle_rad, float lift_height_mm, AccelData* accel, GyroData* gyro, ::google::protobuf::int32 carrying_object_id, ::google::protobuf::int32 carrying_object_on_top_id, ::google::protobuf::int32 head_tracking_object_id, ::google::protobuf::int32 localized_to_object_id, ::google::protobuf::uint32 last_image_time_stamp, ::google::protobuf::uint32 status, ProxData* prox_data, TouchData* touch_data );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.RobotState)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::PoseStruct* pose_;
  ::Anki::Vector::external_interface::AccelData* accel_;
  ::Anki::Vector::external_interface::GyroData* gyro_;
  ::Anki::Vector::external_interface::ProxData* prox_data_;
  ::Anki::Vector::external_interface::TouchData* touch_data_;
  float pose_angle_rad_;
  float pose_pitch_rad_;
  float left_wheel_speed_mmps_;
  float right_wheel_speed_mmps_;
  float head_angle_rad_;
  float lift_height_mm_;
  ::PROTOBUF_NAMESPACE_ID::int32 carrying_object_id_;
  ::PROTOBUF_NAMESPACE_ID::int32 carrying_object_on_top_id_;
  ::PROTOBUF_NAMESPACE_ID::int32 head_tracking_object_id_;
  ::PROTOBUF_NAMESPACE_ID::int32 localized_to_object_id_;
  ::PROTOBUF_NAMESPACE_ID::uint32 last_image_time_stamp_;
  ::PROTOBUF_NAMESPACE_ID::uint32 status_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kXFieldNumber = 1,
    kYFieldNumber = 2,
  };
  // float x = 1;
  void clear_x();
  float x() const;
  void set_x(float value);
  private:
  float _internal_x() const;
  void _internal_set_x(float value);
  public:

  // float y = 2;
  void clear_y();
  float y() const;
  void set_y(float value);
  private:
  float _internal_y() const;
  void _internal_set_y(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  CladPoint( float x, float y );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CladPoint)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float x_;
  float y_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kXTopLeftFieldNumber = 1,
    kYTopLeftFieldNumber = 2,
    kWidthFieldNumber = 3,
    kHeightFieldNumber = 4,
  };
  // float x_top_left = 1;
  void clear_x_top_left();
  float x_top_left() const;
  void set_x_top_left(float value);
  private:
  float _internal_x_top_left() const;
  void _internal_set_x_top_left(float value);
  public:

  // float y_top_left = 2;
  void clear_y_top_left();
  float y_top_left() const;
  void set_y_top_left(float value);
  private:
  float _internal_y_top_left() const;
  void _internal_set_y_top_left(float value);
  public:

  // float width = 3;
  void clear_width();
  float width() const;
  void set_width(float value);
  private:
  float _internal_width() const;
  void _internal_set_width(float value);
  public:

  // float height = 4;
  void clear_height();
  float height() const;
  void set_height(float value);
  private:
  float _internal_height() const;
  void _internal_set_height(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  CladRect( float x_top_left, float y_top_left, float width, float height );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CladRect)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float x_top_left_;
  float y_top_left_;
  float width_;
  float height_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kTimestampFieldNumber = 1,
    kImgAreaFieldNumber = 2,
    kImgXFieldNumber = 3,
    kImgYFieldNumber = 4,
    kGroundAreaFieldNumber = 5,
    kGroundXFieldNumber = 6,
    kGroundYFieldNumber = 7,
    kTopImgAreaFieldNumber = 8,
    kTopImgXFieldNumber = 9,
    kTopImgYFieldNumber = 10,
    kBottomImgAreaFieldNumber = 11,
    kBottomImgXFieldNumber = 12,
    kBottomImgYFieldNumber = 13,
    kLeftImgAreaFieldNumber = 14,
    kLeftImgXFieldNumber = 15,
    kLeftImgYFieldNumber = 16,
    kRightImgAreaFieldNumber = 17,
    kRightImgXFieldNumber = 18,
    kRightImgYFieldNumber = 19,
  };
  // uint32 timestamp = 1;
  void clear_timestamp();
  ::PROTOBUF_NAMESPACE_ID::uint32 timestamp() const;
  void set_timestamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_timestamp() const;
  void _internal_set_timestamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // float img_area = 2;
  void clear_img_area();
  float img_area() const;
  void set_img_area(float value);
  private:
  float _internal_img_area() const;
  void _internal_set_img_area(float value);
  public:

  // int32 img_x = 3;
  void clear_img_x();
  ::PROTOBUF_NAMESPACE_ID::int32 img_x() const;
  void set_img_x(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_img_x() const;
  void _internal_set_img_x(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 img_y = 4;
  void clear_img_y();
  ::PROTOBUF_NAMESPACE_ID::int32 img_y() const;
  void set_img_y(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_img_y() const;
  void _internal_set_img_y(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // float ground_area = 5;
  void clear_ground_area();
  float ground_area() const;
  void set_ground_area(float value);
  private:
  float _internal_ground_area() const;
  void _internal_set_ground_area(float value);
  public:

  // int32 ground_x = 6;
  void clear_ground_x();
  ::PROTOBUF_NAMESPACE_ID::int32 ground_x() const;
  void set_ground_x(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_ground_x() const;
  void _internal_set_ground_x(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 ground_y = 7;
  void clear_ground_y();
  ::PROTOBUF_NAMESPACE_ID::int32 ground_y() const;
  void set_ground_y(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_ground_y() const;
  void _internal_set_ground_y(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // float top_img_area = 8;
  void clear_top_img_area();
  float top_img_area() const;
  void set_top_img_area(float value);
  private:
  float _internal_top_img_area() const;
  void _internal_set_top_img_area(float value);
  public:

  // int32 top_img_x = 9;
  void clear_top_img_x();
  ::PROTOBUF_NAMESPACE_ID::int32 top_img_x() const;
  void set_top_img_x(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_top_img_x() const;
  void _internal_set_top_img_x(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 top_img_y = 10;
  void clear_top_img_y();
  ::PROTOBUF_NAMESPACE_ID::int32 top_img_y() const;
  void set_top_img_y(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_top_img_y() const;
  void _internal_set_top_img_y(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // float bottom_img_area = 11;
  void clear_bottom_img_area();
  float bottom_img_area() const;
  void set_bottom_img_area(float value);
  private:
  float _internal_bottom_img_area() const;
  void _internal_set_bottom_img_area(float value);
  public:

  // int32 bottom_img_x = 12;
  void clear_bottom_img_x();
  ::PROTOBUF_NAMESPACE_ID::int32 bottom_img_x() const;
  void set_bottom_img_x(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_bottom_img_x() const;
  void _internal_set_bottom_img_x(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 bottom_img_y = 13;
  void clear_bottom_img_y();
  ::PROTOBUF_NAMESPACE_ID::int32 bottom_img_y() const;
  void set_bottom_img_y(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_bottom_img_y() const;
  void _internal_set_bottom_img_y(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // float left_img_area = 14;
  void clear_left_img_area();
  float left_img_area() const;
  void set_left_img_area(float value);
  private:
  float _internal_left_img_area() const;
  void _internal_set_left_img_area(float value);
  public:

  // int32 left_img_x = 15;
  void clear_left_img_x();
  ::PROTOBUF_NAMESPACE_ID::int32 left_img_x() const;
  void set_left_img_x(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_left_img_x() const;
  void _internal_set_left_img_x(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 left_img_y = 16;
  void clear_left_img_y();
  ::PROTOBUF_NAMESPACE_ID::int32 left_img_y() const;
  void set_left_img_y(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_left_img_y() const;
  void _internal_set_left_img_y(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // float right_img_area = 17;
  void clear_right_img_area();
  float right_img_area() const;
  void set_right_img_area(float value);
  private:
  float _internal_right_img_area() const;
  void _internal_set_right_img_area(float value);
  public:

  // int32 right_img_x = 18;
  void clear_right_img_x();
  ::PROTOBUF_NAMESPACE_ID::int32 right_img_x() const;
  void set_right_img_x(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_right_img_x() const;
  void _internal_set_right_img_x(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 right_img_y = 19;
  void clear_right_img_y();
  ::PROTOBUF_NAMESPACE_ID::int32 right_img_y() const;
  void set_right_img_y(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_right_img_y() const;
  void _internal_set_right_img_y(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  RobotObservedMotion( ::google::protobuf::uint32 timestamp, float img_area, ::google::protobuf::int32 img_x, ::google::protobuf::int32 img_y, float ground_area, ::google::protobuf::int32 ground_x, ::google::protobuf::int32 ground_y, float top_img_area, ::google::protobuf::int32 top_img_x, ::google::protobuf::int32 top_img_y, float bottom_img_area, ::google::protobuf::int32 bottom_img_x, ::google::protobuf::int32 bottom_img_y, float left_img_area, ::google::protobuf::int32 left_img_x, ::google::protobuf::int32 left_img_y, float right_img_area, ::google::protobuf::int32 right_img_x, ::google::protobuf::int32 right_img_y );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.RobotObservedMotion)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::uint32 timestamp_;
  float img_area_;
  ::PROTOBUF_NAMESPACE_ID::int32 img_x_;
  ::PROTOBUF_NAMESPACE_ID::int32 img_y_;
  float ground_area_;
  ::PROTOBUF_NAMESPACE_ID::int32 ground_x_;
  ::PROTOBUF_NAMESPACE_ID::int32 ground_y_;
  float top_img_area_;
  ::PROTOBUF_NAMESPACE_ID::int32 top_img_x_;
  ::PROTOBUF_NAMESPACE_ID::int32 top_img_y_;
  float bottom_img_area_;
  ::PROTOBUF_NAMESPACE_ID::int32 bottom_img_x_;
  ::PROTOBUF_NAMESPACE_ID::int32 bottom_img_y_;
  float left_img_area_;
  ::PROTOBUF_NAMESPACE_ID::int32 left_img_x_;
  ::PROTOBUF_NAMESPACE_ID::int32 left_img_y_;
  float right_img_area_;
  ::PROTOBUF_NAMESPACE_ID::int32 right_img_x_;
  ::PROTOBUF_NAMESPACE_ID::int32 right_img_y_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kNameFieldNumber = 2,
    kFaceIdFieldNumber = 1,
  };
  // string name = 2;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* 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_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_name(
      std::string* name);
  private:
  const std::string& _internal_name() const;
  void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // int32 face_id = 1;
  void clear_face_id();
  ::PROTOBUF_NAMESPACE_ID::int32 face_id() const;
  void set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_face_id() const;
  void _internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  RobotErasedEnrolledFace( ::google::protobuf::int32 face_id, const std::string& name );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.RobotErasedEnrolledFace)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::PROTOBUF_NAMESPACE_ID::int32 face_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kTimestampFieldNumber = 1,
    kMovementTypeFieldNumber = 2,
    kMovementSideFieldNumber = 3,
  };
  // uint32 timestamp = 1;
  void clear_timestamp();
  ::PROTOBUF_NAMESPACE_ID::uint32 timestamp() const;
  void set_timestamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_timestamp() const;
  void _internal_set_timestamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // .Anki.Vector.external_interface.UnexpectedMovementType movement_type = 2;
  void clear_movement_type();
  ::Anki::Vector::external_interface::UnexpectedMovementType movement_type() const;
  void set_movement_type(::Anki::Vector::external_interface::UnexpectedMovementType value);
  private:
  ::Anki::Vector::external_interface::UnexpectedMovementType _internal_movement_type() const;
  void _internal_set_movement_type(::Anki::Vector::external_interface::UnexpectedMovementType value);
  public:

  // .Anki.Vector.external_interface.UnexpectedMovementSide movement_side = 3;
  void clear_movement_side();
  ::Anki::Vector::external_interface::UnexpectedMovementSide movement_side() const;
  void set_movement_side(::Anki::Vector::external_interface::UnexpectedMovementSide value);
  private:
  ::Anki::Vector::external_interface::UnexpectedMovementSide _internal_movement_side() const;
  void _internal_set_movement_side(::Anki::Vector::external_interface::UnexpectedMovementSide value);
  public:

  
  // Begin code inserted by Anki plugin.
  UnexpectedMovement( ::google::protobuf::uint32 timestamp, ::Anki::Vector::external_interface::UnexpectedMovementType movement_type, ::Anki::Vector::external_interface::UnexpectedMovementSide movement_side );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UnexpectedMovement)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::uint32 timestamp_;
  int movement_type_;
  int movement_side_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kExpressionValuesFieldNumber = 7,
    kLeftEyeFieldNumber = 8,
    kRightEyeFieldNumber = 9,
    kNoseFieldNumber = 10,
    kMouthFieldNumber = 11,
    kNameFieldNumber = 5,
    kPoseFieldNumber = 3,
    kImgRectFieldNumber = 4,
    kFaceIdFieldNumber = 1,
    kTimestampFieldNumber = 2,
    kExpressionFieldNumber = 6,
  };
  // repeated uint32 expression_values = 7;
  int expression_values_size() const;
  private:
  int _internal_expression_values_size() const;
  public:
  void clear_expression_values();
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_expression_values(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >&
      _internal_expression_values() const;
  void _internal_add_expression_values(::PROTOBUF_NAMESPACE_ID::uint32 value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >*
      _internal_mutable_expression_values();
  public:
  ::PROTOBUF_NAMESPACE_ID::uint32 expression_values(int index) const;
  void set_expression_values(int index, ::PROTOBUF_NAMESPACE_ID::uint32 value);
  void add_expression_values(::PROTOBUF_NAMESPACE_ID::uint32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >&
      expression_values() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >*
      mutable_expression_values();

  // repeated .Anki.Vector.external_interface.CladPoint left_eye = 8;
  int left_eye_size() const;
  private:
  int _internal_left_eye_size() const;
  public:
  void clear_left_eye();
  ::Anki::Vector::external_interface::CladPoint* mutable_left_eye(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >*
      mutable_left_eye();
  private:
  const ::Anki::Vector::external_interface::CladPoint& _internal_left_eye(int index) const;
  ::Anki::Vector::external_interface::CladPoint* _internal_add_left_eye();
  public:
  const ::Anki::Vector::external_interface::CladPoint& left_eye(int index) const;
  ::Anki::Vector::external_interface::CladPoint* add_left_eye();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >&
      left_eye() const;

  // repeated .Anki.Vector.external_interface.CladPoint right_eye = 9;
  int right_eye_size() const;
  private:
  int _internal_right_eye_size() const;
  public:
  void clear_right_eye();
  ::Anki::Vector::external_interface::CladPoint* mutable_right_eye(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >*
      mutable_right_eye();
  private:
  const ::Anki::Vector::external_interface::CladPoint& _internal_right_eye(int index) const;
  ::Anki::Vector::external_interface::CladPoint* _internal_add_right_eye();
  public:
  const ::Anki::Vector::external_interface::CladPoint& right_eye(int index) const;
  ::Anki::Vector::external_interface::CladPoint* add_right_eye();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >&
      right_eye() const;

  // repeated .Anki.Vector.external_interface.CladPoint nose = 10;
  int nose_size() const;
  private:
  int _internal_nose_size() const;
  public:
  void clear_nose();
  ::Anki::Vector::external_interface::CladPoint* mutable_nose(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >*
      mutable_nose();
  private:
  const ::Anki::Vector::external_interface::CladPoint& _internal_nose(int index) const;
  ::Anki::Vector::external_interface::CladPoint* _internal_add_nose();
  public:
  const ::Anki::Vector::external_interface::CladPoint& nose(int index) const;
  ::Anki::Vector::external_interface::CladPoint* add_nose();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >&
      nose() const;

  // repeated .Anki.Vector.external_interface.CladPoint mouth = 11;
  int mouth_size() const;
  private:
  int _internal_mouth_size() const;
  public:
  void clear_mouth();
  ::Anki::Vector::external_interface::CladPoint* mutable_mouth(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >*
      mutable_mouth();
  private:
  const ::Anki::Vector::external_interface::CladPoint& _internal_mouth(int index) const;
  ::Anki::Vector::external_interface::CladPoint* _internal_add_mouth();
  public:
  const ::Anki::Vector::external_interface::CladPoint& mouth(int index) const;
  ::Anki::Vector::external_interface::CladPoint* add_mouth();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >&
      mouth() const;

  // string name = 5;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* 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_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_name(
      std::string* name);
  private:
  const std::string& _internal_name() const;
  void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // .Anki.Vector.external_interface.PoseStruct pose = 3;
  bool has_pose() const;
  private:
  bool _internal_has_pose() const;
  public:
  void clear_pose();
  const ::Anki::Vector::external_interface::PoseStruct& pose() const;
  ::Anki::Vector::external_interface::PoseStruct* release_pose();
  ::Anki::Vector::external_interface::PoseStruct* mutable_pose();
  void set_allocated_pose(::Anki::Vector::external_interface::PoseStruct* pose);
  private:
  const ::Anki::Vector::external_interface::PoseStruct& _internal_pose() const;
  ::Anki::Vector::external_interface::PoseStruct* _internal_mutable_pose();
  public:
  void unsafe_arena_set_allocated_pose(
      ::Anki::Vector::external_interface::PoseStruct* pose);
  ::Anki::Vector::external_interface::PoseStruct* unsafe_arena_release_pose();

  // .Anki.Vector.external_interface.CladRect img_rect = 4;
  bool has_img_rect() const;
  private:
  bool _internal_has_img_rect() const;
  public:
  void clear_img_rect();
  const ::Anki::Vector::external_interface::CladRect& img_rect() const;
  ::Anki::Vector::external_interface::CladRect* release_img_rect();
  ::Anki::Vector::external_interface::CladRect* mutable_img_rect();
  void set_allocated_img_rect(::Anki::Vector::external_interface::CladRect* img_rect);
  private:
  const ::Anki::Vector::external_interface::CladRect& _internal_img_rect() const;
  ::Anki::Vector::external_interface::CladRect* _internal_mutable_img_rect();
  public:
  void unsafe_arena_set_allocated_img_rect(
      ::Anki::Vector::external_interface::CladRect* img_rect);
  ::Anki::Vector::external_interface::CladRect* unsafe_arena_release_img_rect();

  // int32 face_id = 1;
  void clear_face_id();
  ::PROTOBUF_NAMESPACE_ID::int32 face_id() const;
  void set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_face_id() const;
  void _internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // uint32 timestamp = 2;
  void clear_timestamp();
  ::PROTOBUF_NAMESPACE_ID::uint32 timestamp() const;
  void set_timestamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_timestamp() const;
  void _internal_set_timestamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // .Anki.Vector.external_interface.FacialExpression expression = 6;
  void clear_expression();
  ::Anki::Vector::external_interface::FacialExpression expression() const;
  void set_expression(::Anki::Vector::external_interface::FacialExpression value);
  private:
  ::Anki::Vector::external_interface::FacialExpression _internal_expression() const;
  void _internal_set_expression(::Anki::Vector::external_interface::FacialExpression value);
  public:

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

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 > expression_values_;
  mutable std::atomic<int> _expression_values_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint > left_eye_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint > right_eye_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint > nose_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint > mouth_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::Anki::Vector::external_interface::PoseStruct* pose_;
  ::Anki::Vector::external_interface::CladRect* img_rect_;
  ::PROTOBUF_NAMESPACE_ID::int32 face_id_;
  ::PROTOBUF_NAMESPACE_ID::uint32 timestamp_;
  int expression_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kOldIdFieldNumber = 1,
    kNewIdFieldNumber = 2,
  };
  // int32 old_id = 1;
  void clear_old_id();
  ::PROTOBUF_NAMESPACE_ID::int32 old_id() const;
  void set_old_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_old_id() const;
  void _internal_set_old_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 new_id = 2;
  void clear_new_id();
  ::PROTOBUF_NAMESPACE_ID::int32 new_id() const;
  void set_new_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_new_id() const;
  void _internal_set_new_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  RobotChangedObservedFaceID( ::google::protobuf::int32 old_id, ::google::protobuf::int32 new_id );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.RobotChangedObservedFaceID)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::int32 old_id_;
  ::PROTOBUF_NAMESPACE_ID::int32 new_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kNameFieldNumber = 3,
    kResultFieldNumber = 1,
    kFaceIdFieldNumber = 2,
  };
  // string name = 3;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* 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_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_name(
      std::string* name);
  private:
  const std::string& _internal_name() const;
  void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

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

  // int32 face_id = 2;
  void clear_face_id();
  ::PROTOBUF_NAMESPACE_ID::int32 face_id() const;
  void set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_face_id() const;
  void _internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  FaceEnrollmentCompleted( ::Anki::Vector::external_interface::FaceEnrollmentResult result, ::google::protobuf::int32 face_id, const std::string& name );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.FaceEnrollmentCompleted)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  int result_;
  ::PROTOBUF_NAMESPACE_ID::int32 face_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kNameFieldNumber = 6,
    kSecondsSinceFirstEnrolledFieldNumber = 1,
    kSecondsSinceLastUpdatedFieldNumber = 2,
    kSecondsSinceLastSeenFieldNumber = 3,
    kLastSeenSecondsSinceEpochFieldNumber = 4,
    kFaceIdFieldNumber = 5,
  };
  // string name = 6;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* 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_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_name(
      std::string* name);
  private:
  const std::string& _internal_name() const;
  void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // int64 seconds_since_first_enrolled = 1;
  void clear_seconds_since_first_enrolled();
  ::PROTOBUF_NAMESPACE_ID::int64 seconds_since_first_enrolled() const;
  void set_seconds_since_first_enrolled(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_seconds_since_first_enrolled() const;
  void _internal_set_seconds_since_first_enrolled(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 seconds_since_last_updated = 2;
  void clear_seconds_since_last_updated();
  ::PROTOBUF_NAMESPACE_ID::int64 seconds_since_last_updated() const;
  void set_seconds_since_last_updated(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_seconds_since_last_updated() const;
  void _internal_set_seconds_since_last_updated(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 seconds_since_last_seen = 3;
  void clear_seconds_since_last_seen();
  ::PROTOBUF_NAMESPACE_ID::int64 seconds_since_last_seen() const;
  void set_seconds_since_last_seen(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_seconds_since_last_seen() const;
  void _internal_set_seconds_since_last_seen(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 last_seen_seconds_since_epoch = 4;
  void clear_last_seen_seconds_since_epoch();
  ::PROTOBUF_NAMESPACE_ID::int64 last_seen_seconds_since_epoch() const;
  void set_last_seen_seconds_since_epoch(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_last_seen_seconds_since_epoch() const;
  void _internal_set_last_seen_seconds_since_epoch(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int32 face_id = 5;
  void clear_face_id();
  ::PROTOBUF_NAMESPACE_ID::int32 face_id() const;
  void set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_face_id() const;
  void _internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  LoadedKnownFace( ::google::protobuf::int64 seconds_since_first_enrolled, ::google::protobuf::int64 seconds_since_last_updated, ::google::protobuf::int64 seconds_since_last_seen, ::google::protobuf::int64 last_seen_seconds_since_epoch, ::google::protobuf::int32 face_id, const std::string& name );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.LoadedKnownFace)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::PROTOBUF_NAMESPACE_ID::int64 seconds_since_first_enrolled_;
  ::PROTOBUF_NAMESPACE_ID::int64 seconds_since_last_updated_;
  ::PROTOBUF_NAMESPACE_ID::int64 seconds_since_last_seen_;
  ::PROTOBUF_NAMESPACE_ID::int64 last_seen_seconds_since_epoch_;
  ::PROTOBUF_NAMESPACE_ID::int32 face_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kNameFieldNumber = 2,
    kFaceIdFieldNumber = 1,
  };
  // string name = 2;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* 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_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_name(
      std::string* name);
  private:
  const std::string& _internal_name() const;
  void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // int32 face_id = 1;
  void clear_face_id();
  ::PROTOBUF_NAMESPACE_ID::int32 face_id() const;
  void set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_face_id() const;
  void _internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  RobotRenamedEnrolledFace( ::google::protobuf::int32 face_id, const std::string& name );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.RobotRenamedEnrolledFace)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::PROTOBUF_NAMESPACE_ID::int32 face_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kFacesFieldNumber = 2,
    kStatusFieldNumber = 1,
  };
  // repeated .Anki.Vector.external_interface.LoadedKnownFace faces = 2;
  int faces_size() const;
  private:
  int _internal_faces_size() const;
  public:
  void clear_faces();
  ::Anki::Vector::external_interface::LoadedKnownFace* mutable_faces(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::LoadedKnownFace >*
      mutable_faces();
  private:
  const ::Anki::Vector::external_interface::LoadedKnownFace& _internal_faces(int index) const;
  ::Anki::Vector::external_interface::LoadedKnownFace* _internal_add_faces();
  public:
  const ::Anki::Vector::external_interface::LoadedKnownFace& faces(int index) const;
  ::Anki::Vector::external_interface::LoadedKnownFace* add_faces();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::LoadedKnownFace >&
      faces() const;

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kOldNameFieldNumber = 2,
    kNewNameFieldNumber = 3,
    kFaceIdFieldNumber = 1,
  };
  // string old_name = 2;
  void clear_old_name();
  const std::string& old_name() const;
  void set_old_name(const std::string& value);
  void set_old_name(std::string&& value);
  void set_old_name(const char* value);
  void set_old_name(const char* value, size_t size);
  std::string* mutable_old_name();
  std::string* release_old_name();
  void set_allocated_old_name(std::string* old_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_old_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_old_name(
      std::string* old_name);
  private:
  const std::string& _internal_old_name() const;
  void _internal_set_old_name(const std::string& value);
  std::string* _internal_mutable_old_name();
  public:

  // string new_name = 3;
  void clear_new_name();
  const std::string& new_name() const;
  void set_new_name(const std::string& value);
  void set_new_name(std::string&& value);
  void set_new_name(const char* value);
  void set_new_name(const char* value, size_t size);
  std::string* mutable_new_name();
  std::string* release_new_name();
  void set_allocated_new_name(std::string* new_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_new_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_new_name(
      std::string* new_name);
  private:
  const std::string& _internal_new_name() const;
  void _internal_set_new_name(const std::string& value);
  std::string* _internal_mutable_new_name();
  public:

  // int32 face_id = 1;
  void clear_face_id();
  ::PROTOBUF_NAMESPACE_ID::int32 face_id() const;
  void set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_face_id() const;
  void _internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  UpdateEnrolledFaceByIDRequest( ::google::protobuf::int32 face_id, const std::string& old_name, const std::string& new_name );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr old_name_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr new_name_;
  ::PROTOBUF_NAMESPACE_ID::int32 face_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kFaceIdFieldNumber = 1,
  };
  // int32 face_id = 1;
  void clear_face_id();
  ::PROTOBUF_NAMESPACE_ID::int32 face_id() const;
  void set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_face_id() const;
  void _internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit EraseEnrolledFaceByIDRequest( ::google::protobuf::int32 face_id );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::int32 face_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kNameFieldNumber = 1,
    kObservedIdFieldNumber = 2,
    kSaveIdFieldNumber = 3,
    kSaveToRobotFieldNumber = 4,
    kSayNameFieldNumber = 5,
    kUseMusicFieldNumber = 6,
  };
  // string name = 1;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* 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_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_name(
      std::string* name);
  private:
  const std::string& _internal_name() const;
  void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // int32 observed_id = 2;
  void clear_observed_id();
  ::PROTOBUF_NAMESPACE_ID::int32 observed_id() const;
  void set_observed_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_observed_id() const;
  void _internal_set_observed_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 save_id = 3;
  void clear_save_id();
  ::PROTOBUF_NAMESPACE_ID::int32 save_id() const;
  void set_save_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_save_id() const;
  void _internal_set_save_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // bool save_to_robot = 4;
  void clear_save_to_robot();
  bool save_to_robot() const;
  void set_save_to_robot(bool value);
  private:
  bool _internal_save_to_robot() const;
  void _internal_set_save_to_robot(bool value);
  public:

  // bool say_name = 5;
  void clear_say_name();
  bool say_name() const;
  void set_say_name(bool value);
  private:
  bool _internal_say_name() const;
  void _internal_set_say_name(bool value);
  public:

  // bool use_music = 6;
  void clear_use_music();
  bool use_music() const;
  void set_use_music(bool value);
  private:
  bool _internal_use_music() const;
  void _internal_set_use_music(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  SetFaceToEnrollRequest( const std::string& name, ::google::protobuf::int32 observed_id, ::google::protobuf::int32 save_id, bool save_to_robot, bool say_name, bool use_music );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SetFaceToEnrollRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::PROTOBUF_NAMESPACE_ID::int32 observed_id_;
  ::PROTOBUF_NAMESPACE_ID::int32 save_id_;
  bool save_to_robot_;
  bool say_name_;
  bool use_music_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.BehaviorResults result = 2;
  void clear_result();
  ::Anki::Vector::external_interface::BehaviorResults result() const;
  void set_result(::Anki::Vector::external_interface::BehaviorResults value);
  private:
  ::Anki::Vector::external_interface::BehaviorResults _internal_result() const;
  void _internal_set_result(::Anki::Vector::external_interface::BehaviorResults value);
  public:

  
  // Begin code inserted by Anki plugin.
  EnrollFaceResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EnrollFaceResponse)
 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_;
  int result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.BehaviorResults result = 2;
  void clear_result();
  ::Anki::Vector::external_interface::BehaviorResults result() const;
  void set_result(::Anki::Vector::external_interface::BehaviorResults value);
  private:
  ::Anki::Vector::external_interface::BehaviorResults _internal_result() const;
  void _internal_set_result(::Anki::Vector::external_interface::BehaviorResults value);
  public:

  
  // Begin code inserted by Anki plugin.
  DriveOffChargerResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DriveOffChargerResponse)
 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_;
  int result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.BehaviorResults result = 2;
  void clear_result();
  ::Anki::Vector::external_interface::BehaviorResults result() const;
  void set_result(::Anki::Vector::external_interface::BehaviorResults value);
  private:
  ::Anki::Vector::external_interface::BehaviorResults _internal_result() const;
  void _internal_set_result(::Anki::Vector::external_interface::BehaviorResults value);
  public:

  
  // Begin code inserted by Anki plugin.
  DriveOnChargerResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DriveOnChargerResponse)
 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_;
  int result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.BehaviorResults result = 2;
  void clear_result();
  ::Anki::Vector::external_interface::BehaviorResults result() const;
  void set_result(::Anki::Vector::external_interface::BehaviorResults value);
  private:
  ::Anki::Vector::external_interface::BehaviorResults _internal_result() const;
  void _internal_set_result(::Anki::Vector::external_interface::BehaviorResults value);
  public:

  
  // Begin code inserted by Anki plugin.
  FindFacesResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.FindFacesResponse)
 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_;
  int result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.BehaviorResults result = 2;
  void clear_result();
  ::Anki::Vector::external_interface::BehaviorResults result() const;
  void set_result(::Anki::Vector::external_interface::BehaviorResults value);
  private:
  ::Anki::Vector::external_interface::BehaviorResults _internal_result() const;
  void _internal_set_result(::Anki::Vector::external_interface::BehaviorResults value);
  public:

  
  // Begin code inserted by Anki plugin.
  LookAroundInPlaceResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.LookAroundInPlaceResponse)
 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_;
  int result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.BehaviorResults result = 2;
  void clear_result();
  ::Anki::Vector::external_interface::BehaviorResults result() const;
  void set_result(::Anki::Vector::external_interface::BehaviorResults value);
  private:
  ::Anki::Vector::external_interface::BehaviorResults _internal_result() const;
  void _internal_set_result(::Anki::Vector::external_interface::BehaviorResults value);
  public:

  
  // Begin code inserted by Anki plugin.
  RollBlockResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.RollBlockResponse)
 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_;
  int result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kIntentJsonFieldNumber = 2,
    kIntentHeardFieldNumber = 1,
  };
  // string intent_json = 2;
  void clear_intent_json();
  const std::string& intent_json() const;
  void set_intent_json(const std::string& value);
  void set_intent_json(std::string&& value);
  void set_intent_json(const char* value);
  void set_intent_json(const char* value, size_t size);
  std::string* mutable_intent_json();
  std::string* release_intent_json();
  void set_allocated_intent_json(std::string* intent_json);
  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_intent_json();
  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_intent_json(
      std::string* intent_json);
  private:
  const std::string& _internal_intent_json() const;
  void _internal_set_intent_json(const std::string& value);
  std::string* _internal_mutable_intent_json();
  public:

  // bool intent_heard = 1;
  void clear_intent_heard();
  bool intent_heard() const;
  void set_intent_heard(bool value);
  private:
  bool _internal_intent_heard() const;
  void _internal_set_intent_heard(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  WakeWordEnd( bool intent_heard, const std::string& intent_json );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.WakeWordEnd)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr intent_json_;
  bool intent_heard_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kJsonDataFieldNumber = 2,
    kIntentIdFieldNumber = 1,
  };
  // string json_data = 2;
  void clear_json_data();
  const std::string& json_data() const;
  void set_json_data(const std::string& value);
  void set_json_data(std::string&& value);
  void set_json_data(const char* value);
  void set_json_data(const char* value, size_t size);
  std::string* mutable_json_data();
  std::string* release_json_data();
  void set_allocated_json_data(std::string* json_data);
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  std::string* unsafe_arena_release_json_data();
  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_json_data(
      std::string* json_data);
  private:
  const std::string& _internal_json_data() const;
  void _internal_set_json_data(const std::string& value);
  std::string* _internal_mutable_json_data();
  public:

  // uint32 intent_id = 1;
  void clear_intent_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 intent_id() const;
  void set_intent_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_intent_id() const;
  void _internal_set_intent_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  UserIntent( ::google::protobuf::uint32 intent_id, const std::string& json_data );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UserIntent)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr json_data_;
  ::PROTOBUF_NAMESPACE_ID::uint32 intent_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kPhotoIdFieldNumber = 1,
    kTimestampUtcFieldNumber = 2,
    kPhotoCopiedToAppFieldNumber = 3,
    kThumbCopiedToAppFieldNumber = 4,
  };
  // uint32 photo_id = 1;
  void clear_photo_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 photo_id() const;
  void set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_photo_id() const;
  void _internal_set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 timestamp_utc = 2;
  void clear_timestamp_utc();
  ::PROTOBUF_NAMESPACE_ID::uint32 timestamp_utc() const;
  void set_timestamp_utc(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_timestamp_utc() const;
  void _internal_set_timestamp_utc(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // bool photo_copied_to_app = 3;
  void clear_photo_copied_to_app();
  bool photo_copied_to_app() const;
  void set_photo_copied_to_app(bool value);
  private:
  bool _internal_photo_copied_to_app() const;
  void _internal_set_photo_copied_to_app(bool value);
  public:

  // bool thumb_copied_to_app = 4;
  void clear_thumb_copied_to_app();
  bool thumb_copied_to_app() const;
  void set_thumb_copied_to_app(bool value);
  private:
  bool _internal_thumb_copied_to_app() const;
  void _internal_set_thumb_copied_to_app(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  PhotoInfo( ::google::protobuf::uint32 photo_id, ::google::protobuf::uint32 timestamp_utc, bool photo_copied_to_app, bool thumb_copied_to_app );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PhotoInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::uint32 photo_id_;
  ::PROTOBUF_NAMESPACE_ID::uint32 timestamp_utc_;
  bool photo_copied_to_app_;
  bool thumb_copied_to_app_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

  public:

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

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kPhotoInfosFieldNumber = 2,
    kStatusFieldNumber = 1,
  };
  // repeated .Anki.Vector.external_interface.PhotoInfo photo_infos = 2;
  int photo_infos_size() const;
  private:
  int _internal_photo_infos_size() const;
  public:
  void clear_photo_infos();
  ::Anki::Vector::external_interface::PhotoInfo* mutable_photo_infos(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::PhotoInfo >*
      mutable_photo_infos();
  private:
  const ::Anki::Vector::external_interface::PhotoInfo& _internal_photo_infos(int index) const;
  ::Anki::Vector::external_interface::PhotoInfo* _internal_add_photo_infos();
  public:
  const ::Anki::Vector::external_interface::PhotoInfo& photo_infos(int index) const;
  ::Anki::Vector::external_interface::PhotoInfo* add_photo_infos();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::PhotoInfo >&
      photo_infos() const;

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

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

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

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

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

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

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

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

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

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

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

  public:

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

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

  enum : int {
    kPhotoIdFieldNumber = 1,
  };
  // uint32 photo_id = 1;
  void clear_photo_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 photo_id() const;
  void set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_photo_id() const;
  void _internal_set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit PhotoRequest( ::google::protobuf::uint32 photo_id );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PhotoRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::uint32 photo_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PhotoPathMessage* internal_default_instance() {
    return reinterpret_cast<const PhotoPathMessage*>(
               &_PhotoPathMessage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    72;

  friend void swap(PhotoPathMessage& a, PhotoPathMessage& b) {
    a.Swap(&b);
  }
  inline void Swap(PhotoPathMessage* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PhotoPathMessage* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PhotoPathMessage* New() const final {
    return CreateMaybeMessage<PhotoPathMessage>(nullptr);
  }

  PhotoPathMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PhotoPathMessage>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PhotoPathMessage& from);
  void MergeFrom(const PhotoPathMessage& 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(PhotoPathMessage* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.PhotoPathMessage";
  }
  protected:
  explicit PhotoPathMessage(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kFullPathFieldNumber = 2,
    kSuccessFieldNumber = 1,
  };
  // string full_path = 2;
  void clear_full_path();
  const std::string& full_path() const;
  void set_full_path(const std::string& value);
  void set_full_path(std::string&& value);
  void set_full_path(const char* value);
  void set_full_path(const char* value, size_t size);
  std::string* mutable_full_path();
  std::string* release_full_path();
  void set_allocated_full_path(std::string* full_path);
  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_full_path();
  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_full_path(
      std::string* full_path);
  private:
  const std::string& _internal_full_path() const;
  void _internal_set_full_path(const std::string& value);
  std::string* _internal_mutable_full_path();
  public:

  // bool success = 1;
  void clear_success();
  bool success() const;
  void set_success(bool value);
  private:
  bool _internal_success() const;
  void _internal_set_success(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  PhotoPathMessage( bool success, const std::string& full_path );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PhotoPathMessage)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr full_path_;
  bool success_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class PhotoResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.PhotoResponse) */ {
 public:
  inline PhotoResponse() : PhotoResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~PhotoResponse();

  PhotoResponse(const PhotoResponse& from);
  PhotoResponse(PhotoResponse&& from) noexcept
    : PhotoResponse() {
    *this = ::std::move(from);
  }

  inline PhotoResponse& operator=(const PhotoResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PhotoResponse& operator=(PhotoResponse&& 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 PhotoResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PhotoResponse* internal_default_instance() {
    return reinterpret_cast<const PhotoResponse*>(
               &_PhotoResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    73;

  friend void swap(PhotoResponse& a, PhotoResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(PhotoResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PhotoResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PhotoResponse* New() const final {
    return CreateMaybeMessage<PhotoResponse>(nullptr);
  }

  PhotoResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PhotoResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PhotoResponse& from);
  void MergeFrom(const PhotoResponse& 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(PhotoResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.PhotoResponse";
  }
  protected:
  explicit PhotoResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kImageFieldNumber = 3,
    kStatusFieldNumber = 1,
    kSuccessFieldNumber = 2,
  };
  // bytes image = 3;
  void clear_image();
  const std::string& image() const;
  void set_image(const std::string& value);
  void set_image(std::string&& value);
  void set_image(const char* value);
  void set_image(const void* value, size_t size);
  std::string* mutable_image();
  std::string* release_image();
  void set_allocated_image(std::string* image);
  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_image();
  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_image(
      std::string* image);
  private:
  const std::string& _internal_image() const;
  void _internal_set_image(const std::string& value);
  std::string* _internal_mutable_image();
  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();

  // bool success = 2;
  void clear_success();
  bool success() const;
  void set_success(bool value);
  private:
  bool _internal_success() const;
  void _internal_set_success(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  PhotoResponse( ResponseStatus* status, bool success, const std::string& image );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PhotoResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr image_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  bool success_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ThumbnailRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ThumbnailRequest) */ {
 public:
  inline ThumbnailRequest() : ThumbnailRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ThumbnailRequest();

  ThumbnailRequest(const ThumbnailRequest& from);
  ThumbnailRequest(ThumbnailRequest&& from) noexcept
    : ThumbnailRequest() {
    *this = ::std::move(from);
  }

  inline ThumbnailRequest& operator=(const ThumbnailRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ThumbnailRequest& operator=(ThumbnailRequest&& 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 ThumbnailRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ThumbnailRequest* internal_default_instance() {
    return reinterpret_cast<const ThumbnailRequest*>(
               &_ThumbnailRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    74;

  friend void swap(ThumbnailRequest& a, ThumbnailRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ThumbnailRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ThumbnailRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ThumbnailRequest* New() const final {
    return CreateMaybeMessage<ThumbnailRequest>(nullptr);
  }

  ThumbnailRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ThumbnailRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ThumbnailRequest& from);
  void MergeFrom(const ThumbnailRequest& 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(ThumbnailRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ThumbnailRequest";
  }
  protected:
  explicit ThumbnailRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPhotoIdFieldNumber = 1,
  };
  // uint32 photo_id = 1;
  void clear_photo_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 photo_id() const;
  void set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_photo_id() const;
  void _internal_set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit ThumbnailRequest( ::google::protobuf::uint32 photo_id );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ThumbnailRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::uint32 photo_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ThumbnailPathMessage PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ThumbnailPathMessage) */ {
 public:
  inline ThumbnailPathMessage() : ThumbnailPathMessage(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ThumbnailPathMessage();

  ThumbnailPathMessage(const ThumbnailPathMessage& from);
  ThumbnailPathMessage(ThumbnailPathMessage&& from) noexcept
    : ThumbnailPathMessage() {
    *this = ::std::move(from);
  }

  inline ThumbnailPathMessage& operator=(const ThumbnailPathMessage& from) {
    CopyFrom(from);
    return *this;
  }
  inline ThumbnailPathMessage& operator=(ThumbnailPathMessage&& 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 ThumbnailPathMessage& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ThumbnailPathMessage* internal_default_instance() {
    return reinterpret_cast<const ThumbnailPathMessage*>(
               &_ThumbnailPathMessage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    75;

  friend void swap(ThumbnailPathMessage& a, ThumbnailPathMessage& b) {
    a.Swap(&b);
  }
  inline void Swap(ThumbnailPathMessage* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ThumbnailPathMessage* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ThumbnailPathMessage* New() const final {
    return CreateMaybeMessage<ThumbnailPathMessage>(nullptr);
  }

  ThumbnailPathMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ThumbnailPathMessage>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ThumbnailPathMessage& from);
  void MergeFrom(const ThumbnailPathMessage& 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(ThumbnailPathMessage* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ThumbnailPathMessage";
  }
  protected:
  explicit ThumbnailPathMessage(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kFullPathFieldNumber = 2,
    kSuccessFieldNumber = 1,
  };
  // string full_path = 2;
  void clear_full_path();
  const std::string& full_path() const;
  void set_full_path(const std::string& value);
  void set_full_path(std::string&& value);
  void set_full_path(const char* value);
  void set_full_path(const char* value, size_t size);
  std::string* mutable_full_path();
  std::string* release_full_path();
  void set_allocated_full_path(std::string* full_path);
  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_full_path();
  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_full_path(
      std::string* full_path);
  private:
  const std::string& _internal_full_path() const;
  void _internal_set_full_path(const std::string& value);
  std::string* _internal_mutable_full_path();
  public:

  // bool success = 1;
  void clear_success();
  bool success() const;
  void set_success(bool value);
  private:
  bool _internal_success() const;
  void _internal_set_success(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  ThumbnailPathMessage( bool success, const std::string& full_path );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ThumbnailPathMessage)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr full_path_;
  bool success_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ThumbnailResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ThumbnailResponse) */ {
 public:
  inline ThumbnailResponse() : ThumbnailResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ThumbnailResponse();

  ThumbnailResponse(const ThumbnailResponse& from);
  ThumbnailResponse(ThumbnailResponse&& from) noexcept
    : ThumbnailResponse() {
    *this = ::std::move(from);
  }

  inline ThumbnailResponse& operator=(const ThumbnailResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ThumbnailResponse& operator=(ThumbnailResponse&& 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 ThumbnailResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ThumbnailResponse* internal_default_instance() {
    return reinterpret_cast<const ThumbnailResponse*>(
               &_ThumbnailResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    76;

  friend void swap(ThumbnailResponse& a, ThumbnailResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ThumbnailResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ThumbnailResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ThumbnailResponse* New() const final {
    return CreateMaybeMessage<ThumbnailResponse>(nullptr);
  }

  ThumbnailResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ThumbnailResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ThumbnailResponse& from);
  void MergeFrom(const ThumbnailResponse& 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(ThumbnailResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ThumbnailResponse";
  }
  protected:
  explicit ThumbnailResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kImageFieldNumber = 3,
    kStatusFieldNumber = 1,
    kSuccessFieldNumber = 2,
  };
  // bytes image = 3;
  void clear_image();
  const std::string& image() const;
  void set_image(const std::string& value);
  void set_image(std::string&& value);
  void set_image(const char* value);
  void set_image(const void* value, size_t size);
  std::string* mutable_image();
  std::string* release_image();
  void set_allocated_image(std::string* image);
  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_image();
  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_image(
      std::string* image);
  private:
  const std::string& _internal_image() const;
  void _internal_set_image(const std::string& value);
  std::string* _internal_mutable_image();
  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();

  // bool success = 2;
  void clear_success();
  bool success() const;
  void set_success(bool value);
  private:
  bool _internal_success() const;
  void _internal_set_success(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  ThumbnailResponse( ResponseStatus* status, bool success, const std::string& image );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ThumbnailResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr image_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  bool success_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class DeletePhotoRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.DeletePhotoRequest) */ {
 public:
  inline DeletePhotoRequest() : DeletePhotoRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~DeletePhotoRequest();

  DeletePhotoRequest(const DeletePhotoRequest& from);
  DeletePhotoRequest(DeletePhotoRequest&& from) noexcept
    : DeletePhotoRequest() {
    *this = ::std::move(from);
  }

  inline DeletePhotoRequest& operator=(const DeletePhotoRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeletePhotoRequest& operator=(DeletePhotoRequest&& 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 DeletePhotoRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DeletePhotoRequest* internal_default_instance() {
    return reinterpret_cast<const DeletePhotoRequest*>(
               &_DeletePhotoRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    77;

  friend void swap(DeletePhotoRequest& a, DeletePhotoRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(DeletePhotoRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeletePhotoRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DeletePhotoRequest* New() const final {
    return CreateMaybeMessage<DeletePhotoRequest>(nullptr);
  }

  DeletePhotoRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DeletePhotoRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DeletePhotoRequest& from);
  void MergeFrom(const DeletePhotoRequest& 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(DeletePhotoRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.DeletePhotoRequest";
  }
  protected:
  explicit DeletePhotoRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPhotoIdFieldNumber = 1,
  };
  // uint32 photo_id = 1;
  void clear_photo_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 photo_id() const;
  void set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_photo_id() const;
  void _internal_set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit DeletePhotoRequest( ::google::protobuf::uint32 photo_id );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DeletePhotoRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::uint32 photo_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class DeletePhotoResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.DeletePhotoResponse) */ {
 public:
  inline DeletePhotoResponse() : DeletePhotoResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~DeletePhotoResponse();

  DeletePhotoResponse(const DeletePhotoResponse& from);
  DeletePhotoResponse(DeletePhotoResponse&& from) noexcept
    : DeletePhotoResponse() {
    *this = ::std::move(from);
  }

  inline DeletePhotoResponse& operator=(const DeletePhotoResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeletePhotoResponse& operator=(DeletePhotoResponse&& 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 DeletePhotoResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DeletePhotoResponse* internal_default_instance() {
    return reinterpret_cast<const DeletePhotoResponse*>(
               &_DeletePhotoResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    78;

  friend void swap(DeletePhotoResponse& a, DeletePhotoResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(DeletePhotoResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeletePhotoResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DeletePhotoResponse* New() const final {
    return CreateMaybeMessage<DeletePhotoResponse>(nullptr);
  }

  DeletePhotoResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DeletePhotoResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DeletePhotoResponse& from);
  void MergeFrom(const DeletePhotoResponse& 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(DeletePhotoResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.DeletePhotoResponse";
  }
  protected:
  explicit DeletePhotoResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kSuccessFieldNumber = 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 success = 2;
  void clear_success();
  bool success() const;
  void set_success(bool value);
  private:
  bool _internal_success() const;
  void _internal_set_success(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  DeletePhotoResponse( ResponseStatus* status, bool success );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DeletePhotoResponse)
 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 success_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class PhotoTaken PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.PhotoTaken) */ {
 public:
  inline PhotoTaken() : PhotoTaken(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~PhotoTaken();

  PhotoTaken(const PhotoTaken& from);
  PhotoTaken(PhotoTaken&& from) noexcept
    : PhotoTaken() {
    *this = ::std::move(from);
  }

  inline PhotoTaken& operator=(const PhotoTaken& from) {
    CopyFrom(from);
    return *this;
  }
  inline PhotoTaken& operator=(PhotoTaken&& 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 PhotoTaken& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PhotoTaken* internal_default_instance() {
    return reinterpret_cast<const PhotoTaken*>(
               &_PhotoTaken_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    79;

  friend void swap(PhotoTaken& a, PhotoTaken& b) {
    a.Swap(&b);
  }
  inline void Swap(PhotoTaken* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PhotoTaken* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PhotoTaken* New() const final {
    return CreateMaybeMessage<PhotoTaken>(nullptr);
  }

  PhotoTaken* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PhotoTaken>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PhotoTaken& from);
  void MergeFrom(const PhotoTaken& 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(PhotoTaken* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.PhotoTaken";
  }
  protected:
  explicit PhotoTaken(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPhotoIdFieldNumber = 1,
  };
  // uint32 photo_id = 1;
  void clear_photo_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 photo_id() const;
  void set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_photo_id() const;
  void _internal_set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit PhotoTaken( ::google::protobuf::uint32 photo_id );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PhotoTaken)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::uint32 photo_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class PathMotionProfile PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.PathMotionProfile) */ {
 public:
  inline PathMotionProfile() : PathMotionProfile(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~PathMotionProfile();

  PathMotionProfile(const PathMotionProfile& from);
  PathMotionProfile(PathMotionProfile&& from) noexcept
    : PathMotionProfile() {
    *this = ::std::move(from);
  }

  inline PathMotionProfile& operator=(const PathMotionProfile& from) {
    CopyFrom(from);
    return *this;
  }
  inline PathMotionProfile& operator=(PathMotionProfile&& 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 PathMotionProfile& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PathMotionProfile* internal_default_instance() {
    return reinterpret_cast<const PathMotionProfile*>(
               &_PathMotionProfile_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    80;

  friend void swap(PathMotionProfile& a, PathMotionProfile& b) {
    a.Swap(&b);
  }
  inline void Swap(PathMotionProfile* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PathMotionProfile* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PathMotionProfile* New() const final {
    return CreateMaybeMessage<PathMotionProfile>(nullptr);
  }

  PathMotionProfile* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PathMotionProfile>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PathMotionProfile& from);
  void MergeFrom(const PathMotionProfile& 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(PathMotionProfile* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.PathMotionProfile";
  }
  protected:
  explicit PathMotionProfile(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kSpeedMmpsFieldNumber = 1,
    kAccelMmps2FieldNumber = 2,
    kDecelMmps2FieldNumber = 3,
    kPointTurnSpeedRadPerSecFieldNumber = 4,
    kPointTurnAccelRadPerSec2FieldNumber = 5,
    kPointTurnDecelRadPerSec2FieldNumber = 6,
    kDockSpeedMmpsFieldNumber = 7,
    kDockAccelMmps2FieldNumber = 8,
    kDockDecelMmps2FieldNumber = 9,
    kReverseSpeedMmpsFieldNumber = 10,
    kIsCustomFieldNumber = 11,
  };
  // float speed_mmps = 1;
  void clear_speed_mmps();
  float speed_mmps() const;
  void set_speed_mmps(float value);
  private:
  float _internal_speed_mmps() const;
  void _internal_set_speed_mmps(float value);
  public:

  // float accel_mmps2 = 2;
  void clear_accel_mmps2();
  float accel_mmps2() const;
  void set_accel_mmps2(float value);
  private:
  float _internal_accel_mmps2() const;
  void _internal_set_accel_mmps2(float value);
  public:

  // float decel_mmps2 = 3;
  void clear_decel_mmps2();
  float decel_mmps2() const;
  void set_decel_mmps2(float value);
  private:
  float _internal_decel_mmps2() const;
  void _internal_set_decel_mmps2(float value);
  public:

  // float point_turn_speed_rad_per_sec = 4;
  void clear_point_turn_speed_rad_per_sec();
  float point_turn_speed_rad_per_sec() const;
  void set_point_turn_speed_rad_per_sec(float value);
  private:
  float _internal_point_turn_speed_rad_per_sec() const;
  void _internal_set_point_turn_speed_rad_per_sec(float value);
  public:

  // float point_turn_accel_rad_per_sec2 = 5;
  void clear_point_turn_accel_rad_per_sec2();
  float point_turn_accel_rad_per_sec2() const;
  void set_point_turn_accel_rad_per_sec2(float value);
  private:
  float _internal_point_turn_accel_rad_per_sec2() const;
  void _internal_set_point_turn_accel_rad_per_sec2(float value);
  public:

  // float point_turn_decel_rad_per_sec2 = 6;
  void clear_point_turn_decel_rad_per_sec2();
  float point_turn_decel_rad_per_sec2() const;
  void set_point_turn_decel_rad_per_sec2(float value);
  private:
  float _internal_point_turn_decel_rad_per_sec2() const;
  void _internal_set_point_turn_decel_rad_per_sec2(float value);
  public:

  // float dock_speed_mmps = 7;
  void clear_dock_speed_mmps();
  float dock_speed_mmps() const;
  void set_dock_speed_mmps(float value);
  private:
  float _internal_dock_speed_mmps() const;
  void _internal_set_dock_speed_mmps(float value);
  public:

  // float dock_accel_mmps2 = 8;
  void clear_dock_accel_mmps2();
  float dock_accel_mmps2() const;
  void set_dock_accel_mmps2(float value);
  private:
  float _internal_dock_accel_mmps2() const;
  void _internal_set_dock_accel_mmps2(float value);
  public:

  // float dock_decel_mmps2 = 9;
  void clear_dock_decel_mmps2();
  float dock_decel_mmps2() const;
  void set_dock_decel_mmps2(float value);
  private:
  float _internal_dock_decel_mmps2() const;
  void _internal_set_dock_decel_mmps2(float value);
  public:

  // float reverse_speed_mmps = 10;
  void clear_reverse_speed_mmps();
  float reverse_speed_mmps() const;
  void set_reverse_speed_mmps(float value);
  private:
  float _internal_reverse_speed_mmps() const;
  void _internal_set_reverse_speed_mmps(float value);
  public:

  // bool is_custom = 11;
  void clear_is_custom();
  bool is_custom() const;
  void set_is_custom(bool value);
  private:
  bool _internal_is_custom() const;
  void _internal_set_is_custom(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  PathMotionProfile( float speed_mmps, float accel_mmps2, float decel_mmps2, float point_turn_speed_rad_per_sec, float point_turn_accel_rad_per_sec2, float point_turn_decel_rad_per_sec2, float dock_speed_mmps, float dock_accel_mmps2, float dock_decel_mmps2, float reverse_speed_mmps, bool is_custom );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PathMotionProfile)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float speed_mmps_;
  float accel_mmps2_;
  float decel_mmps2_;
  float point_turn_speed_rad_per_sec_;
  float point_turn_accel_rad_per_sec2_;
  float point_turn_decel_rad_per_sec2_;
  float dock_speed_mmps_;
  float dock_accel_mmps2_;
  float dock_decel_mmps2_;
  float reverse_speed_mmps_;
  bool is_custom_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ActionResult PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ActionResult) */ {
 public:
  inline ActionResult() : ActionResult(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ActionResult();

  ActionResult(const ActionResult& from);
  ActionResult(ActionResult&& from) noexcept
    : ActionResult() {
    *this = ::std::move(from);
  }

  inline ActionResult& operator=(const ActionResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline ActionResult& operator=(ActionResult&& 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 ActionResult& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ActionResult* internal_default_instance() {
    return reinterpret_cast<const ActionResult*>(
               &_ActionResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    81;

  friend void swap(ActionResult& a, ActionResult& b) {
    a.Swap(&b);
  }
  inline void Swap(ActionResult* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ActionResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ActionResult* New() const final {
    return CreateMaybeMessage<ActionResult>(nullptr);
  }

  ActionResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ActionResult>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ActionResult& from);
  void MergeFrom(const ActionResult& 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(ActionResult* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ActionResult";
  }
  protected:
  explicit ActionResult(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef ActionResult_ActionResultCode ActionResultCode;
  static constexpr ActionResultCode ACTION_RESULT_SUCCESS =
    ActionResult_ActionResultCode_ACTION_RESULT_SUCCESS;
  static constexpr ActionResultCode ACTION_RESULT_RUNNING =
    ActionResult_ActionResultCode_ACTION_RESULT_RUNNING;
  static constexpr ActionResultCode ACTION_RESULT_CANCELLED_WHILE_RUNNING =
    ActionResult_ActionResultCode_ACTION_RESULT_CANCELLED_WHILE_RUNNING;
  static constexpr ActionResultCode NOT_STARTED =
    ActionResult_ActionResultCode_NOT_STARTED;
  static constexpr ActionResultCode ABORT =
    ActionResult_ActionResultCode_ABORT;
  static constexpr ActionResultCode ANIM_ABORTED =
    ActionResult_ActionResultCode_ANIM_ABORTED;
  static constexpr ActionResultCode BAD_MARKER =
    ActionResult_ActionResultCode_BAD_MARKER;
  static constexpr ActionResultCode BAD_MESSAGE_TAG =
    ActionResult_ActionResultCode_BAD_MESSAGE_TAG;
  static constexpr ActionResultCode BAD_OBJECT =
    ActionResult_ActionResultCode_BAD_OBJECT;
  static constexpr ActionResultCode BAD_POSE =
    ActionResult_ActionResultCode_BAD_POSE;
  static constexpr ActionResultCode BAD_TAG =
    ActionResult_ActionResultCode_BAD_TAG;
  static constexpr ActionResultCode CHARGER_UNPLUGGED_ABORT =
    ActionResult_ActionResultCode_CHARGER_UNPLUGGED_ABORT;
  static constexpr ActionResultCode CLIFF_ALIGN_FAILED_TIMEOUT =
    ActionResult_ActionResultCode_CLIFF_ALIGN_FAILED_TIMEOUT;
  static constexpr ActionResultCode CLIFF_ALIGN_FAILED_NO_TURNING =
    ActionResult_ActionResultCode_CLIFF_ALIGN_FAILED_NO_TURNING;
  static constexpr ActionResultCode CLIFF_ALIGN_FAILED_OVER_TURNING =
    ActionResult_ActionResultCode_CLIFF_ALIGN_FAILED_OVER_TURNING;
  static constexpr ActionResultCode CLIFF_ALIGN_FAILED_NO_WHITE =
    ActionResult_ActionResultCode_CLIFF_ALIGN_FAILED_NO_WHITE;
  static constexpr ActionResultCode CLIFF_ALIGN_FAILED_STOPPED =
    ActionResult_ActionResultCode_CLIFF_ALIGN_FAILED_STOPPED;
  static constexpr ActionResultCode FAILED_SETTING_CALIBRATION =
    ActionResult_ActionResultCode_FAILED_SETTING_CALIBRATION;
  static constexpr ActionResultCode FOLLOWING_PATH_BUT_NOT_TRAVERSING =
    ActionResult_ActionResultCode_FOLLOWING_PATH_BUT_NOT_TRAVERSING;
  static constexpr ActionResultCode INTERRUPTED =
    ActionResult_ActionResultCode_INTERRUPTED;
  static constexpr ActionResultCode INVALID_OFF_TREADS_STATE =
    ActionResult_ActionResultCode_INVALID_OFF_TREADS_STATE;
  static constexpr ActionResultCode MISMATCHED_UP_AXIS =
    ActionResult_ActionResultCode_MISMATCHED_UP_AXIS;
  static constexpr ActionResultCode NO_ANIM_NAME =
    ActionResult_ActionResultCode_NO_ANIM_NAME;
  static constexpr ActionResultCode NO_DISTANCE_SET =
    ActionResult_ActionResultCode_NO_DISTANCE_SET;
  static constexpr ActionResultCode NO_FACE =
    ActionResult_ActionResultCode_NO_FACE;
  static constexpr ActionResultCode NO_GOAL_SET =
    ActionResult_ActionResultCode_NO_GOAL_SET;
  static constexpr ActionResultCode NO_PREACTION_POSES =
    ActionResult_ActionResultCode_NO_PREACTION_POSES;
  static constexpr ActionResultCode NOT_CARRYING_OBJECT_ABORT =
    ActionResult_ActionResultCode_NOT_CARRYING_OBJECT_ABORT;
  static constexpr ActionResultCode NOT_ON_CHARGER_ABORT =
    ActionResult_ActionResultCode_NOT_ON_CHARGER_ABORT;
  static constexpr ActionResultCode NULL_SUBACTION =
    ActionResult_ActionResultCode_NULL_SUBACTION;
  static constexpr ActionResultCode PATH_PLANNING_FAILED_ABORT =
    ActionResult_ActionResultCode_PATH_PLANNING_FAILED_ABORT;
  static constexpr ActionResultCode PICKUP_OBJECT_UNEXPECTEDLY_MOVING =
    ActionResult_ActionResultCode_PICKUP_OBJECT_UNEXPECTEDLY_MOVING;
  static constexpr ActionResultCode SEND_MESSAGE_TO_ROBOT_FAILED =
    ActionResult_ActionResultCode_SEND_MESSAGE_TO_ROBOT_FAILED;
  static constexpr ActionResultCode STILL_CARRYING_OBJECT =
    ActionResult_ActionResultCode_STILL_CARRYING_OBJECT;
  static constexpr ActionResultCode TIMEOUT =
    ActionResult_ActionResultCode_TIMEOUT;
  static constexpr ActionResultCode TRACKS_LOCKED =
    ActionResult_ActionResultCode_TRACKS_LOCKED;
  static constexpr ActionResultCode UNEXPECTED_DOCK_ACTION =
    ActionResult_ActionResultCode_UNEXPECTED_DOCK_ACTION;
  static constexpr ActionResultCode UNKNOWN_TOOL_CODE =
    ActionResult_ActionResultCode_UNKNOWN_TOOL_CODE;
  static constexpr ActionResultCode UPDATE_DERIVED_FAILED =
    ActionResult_ActionResultCode_UPDATE_DERIVED_FAILED;
  static constexpr ActionResultCode VISUAL_OBSERVATION_FAILED =
    ActionResult_ActionResultCode_VISUAL_OBSERVATION_FAILED;
  static constexpr ActionResultCode SHOULDNT_DRIVE_ON_CHARGER =
    ActionResult_ActionResultCode_SHOULDNT_DRIVE_ON_CHARGER;
  static constexpr ActionResultCode RETRY =
    ActionResult_ActionResultCode_RETRY;
  static constexpr ActionResultCode DID_NOT_REACH_PREACTION_POSE =
    ActionResult_ActionResultCode_DID_NOT_REACH_PREACTION_POSE;
  static constexpr ActionResultCode FAILED_TRAVERSING_PATH =
    ActionResult_ActionResultCode_FAILED_TRAVERSING_PATH;
  static constexpr ActionResultCode LAST_PICK_AND_PLACE_FAILED =
    ActionResult_ActionResultCode_LAST_PICK_AND_PLACE_FAILED;
  static constexpr ActionResultCode MOTOR_STOPPED_MAKING_PROGRESS =
    ActionResult_ActionResultCode_MOTOR_STOPPED_MAKING_PROGRESS;
  static constexpr ActionResultCode NOT_CARRYING_OBJECT_RETRY =
    ActionResult_ActionResultCode_NOT_CARRYING_OBJECT_RETRY;
  static constexpr ActionResultCode NOT_ON_CHARGER_RETRY =
    ActionResult_ActionResultCode_NOT_ON_CHARGER_RETRY;
  static constexpr ActionResultCode PATH_PLANNING_FAILED_RETRY =
    ActionResult_ActionResultCode_PATH_PLANNING_FAILED_RETRY;
  static constexpr ActionResultCode PLACEMENT_GOAL_NOT_FREE =
    ActionResult_ActionResultCode_PLACEMENT_GOAL_NOT_FREE;
  static constexpr ActionResultCode PICKUP_OBJECT_UNEXPECTEDLY_NOT_MOVING =
    ActionResult_ActionResultCode_PICKUP_OBJECT_UNEXPECTEDLY_NOT_MOVING;
  static constexpr ActionResultCode STILL_ON_CHARGER =
    ActionResult_ActionResultCode_STILL_ON_CHARGER;
  static constexpr ActionResultCode UNEXPECTED_PITCH_ANGLE =
    ActionResult_ActionResultCode_UNEXPECTED_PITCH_ANGLE;
  static inline bool ActionResultCode_IsValid(int value) {
    return ActionResult_ActionResultCode_IsValid(value);
  }
  static constexpr ActionResultCode ActionResultCode_MIN =
    ActionResult_ActionResultCode_ActionResultCode_MIN;
  static constexpr ActionResultCode ActionResultCode_MAX =
    ActionResult_ActionResultCode_ActionResultCode_MAX;
  static constexpr int ActionResultCode_ARRAYSIZE =
    ActionResult_ActionResultCode_ActionResultCode_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  ActionResultCode_descriptor() {
    return ActionResult_ActionResultCode_descriptor();
  }
  template<typename T>
  static inline const std::string& ActionResultCode_Name(T enum_t_value) {
    static_assert(::std::is_same<T, ActionResultCode>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function ActionResultCode_Name.");
    return ActionResult_ActionResultCode_Name(enum_t_value);
  }
  static inline bool ActionResultCode_Parse(const std::string& name,
      ActionResultCode* value) {
    return ActionResult_ActionResultCode_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kCodeFieldNumber = 1,
  };
  // .Anki.Vector.external_interface.ActionResult.ActionResultCode code = 1;
  void clear_code();
  ::Anki::Vector::external_interface::ActionResult_ActionResultCode code() const;
  void set_code(::Anki::Vector::external_interface::ActionResult_ActionResultCode value);
  private:
  ::Anki::Vector::external_interface::ActionResult_ActionResultCode _internal_code() const;
  void _internal_set_code(::Anki::Vector::external_interface::ActionResult_ActionResultCode value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit ActionResult( ::Anki::Vector::external_interface::ActionResult::ActionResultCode code );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ActionResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  int code_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CancelActionByIdTagRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CancelActionByIdTagRequest) */ {
 public:
  inline CancelActionByIdTagRequest() : CancelActionByIdTagRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CancelActionByIdTagRequest();

  CancelActionByIdTagRequest(const CancelActionByIdTagRequest& from);
  CancelActionByIdTagRequest(CancelActionByIdTagRequest&& from) noexcept
    : CancelActionByIdTagRequest() {
    *this = ::std::move(from);
  }

  inline CancelActionByIdTagRequest& operator=(const CancelActionByIdTagRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CancelActionByIdTagRequest& operator=(CancelActionByIdTagRequest&& 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 CancelActionByIdTagRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CancelActionByIdTagRequest* internal_default_instance() {
    return reinterpret_cast<const CancelActionByIdTagRequest*>(
               &_CancelActionByIdTagRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    82;

  friend void swap(CancelActionByIdTagRequest& a, CancelActionByIdTagRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(CancelActionByIdTagRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CancelActionByIdTagRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CancelActionByIdTagRequest* New() const final {
    return CreateMaybeMessage<CancelActionByIdTagRequest>(nullptr);
  }

  CancelActionByIdTagRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CancelActionByIdTagRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CancelActionByIdTagRequest& from);
  void MergeFrom(const CancelActionByIdTagRequest& 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(CancelActionByIdTagRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CancelActionByIdTagRequest";
  }
  protected:
  explicit CancelActionByIdTagRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kIdTagFieldNumber = 1,
  };
  // uint32 id_tag = 1;
  void clear_id_tag();
  ::PROTOBUF_NAMESPACE_ID::uint32 id_tag() const;
  void set_id_tag(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_id_tag() const;
  void _internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit CancelActionByIdTagRequest( ::google::protobuf::uint32 id_tag );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CancelActionByIdTagRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::uint32 id_tag_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CancelActionByIdTagResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CancelActionByIdTagResponse) */ {
 public:
  inline CancelActionByIdTagResponse() : CancelActionByIdTagResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CancelActionByIdTagResponse();

  CancelActionByIdTagResponse(const CancelActionByIdTagResponse& from);
  CancelActionByIdTagResponse(CancelActionByIdTagResponse&& from) noexcept
    : CancelActionByIdTagResponse() {
    *this = ::std::move(from);
  }

  inline CancelActionByIdTagResponse& operator=(const CancelActionByIdTagResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline CancelActionByIdTagResponse& operator=(CancelActionByIdTagResponse&& 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 CancelActionByIdTagResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CancelActionByIdTagResponse* internal_default_instance() {
    return reinterpret_cast<const CancelActionByIdTagResponse*>(
               &_CancelActionByIdTagResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    83;

  friend void swap(CancelActionByIdTagResponse& a, CancelActionByIdTagResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(CancelActionByIdTagResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CancelActionByIdTagResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CancelActionByIdTagResponse* New() const final {
    return CreateMaybeMessage<CancelActionByIdTagResponse>(nullptr);
  }

  CancelActionByIdTagResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CancelActionByIdTagResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CancelActionByIdTagResponse& from);
  void MergeFrom(const CancelActionByIdTagResponse& 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(CancelActionByIdTagResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CancelActionByIdTagResponse";
  }
  protected:
  explicit CancelActionByIdTagResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
  };
  // .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();

  
  // Begin code inserted by Anki plugin.
  explicit CancelActionByIdTagResponse( ResponseStatus* status );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CancelActionByIdTagResponse)
 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_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CancelBehaviorRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CancelBehaviorRequest) */ {
 public:
  inline CancelBehaviorRequest() : CancelBehaviorRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CancelBehaviorRequest();

  CancelBehaviorRequest(const CancelBehaviorRequest& from);
  CancelBehaviorRequest(CancelBehaviorRequest&& from) noexcept
    : CancelBehaviorRequest() {
    *this = ::std::move(from);
  }

  inline CancelBehaviorRequest& operator=(const CancelBehaviorRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CancelBehaviorRequest& operator=(CancelBehaviorRequest&& 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 CancelBehaviorRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CancelBehaviorRequest* internal_default_instance() {
    return reinterpret_cast<const CancelBehaviorRequest*>(
               &_CancelBehaviorRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    84;

  friend void swap(CancelBehaviorRequest& a, CancelBehaviorRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(CancelBehaviorRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CancelBehaviorRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CancelBehaviorRequest* New() const final {
    return CreateMaybeMessage<CancelBehaviorRequest>(nullptr);
  }

  CancelBehaviorRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CancelBehaviorRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CancelBehaviorRequest& from);
  void MergeFrom(const CancelBehaviorRequest& 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(CancelBehaviorRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CancelBehaviorRequest";
  }
  protected:
  explicit CancelBehaviorRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CancelBehaviorRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CancelBehaviorResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CancelBehaviorResponse) */ {
 public:
  inline CancelBehaviorResponse() : CancelBehaviorResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CancelBehaviorResponse();

  CancelBehaviorResponse(const CancelBehaviorResponse& from);
  CancelBehaviorResponse(CancelBehaviorResponse&& from) noexcept
    : CancelBehaviorResponse() {
    *this = ::std::move(from);
  }

  inline CancelBehaviorResponse& operator=(const CancelBehaviorResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline CancelBehaviorResponse& operator=(CancelBehaviorResponse&& 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 CancelBehaviorResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CancelBehaviorResponse* internal_default_instance() {
    return reinterpret_cast<const CancelBehaviorResponse*>(
               &_CancelBehaviorResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    85;

  friend void swap(CancelBehaviorResponse& a, CancelBehaviorResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(CancelBehaviorResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CancelBehaviorResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CancelBehaviorResponse* New() const final {
    return CreateMaybeMessage<CancelBehaviorResponse>(nullptr);
  }

  CancelBehaviorResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CancelBehaviorResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CancelBehaviorResponse& from);
  void MergeFrom(const CancelBehaviorResponse& 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(CancelBehaviorResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CancelBehaviorResponse";
  }
  protected:
  explicit CancelBehaviorResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
  };
  // .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();

  
  // Begin code inserted by Anki plugin.
  explicit CancelBehaviorResponse( ResponseStatus* status );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CancelBehaviorResponse)
 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_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class GoToPoseRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.GoToPoseRequest) */ {
 public:
  inline GoToPoseRequest() : GoToPoseRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~GoToPoseRequest();

  GoToPoseRequest(const GoToPoseRequest& from);
  GoToPoseRequest(GoToPoseRequest&& from) noexcept
    : GoToPoseRequest() {
    *this = ::std::move(from);
  }

  inline GoToPoseRequest& operator=(const GoToPoseRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GoToPoseRequest& operator=(GoToPoseRequest&& 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 GoToPoseRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const GoToPoseRequest* internal_default_instance() {
    return reinterpret_cast<const GoToPoseRequest*>(
               &_GoToPoseRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    86;

  friend void swap(GoToPoseRequest& a, GoToPoseRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GoToPoseRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GoToPoseRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline GoToPoseRequest* New() const final {
    return CreateMaybeMessage<GoToPoseRequest>(nullptr);
  }

  GoToPoseRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<GoToPoseRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const GoToPoseRequest& from);
  void MergeFrom(const GoToPoseRequest& 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(GoToPoseRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.GoToPoseRequest";
  }
  protected:
  explicit GoToPoseRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMotionProfFieldNumber = 4,
    kXMmFieldNumber = 1,
    kYMmFieldNumber = 2,
    kRadFieldNumber = 3,
    kIdTagFieldNumber = 5,
    kNumRetriesFieldNumber = 6,
  };
  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 4;
  bool has_motion_prof() const;
  private:
  bool _internal_has_motion_prof() const;
  public:
  void clear_motion_prof();
  const ::Anki::Vector::external_interface::PathMotionProfile& motion_prof() const;
  ::Anki::Vector::external_interface::PathMotionProfile* release_motion_prof();
  ::Anki::Vector::external_interface::PathMotionProfile* mutable_motion_prof();
  void set_allocated_motion_prof(::Anki::Vector::external_interface::PathMotionProfile* motion_prof);
  private:
  const ::Anki::Vector::external_interface::PathMotionProfile& _internal_motion_prof() const;
  ::Anki::Vector::external_interface::PathMotionProfile* _internal_mutable_motion_prof();
  public:
  void unsafe_arena_set_allocated_motion_prof(
      ::Anki::Vector::external_interface::PathMotionProfile* motion_prof);
  ::Anki::Vector::external_interface::PathMotionProfile* unsafe_arena_release_motion_prof();

  // float x_mm = 1;
  void clear_x_mm();
  float x_mm() const;
  void set_x_mm(float value);
  private:
  float _internal_x_mm() const;
  void _internal_set_x_mm(float value);
  public:

  // float y_mm = 2;
  void clear_y_mm();
  float y_mm() const;
  void set_y_mm(float value);
  private:
  float _internal_y_mm() const;
  void _internal_set_y_mm(float value);
  public:

  // float rad = 3;
  void clear_rad();
  float rad() const;
  void set_rad(float value);
  private:
  float _internal_rad() const;
  void _internal_set_rad(float value);
  public:

  // int32 id_tag = 5;
  void clear_id_tag();
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag() const;
  void set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_id_tag() const;
  void _internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 num_retries = 6;
  void clear_num_retries();
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries() const;
  void set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_retries() const;
  void _internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  GoToPoseRequest( float x_mm, float y_mm, float rad, PathMotionProfile* motion_prof, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.GoToPoseRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::PathMotionProfile* motion_prof_;
  float x_mm_;
  float y_mm_;
  float rad_;
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class GoToPoseResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.GoToPoseResponse) */ {
 public:
  inline GoToPoseResponse() : GoToPoseResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~GoToPoseResponse();

  GoToPoseResponse(const GoToPoseResponse& from);
  GoToPoseResponse(GoToPoseResponse&& from) noexcept
    : GoToPoseResponse() {
    *this = ::std::move(from);
  }

  inline GoToPoseResponse& operator=(const GoToPoseResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GoToPoseResponse& operator=(GoToPoseResponse&& 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 GoToPoseResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const GoToPoseResponse* internal_default_instance() {
    return reinterpret_cast<const GoToPoseResponse*>(
               &_GoToPoseResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    87;

  friend void swap(GoToPoseResponse& a, GoToPoseResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GoToPoseResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GoToPoseResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline GoToPoseResponse* New() const final {
    return CreateMaybeMessage<GoToPoseResponse>(nullptr);
  }

  GoToPoseResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<GoToPoseResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const GoToPoseResponse& from);
  void MergeFrom(const GoToPoseResponse& 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(GoToPoseResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.GoToPoseResponse";
  }
  protected:
  explicit GoToPoseResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.ActionResult result = 2;
  bool has_result() const;
  private:
  bool _internal_has_result() const;
  public:
  void clear_result();
  const ::Anki::Vector::external_interface::ActionResult& result() const;
  ::Anki::Vector::external_interface::ActionResult* release_result();
  ::Anki::Vector::external_interface::ActionResult* mutable_result();
  void set_allocated_result(::Anki::Vector::external_interface::ActionResult* result);
  private:
  const ::Anki::Vector::external_interface::ActionResult& _internal_result() const;
  ::Anki::Vector::external_interface::ActionResult* _internal_mutable_result();
  public:
  void unsafe_arena_set_allocated_result(
      ::Anki::Vector::external_interface::ActionResult* result);
  ::Anki::Vector::external_interface::ActionResult* unsafe_arena_release_result();

  
  // Begin code inserted by Anki plugin.
  GoToPoseResponse( ResponseStatus* status, ActionResult* result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.GoToPoseResponse)
 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::ActionResult* result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class DockWithCubeRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.DockWithCubeRequest) */ {
 public:
  inline DockWithCubeRequest() : DockWithCubeRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~DockWithCubeRequest();

  DockWithCubeRequest(const DockWithCubeRequest& from);
  DockWithCubeRequest(DockWithCubeRequest&& from) noexcept
    : DockWithCubeRequest() {
    *this = ::std::move(from);
  }

  inline DockWithCubeRequest& operator=(const DockWithCubeRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DockWithCubeRequest& operator=(DockWithCubeRequest&& 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 DockWithCubeRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DockWithCubeRequest* internal_default_instance() {
    return reinterpret_cast<const DockWithCubeRequest*>(
               &_DockWithCubeRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    88;

  friend void swap(DockWithCubeRequest& a, DockWithCubeRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(DockWithCubeRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DockWithCubeRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DockWithCubeRequest* New() const final {
    return CreateMaybeMessage<DockWithCubeRequest>(nullptr);
  }

  DockWithCubeRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DockWithCubeRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DockWithCubeRequest& from);
  void MergeFrom(const DockWithCubeRequest& 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(DockWithCubeRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.DockWithCubeRequest";
  }
  protected:
  explicit DockWithCubeRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMotionProfFieldNumber = 7,
    kObjectIdFieldNumber = 1,
    kDistanceFromMarkerMmFieldNumber = 2,
    kApproachAngleRadFieldNumber = 3,
    kAlignmentTypeFieldNumber = 4,
    kUseApproachAngleFieldNumber = 5,
    kUsePreDockPoseFieldNumber = 6,
    kIdTagFieldNumber = 8,
    kNumRetriesFieldNumber = 9,
  };
  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 7;
  bool has_motion_prof() const;
  private:
  bool _internal_has_motion_prof() const;
  public:
  void clear_motion_prof();
  const ::Anki::Vector::external_interface::PathMotionProfile& motion_prof() const;
  ::Anki::Vector::external_interface::PathMotionProfile* release_motion_prof();
  ::Anki::Vector::external_interface::PathMotionProfile* mutable_motion_prof();
  void set_allocated_motion_prof(::Anki::Vector::external_interface::PathMotionProfile* motion_prof);
  private:
  const ::Anki::Vector::external_interface::PathMotionProfile& _internal_motion_prof() const;
  ::Anki::Vector::external_interface::PathMotionProfile* _internal_mutable_motion_prof();
  public:
  void unsafe_arena_set_allocated_motion_prof(
      ::Anki::Vector::external_interface::PathMotionProfile* motion_prof);
  ::Anki::Vector::external_interface::PathMotionProfile* unsafe_arena_release_motion_prof();

  // int32 object_id = 1;
  void clear_object_id();
  ::PROTOBUF_NAMESPACE_ID::int32 object_id() const;
  void set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_object_id() const;
  void _internal_set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // float distance_from_marker_mm = 2;
  void clear_distance_from_marker_mm();
  float distance_from_marker_mm() const;
  void set_distance_from_marker_mm(float value);
  private:
  float _internal_distance_from_marker_mm() const;
  void _internal_set_distance_from_marker_mm(float value);
  public:

  // float approach_angle_rad = 3;
  void clear_approach_angle_rad();
  float approach_angle_rad() const;
  void set_approach_angle_rad(float value);
  private:
  float _internal_approach_angle_rad() const;
  void _internal_set_approach_angle_rad(float value);
  public:

  // .Anki.Vector.external_interface.AlignmentType alignment_type = 4;
  void clear_alignment_type();
  ::Anki::Vector::external_interface::AlignmentType alignment_type() const;
  void set_alignment_type(::Anki::Vector::external_interface::AlignmentType value);
  private:
  ::Anki::Vector::external_interface::AlignmentType _internal_alignment_type() const;
  void _internal_set_alignment_type(::Anki::Vector::external_interface::AlignmentType value);
  public:

  // bool use_approach_angle = 5;
  void clear_use_approach_angle();
  bool use_approach_angle() const;
  void set_use_approach_angle(bool value);
  private:
  bool _internal_use_approach_angle() const;
  void _internal_set_use_approach_angle(bool value);
  public:

  // bool use_pre_dock_pose = 6;
  void clear_use_pre_dock_pose();
  bool use_pre_dock_pose() const;
  void set_use_pre_dock_pose(bool value);
  private:
  bool _internal_use_pre_dock_pose() const;
  void _internal_set_use_pre_dock_pose(bool value);
  public:

  // int32 id_tag = 8;
  void clear_id_tag();
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag() const;
  void set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_id_tag() const;
  void _internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 num_retries = 9;
  void clear_num_retries();
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries() const;
  void set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_retries() const;
  void _internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  DockWithCubeRequest( ::google::protobuf::int32 object_id, float distance_from_marker_mm, float approach_angle_rad, ::Anki::Vector::external_interface::AlignmentType alignment_type, bool use_approach_angle, bool use_pre_dock_pose, PathMotionProfile* motion_prof, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DockWithCubeRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::PathMotionProfile* motion_prof_;
  ::PROTOBUF_NAMESPACE_ID::int32 object_id_;
  float distance_from_marker_mm_;
  float approach_angle_rad_;
  int alignment_type_;
  bool use_approach_angle_;
  bool use_pre_dock_pose_;
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class DockWithCubeResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.DockWithCubeResponse) */ {
 public:
  inline DockWithCubeResponse() : DockWithCubeResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~DockWithCubeResponse();

  DockWithCubeResponse(const DockWithCubeResponse& from);
  DockWithCubeResponse(DockWithCubeResponse&& from) noexcept
    : DockWithCubeResponse() {
    *this = ::std::move(from);
  }

  inline DockWithCubeResponse& operator=(const DockWithCubeResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline DockWithCubeResponse& operator=(DockWithCubeResponse&& 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 DockWithCubeResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DockWithCubeResponse* internal_default_instance() {
    return reinterpret_cast<const DockWithCubeResponse*>(
               &_DockWithCubeResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    89;

  friend void swap(DockWithCubeResponse& a, DockWithCubeResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(DockWithCubeResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DockWithCubeResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DockWithCubeResponse* New() const final {
    return CreateMaybeMessage<DockWithCubeResponse>(nullptr);
  }

  DockWithCubeResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DockWithCubeResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DockWithCubeResponse& from);
  void MergeFrom(const DockWithCubeResponse& 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(DockWithCubeResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.DockWithCubeResponse";
  }
  protected:
  explicit DockWithCubeResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.ActionResult result = 2;
  bool has_result() const;
  private:
  bool _internal_has_result() const;
  public:
  void clear_result();
  const ::Anki::Vector::external_interface::ActionResult& result() const;
  ::Anki::Vector::external_interface::ActionResult* release_result();
  ::Anki::Vector::external_interface::ActionResult* mutable_result();
  void set_allocated_result(::Anki::Vector::external_interface::ActionResult* result);
  private:
  const ::Anki::Vector::external_interface::ActionResult& _internal_result() const;
  ::Anki::Vector::external_interface::ActionResult* _internal_mutable_result();
  public:
  void unsafe_arena_set_allocated_result(
      ::Anki::Vector::external_interface::ActionResult* result);
  ::Anki::Vector::external_interface::ActionResult* unsafe_arena_release_result();

  
  // Begin code inserted by Anki plugin.
  DockWithCubeResponse( ResponseStatus* status, ActionResult* result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DockWithCubeResponse)
 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::ActionResult* result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class DriveStraightRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.DriveStraightRequest) */ {
 public:
  inline DriveStraightRequest() : DriveStraightRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~DriveStraightRequest();

  DriveStraightRequest(const DriveStraightRequest& from);
  DriveStraightRequest(DriveStraightRequest&& from) noexcept
    : DriveStraightRequest() {
    *this = ::std::move(from);
  }

  inline DriveStraightRequest& operator=(const DriveStraightRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DriveStraightRequest& operator=(DriveStraightRequest&& 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 DriveStraightRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DriveStraightRequest* internal_default_instance() {
    return reinterpret_cast<const DriveStraightRequest*>(
               &_DriveStraightRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    90;

  friend void swap(DriveStraightRequest& a, DriveStraightRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(DriveStraightRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DriveStraightRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DriveStraightRequest* New() const final {
    return CreateMaybeMessage<DriveStraightRequest>(nullptr);
  }

  DriveStraightRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DriveStraightRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DriveStraightRequest& from);
  void MergeFrom(const DriveStraightRequest& 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(DriveStraightRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.DriveStraightRequest";
  }
  protected:
  explicit DriveStraightRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kSpeedMmpsFieldNumber = 1,
    kDistMmFieldNumber = 2,
    kShouldPlayAnimationFieldNumber = 3,
    kIdTagFieldNumber = 4,
    kNumRetriesFieldNumber = 5,
  };
  // float speed_mmps = 1;
  void clear_speed_mmps();
  float speed_mmps() const;
  void set_speed_mmps(float value);
  private:
  float _internal_speed_mmps() const;
  void _internal_set_speed_mmps(float value);
  public:

  // float dist_mm = 2;
  void clear_dist_mm();
  float dist_mm() const;
  void set_dist_mm(float value);
  private:
  float _internal_dist_mm() const;
  void _internal_set_dist_mm(float value);
  public:

  // bool should_play_animation = 3;
  void clear_should_play_animation();
  bool should_play_animation() const;
  void set_should_play_animation(bool value);
  private:
  bool _internal_should_play_animation() const;
  void _internal_set_should_play_animation(bool value);
  public:

  // int32 id_tag = 4;
  void clear_id_tag();
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag() const;
  void set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_id_tag() const;
  void _internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 num_retries = 5;
  void clear_num_retries();
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries() const;
  void set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_retries() const;
  void _internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  DriveStraightRequest( float speed_mmps, float dist_mm, bool should_play_animation, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DriveStraightRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float speed_mmps_;
  float dist_mm_;
  bool should_play_animation_;
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class DriveStraightResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.DriveStraightResponse) */ {
 public:
  inline DriveStraightResponse() : DriveStraightResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~DriveStraightResponse();

  DriveStraightResponse(const DriveStraightResponse& from);
  DriveStraightResponse(DriveStraightResponse&& from) noexcept
    : DriveStraightResponse() {
    *this = ::std::move(from);
  }

  inline DriveStraightResponse& operator=(const DriveStraightResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline DriveStraightResponse& operator=(DriveStraightResponse&& 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 DriveStraightResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DriveStraightResponse* internal_default_instance() {
    return reinterpret_cast<const DriveStraightResponse*>(
               &_DriveStraightResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    91;

  friend void swap(DriveStraightResponse& a, DriveStraightResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(DriveStraightResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DriveStraightResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DriveStraightResponse* New() const final {
    return CreateMaybeMessage<DriveStraightResponse>(nullptr);
  }

  DriveStraightResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DriveStraightResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DriveStraightResponse& from);
  void MergeFrom(const DriveStraightResponse& 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(DriveStraightResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.DriveStraightResponse";
  }
  protected:
  explicit DriveStraightResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.ActionResult result = 2;
  bool has_result() const;
  private:
  bool _internal_has_result() const;
  public:
  void clear_result();
  const ::Anki::Vector::external_interface::ActionResult& result() const;
  ::Anki::Vector::external_interface::ActionResult* release_result();
  ::Anki::Vector::external_interface::ActionResult* mutable_result();
  void set_allocated_result(::Anki::Vector::external_interface::ActionResult* result);
  private:
  const ::Anki::Vector::external_interface::ActionResult& _internal_result() const;
  ::Anki::Vector::external_interface::ActionResult* _internal_mutable_result();
  public:
  void unsafe_arena_set_allocated_result(
      ::Anki::Vector::external_interface::ActionResult* result);
  ::Anki::Vector::external_interface::ActionResult* unsafe_arena_release_result();

  
  // Begin code inserted by Anki plugin.
  DriveStraightResponse( ResponseStatus* status, ActionResult* result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DriveStraightResponse)
 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::ActionResult* result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class TurnInPlaceRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.TurnInPlaceRequest) */ {
 public:
  inline TurnInPlaceRequest() : TurnInPlaceRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~TurnInPlaceRequest();

  TurnInPlaceRequest(const TurnInPlaceRequest& from);
  TurnInPlaceRequest(TurnInPlaceRequest&& from) noexcept
    : TurnInPlaceRequest() {
    *this = ::std::move(from);
  }

  inline TurnInPlaceRequest& operator=(const TurnInPlaceRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline TurnInPlaceRequest& operator=(TurnInPlaceRequest&& 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 TurnInPlaceRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TurnInPlaceRequest* internal_default_instance() {
    return reinterpret_cast<const TurnInPlaceRequest*>(
               &_TurnInPlaceRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    92;

  friend void swap(TurnInPlaceRequest& a, TurnInPlaceRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(TurnInPlaceRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TurnInPlaceRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline TurnInPlaceRequest* New() const final {
    return CreateMaybeMessage<TurnInPlaceRequest>(nullptr);
  }

  TurnInPlaceRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<TurnInPlaceRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const TurnInPlaceRequest& from);
  void MergeFrom(const TurnInPlaceRequest& 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(TurnInPlaceRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.TurnInPlaceRequest";
  }
  protected:
  explicit TurnInPlaceRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kAngleRadFieldNumber = 1,
    kSpeedRadPerSecFieldNumber = 2,
    kAccelRadPerSec2FieldNumber = 3,
    kTolRadFieldNumber = 4,
    kIsAbsoluteFieldNumber = 5,
    kIdTagFieldNumber = 6,
    kNumRetriesFieldNumber = 7,
  };
  // float angle_rad = 1;
  void clear_angle_rad();
  float angle_rad() const;
  void set_angle_rad(float value);
  private:
  float _internal_angle_rad() const;
  void _internal_set_angle_rad(float value);
  public:

  // float speed_rad_per_sec = 2;
  void clear_speed_rad_per_sec();
  float speed_rad_per_sec() const;
  void set_speed_rad_per_sec(float value);
  private:
  float _internal_speed_rad_per_sec() const;
  void _internal_set_speed_rad_per_sec(float value);
  public:

  // float accel_rad_per_sec2 = 3;
  void clear_accel_rad_per_sec2();
  float accel_rad_per_sec2() const;
  void set_accel_rad_per_sec2(float value);
  private:
  float _internal_accel_rad_per_sec2() const;
  void _internal_set_accel_rad_per_sec2(float value);
  public:

  // float tol_rad = 4;
  void clear_tol_rad();
  float tol_rad() const;
  void set_tol_rad(float value);
  private:
  float _internal_tol_rad() const;
  void _internal_set_tol_rad(float value);
  public:

  // uint32 is_absolute = 5;
  void clear_is_absolute();
  ::PROTOBUF_NAMESPACE_ID::uint32 is_absolute() const;
  void set_is_absolute(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_is_absolute() const;
  void _internal_set_is_absolute(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // int32 id_tag = 6;
  void clear_id_tag();
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag() const;
  void set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_id_tag() const;
  void _internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 num_retries = 7;
  void clear_num_retries();
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries() const;
  void set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_retries() const;
  void _internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  TurnInPlaceRequest( float angle_rad, float speed_rad_per_sec, float accel_rad_per_sec2, float tol_rad, ::google::protobuf::uint32 is_absolute, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.TurnInPlaceRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float angle_rad_;
  float speed_rad_per_sec_;
  float accel_rad_per_sec2_;
  float tol_rad_;
  ::PROTOBUF_NAMESPACE_ID::uint32 is_absolute_;
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class TurnInPlaceResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.TurnInPlaceResponse) */ {
 public:
  inline TurnInPlaceResponse() : TurnInPlaceResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~TurnInPlaceResponse();

  TurnInPlaceResponse(const TurnInPlaceResponse& from);
  TurnInPlaceResponse(TurnInPlaceResponse&& from) noexcept
    : TurnInPlaceResponse() {
    *this = ::std::move(from);
  }

  inline TurnInPlaceResponse& operator=(const TurnInPlaceResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline TurnInPlaceResponse& operator=(TurnInPlaceResponse&& 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 TurnInPlaceResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TurnInPlaceResponse* internal_default_instance() {
    return reinterpret_cast<const TurnInPlaceResponse*>(
               &_TurnInPlaceResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    93;

  friend void swap(TurnInPlaceResponse& a, TurnInPlaceResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(TurnInPlaceResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TurnInPlaceResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline TurnInPlaceResponse* New() const final {
    return CreateMaybeMessage<TurnInPlaceResponse>(nullptr);
  }

  TurnInPlaceResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<TurnInPlaceResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const TurnInPlaceResponse& from);
  void MergeFrom(const TurnInPlaceResponse& 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(TurnInPlaceResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.TurnInPlaceResponse";
  }
  protected:
  explicit TurnInPlaceResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.ActionResult result = 2;
  bool has_result() const;
  private:
  bool _internal_has_result() const;
  public:
  void clear_result();
  const ::Anki::Vector::external_interface::ActionResult& result() const;
  ::Anki::Vector::external_interface::ActionResult* release_result();
  ::Anki::Vector::external_interface::ActionResult* mutable_result();
  void set_allocated_result(::Anki::Vector::external_interface::ActionResult* result);
  private:
  const ::Anki::Vector::external_interface::ActionResult& _internal_result() const;
  ::Anki::Vector::external_interface::ActionResult* _internal_mutable_result();
  public:
  void unsafe_arena_set_allocated_result(
      ::Anki::Vector::external_interface::ActionResult* result);
  ::Anki::Vector::external_interface::ActionResult* unsafe_arena_release_result();

  
  // Begin code inserted by Anki plugin.
  TurnInPlaceResponse( ResponseStatus* status, ActionResult* result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.TurnInPlaceResponse)
 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::ActionResult* result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class SetHeadAngleRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.SetHeadAngleRequest) */ {
 public:
  inline SetHeadAngleRequest() : SetHeadAngleRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~SetHeadAngleRequest();

  SetHeadAngleRequest(const SetHeadAngleRequest& from);
  SetHeadAngleRequest(SetHeadAngleRequest&& from) noexcept
    : SetHeadAngleRequest() {
    *this = ::std::move(from);
  }

  inline SetHeadAngleRequest& operator=(const SetHeadAngleRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SetHeadAngleRequest& operator=(SetHeadAngleRequest&& 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 SetHeadAngleRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SetHeadAngleRequest* internal_default_instance() {
    return reinterpret_cast<const SetHeadAngleRequest*>(
               &_SetHeadAngleRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    94;

  friend void swap(SetHeadAngleRequest& a, SetHeadAngleRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SetHeadAngleRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SetHeadAngleRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SetHeadAngleRequest* New() const final {
    return CreateMaybeMessage<SetHeadAngleRequest>(nullptr);
  }

  SetHeadAngleRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SetHeadAngleRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SetHeadAngleRequest& from);
  void MergeFrom(const SetHeadAngleRequest& 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(SetHeadAngleRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.SetHeadAngleRequest";
  }
  protected:
  explicit SetHeadAngleRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kAngleRadFieldNumber = 1,
    kMaxSpeedRadPerSecFieldNumber = 2,
    kAccelRadPerSec2FieldNumber = 3,
    kDurationSecFieldNumber = 4,
    kIdTagFieldNumber = 5,
    kNumRetriesFieldNumber = 6,
  };
  // float angle_rad = 1;
  void clear_angle_rad();
  float angle_rad() const;
  void set_angle_rad(float value);
  private:
  float _internal_angle_rad() const;
  void _internal_set_angle_rad(float value);
  public:

  // float max_speed_rad_per_sec = 2;
  void clear_max_speed_rad_per_sec();
  float max_speed_rad_per_sec() const;
  void set_max_speed_rad_per_sec(float value);
  private:
  float _internal_max_speed_rad_per_sec() const;
  void _internal_set_max_speed_rad_per_sec(float value);
  public:

  // float accel_rad_per_sec2 = 3;
  void clear_accel_rad_per_sec2();
  float accel_rad_per_sec2() const;
  void set_accel_rad_per_sec2(float value);
  private:
  float _internal_accel_rad_per_sec2() const;
  void _internal_set_accel_rad_per_sec2(float value);
  public:

  // float duration_sec = 4;
  void clear_duration_sec();
  float duration_sec() const;
  void set_duration_sec(float value);
  private:
  float _internal_duration_sec() const;
  void _internal_set_duration_sec(float value);
  public:

  // int32 id_tag = 5;
  void clear_id_tag();
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag() const;
  void set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_id_tag() const;
  void _internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 num_retries = 6;
  void clear_num_retries();
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries() const;
  void set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_retries() const;
  void _internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  SetHeadAngleRequest( float angle_rad, float max_speed_rad_per_sec, float accel_rad_per_sec2, float duration_sec, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SetHeadAngleRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float angle_rad_;
  float max_speed_rad_per_sec_;
  float accel_rad_per_sec2_;
  float duration_sec_;
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class SetHeadAngleResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.SetHeadAngleResponse) */ {
 public:
  inline SetHeadAngleResponse() : SetHeadAngleResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~SetHeadAngleResponse();

  SetHeadAngleResponse(const SetHeadAngleResponse& from);
  SetHeadAngleResponse(SetHeadAngleResponse&& from) noexcept
    : SetHeadAngleResponse() {
    *this = ::std::move(from);
  }

  inline SetHeadAngleResponse& operator=(const SetHeadAngleResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SetHeadAngleResponse& operator=(SetHeadAngleResponse&& 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 SetHeadAngleResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SetHeadAngleResponse* internal_default_instance() {
    return reinterpret_cast<const SetHeadAngleResponse*>(
               &_SetHeadAngleResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    95;

  friend void swap(SetHeadAngleResponse& a, SetHeadAngleResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SetHeadAngleResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SetHeadAngleResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SetHeadAngleResponse* New() const final {
    return CreateMaybeMessage<SetHeadAngleResponse>(nullptr);
  }

  SetHeadAngleResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SetHeadAngleResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SetHeadAngleResponse& from);
  void MergeFrom(const SetHeadAngleResponse& 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(SetHeadAngleResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.SetHeadAngleResponse";
  }
  protected:
  explicit SetHeadAngleResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.ActionResult result = 2;
  bool has_result() const;
  private:
  bool _internal_has_result() const;
  public:
  void clear_result();
  const ::Anki::Vector::external_interface::ActionResult& result() const;
  ::Anki::Vector::external_interface::ActionResult* release_result();
  ::Anki::Vector::external_interface::ActionResult* mutable_result();
  void set_allocated_result(::Anki::Vector::external_interface::ActionResult* result);
  private:
  const ::Anki::Vector::external_interface::ActionResult& _internal_result() const;
  ::Anki::Vector::external_interface::ActionResult* _internal_mutable_result();
  public:
  void unsafe_arena_set_allocated_result(
      ::Anki::Vector::external_interface::ActionResult* result);
  ::Anki::Vector::external_interface::ActionResult* unsafe_arena_release_result();

  
  // Begin code inserted by Anki plugin.
  SetHeadAngleResponse( ResponseStatus* status, ActionResult* result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SetHeadAngleResponse)
 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::ActionResult* result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class SetLiftHeightRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.SetLiftHeightRequest) */ {
 public:
  inline SetLiftHeightRequest() : SetLiftHeightRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~SetLiftHeightRequest();

  SetLiftHeightRequest(const SetLiftHeightRequest& from);
  SetLiftHeightRequest(SetLiftHeightRequest&& from) noexcept
    : SetLiftHeightRequest() {
    *this = ::std::move(from);
  }

  inline SetLiftHeightRequest& operator=(const SetLiftHeightRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SetLiftHeightRequest& operator=(SetLiftHeightRequest&& 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 SetLiftHeightRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SetLiftHeightRequest* internal_default_instance() {
    return reinterpret_cast<const SetLiftHeightRequest*>(
               &_SetLiftHeightRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    96;

  friend void swap(SetLiftHeightRequest& a, SetLiftHeightRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SetLiftHeightRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SetLiftHeightRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SetLiftHeightRequest* New() const final {
    return CreateMaybeMessage<SetLiftHeightRequest>(nullptr);
  }

  SetLiftHeightRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SetLiftHeightRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SetLiftHeightRequest& from);
  void MergeFrom(const SetLiftHeightRequest& 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(SetLiftHeightRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.SetLiftHeightRequest";
  }
  protected:
  explicit SetLiftHeightRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kHeightMmFieldNumber = 1,
    kMaxSpeedRadPerSecFieldNumber = 2,
    kAccelRadPerSec2FieldNumber = 3,
    kDurationSecFieldNumber = 4,
    kIdTagFieldNumber = 5,
    kNumRetriesFieldNumber = 6,
  };
  // float height_mm = 1;
  void clear_height_mm();
  float height_mm() const;
  void set_height_mm(float value);
  private:
  float _internal_height_mm() const;
  void _internal_set_height_mm(float value);
  public:

  // float max_speed_rad_per_sec = 2;
  void clear_max_speed_rad_per_sec();
  float max_speed_rad_per_sec() const;
  void set_max_speed_rad_per_sec(float value);
  private:
  float _internal_max_speed_rad_per_sec() const;
  void _internal_set_max_speed_rad_per_sec(float value);
  public:

  // float accel_rad_per_sec2 = 3;
  void clear_accel_rad_per_sec2();
  float accel_rad_per_sec2() const;
  void set_accel_rad_per_sec2(float value);
  private:
  float _internal_accel_rad_per_sec2() const;
  void _internal_set_accel_rad_per_sec2(float value);
  public:

  // float duration_sec = 4;
  void clear_duration_sec();
  float duration_sec() const;
  void set_duration_sec(float value);
  private:
  float _internal_duration_sec() const;
  void _internal_set_duration_sec(float value);
  public:

  // int32 id_tag = 5;
  void clear_id_tag();
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag() const;
  void set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_id_tag() const;
  void _internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 num_retries = 6;
  void clear_num_retries();
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries() const;
  void set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_retries() const;
  void _internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  SetLiftHeightRequest( float height_mm, float max_speed_rad_per_sec, float accel_rad_per_sec2, float duration_sec, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SetLiftHeightRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float height_mm_;
  float max_speed_rad_per_sec_;
  float accel_rad_per_sec2_;
  float duration_sec_;
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class SetLiftHeightResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.SetLiftHeightResponse) */ {
 public:
  inline SetLiftHeightResponse() : SetLiftHeightResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~SetLiftHeightResponse();

  SetLiftHeightResponse(const SetLiftHeightResponse& from);
  SetLiftHeightResponse(SetLiftHeightResponse&& from) noexcept
    : SetLiftHeightResponse() {
    *this = ::std::move(from);
  }

  inline SetLiftHeightResponse& operator=(const SetLiftHeightResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SetLiftHeightResponse& operator=(SetLiftHeightResponse&& 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 SetLiftHeightResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SetLiftHeightResponse* internal_default_instance() {
    return reinterpret_cast<const SetLiftHeightResponse*>(
               &_SetLiftHeightResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    97;

  friend void swap(SetLiftHeightResponse& a, SetLiftHeightResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SetLiftHeightResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SetLiftHeightResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SetLiftHeightResponse* New() const final {
    return CreateMaybeMessage<SetLiftHeightResponse>(nullptr);
  }

  SetLiftHeightResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SetLiftHeightResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SetLiftHeightResponse& from);
  void MergeFrom(const SetLiftHeightResponse& 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(SetLiftHeightResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.SetLiftHeightResponse";
  }
  protected:
  explicit SetLiftHeightResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.ActionResult result = 2;
  bool has_result() const;
  private:
  bool _internal_has_result() const;
  public:
  void clear_result();
  const ::Anki::Vector::external_interface::ActionResult& result() const;
  ::Anki::Vector::external_interface::ActionResult* release_result();
  ::Anki::Vector::external_interface::ActionResult* mutable_result();
  void set_allocated_result(::Anki::Vector::external_interface::ActionResult* result);
  private:
  const ::Anki::Vector::external_interface::ActionResult& _internal_result() const;
  ::Anki::Vector::external_interface::ActionResult* _internal_mutable_result();
  public:
  void unsafe_arena_set_allocated_result(
      ::Anki::Vector::external_interface::ActionResult* result);
  ::Anki::Vector::external_interface::ActionResult* unsafe_arena_release_result();

  
  // Begin code inserted by Anki plugin.
  SetLiftHeightResponse( ResponseStatus* status, ActionResult* result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SetLiftHeightResponse)
 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::ActionResult* result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class TurnTowardsFaceRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.TurnTowardsFaceRequest) */ {
 public:
  inline TurnTowardsFaceRequest() : TurnTowardsFaceRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~TurnTowardsFaceRequest();

  TurnTowardsFaceRequest(const TurnTowardsFaceRequest& from);
  TurnTowardsFaceRequest(TurnTowardsFaceRequest&& from) noexcept
    : TurnTowardsFaceRequest() {
    *this = ::std::move(from);
  }

  inline TurnTowardsFaceRequest& operator=(const TurnTowardsFaceRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline TurnTowardsFaceRequest& operator=(TurnTowardsFaceRequest&& 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 TurnTowardsFaceRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TurnTowardsFaceRequest* internal_default_instance() {
    return reinterpret_cast<const TurnTowardsFaceRequest*>(
               &_TurnTowardsFaceRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    98;

  friend void swap(TurnTowardsFaceRequest& a, TurnTowardsFaceRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(TurnTowardsFaceRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TurnTowardsFaceRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline TurnTowardsFaceRequest* New() const final {
    return CreateMaybeMessage<TurnTowardsFaceRequest>(nullptr);
  }

  TurnTowardsFaceRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<TurnTowardsFaceRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const TurnTowardsFaceRequest& from);
  void MergeFrom(const TurnTowardsFaceRequest& 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(TurnTowardsFaceRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.TurnTowardsFaceRequest";
  }
  protected:
  explicit TurnTowardsFaceRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kFaceIdFieldNumber = 1,
    kMaxTurnAngleRadFieldNumber = 2,
    kIdTagFieldNumber = 3,
    kNumRetriesFieldNumber = 4,
  };
  // int32 face_id = 1;
  void clear_face_id();
  ::PROTOBUF_NAMESPACE_ID::int32 face_id() const;
  void set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_face_id() const;
  void _internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // float max_turn_angle_rad = 2;
  void clear_max_turn_angle_rad();
  float max_turn_angle_rad() const;
  void set_max_turn_angle_rad(float value);
  private:
  float _internal_max_turn_angle_rad() const;
  void _internal_set_max_turn_angle_rad(float value);
  public:

  // int32 id_tag = 3;
  void clear_id_tag();
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag() const;
  void set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_id_tag() const;
  void _internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 num_retries = 4;
  void clear_num_retries();
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries() const;
  void set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_retries() const;
  void _internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  TurnTowardsFaceRequest( ::google::protobuf::int32 face_id, float max_turn_angle_rad, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.TurnTowardsFaceRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::int32 face_id_;
  float max_turn_angle_rad_;
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class TurnTowardsFaceResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.TurnTowardsFaceResponse) */ {
 public:
  inline TurnTowardsFaceResponse() : TurnTowardsFaceResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~TurnTowardsFaceResponse();

  TurnTowardsFaceResponse(const TurnTowardsFaceResponse& from);
  TurnTowardsFaceResponse(TurnTowardsFaceResponse&& from) noexcept
    : TurnTowardsFaceResponse() {
    *this = ::std::move(from);
  }

  inline TurnTowardsFaceResponse& operator=(const TurnTowardsFaceResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline TurnTowardsFaceResponse& operator=(TurnTowardsFaceResponse&& 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 TurnTowardsFaceResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TurnTowardsFaceResponse* internal_default_instance() {
    return reinterpret_cast<const TurnTowardsFaceResponse*>(
               &_TurnTowardsFaceResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    99;

  friend void swap(TurnTowardsFaceResponse& a, TurnTowardsFaceResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(TurnTowardsFaceResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TurnTowardsFaceResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline TurnTowardsFaceResponse* New() const final {
    return CreateMaybeMessage<TurnTowardsFaceResponse>(nullptr);
  }

  TurnTowardsFaceResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<TurnTowardsFaceResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const TurnTowardsFaceResponse& from);
  void MergeFrom(const TurnTowardsFaceResponse& 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(TurnTowardsFaceResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.TurnTowardsFaceResponse";
  }
  protected:
  explicit TurnTowardsFaceResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.ActionResult result = 2;
  bool has_result() const;
  private:
  bool _internal_has_result() const;
  public:
  void clear_result();
  const ::Anki::Vector::external_interface::ActionResult& result() const;
  ::Anki::Vector::external_interface::ActionResult* release_result();
  ::Anki::Vector::external_interface::ActionResult* mutable_result();
  void set_allocated_result(::Anki::Vector::external_interface::ActionResult* result);
  private:
  const ::Anki::Vector::external_interface::ActionResult& _internal_result() const;
  ::Anki::Vector::external_interface::ActionResult* _internal_mutable_result();
  public:
  void unsafe_arena_set_allocated_result(
      ::Anki::Vector::external_interface::ActionResult* result);
  ::Anki::Vector::external_interface::ActionResult* unsafe_arena_release_result();

  
  // Begin code inserted by Anki plugin.
  TurnTowardsFaceResponse( ResponseStatus* status, ActionResult* result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.TurnTowardsFaceResponse)
 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::ActionResult* result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class GoToObjectRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.GoToObjectRequest) */ {
 public:
  inline GoToObjectRequest() : GoToObjectRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~GoToObjectRequest();

  GoToObjectRequest(const GoToObjectRequest& from);
  GoToObjectRequest(GoToObjectRequest&& from) noexcept
    : GoToObjectRequest() {
    *this = ::std::move(from);
  }

  inline GoToObjectRequest& operator=(const GoToObjectRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GoToObjectRequest& operator=(GoToObjectRequest&& 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 GoToObjectRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const GoToObjectRequest* internal_default_instance() {
    return reinterpret_cast<const GoToObjectRequest*>(
               &_GoToObjectRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    100;

  friend void swap(GoToObjectRequest& a, GoToObjectRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GoToObjectRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GoToObjectRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline GoToObjectRequest* New() const final {
    return CreateMaybeMessage<GoToObjectRequest>(nullptr);
  }

  GoToObjectRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<GoToObjectRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const GoToObjectRequest& from);
  void MergeFrom(const GoToObjectRequest& 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(GoToObjectRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.GoToObjectRequest";
  }
  protected:
  explicit GoToObjectRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMotionProfFieldNumber = 2,
    kObjectIdFieldNumber = 1,
    kDistanceFromObjectOriginMmFieldNumber = 3,
    kUsePreDockPoseFieldNumber = 4,
    kIdTagFieldNumber = 5,
    kNumRetriesFieldNumber = 6,
  };
  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
  bool has_motion_prof() const;
  private:
  bool _internal_has_motion_prof() const;
  public:
  void clear_motion_prof();
  const ::Anki::Vector::external_interface::PathMotionProfile& motion_prof() const;
  ::Anki::Vector::external_interface::PathMotionProfile* release_motion_prof();
  ::Anki::Vector::external_interface::PathMotionProfile* mutable_motion_prof();
  void set_allocated_motion_prof(::Anki::Vector::external_interface::PathMotionProfile* motion_prof);
  private:
  const ::Anki::Vector::external_interface::PathMotionProfile& _internal_motion_prof() const;
  ::Anki::Vector::external_interface::PathMotionProfile* _internal_mutable_motion_prof();
  public:
  void unsafe_arena_set_allocated_motion_prof(
      ::Anki::Vector::external_interface::PathMotionProfile* motion_prof);
  ::Anki::Vector::external_interface::PathMotionProfile* unsafe_arena_release_motion_prof();

  // int32 object_id = 1;
  void clear_object_id();
  ::PROTOBUF_NAMESPACE_ID::int32 object_id() const;
  void set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_object_id() const;
  void _internal_set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // float distance_from_object_origin_mm = 3;
  void clear_distance_from_object_origin_mm();
  float distance_from_object_origin_mm() const;
  void set_distance_from_object_origin_mm(float value);
  private:
  float _internal_distance_from_object_origin_mm() const;
  void _internal_set_distance_from_object_origin_mm(float value);
  public:

  // bool use_pre_dock_pose = 4;
  void clear_use_pre_dock_pose();
  bool use_pre_dock_pose() const;
  void set_use_pre_dock_pose(bool value);
  private:
  bool _internal_use_pre_dock_pose() const;
  void _internal_set_use_pre_dock_pose(bool value);
  public:

  // int32 id_tag = 5;
  void clear_id_tag();
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag() const;
  void set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_id_tag() const;
  void _internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 num_retries = 6;
  void clear_num_retries();
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries() const;
  void set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_retries() const;
  void _internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  GoToObjectRequest( ::google::protobuf::int32 object_id, PathMotionProfile* motion_prof, float distance_from_object_origin_mm, bool use_pre_dock_pose, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.GoToObjectRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::PathMotionProfile* motion_prof_;
  ::PROTOBUF_NAMESPACE_ID::int32 object_id_;
  float distance_from_object_origin_mm_;
  bool use_pre_dock_pose_;
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class GoToObjectResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.GoToObjectResponse) */ {
 public:
  inline GoToObjectResponse() : GoToObjectResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~GoToObjectResponse();

  GoToObjectResponse(const GoToObjectResponse& from);
  GoToObjectResponse(GoToObjectResponse&& from) noexcept
    : GoToObjectResponse() {
    *this = ::std::move(from);
  }

  inline GoToObjectResponse& operator=(const GoToObjectResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GoToObjectResponse& operator=(GoToObjectResponse&& 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 GoToObjectResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const GoToObjectResponse* internal_default_instance() {
    return reinterpret_cast<const GoToObjectResponse*>(
               &_GoToObjectResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    101;

  friend void swap(GoToObjectResponse& a, GoToObjectResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GoToObjectResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GoToObjectResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline GoToObjectResponse* New() const final {
    return CreateMaybeMessage<GoToObjectResponse>(nullptr);
  }

  GoToObjectResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<GoToObjectResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const GoToObjectResponse& from);
  void MergeFrom(const GoToObjectResponse& 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(GoToObjectResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.GoToObjectResponse";
  }
  protected:
  explicit GoToObjectResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.ActionResult result = 2;
  bool has_result() const;
  private:
  bool _internal_has_result() const;
  public:
  void clear_result();
  const ::Anki::Vector::external_interface::ActionResult& result() const;
  ::Anki::Vector::external_interface::ActionResult* release_result();
  ::Anki::Vector::external_interface::ActionResult* mutable_result();
  void set_allocated_result(::Anki::Vector::external_interface::ActionResult* result);
  private:
  const ::Anki::Vector::external_interface::ActionResult& _internal_result() const;
  ::Anki::Vector::external_interface::ActionResult* _internal_mutable_result();
  public:
  void unsafe_arena_set_allocated_result(
      ::Anki::Vector::external_interface::ActionResult* result);
  ::Anki::Vector::external_interface::ActionResult* unsafe_arena_release_result();

  
  // Begin code inserted by Anki plugin.
  GoToObjectResponse( ResponseStatus* status, ActionResult* result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.GoToObjectResponse)
 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::ActionResult* result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class RollObjectRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.RollObjectRequest) */ {
 public:
  inline RollObjectRequest() : RollObjectRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~RollObjectRequest();

  RollObjectRequest(const RollObjectRequest& from);
  RollObjectRequest(RollObjectRequest&& from) noexcept
    : RollObjectRequest() {
    *this = ::std::move(from);
  }

  inline RollObjectRequest& operator=(const RollObjectRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline RollObjectRequest& operator=(RollObjectRequest&& 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 RollObjectRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RollObjectRequest* internal_default_instance() {
    return reinterpret_cast<const RollObjectRequest*>(
               &_RollObjectRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    102;

  friend void swap(RollObjectRequest& a, RollObjectRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(RollObjectRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RollObjectRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RollObjectRequest* New() const final {
    return CreateMaybeMessage<RollObjectRequest>(nullptr);
  }

  RollObjectRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RollObjectRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RollObjectRequest& from);
  void MergeFrom(const RollObjectRequest& 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(RollObjectRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.RollObjectRequest";
  }
  protected:
  explicit RollObjectRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMotionProfFieldNumber = 2,
    kObjectIdFieldNumber = 1,
    kApproachAngleRadFieldNumber = 3,
    kUseApproachAngleFieldNumber = 4,
    kUsePreDockPoseFieldNumber = 5,
    kIdTagFieldNumber = 6,
    kNumRetriesFieldNumber = 7,
  };
  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
  bool has_motion_prof() const;
  private:
  bool _internal_has_motion_prof() const;
  public:
  void clear_motion_prof();
  const ::Anki::Vector::external_interface::PathMotionProfile& motion_prof() const;
  ::Anki::Vector::external_interface::PathMotionProfile* release_motion_prof();
  ::Anki::Vector::external_interface::PathMotionProfile* mutable_motion_prof();
  void set_allocated_motion_prof(::Anki::Vector::external_interface::PathMotionProfile* motion_prof);
  private:
  const ::Anki::Vector::external_interface::PathMotionProfile& _internal_motion_prof() const;
  ::Anki::Vector::external_interface::PathMotionProfile* _internal_mutable_motion_prof();
  public:
  void unsafe_arena_set_allocated_motion_prof(
      ::Anki::Vector::external_interface::PathMotionProfile* motion_prof);
  ::Anki::Vector::external_interface::PathMotionProfile* unsafe_arena_release_motion_prof();

  // int32 object_id = 1;
  void clear_object_id();
  ::PROTOBUF_NAMESPACE_ID::int32 object_id() const;
  void set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_object_id() const;
  void _internal_set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // float approach_angle_rad = 3;
  void clear_approach_angle_rad();
  float approach_angle_rad() const;
  void set_approach_angle_rad(float value);
  private:
  float _internal_approach_angle_rad() const;
  void _internal_set_approach_angle_rad(float value);
  public:

  // bool use_approach_angle = 4;
  void clear_use_approach_angle();
  bool use_approach_angle() const;
  void set_use_approach_angle(bool value);
  private:
  bool _internal_use_approach_angle() const;
  void _internal_set_use_approach_angle(bool value);
  public:

  // bool use_pre_dock_pose = 5;
  void clear_use_pre_dock_pose();
  bool use_pre_dock_pose() const;
  void set_use_pre_dock_pose(bool value);
  private:
  bool _internal_use_pre_dock_pose() const;
  void _internal_set_use_pre_dock_pose(bool value);
  public:

  // int32 id_tag = 6;
  void clear_id_tag();
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag() const;
  void set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_id_tag() const;
  void _internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 num_retries = 7;
  void clear_num_retries();
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries() const;
  void set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_retries() const;
  void _internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  RollObjectRequest( ::google::protobuf::int32 object_id, PathMotionProfile* motion_prof, float approach_angle_rad, bool use_approach_angle, bool use_pre_dock_pose, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.RollObjectRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::PathMotionProfile* motion_prof_;
  ::PROTOBUF_NAMESPACE_ID::int32 object_id_;
  float approach_angle_rad_;
  bool use_approach_angle_;
  bool use_pre_dock_pose_;
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class RollObjectResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.RollObjectResponse) */ {
 public:
  inline RollObjectResponse() : RollObjectResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~RollObjectResponse();

  RollObjectResponse(const RollObjectResponse& from);
  RollObjectResponse(RollObjectResponse&& from) noexcept
    : RollObjectResponse() {
    *this = ::std::move(from);
  }

  inline RollObjectResponse& operator=(const RollObjectResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline RollObjectResponse& operator=(RollObjectResponse&& 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 RollObjectResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RollObjectResponse* internal_default_instance() {
    return reinterpret_cast<const RollObjectResponse*>(
               &_RollObjectResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    103;

  friend void swap(RollObjectResponse& a, RollObjectResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(RollObjectResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RollObjectResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RollObjectResponse* New() const final {
    return CreateMaybeMessage<RollObjectResponse>(nullptr);
  }

  RollObjectResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RollObjectResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RollObjectResponse& from);
  void MergeFrom(const RollObjectResponse& 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(RollObjectResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.RollObjectResponse";
  }
  protected:
  explicit RollObjectResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.ActionResult result = 2;
  bool has_result() const;
  private:
  bool _internal_has_result() const;
  public:
  void clear_result();
  const ::Anki::Vector::external_interface::ActionResult& result() const;
  ::Anki::Vector::external_interface::ActionResult* release_result();
  ::Anki::Vector::external_interface::ActionResult* mutable_result();
  void set_allocated_result(::Anki::Vector::external_interface::ActionResult* result);
  private:
  const ::Anki::Vector::external_interface::ActionResult& _internal_result() const;
  ::Anki::Vector::external_interface::ActionResult* _internal_mutable_result();
  public:
  void unsafe_arena_set_allocated_result(
      ::Anki::Vector::external_interface::ActionResult* result);
  ::Anki::Vector::external_interface::ActionResult* unsafe_arena_release_result();

  
  // Begin code inserted by Anki plugin.
  RollObjectResponse( ResponseStatus* status, ActionResult* result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.RollObjectResponse)
 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::ActionResult* result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class PopAWheelieRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.PopAWheelieRequest) */ {
 public:
  inline PopAWheelieRequest() : PopAWheelieRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~PopAWheelieRequest();

  PopAWheelieRequest(const PopAWheelieRequest& from);
  PopAWheelieRequest(PopAWheelieRequest&& from) noexcept
    : PopAWheelieRequest() {
    *this = ::std::move(from);
  }

  inline PopAWheelieRequest& operator=(const PopAWheelieRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PopAWheelieRequest& operator=(PopAWheelieRequest&& 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 PopAWheelieRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PopAWheelieRequest* internal_default_instance() {
    return reinterpret_cast<const PopAWheelieRequest*>(
               &_PopAWheelieRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    104;

  friend void swap(PopAWheelieRequest& a, PopAWheelieRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(PopAWheelieRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PopAWheelieRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PopAWheelieRequest* New() const final {
    return CreateMaybeMessage<PopAWheelieRequest>(nullptr);
  }

  PopAWheelieRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PopAWheelieRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PopAWheelieRequest& from);
  void MergeFrom(const PopAWheelieRequest& 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(PopAWheelieRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.PopAWheelieRequest";
  }
  protected:
  explicit PopAWheelieRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMotionProfFieldNumber = 2,
    kObjectIdFieldNumber = 1,
    kApproachAngleRadFieldNumber = 3,
    kUseApproachAngleFieldNumber = 4,
    kUsePreDockPoseFieldNumber = 5,
    kIdTagFieldNumber = 6,
    kNumRetriesFieldNumber = 7,
  };
  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
  bool has_motion_prof() const;
  private:
  bool _internal_has_motion_prof() const;
  public:
  void clear_motion_prof();
  const ::Anki::Vector::external_interface::PathMotionProfile& motion_prof() const;
  ::Anki::Vector::external_interface::PathMotionProfile* release_motion_prof();
  ::Anki::Vector::external_interface::PathMotionProfile* mutable_motion_prof();
  void set_allocated_motion_prof(::Anki::Vector::external_interface::PathMotionProfile* motion_prof);
  private:
  const ::Anki::Vector::external_interface::PathMotionProfile& _internal_motion_prof() const;
  ::Anki::Vector::external_interface::PathMotionProfile* _internal_mutable_motion_prof();
  public:
  void unsafe_arena_set_allocated_motion_prof(
      ::Anki::Vector::external_interface::PathMotionProfile* motion_prof);
  ::Anki::Vector::external_interface::PathMotionProfile* unsafe_arena_release_motion_prof();

  // int32 object_id = 1;
  void clear_object_id();
  ::PROTOBUF_NAMESPACE_ID::int32 object_id() const;
  void set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_object_id() const;
  void _internal_set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // float approach_angle_rad = 3;
  void clear_approach_angle_rad();
  float approach_angle_rad() const;
  void set_approach_angle_rad(float value);
  private:
  float _internal_approach_angle_rad() const;
  void _internal_set_approach_angle_rad(float value);
  public:

  // bool use_approach_angle = 4;
  void clear_use_approach_angle();
  bool use_approach_angle() const;
  void set_use_approach_angle(bool value);
  private:
  bool _internal_use_approach_angle() const;
  void _internal_set_use_approach_angle(bool value);
  public:

  // bool use_pre_dock_pose = 5;
  void clear_use_pre_dock_pose();
  bool use_pre_dock_pose() const;
  void set_use_pre_dock_pose(bool value);
  private:
  bool _internal_use_pre_dock_pose() const;
  void _internal_set_use_pre_dock_pose(bool value);
  public:

  // int32 id_tag = 6;
  void clear_id_tag();
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag() const;
  void set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_id_tag() const;
  void _internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 num_retries = 7;
  void clear_num_retries();
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries() const;
  void set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_retries() const;
  void _internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  PopAWheelieRequest( ::google::protobuf::int32 object_id, PathMotionProfile* motion_prof, float approach_angle_rad, bool use_approach_angle, bool use_pre_dock_pose, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PopAWheelieRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::PathMotionProfile* motion_prof_;
  ::PROTOBUF_NAMESPACE_ID::int32 object_id_;
  float approach_angle_rad_;
  bool use_approach_angle_;
  bool use_pre_dock_pose_;
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class PopAWheelieResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.PopAWheelieResponse) */ {
 public:
  inline PopAWheelieResponse() : PopAWheelieResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~PopAWheelieResponse();

  PopAWheelieResponse(const PopAWheelieResponse& from);
  PopAWheelieResponse(PopAWheelieResponse&& from) noexcept
    : PopAWheelieResponse() {
    *this = ::std::move(from);
  }

  inline PopAWheelieResponse& operator=(const PopAWheelieResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PopAWheelieResponse& operator=(PopAWheelieResponse&& 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 PopAWheelieResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PopAWheelieResponse* internal_default_instance() {
    return reinterpret_cast<const PopAWheelieResponse*>(
               &_PopAWheelieResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    105;

  friend void swap(PopAWheelieResponse& a, PopAWheelieResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(PopAWheelieResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PopAWheelieResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PopAWheelieResponse* New() const final {
    return CreateMaybeMessage<PopAWheelieResponse>(nullptr);
  }

  PopAWheelieResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PopAWheelieResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PopAWheelieResponse& from);
  void MergeFrom(const PopAWheelieResponse& 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(PopAWheelieResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.PopAWheelieResponse";
  }
  protected:
  explicit PopAWheelieResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.ActionResult result = 2;
  bool has_result() const;
  private:
  bool _internal_has_result() const;
  public:
  void clear_result();
  const ::Anki::Vector::external_interface::ActionResult& result() const;
  ::Anki::Vector::external_interface::ActionResult* release_result();
  ::Anki::Vector::external_interface::ActionResult* mutable_result();
  void set_allocated_result(::Anki::Vector::external_interface::ActionResult* result);
  private:
  const ::Anki::Vector::external_interface::ActionResult& _internal_result() const;
  ::Anki::Vector::external_interface::ActionResult* _internal_mutable_result();
  public:
  void unsafe_arena_set_allocated_result(
      ::Anki::Vector::external_interface::ActionResult* result);
  ::Anki::Vector::external_interface::ActionResult* unsafe_arena_release_result();

  
  // Begin code inserted by Anki plugin.
  PopAWheelieResponse( ResponseStatus* status, ActionResult* result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PopAWheelieResponse)
 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::ActionResult* result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class PickupObjectRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.PickupObjectRequest) */ {
 public:
  inline PickupObjectRequest() : PickupObjectRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~PickupObjectRequest();

  PickupObjectRequest(const PickupObjectRequest& from);
  PickupObjectRequest(PickupObjectRequest&& from) noexcept
    : PickupObjectRequest() {
    *this = ::std::move(from);
  }

  inline PickupObjectRequest& operator=(const PickupObjectRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PickupObjectRequest& operator=(PickupObjectRequest&& 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 PickupObjectRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PickupObjectRequest* internal_default_instance() {
    return reinterpret_cast<const PickupObjectRequest*>(
               &_PickupObjectRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    106;

  friend void swap(PickupObjectRequest& a, PickupObjectRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(PickupObjectRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PickupObjectRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PickupObjectRequest* New() const final {
    return CreateMaybeMessage<PickupObjectRequest>(nullptr);
  }

  PickupObjectRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PickupObjectRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PickupObjectRequest& from);
  void MergeFrom(const PickupObjectRequest& 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(PickupObjectRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.PickupObjectRequest";
  }
  protected:
  explicit PickupObjectRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMotionProfFieldNumber = 2,
    kObjectIdFieldNumber = 1,
    kApproachAngleRadFieldNumber = 3,
    kUseApproachAngleFieldNumber = 4,
    kUsePreDockPoseFieldNumber = 5,
    kIdTagFieldNumber = 6,
    kNumRetriesFieldNumber = 7,
  };
  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
  bool has_motion_prof() const;
  private:
  bool _internal_has_motion_prof() const;
  public:
  void clear_motion_prof();
  const ::Anki::Vector::external_interface::PathMotionProfile& motion_prof() const;
  ::Anki::Vector::external_interface::PathMotionProfile* release_motion_prof();
  ::Anki::Vector::external_interface::PathMotionProfile* mutable_motion_prof();
  void set_allocated_motion_prof(::Anki::Vector::external_interface::PathMotionProfile* motion_prof);
  private:
  const ::Anki::Vector::external_interface::PathMotionProfile& _internal_motion_prof() const;
  ::Anki::Vector::external_interface::PathMotionProfile* _internal_mutable_motion_prof();
  public:
  void unsafe_arena_set_allocated_motion_prof(
      ::Anki::Vector::external_interface::PathMotionProfile* motion_prof);
  ::Anki::Vector::external_interface::PathMotionProfile* unsafe_arena_release_motion_prof();

  // int32 object_id = 1;
  void clear_object_id();
  ::PROTOBUF_NAMESPACE_ID::int32 object_id() const;
  void set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_object_id() const;
  void _internal_set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // float approach_angle_rad = 3;
  void clear_approach_angle_rad();
  float approach_angle_rad() const;
  void set_approach_angle_rad(float value);
  private:
  float _internal_approach_angle_rad() const;
  void _internal_set_approach_angle_rad(float value);
  public:

  // bool use_approach_angle = 4;
  void clear_use_approach_angle();
  bool use_approach_angle() const;
  void set_use_approach_angle(bool value);
  private:
  bool _internal_use_approach_angle() const;
  void _internal_set_use_approach_angle(bool value);
  public:

  // bool use_pre_dock_pose = 5;
  void clear_use_pre_dock_pose();
  bool use_pre_dock_pose() const;
  void set_use_pre_dock_pose(bool value);
  private:
  bool _internal_use_pre_dock_pose() const;
  void _internal_set_use_pre_dock_pose(bool value);
  public:

  // int32 id_tag = 6;
  void clear_id_tag();
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag() const;
  void set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_id_tag() const;
  void _internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 num_retries = 7;
  void clear_num_retries();
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries() const;
  void set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_retries() const;
  void _internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  PickupObjectRequest( ::google::protobuf::int32 object_id, PathMotionProfile* motion_prof, float approach_angle_rad, bool use_approach_angle, bool use_pre_dock_pose, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PickupObjectRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::PathMotionProfile* motion_prof_;
  ::PROTOBUF_NAMESPACE_ID::int32 object_id_;
  float approach_angle_rad_;
  bool use_approach_angle_;
  bool use_pre_dock_pose_;
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class PickupObjectResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.PickupObjectResponse) */ {
 public:
  inline PickupObjectResponse() : PickupObjectResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~PickupObjectResponse();

  PickupObjectResponse(const PickupObjectResponse& from);
  PickupObjectResponse(PickupObjectResponse&& from) noexcept
    : PickupObjectResponse() {
    *this = ::std::move(from);
  }

  inline PickupObjectResponse& operator=(const PickupObjectResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PickupObjectResponse& operator=(PickupObjectResponse&& 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 PickupObjectResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PickupObjectResponse* internal_default_instance() {
    return reinterpret_cast<const PickupObjectResponse*>(
               &_PickupObjectResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    107;

  friend void swap(PickupObjectResponse& a, PickupObjectResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(PickupObjectResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PickupObjectResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PickupObjectResponse* New() const final {
    return CreateMaybeMessage<PickupObjectResponse>(nullptr);
  }

  PickupObjectResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PickupObjectResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PickupObjectResponse& from);
  void MergeFrom(const PickupObjectResponse& 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(PickupObjectResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.PickupObjectResponse";
  }
  protected:
  explicit PickupObjectResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.ActionResult result = 2;
  bool has_result() const;
  private:
  bool _internal_has_result() const;
  public:
  void clear_result();
  const ::Anki::Vector::external_interface::ActionResult& result() const;
  ::Anki::Vector::external_interface::ActionResult* release_result();
  ::Anki::Vector::external_interface::ActionResult* mutable_result();
  void set_allocated_result(::Anki::Vector::external_interface::ActionResult* result);
  private:
  const ::Anki::Vector::external_interface::ActionResult& _internal_result() const;
  ::Anki::Vector::external_interface::ActionResult* _internal_mutable_result();
  public:
  void unsafe_arena_set_allocated_result(
      ::Anki::Vector::external_interface::ActionResult* result);
  ::Anki::Vector::external_interface::ActionResult* unsafe_arena_release_result();

  
  // Begin code inserted by Anki plugin.
  PickupObjectResponse( ResponseStatus* status, ActionResult* result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PickupObjectResponse)
 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::ActionResult* result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class PlaceObjectOnGroundHereRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest) */ {
 public:
  inline PlaceObjectOnGroundHereRequest() : PlaceObjectOnGroundHereRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~PlaceObjectOnGroundHereRequest();

  PlaceObjectOnGroundHereRequest(const PlaceObjectOnGroundHereRequest& from);
  PlaceObjectOnGroundHereRequest(PlaceObjectOnGroundHereRequest&& from) noexcept
    : PlaceObjectOnGroundHereRequest() {
    *this = ::std::move(from);
  }

  inline PlaceObjectOnGroundHereRequest& operator=(const PlaceObjectOnGroundHereRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PlaceObjectOnGroundHereRequest& operator=(PlaceObjectOnGroundHereRequest&& 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 PlaceObjectOnGroundHereRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PlaceObjectOnGroundHereRequest* internal_default_instance() {
    return reinterpret_cast<const PlaceObjectOnGroundHereRequest*>(
               &_PlaceObjectOnGroundHereRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    108;

  friend void swap(PlaceObjectOnGroundHereRequest& a, PlaceObjectOnGroundHereRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(PlaceObjectOnGroundHereRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PlaceObjectOnGroundHereRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PlaceObjectOnGroundHereRequest* New() const final {
    return CreateMaybeMessage<PlaceObjectOnGroundHereRequest>(nullptr);
  }

  PlaceObjectOnGroundHereRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PlaceObjectOnGroundHereRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PlaceObjectOnGroundHereRequest& from);
  void MergeFrom(const PlaceObjectOnGroundHereRequest& 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(PlaceObjectOnGroundHereRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest";
  }
  protected:
  explicit PlaceObjectOnGroundHereRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kIdTagFieldNumber = 1,
    kNumRetriesFieldNumber = 2,
  };
  // int32 id_tag = 1;
  void clear_id_tag();
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag() const;
  void set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_id_tag() const;
  void _internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 num_retries = 2;
  void clear_num_retries();
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries() const;
  void set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_retries() const;
  void _internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  PlaceObjectOnGroundHereRequest( ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::int32 id_tag_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_retries_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class PlaceObjectOnGroundHereResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse) */ {
 public:
  inline PlaceObjectOnGroundHereResponse() : PlaceObjectOnGroundHereResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~PlaceObjectOnGroundHereResponse();

  PlaceObjectOnGroundHereResponse(const PlaceObjectOnGroundHereResponse& from);
  PlaceObjectOnGroundHereResponse(PlaceObjectOnGroundHereResponse&& from) noexcept
    : PlaceObjectOnGroundHereResponse() {
    *this = ::std::move(from);
  }

  inline PlaceObjectOnGroundHereResponse& operator=(const PlaceObjectOnGroundHereResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PlaceObjectOnGroundHereResponse& operator=(PlaceObjectOnGroundHereResponse&& 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 PlaceObjectOnGroundHereResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PlaceObjectOnGroundHereResponse* internal_default_instance() {
    return reinterpret_cast<const PlaceObjectOnGroundHereResponse*>(
               &_PlaceObjectOnGroundHereResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    109;

  friend void swap(PlaceObjectOnGroundHereResponse& a, PlaceObjectOnGroundHereResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(PlaceObjectOnGroundHereResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PlaceObjectOnGroundHereResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline PlaceObjectOnGroundHereResponse* New() const final {
    return CreateMaybeMessage<PlaceObjectOnGroundHereResponse>(nullptr);
  }

  PlaceObjectOnGroundHereResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<PlaceObjectOnGroundHereResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const PlaceObjectOnGroundHereResponse& from);
  void MergeFrom(const PlaceObjectOnGroundHereResponse& 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(PlaceObjectOnGroundHereResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse";
  }
  protected:
  explicit PlaceObjectOnGroundHereResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kResultFieldNumber = 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.ActionResult result = 2;
  bool has_result() const;
  private:
  bool _internal_has_result() const;
  public:
  void clear_result();
  const ::Anki::Vector::external_interface::ActionResult& result() const;
  ::Anki::Vector::external_interface::ActionResult* release_result();
  ::Anki::Vector::external_interface::ActionResult* mutable_result();
  void set_allocated_result(::Anki::Vector::external_interface::ActionResult* result);
  private:
  const ::Anki::Vector::external_interface::ActionResult& _internal_result() const;
  ::Anki::Vector::external_interface::ActionResult* _internal_mutable_result();
  public:
  void unsafe_arena_set_allocated_result(
      ::Anki::Vector::external_interface::ActionResult* result);
  ::Anki::Vector::external_interface::ActionResult* unsafe_arena_release_result();

  
  // Begin code inserted by Anki plugin.
  PlaceObjectOnGroundHereResponse( ResponseStatus* status, ActionResult* result );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
 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::ActionResult* result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class BatteryStateRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.BatteryStateRequest) */ {
 public:
  inline BatteryStateRequest() : BatteryStateRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~BatteryStateRequest();

  BatteryStateRequest(const BatteryStateRequest& from);
  BatteryStateRequest(BatteryStateRequest&& from) noexcept
    : BatteryStateRequest() {
    *this = ::std::move(from);
  }

  inline BatteryStateRequest& operator=(const BatteryStateRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline BatteryStateRequest& operator=(BatteryStateRequest&& 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 BatteryStateRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const BatteryStateRequest* internal_default_instance() {
    return reinterpret_cast<const BatteryStateRequest*>(
               &_BatteryStateRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    110;

  friend void swap(BatteryStateRequest& a, BatteryStateRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(BatteryStateRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(BatteryStateRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline BatteryStateRequest* New() const final {
    return CreateMaybeMessage<BatteryStateRequest>(nullptr);
  }

  BatteryStateRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<BatteryStateRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const BatteryStateRequest& from);
  void MergeFrom(const BatteryStateRequest& 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(BatteryStateRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.BatteryStateRequest";
  }
  protected:
  explicit BatteryStateRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.BatteryStateRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class BatteryStateResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.BatteryStateResponse) */ {
 public:
  inline BatteryStateResponse() : BatteryStateResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~BatteryStateResponse();

  BatteryStateResponse(const BatteryStateResponse& from);
  BatteryStateResponse(BatteryStateResponse&& from) noexcept
    : BatteryStateResponse() {
    *this = ::std::move(from);
  }

  inline BatteryStateResponse& operator=(const BatteryStateResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline BatteryStateResponse& operator=(BatteryStateResponse&& 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 BatteryStateResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const BatteryStateResponse* internal_default_instance() {
    return reinterpret_cast<const BatteryStateResponse*>(
               &_BatteryStateResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    111;

  friend void swap(BatteryStateResponse& a, BatteryStateResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(BatteryStateResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(BatteryStateResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline BatteryStateResponse* New() const final {
    return CreateMaybeMessage<BatteryStateResponse>(nullptr);
  }

  BatteryStateResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<BatteryStateResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const BatteryStateResponse& from);
  void MergeFrom(const BatteryStateResponse& 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(BatteryStateResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.BatteryStateResponse";
  }
  protected:
  explicit BatteryStateResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kCubeBatteryFieldNumber = 7,
    kBatteryLevelFieldNumber = 2,
    kBatteryVoltsFieldNumber = 3,
    kIsChargingFieldNumber = 4,
    kIsOnChargerPlatformFieldNumber = 5,
    kSuggestedChargerSecFieldNumber = 6,
  };
  // .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.CubeBattery cube_battery = 7;
  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.BatteryLevel battery_level = 2;
  void clear_battery_level();
  ::Anki::Vector::external_interface::BatteryLevel battery_level() const;
  void set_battery_level(::Anki::Vector::external_interface::BatteryLevel value);
  private:
  ::Anki::Vector::external_interface::BatteryLevel _internal_battery_level() const;
  void _internal_set_battery_level(::Anki::Vector::external_interface::BatteryLevel value);
  public:

  // float battery_volts = 3;
  void clear_battery_volts();
  float battery_volts() const;
  void set_battery_volts(float value);
  private:
  float _internal_battery_volts() const;
  void _internal_set_battery_volts(float value);
  public:

  // bool is_charging = 4;
  void clear_is_charging();
  bool is_charging() const;
  void set_is_charging(bool value);
  private:
  bool _internal_is_charging() const;
  void _internal_set_is_charging(bool value);
  public:

  // bool is_on_charger_platform = 5;
  void clear_is_on_charger_platform();
  bool is_on_charger_platform() const;
  void set_is_on_charger_platform(bool value);
  private:
  bool _internal_is_on_charger_platform() const;
  void _internal_set_is_on_charger_platform(bool value);
  public:

  // float suggested_charger_sec = 6;
  void clear_suggested_charger_sec();
  float suggested_charger_sec() const;
  void set_suggested_charger_sec(float value);
  private:
  float _internal_suggested_charger_sec() const;
  void _internal_set_suggested_charger_sec(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  BatteryStateResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BatteryLevel battery_level, float battery_volts, bool is_charging, bool is_on_charger_platform, float suggested_charger_sec, CubeBattery* cube_battery );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.BatteryStateResponse)
 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::CubeBattery* cube_battery_;
  int battery_level_;
  float battery_volts_;
  bool is_charging_;
  bool is_on_charger_platform_;
  float suggested_charger_sec_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CubeBattery PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CubeBattery) */ {
 public:
  inline CubeBattery() : CubeBattery(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CubeBattery();

  CubeBattery(const CubeBattery& from);
  CubeBattery(CubeBattery&& from) noexcept
    : CubeBattery() {
    *this = ::std::move(from);
  }

  inline CubeBattery& operator=(const CubeBattery& from) {
    CopyFrom(from);
    return *this;
  }
  inline CubeBattery& operator=(CubeBattery&& 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 CubeBattery& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CubeBattery* internal_default_instance() {
    return reinterpret_cast<const CubeBattery*>(
               &_CubeBattery_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    112;

  friend void swap(CubeBattery& a, CubeBattery& b) {
    a.Swap(&b);
  }
  inline void Swap(CubeBattery* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CubeBattery* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CubeBattery* New() const final {
    return CreateMaybeMessage<CubeBattery>(nullptr);
  }

  CubeBattery* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CubeBattery>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CubeBattery& from);
  void MergeFrom(const CubeBattery& 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(CubeBattery* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CubeBattery";
  }
  protected:
  explicit CubeBattery(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef CubeBattery_CubeBatteryLevel CubeBatteryLevel;
  static constexpr CubeBatteryLevel Low =
    CubeBattery_CubeBatteryLevel_Low;
  static constexpr CubeBatteryLevel Normal =
    CubeBattery_CubeBatteryLevel_Normal;
  static inline bool CubeBatteryLevel_IsValid(int value) {
    return CubeBattery_CubeBatteryLevel_IsValid(value);
  }
  static constexpr CubeBatteryLevel CubeBatteryLevel_MIN =
    CubeBattery_CubeBatteryLevel_CubeBatteryLevel_MIN;
  static constexpr CubeBatteryLevel CubeBatteryLevel_MAX =
    CubeBattery_CubeBatteryLevel_CubeBatteryLevel_MAX;
  static constexpr int CubeBatteryLevel_ARRAYSIZE =
    CubeBattery_CubeBatteryLevel_CubeBatteryLevel_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  CubeBatteryLevel_descriptor() {
    return CubeBattery_CubeBatteryLevel_descriptor();
  }
  template<typename T>
  static inline const std::string& CubeBatteryLevel_Name(T enum_t_value) {
    static_assert(::std::is_same<T, CubeBatteryLevel>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function CubeBatteryLevel_Name.");
    return CubeBattery_CubeBatteryLevel_Name(enum_t_value);
  }
  static inline bool CubeBatteryLevel_Parse(const std::string& name,
      CubeBatteryLevel* value) {
    return CubeBattery_CubeBatteryLevel_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kFactoryIdFieldNumber = 2,
    kLevelFieldNumber = 1,
    kBatteryVoltsFieldNumber = 3,
    kTimeSinceLastReadingSecFieldNumber = 4,
  };
  // string factory_id = 2;
  void clear_factory_id();
  const std::string& factory_id() const;
  void set_factory_id(const std::string& value);
  void set_factory_id(std::string&& value);
  void set_factory_id(const char* value);
  void set_factory_id(const char* value, size_t size);
  std::string* mutable_factory_id();
  std::string* release_factory_id();
  void set_allocated_factory_id(std::string* factory_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_factory_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_factory_id(
      std::string* factory_id);
  private:
  const std::string& _internal_factory_id() const;
  void _internal_set_factory_id(const std::string& value);
  std::string* _internal_mutable_factory_id();
  public:

  // .Anki.Vector.external_interface.CubeBattery.CubeBatteryLevel level = 1;
  void clear_level();
  ::Anki::Vector::external_interface::CubeBattery_CubeBatteryLevel level() const;
  void set_level(::Anki::Vector::external_interface::CubeBattery_CubeBatteryLevel value);
  private:
  ::Anki::Vector::external_interface::CubeBattery_CubeBatteryLevel _internal_level() const;
  void _internal_set_level(::Anki::Vector::external_interface::CubeBattery_CubeBatteryLevel value);
  public:

  // float battery_volts = 3;
  void clear_battery_volts();
  float battery_volts() const;
  void set_battery_volts(float value);
  private:
  float _internal_battery_volts() const;
  void _internal_set_battery_volts(float value);
  public:

  // float time_since_last_reading_sec = 4;
  void clear_time_since_last_reading_sec();
  float time_since_last_reading_sec() const;
  void set_time_since_last_reading_sec(float value);
  private:
  float _internal_time_since_last_reading_sec() const;
  void _internal_set_time_since_last_reading_sec(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  CubeBattery( ::Anki::Vector::external_interface::CubeBattery::CubeBatteryLevel level, const std::string& factory_id, float battery_volts, float time_since_last_reading_sec );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CubeBattery)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr factory_id_;
  int level_;
  float battery_volts_;
  float time_since_last_reading_sec_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class VersionStateRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.VersionStateRequest) */ {
 public:
  inline VersionStateRequest() : VersionStateRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~VersionStateRequest();

  VersionStateRequest(const VersionStateRequest& from);
  VersionStateRequest(VersionStateRequest&& from) noexcept
    : VersionStateRequest() {
    *this = ::std::move(from);
  }

  inline VersionStateRequest& operator=(const VersionStateRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline VersionStateRequest& operator=(VersionStateRequest&& 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 VersionStateRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const VersionStateRequest* internal_default_instance() {
    return reinterpret_cast<const VersionStateRequest*>(
               &_VersionStateRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    113;

  friend void swap(VersionStateRequest& a, VersionStateRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(VersionStateRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(VersionStateRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline VersionStateRequest* New() const final {
    return CreateMaybeMessage<VersionStateRequest>(nullptr);
  }

  VersionStateRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<VersionStateRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const VersionStateRequest& from);
  void MergeFrom(const VersionStateRequest& 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(VersionStateRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.VersionStateRequest";
  }
  protected:
  explicit VersionStateRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.VersionStateRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class VersionStateResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.VersionStateResponse) */ {
 public:
  inline VersionStateResponse() : VersionStateResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~VersionStateResponse();

  VersionStateResponse(const VersionStateResponse& from);
  VersionStateResponse(VersionStateResponse&& from) noexcept
    : VersionStateResponse() {
    *this = ::std::move(from);
  }

  inline VersionStateResponse& operator=(const VersionStateResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline VersionStateResponse& operator=(VersionStateResponse&& 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 VersionStateResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const VersionStateResponse* internal_default_instance() {
    return reinterpret_cast<const VersionStateResponse*>(
               &_VersionStateResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    114;

  friend void swap(VersionStateResponse& a, VersionStateResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(VersionStateResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(VersionStateResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline VersionStateResponse* New() const final {
    return CreateMaybeMessage<VersionStateResponse>(nullptr);
  }

  VersionStateResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<VersionStateResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const VersionStateResponse& from);
  void MergeFrom(const VersionStateResponse& 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(VersionStateResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.VersionStateResponse";
  }
  protected:
  explicit VersionStateResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kOsVersionFieldNumber = 2,
    kEngineBuildIdFieldNumber = 3,
    kStatusFieldNumber = 1,
  };
  // string os_version = 2;
  void clear_os_version();
  const std::string& os_version() const;
  void set_os_version(const std::string& value);
  void set_os_version(std::string&& value);
  void set_os_version(const char* value);
  void set_os_version(const char* value, size_t size);
  std::string* mutable_os_version();
  std::string* release_os_version();
  void set_allocated_os_version(std::string* os_version);
  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_os_version();
  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_os_version(
      std::string* os_version);
  private:
  const std::string& _internal_os_version() const;
  void _internal_set_os_version(const std::string& value);
  std::string* _internal_mutable_os_version();
  public:

  // string engine_build_id = 3;
  void clear_engine_build_id();
  const std::string& engine_build_id() const;
  void set_engine_build_id(const std::string& value);
  void set_engine_build_id(std::string&& value);
  void set_engine_build_id(const char* value);
  void set_engine_build_id(const char* value, size_t size);
  std::string* mutable_engine_build_id();
  std::string* release_engine_build_id();
  void set_allocated_engine_build_id(std::string* engine_build_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_engine_build_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_engine_build_id(
      std::string* engine_build_id);
  private:
  const std::string& _internal_engine_build_id() const;
  void _internal_set_engine_build_id(const std::string& value);
  std::string* _internal_mutable_engine_build_id();
  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();

  
  // Begin code inserted by Anki plugin.
  VersionStateResponse( ResponseStatus* status, const std::string& os_version, const std::string& engine_build_id );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.VersionStateResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr os_version_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr engine_build_id_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class SayTextRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.SayTextRequest) */ {
 public:
  inline SayTextRequest() : SayTextRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~SayTextRequest();

  SayTextRequest(const SayTextRequest& from);
  SayTextRequest(SayTextRequest&& from) noexcept
    : SayTextRequest() {
    *this = ::std::move(from);
  }

  inline SayTextRequest& operator=(const SayTextRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SayTextRequest& operator=(SayTextRequest&& 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 SayTextRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SayTextRequest* internal_default_instance() {
    return reinterpret_cast<const SayTextRequest*>(
               &_SayTextRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    115;

  friend void swap(SayTextRequest& a, SayTextRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SayTextRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SayTextRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SayTextRequest* New() const final {
    return CreateMaybeMessage<SayTextRequest>(nullptr);
  }

  SayTextRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SayTextRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SayTextRequest& from);
  void MergeFrom(const SayTextRequest& 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(SayTextRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.SayTextRequest";
  }
  protected:
  explicit SayTextRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kTextFieldNumber = 1,
    kUseVectorVoiceFieldNumber = 2,
    kDurationScalarFieldNumber = 3,
    kPitchScalarFieldNumber = 4,
  };
  // string text = 1;
  void clear_text();
  const std::string& text() const;
  void set_text(const std::string& value);
  void set_text(std::string&& value);
  void set_text(const char* value);
  void set_text(const char* value, size_t size);
  std::string* mutable_text();
  std::string* release_text();
  void set_allocated_text(std::string* text);
  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_text();
  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_text(
      std::string* text);
  private:
  const std::string& _internal_text() const;
  void _internal_set_text(const std::string& value);
  std::string* _internal_mutable_text();
  public:

  // bool use_vector_voice = 2;
  void clear_use_vector_voice();
  bool use_vector_voice() const;
  void set_use_vector_voice(bool value);
  private:
  bool _internal_use_vector_voice() const;
  void _internal_set_use_vector_voice(bool value);
  public:

  // float duration_scalar = 3;
  void clear_duration_scalar();
  float duration_scalar() const;
  void set_duration_scalar(float value);
  private:
  float _internal_duration_scalar() const;
  void _internal_set_duration_scalar(float value);
  public:

  // float pitch_scalar = 4;
  void clear_pitch_scalar();
  float pitch_scalar() const;
  void set_pitch_scalar(float value);
  private:
  float _internal_pitch_scalar() const;
  void _internal_set_pitch_scalar(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  SayTextRequest( const std::string& text, bool use_vector_voice, float duration_scalar, float pitch_scalar );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SayTextRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr text_;
  bool use_vector_voice_;
  float duration_scalar_;
  float pitch_scalar_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class SayTextResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.SayTextResponse) */ {
 public:
  inline SayTextResponse() : SayTextResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~SayTextResponse();

  SayTextResponse(const SayTextResponse& from);
  SayTextResponse(SayTextResponse&& from) noexcept
    : SayTextResponse() {
    *this = ::std::move(from);
  }

  inline SayTextResponse& operator=(const SayTextResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SayTextResponse& operator=(SayTextResponse&& 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 SayTextResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SayTextResponse* internal_default_instance() {
    return reinterpret_cast<const SayTextResponse*>(
               &_SayTextResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    116;

  friend void swap(SayTextResponse& a, SayTextResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SayTextResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SayTextResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SayTextResponse* New() const final {
    return CreateMaybeMessage<SayTextResponse>(nullptr);
  }

  SayTextResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SayTextResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SayTextResponse& from);
  void MergeFrom(const SayTextResponse& 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(SayTextResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.SayTextResponse";
  }
  protected:
  explicit SayTextResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef SayTextResponse_UtteranceState UtteranceState;
  static constexpr UtteranceState INVALID =
    SayTextResponse_UtteranceState_INVALID;
  static constexpr UtteranceState GENERATING =
    SayTextResponse_UtteranceState_GENERATING;
  static constexpr UtteranceState READY =
    SayTextResponse_UtteranceState_READY;
  static constexpr UtteranceState PLAYING =
    SayTextResponse_UtteranceState_PLAYING;
  static constexpr UtteranceState FINISHED =
    SayTextResponse_UtteranceState_FINISHED;
  static inline bool UtteranceState_IsValid(int value) {
    return SayTextResponse_UtteranceState_IsValid(value);
  }
  static constexpr UtteranceState UtteranceState_MIN =
    SayTextResponse_UtteranceState_UtteranceState_MIN;
  static constexpr UtteranceState UtteranceState_MAX =
    SayTextResponse_UtteranceState_UtteranceState_MAX;
  static constexpr int UtteranceState_ARRAYSIZE =
    SayTextResponse_UtteranceState_UtteranceState_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  UtteranceState_descriptor() {
    return SayTextResponse_UtteranceState_descriptor();
  }
  template<typename T>
  static inline const std::string& UtteranceState_Name(T enum_t_value) {
    static_assert(::std::is_same<T, UtteranceState>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function UtteranceState_Name.");
    return SayTextResponse_UtteranceState_Name(enum_t_value);
  }
  static inline bool UtteranceState_Parse(const std::string& name,
      UtteranceState* value) {
    return SayTextResponse_UtteranceState_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kStateFieldNumber = 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.SayTextResponse.UtteranceState state = 2;
  void clear_state();
  ::Anki::Vector::external_interface::SayTextResponse_UtteranceState state() const;
  void set_state(::Anki::Vector::external_interface::SayTextResponse_UtteranceState value);
  private:
  ::Anki::Vector::external_interface::SayTextResponse_UtteranceState _internal_state() const;
  void _internal_set_state(::Anki::Vector::external_interface::SayTextResponse_UtteranceState value);
  public:

  
  // Begin code inserted by Anki plugin.
  SayTextResponse( ResponseStatus* status, ::Anki::Vector::external_interface::SayTextResponse::UtteranceState state );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SayTextResponse)
 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_;
  int state_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class StimulationInfo PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.StimulationInfo) */ {
 public:
  inline StimulationInfo() : StimulationInfo(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~StimulationInfo();

  StimulationInfo(const StimulationInfo& from);
  StimulationInfo(StimulationInfo&& from) noexcept
    : StimulationInfo() {
    *this = ::std::move(from);
  }

  inline StimulationInfo& operator=(const StimulationInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline StimulationInfo& operator=(StimulationInfo&& 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 StimulationInfo& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const StimulationInfo* internal_default_instance() {
    return reinterpret_cast<const StimulationInfo*>(
               &_StimulationInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    117;

  friend void swap(StimulationInfo& a, StimulationInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(StimulationInfo* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StimulationInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline StimulationInfo* New() const final {
    return CreateMaybeMessage<StimulationInfo>(nullptr);
  }

  StimulationInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<StimulationInfo>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const StimulationInfo& from);
  void MergeFrom(const StimulationInfo& 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(StimulationInfo* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.StimulationInfo";
  }
  protected:
  explicit StimulationInfo(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kEmotionEventsFieldNumber = 1,
    kValueFieldNumber = 2,
    kVelocityFieldNumber = 3,
    kAccelFieldNumber = 4,
    kValueBeforeEventFieldNumber = 5,
    kMinValueFieldNumber = 6,
    kMaxValueFieldNumber = 7,
  };
  // repeated string emotion_events = 1;
  int emotion_events_size() const;
  private:
  int _internal_emotion_events_size() const;
  public:
  void clear_emotion_events();
  const std::string& emotion_events(int index) const;
  std::string* mutable_emotion_events(int index);
  void set_emotion_events(int index, const std::string& value);
  void set_emotion_events(int index, std::string&& value);
  void set_emotion_events(int index, const char* value);
  void set_emotion_events(int index, const char* value, size_t size);
  std::string* add_emotion_events();
  void add_emotion_events(const std::string& value);
  void add_emotion_events(std::string&& value);
  void add_emotion_events(const char* value);
  void add_emotion_events(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& emotion_events() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_emotion_events();
  private:
  const std::string& _internal_emotion_events(int index) const;
  std::string* _internal_add_emotion_events();
  public:

  // float value = 2;
  void clear_value();
  float value() const;
  void set_value(float value);
  private:
  float _internal_value() const;
  void _internal_set_value(float value);
  public:

  // float velocity = 3;
  void clear_velocity();
  float velocity() const;
  void set_velocity(float value);
  private:
  float _internal_velocity() const;
  void _internal_set_velocity(float value);
  public:

  // float accel = 4;
  void clear_accel();
  float accel() const;
  void set_accel(float value);
  private:
  float _internal_accel() const;
  void _internal_set_accel(float value);
  public:

  // float value_before_event = 5;
  void clear_value_before_event();
  float value_before_event() const;
  void set_value_before_event(float value);
  private:
  float _internal_value_before_event() const;
  void _internal_set_value_before_event(float value);
  public:

  // float min_value = 6;
  void clear_min_value();
  float min_value() const;
  void set_min_value(float value);
  private:
  float _internal_min_value() const;
  void _internal_set_min_value(float value);
  public:

  // float max_value = 7;
  void clear_max_value();
  float max_value() const;
  void set_max_value(float value);
  private:
  float _internal_max_value() const;
  void _internal_set_max_value(float value);
  public:

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.StimulationInfo)
 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> emotion_events_;
  float value_;
  float velocity_;
  float accel_;
  float value_before_event_;
  float min_value_;
  float max_value_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class AudioSendModeRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.AudioSendModeRequest) */ {
 public:
  inline AudioSendModeRequest() : AudioSendModeRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~AudioSendModeRequest();

  AudioSendModeRequest(const AudioSendModeRequest& from);
  AudioSendModeRequest(AudioSendModeRequest&& from) noexcept
    : AudioSendModeRequest() {
    *this = ::std::move(from);
  }

  inline AudioSendModeRequest& operator=(const AudioSendModeRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AudioSendModeRequest& operator=(AudioSendModeRequest&& 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 AudioSendModeRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AudioSendModeRequest* internal_default_instance() {
    return reinterpret_cast<const AudioSendModeRequest*>(
               &_AudioSendModeRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    118;

  friend void swap(AudioSendModeRequest& a, AudioSendModeRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(AudioSendModeRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AudioSendModeRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline AudioSendModeRequest* New() const final {
    return CreateMaybeMessage<AudioSendModeRequest>(nullptr);
  }

  AudioSendModeRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<AudioSendModeRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const AudioSendModeRequest& from);
  void MergeFrom(const AudioSendModeRequest& 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(AudioSendModeRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.AudioSendModeRequest";
  }
  protected:
  explicit AudioSendModeRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kModeFieldNumber = 1,
  };
  // .Anki.Vector.external_interface.AudioProcessingMode mode = 1;
  void clear_mode();
  ::Anki::Vector::external_interface::AudioProcessingMode mode() const;
  void set_mode(::Anki::Vector::external_interface::AudioProcessingMode value);
  private:
  ::Anki::Vector::external_interface::AudioProcessingMode _internal_mode() const;
  void _internal_set_mode(::Anki::Vector::external_interface::AudioProcessingMode value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit AudioSendModeRequest( ::Anki::Vector::external_interface::AudioProcessingMode mode );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.AudioSendModeRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  int mode_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class AudioSendModeChanged PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.AudioSendModeChanged) */ {
 public:
  inline AudioSendModeChanged() : AudioSendModeChanged(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~AudioSendModeChanged();

  AudioSendModeChanged(const AudioSendModeChanged& from);
  AudioSendModeChanged(AudioSendModeChanged&& from) noexcept
    : AudioSendModeChanged() {
    *this = ::std::move(from);
  }

  inline AudioSendModeChanged& operator=(const AudioSendModeChanged& from) {
    CopyFrom(from);
    return *this;
  }
  inline AudioSendModeChanged& operator=(AudioSendModeChanged&& 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 AudioSendModeChanged& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AudioSendModeChanged* internal_default_instance() {
    return reinterpret_cast<const AudioSendModeChanged*>(
               &_AudioSendModeChanged_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    119;

  friend void swap(AudioSendModeChanged& a, AudioSendModeChanged& b) {
    a.Swap(&b);
  }
  inline void Swap(AudioSendModeChanged* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AudioSendModeChanged* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline AudioSendModeChanged* New() const final {
    return CreateMaybeMessage<AudioSendModeChanged>(nullptr);
  }

  AudioSendModeChanged* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<AudioSendModeChanged>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const AudioSendModeChanged& from);
  void MergeFrom(const AudioSendModeChanged& 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(AudioSendModeChanged* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.AudioSendModeChanged";
  }
  protected:
  explicit AudioSendModeChanged(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kModeFieldNumber = 1,
  };
  // .Anki.Vector.external_interface.AudioProcessingMode mode = 1;
  void clear_mode();
  ::Anki::Vector::external_interface::AudioProcessingMode mode() const;
  void set_mode(::Anki::Vector::external_interface::AudioProcessingMode value);
  private:
  ::Anki::Vector::external_interface::AudioProcessingMode _internal_mode() const;
  void _internal_set_mode(::Anki::Vector::external_interface::AudioProcessingMode value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit AudioSendModeChanged( ::Anki::Vector::external_interface::AudioProcessingMode mode );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.AudioSendModeChanged)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  int mode_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class AudioChunk PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.AudioChunk) */ {
 public:
  inline AudioChunk() : AudioChunk(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~AudioChunk();

  AudioChunk(const AudioChunk& from);
  AudioChunk(AudioChunk&& from) noexcept
    : AudioChunk() {
    *this = ::std::move(from);
  }

  inline AudioChunk& operator=(const AudioChunk& from) {
    CopyFrom(from);
    return *this;
  }
  inline AudioChunk& operator=(AudioChunk&& 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 AudioChunk& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AudioChunk* internal_default_instance() {
    return reinterpret_cast<const AudioChunk*>(
               &_AudioChunk_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    120;

  friend void swap(AudioChunk& a, AudioChunk& b) {
    a.Swap(&b);
  }
  inline void Swap(AudioChunk* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AudioChunk* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline AudioChunk* New() const final {
    return CreateMaybeMessage<AudioChunk>(nullptr);
  }

  AudioChunk* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<AudioChunk>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const AudioChunk& from);
  void MergeFrom(const AudioChunk& 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(AudioChunk* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.AudioChunk";
  }
  protected:
  explicit AudioChunk(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kSignalPowerFieldNumber = 5,
    kDirectionStrengthsFieldNumber = 6,
    kRobotTimeStampFieldNumber = 1,
    kGroupIdFieldNumber = 2,
    kChunkIdFieldNumber = 3,
    kAudioChunkCountFieldNumber = 4,
    kSourceDirectionFieldNumber = 7,
    kSourceConfidenceFieldNumber = 8,
    kNoiseFloorPowerFieldNumber = 9,
  };
  // bytes signal_power = 5;
  void clear_signal_power();
  const std::string& signal_power() const;
  void set_signal_power(const std::string& value);
  void set_signal_power(std::string&& value);
  void set_signal_power(const char* value);
  void set_signal_power(const void* value, size_t size);
  std::string* mutable_signal_power();
  std::string* release_signal_power();
  void set_allocated_signal_power(std::string* signal_power);
  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_signal_power();
  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_signal_power(
      std::string* signal_power);
  private:
  const std::string& _internal_signal_power() const;
  void _internal_set_signal_power(const std::string& value);
  std::string* _internal_mutable_signal_power();
  public:

  // bytes direction_strengths = 6;
  void clear_direction_strengths();
  const std::string& direction_strengths() const;
  void set_direction_strengths(const std::string& value);
  void set_direction_strengths(std::string&& value);
  void set_direction_strengths(const char* value);
  void set_direction_strengths(const void* value, size_t size);
  std::string* mutable_direction_strengths();
  std::string* release_direction_strengths();
  void set_allocated_direction_strengths(std::string* direction_strengths);
  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_direction_strengths();
  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_direction_strengths(
      std::string* direction_strengths);
  private:
  const std::string& _internal_direction_strengths() const;
  void _internal_set_direction_strengths(const std::string& value);
  std::string* _internal_mutable_direction_strengths();
  public:

  // uint32 robot_time_stamp = 1;
  void clear_robot_time_stamp();
  ::PROTOBUF_NAMESPACE_ID::uint32 robot_time_stamp() const;
  void set_robot_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_robot_time_stamp() const;
  void _internal_set_robot_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 group_id = 2;
  void clear_group_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 group_id() const;
  void set_group_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_group_id() const;
  void _internal_set_group_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 chunk_id = 3;
  void clear_chunk_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 chunk_id() const;
  void set_chunk_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_chunk_id() const;
  void _internal_set_chunk_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 audio_chunk_count = 4;
  void clear_audio_chunk_count();
  ::PROTOBUF_NAMESPACE_ID::uint32 audio_chunk_count() const;
  void set_audio_chunk_count(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_audio_chunk_count() const;
  void _internal_set_audio_chunk_count(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 source_direction = 7;
  void clear_source_direction();
  ::PROTOBUF_NAMESPACE_ID::uint32 source_direction() const;
  void set_source_direction(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_source_direction() const;
  void _internal_set_source_direction(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 source_confidence = 8;
  void clear_source_confidence();
  ::PROTOBUF_NAMESPACE_ID::uint32 source_confidence() const;
  void set_source_confidence(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_source_confidence() const;
  void _internal_set_source_confidence(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 noise_floor_power = 9;
  void clear_noise_floor_power();
  ::PROTOBUF_NAMESPACE_ID::uint32 noise_floor_power() const;
  void set_noise_floor_power(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_noise_floor_power() const;
  void _internal_set_noise_floor_power(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  AudioChunk( ::google::protobuf::uint32 robot_time_stamp, ::google::protobuf::uint32 group_id, ::google::protobuf::uint32 chunk_id, ::google::protobuf::uint32 audio_chunk_count, const std::string& signal_power, const std::string& direction_strengths, ::google::protobuf::uint32 source_direction, ::google::protobuf::uint32 source_confidence, ::google::protobuf::uint32 noise_floor_power );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.AudioChunk)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr signal_power_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr direction_strengths_;
  ::PROTOBUF_NAMESPACE_ID::uint32 robot_time_stamp_;
  ::PROTOBUF_NAMESPACE_ID::uint32 group_id_;
  ::PROTOBUF_NAMESPACE_ID::uint32 chunk_id_;
  ::PROTOBUF_NAMESPACE_ID::uint32 audio_chunk_count_;
  ::PROTOBUF_NAMESPACE_ID::uint32 source_direction_;
  ::PROTOBUF_NAMESPACE_ID::uint32 source_confidence_;
  ::PROTOBUF_NAMESPACE_ID::uint32 noise_floor_power_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class AudioFeedRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.AudioFeedRequest) */ {
 public:
  inline AudioFeedRequest() : AudioFeedRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~AudioFeedRequest();

  AudioFeedRequest(const AudioFeedRequest& from);
  AudioFeedRequest(AudioFeedRequest&& from) noexcept
    : AudioFeedRequest() {
    *this = ::std::move(from);
  }

  inline AudioFeedRequest& operator=(const AudioFeedRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AudioFeedRequest& operator=(AudioFeedRequest&& 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 AudioFeedRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AudioFeedRequest* internal_default_instance() {
    return reinterpret_cast<const AudioFeedRequest*>(
               &_AudioFeedRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    121;

  friend void swap(AudioFeedRequest& a, AudioFeedRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(AudioFeedRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AudioFeedRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline AudioFeedRequest* New() const final {
    return CreateMaybeMessage<AudioFeedRequest>(nullptr);
  }

  AudioFeedRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<AudioFeedRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const AudioFeedRequest& from);
  void MergeFrom(const AudioFeedRequest& 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(AudioFeedRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.AudioFeedRequest";
  }
  protected:
  explicit AudioFeedRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.AudioFeedRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class AudioFeedResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.AudioFeedResponse) */ {
 public:
  inline AudioFeedResponse() : AudioFeedResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~AudioFeedResponse();

  AudioFeedResponse(const AudioFeedResponse& from);
  AudioFeedResponse(AudioFeedResponse&& from) noexcept
    : AudioFeedResponse() {
    *this = ::std::move(from);
  }

  inline AudioFeedResponse& operator=(const AudioFeedResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline AudioFeedResponse& operator=(AudioFeedResponse&& 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 AudioFeedResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AudioFeedResponse* internal_default_instance() {
    return reinterpret_cast<const AudioFeedResponse*>(
               &_AudioFeedResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    122;

  friend void swap(AudioFeedResponse& a, AudioFeedResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(AudioFeedResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AudioFeedResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline AudioFeedResponse* New() const final {
    return CreateMaybeMessage<AudioFeedResponse>(nullptr);
  }

  AudioFeedResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<AudioFeedResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const AudioFeedResponse& from);
  void MergeFrom(const AudioFeedResponse& 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(AudioFeedResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.AudioFeedResponse";
  }
  protected:
  explicit AudioFeedResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kSignalPowerFieldNumber = 3,
    kDirectionStrengthsFieldNumber = 4,
    kRobotTimeStampFieldNumber = 1,
    kGroupIdFieldNumber = 2,
    kSourceDirectionFieldNumber = 5,
    kSourceConfidenceFieldNumber = 6,
    kNoiseFloorPowerFieldNumber = 7,
  };
  // bytes signal_power = 3;
  void clear_signal_power();
  const std::string& signal_power() const;
  void set_signal_power(const std::string& value);
  void set_signal_power(std::string&& value);
  void set_signal_power(const char* value);
  void set_signal_power(const void* value, size_t size);
  std::string* mutable_signal_power();
  std::string* release_signal_power();
  void set_allocated_signal_power(std::string* signal_power);
  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_signal_power();
  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_signal_power(
      std::string* signal_power);
  private:
  const std::string& _internal_signal_power() const;
  void _internal_set_signal_power(const std::string& value);
  std::string* _internal_mutable_signal_power();
  public:

  // bytes direction_strengths = 4;
  void clear_direction_strengths();
  const std::string& direction_strengths() const;
  void set_direction_strengths(const std::string& value);
  void set_direction_strengths(std::string&& value);
  void set_direction_strengths(const char* value);
  void set_direction_strengths(const void* value, size_t size);
  std::string* mutable_direction_strengths();
  std::string* release_direction_strengths();
  void set_allocated_direction_strengths(std::string* direction_strengths);
  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_direction_strengths();
  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_direction_strengths(
      std::string* direction_strengths);
  private:
  const std::string& _internal_direction_strengths() const;
  void _internal_set_direction_strengths(const std::string& value);
  std::string* _internal_mutable_direction_strengths();
  public:

  // uint32 robot_time_stamp = 1;
  void clear_robot_time_stamp();
  ::PROTOBUF_NAMESPACE_ID::uint32 robot_time_stamp() const;
  void set_robot_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_robot_time_stamp() const;
  void _internal_set_robot_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 group_id = 2;
  void clear_group_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 group_id() const;
  void set_group_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_group_id() const;
  void _internal_set_group_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 source_direction = 5;
  void clear_source_direction();
  ::PROTOBUF_NAMESPACE_ID::uint32 source_direction() const;
  void set_source_direction(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_source_direction() const;
  void _internal_set_source_direction(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 source_confidence = 6;
  void clear_source_confidence();
  ::PROTOBUF_NAMESPACE_ID::uint32 source_confidence() const;
  void set_source_confidence(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_source_confidence() const;
  void _internal_set_source_confidence(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 noise_floor_power = 7;
  void clear_noise_floor_power();
  ::PROTOBUF_NAMESPACE_ID::uint32 noise_floor_power() const;
  void set_noise_floor_power(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_noise_floor_power() const;
  void _internal_set_noise_floor_power(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  AudioFeedResponse( ::google::protobuf::uint32 robot_time_stamp, ::google::protobuf::uint32 group_id, const std::string& signal_power, const std::string& direction_strengths, ::google::protobuf::uint32 source_direction, ::google::protobuf::uint32 source_confidence, ::google::protobuf::uint32 noise_floor_power );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.AudioFeedResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr signal_power_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr direction_strengths_;
  ::PROTOBUF_NAMESPACE_ID::uint32 robot_time_stamp_;
  ::PROTOBUF_NAMESPACE_ID::uint32 group_id_;
  ::PROTOBUF_NAMESPACE_ID::uint32 source_direction_;
  ::PROTOBUF_NAMESPACE_ID::uint32 source_confidence_;
  ::PROTOBUF_NAMESPACE_ID::uint32 noise_floor_power_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ExternalAudioStreamPrepare PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ExternalAudioStreamPrepare) */ {
 public:
  inline ExternalAudioStreamPrepare() : ExternalAudioStreamPrepare(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ExternalAudioStreamPrepare();

  ExternalAudioStreamPrepare(const ExternalAudioStreamPrepare& from);
  ExternalAudioStreamPrepare(ExternalAudioStreamPrepare&& from) noexcept
    : ExternalAudioStreamPrepare() {
    *this = ::std::move(from);
  }

  inline ExternalAudioStreamPrepare& operator=(const ExternalAudioStreamPrepare& from) {
    CopyFrom(from);
    return *this;
  }
  inline ExternalAudioStreamPrepare& operator=(ExternalAudioStreamPrepare&& 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 ExternalAudioStreamPrepare& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ExternalAudioStreamPrepare* internal_default_instance() {
    return reinterpret_cast<const ExternalAudioStreamPrepare*>(
               &_ExternalAudioStreamPrepare_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    123;

  friend void swap(ExternalAudioStreamPrepare& a, ExternalAudioStreamPrepare& b) {
    a.Swap(&b);
  }
  inline void Swap(ExternalAudioStreamPrepare* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ExternalAudioStreamPrepare* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ExternalAudioStreamPrepare* New() const final {
    return CreateMaybeMessage<ExternalAudioStreamPrepare>(nullptr);
  }

  ExternalAudioStreamPrepare* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ExternalAudioStreamPrepare>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ExternalAudioStreamPrepare& from);
  void MergeFrom(const ExternalAudioStreamPrepare& 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(ExternalAudioStreamPrepare* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ExternalAudioStreamPrepare";
  }
  protected:
  explicit ExternalAudioStreamPrepare(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kAudioFrameRateFieldNumber = 1,
    kAudioVolumeFieldNumber = 2,
  };
  // uint32 audio_frame_rate = 1;
  void clear_audio_frame_rate();
  ::PROTOBUF_NAMESPACE_ID::uint32 audio_frame_rate() const;
  void set_audio_frame_rate(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_audio_frame_rate() const;
  void _internal_set_audio_frame_rate(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 audio_volume = 2;
  void clear_audio_volume();
  ::PROTOBUF_NAMESPACE_ID::uint32 audio_volume() const;
  void set_audio_volume(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_audio_volume() const;
  void _internal_set_audio_volume(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  ExternalAudioStreamPrepare( ::google::protobuf::uint32 audio_frame_rate, ::google::protobuf::uint32 audio_volume );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::uint32 audio_frame_rate_;
  ::PROTOBUF_NAMESPACE_ID::uint32 audio_volume_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ExternalAudioStreamChunk PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ExternalAudioStreamChunk) */ {
 public:
  inline ExternalAudioStreamChunk() : ExternalAudioStreamChunk(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ExternalAudioStreamChunk();

  ExternalAudioStreamChunk(const ExternalAudioStreamChunk& from);
  ExternalAudioStreamChunk(ExternalAudioStreamChunk&& from) noexcept
    : ExternalAudioStreamChunk() {
    *this = ::std::move(from);
  }

  inline ExternalAudioStreamChunk& operator=(const ExternalAudioStreamChunk& from) {
    CopyFrom(from);
    return *this;
  }
  inline ExternalAudioStreamChunk& operator=(ExternalAudioStreamChunk&& 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 ExternalAudioStreamChunk& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ExternalAudioStreamChunk* internal_default_instance() {
    return reinterpret_cast<const ExternalAudioStreamChunk*>(
               &_ExternalAudioStreamChunk_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    124;

  friend void swap(ExternalAudioStreamChunk& a, ExternalAudioStreamChunk& b) {
    a.Swap(&b);
  }
  inline void Swap(ExternalAudioStreamChunk* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ExternalAudioStreamChunk* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ExternalAudioStreamChunk* New() const final {
    return CreateMaybeMessage<ExternalAudioStreamChunk>(nullptr);
  }

  ExternalAudioStreamChunk* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ExternalAudioStreamChunk>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ExternalAudioStreamChunk& from);
  void MergeFrom(const ExternalAudioStreamChunk& 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(ExternalAudioStreamChunk* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ExternalAudioStreamChunk";
  }
  protected:
  explicit ExternalAudioStreamChunk(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kAudioChunkSamplesFieldNumber = 2,
    kAudioChunkSizeBytesFieldNumber = 1,
  };
  // bytes audio_chunk_samples = 2;
  void clear_audio_chunk_samples();
  const std::string& audio_chunk_samples() const;
  void set_audio_chunk_samples(const std::string& value);
  void set_audio_chunk_samples(std::string&& value);
  void set_audio_chunk_samples(const char* value);
  void set_audio_chunk_samples(const void* value, size_t size);
  std::string* mutable_audio_chunk_samples();
  std::string* release_audio_chunk_samples();
  void set_allocated_audio_chunk_samples(std::string* audio_chunk_samples);
  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_audio_chunk_samples();
  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_audio_chunk_samples(
      std::string* audio_chunk_samples);
  private:
  const std::string& _internal_audio_chunk_samples() const;
  void _internal_set_audio_chunk_samples(const std::string& value);
  std::string* _internal_mutable_audio_chunk_samples();
  public:

  // uint32 audio_chunk_size_bytes = 1;
  void clear_audio_chunk_size_bytes();
  ::PROTOBUF_NAMESPACE_ID::uint32 audio_chunk_size_bytes() const;
  void set_audio_chunk_size_bytes(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_audio_chunk_size_bytes() const;
  void _internal_set_audio_chunk_size_bytes(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  ExternalAudioStreamChunk( ::google::protobuf::uint32 audio_chunk_size_bytes, const std::string& audio_chunk_samples );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ExternalAudioStreamChunk)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr audio_chunk_samples_;
  ::PROTOBUF_NAMESPACE_ID::uint32 audio_chunk_size_bytes_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ExternalAudioStreamComplete PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ExternalAudioStreamComplete) */ {
 public:
  inline ExternalAudioStreamComplete() : ExternalAudioStreamComplete(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ExternalAudioStreamComplete();

  ExternalAudioStreamComplete(const ExternalAudioStreamComplete& from);
  ExternalAudioStreamComplete(ExternalAudioStreamComplete&& from) noexcept
    : ExternalAudioStreamComplete() {
    *this = ::std::move(from);
  }

  inline ExternalAudioStreamComplete& operator=(const ExternalAudioStreamComplete& from) {
    CopyFrom(from);
    return *this;
  }
  inline ExternalAudioStreamComplete& operator=(ExternalAudioStreamComplete&& 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 ExternalAudioStreamComplete& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ExternalAudioStreamComplete* internal_default_instance() {
    return reinterpret_cast<const ExternalAudioStreamComplete*>(
               &_ExternalAudioStreamComplete_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    125;

  friend void swap(ExternalAudioStreamComplete& a, ExternalAudioStreamComplete& b) {
    a.Swap(&b);
  }
  inline void Swap(ExternalAudioStreamComplete* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ExternalAudioStreamComplete* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ExternalAudioStreamComplete* New() const final {
    return CreateMaybeMessage<ExternalAudioStreamComplete>(nullptr);
  }

  ExternalAudioStreamComplete* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ExternalAudioStreamComplete>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ExternalAudioStreamComplete& from);
  void MergeFrom(const ExternalAudioStreamComplete& 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(ExternalAudioStreamComplete* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ExternalAudioStreamComplete";
  }
  protected:
  explicit ExternalAudioStreamComplete(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ExternalAudioStreamComplete)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ExternalAudioStreamCancel PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ExternalAudioStreamCancel) */ {
 public:
  inline ExternalAudioStreamCancel() : ExternalAudioStreamCancel(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ExternalAudioStreamCancel();

  ExternalAudioStreamCancel(const ExternalAudioStreamCancel& from);
  ExternalAudioStreamCancel(ExternalAudioStreamCancel&& from) noexcept
    : ExternalAudioStreamCancel() {
    *this = ::std::move(from);
  }

  inline ExternalAudioStreamCancel& operator=(const ExternalAudioStreamCancel& from) {
    CopyFrom(from);
    return *this;
  }
  inline ExternalAudioStreamCancel& operator=(ExternalAudioStreamCancel&& 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 ExternalAudioStreamCancel& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ExternalAudioStreamCancel* internal_default_instance() {
    return reinterpret_cast<const ExternalAudioStreamCancel*>(
               &_ExternalAudioStreamCancel_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    126;

  friend void swap(ExternalAudioStreamCancel& a, ExternalAudioStreamCancel& b) {
    a.Swap(&b);
  }
  inline void Swap(ExternalAudioStreamCancel* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ExternalAudioStreamCancel* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ExternalAudioStreamCancel* New() const final {
    return CreateMaybeMessage<ExternalAudioStreamCancel>(nullptr);
  }

  ExternalAudioStreamCancel* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ExternalAudioStreamCancel>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ExternalAudioStreamCancel& from);
  void MergeFrom(const ExternalAudioStreamCancel& 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(ExternalAudioStreamCancel* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ExternalAudioStreamCancel";
  }
  protected:
  explicit ExternalAudioStreamCancel(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ExternalAudioStreamCancel)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ExternalAudioStreamRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ExternalAudioStreamRequest) */ {
 public:
  inline ExternalAudioStreamRequest() : ExternalAudioStreamRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ExternalAudioStreamRequest();

  ExternalAudioStreamRequest(const ExternalAudioStreamRequest& from);
  ExternalAudioStreamRequest(ExternalAudioStreamRequest&& from) noexcept
    : ExternalAudioStreamRequest() {
    *this = ::std::move(from);
  }

  inline ExternalAudioStreamRequest& operator=(const ExternalAudioStreamRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ExternalAudioStreamRequest& operator=(ExternalAudioStreamRequest&& 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 ExternalAudioStreamRequest& default_instance();

  enum AudioRequestTypeCase {
    kAudioStreamPrepare = 1,
    kAudioStreamChunk = 2,
    kAudioStreamComplete = 3,
    kAudioStreamCancel = 4,
    AUDIO_REQUEST_TYPE_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ExternalAudioStreamRequest* internal_default_instance() {
    return reinterpret_cast<const ExternalAudioStreamRequest*>(
               &_ExternalAudioStreamRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    127;

  friend void swap(ExternalAudioStreamRequest& a, ExternalAudioStreamRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ExternalAudioStreamRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ExternalAudioStreamRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ExternalAudioStreamRequest* New() const final {
    return CreateMaybeMessage<ExternalAudioStreamRequest>(nullptr);
  }

  ExternalAudioStreamRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ExternalAudioStreamRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ExternalAudioStreamRequest& from);
  void MergeFrom(const ExternalAudioStreamRequest& 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(ExternalAudioStreamRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ExternalAudioStreamRequest";
  }
  protected:
  explicit ExternalAudioStreamRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kAudioStreamPrepareFieldNumber = 1,
    kAudioStreamChunkFieldNumber = 2,
    kAudioStreamCompleteFieldNumber = 3,
    kAudioStreamCancelFieldNumber = 4,
  };
  // .Anki.Vector.external_interface.ExternalAudioStreamPrepare audio_stream_prepare = 1;
  bool has_audio_stream_prepare() const;
  private:
  bool _internal_has_audio_stream_prepare() const;
  public:
  void clear_audio_stream_prepare();
  const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare& audio_stream_prepare() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* release_audio_stream_prepare();
  ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* mutable_audio_stream_prepare();
  void set_allocated_audio_stream_prepare(::Anki::Vector::external_interface::ExternalAudioStreamPrepare* audio_stream_prepare);
  private:
  const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare& _internal_audio_stream_prepare() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* _internal_mutable_audio_stream_prepare();
  public:
  void unsafe_arena_set_allocated_audio_stream_prepare(
      ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* audio_stream_prepare);
  ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* unsafe_arena_release_audio_stream_prepare();

  // .Anki.Vector.external_interface.ExternalAudioStreamChunk audio_stream_chunk = 2;
  bool has_audio_stream_chunk() const;
  private:
  bool _internal_has_audio_stream_chunk() const;
  public:
  void clear_audio_stream_chunk();
  const ::Anki::Vector::external_interface::ExternalAudioStreamChunk& audio_stream_chunk() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamChunk* release_audio_stream_chunk();
  ::Anki::Vector::external_interface::ExternalAudioStreamChunk* mutable_audio_stream_chunk();
  void set_allocated_audio_stream_chunk(::Anki::Vector::external_interface::ExternalAudioStreamChunk* audio_stream_chunk);
  private:
  const ::Anki::Vector::external_interface::ExternalAudioStreamChunk& _internal_audio_stream_chunk() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamChunk* _internal_mutable_audio_stream_chunk();
  public:
  void unsafe_arena_set_allocated_audio_stream_chunk(
      ::Anki::Vector::external_interface::ExternalAudioStreamChunk* audio_stream_chunk);
  ::Anki::Vector::external_interface::ExternalAudioStreamChunk* unsafe_arena_release_audio_stream_chunk();

  // .Anki.Vector.external_interface.ExternalAudioStreamComplete audio_stream_complete = 3;
  bool has_audio_stream_complete() const;
  private:
  bool _internal_has_audio_stream_complete() const;
  public:
  void clear_audio_stream_complete();
  const ::Anki::Vector::external_interface::ExternalAudioStreamComplete& audio_stream_complete() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamComplete* release_audio_stream_complete();
  ::Anki::Vector::external_interface::ExternalAudioStreamComplete* mutable_audio_stream_complete();
  void set_allocated_audio_stream_complete(::Anki::Vector::external_interface::ExternalAudioStreamComplete* audio_stream_complete);
  private:
  const ::Anki::Vector::external_interface::ExternalAudioStreamComplete& _internal_audio_stream_complete() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamComplete* _internal_mutable_audio_stream_complete();
  public:
  void unsafe_arena_set_allocated_audio_stream_complete(
      ::Anki::Vector::external_interface::ExternalAudioStreamComplete* audio_stream_complete);
  ::Anki::Vector::external_interface::ExternalAudioStreamComplete* unsafe_arena_release_audio_stream_complete();

  // .Anki.Vector.external_interface.ExternalAudioStreamCancel audio_stream_cancel = 4;
  bool has_audio_stream_cancel() const;
  private:
  bool _internal_has_audio_stream_cancel() const;
  public:
  void clear_audio_stream_cancel();
  const ::Anki::Vector::external_interface::ExternalAudioStreamCancel& audio_stream_cancel() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamCancel* release_audio_stream_cancel();
  ::Anki::Vector::external_interface::ExternalAudioStreamCancel* mutable_audio_stream_cancel();
  void set_allocated_audio_stream_cancel(::Anki::Vector::external_interface::ExternalAudioStreamCancel* audio_stream_cancel);
  private:
  const ::Anki::Vector::external_interface::ExternalAudioStreamCancel& _internal_audio_stream_cancel() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamCancel* _internal_mutable_audio_stream_cancel();
  public:
  void unsafe_arena_set_allocated_audio_stream_cancel(
      ::Anki::Vector::external_interface::ExternalAudioStreamCancel* audio_stream_cancel);
  ::Anki::Vector::external_interface::ExternalAudioStreamCancel* unsafe_arena_release_audio_stream_cancel();

  void clear_audio_request_type();
  AudioRequestTypeCase audio_request_type_case() const;
  
  // Begin code inserted by Anki plugin.
  explicit ExternalAudioStreamRequest( ExternalAudioStreamPrepare* audio_stream_prepare );
  explicit ExternalAudioStreamRequest( ExternalAudioStreamChunk* audio_stream_chunk );
  explicit ExternalAudioStreamRequest( ExternalAudioStreamComplete* audio_stream_complete );
  explicit ExternalAudioStreamRequest( ExternalAudioStreamCancel* audio_stream_cancel );
  // End code inserted by Anki plugin.
  
  
  // Begin code inserted by Anki plugin.
  inline ::Anki::Vector::external_interface::ExternalAudioStreamRequestTag GetTag() const {
    return static_cast<::Anki::Vector::external_interface::ExternalAudioStreamRequestTag>( _oneof_case_[0] );
  }
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ExternalAudioStreamRequest)
 private:
  class _Internal;
  void set_has_audio_stream_prepare();
  void set_has_audio_stream_chunk();
  void set_has_audio_stream_complete();
  void set_has_audio_stream_cancel();

  inline bool has_audio_request_type() const;
  inline void clear_has_audio_request_type();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  union AudioRequestTypeUnion {
    AudioRequestTypeUnion() {}
    ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* audio_stream_prepare_;
    ::Anki::Vector::external_interface::ExternalAudioStreamChunk* audio_stream_chunk_;
    ::Anki::Vector::external_interface::ExternalAudioStreamComplete* audio_stream_complete_;
    ::Anki::Vector::external_interface::ExternalAudioStreamCancel* audio_stream_cancel_;
  } audio_request_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ExternalAudioStreamPlaybackComplete PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete) */ {
 public:
  inline ExternalAudioStreamPlaybackComplete() : ExternalAudioStreamPlaybackComplete(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ExternalAudioStreamPlaybackComplete();

  ExternalAudioStreamPlaybackComplete(const ExternalAudioStreamPlaybackComplete& from);
  ExternalAudioStreamPlaybackComplete(ExternalAudioStreamPlaybackComplete&& from) noexcept
    : ExternalAudioStreamPlaybackComplete() {
    *this = ::std::move(from);
  }

  inline ExternalAudioStreamPlaybackComplete& operator=(const ExternalAudioStreamPlaybackComplete& from) {
    CopyFrom(from);
    return *this;
  }
  inline ExternalAudioStreamPlaybackComplete& operator=(ExternalAudioStreamPlaybackComplete&& 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 ExternalAudioStreamPlaybackComplete& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ExternalAudioStreamPlaybackComplete* internal_default_instance() {
    return reinterpret_cast<const ExternalAudioStreamPlaybackComplete*>(
               &_ExternalAudioStreamPlaybackComplete_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    128;

  friend void swap(ExternalAudioStreamPlaybackComplete& a, ExternalAudioStreamPlaybackComplete& b) {
    a.Swap(&b);
  }
  inline void Swap(ExternalAudioStreamPlaybackComplete* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ExternalAudioStreamPlaybackComplete* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ExternalAudioStreamPlaybackComplete* New() const final {
    return CreateMaybeMessage<ExternalAudioStreamPlaybackComplete>(nullptr);
  }

  ExternalAudioStreamPlaybackComplete* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ExternalAudioStreamPlaybackComplete>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ExternalAudioStreamPlaybackComplete& from);
  void MergeFrom(const ExternalAudioStreamPlaybackComplete& 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(ExternalAudioStreamPlaybackComplete* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete";
  }
  protected:
  explicit ExternalAudioStreamPlaybackComplete(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ExternalAudioStreamPlaybackFailure PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure) */ {
 public:
  inline ExternalAudioStreamPlaybackFailure() : ExternalAudioStreamPlaybackFailure(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ExternalAudioStreamPlaybackFailure();

  ExternalAudioStreamPlaybackFailure(const ExternalAudioStreamPlaybackFailure& from);
  ExternalAudioStreamPlaybackFailure(ExternalAudioStreamPlaybackFailure&& from) noexcept
    : ExternalAudioStreamPlaybackFailure() {
    *this = ::std::move(from);
  }

  inline ExternalAudioStreamPlaybackFailure& operator=(const ExternalAudioStreamPlaybackFailure& from) {
    CopyFrom(from);
    return *this;
  }
  inline ExternalAudioStreamPlaybackFailure& operator=(ExternalAudioStreamPlaybackFailure&& 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 ExternalAudioStreamPlaybackFailure& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ExternalAudioStreamPlaybackFailure* internal_default_instance() {
    return reinterpret_cast<const ExternalAudioStreamPlaybackFailure*>(
               &_ExternalAudioStreamPlaybackFailure_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    129;

  friend void swap(ExternalAudioStreamPlaybackFailure& a, ExternalAudioStreamPlaybackFailure& b) {
    a.Swap(&b);
  }
  inline void Swap(ExternalAudioStreamPlaybackFailure* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ExternalAudioStreamPlaybackFailure* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ExternalAudioStreamPlaybackFailure* New() const final {
    return CreateMaybeMessage<ExternalAudioStreamPlaybackFailure>(nullptr);
  }

  ExternalAudioStreamPlaybackFailure* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ExternalAudioStreamPlaybackFailure>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ExternalAudioStreamPlaybackFailure& from);
  void MergeFrom(const ExternalAudioStreamPlaybackFailure& 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(ExternalAudioStreamPlaybackFailure* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure";
  }
  protected:
  explicit ExternalAudioStreamPlaybackFailure(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ExternalAudioStreamBufferOverrun PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun) */ {
 public:
  inline ExternalAudioStreamBufferOverrun() : ExternalAudioStreamBufferOverrun(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ExternalAudioStreamBufferOverrun();

  ExternalAudioStreamBufferOverrun(const ExternalAudioStreamBufferOverrun& from);
  ExternalAudioStreamBufferOverrun(ExternalAudioStreamBufferOverrun&& from) noexcept
    : ExternalAudioStreamBufferOverrun() {
    *this = ::std::move(from);
  }

  inline ExternalAudioStreamBufferOverrun& operator=(const ExternalAudioStreamBufferOverrun& from) {
    CopyFrom(from);
    return *this;
  }
  inline ExternalAudioStreamBufferOverrun& operator=(ExternalAudioStreamBufferOverrun&& 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 ExternalAudioStreamBufferOverrun& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ExternalAudioStreamBufferOverrun* internal_default_instance() {
    return reinterpret_cast<const ExternalAudioStreamBufferOverrun*>(
               &_ExternalAudioStreamBufferOverrun_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    130;

  friend void swap(ExternalAudioStreamBufferOverrun& a, ExternalAudioStreamBufferOverrun& b) {
    a.Swap(&b);
  }
  inline void Swap(ExternalAudioStreamBufferOverrun* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ExternalAudioStreamBufferOverrun* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ExternalAudioStreamBufferOverrun* New() const final {
    return CreateMaybeMessage<ExternalAudioStreamBufferOverrun>(nullptr);
  }

  ExternalAudioStreamBufferOverrun* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ExternalAudioStreamBufferOverrun>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ExternalAudioStreamBufferOverrun& from);
  void MergeFrom(const ExternalAudioStreamBufferOverrun& 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(ExternalAudioStreamBufferOverrun* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun";
  }
  protected:
  explicit ExternalAudioStreamBufferOverrun(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kAudioSamplesSentFieldNumber = 1,
    kAudioSamplesPlayedFieldNumber = 2,
  };
  // uint32 audio_samples_sent = 1;
  void clear_audio_samples_sent();
  ::PROTOBUF_NAMESPACE_ID::uint32 audio_samples_sent() const;
  void set_audio_samples_sent(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_audio_samples_sent() const;
  void _internal_set_audio_samples_sent(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 audio_samples_played = 2;
  void clear_audio_samples_played();
  ::PROTOBUF_NAMESPACE_ID::uint32 audio_samples_played() const;
  void set_audio_samples_played(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_audio_samples_played() const;
  void _internal_set_audio_samples_played(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  ExternalAudioStreamBufferOverrun( ::google::protobuf::uint32 audio_samples_sent, ::google::protobuf::uint32 audio_samples_played );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::uint32 audio_samples_sent_;
  ::PROTOBUF_NAMESPACE_ID::uint32 audio_samples_played_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ExternalAudioStreamResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ExternalAudioStreamResponse) */ {
 public:
  inline ExternalAudioStreamResponse() : ExternalAudioStreamResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ExternalAudioStreamResponse();

  ExternalAudioStreamResponse(const ExternalAudioStreamResponse& from);
  ExternalAudioStreamResponse(ExternalAudioStreamResponse&& from) noexcept
    : ExternalAudioStreamResponse() {
    *this = ::std::move(from);
  }

  inline ExternalAudioStreamResponse& operator=(const ExternalAudioStreamResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ExternalAudioStreamResponse& operator=(ExternalAudioStreamResponse&& 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 ExternalAudioStreamResponse& default_instance();

  enum AudioResponseTypeCase {
    kAudioStreamPlaybackComplete = 1,
    kAudioStreamBufferOverrun = 2,
    kAudioStreamPlaybackFailyer = 3,
    AUDIO_RESPONSE_TYPE_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ExternalAudioStreamResponse* internal_default_instance() {
    return reinterpret_cast<const ExternalAudioStreamResponse*>(
               &_ExternalAudioStreamResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    131;

  friend void swap(ExternalAudioStreamResponse& a, ExternalAudioStreamResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ExternalAudioStreamResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ExternalAudioStreamResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ExternalAudioStreamResponse* New() const final {
    return CreateMaybeMessage<ExternalAudioStreamResponse>(nullptr);
  }

  ExternalAudioStreamResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ExternalAudioStreamResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ExternalAudioStreamResponse& from);
  void MergeFrom(const ExternalAudioStreamResponse& 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(ExternalAudioStreamResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ExternalAudioStreamResponse";
  }
  protected:
  explicit ExternalAudioStreamResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kAudioStreamPlaybackCompleteFieldNumber = 1,
    kAudioStreamBufferOverrunFieldNumber = 2,
    kAudioStreamPlaybackFailyerFieldNumber = 3,
  };
  // .Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete audio_stream_playback_complete = 1;
  bool has_audio_stream_playback_complete() const;
  private:
  bool _internal_has_audio_stream_playback_complete() const;
  public:
  void clear_audio_stream_playback_complete();
  const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete& audio_stream_playback_complete() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* release_audio_stream_playback_complete();
  ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* mutable_audio_stream_playback_complete();
  void set_allocated_audio_stream_playback_complete(::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* audio_stream_playback_complete);
  private:
  const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete& _internal_audio_stream_playback_complete() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* _internal_mutable_audio_stream_playback_complete();
  public:
  void unsafe_arena_set_allocated_audio_stream_playback_complete(
      ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* audio_stream_playback_complete);
  ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* unsafe_arena_release_audio_stream_playback_complete();

  // .Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun audio_stream_buffer_overrun = 2;
  bool has_audio_stream_buffer_overrun() const;
  private:
  bool _internal_has_audio_stream_buffer_overrun() const;
  public:
  void clear_audio_stream_buffer_overrun();
  const ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun& audio_stream_buffer_overrun() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* release_audio_stream_buffer_overrun();
  ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* mutable_audio_stream_buffer_overrun();
  void set_allocated_audio_stream_buffer_overrun(::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* audio_stream_buffer_overrun);
  private:
  const ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun& _internal_audio_stream_buffer_overrun() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* _internal_mutable_audio_stream_buffer_overrun();
  public:
  void unsafe_arena_set_allocated_audio_stream_buffer_overrun(
      ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* audio_stream_buffer_overrun);
  ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* unsafe_arena_release_audio_stream_buffer_overrun();

  // .Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure audio_stream_playback_failyer = 3;
  bool has_audio_stream_playback_failyer() const;
  private:
  bool _internal_has_audio_stream_playback_failyer() const;
  public:
  void clear_audio_stream_playback_failyer();
  const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure& audio_stream_playback_failyer() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* release_audio_stream_playback_failyer();
  ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* mutable_audio_stream_playback_failyer();
  void set_allocated_audio_stream_playback_failyer(::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* audio_stream_playback_failyer);
  private:
  const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure& _internal_audio_stream_playback_failyer() const;
  ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* _internal_mutable_audio_stream_playback_failyer();
  public:
  void unsafe_arena_set_allocated_audio_stream_playback_failyer(
      ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* audio_stream_playback_failyer);
  ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* unsafe_arena_release_audio_stream_playback_failyer();

  void clear_audio_response_type();
  AudioResponseTypeCase audio_response_type_case() const;
  
  // Begin code inserted by Anki plugin.
  explicit ExternalAudioStreamResponse( ExternalAudioStreamPlaybackComplete* audio_stream_playback_complete );
  explicit ExternalAudioStreamResponse( ExternalAudioStreamBufferOverrun* audio_stream_buffer_overrun );
  explicit ExternalAudioStreamResponse( ExternalAudioStreamPlaybackFailure* audio_stream_playback_failyer );
  // End code inserted by Anki plugin.
  
  
  // Begin code inserted by Anki plugin.
  inline ::Anki::Vector::external_interface::ExternalAudioStreamResponseTag GetTag() const {
    return static_cast<::Anki::Vector::external_interface::ExternalAudioStreamResponseTag>( _oneof_case_[0] );
  }
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ExternalAudioStreamResponse)
 private:
  class _Internal;
  void set_has_audio_stream_playback_complete();
  void set_has_audio_stream_buffer_overrun();
  void set_has_audio_stream_playback_failyer();

  inline bool has_audio_response_type() const;
  inline void clear_has_audio_response_type();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  union AudioResponseTypeUnion {
    AudioResponseTypeUnion() {}
    ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* audio_stream_playback_complete_;
    ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* audio_stream_buffer_overrun_;
    ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* audio_stream_playback_failyer_;
  } audio_response_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class MasterVolumeRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.MasterVolumeRequest) */ {
 public:
  inline MasterVolumeRequest() : MasterVolumeRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~MasterVolumeRequest();

  MasterVolumeRequest(const MasterVolumeRequest& from);
  MasterVolumeRequest(MasterVolumeRequest&& from) noexcept
    : MasterVolumeRequest() {
    *this = ::std::move(from);
  }

  inline MasterVolumeRequest& operator=(const MasterVolumeRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline MasterVolumeRequest& operator=(MasterVolumeRequest&& 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 MasterVolumeRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const MasterVolumeRequest* internal_default_instance() {
    return reinterpret_cast<const MasterVolumeRequest*>(
               &_MasterVolumeRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    132;

  friend void swap(MasterVolumeRequest& a, MasterVolumeRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(MasterVolumeRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MasterVolumeRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline MasterVolumeRequest* New() const final {
    return CreateMaybeMessage<MasterVolumeRequest>(nullptr);
  }

  MasterVolumeRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<MasterVolumeRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const MasterVolumeRequest& from);
  void MergeFrom(const MasterVolumeRequest& 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(MasterVolumeRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.MasterVolumeRequest";
  }
  protected:
  explicit MasterVolumeRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kVolumeLevelFieldNumber = 1,
  };
  // .Anki.Vector.external_interface.MasterVolumeLevel volume_level = 1;
  void clear_volume_level();
  ::Anki::Vector::external_interface::MasterVolumeLevel volume_level() const;
  void set_volume_level(::Anki::Vector::external_interface::MasterVolumeLevel value);
  private:
  ::Anki::Vector::external_interface::MasterVolumeLevel _internal_volume_level() const;
  void _internal_set_volume_level(::Anki::Vector::external_interface::MasterVolumeLevel value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit MasterVolumeRequest( ::Anki::Vector::external_interface::MasterVolumeLevel volume_level );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.MasterVolumeRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  int volume_level_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class MasterVolumeResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.MasterVolumeResponse) */ {
 public:
  inline MasterVolumeResponse() : MasterVolumeResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~MasterVolumeResponse();

  MasterVolumeResponse(const MasterVolumeResponse& from);
  MasterVolumeResponse(MasterVolumeResponse&& from) noexcept
    : MasterVolumeResponse() {
    *this = ::std::move(from);
  }

  inline MasterVolumeResponse& operator=(const MasterVolumeResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline MasterVolumeResponse& operator=(MasterVolumeResponse&& 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 MasterVolumeResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const MasterVolumeResponse* internal_default_instance() {
    return reinterpret_cast<const MasterVolumeResponse*>(
               &_MasterVolumeResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    133;

  friend void swap(MasterVolumeResponse& a, MasterVolumeResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(MasterVolumeResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MasterVolumeResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline MasterVolumeResponse* New() const final {
    return CreateMaybeMessage<MasterVolumeResponse>(nullptr);
  }

  MasterVolumeResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<MasterVolumeResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const MasterVolumeResponse& from);
  void MergeFrom(const MasterVolumeResponse& 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(MasterVolumeResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.MasterVolumeResponse";
  }
  protected:
  explicit MasterVolumeResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
  };
  // .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();

  
  // Begin code inserted by Anki plugin.
  explicit MasterVolumeResponse( ResponseStatus* status );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.MasterVolumeResponse)
 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_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class EnableMarkerDetectionRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.EnableMarkerDetectionRequest) */ {
 public:
  inline EnableMarkerDetectionRequest() : EnableMarkerDetectionRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~EnableMarkerDetectionRequest();

  EnableMarkerDetectionRequest(const EnableMarkerDetectionRequest& from);
  EnableMarkerDetectionRequest(EnableMarkerDetectionRequest&& from) noexcept
    : EnableMarkerDetectionRequest() {
    *this = ::std::move(from);
  }

  inline EnableMarkerDetectionRequest& operator=(const EnableMarkerDetectionRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnableMarkerDetectionRequest& operator=(EnableMarkerDetectionRequest&& 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 EnableMarkerDetectionRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const EnableMarkerDetectionRequest* internal_default_instance() {
    return reinterpret_cast<const EnableMarkerDetectionRequest*>(
               &_EnableMarkerDetectionRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    134;

  friend void swap(EnableMarkerDetectionRequest& a, EnableMarkerDetectionRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(EnableMarkerDetectionRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnableMarkerDetectionRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline EnableMarkerDetectionRequest* New() const final {
    return CreateMaybeMessage<EnableMarkerDetectionRequest>(nullptr);
  }

  EnableMarkerDetectionRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<EnableMarkerDetectionRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const EnableMarkerDetectionRequest& from);
  void MergeFrom(const EnableMarkerDetectionRequest& 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(EnableMarkerDetectionRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.EnableMarkerDetectionRequest";
  }
  protected:
  explicit EnableMarkerDetectionRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kEnableFieldNumber = 1,
  };
  // bool enable = 1;
  void clear_enable();
  bool enable() const;
  void set_enable(bool value);
  private:
  bool _internal_enable() const;
  void _internal_set_enable(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit EnableMarkerDetectionRequest( bool enable );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  bool enable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class EnableMarkerDetectionResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.EnableMarkerDetectionResponse) */ {
 public:
  inline EnableMarkerDetectionResponse() : EnableMarkerDetectionResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~EnableMarkerDetectionResponse();

  EnableMarkerDetectionResponse(const EnableMarkerDetectionResponse& from);
  EnableMarkerDetectionResponse(EnableMarkerDetectionResponse&& from) noexcept
    : EnableMarkerDetectionResponse() {
    *this = ::std::move(from);
  }

  inline EnableMarkerDetectionResponse& operator=(const EnableMarkerDetectionResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnableMarkerDetectionResponse& operator=(EnableMarkerDetectionResponse&& 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 EnableMarkerDetectionResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const EnableMarkerDetectionResponse* internal_default_instance() {
    return reinterpret_cast<const EnableMarkerDetectionResponse*>(
               &_EnableMarkerDetectionResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    135;

  friend void swap(EnableMarkerDetectionResponse& a, EnableMarkerDetectionResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(EnableMarkerDetectionResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnableMarkerDetectionResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline EnableMarkerDetectionResponse* New() const final {
    return CreateMaybeMessage<EnableMarkerDetectionResponse>(nullptr);
  }

  EnableMarkerDetectionResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<EnableMarkerDetectionResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const EnableMarkerDetectionResponse& from);
  void MergeFrom(const EnableMarkerDetectionResponse& 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(EnableMarkerDetectionResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.EnableMarkerDetectionResponse";
  }
  protected:
  explicit EnableMarkerDetectionResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
  };
  // .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();

  
  // Begin code inserted by Anki plugin.
  explicit EnableMarkerDetectionResponse( ResponseStatus* status );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
 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_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class EnableFaceDetectionRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.EnableFaceDetectionRequest) */ {
 public:
  inline EnableFaceDetectionRequest() : EnableFaceDetectionRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~EnableFaceDetectionRequest();

  EnableFaceDetectionRequest(const EnableFaceDetectionRequest& from);
  EnableFaceDetectionRequest(EnableFaceDetectionRequest&& from) noexcept
    : EnableFaceDetectionRequest() {
    *this = ::std::move(from);
  }

  inline EnableFaceDetectionRequest& operator=(const EnableFaceDetectionRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnableFaceDetectionRequest& operator=(EnableFaceDetectionRequest&& 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 EnableFaceDetectionRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const EnableFaceDetectionRequest* internal_default_instance() {
    return reinterpret_cast<const EnableFaceDetectionRequest*>(
               &_EnableFaceDetectionRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    136;

  friend void swap(EnableFaceDetectionRequest& a, EnableFaceDetectionRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(EnableFaceDetectionRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnableFaceDetectionRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline EnableFaceDetectionRequest* New() const final {
    return CreateMaybeMessage<EnableFaceDetectionRequest>(nullptr);
  }

  EnableFaceDetectionRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<EnableFaceDetectionRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const EnableFaceDetectionRequest& from);
  void MergeFrom(const EnableFaceDetectionRequest& 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(EnableFaceDetectionRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.EnableFaceDetectionRequest";
  }
  protected:
  explicit EnableFaceDetectionRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kEnableFieldNumber = 1,
    kEnableSmileDetectionFieldNumber = 2,
    kEnableExpressionEstimationFieldNumber = 3,
    kEnableBlinkDetectionFieldNumber = 4,
    kEnableGazeDetectionFieldNumber = 5,
  };
  // bool enable = 1;
  void clear_enable();
  bool enable() const;
  void set_enable(bool value);
  private:
  bool _internal_enable() const;
  void _internal_set_enable(bool value);
  public:

  // bool enable_smile_detection = 2;
  void clear_enable_smile_detection();
  bool enable_smile_detection() const;
  void set_enable_smile_detection(bool value);
  private:
  bool _internal_enable_smile_detection() const;
  void _internal_set_enable_smile_detection(bool value);
  public:

  // bool enable_expression_estimation = 3;
  void clear_enable_expression_estimation();
  bool enable_expression_estimation() const;
  void set_enable_expression_estimation(bool value);
  private:
  bool _internal_enable_expression_estimation() const;
  void _internal_set_enable_expression_estimation(bool value);
  public:

  // bool enable_blink_detection = 4;
  void clear_enable_blink_detection();
  bool enable_blink_detection() const;
  void set_enable_blink_detection(bool value);
  private:
  bool _internal_enable_blink_detection() const;
  void _internal_set_enable_blink_detection(bool value);
  public:

  // bool enable_gaze_detection = 5;
  void clear_enable_gaze_detection();
  bool enable_gaze_detection() const;
  void set_enable_gaze_detection(bool value);
  private:
  bool _internal_enable_gaze_detection() const;
  void _internal_set_enable_gaze_detection(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  EnableFaceDetectionRequest( bool enable, bool enable_smile_detection, bool enable_expression_estimation, bool enable_blink_detection, bool enable_gaze_detection );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EnableFaceDetectionRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  bool enable_;
  bool enable_smile_detection_;
  bool enable_expression_estimation_;
  bool enable_blink_detection_;
  bool enable_gaze_detection_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class EnableFaceDetectionResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.EnableFaceDetectionResponse) */ {
 public:
  inline EnableFaceDetectionResponse() : EnableFaceDetectionResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~EnableFaceDetectionResponse();

  EnableFaceDetectionResponse(const EnableFaceDetectionResponse& from);
  EnableFaceDetectionResponse(EnableFaceDetectionResponse&& from) noexcept
    : EnableFaceDetectionResponse() {
    *this = ::std::move(from);
  }

  inline EnableFaceDetectionResponse& operator=(const EnableFaceDetectionResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnableFaceDetectionResponse& operator=(EnableFaceDetectionResponse&& 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 EnableFaceDetectionResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const EnableFaceDetectionResponse* internal_default_instance() {
    return reinterpret_cast<const EnableFaceDetectionResponse*>(
               &_EnableFaceDetectionResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    137;

  friend void swap(EnableFaceDetectionResponse& a, EnableFaceDetectionResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(EnableFaceDetectionResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnableFaceDetectionResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline EnableFaceDetectionResponse* New() const final {
    return CreateMaybeMessage<EnableFaceDetectionResponse>(nullptr);
  }

  EnableFaceDetectionResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<EnableFaceDetectionResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const EnableFaceDetectionResponse& from);
  void MergeFrom(const EnableFaceDetectionResponse& 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(EnableFaceDetectionResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.EnableFaceDetectionResponse";
  }
  protected:
  explicit EnableFaceDetectionResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
  };
  // .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();

  
  // Begin code inserted by Anki plugin.
  explicit EnableFaceDetectionResponse( ResponseStatus* status );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EnableFaceDetectionResponse)
 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_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class EnableMotionDetectionRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.EnableMotionDetectionRequest) */ {
 public:
  inline EnableMotionDetectionRequest() : EnableMotionDetectionRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~EnableMotionDetectionRequest();

  EnableMotionDetectionRequest(const EnableMotionDetectionRequest& from);
  EnableMotionDetectionRequest(EnableMotionDetectionRequest&& from) noexcept
    : EnableMotionDetectionRequest() {
    *this = ::std::move(from);
  }

  inline EnableMotionDetectionRequest& operator=(const EnableMotionDetectionRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnableMotionDetectionRequest& operator=(EnableMotionDetectionRequest&& 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 EnableMotionDetectionRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const EnableMotionDetectionRequest* internal_default_instance() {
    return reinterpret_cast<const EnableMotionDetectionRequest*>(
               &_EnableMotionDetectionRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    138;

  friend void swap(EnableMotionDetectionRequest& a, EnableMotionDetectionRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(EnableMotionDetectionRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnableMotionDetectionRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline EnableMotionDetectionRequest* New() const final {
    return CreateMaybeMessage<EnableMotionDetectionRequest>(nullptr);
  }

  EnableMotionDetectionRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<EnableMotionDetectionRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const EnableMotionDetectionRequest& from);
  void MergeFrom(const EnableMotionDetectionRequest& 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(EnableMotionDetectionRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.EnableMotionDetectionRequest";
  }
  protected:
  explicit EnableMotionDetectionRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kEnableFieldNumber = 1,
  };
  // bool enable = 1;
  void clear_enable();
  bool enable() const;
  void set_enable(bool value);
  private:
  bool _internal_enable() const;
  void _internal_set_enable(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit EnableMotionDetectionRequest( bool enable );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EnableMotionDetectionRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  bool enable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class EnableMotionDetectionResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.EnableMotionDetectionResponse) */ {
 public:
  inline EnableMotionDetectionResponse() : EnableMotionDetectionResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~EnableMotionDetectionResponse();

  EnableMotionDetectionResponse(const EnableMotionDetectionResponse& from);
  EnableMotionDetectionResponse(EnableMotionDetectionResponse&& from) noexcept
    : EnableMotionDetectionResponse() {
    *this = ::std::move(from);
  }

  inline EnableMotionDetectionResponse& operator=(const EnableMotionDetectionResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnableMotionDetectionResponse& operator=(EnableMotionDetectionResponse&& 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 EnableMotionDetectionResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const EnableMotionDetectionResponse* internal_default_instance() {
    return reinterpret_cast<const EnableMotionDetectionResponse*>(
               &_EnableMotionDetectionResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    139;

  friend void swap(EnableMotionDetectionResponse& a, EnableMotionDetectionResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(EnableMotionDetectionResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnableMotionDetectionResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline EnableMotionDetectionResponse* New() const final {
    return CreateMaybeMessage<EnableMotionDetectionResponse>(nullptr);
  }

  EnableMotionDetectionResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<EnableMotionDetectionResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const EnableMotionDetectionResponse& from);
  void MergeFrom(const EnableMotionDetectionResponse& 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(EnableMotionDetectionResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.EnableMotionDetectionResponse";
  }
  protected:
  explicit EnableMotionDetectionResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
  };
  // .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();

  
  // Begin code inserted by Anki plugin.
  explicit EnableMotionDetectionResponse( ResponseStatus* status );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EnableMotionDetectionResponse)
 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_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class EnableMirrorModeRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.EnableMirrorModeRequest) */ {
 public:
  inline EnableMirrorModeRequest() : EnableMirrorModeRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~EnableMirrorModeRequest();

  EnableMirrorModeRequest(const EnableMirrorModeRequest& from);
  EnableMirrorModeRequest(EnableMirrorModeRequest&& from) noexcept
    : EnableMirrorModeRequest() {
    *this = ::std::move(from);
  }

  inline EnableMirrorModeRequest& operator=(const EnableMirrorModeRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnableMirrorModeRequest& operator=(EnableMirrorModeRequest&& 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 EnableMirrorModeRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const EnableMirrorModeRequest* internal_default_instance() {
    return reinterpret_cast<const EnableMirrorModeRequest*>(
               &_EnableMirrorModeRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    140;

  friend void swap(EnableMirrorModeRequest& a, EnableMirrorModeRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(EnableMirrorModeRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnableMirrorModeRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline EnableMirrorModeRequest* New() const final {
    return CreateMaybeMessage<EnableMirrorModeRequest>(nullptr);
  }

  EnableMirrorModeRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<EnableMirrorModeRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const EnableMirrorModeRequest& from);
  void MergeFrom(const EnableMirrorModeRequest& 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(EnableMirrorModeRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.EnableMirrorModeRequest";
  }
  protected:
  explicit EnableMirrorModeRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kEnableFieldNumber = 1,
  };
  // bool enable = 1;
  void clear_enable();
  bool enable() const;
  void set_enable(bool value);
  private:
  bool _internal_enable() const;
  void _internal_set_enable(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit EnableMirrorModeRequest( bool enable );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EnableMirrorModeRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  bool enable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class EnableMirrorModeResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.EnableMirrorModeResponse) */ {
 public:
  inline EnableMirrorModeResponse() : EnableMirrorModeResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~EnableMirrorModeResponse();

  EnableMirrorModeResponse(const EnableMirrorModeResponse& from);
  EnableMirrorModeResponse(EnableMirrorModeResponse&& from) noexcept
    : EnableMirrorModeResponse() {
    *this = ::std::move(from);
  }

  inline EnableMirrorModeResponse& operator=(const EnableMirrorModeResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnableMirrorModeResponse& operator=(EnableMirrorModeResponse&& 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 EnableMirrorModeResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const EnableMirrorModeResponse* internal_default_instance() {
    return reinterpret_cast<const EnableMirrorModeResponse*>(
               &_EnableMirrorModeResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    141;

  friend void swap(EnableMirrorModeResponse& a, EnableMirrorModeResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(EnableMirrorModeResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnableMirrorModeResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline EnableMirrorModeResponse* New() const final {
    return CreateMaybeMessage<EnableMirrorModeResponse>(nullptr);
  }

  EnableMirrorModeResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<EnableMirrorModeResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const EnableMirrorModeResponse& from);
  void MergeFrom(const EnableMirrorModeResponse& 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(EnableMirrorModeResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.EnableMirrorModeResponse";
  }
  protected:
  explicit EnableMirrorModeResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
  };
  // .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();

  
  // Begin code inserted by Anki plugin.
  explicit EnableMirrorModeResponse( ResponseStatus* status );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EnableMirrorModeResponse)
 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_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class MirrorModeDisabled PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.MirrorModeDisabled) */ {
 public:
  inline MirrorModeDisabled() : MirrorModeDisabled(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~MirrorModeDisabled();

  MirrorModeDisabled(const MirrorModeDisabled& from);
  MirrorModeDisabled(MirrorModeDisabled&& from) noexcept
    : MirrorModeDisabled() {
    *this = ::std::move(from);
  }

  inline MirrorModeDisabled& operator=(const MirrorModeDisabled& from) {
    CopyFrom(from);
    return *this;
  }
  inline MirrorModeDisabled& operator=(MirrorModeDisabled&& 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 MirrorModeDisabled& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const MirrorModeDisabled* internal_default_instance() {
    return reinterpret_cast<const MirrorModeDisabled*>(
               &_MirrorModeDisabled_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    142;

  friend void swap(MirrorModeDisabled& a, MirrorModeDisabled& b) {
    a.Swap(&b);
  }
  inline void Swap(MirrorModeDisabled* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MirrorModeDisabled* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline MirrorModeDisabled* New() const final {
    return CreateMaybeMessage<MirrorModeDisabled>(nullptr);
  }

  MirrorModeDisabled* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<MirrorModeDisabled>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const MirrorModeDisabled& from);
  void MergeFrom(const MirrorModeDisabled& 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(MirrorModeDisabled* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.MirrorModeDisabled";
  }
  protected:
  explicit MirrorModeDisabled(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.MirrorModeDisabled)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class EnableImageStreamingRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.EnableImageStreamingRequest) */ {
 public:
  inline EnableImageStreamingRequest() : EnableImageStreamingRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~EnableImageStreamingRequest();

  EnableImageStreamingRequest(const EnableImageStreamingRequest& from);
  EnableImageStreamingRequest(EnableImageStreamingRequest&& from) noexcept
    : EnableImageStreamingRequest() {
    *this = ::std::move(from);
  }

  inline EnableImageStreamingRequest& operator=(const EnableImageStreamingRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnableImageStreamingRequest& operator=(EnableImageStreamingRequest&& 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 EnableImageStreamingRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const EnableImageStreamingRequest* internal_default_instance() {
    return reinterpret_cast<const EnableImageStreamingRequest*>(
               &_EnableImageStreamingRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    143;

  friend void swap(EnableImageStreamingRequest& a, EnableImageStreamingRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(EnableImageStreamingRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnableImageStreamingRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline EnableImageStreamingRequest* New() const final {
    return CreateMaybeMessage<EnableImageStreamingRequest>(nullptr);
  }

  EnableImageStreamingRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<EnableImageStreamingRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const EnableImageStreamingRequest& from);
  void MergeFrom(const EnableImageStreamingRequest& 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(EnableImageStreamingRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.EnableImageStreamingRequest";
  }
  protected:
  explicit EnableImageStreamingRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kEnableFieldNumber = 1,
    kEnableHighResolutionFieldNumber = 2,
  };
  // bool enable = 1;
  void clear_enable();
  bool enable() const;
  void set_enable(bool value);
  private:
  bool _internal_enable() const;
  void _internal_set_enable(bool value);
  public:

  // bool enable_high_resolution = 2;
  void clear_enable_high_resolution();
  bool enable_high_resolution() const;
  void set_enable_high_resolution(bool value);
  private:
  bool _internal_enable_high_resolution() const;
  void _internal_set_enable_high_resolution(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  EnableImageStreamingRequest( bool enable, bool enable_high_resolution );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EnableImageStreamingRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  bool enable_;
  bool enable_high_resolution_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class EnableImageStreamingResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.EnableImageStreamingResponse) */ {
 public:
  inline EnableImageStreamingResponse() : EnableImageStreamingResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~EnableImageStreamingResponse();

  EnableImageStreamingResponse(const EnableImageStreamingResponse& from);
  EnableImageStreamingResponse(EnableImageStreamingResponse&& from) noexcept
    : EnableImageStreamingResponse() {
    *this = ::std::move(from);
  }

  inline EnableImageStreamingResponse& operator=(const EnableImageStreamingResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnableImageStreamingResponse& operator=(EnableImageStreamingResponse&& 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 EnableImageStreamingResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const EnableImageStreamingResponse* internal_default_instance() {
    return reinterpret_cast<const EnableImageStreamingResponse*>(
               &_EnableImageStreamingResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    144;

  friend void swap(EnableImageStreamingResponse& a, EnableImageStreamingResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(EnableImageStreamingResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnableImageStreamingResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline EnableImageStreamingResponse* New() const final {
    return CreateMaybeMessage<EnableImageStreamingResponse>(nullptr);
  }

  EnableImageStreamingResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<EnableImageStreamingResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const EnableImageStreamingResponse& from);
  void MergeFrom(const EnableImageStreamingResponse& 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(EnableImageStreamingResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.EnableImageStreamingResponse";
  }
  protected:
  explicit EnableImageStreamingResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
  };
  // .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();

  
  // Begin code inserted by Anki plugin.
  explicit EnableImageStreamingResponse( ResponseStatus* status );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.EnableImageStreamingResponse)
 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_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class IsImageStreamingEnabledRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.IsImageStreamingEnabledRequest) */ {
 public:
  inline IsImageStreamingEnabledRequest() : IsImageStreamingEnabledRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~IsImageStreamingEnabledRequest();

  IsImageStreamingEnabledRequest(const IsImageStreamingEnabledRequest& from);
  IsImageStreamingEnabledRequest(IsImageStreamingEnabledRequest&& from) noexcept
    : IsImageStreamingEnabledRequest() {
    *this = ::std::move(from);
  }

  inline IsImageStreamingEnabledRequest& operator=(const IsImageStreamingEnabledRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline IsImageStreamingEnabledRequest& operator=(IsImageStreamingEnabledRequest&& 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 IsImageStreamingEnabledRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const IsImageStreamingEnabledRequest* internal_default_instance() {
    return reinterpret_cast<const IsImageStreamingEnabledRequest*>(
               &_IsImageStreamingEnabledRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    145;

  friend void swap(IsImageStreamingEnabledRequest& a, IsImageStreamingEnabledRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(IsImageStreamingEnabledRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IsImageStreamingEnabledRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline IsImageStreamingEnabledRequest* New() const final {
    return CreateMaybeMessage<IsImageStreamingEnabledRequest>(nullptr);
  }

  IsImageStreamingEnabledRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<IsImageStreamingEnabledRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const IsImageStreamingEnabledRequest& from);
  void MergeFrom(const IsImageStreamingEnabledRequest& 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(IsImageStreamingEnabledRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.IsImageStreamingEnabledRequest";
  }
  protected:
  explicit IsImageStreamingEnabledRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class IsImageStreamingEnabledResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.IsImageStreamingEnabledResponse) */ {
 public:
  inline IsImageStreamingEnabledResponse() : IsImageStreamingEnabledResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~IsImageStreamingEnabledResponse();

  IsImageStreamingEnabledResponse(const IsImageStreamingEnabledResponse& from);
  IsImageStreamingEnabledResponse(IsImageStreamingEnabledResponse&& from) noexcept
    : IsImageStreamingEnabledResponse() {
    *this = ::std::move(from);
  }

  inline IsImageStreamingEnabledResponse& operator=(const IsImageStreamingEnabledResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline IsImageStreamingEnabledResponse& operator=(IsImageStreamingEnabledResponse&& 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 IsImageStreamingEnabledResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const IsImageStreamingEnabledResponse* internal_default_instance() {
    return reinterpret_cast<const IsImageStreamingEnabledResponse*>(
               &_IsImageStreamingEnabledResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    146;

  friend void swap(IsImageStreamingEnabledResponse& a, IsImageStreamingEnabledResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(IsImageStreamingEnabledResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IsImageStreamingEnabledResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline IsImageStreamingEnabledResponse* New() const final {
    return CreateMaybeMessage<IsImageStreamingEnabledResponse>(nullptr);
  }

  IsImageStreamingEnabledResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<IsImageStreamingEnabledResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const IsImageStreamingEnabledResponse& from);
  void MergeFrom(const IsImageStreamingEnabledResponse& 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(IsImageStreamingEnabledResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.IsImageStreamingEnabledResponse";
  }
  protected:
  explicit IsImageStreamingEnabledResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kIsImageStreamingEnabledFieldNumber = 1,
  };
  // bool is_image_streaming_enabled = 1;
  void clear_is_image_streaming_enabled();
  bool is_image_streaming_enabled() const;
  void set_is_image_streaming_enabled(bool value);
  private:
  bool _internal_is_image_streaming_enabled() const;
  void _internal_set_is_image_streaming_enabled(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit IsImageStreamingEnabledResponse( bool is_image_streaming_enabled );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  bool is_image_streaming_enabled_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class VisionModesAutoDisabled PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.VisionModesAutoDisabled) */ {
 public:
  inline VisionModesAutoDisabled() : VisionModesAutoDisabled(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~VisionModesAutoDisabled();

  VisionModesAutoDisabled(const VisionModesAutoDisabled& from);
  VisionModesAutoDisabled(VisionModesAutoDisabled&& from) noexcept
    : VisionModesAutoDisabled() {
    *this = ::std::move(from);
  }

  inline VisionModesAutoDisabled& operator=(const VisionModesAutoDisabled& from) {
    CopyFrom(from);
    return *this;
  }
  inline VisionModesAutoDisabled& operator=(VisionModesAutoDisabled&& 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 VisionModesAutoDisabled& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const VisionModesAutoDisabled* internal_default_instance() {
    return reinterpret_cast<const VisionModesAutoDisabled*>(
               &_VisionModesAutoDisabled_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    147;

  friend void swap(VisionModesAutoDisabled& a, VisionModesAutoDisabled& b) {
    a.Swap(&b);
  }
  inline void Swap(VisionModesAutoDisabled* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(VisionModesAutoDisabled* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline VisionModesAutoDisabled* New() const final {
    return CreateMaybeMessage<VisionModesAutoDisabled>(nullptr);
  }

  VisionModesAutoDisabled* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<VisionModesAutoDisabled>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const VisionModesAutoDisabled& from);
  void MergeFrom(const VisionModesAutoDisabled& 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(VisionModesAutoDisabled* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.VisionModesAutoDisabled";
  }
  protected:
  explicit VisionModesAutoDisabled(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.VisionModesAutoDisabled)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class ImageChunk PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.ImageChunk) */ {
 public:
  inline ImageChunk() : ImageChunk(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~ImageChunk();

  ImageChunk(const ImageChunk& from);
  ImageChunk(ImageChunk&& from) noexcept
    : ImageChunk() {
    *this = ::std::move(from);
  }

  inline ImageChunk& operator=(const ImageChunk& from) {
    CopyFrom(from);
    return *this;
  }
  inline ImageChunk& operator=(ImageChunk&& 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 ImageChunk& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ImageChunk* internal_default_instance() {
    return reinterpret_cast<const ImageChunk*>(
               &_ImageChunk_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    148;

  friend void swap(ImageChunk& a, ImageChunk& b) {
    a.Swap(&b);
  }
  inline void Swap(ImageChunk* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ImageChunk* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ImageChunk* New() const final {
    return CreateMaybeMessage<ImageChunk>(nullptr);
  }

  ImageChunk* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ImageChunk>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ImageChunk& from);
  void MergeFrom(const ImageChunk& 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(ImageChunk* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.ImageChunk";
  }
  protected:
  explicit ImageChunk(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef ImageChunk_ImageEncoding ImageEncoding;
  static constexpr ImageEncoding NONE_IMAGE_ENCODING =
    ImageChunk_ImageEncoding_NONE_IMAGE_ENCODING;
  static constexpr ImageEncoding RAW_GRAY =
    ImageChunk_ImageEncoding_RAW_GRAY;
  static constexpr ImageEncoding RAW_RGB =
    ImageChunk_ImageEncoding_RAW_RGB;
  static constexpr ImageEncoding YUYV =
    ImageChunk_ImageEncoding_YUYV;
  static constexpr ImageEncoding YUV420SP =
    ImageChunk_ImageEncoding_YUV420SP;
  static constexpr ImageEncoding BAYER =
    ImageChunk_ImageEncoding_BAYER;
  static constexpr ImageEncoding JPEG_GRAY =
    ImageChunk_ImageEncoding_JPEG_GRAY;
  static constexpr ImageEncoding JPEG_COLOR =
    ImageChunk_ImageEncoding_JPEG_COLOR;
  static constexpr ImageEncoding JPEG_COLOR_HALF_WIDTH =
    ImageChunk_ImageEncoding_JPEG_COLOR_HALF_WIDTH;
  static constexpr ImageEncoding JPEG_MINIMIZED_GRAY =
    ImageChunk_ImageEncoding_JPEG_MINIMIZED_GRAY;
  static constexpr ImageEncoding JPEG_MINIMIZED_COLOR =
    ImageChunk_ImageEncoding_JPEG_MINIMIZED_COLOR;
  static inline bool ImageEncoding_IsValid(int value) {
    return ImageChunk_ImageEncoding_IsValid(value);
  }
  static constexpr ImageEncoding ImageEncoding_MIN =
    ImageChunk_ImageEncoding_ImageEncoding_MIN;
  static constexpr ImageEncoding ImageEncoding_MAX =
    ImageChunk_ImageEncoding_ImageEncoding_MAX;
  static constexpr int ImageEncoding_ARRAYSIZE =
    ImageChunk_ImageEncoding_ImageEncoding_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  ImageEncoding_descriptor() {
    return ImageChunk_ImageEncoding_descriptor();
  }
  template<typename T>
  static inline const std::string& ImageEncoding_Name(T enum_t_value) {
    static_assert(::std::is_same<T, ImageEncoding>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function ImageEncoding_Name.");
    return ImageChunk_ImageEncoding_Name(enum_t_value);
  }
  static inline bool ImageEncoding_Parse(const std::string& name,
      ImageEncoding* value) {
    return ImageChunk_ImageEncoding_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kDataFieldNumber = 9,
    kFrameTimeStampFieldNumber = 1,
    kImageIdFieldNumber = 2,
    kWidthFieldNumber = 3,
    kHeightFieldNumber = 4,
    kImageEncodingFieldNumber = 5,
    kDisplayIndexFieldNumber = 6,
    kImageChunkCountFieldNumber = 7,
    kChunkIdFieldNumber = 8,
  };
  // bytes data = 9;
  void clear_data();
  const std::string& data() const;
  void set_data(const std::string& value);
  void set_data(std::string&& value);
  void set_data(const char* value);
  void set_data(const void* value, size_t size);
  std::string* mutable_data();
  std::string* release_data();
  void set_allocated_data(std::string* data);
  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_data();
  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_data(
      std::string* data);
  private:
  const std::string& _internal_data() const;
  void _internal_set_data(const std::string& value);
  std::string* _internal_mutable_data();
  public:

  // uint32 frame_time_stamp = 1;
  void clear_frame_time_stamp();
  ::PROTOBUF_NAMESPACE_ID::uint32 frame_time_stamp() const;
  void set_frame_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_frame_time_stamp() const;
  void _internal_set_frame_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 image_id = 2;
  void clear_image_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 image_id() const;
  void set_image_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_image_id() const;
  void _internal_set_image_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 width = 3;
  void clear_width();
  ::PROTOBUF_NAMESPACE_ID::uint32 width() const;
  void set_width(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_width() const;
  void _internal_set_width(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 height = 4;
  void clear_height();
  ::PROTOBUF_NAMESPACE_ID::uint32 height() const;
  void set_height(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_height() const;
  void _internal_set_height(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 5;
  void clear_image_encoding();
  ::Anki::Vector::external_interface::ImageChunk_ImageEncoding image_encoding() const;
  void set_image_encoding(::Anki::Vector::external_interface::ImageChunk_ImageEncoding value);
  private:
  ::Anki::Vector::external_interface::ImageChunk_ImageEncoding _internal_image_encoding() const;
  void _internal_set_image_encoding(::Anki::Vector::external_interface::ImageChunk_ImageEncoding value);
  public:

  // uint32 display_index = 6;
  void clear_display_index();
  ::PROTOBUF_NAMESPACE_ID::uint32 display_index() const;
  void set_display_index(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_display_index() const;
  void _internal_set_display_index(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 image_chunk_count = 7;
  void clear_image_chunk_count();
  ::PROTOBUF_NAMESPACE_ID::uint32 image_chunk_count() const;
  void set_image_chunk_count(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_image_chunk_count() const;
  void _internal_set_image_chunk_count(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 chunk_id = 8;
  void clear_chunk_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 chunk_id() const;
  void set_chunk_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_chunk_id() const;
  void _internal_set_chunk_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  ImageChunk( ::google::protobuf::uint32 frame_time_stamp, ::google::protobuf::uint32 image_id, ::google::protobuf::uint32 width, ::google::protobuf::uint32 height, ::Anki::Vector::external_interface::ImageChunk::ImageEncoding image_encoding, ::google::protobuf::uint32 display_index, ::google::protobuf::uint32 image_chunk_count, ::google::protobuf::uint32 chunk_id, const std::string& data );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ImageChunk)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr data_;
  ::PROTOBUF_NAMESPACE_ID::uint32 frame_time_stamp_;
  ::PROTOBUF_NAMESPACE_ID::uint32 image_id_;
  ::PROTOBUF_NAMESPACE_ID::uint32 width_;
  ::PROTOBUF_NAMESPACE_ID::uint32 height_;
  int image_encoding_;
  ::PROTOBUF_NAMESPACE_ID::uint32 display_index_;
  ::PROTOBUF_NAMESPACE_ID::uint32 image_chunk_count_;
  ::PROTOBUF_NAMESPACE_ID::uint32 chunk_id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CameraFeedRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CameraFeedRequest) */ {
 public:
  inline CameraFeedRequest() : CameraFeedRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CameraFeedRequest();

  CameraFeedRequest(const CameraFeedRequest& from);
  CameraFeedRequest(CameraFeedRequest&& from) noexcept
    : CameraFeedRequest() {
    *this = ::std::move(from);
  }

  inline CameraFeedRequest& operator=(const CameraFeedRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CameraFeedRequest& operator=(CameraFeedRequest&& 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 CameraFeedRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CameraFeedRequest* internal_default_instance() {
    return reinterpret_cast<const CameraFeedRequest*>(
               &_CameraFeedRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    149;

  friend void swap(CameraFeedRequest& a, CameraFeedRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(CameraFeedRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CameraFeedRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CameraFeedRequest* New() const final {
    return CreateMaybeMessage<CameraFeedRequest>(nullptr);
  }

  CameraFeedRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CameraFeedRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CameraFeedRequest& from);
  void MergeFrom(const CameraFeedRequest& 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(CameraFeedRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CameraFeedRequest";
  }
  protected:
  explicit CameraFeedRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CameraFeedRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CameraFeedResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CameraFeedResponse) */ {
 public:
  inline CameraFeedResponse() : CameraFeedResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CameraFeedResponse();

  CameraFeedResponse(const CameraFeedResponse& from);
  CameraFeedResponse(CameraFeedResponse&& from) noexcept
    : CameraFeedResponse() {
    *this = ::std::move(from);
  }

  inline CameraFeedResponse& operator=(const CameraFeedResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline CameraFeedResponse& operator=(CameraFeedResponse&& 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 CameraFeedResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CameraFeedResponse* internal_default_instance() {
    return reinterpret_cast<const CameraFeedResponse*>(
               &_CameraFeedResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    150;

  friend void swap(CameraFeedResponse& a, CameraFeedResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(CameraFeedResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CameraFeedResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CameraFeedResponse* New() const final {
    return CreateMaybeMessage<CameraFeedResponse>(nullptr);
  }

  CameraFeedResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CameraFeedResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CameraFeedResponse& from);
  void MergeFrom(const CameraFeedResponse& 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(CameraFeedResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CameraFeedResponse";
  }
  protected:
  explicit CameraFeedResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDataFieldNumber = 4,
    kFrameTimeStampFieldNumber = 1,
    kImageIdFieldNumber = 2,
    kImageEncodingFieldNumber = 3,
  };
  // bytes data = 4;
  void clear_data();
  const std::string& data() const;
  void set_data(const std::string& value);
  void set_data(std::string&& value);
  void set_data(const char* value);
  void set_data(const void* value, size_t size);
  std::string* mutable_data();
  std::string* release_data();
  void set_allocated_data(std::string* data);
  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_data();
  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_data(
      std::string* data);
  private:
  const std::string& _internal_data() const;
  void _internal_set_data(const std::string& value);
  std::string* _internal_mutable_data();
  public:

  // uint32 frame_time_stamp = 1;
  void clear_frame_time_stamp();
  ::PROTOBUF_NAMESPACE_ID::uint32 frame_time_stamp() const;
  void set_frame_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_frame_time_stamp() const;
  void _internal_set_frame_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 image_id = 2;
  void clear_image_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 image_id() const;
  void set_image_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_image_id() const;
  void _internal_set_image_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 3;
  void clear_image_encoding();
  ::Anki::Vector::external_interface::ImageChunk_ImageEncoding image_encoding() const;
  void set_image_encoding(::Anki::Vector::external_interface::ImageChunk_ImageEncoding value);
  private:
  ::Anki::Vector::external_interface::ImageChunk_ImageEncoding _internal_image_encoding() const;
  void _internal_set_image_encoding(::Anki::Vector::external_interface::ImageChunk_ImageEncoding value);
  public:

  
  // Begin code inserted by Anki plugin.
  CameraFeedResponse( ::google::protobuf::uint32 frame_time_stamp, ::google::protobuf::uint32 image_id, ::Anki::Vector::external_interface::ImageChunk::ImageEncoding image_encoding, const std::string& data );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CameraFeedResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr data_;
  ::PROTOBUF_NAMESPACE_ID::uint32 frame_time_stamp_;
  ::PROTOBUF_NAMESPACE_ID::uint32 image_id_;
  int image_encoding_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CaptureSingleImageRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CaptureSingleImageRequest) */ {
 public:
  inline CaptureSingleImageRequest() : CaptureSingleImageRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CaptureSingleImageRequest();

  CaptureSingleImageRequest(const CaptureSingleImageRequest& from);
  CaptureSingleImageRequest(CaptureSingleImageRequest&& from) noexcept
    : CaptureSingleImageRequest() {
    *this = ::std::move(from);
  }

  inline CaptureSingleImageRequest& operator=(const CaptureSingleImageRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CaptureSingleImageRequest& operator=(CaptureSingleImageRequest&& 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 CaptureSingleImageRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CaptureSingleImageRequest* internal_default_instance() {
    return reinterpret_cast<const CaptureSingleImageRequest*>(
               &_CaptureSingleImageRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    151;

  friend void swap(CaptureSingleImageRequest& a, CaptureSingleImageRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(CaptureSingleImageRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CaptureSingleImageRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CaptureSingleImageRequest* New() const final {
    return CreateMaybeMessage<CaptureSingleImageRequest>(nullptr);
  }

  CaptureSingleImageRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CaptureSingleImageRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CaptureSingleImageRequest& from);
  void MergeFrom(const CaptureSingleImageRequest& 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(CaptureSingleImageRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CaptureSingleImageRequest";
  }
  protected:
  explicit CaptureSingleImageRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kEnableHighResolutionFieldNumber = 1,
  };
  // bool enable_high_resolution = 1;
  void clear_enable_high_resolution();
  bool enable_high_resolution() const;
  void set_enable_high_resolution(bool value);
  private:
  bool _internal_enable_high_resolution() const;
  void _internal_set_enable_high_resolution(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit CaptureSingleImageRequest( bool enable_high_resolution );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CaptureSingleImageRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  bool enable_high_resolution_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CaptureSingleImageResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CaptureSingleImageResponse) */ {
 public:
  inline CaptureSingleImageResponse() : CaptureSingleImageResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CaptureSingleImageResponse();

  CaptureSingleImageResponse(const CaptureSingleImageResponse& from);
  CaptureSingleImageResponse(CaptureSingleImageResponse&& from) noexcept
    : CaptureSingleImageResponse() {
    *this = ::std::move(from);
  }

  inline CaptureSingleImageResponse& operator=(const CaptureSingleImageResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline CaptureSingleImageResponse& operator=(CaptureSingleImageResponse&& 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 CaptureSingleImageResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CaptureSingleImageResponse* internal_default_instance() {
    return reinterpret_cast<const CaptureSingleImageResponse*>(
               &_CaptureSingleImageResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    152;

  friend void swap(CaptureSingleImageResponse& a, CaptureSingleImageResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(CaptureSingleImageResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CaptureSingleImageResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CaptureSingleImageResponse* New() const final {
    return CreateMaybeMessage<CaptureSingleImageResponse>(nullptr);
  }

  CaptureSingleImageResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CaptureSingleImageResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CaptureSingleImageResponse& from);
  void MergeFrom(const CaptureSingleImageResponse& 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(CaptureSingleImageResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CaptureSingleImageResponse";
  }
  protected:
  explicit CaptureSingleImageResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDataFieldNumber = 5,
    kStatusFieldNumber = 1,
    kFrameTimeStampFieldNumber = 2,
    kImageIdFieldNumber = 3,
    kImageEncodingFieldNumber = 4,
  };
  // bytes data = 5;
  void clear_data();
  const std::string& data() const;
  void set_data(const std::string& value);
  void set_data(std::string&& value);
  void set_data(const char* value);
  void set_data(const void* value, size_t size);
  std::string* mutable_data();
  std::string* release_data();
  void set_allocated_data(std::string* data);
  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_data();
  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_data(
      std::string* data);
  private:
  const std::string& _internal_data() const;
  void _internal_set_data(const std::string& value);
  std::string* _internal_mutable_data();
  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();

  // uint32 frame_time_stamp = 2;
  void clear_frame_time_stamp();
  ::PROTOBUF_NAMESPACE_ID::uint32 frame_time_stamp() const;
  void set_frame_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_frame_time_stamp() const;
  void _internal_set_frame_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 image_id = 3;
  void clear_image_id();
  ::PROTOBUF_NAMESPACE_ID::uint32 image_id() const;
  void set_image_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_image_id() const;
  void _internal_set_image_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 4;
  void clear_image_encoding();
  ::Anki::Vector::external_interface::ImageChunk_ImageEncoding image_encoding() const;
  void set_image_encoding(::Anki::Vector::external_interface::ImageChunk_ImageEncoding value);
  private:
  ::Anki::Vector::external_interface::ImageChunk_ImageEncoding _internal_image_encoding() const;
  void _internal_set_image_encoding(::Anki::Vector::external_interface::ImageChunk_ImageEncoding value);
  public:

  
  // Begin code inserted by Anki plugin.
  CaptureSingleImageResponse( ResponseStatus* status, ::google::protobuf::uint32 frame_time_stamp, ::google::protobuf::uint32 image_id, ::Anki::Vector::external_interface::ImageChunk::ImageEncoding image_encoding, const std::string& data );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CaptureSingleImageResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr data_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  ::PROTOBUF_NAMESPACE_ID::uint32 frame_time_stamp_;
  ::PROTOBUF_NAMESPACE_ID::uint32 image_id_;
  int image_encoding_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class SetEyeColorRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.SetEyeColorRequest) */ {
 public:
  inline SetEyeColorRequest() : SetEyeColorRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~SetEyeColorRequest();

  SetEyeColorRequest(const SetEyeColorRequest& from);
  SetEyeColorRequest(SetEyeColorRequest&& from) noexcept
    : SetEyeColorRequest() {
    *this = ::std::move(from);
  }

  inline SetEyeColorRequest& operator=(const SetEyeColorRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SetEyeColorRequest& operator=(SetEyeColorRequest&& 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 SetEyeColorRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SetEyeColorRequest* internal_default_instance() {
    return reinterpret_cast<const SetEyeColorRequest*>(
               &_SetEyeColorRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    153;

  friend void swap(SetEyeColorRequest& a, SetEyeColorRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SetEyeColorRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SetEyeColorRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SetEyeColorRequest* New() const final {
    return CreateMaybeMessage<SetEyeColorRequest>(nullptr);
  }

  SetEyeColorRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SetEyeColorRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SetEyeColorRequest& from);
  void MergeFrom(const SetEyeColorRequest& 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(SetEyeColorRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.SetEyeColorRequest";
  }
  protected:
  explicit SetEyeColorRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kHueFieldNumber = 1,
    kSaturationFieldNumber = 2,
  };
  // float hue = 1;
  void clear_hue();
  float hue() const;
  void set_hue(float value);
  private:
  float _internal_hue() const;
  void _internal_set_hue(float value);
  public:

  // float saturation = 2;
  void clear_saturation();
  float saturation() const;
  void set_saturation(float value);
  private:
  float _internal_saturation() const;
  void _internal_set_saturation(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  SetEyeColorRequest( float hue, float saturation );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SetEyeColorRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float hue_;
  float saturation_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class SetEyeColorResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.SetEyeColorResponse) */ {
 public:
  inline SetEyeColorResponse() : SetEyeColorResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~SetEyeColorResponse();

  SetEyeColorResponse(const SetEyeColorResponse& from);
  SetEyeColorResponse(SetEyeColorResponse&& from) noexcept
    : SetEyeColorResponse() {
    *this = ::std::move(from);
  }

  inline SetEyeColorResponse& operator=(const SetEyeColorResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SetEyeColorResponse& operator=(SetEyeColorResponse&& 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 SetEyeColorResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SetEyeColorResponse* internal_default_instance() {
    return reinterpret_cast<const SetEyeColorResponse*>(
               &_SetEyeColorResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    154;

  friend void swap(SetEyeColorResponse& a, SetEyeColorResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SetEyeColorResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SetEyeColorResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SetEyeColorResponse* New() const final {
    return CreateMaybeMessage<SetEyeColorResponse>(nullptr);
  }

  SetEyeColorResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SetEyeColorResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SetEyeColorResponse& from);
  void MergeFrom(const SetEyeColorResponse& 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(SetEyeColorResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.SetEyeColorResponse";
  }
  protected:
  explicit SetEyeColorResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
  };
  // .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();

  
  // Begin code inserted by Anki plugin.
  explicit SetEyeColorResponse( ResponseStatus* status );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SetEyeColorResponse)
 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_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CameraConfigRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CameraConfigRequest) */ {
 public:
  inline CameraConfigRequest() : CameraConfigRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CameraConfigRequest();

  CameraConfigRequest(const CameraConfigRequest& from);
  CameraConfigRequest(CameraConfigRequest&& from) noexcept
    : CameraConfigRequest() {
    *this = ::std::move(from);
  }

  inline CameraConfigRequest& operator=(const CameraConfigRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CameraConfigRequest& operator=(CameraConfigRequest&& 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 CameraConfigRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CameraConfigRequest* internal_default_instance() {
    return reinterpret_cast<const CameraConfigRequest*>(
               &_CameraConfigRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    155;

  friend void swap(CameraConfigRequest& a, CameraConfigRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(CameraConfigRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CameraConfigRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CameraConfigRequest* New() const final {
    return CreateMaybeMessage<CameraConfigRequest>(nullptr);
  }

  CameraConfigRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CameraConfigRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CameraConfigRequest& from);
  void MergeFrom(const CameraConfigRequest& 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(CameraConfigRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CameraConfigRequest";
  }
  protected:
  explicit CameraConfigRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CameraConfigRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CameraConfigResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CameraConfigResponse) */ {
 public:
  inline CameraConfigResponse() : CameraConfigResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CameraConfigResponse();

  CameraConfigResponse(const CameraConfigResponse& from);
  CameraConfigResponse(CameraConfigResponse&& from) noexcept
    : CameraConfigResponse() {
    *this = ::std::move(from);
  }

  inline CameraConfigResponse& operator=(const CameraConfigResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline CameraConfigResponse& operator=(CameraConfigResponse&& 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 CameraConfigResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CameraConfigResponse* internal_default_instance() {
    return reinterpret_cast<const CameraConfigResponse*>(
               &_CameraConfigResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    156;

  friend void swap(CameraConfigResponse& a, CameraConfigResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(CameraConfigResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CameraConfigResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CameraConfigResponse* New() const final {
    return CreateMaybeMessage<CameraConfigResponse>(nullptr);
  }

  CameraConfigResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CameraConfigResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CameraConfigResponse& from);
  void MergeFrom(const CameraConfigResponse& 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(CameraConfigResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CameraConfigResponse";
  }
  protected:
  explicit CameraConfigResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kFocalLengthXFieldNumber = 1,
    kFocalLengthYFieldNumber = 2,
    kCenterXFieldNumber = 3,
    kCenterYFieldNumber = 4,
    kFovXFieldNumber = 5,
    kFovYFieldNumber = 6,
    kMinCameraExposureTimeMsFieldNumber = 7,
    kMaxCameraExposureTimeMsFieldNumber = 8,
    kMinCameraGainFieldNumber = 9,
    kMaxCameraGainFieldNumber = 10,
  };
  // float focal_length_x = 1;
  void clear_focal_length_x();
  float focal_length_x() const;
  void set_focal_length_x(float value);
  private:
  float _internal_focal_length_x() const;
  void _internal_set_focal_length_x(float value);
  public:

  // float focal_length_y = 2;
  void clear_focal_length_y();
  float focal_length_y() const;
  void set_focal_length_y(float value);
  private:
  float _internal_focal_length_y() const;
  void _internal_set_focal_length_y(float value);
  public:

  // float center_x = 3;
  void clear_center_x();
  float center_x() const;
  void set_center_x(float value);
  private:
  float _internal_center_x() const;
  void _internal_set_center_x(float value);
  public:

  // float center_y = 4;
  void clear_center_y();
  float center_y() const;
  void set_center_y(float value);
  private:
  float _internal_center_y() const;
  void _internal_set_center_y(float value);
  public:

  // float fov_x = 5;
  void clear_fov_x();
  float fov_x() const;
  void set_fov_x(float value);
  private:
  float _internal_fov_x() const;
  void _internal_set_fov_x(float value);
  public:

  // float fov_y = 6;
  void clear_fov_y();
  float fov_y() const;
  void set_fov_y(float value);
  private:
  float _internal_fov_y() const;
  void _internal_set_fov_y(float value);
  public:

  // uint32 min_camera_exposure_time_ms = 7;
  void clear_min_camera_exposure_time_ms();
  ::PROTOBUF_NAMESPACE_ID::uint32 min_camera_exposure_time_ms() const;
  void set_min_camera_exposure_time_ms(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_min_camera_exposure_time_ms() const;
  void _internal_set_min_camera_exposure_time_ms(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 max_camera_exposure_time_ms = 8;
  void clear_max_camera_exposure_time_ms();
  ::PROTOBUF_NAMESPACE_ID::uint32 max_camera_exposure_time_ms() const;
  void set_max_camera_exposure_time_ms(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_max_camera_exposure_time_ms() const;
  void _internal_set_max_camera_exposure_time_ms(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // float min_camera_gain = 9;
  void clear_min_camera_gain();
  float min_camera_gain() const;
  void set_min_camera_gain(float value);
  private:
  float _internal_min_camera_gain() const;
  void _internal_set_min_camera_gain(float value);
  public:

  // float max_camera_gain = 10;
  void clear_max_camera_gain();
  float max_camera_gain() const;
  void set_max_camera_gain(float value);
  private:
  float _internal_max_camera_gain() const;
  void _internal_set_max_camera_gain(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  CameraConfigResponse( float focal_length_x, float focal_length_y, float center_x, float center_y, float fov_x, float fov_y, ::google::protobuf::uint32 min_camera_exposure_time_ms, ::google::protobuf::uint32 max_camera_exposure_time_ms, float min_camera_gain, float max_camera_gain );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CameraConfigResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float focal_length_x_;
  float focal_length_y_;
  float center_x_;
  float center_y_;
  float fov_x_;
  float fov_y_;
  ::PROTOBUF_NAMESPACE_ID::uint32 min_camera_exposure_time_ms_;
  ::PROTOBUF_NAMESPACE_ID::uint32 max_camera_exposure_time_ms_;
  float min_camera_gain_;
  float max_camera_gain_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class SetCameraSettingsRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.SetCameraSettingsRequest) */ {
 public:
  inline SetCameraSettingsRequest() : SetCameraSettingsRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~SetCameraSettingsRequest();

  SetCameraSettingsRequest(const SetCameraSettingsRequest& from);
  SetCameraSettingsRequest(SetCameraSettingsRequest&& from) noexcept
    : SetCameraSettingsRequest() {
    *this = ::std::move(from);
  }

  inline SetCameraSettingsRequest& operator=(const SetCameraSettingsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SetCameraSettingsRequest& operator=(SetCameraSettingsRequest&& 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 SetCameraSettingsRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SetCameraSettingsRequest* internal_default_instance() {
    return reinterpret_cast<const SetCameraSettingsRequest*>(
               &_SetCameraSettingsRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    157;

  friend void swap(SetCameraSettingsRequest& a, SetCameraSettingsRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SetCameraSettingsRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SetCameraSettingsRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SetCameraSettingsRequest* New() const final {
    return CreateMaybeMessage<SetCameraSettingsRequest>(nullptr);
  }

  SetCameraSettingsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SetCameraSettingsRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SetCameraSettingsRequest& from);
  void MergeFrom(const SetCameraSettingsRequest& 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(SetCameraSettingsRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.SetCameraSettingsRequest";
  }
  protected:
  explicit SetCameraSettingsRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kGainFieldNumber = 1,
    kExposureMsFieldNumber = 2,
    kEnableAutoExposureFieldNumber = 3,
  };
  // float gain = 1;
  void clear_gain();
  float gain() const;
  void set_gain(float value);
  private:
  float _internal_gain() const;
  void _internal_set_gain(float value);
  public:

  // uint32 exposure_ms = 2;
  void clear_exposure_ms();
  ::PROTOBUF_NAMESPACE_ID::uint32 exposure_ms() const;
  void set_exposure_ms(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_exposure_ms() const;
  void _internal_set_exposure_ms(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // bool enable_auto_exposure = 3;
  void clear_enable_auto_exposure();
  bool enable_auto_exposure() const;
  void set_enable_auto_exposure(bool value);
  private:
  bool _internal_enable_auto_exposure() const;
  void _internal_set_enable_auto_exposure(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  SetCameraSettingsRequest( float gain, ::google::protobuf::uint32 exposure_ms, bool enable_auto_exposure );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SetCameraSettingsRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float gain_;
  ::PROTOBUF_NAMESPACE_ID::uint32 exposure_ms_;
  bool enable_auto_exposure_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class SetCameraSettingsResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.SetCameraSettingsResponse) */ {
 public:
  inline SetCameraSettingsResponse() : SetCameraSettingsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~SetCameraSettingsResponse();

  SetCameraSettingsResponse(const SetCameraSettingsResponse& from);
  SetCameraSettingsResponse(SetCameraSettingsResponse&& from) noexcept
    : SetCameraSettingsResponse() {
    *this = ::std::move(from);
  }

  inline SetCameraSettingsResponse& operator=(const SetCameraSettingsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SetCameraSettingsResponse& operator=(SetCameraSettingsResponse&& 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 SetCameraSettingsResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SetCameraSettingsResponse* internal_default_instance() {
    return reinterpret_cast<const SetCameraSettingsResponse*>(
               &_SetCameraSettingsResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    158;

  friend void swap(SetCameraSettingsResponse& a, SetCameraSettingsResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SetCameraSettingsResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SetCameraSettingsResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SetCameraSettingsResponse* New() const final {
    return CreateMaybeMessage<SetCameraSettingsResponse>(nullptr);
  }

  SetCameraSettingsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SetCameraSettingsResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SetCameraSettingsResponse& from);
  void MergeFrom(const SetCameraSettingsResponse& 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(SetCameraSettingsResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.SetCameraSettingsResponse";
  }
  protected:
  explicit SetCameraSettingsResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusMessageFieldNumber = 2,
    kStatusFieldNumber = 1,
  };
  // string status_message = 2;
  void clear_status_message();
  const std::string& status_message() const;
  void set_status_message(const std::string& value);
  void set_status_message(std::string&& value);
  void set_status_message(const char* value);
  void set_status_message(const char* value, size_t size);
  std::string* mutable_status_message();
  std::string* release_status_message();
  void set_allocated_status_message(std::string* status_message);
  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_status_message();
  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_status_message(
      std::string* status_message);
  private:
  const std::string& _internal_status_message() const;
  void _internal_set_status_message(const std::string& value);
  std::string* _internal_mutable_status_message();
  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();

  
  // Begin code inserted by Anki plugin.
  SetCameraSettingsResponse( ResponseStatus* status, const std::string& status_message );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SetCameraSettingsResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr status_message_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CameraSettingsUpdate PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CameraSettingsUpdate) */ {
 public:
  inline CameraSettingsUpdate() : CameraSettingsUpdate(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CameraSettingsUpdate();

  CameraSettingsUpdate(const CameraSettingsUpdate& from);
  CameraSettingsUpdate(CameraSettingsUpdate&& from) noexcept
    : CameraSettingsUpdate() {
    *this = ::std::move(from);
  }

  inline CameraSettingsUpdate& operator=(const CameraSettingsUpdate& from) {
    CopyFrom(from);
    return *this;
  }
  inline CameraSettingsUpdate& operator=(CameraSettingsUpdate&& 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 CameraSettingsUpdate& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CameraSettingsUpdate* internal_default_instance() {
    return reinterpret_cast<const CameraSettingsUpdate*>(
               &_CameraSettingsUpdate_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    159;

  friend void swap(CameraSettingsUpdate& a, CameraSettingsUpdate& b) {
    a.Swap(&b);
  }
  inline void Swap(CameraSettingsUpdate* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CameraSettingsUpdate* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CameraSettingsUpdate* New() const final {
    return CreateMaybeMessage<CameraSettingsUpdate>(nullptr);
  }

  CameraSettingsUpdate* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CameraSettingsUpdate>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CameraSettingsUpdate& from);
  void MergeFrom(const CameraSettingsUpdate& 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(CameraSettingsUpdate* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CameraSettingsUpdate";
  }
  protected:
  explicit CameraSettingsUpdate(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kGainFieldNumber = 1,
    kExposureMsFieldNumber = 2,
    kAutoExposureEnabledFieldNumber = 3,
  };
  // float gain = 1;
  void clear_gain();
  float gain() const;
  void set_gain(float value);
  private:
  float _internal_gain() const;
  void _internal_set_gain(float value);
  public:

  // uint32 exposure_ms = 2;
  void clear_exposure_ms();
  ::PROTOBUF_NAMESPACE_ID::uint32 exposure_ms() const;
  void set_exposure_ms(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_exposure_ms() const;
  void _internal_set_exposure_ms(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // bool auto_exposure_enabled = 3;
  void clear_auto_exposure_enabled();
  bool auto_exposure_enabled() const;
  void set_auto_exposure_enabled(bool value);
  private:
  bool _internal_auto_exposure_enabled() const;
  void _internal_set_auto_exposure_enabled(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  CameraSettingsUpdate( float gain, ::google::protobuf::uint32 exposure_ms, bool auto_exposure_enabled );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CameraSettingsUpdate)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float gain_;
  ::PROTOBUF_NAMESPACE_ID::uint32 exposure_ms_;
  bool auto_exposure_enabled_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class SDKInitializationRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.SDKInitializationRequest) */ {
 public:
  inline SDKInitializationRequest() : SDKInitializationRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~SDKInitializationRequest();

  SDKInitializationRequest(const SDKInitializationRequest& from);
  SDKInitializationRequest(SDKInitializationRequest&& from) noexcept
    : SDKInitializationRequest() {
    *this = ::std::move(from);
  }

  inline SDKInitializationRequest& operator=(const SDKInitializationRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SDKInitializationRequest& operator=(SDKInitializationRequest&& 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 SDKInitializationRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SDKInitializationRequest* internal_default_instance() {
    return reinterpret_cast<const SDKInitializationRequest*>(
               &_SDKInitializationRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    160;

  friend void swap(SDKInitializationRequest& a, SDKInitializationRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SDKInitializationRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SDKInitializationRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SDKInitializationRequest* New() const final {
    return CreateMaybeMessage<SDKInitializationRequest>(nullptr);
  }

  SDKInitializationRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SDKInitializationRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SDKInitializationRequest& from);
  void MergeFrom(const SDKInitializationRequest& 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(SDKInitializationRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.SDKInitializationRequest";
  }
  protected:
  explicit SDKInitializationRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kSdkModuleVersionFieldNumber = 1,
    kPythonVersionFieldNumber = 2,
    kPythonImplementationFieldNumber = 3,
    kOsVersionFieldNumber = 4,
    kCpuVersionFieldNumber = 5,
  };
  // string sdk_module_version = 1;
  void clear_sdk_module_version();
  const std::string& sdk_module_version() const;
  void set_sdk_module_version(const std::string& value);
  void set_sdk_module_version(std::string&& value);
  void set_sdk_module_version(const char* value);
  void set_sdk_module_version(const char* value, size_t size);
  std::string* mutable_sdk_module_version();
  std::string* release_sdk_module_version();
  void set_allocated_sdk_module_version(std::string* sdk_module_version);
  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_sdk_module_version();
  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_sdk_module_version(
      std::string* sdk_module_version);
  private:
  const std::string& _internal_sdk_module_version() const;
  void _internal_set_sdk_module_version(const std::string& value);
  std::string* _internal_mutable_sdk_module_version();
  public:

  // string python_version = 2;
  void clear_python_version();
  const std::string& python_version() const;
  void set_python_version(const std::string& value);
  void set_python_version(std::string&& value);
  void set_python_version(const char* value);
  void set_python_version(const char* value, size_t size);
  std::string* mutable_python_version();
  std::string* release_python_version();
  void set_allocated_python_version(std::string* python_version);
  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_python_version();
  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_python_version(
      std::string* python_version);
  private:
  const std::string& _internal_python_version() const;
  void _internal_set_python_version(const std::string& value);
  std::string* _internal_mutable_python_version();
  public:

  // string python_implementation = 3;
  void clear_python_implementation();
  const std::string& python_implementation() const;
  void set_python_implementation(const std::string& value);
  void set_python_implementation(std::string&& value);
  void set_python_implementation(const char* value);
  void set_python_implementation(const char* value, size_t size);
  std::string* mutable_python_implementation();
  std::string* release_python_implementation();
  void set_allocated_python_implementation(std::string* python_implementation);
  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_python_implementation();
  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_python_implementation(
      std::string* python_implementation);
  private:
  const std::string& _internal_python_implementation() const;
  void _internal_set_python_implementation(const std::string& value);
  std::string* _internal_mutable_python_implementation();
  public:

  // string os_version = 4;
  void clear_os_version();
  const std::string& os_version() const;
  void set_os_version(const std::string& value);
  void set_os_version(std::string&& value);
  void set_os_version(const char* value);
  void set_os_version(const char* value, size_t size);
  std::string* mutable_os_version();
  std::string* release_os_version();
  void set_allocated_os_version(std::string* os_version);
  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_os_version();
  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_os_version(
      std::string* os_version);
  private:
  const std::string& _internal_os_version() const;
  void _internal_set_os_version(const std::string& value);
  std::string* _internal_mutable_os_version();
  public:

  // string cpu_version = 5;
  void clear_cpu_version();
  const std::string& cpu_version() const;
  void set_cpu_version(const std::string& value);
  void set_cpu_version(std::string&& value);
  void set_cpu_version(const char* value);
  void set_cpu_version(const char* value, size_t size);
  std::string* mutable_cpu_version();
  std::string* release_cpu_version();
  void set_allocated_cpu_version(std::string* cpu_version);
  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_cpu_version();
  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_cpu_version(
      std::string* cpu_version);
  private:
  const std::string& _internal_cpu_version() const;
  void _internal_set_cpu_version(const std::string& value);
  std::string* _internal_mutable_cpu_version();
  public:

  
  // Begin code inserted by Anki plugin.
  SDKInitializationRequest( const std::string& sdk_module_version, const std::string& python_version, const std::string& python_implementation, const std::string& os_version, const std::string& cpu_version );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SDKInitializationRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr sdk_module_version_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr python_version_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr python_implementation_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr os_version_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr cpu_version_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class SDKInitializationResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.SDKInitializationResponse) */ {
 public:
  inline SDKInitializationResponse() : SDKInitializationResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~SDKInitializationResponse();

  SDKInitializationResponse(const SDKInitializationResponse& from);
  SDKInitializationResponse(SDKInitializationResponse&& from) noexcept
    : SDKInitializationResponse() {
    *this = ::std::move(from);
  }

  inline SDKInitializationResponse& operator=(const SDKInitializationResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SDKInitializationResponse& operator=(SDKInitializationResponse&& 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 SDKInitializationResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const SDKInitializationResponse* internal_default_instance() {
    return reinterpret_cast<const SDKInitializationResponse*>(
               &_SDKInitializationResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    161;

  friend void swap(SDKInitializationResponse& a, SDKInitializationResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SDKInitializationResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SDKInitializationResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline SDKInitializationResponse* New() const final {
    return CreateMaybeMessage<SDKInitializationResponse>(nullptr);
  }

  SDKInitializationResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<SDKInitializationResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const SDKInitializationResponse& from);
  void MergeFrom(const SDKInitializationResponse& 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(SDKInitializationResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.SDKInitializationResponse";
  }
  protected:
  explicit SDKInitializationResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
  };
  // .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();

  
  // Begin code inserted by Anki plugin.
  explicit SDKInitializationResponse( ResponseStatus* status );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SDKInitializationResponse)
 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_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class AppDisconnected PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.AppDisconnected) */ {
 public:
  inline AppDisconnected() : AppDisconnected(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~AppDisconnected();

  AppDisconnected(const AppDisconnected& from);
  AppDisconnected(AppDisconnected&& from) noexcept
    : AppDisconnected() {
    *this = ::std::move(from);
  }

  inline AppDisconnected& operator=(const AppDisconnected& from) {
    CopyFrom(from);
    return *this;
  }
  inline AppDisconnected& operator=(AppDisconnected&& 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 AppDisconnected& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AppDisconnected* internal_default_instance() {
    return reinterpret_cast<const AppDisconnected*>(
               &_AppDisconnected_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    162;

  friend void swap(AppDisconnected& a, AppDisconnected& b) {
    a.Swap(&b);
  }
  inline void Swap(AppDisconnected* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AppDisconnected* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline AppDisconnected* New() const final {
    return CreateMaybeMessage<AppDisconnected>(nullptr);
  }

  AppDisconnected* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<AppDisconnected>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const AppDisconnected& from);
  void MergeFrom(const AppDisconnected& 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(AppDisconnected* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.AppDisconnected";
  }
  protected:
  explicit AppDisconnected(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.AppDisconnected)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class AppIntentRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.AppIntentRequest) */ {
 public:
  inline AppIntentRequest() : AppIntentRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~AppIntentRequest();

  AppIntentRequest(const AppIntentRequest& from);
  AppIntentRequest(AppIntentRequest&& from) noexcept
    : AppIntentRequest() {
    *this = ::std::move(from);
  }

  inline AppIntentRequest& operator=(const AppIntentRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AppIntentRequest& operator=(AppIntentRequest&& 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 AppIntentRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AppIntentRequest* internal_default_instance() {
    return reinterpret_cast<const AppIntentRequest*>(
               &_AppIntentRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    163;

  friend void swap(AppIntentRequest& a, AppIntentRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(AppIntentRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AppIntentRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline AppIntentRequest* New() const final {
    return CreateMaybeMessage<AppIntentRequest>(nullptr);
  }

  AppIntentRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<AppIntentRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const AppIntentRequest& from);
  void MergeFrom(const AppIntentRequest& 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(AppIntentRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.AppIntentRequest";
  }
  protected:
  explicit AppIntentRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kIntentFieldNumber = 1,
    kParamFieldNumber = 2,
  };
  // string intent = 1;
  void clear_intent();
  const std::string& intent() const;
  void set_intent(const std::string& value);
  void set_intent(std::string&& value);
  void set_intent(const char* value);
  void set_intent(const char* value, size_t size);
  std::string* mutable_intent();
  std::string* release_intent();
  void set_allocated_intent(std::string* intent);
  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_intent();
  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_intent(
      std::string* intent);
  private:
  const std::string& _internal_intent() const;
  void _internal_set_intent(const std::string& value);
  std::string* _internal_mutable_intent();
  public:

  // string param = 2;
  void clear_param();
  const std::string& param() const;
  void set_param(const std::string& value);
  void set_param(std::string&& value);
  void set_param(const char* value);
  void set_param(const char* value, size_t size);
  std::string* mutable_param();
  std::string* release_param();
  void set_allocated_param(std::string* param);
  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_param();
  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_param(
      std::string* param);
  private:
  const std::string& _internal_param() const;
  void _internal_set_param(const std::string& value);
  std::string* _internal_mutable_param();
  public:

  
  // Begin code inserted by Anki plugin.
  AppIntentRequest( const std::string& intent, const std::string& param );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.AppIntentRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr intent_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr param_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class AppIntentResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.AppIntentResponse) */ {
 public:
  inline AppIntentResponse() : AppIntentResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~AppIntentResponse();

  AppIntentResponse(const AppIntentResponse& from);
  AppIntentResponse(AppIntentResponse&& from) noexcept
    : AppIntentResponse() {
    *this = ::std::move(from);
  }

  inline AppIntentResponse& operator=(const AppIntentResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline AppIntentResponse& operator=(AppIntentResponse&& 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 AppIntentResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AppIntentResponse* internal_default_instance() {
    return reinterpret_cast<const AppIntentResponse*>(
               &_AppIntentResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    164;

  friend void swap(AppIntentResponse& a, AppIntentResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(AppIntentResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AppIntentResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline AppIntentResponse* New() const final {
    return CreateMaybeMessage<AppIntentResponse>(nullptr);
  }

  AppIntentResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<AppIntentResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const AppIntentResponse& from);
  void MergeFrom(const AppIntentResponse& 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(AppIntentResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.AppIntentResponse";
  }
  protected:
  explicit AppIntentResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
  };
  // .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();

  
  // Begin code inserted by Anki plugin.
  explicit AppIntentResponse( ResponseStatus* status );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.AppIntentResponse)
 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_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class FeatureStatus PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.FeatureStatus) */ {
 public:
  inline FeatureStatus() : FeatureStatus(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~FeatureStatus();

  FeatureStatus(const FeatureStatus& from);
  FeatureStatus(FeatureStatus&& from) noexcept
    : FeatureStatus() {
    *this = ::std::move(from);
  }

  inline FeatureStatus& operator=(const FeatureStatus& from) {
    CopyFrom(from);
    return *this;
  }
  inline FeatureStatus& operator=(FeatureStatus&& 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 FeatureStatus& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const FeatureStatus* internal_default_instance() {
    return reinterpret_cast<const FeatureStatus*>(
               &_FeatureStatus_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    165;

  friend void swap(FeatureStatus& a, FeatureStatus& b) {
    a.Swap(&b);
  }
  inline void Swap(FeatureStatus* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FeatureStatus* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline FeatureStatus* New() const final {
    return CreateMaybeMessage<FeatureStatus>(nullptr);
  }

  FeatureStatus* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<FeatureStatus>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const FeatureStatus& from);
  void MergeFrom(const FeatureStatus& 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(FeatureStatus* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.FeatureStatus";
  }
  protected:
  explicit FeatureStatus(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kFeatureNameFieldNumber = 1,
    kSourceFieldNumber = 2,
  };
  // string feature_name = 1;
  void clear_feature_name();
  const std::string& feature_name() const;
  void set_feature_name(const std::string& value);
  void set_feature_name(std::string&& value);
  void set_feature_name(const char* value);
  void set_feature_name(const char* value, size_t size);
  std::string* mutable_feature_name();
  std::string* release_feature_name();
  void set_allocated_feature_name(std::string* feature_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_feature_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_feature_name(
      std::string* feature_name);
  private:
  const std::string& _internal_feature_name() const;
  void _internal_set_feature_name(const std::string& value);
  std::string* _internal_mutable_feature_name();
  public:

  // string source = 2;
  void clear_source();
  const std::string& source() const;
  void set_source(const std::string& value);
  void set_source(std::string&& value);
  void set_source(const char* value);
  void set_source(const char* value, size_t size);
  std::string* mutable_source();
  std::string* release_source();
  void set_allocated_source(std::string* source);
  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_source();
  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_source(
      std::string* source);
  private:
  const std::string& _internal_source() const;
  void _internal_set_source(const std::string& value);
  std::string* _internal_mutable_source();
  public:

  
  // Begin code inserted by Anki plugin.
  FeatureStatus( const std::string& feature_name, const std::string& source );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.FeatureStatus)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr feature_name_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr source_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class Onboarding PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.Onboarding) */ {
 public:
  inline Onboarding() : Onboarding(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~Onboarding();

  Onboarding(const Onboarding& from);
  Onboarding(Onboarding&& from) noexcept
    : Onboarding() {
    *this = ::std::move(from);
  }

  inline Onboarding& operator=(const Onboarding& from) {
    CopyFrom(from);
    return *this;
  }
  inline Onboarding& operator=(Onboarding&& 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 Onboarding& default_instance();

  enum OnboardingTypeCase {
    kOnboardingState = 1,
    kOnboardingWakeUpFinished = 9,
    kOnboarding1P0ChargingInfo = 10,
    ONBOARDING_TYPE_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Onboarding* internal_default_instance() {
    return reinterpret_cast<const Onboarding*>(
               &_Onboarding_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    166;

  friend void swap(Onboarding& a, Onboarding& b) {
    a.Swap(&b);
  }
  inline void Swap(Onboarding* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Onboarding* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline Onboarding* New() const final {
    return CreateMaybeMessage<Onboarding>(nullptr);
  }

  Onboarding* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<Onboarding>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const Onboarding& from);
  void MergeFrom(const Onboarding& 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(Onboarding* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.Onboarding";
  }
  protected:
  explicit Onboarding(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kOnboardingStateFieldNumber = 1,
    kOnboardingWakeUpFinishedFieldNumber = 9,
    kOnboarding1P0ChargingInfoFieldNumber = 10,
  };
  // .Anki.Vector.external_interface.OnboardingState onboarding_state = 1;
  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.OnboardingWakeUpFinished onboarding_wake_up_finished = 9;
  bool has_onboarding_wake_up_finished() const;
  private:
  bool _internal_has_onboarding_wake_up_finished() const;
  public:
  void clear_onboarding_wake_up_finished();
  const ::Anki::Vector::external_interface::OnboardingWakeUpFinished& onboarding_wake_up_finished() const;
  ::Anki::Vector::external_interface::OnboardingWakeUpFinished* release_onboarding_wake_up_finished();
  ::Anki::Vector::external_interface::OnboardingWakeUpFinished* mutable_onboarding_wake_up_finished();
  void set_allocated_onboarding_wake_up_finished(::Anki::Vector::external_interface::OnboardingWakeUpFinished* onboarding_wake_up_finished);
  private:
  const ::Anki::Vector::external_interface::OnboardingWakeUpFinished& _internal_onboarding_wake_up_finished() const;
  ::Anki::Vector::external_interface::OnboardingWakeUpFinished* _internal_mutable_onboarding_wake_up_finished();
  public:
  void unsafe_arena_set_allocated_onboarding_wake_up_finished(
      ::Anki::Vector::external_interface::OnboardingWakeUpFinished* onboarding_wake_up_finished);
  ::Anki::Vector::external_interface::OnboardingWakeUpFinished* unsafe_arena_release_onboarding_wake_up_finished();

  // .Anki.Vector.external_interface.Onboarding1p0ChargingInfo onboarding_1p0_charging_info = 10;
  bool has_onboarding_1p0_charging_info() const;
  private:
  bool _internal_has_onboarding_1p0_charging_info() const;
  public:
  void clear_onboarding_1p0_charging_info();
  const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo& onboarding_1p0_charging_info() const;
  ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* release_onboarding_1p0_charging_info();
  ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* mutable_onboarding_1p0_charging_info();
  void set_allocated_onboarding_1p0_charging_info(::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* onboarding_1p0_charging_info);
  private:
  const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo& _internal_onboarding_1p0_charging_info() const;
  ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* _internal_mutable_onboarding_1p0_charging_info();
  public:
  void unsafe_arena_set_allocated_onboarding_1p0_charging_info(
      ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* onboarding_1p0_charging_info);
  ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* unsafe_arena_release_onboarding_1p0_charging_info();

  void clear_onboarding_type();
  OnboardingTypeCase onboarding_type_case() const;
  
  // Begin code inserted by Anki plugin.
  explicit Onboarding( OnboardingState* onboarding_state );
  explicit Onboarding( OnboardingWakeUpFinished* onboarding_wake_up_finished );
  explicit Onboarding( Onboarding1p0ChargingInfo* onboarding_1p0_charging_info );
  // End code inserted by Anki plugin.
  
  
  // Begin code inserted by Anki plugin.
  inline ::Anki::Vector::external_interface::OnboardingTag GetTag() const {
    return static_cast<::Anki::Vector::external_interface::OnboardingTag>( _oneof_case_[0] );
  }
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.Onboarding)
 private:
  class _Internal;
  void set_has_onboarding_state();
  void set_has_onboarding_wake_up_finished();
  void set_has_onboarding_1p0_charging_info();

  inline bool has_onboarding_type() const;
  inline void clear_has_onboarding_type();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  union OnboardingTypeUnion {
    OnboardingTypeUnion() {}
    ::Anki::Vector::external_interface::OnboardingState* onboarding_state_;
    ::Anki::Vector::external_interface::OnboardingWakeUpFinished* onboarding_wake_up_finished_;
    ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* onboarding_1p0_charging_info_;
  } onboarding_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class RobotHistoryRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.RobotHistoryRequest) */ {
 public:
  inline RobotHistoryRequest() : RobotHistoryRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~RobotHistoryRequest();

  RobotHistoryRequest(const RobotHistoryRequest& from);
  RobotHistoryRequest(RobotHistoryRequest&& from) noexcept
    : RobotHistoryRequest() {
    *this = ::std::move(from);
  }

  inline RobotHistoryRequest& operator=(const RobotHistoryRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline RobotHistoryRequest& operator=(RobotHistoryRequest&& 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 RobotHistoryRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RobotHistoryRequest* internal_default_instance() {
    return reinterpret_cast<const RobotHistoryRequest*>(
               &_RobotHistoryRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    167;

  friend void swap(RobotHistoryRequest& a, RobotHistoryRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(RobotHistoryRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RobotHistoryRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RobotHistoryRequest* New() const final {
    return CreateMaybeMessage<RobotHistoryRequest>(nullptr);
  }

  RobotHistoryRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RobotHistoryRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RobotHistoryRequest& from);
  void MergeFrom(const RobotHistoryRequest& 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(RobotHistoryRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.RobotHistoryRequest";
  }
  protected:
  explicit RobotHistoryRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.RobotHistoryRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class RobotHistoryResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.RobotHistoryResponse) */ {
 public:
  inline RobotHistoryResponse() : RobotHistoryResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~RobotHistoryResponse();

  RobotHistoryResponse(const RobotHistoryResponse& from);
  RobotHistoryResponse(RobotHistoryResponse&& from) noexcept
    : RobotHistoryResponse() {
    *this = ::std::move(from);
  }

  inline RobotHistoryResponse& operator=(const RobotHistoryResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline RobotHistoryResponse& operator=(RobotHistoryResponse&& 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 RobotHistoryResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RobotHistoryResponse* internal_default_instance() {
    return reinterpret_cast<const RobotHistoryResponse*>(
               &_RobotHistoryResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    168;

  friend void swap(RobotHistoryResponse& a, RobotHistoryResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(RobotHistoryResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RobotHistoryResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RobotHistoryResponse* New() const final {
    return CreateMaybeMessage<RobotHistoryResponse>(nullptr);
  }

  RobotHistoryResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RobotHistoryResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RobotHistoryResponse& from);
  void MergeFrom(const RobotHistoryResponse& 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(RobotHistoryResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.RobotHistoryResponse";
  }
  protected:
  explicit RobotHistoryResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kMessagesFieldNumber = 1,
  };
  // repeated .Anki.Vector.external_interface.TimeStampedStatus messages = 1;
  int messages_size() const;
  private:
  int _internal_messages_size() const;
  public:
  void clear_messages();
  ::Anki::Vector::external_interface::TimeStampedStatus* mutable_messages(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::TimeStampedStatus >*
      mutable_messages();
  private:
  const ::Anki::Vector::external_interface::TimeStampedStatus& _internal_messages(int index) const;
  ::Anki::Vector::external_interface::TimeStampedStatus* _internal_add_messages();
  public:
  const ::Anki::Vector::external_interface::TimeStampedStatus& messages(int index) const;
  ::Anki::Vector::external_interface::TimeStampedStatus* add_messages();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::TimeStampedStatus >&
      messages() const;

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.RobotHistoryResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::TimeStampedStatus > messages_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingState PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingState) */ {
 public:
  inline OnboardingState() : OnboardingState(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingState();

  OnboardingState(const OnboardingState& from);
  OnboardingState(OnboardingState&& from) noexcept
    : OnboardingState() {
    *this = ::std::move(from);
  }

  inline OnboardingState& operator=(const OnboardingState& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingState& operator=(OnboardingState&& 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 OnboardingState& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingState* internal_default_instance() {
    return reinterpret_cast<const OnboardingState*>(
               &_OnboardingState_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    169;

  friend void swap(OnboardingState& a, OnboardingState& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingState* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingState* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingState* New() const final {
    return CreateMaybeMessage<OnboardingState>(nullptr);
  }

  OnboardingState* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingState>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingState& from);
  void MergeFrom(const OnboardingState& 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(OnboardingState* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingState";
  }
  protected:
  explicit OnboardingState(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStageFieldNumber = 1,
  };
  // .Anki.Vector.external_interface.OnboardingStages stage = 1;
  void clear_stage();
  ::Anki::Vector::external_interface::OnboardingStages stage() const;
  void set_stage(::Anki::Vector::external_interface::OnboardingStages value);
  private:
  ::Anki::Vector::external_interface::OnboardingStages _internal_stage() const;
  void _internal_set_stage(::Anki::Vector::external_interface::OnboardingStages value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit OnboardingState( ::Anki::Vector::external_interface::OnboardingStages stage );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingState)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  int stage_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingStateRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingStateRequest) */ {
 public:
  inline OnboardingStateRequest() : OnboardingStateRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingStateRequest();

  OnboardingStateRequest(const OnboardingStateRequest& from);
  OnboardingStateRequest(OnboardingStateRequest&& from) noexcept
    : OnboardingStateRequest() {
    *this = ::std::move(from);
  }

  inline OnboardingStateRequest& operator=(const OnboardingStateRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingStateRequest& operator=(OnboardingStateRequest&& 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 OnboardingStateRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingStateRequest* internal_default_instance() {
    return reinterpret_cast<const OnboardingStateRequest*>(
               &_OnboardingStateRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    170;

  friend void swap(OnboardingStateRequest& a, OnboardingStateRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingStateRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingStateRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingStateRequest* New() const final {
    return CreateMaybeMessage<OnboardingStateRequest>(nullptr);
  }

  OnboardingStateRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingStateRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingStateRequest& from);
  void MergeFrom(const OnboardingStateRequest& 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(OnboardingStateRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingStateRequest";
  }
  protected:
  explicit OnboardingStateRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingStateRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingStateResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingStateResponse) */ {
 public:
  inline OnboardingStateResponse() : OnboardingStateResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingStateResponse();

  OnboardingStateResponse(const OnboardingStateResponse& from);
  OnboardingStateResponse(OnboardingStateResponse&& from) noexcept
    : OnboardingStateResponse() {
    *this = ::std::move(from);
  }

  inline OnboardingStateResponse& operator=(const OnboardingStateResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingStateResponse& operator=(OnboardingStateResponse&& 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 OnboardingStateResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingStateResponse* internal_default_instance() {
    return reinterpret_cast<const OnboardingStateResponse*>(
               &_OnboardingStateResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    171;

  friend void swap(OnboardingStateResponse& a, OnboardingStateResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingStateResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingStateResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingStateResponse* New() const final {
    return CreateMaybeMessage<OnboardingStateResponse>(nullptr);
  }

  OnboardingStateResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingStateResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingStateResponse& from);
  void MergeFrom(const OnboardingStateResponse& 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(OnboardingStateResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingStateResponse";
  }
  protected:
  explicit OnboardingStateResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kOnboardingStateFieldNumber = 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.OnboardingState onboarding_state = 2;
  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();

  
  // Begin code inserted by Anki plugin.
  OnboardingStateResponse( ResponseStatus* status, OnboardingState* onboarding_state );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingStateResponse)
 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::OnboardingState* onboarding_state_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingSetPhaseRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingSetPhaseRequest) */ {
 public:
  inline OnboardingSetPhaseRequest() : OnboardingSetPhaseRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingSetPhaseRequest();

  OnboardingSetPhaseRequest(const OnboardingSetPhaseRequest& from);
  OnboardingSetPhaseRequest(OnboardingSetPhaseRequest&& from) noexcept
    : OnboardingSetPhaseRequest() {
    *this = ::std::move(from);
  }

  inline OnboardingSetPhaseRequest& operator=(const OnboardingSetPhaseRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingSetPhaseRequest& operator=(OnboardingSetPhaseRequest&& 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 OnboardingSetPhaseRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingSetPhaseRequest* internal_default_instance() {
    return reinterpret_cast<const OnboardingSetPhaseRequest*>(
               &_OnboardingSetPhaseRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    172;

  friend void swap(OnboardingSetPhaseRequest& a, OnboardingSetPhaseRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingSetPhaseRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingSetPhaseRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingSetPhaseRequest* New() const final {
    return CreateMaybeMessage<OnboardingSetPhaseRequest>(nullptr);
  }

  OnboardingSetPhaseRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingSetPhaseRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingSetPhaseRequest& from);
  void MergeFrom(const OnboardingSetPhaseRequest& 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(OnboardingSetPhaseRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingSetPhaseRequest";
  }
  protected:
  explicit OnboardingSetPhaseRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kPhaseFieldNumber = 1,
  };
  // .Anki.Vector.external_interface.OnboardingPhase phase = 1;
  void clear_phase();
  ::Anki::Vector::external_interface::OnboardingPhase phase() const;
  void set_phase(::Anki::Vector::external_interface::OnboardingPhase value);
  private:
  ::Anki::Vector::external_interface::OnboardingPhase _internal_phase() const;
  void _internal_set_phase(::Anki::Vector::external_interface::OnboardingPhase value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit OnboardingSetPhaseRequest( ::Anki::Vector::external_interface::OnboardingPhase phase );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  int phase_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingSetPhaseResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingSetPhaseResponse) */ {
 public:
  inline OnboardingSetPhaseResponse() : OnboardingSetPhaseResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingSetPhaseResponse();

  OnboardingSetPhaseResponse(const OnboardingSetPhaseResponse& from);
  OnboardingSetPhaseResponse(OnboardingSetPhaseResponse&& from) noexcept
    : OnboardingSetPhaseResponse() {
    *this = ::std::move(from);
  }

  inline OnboardingSetPhaseResponse& operator=(const OnboardingSetPhaseResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingSetPhaseResponse& operator=(OnboardingSetPhaseResponse&& 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 OnboardingSetPhaseResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingSetPhaseResponse* internal_default_instance() {
    return reinterpret_cast<const OnboardingSetPhaseResponse*>(
               &_OnboardingSetPhaseResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    173;

  friend void swap(OnboardingSetPhaseResponse& a, OnboardingSetPhaseResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingSetPhaseResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingSetPhaseResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingSetPhaseResponse* New() const final {
    return CreateMaybeMessage<OnboardingSetPhaseResponse>(nullptr);
  }

  OnboardingSetPhaseResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingSetPhaseResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingSetPhaseResponse& from);
  void MergeFrom(const OnboardingSetPhaseResponse& 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(OnboardingSetPhaseResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingSetPhaseResponse";
  }
  protected:
  explicit OnboardingSetPhaseResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kPhaseFieldNumber = 2,
    kPhaseStateFieldNumber = 3,
  };
  // .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.OnboardingPhase phase = 2;
  void clear_phase();
  ::Anki::Vector::external_interface::OnboardingPhase phase() const;
  void set_phase(::Anki::Vector::external_interface::OnboardingPhase value);
  private:
  ::Anki::Vector::external_interface::OnboardingPhase _internal_phase() const;
  void _internal_set_phase(::Anki::Vector::external_interface::OnboardingPhase value);
  public:

  // .Anki.Vector.external_interface.OnboardingPhaseState phase_state = 3;
  void clear_phase_state();
  ::Anki::Vector::external_interface::OnboardingPhaseState phase_state() const;
  void set_phase_state(::Anki::Vector::external_interface::OnboardingPhaseState value);
  private:
  ::Anki::Vector::external_interface::OnboardingPhaseState _internal_phase_state() const;
  void _internal_set_phase_state(::Anki::Vector::external_interface::OnboardingPhaseState value);
  public:

  
  // Begin code inserted by Anki plugin.
  OnboardingSetPhaseResponse( ResponseStatus* status, ::Anki::Vector::external_interface::OnboardingPhase phase, ::Anki::Vector::external_interface::OnboardingPhaseState phase_state );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
 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_;
  int phase_;
  int phase_state_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingPhaseProgressRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingPhaseProgressRequest) */ {
 public:
  inline OnboardingPhaseProgressRequest() : OnboardingPhaseProgressRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingPhaseProgressRequest();

  OnboardingPhaseProgressRequest(const OnboardingPhaseProgressRequest& from);
  OnboardingPhaseProgressRequest(OnboardingPhaseProgressRequest&& from) noexcept
    : OnboardingPhaseProgressRequest() {
    *this = ::std::move(from);
  }

  inline OnboardingPhaseProgressRequest& operator=(const OnboardingPhaseProgressRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingPhaseProgressRequest& operator=(OnboardingPhaseProgressRequest&& 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 OnboardingPhaseProgressRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingPhaseProgressRequest* internal_default_instance() {
    return reinterpret_cast<const OnboardingPhaseProgressRequest*>(
               &_OnboardingPhaseProgressRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    174;

  friend void swap(OnboardingPhaseProgressRequest& a, OnboardingPhaseProgressRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingPhaseProgressRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingPhaseProgressRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingPhaseProgressRequest* New() const final {
    return CreateMaybeMessage<OnboardingPhaseProgressRequest>(nullptr);
  }

  OnboardingPhaseProgressRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingPhaseProgressRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingPhaseProgressRequest& from);
  void MergeFrom(const OnboardingPhaseProgressRequest& 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(OnboardingPhaseProgressRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingPhaseProgressRequest";
  }
  protected:
  explicit OnboardingPhaseProgressRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingPhaseProgressResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingPhaseProgressResponse) */ {
 public:
  inline OnboardingPhaseProgressResponse() : OnboardingPhaseProgressResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingPhaseProgressResponse();

  OnboardingPhaseProgressResponse(const OnboardingPhaseProgressResponse& from);
  OnboardingPhaseProgressResponse(OnboardingPhaseProgressResponse&& from) noexcept
    : OnboardingPhaseProgressResponse() {
    *this = ::std::move(from);
  }

  inline OnboardingPhaseProgressResponse& operator=(const OnboardingPhaseProgressResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingPhaseProgressResponse& operator=(OnboardingPhaseProgressResponse&& 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 OnboardingPhaseProgressResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingPhaseProgressResponse* internal_default_instance() {
    return reinterpret_cast<const OnboardingPhaseProgressResponse*>(
               &_OnboardingPhaseProgressResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    175;

  friend void swap(OnboardingPhaseProgressResponse& a, OnboardingPhaseProgressResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingPhaseProgressResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingPhaseProgressResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingPhaseProgressResponse* New() const final {
    return CreateMaybeMessage<OnboardingPhaseProgressResponse>(nullptr);
  }

  OnboardingPhaseProgressResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingPhaseProgressResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingPhaseProgressResponse& from);
  void MergeFrom(const OnboardingPhaseProgressResponse& 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(OnboardingPhaseProgressResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingPhaseProgressResponse";
  }
  protected:
  explicit OnboardingPhaseProgressResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kLastSetPhaseFieldNumber = 2,
    kLastSetPhaseStateFieldNumber = 3,
    kPercentCompletedFieldNumber = 4,
  };
  // .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.OnboardingPhase last_set_phase = 2;
  void clear_last_set_phase();
  ::Anki::Vector::external_interface::OnboardingPhase last_set_phase() const;
  void set_last_set_phase(::Anki::Vector::external_interface::OnboardingPhase value);
  private:
  ::Anki::Vector::external_interface::OnboardingPhase _internal_last_set_phase() const;
  void _internal_set_last_set_phase(::Anki::Vector::external_interface::OnboardingPhase value);
  public:

  // .Anki.Vector.external_interface.OnboardingPhaseState last_set_phase_state = 3;
  void clear_last_set_phase_state();
  ::Anki::Vector::external_interface::OnboardingPhaseState last_set_phase_state() const;
  void set_last_set_phase_state(::Anki::Vector::external_interface::OnboardingPhaseState value);
  private:
  ::Anki::Vector::external_interface::OnboardingPhaseState _internal_last_set_phase_state() const;
  void _internal_set_last_set_phase_state(::Anki::Vector::external_interface::OnboardingPhaseState value);
  public:

  // int32 percent_completed = 4;
  void clear_percent_completed();
  ::PROTOBUF_NAMESPACE_ID::int32 percent_completed() const;
  void set_percent_completed(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_percent_completed() const;
  void _internal_set_percent_completed(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  OnboardingPhaseProgressResponse( ResponseStatus* status, ::Anki::Vector::external_interface::OnboardingPhase last_set_phase, ::Anki::Vector::external_interface::OnboardingPhaseState last_set_phase_state, ::google::protobuf::int32 percent_completed );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
 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_;
  int last_set_phase_;
  int last_set_phase_state_;
  ::PROTOBUF_NAMESPACE_ID::int32 percent_completed_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingChargeInfoRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingChargeInfoRequest) */ {
 public:
  inline OnboardingChargeInfoRequest() : OnboardingChargeInfoRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingChargeInfoRequest();

  OnboardingChargeInfoRequest(const OnboardingChargeInfoRequest& from);
  OnboardingChargeInfoRequest(OnboardingChargeInfoRequest&& from) noexcept
    : OnboardingChargeInfoRequest() {
    *this = ::std::move(from);
  }

  inline OnboardingChargeInfoRequest& operator=(const OnboardingChargeInfoRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingChargeInfoRequest& operator=(OnboardingChargeInfoRequest&& 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 OnboardingChargeInfoRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingChargeInfoRequest* internal_default_instance() {
    return reinterpret_cast<const OnboardingChargeInfoRequest*>(
               &_OnboardingChargeInfoRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    176;

  friend void swap(OnboardingChargeInfoRequest& a, OnboardingChargeInfoRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingChargeInfoRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingChargeInfoRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingChargeInfoRequest* New() const final {
    return CreateMaybeMessage<OnboardingChargeInfoRequest>(nullptr);
  }

  OnboardingChargeInfoRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingChargeInfoRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingChargeInfoRequest& from);
  void MergeFrom(const OnboardingChargeInfoRequest& 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(OnboardingChargeInfoRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingChargeInfoRequest";
  }
  protected:
  explicit OnboardingChargeInfoRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingChargeInfoResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingChargeInfoResponse) */ {
 public:
  inline OnboardingChargeInfoResponse() : OnboardingChargeInfoResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingChargeInfoResponse();

  OnboardingChargeInfoResponse(const OnboardingChargeInfoResponse& from);
  OnboardingChargeInfoResponse(OnboardingChargeInfoResponse&& from) noexcept
    : OnboardingChargeInfoResponse() {
    *this = ::std::move(from);
  }

  inline OnboardingChargeInfoResponse& operator=(const OnboardingChargeInfoResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingChargeInfoResponse& operator=(OnboardingChargeInfoResponse&& 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 OnboardingChargeInfoResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingChargeInfoResponse* internal_default_instance() {
    return reinterpret_cast<const OnboardingChargeInfoResponse*>(
               &_OnboardingChargeInfoResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    177;

  friend void swap(OnboardingChargeInfoResponse& a, OnboardingChargeInfoResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingChargeInfoResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingChargeInfoResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingChargeInfoResponse* New() const final {
    return CreateMaybeMessage<OnboardingChargeInfoResponse>(nullptr);
  }

  OnboardingChargeInfoResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingChargeInfoResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingChargeInfoResponse& from);
  void MergeFrom(const OnboardingChargeInfoResponse& 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(OnboardingChargeInfoResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingChargeInfoResponse";
  }
  protected:
  explicit OnboardingChargeInfoResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kOnChargerFieldNumber = 2,
    kNeedsToChargeFieldNumber = 3,
    kRequiredChargeTimeFieldNumber = 4,
  };
  // .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 on_charger = 2;
  void clear_on_charger();
  bool on_charger() const;
  void set_on_charger(bool value);
  private:
  bool _internal_on_charger() const;
  void _internal_set_on_charger(bool value);
  public:

  // bool needs_to_charge = 3;
  void clear_needs_to_charge();
  bool needs_to_charge() const;
  void set_needs_to_charge(bool value);
  private:
  bool _internal_needs_to_charge() const;
  void _internal_set_needs_to_charge(bool value);
  public:

  // float required_charge_time = 4;
  void clear_required_charge_time();
  float required_charge_time() const;
  void set_required_charge_time(float value);
  private:
  float _internal_required_charge_time() const;
  void _internal_set_required_charge_time(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  OnboardingChargeInfoResponse( ResponseStatus* status, bool on_charger, bool needs_to_charge, float required_charge_time );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
 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 on_charger_;
  bool needs_to_charge_;
  float required_charge_time_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingSkipOnboarding PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingSkipOnboarding) */ {
 public:
  inline OnboardingSkipOnboarding() : OnboardingSkipOnboarding(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingSkipOnboarding();

  OnboardingSkipOnboarding(const OnboardingSkipOnboarding& from);
  OnboardingSkipOnboarding(OnboardingSkipOnboarding&& from) noexcept
    : OnboardingSkipOnboarding() {
    *this = ::std::move(from);
  }

  inline OnboardingSkipOnboarding& operator=(const OnboardingSkipOnboarding& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingSkipOnboarding& operator=(OnboardingSkipOnboarding&& 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 OnboardingSkipOnboarding& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingSkipOnboarding* internal_default_instance() {
    return reinterpret_cast<const OnboardingSkipOnboarding*>(
               &_OnboardingSkipOnboarding_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    178;

  friend void swap(OnboardingSkipOnboarding& a, OnboardingSkipOnboarding& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingSkipOnboarding* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingSkipOnboarding* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingSkipOnboarding* New() const final {
    return CreateMaybeMessage<OnboardingSkipOnboarding>(nullptr);
  }

  OnboardingSkipOnboarding* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingSkipOnboarding>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingSkipOnboarding& from);
  void MergeFrom(const OnboardingSkipOnboarding& 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(OnboardingSkipOnboarding* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingSkipOnboarding";
  }
  protected:
  explicit OnboardingSkipOnboarding(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingSkipOnboarding)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingRestart PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingRestart) */ {
 public:
  inline OnboardingRestart() : OnboardingRestart(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingRestart();

  OnboardingRestart(const OnboardingRestart& from);
  OnboardingRestart(OnboardingRestart&& from) noexcept
    : OnboardingRestart() {
    *this = ::std::move(from);
  }

  inline OnboardingRestart& operator=(const OnboardingRestart& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingRestart& operator=(OnboardingRestart&& 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 OnboardingRestart& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingRestart* internal_default_instance() {
    return reinterpret_cast<const OnboardingRestart*>(
               &_OnboardingRestart_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    179;

  friend void swap(OnboardingRestart& a, OnboardingRestart& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingRestart* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingRestart* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingRestart* New() const final {
    return CreateMaybeMessage<OnboardingRestart>(nullptr);
  }

  OnboardingRestart* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingRestart>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingRestart& from);
  void MergeFrom(const OnboardingRestart& 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(OnboardingRestart* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingRestart";
  }
  protected:
  explicit OnboardingRestart(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingRestart)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingMarkCompleteAndExit PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit) */ {
 public:
  inline OnboardingMarkCompleteAndExit() : OnboardingMarkCompleteAndExit(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingMarkCompleteAndExit();

  OnboardingMarkCompleteAndExit(const OnboardingMarkCompleteAndExit& from);
  OnboardingMarkCompleteAndExit(OnboardingMarkCompleteAndExit&& from) noexcept
    : OnboardingMarkCompleteAndExit() {
    *this = ::std::move(from);
  }

  inline OnboardingMarkCompleteAndExit& operator=(const OnboardingMarkCompleteAndExit& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingMarkCompleteAndExit& operator=(OnboardingMarkCompleteAndExit&& 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 OnboardingMarkCompleteAndExit& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingMarkCompleteAndExit* internal_default_instance() {
    return reinterpret_cast<const OnboardingMarkCompleteAndExit*>(
               &_OnboardingMarkCompleteAndExit_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    180;

  friend void swap(OnboardingMarkCompleteAndExit& a, OnboardingMarkCompleteAndExit& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingMarkCompleteAndExit* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingMarkCompleteAndExit* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingMarkCompleteAndExit* New() const final {
    return CreateMaybeMessage<OnboardingMarkCompleteAndExit>(nullptr);
  }

  OnboardingMarkCompleteAndExit* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingMarkCompleteAndExit>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingMarkCompleteAndExit& from);
  void MergeFrom(const OnboardingMarkCompleteAndExit& 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(OnboardingMarkCompleteAndExit* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingMarkCompleteAndExit";
  }
  protected:
  explicit OnboardingMarkCompleteAndExit(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingInputRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingInputRequest) */ {
 public:
  inline OnboardingInputRequest() : OnboardingInputRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingInputRequest();

  OnboardingInputRequest(const OnboardingInputRequest& from);
  OnboardingInputRequest(OnboardingInputRequest&& from) noexcept
    : OnboardingInputRequest() {
    *this = ::std::move(from);
  }

  inline OnboardingInputRequest& operator=(const OnboardingInputRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingInputRequest& operator=(OnboardingInputRequest&& 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 OnboardingInputRequest& default_instance();

  enum OneofMessageTypeCase {
    kOnboardingCompleteRequest = 1,
    kOnboardingWakeUpRequest = 2,
    kOnboardingSkipOnboarding = 7,
    kOnboardingRestart = 8,
    kOnboardingWakeUpStartedRequest = 9,
    kOnboardingSetPhaseRequest = 10,
    kOnboardingPhaseProgressRequest = 11,
    kOnboardingChargeInfoRequest = 12,
    kOnboardingMarkCompleteAndExit = 13,
    ONEOF_MESSAGE_TYPE_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingInputRequest* internal_default_instance() {
    return reinterpret_cast<const OnboardingInputRequest*>(
               &_OnboardingInputRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    181;

  friend void swap(OnboardingInputRequest& a, OnboardingInputRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingInputRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingInputRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingInputRequest* New() const final {
    return CreateMaybeMessage<OnboardingInputRequest>(nullptr);
  }

  OnboardingInputRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingInputRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingInputRequest& from);
  void MergeFrom(const OnboardingInputRequest& 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(OnboardingInputRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingInputRequest";
  }
  protected:
  explicit OnboardingInputRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kOnboardingCompleteRequestFieldNumber = 1,
    kOnboardingWakeUpRequestFieldNumber = 2,
    kOnboardingSkipOnboardingFieldNumber = 7,
    kOnboardingRestartFieldNumber = 8,
    kOnboardingWakeUpStartedRequestFieldNumber = 9,
    kOnboardingSetPhaseRequestFieldNumber = 10,
    kOnboardingPhaseProgressRequestFieldNumber = 11,
    kOnboardingChargeInfoRequestFieldNumber = 12,
    kOnboardingMarkCompleteAndExitFieldNumber = 13,
  };
  // .Anki.Vector.external_interface.OnboardingCompleteRequest onboarding_complete_request = 1;
  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.OnboardingWakeUpRequest onboarding_wake_up_request = 2;
  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.OnboardingSkipOnboarding onboarding_skip_onboarding = 7;
  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 = 8;
  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.OnboardingWakeUpStartedRequest onboarding_wake_up_started_request = 9;
  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.OnboardingSetPhaseRequest onboarding_set_phase_request = 10;
  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.OnboardingPhaseProgressRequest onboarding_phase_progress_request = 11;
  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.OnboardingChargeInfoRequest onboarding_charge_info_request = 12;
  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.OnboardingMarkCompleteAndExit onboarding_mark_complete_and_exit = 13;
  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();

  void clear_oneof_message_type();
  OneofMessageTypeCase oneof_message_type_case() const;
  
  // Begin code inserted by Anki plugin.
  explicit OnboardingInputRequest( OnboardingCompleteRequest* onboarding_complete_request );
  explicit OnboardingInputRequest( OnboardingWakeUpRequest* onboarding_wake_up_request );
  explicit OnboardingInputRequest( OnboardingSkipOnboarding* onboarding_skip_onboarding );
  explicit OnboardingInputRequest( OnboardingRestart* onboarding_restart );
  explicit OnboardingInputRequest( OnboardingWakeUpStartedRequest* onboarding_wake_up_started_request );
  explicit OnboardingInputRequest( OnboardingSetPhaseRequest* onboarding_set_phase_request );
  explicit OnboardingInputRequest( OnboardingPhaseProgressRequest* onboarding_phase_progress_request );
  explicit OnboardingInputRequest( OnboardingChargeInfoRequest* onboarding_charge_info_request );
  explicit OnboardingInputRequest( OnboardingMarkCompleteAndExit* onboarding_mark_complete_and_exit );
  // End code inserted by Anki plugin.
  
  
  // Begin code inserted by Anki plugin.
  inline ::Anki::Vector::external_interface::OnboardingInputRequestTag GetTag() const {
    return static_cast<::Anki::Vector::external_interface::OnboardingInputRequestTag>( _oneof_case_[0] );
  }
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingInputRequest)
 private:
  class _Internal;
  void set_has_onboarding_complete_request();
  void set_has_onboarding_wake_up_request();
  void set_has_onboarding_skip_onboarding();
  void set_has_onboarding_restart();
  void set_has_onboarding_wake_up_started_request();
  void set_has_onboarding_set_phase_request();
  void set_has_onboarding_phase_progress_request();
  void set_has_onboarding_charge_info_request();
  void set_has_onboarding_mark_complete_and_exit();

  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_;
  union OneofMessageTypeUnion {
    OneofMessageTypeUnion() {}
    ::Anki::Vector::external_interface::OnboardingCompleteRequest* onboarding_complete_request_;
    ::Anki::Vector::external_interface::OnboardingWakeUpRequest* onboarding_wake_up_request_;
    ::Anki::Vector::external_interface::OnboardingSkipOnboarding* onboarding_skip_onboarding_;
    ::Anki::Vector::external_interface::OnboardingRestart* onboarding_restart_;
    ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* onboarding_wake_up_started_request_;
    ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* onboarding_set_phase_request_;
    ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* onboarding_phase_progress_request_;
    ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* onboarding_charge_info_request_;
    ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* onboarding_mark_complete_and_exit_;
  } oneof_message_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingInputResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingInputResponse) */ {
 public:
  inline OnboardingInputResponse() : OnboardingInputResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingInputResponse();

  OnboardingInputResponse(const OnboardingInputResponse& from);
  OnboardingInputResponse(OnboardingInputResponse&& from) noexcept
    : OnboardingInputResponse() {
    *this = ::std::move(from);
  }

  inline OnboardingInputResponse& operator=(const OnboardingInputResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingInputResponse& operator=(OnboardingInputResponse&& 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 OnboardingInputResponse& default_instance();

  enum OneofMessageTypeCase {
    kOnboardingCompleteResponse = 2,
    kOnboardingWakeUpResponse = 3,
    kOnboardingWakeUpStartedResponse = 6,
    kOnboardingSetPhaseResponse = 7,
    kOnboardingPhaseProgressResponse = 8,
    kOnboardingChargeInfoResponse = 9,
    ONEOF_MESSAGE_TYPE_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingInputResponse* internal_default_instance() {
    return reinterpret_cast<const OnboardingInputResponse*>(
               &_OnboardingInputResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    182;

  friend void swap(OnboardingInputResponse& a, OnboardingInputResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingInputResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingInputResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingInputResponse* New() const final {
    return CreateMaybeMessage<OnboardingInputResponse>(nullptr);
  }

  OnboardingInputResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingInputResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingInputResponse& from);
  void MergeFrom(const OnboardingInputResponse& 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(OnboardingInputResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingInputResponse";
  }
  protected:
  explicit OnboardingInputResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kOnboardingCompleteResponseFieldNumber = 2,
    kOnboardingWakeUpResponseFieldNumber = 3,
    kOnboardingWakeUpStartedResponseFieldNumber = 6,
    kOnboardingSetPhaseResponseFieldNumber = 7,
    kOnboardingPhaseProgressResponseFieldNumber = 8,
    kOnboardingChargeInfoResponseFieldNumber = 9,
  };
  // .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.OnboardingCompleteResponse onboarding_complete_response = 2;
  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.OnboardingWakeUpResponse onboarding_wake_up_response = 3;
  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.OnboardingWakeUpStartedResponse onboarding_wake_up_started_response = 6;
  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.OnboardingSetPhaseResponse onboarding_set_phase_response = 7;
  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.OnboardingPhaseProgressResponse onboarding_phase_progress_response = 8;
  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.OnboardingChargeInfoResponse onboarding_charge_info_response = 9;
  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();

  void clear_oneof_message_type();
  OneofMessageTypeCase oneof_message_type_case() const;
  
  // Begin code inserted by Anki plugin.
  explicit OnboardingInputResponse( ResponseStatus* status );
  explicit OnboardingInputResponse( OnboardingCompleteResponse* onboarding_complete_response );
  explicit OnboardingInputResponse( OnboardingWakeUpResponse* onboarding_wake_up_response );
  explicit OnboardingInputResponse( OnboardingWakeUpStartedResponse* onboarding_wake_up_started_response );
  explicit OnboardingInputResponse( OnboardingSetPhaseResponse* onboarding_set_phase_response );
  explicit OnboardingInputResponse( OnboardingPhaseProgressResponse* onboarding_phase_progress_response );
  explicit OnboardingInputResponse( OnboardingChargeInfoResponse* onboarding_charge_info_response );
  // End code inserted by Anki plugin.
  
  
  // Begin code inserted by Anki plugin.
  inline ::Anki::Vector::external_interface::OnboardingInputResponseTag GetTag() const {
    return static_cast<::Anki::Vector::external_interface::OnboardingInputResponseTag>( _oneof_case_[0] );
  }
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingInputResponse)
 private:
  class _Internal;
  void set_has_onboarding_complete_response();
  void set_has_onboarding_wake_up_response();
  void set_has_onboarding_wake_up_started_response();
  void set_has_onboarding_set_phase_response();
  void set_has_onboarding_phase_progress_response();
  void set_has_onboarding_charge_info_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_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  union OneofMessageTypeUnion {
    OneofMessageTypeUnion() {}
    ::Anki::Vector::external_interface::OnboardingCompleteResponse* onboarding_complete_response_;
    ::Anki::Vector::external_interface::OnboardingWakeUpResponse* onboarding_wake_up_response_;
    ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* onboarding_wake_up_started_response_;
    ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* onboarding_set_phase_response_;
    ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* onboarding_phase_progress_response_;
    ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* onboarding_charge_info_response_;
  } oneof_message_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingCompleteRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingCompleteRequest) */ {
 public:
  inline OnboardingCompleteRequest() : OnboardingCompleteRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingCompleteRequest();

  OnboardingCompleteRequest(const OnboardingCompleteRequest& from);
  OnboardingCompleteRequest(OnboardingCompleteRequest&& from) noexcept
    : OnboardingCompleteRequest() {
    *this = ::std::move(from);
  }

  inline OnboardingCompleteRequest& operator=(const OnboardingCompleteRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingCompleteRequest& operator=(OnboardingCompleteRequest&& 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 OnboardingCompleteRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingCompleteRequest* internal_default_instance() {
    return reinterpret_cast<const OnboardingCompleteRequest*>(
               &_OnboardingCompleteRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    183;

  friend void swap(OnboardingCompleteRequest& a, OnboardingCompleteRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingCompleteRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingCompleteRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingCompleteRequest* New() const final {
    return CreateMaybeMessage<OnboardingCompleteRequest>(nullptr);
  }

  OnboardingCompleteRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingCompleteRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingCompleteRequest& from);
  void MergeFrom(const OnboardingCompleteRequest& 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(OnboardingCompleteRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingCompleteRequest";
  }
  protected:
  explicit OnboardingCompleteRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingCompleteRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingCompleteResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingCompleteResponse) */ {
 public:
  inline OnboardingCompleteResponse() : OnboardingCompleteResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingCompleteResponse();

  OnboardingCompleteResponse(const OnboardingCompleteResponse& from);
  OnboardingCompleteResponse(OnboardingCompleteResponse&& from) noexcept
    : OnboardingCompleteResponse() {
    *this = ::std::move(from);
  }

  inline OnboardingCompleteResponse& operator=(const OnboardingCompleteResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingCompleteResponse& operator=(OnboardingCompleteResponse&& 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 OnboardingCompleteResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingCompleteResponse* internal_default_instance() {
    return reinterpret_cast<const OnboardingCompleteResponse*>(
               &_OnboardingCompleteResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    184;

  friend void swap(OnboardingCompleteResponse& a, OnboardingCompleteResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingCompleteResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingCompleteResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingCompleteResponse* New() const final {
    return CreateMaybeMessage<OnboardingCompleteResponse>(nullptr);
  }

  OnboardingCompleteResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingCompleteResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingCompleteResponse& from);
  void MergeFrom(const OnboardingCompleteResponse& 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(OnboardingCompleteResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingCompleteResponse";
  }
  protected:
  explicit OnboardingCompleteResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kCompletedFieldNumber = 1,
  };
  // bool completed = 1;
  void clear_completed();
  bool completed() const;
  void set_completed(bool value);
  private:
  bool _internal_completed() const;
  void _internal_set_completed(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit OnboardingCompleteResponse( bool completed );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingCompleteResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  bool completed_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingWakeUpStartedRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest) */ {
 public:
  inline OnboardingWakeUpStartedRequest() : OnboardingWakeUpStartedRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingWakeUpStartedRequest();

  OnboardingWakeUpStartedRequest(const OnboardingWakeUpStartedRequest& from);
  OnboardingWakeUpStartedRequest(OnboardingWakeUpStartedRequest&& from) noexcept
    : OnboardingWakeUpStartedRequest() {
    *this = ::std::move(from);
  }

  inline OnboardingWakeUpStartedRequest& operator=(const OnboardingWakeUpStartedRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingWakeUpStartedRequest& operator=(OnboardingWakeUpStartedRequest&& 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 OnboardingWakeUpStartedRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingWakeUpStartedRequest* internal_default_instance() {
    return reinterpret_cast<const OnboardingWakeUpStartedRequest*>(
               &_OnboardingWakeUpStartedRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    185;

  friend void swap(OnboardingWakeUpStartedRequest& a, OnboardingWakeUpStartedRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingWakeUpStartedRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingWakeUpStartedRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingWakeUpStartedRequest* New() const final {
    return CreateMaybeMessage<OnboardingWakeUpStartedRequest>(nullptr);
  }

  OnboardingWakeUpStartedRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingWakeUpStartedRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingWakeUpStartedRequest& from);
  void MergeFrom(const OnboardingWakeUpStartedRequest& 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(OnboardingWakeUpStartedRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingWakeUpStartedRequest";
  }
  protected:
  explicit OnboardingWakeUpStartedRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingWakeUpStartedResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse) */ {
 public:
  inline OnboardingWakeUpStartedResponse() : OnboardingWakeUpStartedResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingWakeUpStartedResponse();

  OnboardingWakeUpStartedResponse(const OnboardingWakeUpStartedResponse& from);
  OnboardingWakeUpStartedResponse(OnboardingWakeUpStartedResponse&& from) noexcept
    : OnboardingWakeUpStartedResponse() {
    *this = ::std::move(from);
  }

  inline OnboardingWakeUpStartedResponse& operator=(const OnboardingWakeUpStartedResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingWakeUpStartedResponse& operator=(OnboardingWakeUpStartedResponse&& 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 OnboardingWakeUpStartedResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingWakeUpStartedResponse* internal_default_instance() {
    return reinterpret_cast<const OnboardingWakeUpStartedResponse*>(
               &_OnboardingWakeUpStartedResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    186;

  friend void swap(OnboardingWakeUpStartedResponse& a, OnboardingWakeUpStartedResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingWakeUpStartedResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingWakeUpStartedResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingWakeUpStartedResponse* New() const final {
    return CreateMaybeMessage<OnboardingWakeUpStartedResponse>(nullptr);
  }

  OnboardingWakeUpStartedResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingWakeUpStartedResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingWakeUpStartedResponse& from);
  void MergeFrom(const OnboardingWakeUpStartedResponse& 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(OnboardingWakeUpStartedResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingWakeUpStartedResponse";
  }
  protected:
  explicit OnboardingWakeUpStartedResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kAlreadyStartedFieldNumber = 1,
  };
  // bool already_started = 1;
  void clear_already_started();
  bool already_started() const;
  void set_already_started(bool value);
  private:
  bool _internal_already_started() const;
  void _internal_set_already_started(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit OnboardingWakeUpStartedResponse( bool already_started );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  bool already_started_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingWakeUpRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingWakeUpRequest) */ {
 public:
  inline OnboardingWakeUpRequest() : OnboardingWakeUpRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingWakeUpRequest();

  OnboardingWakeUpRequest(const OnboardingWakeUpRequest& from);
  OnboardingWakeUpRequest(OnboardingWakeUpRequest&& from) noexcept
    : OnboardingWakeUpRequest() {
    *this = ::std::move(from);
  }

  inline OnboardingWakeUpRequest& operator=(const OnboardingWakeUpRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingWakeUpRequest& operator=(OnboardingWakeUpRequest&& 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 OnboardingWakeUpRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingWakeUpRequest* internal_default_instance() {
    return reinterpret_cast<const OnboardingWakeUpRequest*>(
               &_OnboardingWakeUpRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    187;

  friend void swap(OnboardingWakeUpRequest& a, OnboardingWakeUpRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingWakeUpRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingWakeUpRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingWakeUpRequest* New() const final {
    return CreateMaybeMessage<OnboardingWakeUpRequest>(nullptr);
  }

  OnboardingWakeUpRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingWakeUpRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingWakeUpRequest& from);
  void MergeFrom(const OnboardingWakeUpRequest& 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(OnboardingWakeUpRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingWakeUpRequest";
  }
  protected:
  explicit OnboardingWakeUpRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingWakeUpRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingWakeUpResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingWakeUpResponse) */ {
 public:
  inline OnboardingWakeUpResponse() : OnboardingWakeUpResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingWakeUpResponse();

  OnboardingWakeUpResponse(const OnboardingWakeUpResponse& from);
  OnboardingWakeUpResponse(OnboardingWakeUpResponse&& from) noexcept
    : OnboardingWakeUpResponse() {
    *this = ::std::move(from);
  }

  inline OnboardingWakeUpResponse& operator=(const OnboardingWakeUpResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingWakeUpResponse& operator=(OnboardingWakeUpResponse&& 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 OnboardingWakeUpResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingWakeUpResponse* internal_default_instance() {
    return reinterpret_cast<const OnboardingWakeUpResponse*>(
               &_OnboardingWakeUpResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    188;

  friend void swap(OnboardingWakeUpResponse& a, OnboardingWakeUpResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingWakeUpResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingWakeUpResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingWakeUpResponse* New() const final {
    return CreateMaybeMessage<OnboardingWakeUpResponse>(nullptr);
  }

  OnboardingWakeUpResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingWakeUpResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingWakeUpResponse& from);
  void MergeFrom(const OnboardingWakeUpResponse& 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(OnboardingWakeUpResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingWakeUpResponse";
  }
  protected:
  explicit OnboardingWakeUpResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kChargingInfoFieldNumber = 2,
    kWakingUpFieldNumber = 1,
  };
  // .Anki.Vector.external_interface.Onboarding1p0ChargingInfo charging_info = 2;
  bool has_charging_info() const;
  private:
  bool _internal_has_charging_info() const;
  public:
  void clear_charging_info();
  const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo& charging_info() const;
  ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* release_charging_info();
  ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* mutable_charging_info();
  void set_allocated_charging_info(::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* charging_info);
  private:
  const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo& _internal_charging_info() const;
  ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* _internal_mutable_charging_info();
  public:
  void unsafe_arena_set_allocated_charging_info(
      ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* charging_info);
  ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* unsafe_arena_release_charging_info();

  // bool waking_up = 1;
  void clear_waking_up();
  bool waking_up() const;
  void set_waking_up(bool value);
  private:
  bool _internal_waking_up() const;
  void _internal_set_waking_up(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  OnboardingWakeUpResponse( bool waking_up, Onboarding1p0ChargingInfo* charging_info );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingWakeUpResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* charging_info_;
  bool waking_up_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class Onboarding1p0ChargingInfo PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.Onboarding1p0ChargingInfo) */ {
 public:
  inline Onboarding1p0ChargingInfo() : Onboarding1p0ChargingInfo(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~Onboarding1p0ChargingInfo();

  Onboarding1p0ChargingInfo(const Onboarding1p0ChargingInfo& from);
  Onboarding1p0ChargingInfo(Onboarding1p0ChargingInfo&& from) noexcept
    : Onboarding1p0ChargingInfo() {
    *this = ::std::move(from);
  }

  inline Onboarding1p0ChargingInfo& operator=(const Onboarding1p0ChargingInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline Onboarding1p0ChargingInfo& operator=(Onboarding1p0ChargingInfo&& 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 Onboarding1p0ChargingInfo& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Onboarding1p0ChargingInfo* internal_default_instance() {
    return reinterpret_cast<const Onboarding1p0ChargingInfo*>(
               &_Onboarding1p0ChargingInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    189;

  friend void swap(Onboarding1p0ChargingInfo& a, Onboarding1p0ChargingInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(Onboarding1p0ChargingInfo* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Onboarding1p0ChargingInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline Onboarding1p0ChargingInfo* New() const final {
    return CreateMaybeMessage<Onboarding1p0ChargingInfo>(nullptr);
  }

  Onboarding1p0ChargingInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<Onboarding1p0ChargingInfo>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const Onboarding1p0ChargingInfo& from);
  void MergeFrom(const Onboarding1p0ChargingInfo& 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(Onboarding1p0ChargingInfo* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.Onboarding1p0ChargingInfo";
  }
  protected:
  explicit Onboarding1p0ChargingInfo(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kOnChargerFieldNumber = 1,
    kNeedsToChargeFieldNumber = 2,
    kSuggestedChargerTimeFieldNumber = 3,
  };
  // bool on_charger = 1;
  void clear_on_charger();
  bool on_charger() const;
  void set_on_charger(bool value);
  private:
  bool _internal_on_charger() const;
  void _internal_set_on_charger(bool value);
  public:

  // bool needs_to_charge = 2;
  void clear_needs_to_charge();
  bool needs_to_charge() const;
  void set_needs_to_charge(bool value);
  private:
  bool _internal_needs_to_charge() const;
  void _internal_set_needs_to_charge(bool value);
  public:

  // float suggested_charger_time = 3;
  void clear_suggested_charger_time();
  float suggested_charger_time() const;
  void set_suggested_charger_time(float value);
  private:
  float _internal_suggested_charger_time() const;
  void _internal_set_suggested_charger_time(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  Onboarding1p0ChargingInfo( bool on_charger, bool needs_to_charge, float suggested_charger_time );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  bool on_charger_;
  bool needs_to_charge_;
  float suggested_charger_time_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class OnboardingWakeUpFinished PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.OnboardingWakeUpFinished) */ {
 public:
  inline OnboardingWakeUpFinished() : OnboardingWakeUpFinished(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~OnboardingWakeUpFinished();

  OnboardingWakeUpFinished(const OnboardingWakeUpFinished& from);
  OnboardingWakeUpFinished(OnboardingWakeUpFinished&& from) noexcept
    : OnboardingWakeUpFinished() {
    *this = ::std::move(from);
  }

  inline OnboardingWakeUpFinished& operator=(const OnboardingWakeUpFinished& from) {
    CopyFrom(from);
    return *this;
  }
  inline OnboardingWakeUpFinished& operator=(OnboardingWakeUpFinished&& 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 OnboardingWakeUpFinished& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OnboardingWakeUpFinished* internal_default_instance() {
    return reinterpret_cast<const OnboardingWakeUpFinished*>(
               &_OnboardingWakeUpFinished_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    190;

  friend void swap(OnboardingWakeUpFinished& a, OnboardingWakeUpFinished& b) {
    a.Swap(&b);
  }
  inline void Swap(OnboardingWakeUpFinished* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OnboardingWakeUpFinished* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OnboardingWakeUpFinished* New() const final {
    return CreateMaybeMessage<OnboardingWakeUpFinished>(nullptr);
  }

  OnboardingWakeUpFinished* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OnboardingWakeUpFinished>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OnboardingWakeUpFinished& from);
  void MergeFrom(const OnboardingWakeUpFinished& 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(OnboardingWakeUpFinished* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.OnboardingWakeUpFinished";
  }
  protected:
  explicit OnboardingWakeUpFinished(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.OnboardingWakeUpFinished)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class FeatureFlagRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.FeatureFlagRequest) */ {
 public:
  inline FeatureFlagRequest() : FeatureFlagRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~FeatureFlagRequest();

  FeatureFlagRequest(const FeatureFlagRequest& from);
  FeatureFlagRequest(FeatureFlagRequest&& from) noexcept
    : FeatureFlagRequest() {
    *this = ::std::move(from);
  }

  inline FeatureFlagRequest& operator=(const FeatureFlagRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline FeatureFlagRequest& operator=(FeatureFlagRequest&& 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 FeatureFlagRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const FeatureFlagRequest* internal_default_instance() {
    return reinterpret_cast<const FeatureFlagRequest*>(
               &_FeatureFlagRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    191;

  friend void swap(FeatureFlagRequest& a, FeatureFlagRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(FeatureFlagRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FeatureFlagRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline FeatureFlagRequest* New() const final {
    return CreateMaybeMessage<FeatureFlagRequest>(nullptr);
  }

  FeatureFlagRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<FeatureFlagRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const FeatureFlagRequest& from);
  void MergeFrom(const FeatureFlagRequest& 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(FeatureFlagRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.FeatureFlagRequest";
  }
  protected:
  explicit FeatureFlagRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kFeatureNameFieldNumber = 1,
  };
  // string feature_name = 1;
  void clear_feature_name();
  const std::string& feature_name() const;
  void set_feature_name(const std::string& value);
  void set_feature_name(std::string&& value);
  void set_feature_name(const char* value);
  void set_feature_name(const char* value, size_t size);
  std::string* mutable_feature_name();
  std::string* release_feature_name();
  void set_allocated_feature_name(std::string* feature_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_feature_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_feature_name(
      std::string* feature_name);
  private:
  const std::string& _internal_feature_name() const;
  void _internal_set_feature_name(const std::string& value);
  std::string* _internal_mutable_feature_name();
  public:

  
  // Begin code inserted by Anki plugin.
  explicit FeatureFlagRequest( const std::string& feature_name );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.FeatureFlagRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr feature_name_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class FeatureFlagResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.FeatureFlagResponse) */ {
 public:
  inline FeatureFlagResponse() : FeatureFlagResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~FeatureFlagResponse();

  FeatureFlagResponse(const FeatureFlagResponse& from);
  FeatureFlagResponse(FeatureFlagResponse&& from) noexcept
    : FeatureFlagResponse() {
    *this = ::std::move(from);
  }

  inline FeatureFlagResponse& operator=(const FeatureFlagResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline FeatureFlagResponse& operator=(FeatureFlagResponse&& 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 FeatureFlagResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const FeatureFlagResponse* internal_default_instance() {
    return reinterpret_cast<const FeatureFlagResponse*>(
               &_FeatureFlagResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    192;

  friend void swap(FeatureFlagResponse& a, FeatureFlagResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(FeatureFlagResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FeatureFlagResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline FeatureFlagResponse* New() const final {
    return CreateMaybeMessage<FeatureFlagResponse>(nullptr);
  }

  FeatureFlagResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<FeatureFlagResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const FeatureFlagResponse& from);
  void MergeFrom(const FeatureFlagResponse& 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(FeatureFlagResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.FeatureFlagResponse";
  }
  protected:
  explicit FeatureFlagResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kValidFeatureFieldNumber = 2,
    kFeatureEnabledFieldNumber = 3,
  };
  // .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 valid_feature = 2;
  void clear_valid_feature();
  bool valid_feature() const;
  void set_valid_feature(bool value);
  private:
  bool _internal_valid_feature() const;
  void _internal_set_valid_feature(bool value);
  public:

  // bool feature_enabled = 3;
  void clear_feature_enabled();
  bool feature_enabled() const;
  void set_feature_enabled(bool value);
  private:
  bool _internal_feature_enabled() const;
  void _internal_set_feature_enabled(bool value);
  public:

  
  // Begin code inserted by Anki plugin.
  FeatureFlagResponse( ResponseStatus* status, bool valid_feature, bool feature_enabled );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.FeatureFlagResponse)
 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 valid_feature_;
  bool feature_enabled_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class FeatureFlagListRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.FeatureFlagListRequest) */ {
 public:
  inline FeatureFlagListRequest() : FeatureFlagListRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~FeatureFlagListRequest();

  FeatureFlagListRequest(const FeatureFlagListRequest& from);
  FeatureFlagListRequest(FeatureFlagListRequest&& from) noexcept
    : FeatureFlagListRequest() {
    *this = ::std::move(from);
  }

  inline FeatureFlagListRequest& operator=(const FeatureFlagListRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline FeatureFlagListRequest& operator=(FeatureFlagListRequest&& 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 FeatureFlagListRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const FeatureFlagListRequest* internal_default_instance() {
    return reinterpret_cast<const FeatureFlagListRequest*>(
               &_FeatureFlagListRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    193;

  friend void swap(FeatureFlagListRequest& a, FeatureFlagListRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(FeatureFlagListRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FeatureFlagListRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline FeatureFlagListRequest* New() const final {
    return CreateMaybeMessage<FeatureFlagListRequest>(nullptr);
  }

  FeatureFlagListRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<FeatureFlagListRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const FeatureFlagListRequest& from);
  void MergeFrom(const FeatureFlagListRequest& 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(FeatureFlagListRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.FeatureFlagListRequest";
  }
  protected:
  explicit FeatureFlagListRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kRequestListFieldNumber = 1,
  };
  // repeated string request_list = 1;
  int request_list_size() const;
  private:
  int _internal_request_list_size() const;
  public:
  void clear_request_list();
  const std::string& request_list(int index) const;
  std::string* mutable_request_list(int index);
  void set_request_list(int index, const std::string& value);
  void set_request_list(int index, std::string&& value);
  void set_request_list(int index, const char* value);
  void set_request_list(int index, const char* value, size_t size);
  std::string* add_request_list();
  void add_request_list(const std::string& value);
  void add_request_list(std::string&& value);
  void add_request_list(const char* value);
  void add_request_list(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& request_list() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_request_list();
  private:
  const std::string& _internal_request_list(int index) const;
  std::string* _internal_add_request_list();
  public:

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.FeatureFlagListRequest)
 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> request_list_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class FeatureFlagListResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.FeatureFlagListResponse) */ {
 public:
  inline FeatureFlagListResponse() : FeatureFlagListResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~FeatureFlagListResponse();

  FeatureFlagListResponse(const FeatureFlagListResponse& from);
  FeatureFlagListResponse(FeatureFlagListResponse&& from) noexcept
    : FeatureFlagListResponse() {
    *this = ::std::move(from);
  }

  inline FeatureFlagListResponse& operator=(const FeatureFlagListResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline FeatureFlagListResponse& operator=(FeatureFlagListResponse&& 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 FeatureFlagListResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const FeatureFlagListResponse* internal_default_instance() {
    return reinterpret_cast<const FeatureFlagListResponse*>(
               &_FeatureFlagListResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    194;

  friend void swap(FeatureFlagListResponse& a, FeatureFlagListResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(FeatureFlagListResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FeatureFlagListResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline FeatureFlagListResponse* New() const final {
    return CreateMaybeMessage<FeatureFlagListResponse>(nullptr);
  }

  FeatureFlagListResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<FeatureFlagListResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const FeatureFlagListResponse& from);
  void MergeFrom(const FeatureFlagListResponse& 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(FeatureFlagListResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.FeatureFlagListResponse";
  }
  protected:
  explicit FeatureFlagListResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kListFieldNumber = 2,
    kStatusFieldNumber = 1,
  };
  // repeated string list = 2;
  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:

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  bool has_status() const;
  private:
  bool _internal_has_status() const;
  public:
  void clear_status();
  const ::Anki::Vector::external_interface::ResponseStatus& status() const;
  ::Anki::Vector::external_interface::ResponseStatus* release_status();
  ::Anki::Vector::external_interface::ResponseStatus* mutable_status();
  void set_allocated_status(::Anki::Vector::external_interface::ResponseStatus* status);
  private:
  const ::Anki::Vector::external_interface::ResponseStatus& _internal_status() const;
  ::Anki::Vector::external_interface::ResponseStatus* _internal_mutable_status();
  public:
  void unsafe_arena_set_allocated_status(
      ::Anki::Vector::external_interface::ResponseStatus* status);
  ::Anki::Vector::external_interface::ResponseStatus* unsafe_arena_release_status();

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.FeatureFlagListResponse)
 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_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class AttentionTransfer PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.AttentionTransfer) */ {
 public:
  inline AttentionTransfer() : AttentionTransfer(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~AttentionTransfer();

  AttentionTransfer(const AttentionTransfer& from);
  AttentionTransfer(AttentionTransfer&& from) noexcept
    : AttentionTransfer() {
    *this = ::std::move(from);
  }

  inline AttentionTransfer& operator=(const AttentionTransfer& from) {
    CopyFrom(from);
    return *this;
  }
  inline AttentionTransfer& operator=(AttentionTransfer&& 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 AttentionTransfer& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AttentionTransfer* internal_default_instance() {
    return reinterpret_cast<const AttentionTransfer*>(
               &_AttentionTransfer_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    195;

  friend void swap(AttentionTransfer& a, AttentionTransfer& b) {
    a.Swap(&b);
  }
  inline void Swap(AttentionTransfer* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AttentionTransfer* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline AttentionTransfer* New() const final {
    return CreateMaybeMessage<AttentionTransfer>(nullptr);
  }

  AttentionTransfer* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<AttentionTransfer>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const AttentionTransfer& from);
  void MergeFrom(const AttentionTransfer& 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(AttentionTransfer* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.AttentionTransfer";
  }
  protected:
  explicit AttentionTransfer(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kReasonFieldNumber = 1,
    kSecondsAgoFieldNumber = 2,
  };
  // .Anki.Vector.external_interface.AttentionTransferReason reason = 1;
  void clear_reason();
  ::Anki::Vector::external_interface::AttentionTransferReason reason() const;
  void set_reason(::Anki::Vector::external_interface::AttentionTransferReason value);
  private:
  ::Anki::Vector::external_interface::AttentionTransferReason _internal_reason() const;
  void _internal_set_reason(::Anki::Vector::external_interface::AttentionTransferReason value);
  public:

  // float seconds_ago = 2;
  void clear_seconds_ago();
  float seconds_ago() const;
  void set_seconds_ago(float value);
  private:
  float _internal_seconds_ago() const;
  void _internal_set_seconds_ago(float value);
  public:

  
  // Begin code inserted by Anki plugin.
  AttentionTransfer( ::Anki::Vector::external_interface::AttentionTransferReason reason, float seconds_ago );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.AttentionTransfer)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  int reason_;
  float seconds_ago_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class LatestAttentionTransferRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.LatestAttentionTransferRequest) */ {
 public:
  inline LatestAttentionTransferRequest() : LatestAttentionTransferRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~LatestAttentionTransferRequest();

  LatestAttentionTransferRequest(const LatestAttentionTransferRequest& from);
  LatestAttentionTransferRequest(LatestAttentionTransferRequest&& from) noexcept
    : LatestAttentionTransferRequest() {
    *this = ::std::move(from);
  }

  inline LatestAttentionTransferRequest& operator=(const LatestAttentionTransferRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline LatestAttentionTransferRequest& operator=(LatestAttentionTransferRequest&& 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 LatestAttentionTransferRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const LatestAttentionTransferRequest* internal_default_instance() {
    return reinterpret_cast<const LatestAttentionTransferRequest*>(
               &_LatestAttentionTransferRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    196;

  friend void swap(LatestAttentionTransferRequest& a, LatestAttentionTransferRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(LatestAttentionTransferRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(LatestAttentionTransferRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline LatestAttentionTransferRequest* New() const final {
    return CreateMaybeMessage<LatestAttentionTransferRequest>(nullptr);
  }

  LatestAttentionTransferRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<LatestAttentionTransferRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const LatestAttentionTransferRequest& from);
  void MergeFrom(const LatestAttentionTransferRequest& 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(LatestAttentionTransferRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.LatestAttentionTransferRequest";
  }
  protected:
  explicit LatestAttentionTransferRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.LatestAttentionTransferRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class LatestAttentionTransfer PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.LatestAttentionTransfer) */ {
 public:
  inline LatestAttentionTransfer() : LatestAttentionTransfer(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~LatestAttentionTransfer();

  LatestAttentionTransfer(const LatestAttentionTransfer& from);
  LatestAttentionTransfer(LatestAttentionTransfer&& from) noexcept
    : LatestAttentionTransfer() {
    *this = ::std::move(from);
  }

  inline LatestAttentionTransfer& operator=(const LatestAttentionTransfer& from) {
    CopyFrom(from);
    return *this;
  }
  inline LatestAttentionTransfer& operator=(LatestAttentionTransfer&& 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 LatestAttentionTransfer& default_instance();

  enum OneofMessageTypeCase {
    kAttentionTransfer = 1,
    ONEOF_MESSAGE_TYPE_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const LatestAttentionTransfer* internal_default_instance() {
    return reinterpret_cast<const LatestAttentionTransfer*>(
               &_LatestAttentionTransfer_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    197;

  friend void swap(LatestAttentionTransfer& a, LatestAttentionTransfer& b) {
    a.Swap(&b);
  }
  inline void Swap(LatestAttentionTransfer* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(LatestAttentionTransfer* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline LatestAttentionTransfer* New() const final {
    return CreateMaybeMessage<LatestAttentionTransfer>(nullptr);
  }

  LatestAttentionTransfer* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<LatestAttentionTransfer>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const LatestAttentionTransfer& from);
  void MergeFrom(const LatestAttentionTransfer& 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(LatestAttentionTransfer* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.LatestAttentionTransfer";
  }
  protected:
  explicit LatestAttentionTransfer(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kAttentionTransferFieldNumber = 1,
  };
  // .Anki.Vector.external_interface.AttentionTransfer attention_transfer = 1;
  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();

  void clear_oneof_message_type();
  OneofMessageTypeCase oneof_message_type_case() const;
  
  // Begin code inserted by Anki plugin.
  explicit LatestAttentionTransfer( AttentionTransfer* attention_transfer );
  // End code inserted by Anki plugin.
  
  
  // Begin code inserted by Anki plugin.
  inline ::Anki::Vector::external_interface::LatestAttentionTransferTag GetTag() const {
    return static_cast<::Anki::Vector::external_interface::LatestAttentionTransferTag>( _oneof_case_[0] );
  }
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.LatestAttentionTransfer)
 private:
  class _Internal;
  void set_has_attention_transfer();

  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_;
  union OneofMessageTypeUnion {
    OneofMessageTypeUnion() {}
    ::Anki::Vector::external_interface::AttentionTransfer* attention_transfer_;
  } oneof_message_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class LatestAttentionTransferResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.LatestAttentionTransferResponse) */ {
 public:
  inline LatestAttentionTransferResponse() : LatestAttentionTransferResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~LatestAttentionTransferResponse();

  LatestAttentionTransferResponse(const LatestAttentionTransferResponse& from);
  LatestAttentionTransferResponse(LatestAttentionTransferResponse&& from) noexcept
    : LatestAttentionTransferResponse() {
    *this = ::std::move(from);
  }

  inline LatestAttentionTransferResponse& operator=(const LatestAttentionTransferResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline LatestAttentionTransferResponse& operator=(LatestAttentionTransferResponse&& 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 LatestAttentionTransferResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const LatestAttentionTransferResponse* internal_default_instance() {
    return reinterpret_cast<const LatestAttentionTransferResponse*>(
               &_LatestAttentionTransferResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    198;

  friend void swap(LatestAttentionTransferResponse& a, LatestAttentionTransferResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(LatestAttentionTransferResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(LatestAttentionTransferResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline LatestAttentionTransferResponse* New() const final {
    return CreateMaybeMessage<LatestAttentionTransferResponse>(nullptr);
  }

  LatestAttentionTransferResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<LatestAttentionTransferResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const LatestAttentionTransferResponse& from);
  void MergeFrom(const LatestAttentionTransferResponse& 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(LatestAttentionTransferResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.LatestAttentionTransferResponse";
  }
  protected:
  explicit LatestAttentionTransferResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
    kLatestAttentionTransferFieldNumber = 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.LatestAttentionTransfer latest_attention_transfer = 2;
  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();

  
  // Begin code inserted by Anki plugin.
  LatestAttentionTransferResponse( ResponseStatus* status, LatestAttentionTransfer* latest_attention_transfer );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.LatestAttentionTransferResponse)
 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::LatestAttentionTransfer* latest_attention_transfer_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class UpdateAndRestartRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.UpdateAndRestartRequest) */ {
 public:
  inline UpdateAndRestartRequest() : UpdateAndRestartRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~UpdateAndRestartRequest();

  UpdateAndRestartRequest(const UpdateAndRestartRequest& from);
  UpdateAndRestartRequest(UpdateAndRestartRequest&& from) noexcept
    : UpdateAndRestartRequest() {
    *this = ::std::move(from);
  }

  inline UpdateAndRestartRequest& operator=(const UpdateAndRestartRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateAndRestartRequest& operator=(UpdateAndRestartRequest&& 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 UpdateAndRestartRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const UpdateAndRestartRequest* internal_default_instance() {
    return reinterpret_cast<const UpdateAndRestartRequest*>(
               &_UpdateAndRestartRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    199;

  friend void swap(UpdateAndRestartRequest& a, UpdateAndRestartRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(UpdateAndRestartRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdateAndRestartRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline UpdateAndRestartRequest* New() const final {
    return CreateMaybeMessage<UpdateAndRestartRequest>(nullptr);
  }

  UpdateAndRestartRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UpdateAndRestartRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UpdateAndRestartRequest& from);
  void MergeFrom(const UpdateAndRestartRequest& 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(UpdateAndRestartRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.UpdateAndRestartRequest";
  }
  protected:
  explicit UpdateAndRestartRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UpdateAndRestartRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class UpdateAndRestartResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.UpdateAndRestartResponse) */ {
 public:
  inline UpdateAndRestartResponse() : UpdateAndRestartResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~UpdateAndRestartResponse();

  UpdateAndRestartResponse(const UpdateAndRestartResponse& from);
  UpdateAndRestartResponse(UpdateAndRestartResponse&& from) noexcept
    : UpdateAndRestartResponse() {
    *this = ::std::move(from);
  }

  inline UpdateAndRestartResponse& operator=(const UpdateAndRestartResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateAndRestartResponse& operator=(UpdateAndRestartResponse&& 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 UpdateAndRestartResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const UpdateAndRestartResponse* internal_default_instance() {
    return reinterpret_cast<const UpdateAndRestartResponse*>(
               &_UpdateAndRestartResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    200;

  friend void swap(UpdateAndRestartResponse& a, UpdateAndRestartResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(UpdateAndRestartResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdateAndRestartResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline UpdateAndRestartResponse* New() const final {
    return CreateMaybeMessage<UpdateAndRestartResponse>(nullptr);
  }

  UpdateAndRestartResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UpdateAndRestartResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UpdateAndRestartResponse& from);
  void MergeFrom(const UpdateAndRestartResponse& 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(UpdateAndRestartResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.UpdateAndRestartResponse";
  }
  protected:
  explicit UpdateAndRestartResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kStatusFieldNumber = 1,
  };
  // .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();

  
  // Begin code inserted by Anki plugin.
  explicit UpdateAndRestartResponse( ResponseStatus* status );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UpdateAndRestartResponse)
 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_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CheckUpdateStatusRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CheckUpdateStatusRequest) */ {
 public:
  inline CheckUpdateStatusRequest() : CheckUpdateStatusRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CheckUpdateStatusRequest();

  CheckUpdateStatusRequest(const CheckUpdateStatusRequest& from);
  CheckUpdateStatusRequest(CheckUpdateStatusRequest&& from) noexcept
    : CheckUpdateStatusRequest() {
    *this = ::std::move(from);
  }

  inline CheckUpdateStatusRequest& operator=(const CheckUpdateStatusRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CheckUpdateStatusRequest& operator=(CheckUpdateStatusRequest&& 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 CheckUpdateStatusRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CheckUpdateStatusRequest* internal_default_instance() {
    return reinterpret_cast<const CheckUpdateStatusRequest*>(
               &_CheckUpdateStatusRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    201;

  friend void swap(CheckUpdateStatusRequest& a, CheckUpdateStatusRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(CheckUpdateStatusRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CheckUpdateStatusRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CheckUpdateStatusRequest* New() const final {
    return CreateMaybeMessage<CheckUpdateStatusRequest>(nullptr);
  }

  CheckUpdateStatusRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CheckUpdateStatusRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CheckUpdateStatusRequest& from);
  void MergeFrom(const CheckUpdateStatusRequest& 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(CheckUpdateStatusRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CheckUpdateStatusRequest";
  }
  protected:
  explicit CheckUpdateStatusRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CheckUpdateStatusRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CheckUpdateStatusResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CheckUpdateStatusResponse) */ {
 public:
  inline CheckUpdateStatusResponse() : CheckUpdateStatusResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CheckUpdateStatusResponse();

  CheckUpdateStatusResponse(const CheckUpdateStatusResponse& from);
  CheckUpdateStatusResponse(CheckUpdateStatusResponse&& from) noexcept
    : CheckUpdateStatusResponse() {
    *this = ::std::move(from);
  }

  inline CheckUpdateStatusResponse& operator=(const CheckUpdateStatusResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline CheckUpdateStatusResponse& operator=(CheckUpdateStatusResponse&& 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 CheckUpdateStatusResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CheckUpdateStatusResponse* internal_default_instance() {
    return reinterpret_cast<const CheckUpdateStatusResponse*>(
               &_CheckUpdateStatusResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    202;

  friend void swap(CheckUpdateStatusResponse& a, CheckUpdateStatusResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(CheckUpdateStatusResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CheckUpdateStatusResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CheckUpdateStatusResponse* New() const final {
    return CreateMaybeMessage<CheckUpdateStatusResponse>(nullptr);
  }

  CheckUpdateStatusResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CheckUpdateStatusResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CheckUpdateStatusResponse& from);
  void MergeFrom(const CheckUpdateStatusResponse& 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(CheckUpdateStatusResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CheckUpdateStatusResponse";
  }
  protected:
  explicit CheckUpdateStatusResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef CheckUpdateStatusResponse_UpdateStatus UpdateStatus;
  static constexpr UpdateStatus NO_UPDATE =
    CheckUpdateStatusResponse_UpdateStatus_NO_UPDATE;
  static constexpr UpdateStatus READY_TO_REBOOT_INTO_NEW_OS_VERSION =
    CheckUpdateStatusResponse_UpdateStatus_READY_TO_REBOOT_INTO_NEW_OS_VERSION;
  static constexpr UpdateStatus IN_PROGRESS_DOWNLOAD =
    CheckUpdateStatusResponse_UpdateStatus_IN_PROGRESS_DOWNLOAD;
  static constexpr UpdateStatus FAILURE_INTERRUPTED_DOWNLOAD =
    CheckUpdateStatusResponse_UpdateStatus_FAILURE_INTERRUPTED_DOWNLOAD;
  static constexpr UpdateStatus IN_PROGRESS_STARTING =
    CheckUpdateStatusResponse_UpdateStatus_IN_PROGRESS_STARTING;
  static constexpr UpdateStatus IN_PROGRESS_OTHER =
    CheckUpdateStatusResponse_UpdateStatus_IN_PROGRESS_OTHER;
  static constexpr UpdateStatus FAILURE_OTHER =
    CheckUpdateStatusResponse_UpdateStatus_FAILURE_OTHER;
  static inline bool UpdateStatus_IsValid(int value) {
    return CheckUpdateStatusResponse_UpdateStatus_IsValid(value);
  }
  static constexpr UpdateStatus UpdateStatus_MIN =
    CheckUpdateStatusResponse_UpdateStatus_UpdateStatus_MIN;
  static constexpr UpdateStatus UpdateStatus_MAX =
    CheckUpdateStatusResponse_UpdateStatus_UpdateStatus_MAX;
  static constexpr int UpdateStatus_ARRAYSIZE =
    CheckUpdateStatusResponse_UpdateStatus_UpdateStatus_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  UpdateStatus_descriptor() {
    return CheckUpdateStatusResponse_UpdateStatus_descriptor();
  }
  template<typename T>
  static inline const std::string& UpdateStatus_Name(T enum_t_value) {
    static_assert(::std::is_same<T, UpdateStatus>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function UpdateStatus_Name.");
    return CheckUpdateStatusResponse_UpdateStatus_Name(enum_t_value);
  }
  static inline bool UpdateStatus_Parse(const std::string& name,
      UpdateStatus* value) {
    return CheckUpdateStatusResponse_UpdateStatus_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kUpdateVersionFieldNumber = 5,
    kUpdatePhaseFieldNumber = 6,
    kErrorFieldNumber = 7,
    kStatusFieldNumber = 1,
    kExpectedFieldNumber = 3,
    kProgressFieldNumber = 4,
    kExitCodeFieldNumber = 8,
    kUpdateStatusFieldNumber = 2,
  };
  // string update_version = 5;
  void clear_update_version();
  const std::string& update_version() const;
  void set_update_version(const std::string& value);
  void set_update_version(std::string&& value);
  void set_update_version(const char* value);
  void set_update_version(const char* value, size_t size);
  std::string* mutable_update_version();
  std::string* release_update_version();
  void set_allocated_update_version(std::string* update_version);
  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_update_version();
  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_update_version(
      std::string* update_version);
  private:
  const std::string& _internal_update_version() const;
  void _internal_set_update_version(const std::string& value);
  std::string* _internal_mutable_update_version();
  public:

  // string update_phase = 6;
  void clear_update_phase();
  const std::string& update_phase() const;
  void set_update_phase(const std::string& value);
  void set_update_phase(std::string&& value);
  void set_update_phase(const char* value);
  void set_update_phase(const char* value, size_t size);
  std::string* mutable_update_phase();
  std::string* release_update_phase();
  void set_allocated_update_phase(std::string* update_phase);
  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_update_phase();
  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_update_phase(
      std::string* update_phase);
  private:
  const std::string& _internal_update_phase() const;
  void _internal_set_update_phase(const std::string& value);
  std::string* _internal_mutable_update_phase();
  public:

  // string error = 7;
  void clear_error();
  const std::string& error() const;
  void set_error(const std::string& value);
  void set_error(std::string&& value);
  void set_error(const char* value);
  void set_error(const char* value, size_t size);
  std::string* mutable_error();
  std::string* release_error();
  void set_allocated_error(std::string* error);
  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_error();
  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_error(
      std::string* error);
  private:
  const std::string& _internal_error() const;
  void _internal_set_error(const std::string& value);
  std::string* _internal_mutable_error();
  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();

  // int64 expected = 3;
  void clear_expected();
  ::PROTOBUF_NAMESPACE_ID::int64 expected() const;
  void set_expected(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_expected() const;
  void _internal_set_expected(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 progress = 4;
  void clear_progress();
  ::PROTOBUF_NAMESPACE_ID::int64 progress() const;
  void set_progress(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_progress() const;
  void _internal_set_progress(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // int64 exit_code = 8;
  void clear_exit_code();
  ::PROTOBUF_NAMESPACE_ID::int64 exit_code() const;
  void set_exit_code(::PROTOBUF_NAMESPACE_ID::int64 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int64 _internal_exit_code() const;
  void _internal_set_exit_code(::PROTOBUF_NAMESPACE_ID::int64 value);
  public:

  // .Anki.Vector.external_interface.CheckUpdateStatusResponse.UpdateStatus update_status = 2;
  void clear_update_status();
  ::Anki::Vector::external_interface::CheckUpdateStatusResponse_UpdateStatus update_status() const;
  void set_update_status(::Anki::Vector::external_interface::CheckUpdateStatusResponse_UpdateStatus value);
  private:
  ::Anki::Vector::external_interface::CheckUpdateStatusResponse_UpdateStatus _internal_update_status() const;
  void _internal_set_update_status(::Anki::Vector::external_interface::CheckUpdateStatusResponse_UpdateStatus value);
  public:

  
  // Begin code inserted by Anki plugin.
  CheckUpdateStatusResponse( ResponseStatus* status, ::Anki::Vector::external_interface::CheckUpdateStatusResponse::UpdateStatus update_status, ::google::protobuf::int64 expected, ::google::protobuf::int64 progress, const std::string& update_version, const std::string& update_phase, const std::string& error, ::google::protobuf::int64 exit_code );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CheckUpdateStatusResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr update_version_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr update_phase_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr error_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  ::PROTOBUF_NAMESPACE_ID::int64 expected_;
  ::PROTOBUF_NAMESPACE_ID::int64 progress_;
  ::PROTOBUF_NAMESPACE_ID::int64 exit_code_;
  int update_status_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class UploadDebugLogsRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.UploadDebugLogsRequest) */ {
 public:
  inline UploadDebugLogsRequest() : UploadDebugLogsRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~UploadDebugLogsRequest();

  UploadDebugLogsRequest(const UploadDebugLogsRequest& from);
  UploadDebugLogsRequest(UploadDebugLogsRequest&& from) noexcept
    : UploadDebugLogsRequest() {
    *this = ::std::move(from);
  }

  inline UploadDebugLogsRequest& operator=(const UploadDebugLogsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UploadDebugLogsRequest& operator=(UploadDebugLogsRequest&& 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 UploadDebugLogsRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const UploadDebugLogsRequest* internal_default_instance() {
    return reinterpret_cast<const UploadDebugLogsRequest*>(
               &_UploadDebugLogsRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    203;

  friend void swap(UploadDebugLogsRequest& a, UploadDebugLogsRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(UploadDebugLogsRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UploadDebugLogsRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline UploadDebugLogsRequest* New() const final {
    return CreateMaybeMessage<UploadDebugLogsRequest>(nullptr);
  }

  UploadDebugLogsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UploadDebugLogsRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UploadDebugLogsRequest& from);
  void MergeFrom(const UploadDebugLogsRequest& 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(UploadDebugLogsRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.UploadDebugLogsRequest";
  }
  protected:
  explicit UploadDebugLogsRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UploadDebugLogsRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class UploadDebugLogsResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.UploadDebugLogsResponse) */ {
 public:
  inline UploadDebugLogsResponse() : UploadDebugLogsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~UploadDebugLogsResponse();

  UploadDebugLogsResponse(const UploadDebugLogsResponse& from);
  UploadDebugLogsResponse(UploadDebugLogsResponse&& from) noexcept
    : UploadDebugLogsResponse() {
    *this = ::std::move(from);
  }

  inline UploadDebugLogsResponse& operator=(const UploadDebugLogsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline UploadDebugLogsResponse& operator=(UploadDebugLogsResponse&& 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 UploadDebugLogsResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const UploadDebugLogsResponse* internal_default_instance() {
    return reinterpret_cast<const UploadDebugLogsResponse*>(
               &_UploadDebugLogsResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    204;

  friend void swap(UploadDebugLogsResponse& a, UploadDebugLogsResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(UploadDebugLogsResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UploadDebugLogsResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline UploadDebugLogsResponse* New() const final {
    return CreateMaybeMessage<UploadDebugLogsResponse>(nullptr);
  }

  UploadDebugLogsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UploadDebugLogsResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UploadDebugLogsResponse& from);
  void MergeFrom(const UploadDebugLogsResponse& 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(UploadDebugLogsResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.UploadDebugLogsResponse";
  }
  protected:
  explicit UploadDebugLogsResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kUrlFieldNumber = 2,
    kStatusFieldNumber = 1,
  };
  // string url = 2;
  void clear_url();
  const std::string& url() const;
  void set_url(const std::string& value);
  void set_url(std::string&& value);
  void set_url(const char* value);
  void set_url(const char* value, size_t size);
  std::string* mutable_url();
  std::string* release_url();
  void set_allocated_url(std::string* url);
  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_url();
  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_url(
      std::string* url);
  private:
  const std::string& _internal_url() const;
  void _internal_set_url(const std::string& value);
  std::string* _internal_mutable_url();
  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();

  
  // Begin code inserted by Anki plugin.
  UploadDebugLogsResponse( ResponseStatus* status, const std::string& url );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.UploadDebugLogsResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr url_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CheckCloudRequest PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CheckCloudRequest) */ {
 public:
  inline CheckCloudRequest() : CheckCloudRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CheckCloudRequest();

  CheckCloudRequest(const CheckCloudRequest& from);
  CheckCloudRequest(CheckCloudRequest&& from) noexcept
    : CheckCloudRequest() {
    *this = ::std::move(from);
  }

  inline CheckCloudRequest& operator=(const CheckCloudRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CheckCloudRequest& operator=(CheckCloudRequest&& 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 CheckCloudRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CheckCloudRequest* internal_default_instance() {
    return reinterpret_cast<const CheckCloudRequest*>(
               &_CheckCloudRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    205;

  friend void swap(CheckCloudRequest& a, CheckCloudRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(CheckCloudRequest* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CheckCloudRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CheckCloudRequest* New() const final {
    return CreateMaybeMessage<CheckCloudRequest>(nullptr);
  }

  CheckCloudRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CheckCloudRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CheckCloudRequest& from);
  void MergeFrom(const CheckCloudRequest& 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(CheckCloudRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CheckCloudRequest";
  }
  protected:
  explicit CheckCloudRequest(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CheckCloudRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class CheckCloudResponse PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface.CheckCloudResponse) */ {
 public:
  inline CheckCloudResponse() : CheckCloudResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~CheckCloudResponse();

  CheckCloudResponse(const CheckCloudResponse& from);
  CheckCloudResponse(CheckCloudResponse&& from) noexcept
    : CheckCloudResponse() {
    *this = ::std::move(from);
  }

  inline CheckCloudResponse& operator=(const CheckCloudResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline CheckCloudResponse& operator=(CheckCloudResponse&& 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 CheckCloudResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CheckCloudResponse* internal_default_instance() {
    return reinterpret_cast<const CheckCloudResponse*>(
               &_CheckCloudResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    206;

  friend void swap(CheckCloudResponse& a, CheckCloudResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(CheckCloudResponse* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CheckCloudResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CheckCloudResponse* New() const final {
    return CreateMaybeMessage<CheckCloudResponse>(nullptr);
  }

  CheckCloudResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CheckCloudResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CheckCloudResponse& from);
  void MergeFrom(const CheckCloudResponse& 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(CheckCloudResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface.CheckCloudResponse";
  }
  protected:
  explicit CheckCloudResponse(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef CheckCloudResponse_ConnectionCode ConnectionCode;
  static constexpr ConnectionCode UNKNOWN =
    CheckCloudResponse_ConnectionCode_UNKNOWN;
  static constexpr ConnectionCode AVAILABLE =
    CheckCloudResponse_ConnectionCode_AVAILABLE;
  static constexpr ConnectionCode BAD_CONNECTIVITY =
    CheckCloudResponse_ConnectionCode_BAD_CONNECTIVITY;
  static constexpr ConnectionCode FAILED_TLS =
    CheckCloudResponse_ConnectionCode_FAILED_TLS;
  static constexpr ConnectionCode FAILED_AUTH =
    CheckCloudResponse_ConnectionCode_FAILED_AUTH;
  static constexpr ConnectionCode INSUFFICIENT_BANDWIDTH =
    CheckCloudResponse_ConnectionCode_INSUFFICIENT_BANDWIDTH;
  static inline bool ConnectionCode_IsValid(int value) {
    return CheckCloudResponse_ConnectionCode_IsValid(value);
  }
  static constexpr ConnectionCode ConnectionCode_MIN =
    CheckCloudResponse_ConnectionCode_ConnectionCode_MIN;
  static constexpr ConnectionCode ConnectionCode_MAX =
    CheckCloudResponse_ConnectionCode_ConnectionCode_MAX;
  static constexpr int ConnectionCode_ARRAYSIZE =
    CheckCloudResponse_ConnectionCode_ConnectionCode_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  ConnectionCode_descriptor() {
    return CheckCloudResponse_ConnectionCode_descriptor();
  }
  template<typename T>
  static inline const std::string& ConnectionCode_Name(T enum_t_value) {
    static_assert(::std::is_same<T, ConnectionCode>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function ConnectionCode_Name.");
    return CheckCloudResponse_ConnectionCode_Name(enum_t_value);
  }
  static inline bool ConnectionCode_Parse(const std::string& name,
      ConnectionCode* value) {
    return CheckCloudResponse_ConnectionCode_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kStatusMessageFieldNumber = 3,
    kStatusFieldNumber = 1,
    kCodeFieldNumber = 2,
    kNumPacketsFieldNumber = 4,
    kExpectedPacketsFieldNumber = 5,
  };
  // string status_message = 3;
  void clear_status_message();
  const std::string& status_message() const;
  void set_status_message(const std::string& value);
  void set_status_message(std::string&& value);
  void set_status_message(const char* value);
  void set_status_message(const char* value, size_t size);
  std::string* mutable_status_message();
  std::string* release_status_message();
  void set_allocated_status_message(std::string* status_message);
  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_status_message();
  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_status_message(
      std::string* status_message);
  private:
  const std::string& _internal_status_message() const;
  void _internal_set_status_message(const std::string& value);
  std::string* _internal_mutable_status_message();
  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.CheckCloudResponse.ConnectionCode code = 2;
  void clear_code();
  ::Anki::Vector::external_interface::CheckCloudResponse_ConnectionCode code() const;
  void set_code(::Anki::Vector::external_interface::CheckCloudResponse_ConnectionCode value);
  private:
  ::Anki::Vector::external_interface::CheckCloudResponse_ConnectionCode _internal_code() const;
  void _internal_set_code(::Anki::Vector::external_interface::CheckCloudResponse_ConnectionCode value);
  public:

  // int32 num_packets = 4;
  void clear_num_packets();
  ::PROTOBUF_NAMESPACE_ID::int32 num_packets() const;
  void set_num_packets(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_packets() const;
  void _internal_set_num_packets(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 expected_packets = 5;
  void clear_expected_packets();
  ::PROTOBUF_NAMESPACE_ID::int32 expected_packets() const;
  void set_expected_packets(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_expected_packets() const;
  void _internal_set_expected_packets(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  
  // Begin code inserted by Anki plugin.
  CheckCloudResponse( ResponseStatus* status, ::Anki::Vector::external_interface::CheckCloudResponse::ConnectionCode code, const std::string& status_message, ::google::protobuf::int32 num_packets, ::google::protobuf::int32 expected_packets );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CheckCloudResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr status_message_;
  ::Anki::Vector::external_interface::ResponseStatus* status_;
  int code_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_packets_;
  ::PROTOBUF_NAMESPACE_ID::int32 expected_packets_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// -------------------------------------------------------------------

class _FakeAlexaUsage PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Anki.Vector.external_interface._FakeAlexaUsage) */ {
 public:
  inline _FakeAlexaUsage() : _FakeAlexaUsage(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {}
  virtual ~_FakeAlexaUsage();

  _FakeAlexaUsage(const _FakeAlexaUsage& from);
  _FakeAlexaUsage(_FakeAlexaUsage&& from) noexcept
    : _FakeAlexaUsage() {
    *this = ::std::move(from);
  }

  inline _FakeAlexaUsage& operator=(const _FakeAlexaUsage& from) {
    CopyFrom(from);
    return *this;
  }
  inline _FakeAlexaUsage& operator=(_FakeAlexaUsage&& 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 _FakeAlexaUsage& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const _FakeAlexaUsage* internal_default_instance() {
    return reinterpret_cast<const _FakeAlexaUsage*>(
               &__FakeAlexaUsage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    207;

  friend void swap(_FakeAlexaUsage& a, _FakeAlexaUsage& b) {
    a.Swap(&b);
  }
  inline void Swap(_FakeAlexaUsage* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(_FakeAlexaUsage* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline _FakeAlexaUsage* New() const final {
    return CreateMaybeMessage<_FakeAlexaUsage>(nullptr);
  }

  _FakeAlexaUsage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<_FakeAlexaUsage>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const _FakeAlexaUsage& from);
  void MergeFrom(const _FakeAlexaUsage& 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(_FakeAlexaUsage* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "Anki.Vector.external_interface._FakeAlexaUsage";
  }
  protected:
  explicit _FakeAlexaUsage(::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_messages_2eproto);
    return ::descriptor_table_messages_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kIgnoredFieldNumber = 1,
  };
  // .Anki.Vector.external_interface.AlexaAuthState ignored = 1;
  void clear_ignored();
  ::Anki::Vector::external_interface::AlexaAuthState ignored() const;
  void set_ignored(::Anki::Vector::external_interface::AlexaAuthState value);
  private:
  ::Anki::Vector::external_interface::AlexaAuthState _internal_ignored() const;
  void _internal_set_ignored(::Anki::Vector::external_interface::AlexaAuthState value);
  public:

  
  // Begin code inserted by Anki plugin.
  explicit _FakeAlexaUsage( ::Anki::Vector::external_interface::AlexaAuthState ignored );
  // End code inserted by Anki plugin.
  
  // @@protoc_insertion_point(class_scope:Anki.Vector.external_interface._FakeAlexaUsage)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  int ignored_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_messages_2eproto;
};
// ===================================================================


// ===================================================================

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// KeepAlivePing

// -------------------------------------------------------------------

// AnimationTrigger

// string name = 1;
inline void AnimationTrigger::clear_name() {
  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& AnimationTrigger::name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AnimationTrigger.name)
  return _internal_name();
}
inline void AnimationTrigger::set_name(const std::string& value) {
  _internal_set_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AnimationTrigger.name)
}
inline std::string* AnimationTrigger::mutable_name() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.AnimationTrigger.name)
  return _internal_mutable_name();
}
inline const std::string& AnimationTrigger::_internal_name() const {
  return name_.Get();
}
inline void AnimationTrigger::_internal_set_name(const std::string& value) {
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void AnimationTrigger::set_name(std::string&& value) {
  
  name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.AnimationTrigger.name)
}
inline void AnimationTrigger::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.AnimationTrigger.name)
}
inline void AnimationTrigger::set_name(const char* value,
    size_t size) {
  
  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.AnimationTrigger.name)
}
inline std::string* AnimationTrigger::_internal_mutable_name() {
  
  return name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* AnimationTrigger::release_name() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.AnimationTrigger.name)
  return name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void AnimationTrigger::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.AnimationTrigger.name)
}
inline std::string* AnimationTrigger::unsafe_arena_release_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.AnimationTrigger.name)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void AnimationTrigger::unsafe_arena_set_allocated_name(
    std::string* name) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (name != nullptr) {
    
  } else {
    
  }
  name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      name, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.AnimationTrigger.name)
}

// -------------------------------------------------------------------

// Animation

// string name = 1;
inline void Animation::clear_name() {
  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& Animation::name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Animation.name)
  return _internal_name();
}
inline void Animation::set_name(const std::string& value) {
  _internal_set_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.Animation.name)
}
inline std::string* Animation::mutable_name() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Animation.name)
  return _internal_mutable_name();
}
inline const std::string& Animation::_internal_name() const {
  return name_.Get();
}
inline void Animation::_internal_set_name(const std::string& value) {
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void Animation::set_name(std::string&& value) {
  
  name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.Animation.name)
}
inline void Animation::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.Animation.name)
}
inline void Animation::set_name(const char* value,
    size_t size) {
  
  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.Animation.name)
}
inline std::string* Animation::_internal_mutable_name() {
  
  return name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* Animation::release_name() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Animation.name)
  return name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void Animation::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Animation.name)
}
inline std::string* Animation::unsafe_arena_release_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Animation.name)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void Animation::unsafe_arena_set_allocated_name(
    std::string* name) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (name != nullptr) {
    
  } else {
    
  }
  name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      name, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Animation.name)
}

// -------------------------------------------------------------------

// DriveWheelsRequest

// float left_wheel_mmps = 1;
inline void DriveWheelsRequest::clear_left_wheel_mmps() {
  left_wheel_mmps_ = 0;
}
inline float DriveWheelsRequest::_internal_left_wheel_mmps() const {
  return left_wheel_mmps_;
}
inline float DriveWheelsRequest::left_wheel_mmps() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveWheelsRequest.left_wheel_mmps)
  return _internal_left_wheel_mmps();
}
inline void DriveWheelsRequest::_internal_set_left_wheel_mmps(float value) {
  
  left_wheel_mmps_ = value;
}
inline void DriveWheelsRequest::set_left_wheel_mmps(float value) {
  _internal_set_left_wheel_mmps(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DriveWheelsRequest.left_wheel_mmps)
}

// float right_wheel_mmps = 2;
inline void DriveWheelsRequest::clear_right_wheel_mmps() {
  right_wheel_mmps_ = 0;
}
inline float DriveWheelsRequest::_internal_right_wheel_mmps() const {
  return right_wheel_mmps_;
}
inline float DriveWheelsRequest::right_wheel_mmps() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveWheelsRequest.right_wheel_mmps)
  return _internal_right_wheel_mmps();
}
inline void DriveWheelsRequest::_internal_set_right_wheel_mmps(float value) {
  
  right_wheel_mmps_ = value;
}
inline void DriveWheelsRequest::set_right_wheel_mmps(float value) {
  _internal_set_right_wheel_mmps(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DriveWheelsRequest.right_wheel_mmps)
}

// float left_wheel_mmps2 = 3;
inline void DriveWheelsRequest::clear_left_wheel_mmps2() {
  left_wheel_mmps2_ = 0;
}
inline float DriveWheelsRequest::_internal_left_wheel_mmps2() const {
  return left_wheel_mmps2_;
}
inline float DriveWheelsRequest::left_wheel_mmps2() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveWheelsRequest.left_wheel_mmps2)
  return _internal_left_wheel_mmps2();
}
inline void DriveWheelsRequest::_internal_set_left_wheel_mmps2(float value) {
  
  left_wheel_mmps2_ = value;
}
inline void DriveWheelsRequest::set_left_wheel_mmps2(float value) {
  _internal_set_left_wheel_mmps2(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DriveWheelsRequest.left_wheel_mmps2)
}

// float right_wheel_mmps2 = 4;
inline void DriveWheelsRequest::clear_right_wheel_mmps2() {
  right_wheel_mmps2_ = 0;
}
inline float DriveWheelsRequest::_internal_right_wheel_mmps2() const {
  return right_wheel_mmps2_;
}
inline float DriveWheelsRequest::right_wheel_mmps2() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveWheelsRequest.right_wheel_mmps2)
  return _internal_right_wheel_mmps2();
}
inline void DriveWheelsRequest::_internal_set_right_wheel_mmps2(float value) {
  
  right_wheel_mmps2_ = value;
}
inline void DriveWheelsRequest::set_right_wheel_mmps2(float value) {
  _internal_set_right_wheel_mmps2(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DriveWheelsRequest.right_wheel_mmps2)
}

// -------------------------------------------------------------------

// DriveWheelsResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool DriveWheelsResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool DriveWheelsResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& DriveWheelsResponse::_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& DriveWheelsResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveWheelsResponse.status)
  return _internal_status();
}
inline void DriveWheelsResponse::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.DriveWheelsResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* DriveWheelsResponse::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* DriveWheelsResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.DriveWheelsResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* DriveWheelsResponse::_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* DriveWheelsResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.DriveWheelsResponse.status)
  return _internal_mutable_status();
}
inline void DriveWheelsResponse::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.DriveWheelsResponse.status)
}

// -------------------------------------------------------------------

// MoveHeadRequest

// float speed_rad_per_sec = 1;
inline void MoveHeadRequest::clear_speed_rad_per_sec() {
  speed_rad_per_sec_ = 0;
}
inline float MoveHeadRequest::_internal_speed_rad_per_sec() const {
  return speed_rad_per_sec_;
}
inline float MoveHeadRequest::speed_rad_per_sec() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.MoveHeadRequest.speed_rad_per_sec)
  return _internal_speed_rad_per_sec();
}
inline void MoveHeadRequest::_internal_set_speed_rad_per_sec(float value) {
  
  speed_rad_per_sec_ = value;
}
inline void MoveHeadRequest::set_speed_rad_per_sec(float value) {
  _internal_set_speed_rad_per_sec(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.MoveHeadRequest.speed_rad_per_sec)
}

// -------------------------------------------------------------------

// MoveHeadResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool MoveHeadResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool MoveHeadResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& MoveHeadResponse::_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& MoveHeadResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.MoveHeadResponse.status)
  return _internal_status();
}
inline void MoveHeadResponse::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.MoveHeadResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* MoveHeadResponse::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* MoveHeadResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.MoveHeadResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* MoveHeadResponse::_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* MoveHeadResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.MoveHeadResponse.status)
  return _internal_mutable_status();
}
inline void MoveHeadResponse::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.MoveHeadResponse.status)
}

// -------------------------------------------------------------------

// MoveLiftRequest

// float speed_rad_per_sec = 1;
inline void MoveLiftRequest::clear_speed_rad_per_sec() {
  speed_rad_per_sec_ = 0;
}
inline float MoveLiftRequest::_internal_speed_rad_per_sec() const {
  return speed_rad_per_sec_;
}
inline float MoveLiftRequest::speed_rad_per_sec() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.MoveLiftRequest.speed_rad_per_sec)
  return _internal_speed_rad_per_sec();
}
inline void MoveLiftRequest::_internal_set_speed_rad_per_sec(float value) {
  
  speed_rad_per_sec_ = value;
}
inline void MoveLiftRequest::set_speed_rad_per_sec(float value) {
  _internal_set_speed_rad_per_sec(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.MoveLiftRequest.speed_rad_per_sec)
}

// -------------------------------------------------------------------

// MoveLiftResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool MoveLiftResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool MoveLiftResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& MoveLiftResponse::_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& MoveLiftResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.MoveLiftResponse.status)
  return _internal_status();
}
inline void MoveLiftResponse::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.MoveLiftResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* MoveLiftResponse::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* MoveLiftResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.MoveLiftResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* MoveLiftResponse::_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* MoveLiftResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.MoveLiftResponse.status)
  return _internal_mutable_status();
}
inline void MoveLiftResponse::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.MoveLiftResponse.status)
}

// -------------------------------------------------------------------

// StopAllMotorsRequest

// -------------------------------------------------------------------

// StopAllMotorsResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool StopAllMotorsResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool StopAllMotorsResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& StopAllMotorsResponse::_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& StopAllMotorsResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.StopAllMotorsResponse.status)
  return _internal_status();
}
inline void StopAllMotorsResponse::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.StopAllMotorsResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* StopAllMotorsResponse::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* StopAllMotorsResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.StopAllMotorsResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* StopAllMotorsResponse::_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* StopAllMotorsResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.StopAllMotorsResponse.status)
  return _internal_mutable_status();
}
inline void StopAllMotorsResponse::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.StopAllMotorsResponse.status)
}

// -------------------------------------------------------------------

// PlayAnimationTriggerRequest

// .Anki.Vector.external_interface.AnimationTrigger animation_trigger = 1;
inline bool PlayAnimationTriggerRequest::_internal_has_animation_trigger() const {
  return this != internal_default_instance() && animation_trigger_ != nullptr;
}
inline bool PlayAnimationTriggerRequest::has_animation_trigger() const {
  return _internal_has_animation_trigger();
}
inline void PlayAnimationTriggerRequest::clear_animation_trigger() {
  if (GetArena() == nullptr && animation_trigger_ != nullptr) {
    delete animation_trigger_;
  }
  animation_trigger_ = nullptr;
}
inline const ::Anki::Vector::external_interface::AnimationTrigger& PlayAnimationTriggerRequest::_internal_animation_trigger() const {
  const ::Anki::Vector::external_interface::AnimationTrigger* p = animation_trigger_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::AnimationTrigger*>(
      &::Anki::Vector::external_interface::_AnimationTrigger_default_instance_);
}
inline const ::Anki::Vector::external_interface::AnimationTrigger& PlayAnimationTriggerRequest::animation_trigger() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationTriggerRequest.animation_trigger)
  return _internal_animation_trigger();
}
inline void PlayAnimationTriggerRequest::unsafe_arena_set_allocated_animation_trigger(
    ::Anki::Vector::external_interface::AnimationTrigger* animation_trigger) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(animation_trigger_);
  }
  animation_trigger_ = animation_trigger;
  if (animation_trigger) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.PlayAnimationTriggerRequest.animation_trigger)
}
inline ::Anki::Vector::external_interface::AnimationTrigger* PlayAnimationTriggerRequest::release_animation_trigger() {
  auto temp = unsafe_arena_release_animation_trigger();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::AnimationTrigger* PlayAnimationTriggerRequest::unsafe_arena_release_animation_trigger() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PlayAnimationTriggerRequest.animation_trigger)
  
  ::Anki::Vector::external_interface::AnimationTrigger* temp = animation_trigger_;
  animation_trigger_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::AnimationTrigger* PlayAnimationTriggerRequest::_internal_mutable_animation_trigger() {
  
  if (animation_trigger_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::AnimationTrigger>(GetArena());
    animation_trigger_ = p;
  }
  return animation_trigger_;
}
inline ::Anki::Vector::external_interface::AnimationTrigger* PlayAnimationTriggerRequest::mutable_animation_trigger() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PlayAnimationTriggerRequest.animation_trigger)
  return _internal_mutable_animation_trigger();
}
inline void PlayAnimationTriggerRequest::set_allocated_animation_trigger(::Anki::Vector::external_interface::AnimationTrigger* animation_trigger) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete animation_trigger_;
  }
  if (animation_trigger) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(animation_trigger);
    if (message_arena != submessage_arena) {
      animation_trigger = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, animation_trigger, submessage_arena);
    }
    
  } else {
    
  }
  animation_trigger_ = animation_trigger;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.PlayAnimationTriggerRequest.animation_trigger)
}

// uint32 loops = 2;
inline void PlayAnimationTriggerRequest::clear_loops() {
  loops_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PlayAnimationTriggerRequest::_internal_loops() const {
  return loops_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PlayAnimationTriggerRequest::loops() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationTriggerRequest.loops)
  return _internal_loops();
}
inline void PlayAnimationTriggerRequest::_internal_set_loops(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  loops_ = value;
}
inline void PlayAnimationTriggerRequest::set_loops(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_loops(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PlayAnimationTriggerRequest.loops)
}

// bool use_lift_safe = 3;
inline void PlayAnimationTriggerRequest::clear_use_lift_safe() {
  use_lift_safe_ = false;
}
inline bool PlayAnimationTriggerRequest::_internal_use_lift_safe() const {
  return use_lift_safe_;
}
inline bool PlayAnimationTriggerRequest::use_lift_safe() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationTriggerRequest.use_lift_safe)
  return _internal_use_lift_safe();
}
inline void PlayAnimationTriggerRequest::_internal_set_use_lift_safe(bool value) {
  
  use_lift_safe_ = value;
}
inline void PlayAnimationTriggerRequest::set_use_lift_safe(bool value) {
  _internal_set_use_lift_safe(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PlayAnimationTriggerRequest.use_lift_safe)
}

// bool ignore_body_track = 4;
inline void PlayAnimationTriggerRequest::clear_ignore_body_track() {
  ignore_body_track_ = false;
}
inline bool PlayAnimationTriggerRequest::_internal_ignore_body_track() const {
  return ignore_body_track_;
}
inline bool PlayAnimationTriggerRequest::ignore_body_track() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationTriggerRequest.ignore_body_track)
  return _internal_ignore_body_track();
}
inline void PlayAnimationTriggerRequest::_internal_set_ignore_body_track(bool value) {
  
  ignore_body_track_ = value;
}
inline void PlayAnimationTriggerRequest::set_ignore_body_track(bool value) {
  _internal_set_ignore_body_track(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PlayAnimationTriggerRequest.ignore_body_track)
}

// bool ignore_head_track = 5;
inline void PlayAnimationTriggerRequest::clear_ignore_head_track() {
  ignore_head_track_ = false;
}
inline bool PlayAnimationTriggerRequest::_internal_ignore_head_track() const {
  return ignore_head_track_;
}
inline bool PlayAnimationTriggerRequest::ignore_head_track() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationTriggerRequest.ignore_head_track)
  return _internal_ignore_head_track();
}
inline void PlayAnimationTriggerRequest::_internal_set_ignore_head_track(bool value) {
  
  ignore_head_track_ = value;
}
inline void PlayAnimationTriggerRequest::set_ignore_head_track(bool value) {
  _internal_set_ignore_head_track(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PlayAnimationTriggerRequest.ignore_head_track)
}

// bool ignore_lift_track = 6;
inline void PlayAnimationTriggerRequest::clear_ignore_lift_track() {
  ignore_lift_track_ = false;
}
inline bool PlayAnimationTriggerRequest::_internal_ignore_lift_track() const {
  return ignore_lift_track_;
}
inline bool PlayAnimationTriggerRequest::ignore_lift_track() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationTriggerRequest.ignore_lift_track)
  return _internal_ignore_lift_track();
}
inline void PlayAnimationTriggerRequest::_internal_set_ignore_lift_track(bool value) {
  
  ignore_lift_track_ = value;
}
inline void PlayAnimationTriggerRequest::set_ignore_lift_track(bool value) {
  _internal_set_ignore_lift_track(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PlayAnimationTriggerRequest.ignore_lift_track)
}

// -------------------------------------------------------------------

// PlayAnimationRequest

// .Anki.Vector.external_interface.Animation animation = 1;
inline bool PlayAnimationRequest::_internal_has_animation() const {
  return this != internal_default_instance() && animation_ != nullptr;
}
inline bool PlayAnimationRequest::has_animation() const {
  return _internal_has_animation();
}
inline void PlayAnimationRequest::clear_animation() {
  if (GetArena() == nullptr && animation_ != nullptr) {
    delete animation_;
  }
  animation_ = nullptr;
}
inline const ::Anki::Vector::external_interface::Animation& PlayAnimationRequest::_internal_animation() const {
  const ::Anki::Vector::external_interface::Animation* p = animation_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::Animation*>(
      &::Anki::Vector::external_interface::_Animation_default_instance_);
}
inline const ::Anki::Vector::external_interface::Animation& PlayAnimationRequest::animation() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationRequest.animation)
  return _internal_animation();
}
inline void PlayAnimationRequest::unsafe_arena_set_allocated_animation(
    ::Anki::Vector::external_interface::Animation* animation) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(animation_);
  }
  animation_ = animation;
  if (animation) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.PlayAnimationRequest.animation)
}
inline ::Anki::Vector::external_interface::Animation* PlayAnimationRequest::release_animation() {
  auto temp = unsafe_arena_release_animation();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::Animation* PlayAnimationRequest::unsafe_arena_release_animation() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PlayAnimationRequest.animation)
  
  ::Anki::Vector::external_interface::Animation* temp = animation_;
  animation_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::Animation* PlayAnimationRequest::_internal_mutable_animation() {
  
  if (animation_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::Animation>(GetArena());
    animation_ = p;
  }
  return animation_;
}
inline ::Anki::Vector::external_interface::Animation* PlayAnimationRequest::mutable_animation() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PlayAnimationRequest.animation)
  return _internal_mutable_animation();
}
inline void PlayAnimationRequest::set_allocated_animation(::Anki::Vector::external_interface::Animation* animation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete animation_;
  }
  if (animation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(animation);
    if (message_arena != submessage_arena) {
      animation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, animation, submessage_arena);
    }
    
  } else {
    
  }
  animation_ = animation;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.PlayAnimationRequest.animation)
}

// uint32 loops = 2;
inline void PlayAnimationRequest::clear_loops() {
  loops_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PlayAnimationRequest::_internal_loops() const {
  return loops_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PlayAnimationRequest::loops() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationRequest.loops)
  return _internal_loops();
}
inline void PlayAnimationRequest::_internal_set_loops(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  loops_ = value;
}
inline void PlayAnimationRequest::set_loops(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_loops(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PlayAnimationRequest.loops)
}

// bool ignore_body_track = 3;
inline void PlayAnimationRequest::clear_ignore_body_track() {
  ignore_body_track_ = false;
}
inline bool PlayAnimationRequest::_internal_ignore_body_track() const {
  return ignore_body_track_;
}
inline bool PlayAnimationRequest::ignore_body_track() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationRequest.ignore_body_track)
  return _internal_ignore_body_track();
}
inline void PlayAnimationRequest::_internal_set_ignore_body_track(bool value) {
  
  ignore_body_track_ = value;
}
inline void PlayAnimationRequest::set_ignore_body_track(bool value) {
  _internal_set_ignore_body_track(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PlayAnimationRequest.ignore_body_track)
}

// bool ignore_head_track = 4;
inline void PlayAnimationRequest::clear_ignore_head_track() {
  ignore_head_track_ = false;
}
inline bool PlayAnimationRequest::_internal_ignore_head_track() const {
  return ignore_head_track_;
}
inline bool PlayAnimationRequest::ignore_head_track() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationRequest.ignore_head_track)
  return _internal_ignore_head_track();
}
inline void PlayAnimationRequest::_internal_set_ignore_head_track(bool value) {
  
  ignore_head_track_ = value;
}
inline void PlayAnimationRequest::set_ignore_head_track(bool value) {
  _internal_set_ignore_head_track(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PlayAnimationRequest.ignore_head_track)
}

// bool ignore_lift_track = 5;
inline void PlayAnimationRequest::clear_ignore_lift_track() {
  ignore_lift_track_ = false;
}
inline bool PlayAnimationRequest::_internal_ignore_lift_track() const {
  return ignore_lift_track_;
}
inline bool PlayAnimationRequest::ignore_lift_track() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationRequest.ignore_lift_track)
  return _internal_ignore_lift_track();
}
inline void PlayAnimationRequest::_internal_set_ignore_lift_track(bool value) {
  
  ignore_lift_track_ = value;
}
inline void PlayAnimationRequest::set_ignore_lift_track(bool value) {
  _internal_set_ignore_lift_track(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PlayAnimationRequest.ignore_lift_track)
}

// -------------------------------------------------------------------

// PlayAnimationResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool PlayAnimationResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool PlayAnimationResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& PlayAnimationResponse::_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& PlayAnimationResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationResponse.status)
  return _internal_status();
}
inline void PlayAnimationResponse::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.PlayAnimationResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* PlayAnimationResponse::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* PlayAnimationResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PlayAnimationResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* PlayAnimationResponse::_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* PlayAnimationResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PlayAnimationResponse.status)
  return _internal_mutable_status();
}
inline void PlayAnimationResponse::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.PlayAnimationResponse.status)
}

// .Anki.Vector.external_interface.BehaviorResults result = 2;
inline void PlayAnimationResponse::clear_result() {
  result_ = 0;
}
inline ::Anki::Vector::external_interface::BehaviorResults PlayAnimationResponse::_internal_result() const {
  return static_cast< ::Anki::Vector::external_interface::BehaviorResults >(result_);
}
inline ::Anki::Vector::external_interface::BehaviorResults PlayAnimationResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationResponse.result)
  return _internal_result();
}
inline void PlayAnimationResponse::_internal_set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  
  result_ = value;
}
inline void PlayAnimationResponse::set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  _internal_set_result(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PlayAnimationResponse.result)
}

// .Anki.Vector.external_interface.Animation animation = 3;
inline bool PlayAnimationResponse::_internal_has_animation() const {
  return this != internal_default_instance() && animation_ != nullptr;
}
inline bool PlayAnimationResponse::has_animation() const {
  return _internal_has_animation();
}
inline void PlayAnimationResponse::clear_animation() {
  if (GetArena() == nullptr && animation_ != nullptr) {
    delete animation_;
  }
  animation_ = nullptr;
}
inline const ::Anki::Vector::external_interface::Animation& PlayAnimationResponse::_internal_animation() const {
  const ::Anki::Vector::external_interface::Animation* p = animation_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::Animation*>(
      &::Anki::Vector::external_interface::_Animation_default_instance_);
}
inline const ::Anki::Vector::external_interface::Animation& PlayAnimationResponse::animation() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlayAnimationResponse.animation)
  return _internal_animation();
}
inline void PlayAnimationResponse::unsafe_arena_set_allocated_animation(
    ::Anki::Vector::external_interface::Animation* animation) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(animation_);
  }
  animation_ = animation;
  if (animation) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.PlayAnimationResponse.animation)
}
inline ::Anki::Vector::external_interface::Animation* PlayAnimationResponse::release_animation() {
  auto temp = unsafe_arena_release_animation();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::Animation* PlayAnimationResponse::unsafe_arena_release_animation() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PlayAnimationResponse.animation)
  
  ::Anki::Vector::external_interface::Animation* temp = animation_;
  animation_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::Animation* PlayAnimationResponse::_internal_mutable_animation() {
  
  if (animation_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::Animation>(GetArena());
    animation_ = p;
  }
  return animation_;
}
inline ::Anki::Vector::external_interface::Animation* PlayAnimationResponse::mutable_animation() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PlayAnimationResponse.animation)
  return _internal_mutable_animation();
}
inline void PlayAnimationResponse::set_allocated_animation(::Anki::Vector::external_interface::Animation* animation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete animation_;
  }
  if (animation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(animation);
    if (message_arena != submessage_arena) {
      animation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, animation, submessage_arena);
    }
    
  } else {
    
  }
  animation_ = animation;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.PlayAnimationResponse.animation)
}

// -------------------------------------------------------------------

// ListAnimationsRequest

// -------------------------------------------------------------------

// ListAnimationsResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool ListAnimationsResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool ListAnimationsResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& ListAnimationsResponse::_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& ListAnimationsResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ListAnimationsResponse.status)
  return _internal_status();
}
inline void ListAnimationsResponse::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.ListAnimationsResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* ListAnimationsResponse::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* ListAnimationsResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ListAnimationsResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* ListAnimationsResponse::_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* ListAnimationsResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ListAnimationsResponse.status)
  return _internal_mutable_status();
}
inline void ListAnimationsResponse::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.ListAnimationsResponse.status)
}

// repeated .Anki.Vector.external_interface.Animation animation_names = 2;
inline int ListAnimationsResponse::_internal_animation_names_size() const {
  return animation_names_.size();
}
inline int ListAnimationsResponse::animation_names_size() const {
  return _internal_animation_names_size();
}
inline void ListAnimationsResponse::clear_animation_names() {
  animation_names_.Clear();
}
inline ::Anki::Vector::external_interface::Animation* ListAnimationsResponse::mutable_animation_names(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ListAnimationsResponse.animation_names)
  return animation_names_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::Animation >*
ListAnimationsResponse::mutable_animation_names() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.ListAnimationsResponse.animation_names)
  return &animation_names_;
}
inline const ::Anki::Vector::external_interface::Animation& ListAnimationsResponse::_internal_animation_names(int index) const {
  return animation_names_.Get(index);
}
inline const ::Anki::Vector::external_interface::Animation& ListAnimationsResponse::animation_names(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ListAnimationsResponse.animation_names)
  return _internal_animation_names(index);
}
inline ::Anki::Vector::external_interface::Animation* ListAnimationsResponse::_internal_add_animation_names() {
  return animation_names_.Add();
}
inline ::Anki::Vector::external_interface::Animation* ListAnimationsResponse::add_animation_names() {
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.ListAnimationsResponse.animation_names)
  return _internal_add_animation_names();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::Animation >&
ListAnimationsResponse::animation_names() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.ListAnimationsResponse.animation_names)
  return animation_names_;
}

// -------------------------------------------------------------------

// ListAnimationTriggersRequest

// -------------------------------------------------------------------

// ListAnimationTriggersResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool ListAnimationTriggersResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool ListAnimationTriggersResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& ListAnimationTriggersResponse::_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& ListAnimationTriggersResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ListAnimationTriggersResponse.status)
  return _internal_status();
}
inline void ListAnimationTriggersResponse::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.ListAnimationTriggersResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* ListAnimationTriggersResponse::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* ListAnimationTriggersResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ListAnimationTriggersResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* ListAnimationTriggersResponse::_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* ListAnimationTriggersResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ListAnimationTriggersResponse.status)
  return _internal_mutable_status();
}
inline void ListAnimationTriggersResponse::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.ListAnimationTriggersResponse.status)
}

// repeated .Anki.Vector.external_interface.AnimationTrigger animation_trigger_names = 2;
inline int ListAnimationTriggersResponse::_internal_animation_trigger_names_size() const {
  return animation_trigger_names_.size();
}
inline int ListAnimationTriggersResponse::animation_trigger_names_size() const {
  return _internal_animation_trigger_names_size();
}
inline void ListAnimationTriggersResponse::clear_animation_trigger_names() {
  animation_trigger_names_.Clear();
}
inline ::Anki::Vector::external_interface::AnimationTrigger* ListAnimationTriggersResponse::mutable_animation_trigger_names(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ListAnimationTriggersResponse.animation_trigger_names)
  return animation_trigger_names_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::AnimationTrigger >*
ListAnimationTriggersResponse::mutable_animation_trigger_names() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.ListAnimationTriggersResponse.animation_trigger_names)
  return &animation_trigger_names_;
}
inline const ::Anki::Vector::external_interface::AnimationTrigger& ListAnimationTriggersResponse::_internal_animation_trigger_names(int index) const {
  return animation_trigger_names_.Get(index);
}
inline const ::Anki::Vector::external_interface::AnimationTrigger& ListAnimationTriggersResponse::animation_trigger_names(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ListAnimationTriggersResponse.animation_trigger_names)
  return _internal_animation_trigger_names(index);
}
inline ::Anki::Vector::external_interface::AnimationTrigger* ListAnimationTriggersResponse::_internal_add_animation_trigger_names() {
  return animation_trigger_names_.Add();
}
inline ::Anki::Vector::external_interface::AnimationTrigger* ListAnimationTriggersResponse::add_animation_trigger_names() {
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.ListAnimationTriggersResponse.animation_trigger_names)
  return _internal_add_animation_trigger_names();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::AnimationTrigger >&
ListAnimationTriggersResponse::animation_trigger_names() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.ListAnimationTriggersResponse.animation_trigger_names)
  return animation_trigger_names_;
}

// -------------------------------------------------------------------

// DisplayFaceImageRGBRequest

// bytes face_data = 1;
inline void DisplayFaceImageRGBRequest::clear_face_data() {
  face_data_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& DisplayFaceImageRGBRequest::face_data() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DisplayFaceImageRGBRequest.face_data)
  return _internal_face_data();
}
inline void DisplayFaceImageRGBRequest::set_face_data(const std::string& value) {
  _internal_set_face_data(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DisplayFaceImageRGBRequest.face_data)
}
inline std::string* DisplayFaceImageRGBRequest::mutable_face_data() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.DisplayFaceImageRGBRequest.face_data)
  return _internal_mutable_face_data();
}
inline const std::string& DisplayFaceImageRGBRequest::_internal_face_data() const {
  return face_data_.Get();
}
inline void DisplayFaceImageRGBRequest::_internal_set_face_data(const std::string& value) {
  
  face_data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void DisplayFaceImageRGBRequest::set_face_data(std::string&& value) {
  
  face_data_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.DisplayFaceImageRGBRequest.face_data)
}
inline void DisplayFaceImageRGBRequest::set_face_data(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  face_data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.DisplayFaceImageRGBRequest.face_data)
}
inline void DisplayFaceImageRGBRequest::set_face_data(const void* value,
    size_t size) {
  
  face_data_.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.DisplayFaceImageRGBRequest.face_data)
}
inline std::string* DisplayFaceImageRGBRequest::_internal_mutable_face_data() {
  
  return face_data_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* DisplayFaceImageRGBRequest::release_face_data() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.DisplayFaceImageRGBRequest.face_data)
  return face_data_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void DisplayFaceImageRGBRequest::set_allocated_face_data(std::string* face_data) {
  if (face_data != nullptr) {
    
  } else {
    
  }
  face_data_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), face_data,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.DisplayFaceImageRGBRequest.face_data)
}
inline std::string* DisplayFaceImageRGBRequest::unsafe_arena_release_face_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.DisplayFaceImageRGBRequest.face_data)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return face_data_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void DisplayFaceImageRGBRequest::unsafe_arena_set_allocated_face_data(
    std::string* face_data) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (face_data != nullptr) {
    
  } else {
    
  }
  face_data_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      face_data, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.DisplayFaceImageRGBRequest.face_data)
}

// uint32 duration_ms = 2;
inline void DisplayFaceImageRGBRequest::clear_duration_ms() {
  duration_ms_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 DisplayFaceImageRGBRequest::_internal_duration_ms() const {
  return duration_ms_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 DisplayFaceImageRGBRequest::duration_ms() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DisplayFaceImageRGBRequest.duration_ms)
  return _internal_duration_ms();
}
inline void DisplayFaceImageRGBRequest::_internal_set_duration_ms(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  duration_ms_ = value;
}
inline void DisplayFaceImageRGBRequest::set_duration_ms(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_duration_ms(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DisplayFaceImageRGBRequest.duration_ms)
}

// bool interrupt_running = 3;
inline void DisplayFaceImageRGBRequest::clear_interrupt_running() {
  interrupt_running_ = false;
}
inline bool DisplayFaceImageRGBRequest::_internal_interrupt_running() const {
  return interrupt_running_;
}
inline bool DisplayFaceImageRGBRequest::interrupt_running() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DisplayFaceImageRGBRequest.interrupt_running)
  return _internal_interrupt_running();
}
inline void DisplayFaceImageRGBRequest::_internal_set_interrupt_running(bool value) {
  
  interrupt_running_ = value;
}
inline void DisplayFaceImageRGBRequest::set_interrupt_running(bool value) {
  _internal_set_interrupt_running(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DisplayFaceImageRGBRequest.interrupt_running)
}

// -------------------------------------------------------------------

// DisplayFaceImageRGBResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool DisplayFaceImageRGBResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool DisplayFaceImageRGBResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& DisplayFaceImageRGBResponse::_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& DisplayFaceImageRGBResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DisplayFaceImageRGBResponse.status)
  return _internal_status();
}
inline void DisplayFaceImageRGBResponse::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.DisplayFaceImageRGBResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* DisplayFaceImageRGBResponse::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* DisplayFaceImageRGBResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.DisplayFaceImageRGBResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* DisplayFaceImageRGBResponse::_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* DisplayFaceImageRGBResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.DisplayFaceImageRGBResponse.status)
  return _internal_mutable_status();
}
inline void DisplayFaceImageRGBResponse::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.DisplayFaceImageRGBResponse.status)
}

// -------------------------------------------------------------------

// MeetVictorFaceScanStarted

// -------------------------------------------------------------------

// MeetVictorFaceScanComplete

// -------------------------------------------------------------------

// Status

// .Anki.Vector.external_interface.FeatureStatus feature_status = 1;
inline bool Status::_internal_has_feature_status() const {
  return status_type_case() == kFeatureStatus;
}
inline bool Status::has_feature_status() const {
  return _internal_has_feature_status();
}
inline void Status::set_has_feature_status() {
  _oneof_case_[0] = kFeatureStatus;
}
inline void Status::clear_feature_status() {
  if (_internal_has_feature_status()) {
    if (GetArena() == nullptr) {
      delete status_type_.feature_status_;
    }
    clear_has_status_type();
  }
}
inline ::Anki::Vector::external_interface::FeatureStatus* Status::release_feature_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Status.feature_status)
  if (_internal_has_feature_status()) {
    clear_has_status_type();
      ::Anki::Vector::external_interface::FeatureStatus* temp = status_type_.feature_status_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    status_type_.feature_status_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::FeatureStatus& Status::_internal_feature_status() const {
  return _internal_has_feature_status()
      ? *status_type_.feature_status_
      : *reinterpret_cast< ::Anki::Vector::external_interface::FeatureStatus*>(&::Anki::Vector::external_interface::_FeatureStatus_default_instance_);
}
inline const ::Anki::Vector::external_interface::FeatureStatus& Status::feature_status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Status.feature_status)
  return _internal_feature_status();
}
inline ::Anki::Vector::external_interface::FeatureStatus* Status::unsafe_arena_release_feature_status() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Status.feature_status)
  if (_internal_has_feature_status()) {
    clear_has_status_type();
    ::Anki::Vector::external_interface::FeatureStatus* temp = status_type_.feature_status_;
    status_type_.feature_status_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Status::unsafe_arena_set_allocated_feature_status(::Anki::Vector::external_interface::FeatureStatus* feature_status) {
  clear_status_type();
  if (feature_status) {
    set_has_feature_status();
    status_type_.feature_status_ = feature_status;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Status.feature_status)
}
inline ::Anki::Vector::external_interface::FeatureStatus* Status::_internal_mutable_feature_status() {
  if (!_internal_has_feature_status()) {
    clear_status_type();
    set_has_feature_status();
    status_type_.feature_status_ = CreateMaybeMessage< ::Anki::Vector::external_interface::FeatureStatus >(GetArena());
  }
  return status_type_.feature_status_;
}
inline ::Anki::Vector::external_interface::FeatureStatus* Status::mutable_feature_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Status.feature_status)
  return _internal_mutable_feature_status();
}

// .Anki.Vector.external_interface.MeetVictorFaceScanStarted meet_victor_face_scan_started = 2;
inline bool Status::_internal_has_meet_victor_face_scan_started() const {
  return status_type_case() == kMeetVictorFaceScanStarted;
}
inline bool Status::has_meet_victor_face_scan_started() const {
  return _internal_has_meet_victor_face_scan_started();
}
inline void Status::set_has_meet_victor_face_scan_started() {
  _oneof_case_[0] = kMeetVictorFaceScanStarted;
}
inline void Status::clear_meet_victor_face_scan_started() {
  if (_internal_has_meet_victor_face_scan_started()) {
    if (GetArena() == nullptr) {
      delete status_type_.meet_victor_face_scan_started_;
    }
    clear_has_status_type();
  }
}
inline ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* Status::release_meet_victor_face_scan_started() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Status.meet_victor_face_scan_started)
  if (_internal_has_meet_victor_face_scan_started()) {
    clear_has_status_type();
      ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* temp = status_type_.meet_victor_face_scan_started_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    status_type_.meet_victor_face_scan_started_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::MeetVictorFaceScanStarted& Status::_internal_meet_victor_face_scan_started() const {
  return _internal_has_meet_victor_face_scan_started()
      ? *status_type_.meet_victor_face_scan_started_
      : *reinterpret_cast< ::Anki::Vector::external_interface::MeetVictorFaceScanStarted*>(&::Anki::Vector::external_interface::_MeetVictorFaceScanStarted_default_instance_);
}
inline const ::Anki::Vector::external_interface::MeetVictorFaceScanStarted& Status::meet_victor_face_scan_started() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Status.meet_victor_face_scan_started)
  return _internal_meet_victor_face_scan_started();
}
inline ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* Status::unsafe_arena_release_meet_victor_face_scan_started() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Status.meet_victor_face_scan_started)
  if (_internal_has_meet_victor_face_scan_started()) {
    clear_has_status_type();
    ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* temp = status_type_.meet_victor_face_scan_started_;
    status_type_.meet_victor_face_scan_started_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Status::unsafe_arena_set_allocated_meet_victor_face_scan_started(::Anki::Vector::external_interface::MeetVictorFaceScanStarted* meet_victor_face_scan_started) {
  clear_status_type();
  if (meet_victor_face_scan_started) {
    set_has_meet_victor_face_scan_started();
    status_type_.meet_victor_face_scan_started_ = meet_victor_face_scan_started;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Status.meet_victor_face_scan_started)
}
inline ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* Status::_internal_mutable_meet_victor_face_scan_started() {
  if (!_internal_has_meet_victor_face_scan_started()) {
    clear_status_type();
    set_has_meet_victor_face_scan_started();
    status_type_.meet_victor_face_scan_started_ = CreateMaybeMessage< ::Anki::Vector::external_interface::MeetVictorFaceScanStarted >(GetArena());
  }
  return status_type_.meet_victor_face_scan_started_;
}
inline ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* Status::mutable_meet_victor_face_scan_started() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Status.meet_victor_face_scan_started)
  return _internal_mutable_meet_victor_face_scan_started();
}

// .Anki.Vector.external_interface.MeetVictorFaceScanComplete meet_victor_face_scan_complete = 3;
inline bool Status::_internal_has_meet_victor_face_scan_complete() const {
  return status_type_case() == kMeetVictorFaceScanComplete;
}
inline bool Status::has_meet_victor_face_scan_complete() const {
  return _internal_has_meet_victor_face_scan_complete();
}
inline void Status::set_has_meet_victor_face_scan_complete() {
  _oneof_case_[0] = kMeetVictorFaceScanComplete;
}
inline void Status::clear_meet_victor_face_scan_complete() {
  if (_internal_has_meet_victor_face_scan_complete()) {
    if (GetArena() == nullptr) {
      delete status_type_.meet_victor_face_scan_complete_;
    }
    clear_has_status_type();
  }
}
inline ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* Status::release_meet_victor_face_scan_complete() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Status.meet_victor_face_scan_complete)
  if (_internal_has_meet_victor_face_scan_complete()) {
    clear_has_status_type();
      ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* temp = status_type_.meet_victor_face_scan_complete_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    status_type_.meet_victor_face_scan_complete_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::MeetVictorFaceScanComplete& Status::_internal_meet_victor_face_scan_complete() const {
  return _internal_has_meet_victor_face_scan_complete()
      ? *status_type_.meet_victor_face_scan_complete_
      : *reinterpret_cast< ::Anki::Vector::external_interface::MeetVictorFaceScanComplete*>(&::Anki::Vector::external_interface::_MeetVictorFaceScanComplete_default_instance_);
}
inline const ::Anki::Vector::external_interface::MeetVictorFaceScanComplete& Status::meet_victor_face_scan_complete() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Status.meet_victor_face_scan_complete)
  return _internal_meet_victor_face_scan_complete();
}
inline ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* Status::unsafe_arena_release_meet_victor_face_scan_complete() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Status.meet_victor_face_scan_complete)
  if (_internal_has_meet_victor_face_scan_complete()) {
    clear_has_status_type();
    ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* temp = status_type_.meet_victor_face_scan_complete_;
    status_type_.meet_victor_face_scan_complete_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Status::unsafe_arena_set_allocated_meet_victor_face_scan_complete(::Anki::Vector::external_interface::MeetVictorFaceScanComplete* meet_victor_face_scan_complete) {
  clear_status_type();
  if (meet_victor_face_scan_complete) {
    set_has_meet_victor_face_scan_complete();
    status_type_.meet_victor_face_scan_complete_ = meet_victor_face_scan_complete;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Status.meet_victor_face_scan_complete)
}
inline ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* Status::_internal_mutable_meet_victor_face_scan_complete() {
  if (!_internal_has_meet_victor_face_scan_complete()) {
    clear_status_type();
    set_has_meet_victor_face_scan_complete();
    status_type_.meet_victor_face_scan_complete_ = CreateMaybeMessage< ::Anki::Vector::external_interface::MeetVictorFaceScanComplete >(GetArena());
  }
  return status_type_.meet_victor_face_scan_complete_;
}
inline ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* Status::mutable_meet_victor_face_scan_complete() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Status.meet_victor_face_scan_complete)
  return _internal_mutable_meet_victor_face_scan_complete();
}

// .Anki.Vector.external_interface.FaceEnrollmentCompleted face_enrollment_completed = 4;
inline bool Status::_internal_has_face_enrollment_completed() const {
  return status_type_case() == kFaceEnrollmentCompleted;
}
inline bool Status::has_face_enrollment_completed() const {
  return _internal_has_face_enrollment_completed();
}
inline void Status::set_has_face_enrollment_completed() {
  _oneof_case_[0] = kFaceEnrollmentCompleted;
}
inline void Status::clear_face_enrollment_completed() {
  if (_internal_has_face_enrollment_completed()) {
    if (GetArena() == nullptr) {
      delete status_type_.face_enrollment_completed_;
    }
    clear_has_status_type();
  }
}
inline ::Anki::Vector::external_interface::FaceEnrollmentCompleted* Status::release_face_enrollment_completed() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Status.face_enrollment_completed)
  if (_internal_has_face_enrollment_completed()) {
    clear_has_status_type();
      ::Anki::Vector::external_interface::FaceEnrollmentCompleted* temp = status_type_.face_enrollment_completed_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    status_type_.face_enrollment_completed_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::FaceEnrollmentCompleted& Status::_internal_face_enrollment_completed() const {
  return _internal_has_face_enrollment_completed()
      ? *status_type_.face_enrollment_completed_
      : *reinterpret_cast< ::Anki::Vector::external_interface::FaceEnrollmentCompleted*>(&::Anki::Vector::external_interface::_FaceEnrollmentCompleted_default_instance_);
}
inline const ::Anki::Vector::external_interface::FaceEnrollmentCompleted& Status::face_enrollment_completed() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Status.face_enrollment_completed)
  return _internal_face_enrollment_completed();
}
inline ::Anki::Vector::external_interface::FaceEnrollmentCompleted* Status::unsafe_arena_release_face_enrollment_completed() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Status.face_enrollment_completed)
  if (_internal_has_face_enrollment_completed()) {
    clear_has_status_type();
    ::Anki::Vector::external_interface::FaceEnrollmentCompleted* temp = status_type_.face_enrollment_completed_;
    status_type_.face_enrollment_completed_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Status::unsafe_arena_set_allocated_face_enrollment_completed(::Anki::Vector::external_interface::FaceEnrollmentCompleted* face_enrollment_completed) {
  clear_status_type();
  if (face_enrollment_completed) {
    set_has_face_enrollment_completed();
    status_type_.face_enrollment_completed_ = face_enrollment_completed;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Status.face_enrollment_completed)
}
inline ::Anki::Vector::external_interface::FaceEnrollmentCompleted* Status::_internal_mutable_face_enrollment_completed() {
  if (!_internal_has_face_enrollment_completed()) {
    clear_status_type();
    set_has_face_enrollment_completed();
    status_type_.face_enrollment_completed_ = CreateMaybeMessage< ::Anki::Vector::external_interface::FaceEnrollmentCompleted >(GetArena());
  }
  return status_type_.face_enrollment_completed_;
}
inline ::Anki::Vector::external_interface::FaceEnrollmentCompleted* Status::mutable_face_enrollment_completed() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Status.face_enrollment_completed)
  return _internal_mutable_face_enrollment_completed();
}

inline bool Status::has_status_type() const {
  return status_type_case() != STATUS_TYPE_NOT_SET;
}
inline void Status::clear_has_status_type() {
  _oneof_case_[0] = STATUS_TYPE_NOT_SET;
}
inline Status::StatusTypeCase Status::status_type_case() const {
  return Status::StatusTypeCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// WakeWord

// .Anki.Vector.external_interface.WakeWordBegin wake_word_begin = 1;
inline bool WakeWord::_internal_has_wake_word_begin() const {
  return wake_word_type_case() == kWakeWordBegin;
}
inline bool WakeWord::has_wake_word_begin() const {
  return _internal_has_wake_word_begin();
}
inline void WakeWord::set_has_wake_word_begin() {
  _oneof_case_[0] = kWakeWordBegin;
}
inline void WakeWord::clear_wake_word_begin() {
  if (_internal_has_wake_word_begin()) {
    if (GetArena() == nullptr) {
      delete wake_word_type_.wake_word_begin_;
    }
    clear_has_wake_word_type();
  }
}
inline ::Anki::Vector::external_interface::WakeWordBegin* WakeWord::release_wake_word_begin() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.WakeWord.wake_word_begin)
  if (_internal_has_wake_word_begin()) {
    clear_has_wake_word_type();
      ::Anki::Vector::external_interface::WakeWordBegin* temp = wake_word_type_.wake_word_begin_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    wake_word_type_.wake_word_begin_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::WakeWordBegin& WakeWord::_internal_wake_word_begin() const {
  return _internal_has_wake_word_begin()
      ? *wake_word_type_.wake_word_begin_
      : *reinterpret_cast< ::Anki::Vector::external_interface::WakeWordBegin*>(&::Anki::Vector::external_interface::_WakeWordBegin_default_instance_);
}
inline const ::Anki::Vector::external_interface::WakeWordBegin& WakeWord::wake_word_begin() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.WakeWord.wake_word_begin)
  return _internal_wake_word_begin();
}
inline ::Anki::Vector::external_interface::WakeWordBegin* WakeWord::unsafe_arena_release_wake_word_begin() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.WakeWord.wake_word_begin)
  if (_internal_has_wake_word_begin()) {
    clear_has_wake_word_type();
    ::Anki::Vector::external_interface::WakeWordBegin* temp = wake_word_type_.wake_word_begin_;
    wake_word_type_.wake_word_begin_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void WakeWord::unsafe_arena_set_allocated_wake_word_begin(::Anki::Vector::external_interface::WakeWordBegin* wake_word_begin) {
  clear_wake_word_type();
  if (wake_word_begin) {
    set_has_wake_word_begin();
    wake_word_type_.wake_word_begin_ = wake_word_begin;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.WakeWord.wake_word_begin)
}
inline ::Anki::Vector::external_interface::WakeWordBegin* WakeWord::_internal_mutable_wake_word_begin() {
  if (!_internal_has_wake_word_begin()) {
    clear_wake_word_type();
    set_has_wake_word_begin();
    wake_word_type_.wake_word_begin_ = CreateMaybeMessage< ::Anki::Vector::external_interface::WakeWordBegin >(GetArena());
  }
  return wake_word_type_.wake_word_begin_;
}
inline ::Anki::Vector::external_interface::WakeWordBegin* WakeWord::mutable_wake_word_begin() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.WakeWord.wake_word_begin)
  return _internal_mutable_wake_word_begin();
}

// .Anki.Vector.external_interface.WakeWordEnd wake_word_end = 2;
inline bool WakeWord::_internal_has_wake_word_end() const {
  return wake_word_type_case() == kWakeWordEnd;
}
inline bool WakeWord::has_wake_word_end() const {
  return _internal_has_wake_word_end();
}
inline void WakeWord::set_has_wake_word_end() {
  _oneof_case_[0] = kWakeWordEnd;
}
inline void WakeWord::clear_wake_word_end() {
  if (_internal_has_wake_word_end()) {
    if (GetArena() == nullptr) {
      delete wake_word_type_.wake_word_end_;
    }
    clear_has_wake_word_type();
  }
}
inline ::Anki::Vector::external_interface::WakeWordEnd* WakeWord::release_wake_word_end() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.WakeWord.wake_word_end)
  if (_internal_has_wake_word_end()) {
    clear_has_wake_word_type();
      ::Anki::Vector::external_interface::WakeWordEnd* temp = wake_word_type_.wake_word_end_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    wake_word_type_.wake_word_end_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::WakeWordEnd& WakeWord::_internal_wake_word_end() const {
  return _internal_has_wake_word_end()
      ? *wake_word_type_.wake_word_end_
      : *reinterpret_cast< ::Anki::Vector::external_interface::WakeWordEnd*>(&::Anki::Vector::external_interface::_WakeWordEnd_default_instance_);
}
inline const ::Anki::Vector::external_interface::WakeWordEnd& WakeWord::wake_word_end() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.WakeWord.wake_word_end)
  return _internal_wake_word_end();
}
inline ::Anki::Vector::external_interface::WakeWordEnd* WakeWord::unsafe_arena_release_wake_word_end() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.WakeWord.wake_word_end)
  if (_internal_has_wake_word_end()) {
    clear_has_wake_word_type();
    ::Anki::Vector::external_interface::WakeWordEnd* temp = wake_word_type_.wake_word_end_;
    wake_word_type_.wake_word_end_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void WakeWord::unsafe_arena_set_allocated_wake_word_end(::Anki::Vector::external_interface::WakeWordEnd* wake_word_end) {
  clear_wake_word_type();
  if (wake_word_end) {
    set_has_wake_word_end();
    wake_word_type_.wake_word_end_ = wake_word_end;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.WakeWord.wake_word_end)
}
inline ::Anki::Vector::external_interface::WakeWordEnd* WakeWord::_internal_mutable_wake_word_end() {
  if (!_internal_has_wake_word_end()) {
    clear_wake_word_type();
    set_has_wake_word_end();
    wake_word_type_.wake_word_end_ = CreateMaybeMessage< ::Anki::Vector::external_interface::WakeWordEnd >(GetArena());
  }
  return wake_word_type_.wake_word_end_;
}
inline ::Anki::Vector::external_interface::WakeWordEnd* WakeWord::mutable_wake_word_end() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.WakeWord.wake_word_end)
  return _internal_mutable_wake_word_end();
}

inline bool WakeWord::has_wake_word_type() const {
  return wake_word_type_case() != WAKE_WORD_TYPE_NOT_SET;
}
inline void WakeWord::clear_has_wake_word_type() {
  _oneof_case_[0] = WAKE_WORD_TYPE_NOT_SET;
}
inline WakeWord::WakeWordTypeCase WakeWord::wake_word_type_case() const {
  return WakeWord::WakeWordTypeCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// TimeStampedStatus

// .Anki.Vector.external_interface.Status status = 1;
inline bool TimeStampedStatus::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool TimeStampedStatus::has_status() const {
  return _internal_has_status();
}
inline void TimeStampedStatus::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
inline const ::Anki::Vector::external_interface::Status& TimeStampedStatus::_internal_status() const {
  const ::Anki::Vector::external_interface::Status* p = status_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::Status*>(
      &::Anki::Vector::external_interface::_Status_default_instance_);
}
inline const ::Anki::Vector::external_interface::Status& TimeStampedStatus::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TimeStampedStatus.status)
  return _internal_status();
}
inline void TimeStampedStatus::unsafe_arena_set_allocated_status(
    ::Anki::Vector::external_interface::Status* 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.TimeStampedStatus.status)
}
inline ::Anki::Vector::external_interface::Status* TimeStampedStatus::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::Status* TimeStampedStatus::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.TimeStampedStatus.status)
  
  ::Anki::Vector::external_interface::Status* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::Status* TimeStampedStatus::_internal_mutable_status() {
  
  if (status_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::Status>(GetArena());
    status_ = p;
  }
  return status_;
}
inline ::Anki::Vector::external_interface::Status* TimeStampedStatus::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.TimeStampedStatus.status)
  return _internal_mutable_status();
}
inline void TimeStampedStatus::set_allocated_status(::Anki::Vector::external_interface::Status* status) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete status_;
  }
  if (status) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(status);
    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.TimeStampedStatus.status)
}

// uint32 timestamp_utc = 2;
inline void TimeStampedStatus::clear_timestamp_utc() {
  timestamp_utc_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 TimeStampedStatus::_internal_timestamp_utc() const {
  return timestamp_utc_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 TimeStampedStatus::timestamp_utc() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TimeStampedStatus.timestamp_utc)
  return _internal_timestamp_utc();
}
inline void TimeStampedStatus::_internal_set_timestamp_utc(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  timestamp_utc_ = value;
}
inline void TimeStampedStatus::set_timestamp_utc(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_timestamp_utc(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TimeStampedStatus.timestamp_utc)
}

// -------------------------------------------------------------------

// PoseStruct

// float x = 1;
inline void PoseStruct::clear_x() {
  x_ = 0;
}
inline float PoseStruct::_internal_x() const {
  return x_;
}
inline float PoseStruct::x() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PoseStruct.x)
  return _internal_x();
}
inline void PoseStruct::_internal_set_x(float value) {
  
  x_ = value;
}
inline void PoseStruct::set_x(float value) {
  _internal_set_x(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PoseStruct.x)
}

// float y = 2;
inline void PoseStruct::clear_y() {
  y_ = 0;
}
inline float PoseStruct::_internal_y() const {
  return y_;
}
inline float PoseStruct::y() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PoseStruct.y)
  return _internal_y();
}
inline void PoseStruct::_internal_set_y(float value) {
  
  y_ = value;
}
inline void PoseStruct::set_y(float value) {
  _internal_set_y(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PoseStruct.y)
}

// float z = 3;
inline void PoseStruct::clear_z() {
  z_ = 0;
}
inline float PoseStruct::_internal_z() const {
  return z_;
}
inline float PoseStruct::z() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PoseStruct.z)
  return _internal_z();
}
inline void PoseStruct::_internal_set_z(float value) {
  
  z_ = value;
}
inline void PoseStruct::set_z(float value) {
  _internal_set_z(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PoseStruct.z)
}

// float q0 = 4;
inline void PoseStruct::clear_q0() {
  q0_ = 0;
}
inline float PoseStruct::_internal_q0() const {
  return q0_;
}
inline float PoseStruct::q0() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PoseStruct.q0)
  return _internal_q0();
}
inline void PoseStruct::_internal_set_q0(float value) {
  
  q0_ = value;
}
inline void PoseStruct::set_q0(float value) {
  _internal_set_q0(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PoseStruct.q0)
}

// float q1 = 5;
inline void PoseStruct::clear_q1() {
  q1_ = 0;
}
inline float PoseStruct::_internal_q1() const {
  return q1_;
}
inline float PoseStruct::q1() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PoseStruct.q1)
  return _internal_q1();
}
inline void PoseStruct::_internal_set_q1(float value) {
  
  q1_ = value;
}
inline void PoseStruct::set_q1(float value) {
  _internal_set_q1(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PoseStruct.q1)
}

// float q2 = 6;
inline void PoseStruct::clear_q2() {
  q2_ = 0;
}
inline float PoseStruct::_internal_q2() const {
  return q2_;
}
inline float PoseStruct::q2() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PoseStruct.q2)
  return _internal_q2();
}
inline void PoseStruct::_internal_set_q2(float value) {
  
  q2_ = value;
}
inline void PoseStruct::set_q2(float value) {
  _internal_set_q2(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PoseStruct.q2)
}

// float q3 = 7;
inline void PoseStruct::clear_q3() {
  q3_ = 0;
}
inline float PoseStruct::_internal_q3() const {
  return q3_;
}
inline float PoseStruct::q3() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PoseStruct.q3)
  return _internal_q3();
}
inline void PoseStruct::_internal_set_q3(float value) {
  
  q3_ = value;
}
inline void PoseStruct::set_q3(float value) {
  _internal_set_q3(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PoseStruct.q3)
}

// uint32 origin_id = 8;
inline void PoseStruct::clear_origin_id() {
  origin_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PoseStruct::_internal_origin_id() const {
  return origin_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PoseStruct::origin_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PoseStruct.origin_id)
  return _internal_origin_id();
}
inline void PoseStruct::_internal_set_origin_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  origin_id_ = value;
}
inline void PoseStruct::set_origin_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_origin_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PoseStruct.origin_id)
}

// -------------------------------------------------------------------

// AccelData

// float x = 1;
inline void AccelData::clear_x() {
  x_ = 0;
}
inline float AccelData::_internal_x() const {
  return x_;
}
inline float AccelData::x() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AccelData.x)
  return _internal_x();
}
inline void AccelData::_internal_set_x(float value) {
  
  x_ = value;
}
inline void AccelData::set_x(float value) {
  _internal_set_x(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AccelData.x)
}

// float y = 2;
inline void AccelData::clear_y() {
  y_ = 0;
}
inline float AccelData::_internal_y() const {
  return y_;
}
inline float AccelData::y() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AccelData.y)
  return _internal_y();
}
inline void AccelData::_internal_set_y(float value) {
  
  y_ = value;
}
inline void AccelData::set_y(float value) {
  _internal_set_y(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AccelData.y)
}

// float z = 3;
inline void AccelData::clear_z() {
  z_ = 0;
}
inline float AccelData::_internal_z() const {
  return z_;
}
inline float AccelData::z() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AccelData.z)
  return _internal_z();
}
inline void AccelData::_internal_set_z(float value) {
  
  z_ = value;
}
inline void AccelData::set_z(float value) {
  _internal_set_z(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AccelData.z)
}

// -------------------------------------------------------------------

// GyroData

// float x = 1;
inline void GyroData::clear_x() {
  x_ = 0;
}
inline float GyroData::_internal_x() const {
  return x_;
}
inline float GyroData::x() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GyroData.x)
  return _internal_x();
}
inline void GyroData::_internal_set_x(float value) {
  
  x_ = value;
}
inline void GyroData::set_x(float value) {
  _internal_set_x(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GyroData.x)
}

// float y = 2;
inline void GyroData::clear_y() {
  y_ = 0;
}
inline float GyroData::_internal_y() const {
  return y_;
}
inline float GyroData::y() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GyroData.y)
  return _internal_y();
}
inline void GyroData::_internal_set_y(float value) {
  
  y_ = value;
}
inline void GyroData::set_y(float value) {
  _internal_set_y(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GyroData.y)
}

// float z = 3;
inline void GyroData::clear_z() {
  z_ = 0;
}
inline float GyroData::_internal_z() const {
  return z_;
}
inline float GyroData::z() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GyroData.z)
  return _internal_z();
}
inline void GyroData::_internal_set_z(float value) {
  
  z_ = value;
}
inline void GyroData::set_z(float value) {
  _internal_set_z(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GyroData.z)
}

// -------------------------------------------------------------------

// ProxData

// uint32 distance_mm = 1;
inline void ProxData::clear_distance_mm() {
  distance_mm_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ProxData::_internal_distance_mm() const {
  return distance_mm_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ProxData::distance_mm() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ProxData.distance_mm)
  return _internal_distance_mm();
}
inline void ProxData::_internal_set_distance_mm(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  distance_mm_ = value;
}
inline void ProxData::set_distance_mm(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_distance_mm(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ProxData.distance_mm)
}

// float signal_quality = 2;
inline void ProxData::clear_signal_quality() {
  signal_quality_ = 0;
}
inline float ProxData::_internal_signal_quality() const {
  return signal_quality_;
}
inline float ProxData::signal_quality() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ProxData.signal_quality)
  return _internal_signal_quality();
}
inline void ProxData::_internal_set_signal_quality(float value) {
  
  signal_quality_ = value;
}
inline void ProxData::set_signal_quality(float value) {
  _internal_set_signal_quality(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ProxData.signal_quality)
}

// bool unobstructed = 3;
inline void ProxData::clear_unobstructed() {
  unobstructed_ = false;
}
inline bool ProxData::_internal_unobstructed() const {
  return unobstructed_;
}
inline bool ProxData::unobstructed() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ProxData.unobstructed)
  return _internal_unobstructed();
}
inline void ProxData::_internal_set_unobstructed(bool value) {
  
  unobstructed_ = value;
}
inline void ProxData::set_unobstructed(bool value) {
  _internal_set_unobstructed(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ProxData.unobstructed)
}

// bool found_object = 4;
inline void ProxData::clear_found_object() {
  found_object_ = false;
}
inline bool ProxData::_internal_found_object() const {
  return found_object_;
}
inline bool ProxData::found_object() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ProxData.found_object)
  return _internal_found_object();
}
inline void ProxData::_internal_set_found_object(bool value) {
  
  found_object_ = value;
}
inline void ProxData::set_found_object(bool value) {
  _internal_set_found_object(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ProxData.found_object)
}

// bool is_lift_in_fov = 5;
inline void ProxData::clear_is_lift_in_fov() {
  is_lift_in_fov_ = false;
}
inline bool ProxData::_internal_is_lift_in_fov() const {
  return is_lift_in_fov_;
}
inline bool ProxData::is_lift_in_fov() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ProxData.is_lift_in_fov)
  return _internal_is_lift_in_fov();
}
inline void ProxData::_internal_set_is_lift_in_fov(bool value) {
  
  is_lift_in_fov_ = value;
}
inline void ProxData::set_is_lift_in_fov(bool value) {
  _internal_set_is_lift_in_fov(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ProxData.is_lift_in_fov)
}

// -------------------------------------------------------------------

// TouchData

// uint32 raw_touch_value = 1;
inline void TouchData::clear_raw_touch_value() {
  raw_touch_value_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 TouchData::_internal_raw_touch_value() const {
  return raw_touch_value_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 TouchData::raw_touch_value() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TouchData.raw_touch_value)
  return _internal_raw_touch_value();
}
inline void TouchData::_internal_set_raw_touch_value(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  raw_touch_value_ = value;
}
inline void TouchData::set_raw_touch_value(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_raw_touch_value(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TouchData.raw_touch_value)
}

// bool is_being_touched = 2;
inline void TouchData::clear_is_being_touched() {
  is_being_touched_ = false;
}
inline bool TouchData::_internal_is_being_touched() const {
  return is_being_touched_;
}
inline bool TouchData::is_being_touched() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TouchData.is_being_touched)
  return _internal_is_being_touched();
}
inline void TouchData::_internal_set_is_being_touched(bool value) {
  
  is_being_touched_ = value;
}
inline void TouchData::set_is_being_touched(bool value) {
  _internal_set_is_being_touched(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TouchData.is_being_touched)
}

// -------------------------------------------------------------------

// RobotState

// .Anki.Vector.external_interface.PoseStruct pose = 1;
inline bool RobotState::_internal_has_pose() const {
  return this != internal_default_instance() && pose_ != nullptr;
}
inline bool RobotState::has_pose() const {
  return _internal_has_pose();
}
inline void RobotState::clear_pose() {
  if (GetArena() == nullptr && pose_ != nullptr) {
    delete pose_;
  }
  pose_ = nullptr;
}
inline const ::Anki::Vector::external_interface::PoseStruct& RobotState::_internal_pose() const {
  const ::Anki::Vector::external_interface::PoseStruct* p = pose_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::PoseStruct*>(
      &::Anki::Vector::external_interface::_PoseStruct_default_instance_);
}
inline const ::Anki::Vector::external_interface::PoseStruct& RobotState::pose() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.pose)
  return _internal_pose();
}
inline void RobotState::unsafe_arena_set_allocated_pose(
    ::Anki::Vector::external_interface::PoseStruct* pose) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pose_);
  }
  pose_ = pose;
  if (pose) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotState.pose)
}
inline ::Anki::Vector::external_interface::PoseStruct* RobotState::release_pose() {
  auto temp = unsafe_arena_release_pose();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::PoseStruct* RobotState::unsafe_arena_release_pose() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotState.pose)
  
  ::Anki::Vector::external_interface::PoseStruct* temp = pose_;
  pose_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::PoseStruct* RobotState::_internal_mutable_pose() {
  
  if (pose_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::PoseStruct>(GetArena());
    pose_ = p;
  }
  return pose_;
}
inline ::Anki::Vector::external_interface::PoseStruct* RobotState::mutable_pose() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotState.pose)
  return _internal_mutable_pose();
}
inline void RobotState::set_allocated_pose(::Anki::Vector::external_interface::PoseStruct* pose) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete pose_;
  }
  if (pose) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(pose);
    if (message_arena != submessage_arena) {
      pose = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, pose, submessage_arena);
    }
    
  } else {
    
  }
  pose_ = pose;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotState.pose)
}

// float pose_angle_rad = 2;
inline void RobotState::clear_pose_angle_rad() {
  pose_angle_rad_ = 0;
}
inline float RobotState::_internal_pose_angle_rad() const {
  return pose_angle_rad_;
}
inline float RobotState::pose_angle_rad() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.pose_angle_rad)
  return _internal_pose_angle_rad();
}
inline void RobotState::_internal_set_pose_angle_rad(float value) {
  
  pose_angle_rad_ = value;
}
inline void RobotState::set_pose_angle_rad(float value) {
  _internal_set_pose_angle_rad(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotState.pose_angle_rad)
}

// float pose_pitch_rad = 3;
inline void RobotState::clear_pose_pitch_rad() {
  pose_pitch_rad_ = 0;
}
inline float RobotState::_internal_pose_pitch_rad() const {
  return pose_pitch_rad_;
}
inline float RobotState::pose_pitch_rad() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.pose_pitch_rad)
  return _internal_pose_pitch_rad();
}
inline void RobotState::_internal_set_pose_pitch_rad(float value) {
  
  pose_pitch_rad_ = value;
}
inline void RobotState::set_pose_pitch_rad(float value) {
  _internal_set_pose_pitch_rad(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotState.pose_pitch_rad)
}

// float left_wheel_speed_mmps = 4;
inline void RobotState::clear_left_wheel_speed_mmps() {
  left_wheel_speed_mmps_ = 0;
}
inline float RobotState::_internal_left_wheel_speed_mmps() const {
  return left_wheel_speed_mmps_;
}
inline float RobotState::left_wheel_speed_mmps() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.left_wheel_speed_mmps)
  return _internal_left_wheel_speed_mmps();
}
inline void RobotState::_internal_set_left_wheel_speed_mmps(float value) {
  
  left_wheel_speed_mmps_ = value;
}
inline void RobotState::set_left_wheel_speed_mmps(float value) {
  _internal_set_left_wheel_speed_mmps(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotState.left_wheel_speed_mmps)
}

// float right_wheel_speed_mmps = 5;
inline void RobotState::clear_right_wheel_speed_mmps() {
  right_wheel_speed_mmps_ = 0;
}
inline float RobotState::_internal_right_wheel_speed_mmps() const {
  return right_wheel_speed_mmps_;
}
inline float RobotState::right_wheel_speed_mmps() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.right_wheel_speed_mmps)
  return _internal_right_wheel_speed_mmps();
}
inline void RobotState::_internal_set_right_wheel_speed_mmps(float value) {
  
  right_wheel_speed_mmps_ = value;
}
inline void RobotState::set_right_wheel_speed_mmps(float value) {
  _internal_set_right_wheel_speed_mmps(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotState.right_wheel_speed_mmps)
}

// float head_angle_rad = 6;
inline void RobotState::clear_head_angle_rad() {
  head_angle_rad_ = 0;
}
inline float RobotState::_internal_head_angle_rad() const {
  return head_angle_rad_;
}
inline float RobotState::head_angle_rad() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.head_angle_rad)
  return _internal_head_angle_rad();
}
inline void RobotState::_internal_set_head_angle_rad(float value) {
  
  head_angle_rad_ = value;
}
inline void RobotState::set_head_angle_rad(float value) {
  _internal_set_head_angle_rad(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotState.head_angle_rad)
}

// float lift_height_mm = 7;
inline void RobotState::clear_lift_height_mm() {
  lift_height_mm_ = 0;
}
inline float RobotState::_internal_lift_height_mm() const {
  return lift_height_mm_;
}
inline float RobotState::lift_height_mm() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.lift_height_mm)
  return _internal_lift_height_mm();
}
inline void RobotState::_internal_set_lift_height_mm(float value) {
  
  lift_height_mm_ = value;
}
inline void RobotState::set_lift_height_mm(float value) {
  _internal_set_lift_height_mm(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotState.lift_height_mm)
}

// .Anki.Vector.external_interface.AccelData accel = 8;
inline bool RobotState::_internal_has_accel() const {
  return this != internal_default_instance() && accel_ != nullptr;
}
inline bool RobotState::has_accel() const {
  return _internal_has_accel();
}
inline void RobotState::clear_accel() {
  if (GetArena() == nullptr && accel_ != nullptr) {
    delete accel_;
  }
  accel_ = nullptr;
}
inline const ::Anki::Vector::external_interface::AccelData& RobotState::_internal_accel() const {
  const ::Anki::Vector::external_interface::AccelData* p = accel_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::AccelData*>(
      &::Anki::Vector::external_interface::_AccelData_default_instance_);
}
inline const ::Anki::Vector::external_interface::AccelData& RobotState::accel() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.accel)
  return _internal_accel();
}
inline void RobotState::unsafe_arena_set_allocated_accel(
    ::Anki::Vector::external_interface::AccelData* accel) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(accel_);
  }
  accel_ = accel;
  if (accel) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotState.accel)
}
inline ::Anki::Vector::external_interface::AccelData* RobotState::release_accel() {
  auto temp = unsafe_arena_release_accel();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::AccelData* RobotState::unsafe_arena_release_accel() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotState.accel)
  
  ::Anki::Vector::external_interface::AccelData* temp = accel_;
  accel_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::AccelData* RobotState::_internal_mutable_accel() {
  
  if (accel_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::AccelData>(GetArena());
    accel_ = p;
  }
  return accel_;
}
inline ::Anki::Vector::external_interface::AccelData* RobotState::mutable_accel() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotState.accel)
  return _internal_mutable_accel();
}
inline void RobotState::set_allocated_accel(::Anki::Vector::external_interface::AccelData* accel) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete accel_;
  }
  if (accel) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(accel);
    if (message_arena != submessage_arena) {
      accel = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, accel, submessage_arena);
    }
    
  } else {
    
  }
  accel_ = accel;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotState.accel)
}

// .Anki.Vector.external_interface.GyroData gyro = 9;
inline bool RobotState::_internal_has_gyro() const {
  return this != internal_default_instance() && gyro_ != nullptr;
}
inline bool RobotState::has_gyro() const {
  return _internal_has_gyro();
}
inline void RobotState::clear_gyro() {
  if (GetArena() == nullptr && gyro_ != nullptr) {
    delete gyro_;
  }
  gyro_ = nullptr;
}
inline const ::Anki::Vector::external_interface::GyroData& RobotState::_internal_gyro() const {
  const ::Anki::Vector::external_interface::GyroData* p = gyro_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::GyroData*>(
      &::Anki::Vector::external_interface::_GyroData_default_instance_);
}
inline const ::Anki::Vector::external_interface::GyroData& RobotState::gyro() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.gyro)
  return _internal_gyro();
}
inline void RobotState::unsafe_arena_set_allocated_gyro(
    ::Anki::Vector::external_interface::GyroData* gyro) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(gyro_);
  }
  gyro_ = gyro;
  if (gyro) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotState.gyro)
}
inline ::Anki::Vector::external_interface::GyroData* RobotState::release_gyro() {
  auto temp = unsafe_arena_release_gyro();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::GyroData* RobotState::unsafe_arena_release_gyro() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotState.gyro)
  
  ::Anki::Vector::external_interface::GyroData* temp = gyro_;
  gyro_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::GyroData* RobotState::_internal_mutable_gyro() {
  
  if (gyro_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::GyroData>(GetArena());
    gyro_ = p;
  }
  return gyro_;
}
inline ::Anki::Vector::external_interface::GyroData* RobotState::mutable_gyro() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotState.gyro)
  return _internal_mutable_gyro();
}
inline void RobotState::set_allocated_gyro(::Anki::Vector::external_interface::GyroData* gyro) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete gyro_;
  }
  if (gyro) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(gyro);
    if (message_arena != submessage_arena) {
      gyro = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, gyro, submessage_arena);
    }
    
  } else {
    
  }
  gyro_ = gyro;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotState.gyro)
}

// int32 carrying_object_id = 10;
inline void RobotState::clear_carrying_object_id() {
  carrying_object_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotState::_internal_carrying_object_id() const {
  return carrying_object_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotState::carrying_object_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.carrying_object_id)
  return _internal_carrying_object_id();
}
inline void RobotState::_internal_set_carrying_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  carrying_object_id_ = value;
}
inline void RobotState::set_carrying_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_carrying_object_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotState.carrying_object_id)
}

// int32 carrying_object_on_top_id = 11;
inline void RobotState::clear_carrying_object_on_top_id() {
  carrying_object_on_top_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotState::_internal_carrying_object_on_top_id() const {
  return carrying_object_on_top_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotState::carrying_object_on_top_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.carrying_object_on_top_id)
  return _internal_carrying_object_on_top_id();
}
inline void RobotState::_internal_set_carrying_object_on_top_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  carrying_object_on_top_id_ = value;
}
inline void RobotState::set_carrying_object_on_top_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_carrying_object_on_top_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotState.carrying_object_on_top_id)
}

// int32 head_tracking_object_id = 12;
inline void RobotState::clear_head_tracking_object_id() {
  head_tracking_object_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotState::_internal_head_tracking_object_id() const {
  return head_tracking_object_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotState::head_tracking_object_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.head_tracking_object_id)
  return _internal_head_tracking_object_id();
}
inline void RobotState::_internal_set_head_tracking_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  head_tracking_object_id_ = value;
}
inline void RobotState::set_head_tracking_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_head_tracking_object_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotState.head_tracking_object_id)
}

// int32 localized_to_object_id = 13;
inline void RobotState::clear_localized_to_object_id() {
  localized_to_object_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotState::_internal_localized_to_object_id() const {
  return localized_to_object_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotState::localized_to_object_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.localized_to_object_id)
  return _internal_localized_to_object_id();
}
inline void RobotState::_internal_set_localized_to_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  localized_to_object_id_ = value;
}
inline void RobotState::set_localized_to_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_localized_to_object_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotState.localized_to_object_id)
}

// uint32 last_image_time_stamp = 14;
inline void RobotState::clear_last_image_time_stamp() {
  last_image_time_stamp_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RobotState::_internal_last_image_time_stamp() const {
  return last_image_time_stamp_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RobotState::last_image_time_stamp() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.last_image_time_stamp)
  return _internal_last_image_time_stamp();
}
inline void RobotState::_internal_set_last_image_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  last_image_time_stamp_ = value;
}
inline void RobotState::set_last_image_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_last_image_time_stamp(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotState.last_image_time_stamp)
}

// uint32 status = 15;
inline void RobotState::clear_status() {
  status_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RobotState::_internal_status() const {
  return status_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RobotState::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.status)
  return _internal_status();
}
inline void RobotState::_internal_set_status(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  status_ = value;
}
inline void RobotState::set_status(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_status(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotState.status)
}

// .Anki.Vector.external_interface.ProxData prox_data = 16;
inline bool RobotState::_internal_has_prox_data() const {
  return this != internal_default_instance() && prox_data_ != nullptr;
}
inline bool RobotState::has_prox_data() const {
  return _internal_has_prox_data();
}
inline void RobotState::clear_prox_data() {
  if (GetArena() == nullptr && prox_data_ != nullptr) {
    delete prox_data_;
  }
  prox_data_ = nullptr;
}
inline const ::Anki::Vector::external_interface::ProxData& RobotState::_internal_prox_data() const {
  const ::Anki::Vector::external_interface::ProxData* p = prox_data_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ProxData*>(
      &::Anki::Vector::external_interface::_ProxData_default_instance_);
}
inline const ::Anki::Vector::external_interface::ProxData& RobotState::prox_data() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.prox_data)
  return _internal_prox_data();
}
inline void RobotState::unsafe_arena_set_allocated_prox_data(
    ::Anki::Vector::external_interface::ProxData* prox_data) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(prox_data_);
  }
  prox_data_ = prox_data;
  if (prox_data) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotState.prox_data)
}
inline ::Anki::Vector::external_interface::ProxData* RobotState::release_prox_data() {
  auto temp = unsafe_arena_release_prox_data();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ProxData* RobotState::unsafe_arena_release_prox_data() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotState.prox_data)
  
  ::Anki::Vector::external_interface::ProxData* temp = prox_data_;
  prox_data_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ProxData* RobotState::_internal_mutable_prox_data() {
  
  if (prox_data_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ProxData>(GetArena());
    prox_data_ = p;
  }
  return prox_data_;
}
inline ::Anki::Vector::external_interface::ProxData* RobotState::mutable_prox_data() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotState.prox_data)
  return _internal_mutable_prox_data();
}
inline void RobotState::set_allocated_prox_data(::Anki::Vector::external_interface::ProxData* prox_data) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete prox_data_;
  }
  if (prox_data) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(prox_data);
    if (message_arena != submessage_arena) {
      prox_data = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, prox_data, submessage_arena);
    }
    
  } else {
    
  }
  prox_data_ = prox_data;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotState.prox_data)
}

// .Anki.Vector.external_interface.TouchData touch_data = 17;
inline bool RobotState::_internal_has_touch_data() const {
  return this != internal_default_instance() && touch_data_ != nullptr;
}
inline bool RobotState::has_touch_data() const {
  return _internal_has_touch_data();
}
inline void RobotState::clear_touch_data() {
  if (GetArena() == nullptr && touch_data_ != nullptr) {
    delete touch_data_;
  }
  touch_data_ = nullptr;
}
inline const ::Anki::Vector::external_interface::TouchData& RobotState::_internal_touch_data() const {
  const ::Anki::Vector::external_interface::TouchData* p = touch_data_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::TouchData*>(
      &::Anki::Vector::external_interface::_TouchData_default_instance_);
}
inline const ::Anki::Vector::external_interface::TouchData& RobotState::touch_data() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotState.touch_data)
  return _internal_touch_data();
}
inline void RobotState::unsafe_arena_set_allocated_touch_data(
    ::Anki::Vector::external_interface::TouchData* touch_data) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(touch_data_);
  }
  touch_data_ = touch_data;
  if (touch_data) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotState.touch_data)
}
inline ::Anki::Vector::external_interface::TouchData* RobotState::release_touch_data() {
  auto temp = unsafe_arena_release_touch_data();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::TouchData* RobotState::unsafe_arena_release_touch_data() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotState.touch_data)
  
  ::Anki::Vector::external_interface::TouchData* temp = touch_data_;
  touch_data_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::TouchData* RobotState::_internal_mutable_touch_data() {
  
  if (touch_data_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::TouchData>(GetArena());
    touch_data_ = p;
  }
  return touch_data_;
}
inline ::Anki::Vector::external_interface::TouchData* RobotState::mutable_touch_data() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotState.touch_data)
  return _internal_mutable_touch_data();
}
inline void RobotState::set_allocated_touch_data(::Anki::Vector::external_interface::TouchData* touch_data) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete touch_data_;
  }
  if (touch_data) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(touch_data);
    if (message_arena != submessage_arena) {
      touch_data = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, touch_data, submessage_arena);
    }
    
  } else {
    
  }
  touch_data_ = touch_data;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotState.touch_data)
}

// -------------------------------------------------------------------

// CladPoint

// float x = 1;
inline void CladPoint::clear_x() {
  x_ = 0;
}
inline float CladPoint::_internal_x() const {
  return x_;
}
inline float CladPoint::x() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CladPoint.x)
  return _internal_x();
}
inline void CladPoint::_internal_set_x(float value) {
  
  x_ = value;
}
inline void CladPoint::set_x(float value) {
  _internal_set_x(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CladPoint.x)
}

// float y = 2;
inline void CladPoint::clear_y() {
  y_ = 0;
}
inline float CladPoint::_internal_y() const {
  return y_;
}
inline float CladPoint::y() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CladPoint.y)
  return _internal_y();
}
inline void CladPoint::_internal_set_y(float value) {
  
  y_ = value;
}
inline void CladPoint::set_y(float value) {
  _internal_set_y(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CladPoint.y)
}

// -------------------------------------------------------------------

// CladRect

// float x_top_left = 1;
inline void CladRect::clear_x_top_left() {
  x_top_left_ = 0;
}
inline float CladRect::_internal_x_top_left() const {
  return x_top_left_;
}
inline float CladRect::x_top_left() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CladRect.x_top_left)
  return _internal_x_top_left();
}
inline void CladRect::_internal_set_x_top_left(float value) {
  
  x_top_left_ = value;
}
inline void CladRect::set_x_top_left(float value) {
  _internal_set_x_top_left(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CladRect.x_top_left)
}

// float y_top_left = 2;
inline void CladRect::clear_y_top_left() {
  y_top_left_ = 0;
}
inline float CladRect::_internal_y_top_left() const {
  return y_top_left_;
}
inline float CladRect::y_top_left() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CladRect.y_top_left)
  return _internal_y_top_left();
}
inline void CladRect::_internal_set_y_top_left(float value) {
  
  y_top_left_ = value;
}
inline void CladRect::set_y_top_left(float value) {
  _internal_set_y_top_left(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CladRect.y_top_left)
}

// float width = 3;
inline void CladRect::clear_width() {
  width_ = 0;
}
inline float CladRect::_internal_width() const {
  return width_;
}
inline float CladRect::width() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CladRect.width)
  return _internal_width();
}
inline void CladRect::_internal_set_width(float value) {
  
  width_ = value;
}
inline void CladRect::set_width(float value) {
  _internal_set_width(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CladRect.width)
}

// float height = 4;
inline void CladRect::clear_height() {
  height_ = 0;
}
inline float CladRect::_internal_height() const {
  return height_;
}
inline float CladRect::height() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CladRect.height)
  return _internal_height();
}
inline void CladRect::_internal_set_height(float value) {
  
  height_ = value;
}
inline void CladRect::set_height(float value) {
  _internal_set_height(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CladRect.height)
}

// -------------------------------------------------------------------

// RobotObservedMotion

// uint32 timestamp = 1;
inline void RobotObservedMotion::clear_timestamp() {
  timestamp_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RobotObservedMotion::_internal_timestamp() const {
  return timestamp_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RobotObservedMotion::timestamp() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.timestamp)
  return _internal_timestamp();
}
inline void RobotObservedMotion::_internal_set_timestamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  timestamp_ = value;
}
inline void RobotObservedMotion::set_timestamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_timestamp(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.timestamp)
}

// float img_area = 2;
inline void RobotObservedMotion::clear_img_area() {
  img_area_ = 0;
}
inline float RobotObservedMotion::_internal_img_area() const {
  return img_area_;
}
inline float RobotObservedMotion::img_area() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.img_area)
  return _internal_img_area();
}
inline void RobotObservedMotion::_internal_set_img_area(float value) {
  
  img_area_ = value;
}
inline void RobotObservedMotion::set_img_area(float value) {
  _internal_set_img_area(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.img_area)
}

// int32 img_x = 3;
inline void RobotObservedMotion::clear_img_x() {
  img_x_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::_internal_img_x() const {
  return img_x_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::img_x() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.img_x)
  return _internal_img_x();
}
inline void RobotObservedMotion::_internal_set_img_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  img_x_ = value;
}
inline void RobotObservedMotion::set_img_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_img_x(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.img_x)
}

// int32 img_y = 4;
inline void RobotObservedMotion::clear_img_y() {
  img_y_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::_internal_img_y() const {
  return img_y_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::img_y() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.img_y)
  return _internal_img_y();
}
inline void RobotObservedMotion::_internal_set_img_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  img_y_ = value;
}
inline void RobotObservedMotion::set_img_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_img_y(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.img_y)
}

// float ground_area = 5;
inline void RobotObservedMotion::clear_ground_area() {
  ground_area_ = 0;
}
inline float RobotObservedMotion::_internal_ground_area() const {
  return ground_area_;
}
inline float RobotObservedMotion::ground_area() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.ground_area)
  return _internal_ground_area();
}
inline void RobotObservedMotion::_internal_set_ground_area(float value) {
  
  ground_area_ = value;
}
inline void RobotObservedMotion::set_ground_area(float value) {
  _internal_set_ground_area(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.ground_area)
}

// int32 ground_x = 6;
inline void RobotObservedMotion::clear_ground_x() {
  ground_x_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::_internal_ground_x() const {
  return ground_x_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::ground_x() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.ground_x)
  return _internal_ground_x();
}
inline void RobotObservedMotion::_internal_set_ground_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  ground_x_ = value;
}
inline void RobotObservedMotion::set_ground_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_ground_x(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.ground_x)
}

// int32 ground_y = 7;
inline void RobotObservedMotion::clear_ground_y() {
  ground_y_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::_internal_ground_y() const {
  return ground_y_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::ground_y() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.ground_y)
  return _internal_ground_y();
}
inline void RobotObservedMotion::_internal_set_ground_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  ground_y_ = value;
}
inline void RobotObservedMotion::set_ground_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_ground_y(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.ground_y)
}

// float top_img_area = 8;
inline void RobotObservedMotion::clear_top_img_area() {
  top_img_area_ = 0;
}
inline float RobotObservedMotion::_internal_top_img_area() const {
  return top_img_area_;
}
inline float RobotObservedMotion::top_img_area() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.top_img_area)
  return _internal_top_img_area();
}
inline void RobotObservedMotion::_internal_set_top_img_area(float value) {
  
  top_img_area_ = value;
}
inline void RobotObservedMotion::set_top_img_area(float value) {
  _internal_set_top_img_area(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.top_img_area)
}

// int32 top_img_x = 9;
inline void RobotObservedMotion::clear_top_img_x() {
  top_img_x_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::_internal_top_img_x() const {
  return top_img_x_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::top_img_x() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.top_img_x)
  return _internal_top_img_x();
}
inline void RobotObservedMotion::_internal_set_top_img_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  top_img_x_ = value;
}
inline void RobotObservedMotion::set_top_img_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_top_img_x(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.top_img_x)
}

// int32 top_img_y = 10;
inline void RobotObservedMotion::clear_top_img_y() {
  top_img_y_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::_internal_top_img_y() const {
  return top_img_y_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::top_img_y() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.top_img_y)
  return _internal_top_img_y();
}
inline void RobotObservedMotion::_internal_set_top_img_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  top_img_y_ = value;
}
inline void RobotObservedMotion::set_top_img_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_top_img_y(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.top_img_y)
}

// float bottom_img_area = 11;
inline void RobotObservedMotion::clear_bottom_img_area() {
  bottom_img_area_ = 0;
}
inline float RobotObservedMotion::_internal_bottom_img_area() const {
  return bottom_img_area_;
}
inline float RobotObservedMotion::bottom_img_area() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.bottom_img_area)
  return _internal_bottom_img_area();
}
inline void RobotObservedMotion::_internal_set_bottom_img_area(float value) {
  
  bottom_img_area_ = value;
}
inline void RobotObservedMotion::set_bottom_img_area(float value) {
  _internal_set_bottom_img_area(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.bottom_img_area)
}

// int32 bottom_img_x = 12;
inline void RobotObservedMotion::clear_bottom_img_x() {
  bottom_img_x_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::_internal_bottom_img_x() const {
  return bottom_img_x_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::bottom_img_x() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.bottom_img_x)
  return _internal_bottom_img_x();
}
inline void RobotObservedMotion::_internal_set_bottom_img_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  bottom_img_x_ = value;
}
inline void RobotObservedMotion::set_bottom_img_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_bottom_img_x(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.bottom_img_x)
}

// int32 bottom_img_y = 13;
inline void RobotObservedMotion::clear_bottom_img_y() {
  bottom_img_y_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::_internal_bottom_img_y() const {
  return bottom_img_y_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::bottom_img_y() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.bottom_img_y)
  return _internal_bottom_img_y();
}
inline void RobotObservedMotion::_internal_set_bottom_img_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  bottom_img_y_ = value;
}
inline void RobotObservedMotion::set_bottom_img_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_bottom_img_y(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.bottom_img_y)
}

// float left_img_area = 14;
inline void RobotObservedMotion::clear_left_img_area() {
  left_img_area_ = 0;
}
inline float RobotObservedMotion::_internal_left_img_area() const {
  return left_img_area_;
}
inline float RobotObservedMotion::left_img_area() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.left_img_area)
  return _internal_left_img_area();
}
inline void RobotObservedMotion::_internal_set_left_img_area(float value) {
  
  left_img_area_ = value;
}
inline void RobotObservedMotion::set_left_img_area(float value) {
  _internal_set_left_img_area(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.left_img_area)
}

// int32 left_img_x = 15;
inline void RobotObservedMotion::clear_left_img_x() {
  left_img_x_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::_internal_left_img_x() const {
  return left_img_x_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::left_img_x() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.left_img_x)
  return _internal_left_img_x();
}
inline void RobotObservedMotion::_internal_set_left_img_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  left_img_x_ = value;
}
inline void RobotObservedMotion::set_left_img_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_left_img_x(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.left_img_x)
}

// int32 left_img_y = 16;
inline void RobotObservedMotion::clear_left_img_y() {
  left_img_y_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::_internal_left_img_y() const {
  return left_img_y_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::left_img_y() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.left_img_y)
  return _internal_left_img_y();
}
inline void RobotObservedMotion::_internal_set_left_img_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  left_img_y_ = value;
}
inline void RobotObservedMotion::set_left_img_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_left_img_y(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.left_img_y)
}

// float right_img_area = 17;
inline void RobotObservedMotion::clear_right_img_area() {
  right_img_area_ = 0;
}
inline float RobotObservedMotion::_internal_right_img_area() const {
  return right_img_area_;
}
inline float RobotObservedMotion::right_img_area() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.right_img_area)
  return _internal_right_img_area();
}
inline void RobotObservedMotion::_internal_set_right_img_area(float value) {
  
  right_img_area_ = value;
}
inline void RobotObservedMotion::set_right_img_area(float value) {
  _internal_set_right_img_area(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.right_img_area)
}

// int32 right_img_x = 18;
inline void RobotObservedMotion::clear_right_img_x() {
  right_img_x_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::_internal_right_img_x() const {
  return right_img_x_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::right_img_x() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.right_img_x)
  return _internal_right_img_x();
}
inline void RobotObservedMotion::_internal_set_right_img_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  right_img_x_ = value;
}
inline void RobotObservedMotion::set_right_img_x(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_right_img_x(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.right_img_x)
}

// int32 right_img_y = 19;
inline void RobotObservedMotion::clear_right_img_y() {
  right_img_y_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::_internal_right_img_y() const {
  return right_img_y_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedMotion::right_img_y() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedMotion.right_img_y)
  return _internal_right_img_y();
}
inline void RobotObservedMotion::_internal_set_right_img_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  right_img_y_ = value;
}
inline void RobotObservedMotion::set_right_img_y(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_right_img_y(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedMotion.right_img_y)
}

// -------------------------------------------------------------------

// RobotErasedEnrolledFace

// int32 face_id = 1;
inline void RobotErasedEnrolledFace::clear_face_id() {
  face_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotErasedEnrolledFace::_internal_face_id() const {
  return face_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotErasedEnrolledFace::face_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotErasedEnrolledFace.face_id)
  return _internal_face_id();
}
inline void RobotErasedEnrolledFace::_internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  face_id_ = value;
}
inline void RobotErasedEnrolledFace::set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_face_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotErasedEnrolledFace.face_id)
}

// string name = 2;
inline void RobotErasedEnrolledFace::clear_name() {
  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& RobotErasedEnrolledFace::name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotErasedEnrolledFace.name)
  return _internal_name();
}
inline void RobotErasedEnrolledFace::set_name(const std::string& value) {
  _internal_set_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotErasedEnrolledFace.name)
}
inline std::string* RobotErasedEnrolledFace::mutable_name() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotErasedEnrolledFace.name)
  return _internal_mutable_name();
}
inline const std::string& RobotErasedEnrolledFace::_internal_name() const {
  return name_.Get();
}
inline void RobotErasedEnrolledFace::_internal_set_name(const std::string& value) {
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void RobotErasedEnrolledFace::set_name(std::string&& value) {
  
  name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.RobotErasedEnrolledFace.name)
}
inline void RobotErasedEnrolledFace::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.RobotErasedEnrolledFace.name)
}
inline void RobotErasedEnrolledFace::set_name(const char* value,
    size_t size) {
  
  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.RobotErasedEnrolledFace.name)
}
inline std::string* RobotErasedEnrolledFace::_internal_mutable_name() {
  
  return name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* RobotErasedEnrolledFace::release_name() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotErasedEnrolledFace.name)
  return name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void RobotErasedEnrolledFace::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotErasedEnrolledFace.name)
}
inline std::string* RobotErasedEnrolledFace::unsafe_arena_release_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.RobotErasedEnrolledFace.name)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void RobotErasedEnrolledFace::unsafe_arena_set_allocated_name(
    std::string* name) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (name != nullptr) {
    
  } else {
    
  }
  name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      name, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotErasedEnrolledFace.name)
}

// -------------------------------------------------------------------

// UnexpectedMovement

// uint32 timestamp = 1;
inline void UnexpectedMovement::clear_timestamp() {
  timestamp_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UnexpectedMovement::_internal_timestamp() const {
  return timestamp_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UnexpectedMovement::timestamp() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UnexpectedMovement.timestamp)
  return _internal_timestamp();
}
inline void UnexpectedMovement::_internal_set_timestamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  timestamp_ = value;
}
inline void UnexpectedMovement::set_timestamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_timestamp(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UnexpectedMovement.timestamp)
}

// .Anki.Vector.external_interface.UnexpectedMovementType movement_type = 2;
inline void UnexpectedMovement::clear_movement_type() {
  movement_type_ = 0;
}
inline ::Anki::Vector::external_interface::UnexpectedMovementType UnexpectedMovement::_internal_movement_type() const {
  return static_cast< ::Anki::Vector::external_interface::UnexpectedMovementType >(movement_type_);
}
inline ::Anki::Vector::external_interface::UnexpectedMovementType UnexpectedMovement::movement_type() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UnexpectedMovement.movement_type)
  return _internal_movement_type();
}
inline void UnexpectedMovement::_internal_set_movement_type(::Anki::Vector::external_interface::UnexpectedMovementType value) {
  
  movement_type_ = value;
}
inline void UnexpectedMovement::set_movement_type(::Anki::Vector::external_interface::UnexpectedMovementType value) {
  _internal_set_movement_type(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UnexpectedMovement.movement_type)
}

// .Anki.Vector.external_interface.UnexpectedMovementSide movement_side = 3;
inline void UnexpectedMovement::clear_movement_side() {
  movement_side_ = 0;
}
inline ::Anki::Vector::external_interface::UnexpectedMovementSide UnexpectedMovement::_internal_movement_side() const {
  return static_cast< ::Anki::Vector::external_interface::UnexpectedMovementSide >(movement_side_);
}
inline ::Anki::Vector::external_interface::UnexpectedMovementSide UnexpectedMovement::movement_side() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UnexpectedMovement.movement_side)
  return _internal_movement_side();
}
inline void UnexpectedMovement::_internal_set_movement_side(::Anki::Vector::external_interface::UnexpectedMovementSide value) {
  
  movement_side_ = value;
}
inline void UnexpectedMovement::set_movement_side(::Anki::Vector::external_interface::UnexpectedMovementSide value) {
  _internal_set_movement_side(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UnexpectedMovement.movement_side)
}

// -------------------------------------------------------------------

// RobotObservedFace

// int32 face_id = 1;
inline void RobotObservedFace::clear_face_id() {
  face_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedFace::_internal_face_id() const {
  return face_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotObservedFace::face_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedFace.face_id)
  return _internal_face_id();
}
inline void RobotObservedFace::_internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  face_id_ = value;
}
inline void RobotObservedFace::set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_face_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedFace.face_id)
}

// uint32 timestamp = 2;
inline void RobotObservedFace::clear_timestamp() {
  timestamp_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RobotObservedFace::_internal_timestamp() const {
  return timestamp_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RobotObservedFace::timestamp() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedFace.timestamp)
  return _internal_timestamp();
}
inline void RobotObservedFace::_internal_set_timestamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  timestamp_ = value;
}
inline void RobotObservedFace::set_timestamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_timestamp(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedFace.timestamp)
}

// .Anki.Vector.external_interface.PoseStruct pose = 3;
inline bool RobotObservedFace::_internal_has_pose() const {
  return this != internal_default_instance() && pose_ != nullptr;
}
inline bool RobotObservedFace::has_pose() const {
  return _internal_has_pose();
}
inline void RobotObservedFace::clear_pose() {
  if (GetArena() == nullptr && pose_ != nullptr) {
    delete pose_;
  }
  pose_ = nullptr;
}
inline const ::Anki::Vector::external_interface::PoseStruct& RobotObservedFace::_internal_pose() const {
  const ::Anki::Vector::external_interface::PoseStruct* p = pose_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::PoseStruct*>(
      &::Anki::Vector::external_interface::_PoseStruct_default_instance_);
}
inline const ::Anki::Vector::external_interface::PoseStruct& RobotObservedFace::pose() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedFace.pose)
  return _internal_pose();
}
inline void RobotObservedFace::unsafe_arena_set_allocated_pose(
    ::Anki::Vector::external_interface::PoseStruct* pose) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pose_);
  }
  pose_ = pose;
  if (pose) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotObservedFace.pose)
}
inline ::Anki::Vector::external_interface::PoseStruct* RobotObservedFace::release_pose() {
  auto temp = unsafe_arena_release_pose();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::PoseStruct* RobotObservedFace::unsafe_arena_release_pose() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotObservedFace.pose)
  
  ::Anki::Vector::external_interface::PoseStruct* temp = pose_;
  pose_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::PoseStruct* RobotObservedFace::_internal_mutable_pose() {
  
  if (pose_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::PoseStruct>(GetArena());
    pose_ = p;
  }
  return pose_;
}
inline ::Anki::Vector::external_interface::PoseStruct* RobotObservedFace::mutable_pose() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotObservedFace.pose)
  return _internal_mutable_pose();
}
inline void RobotObservedFace::set_allocated_pose(::Anki::Vector::external_interface::PoseStruct* pose) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete pose_;
  }
  if (pose) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(pose);
    if (message_arena != submessage_arena) {
      pose = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, pose, submessage_arena);
    }
    
  } else {
    
  }
  pose_ = pose;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotObservedFace.pose)
}

// .Anki.Vector.external_interface.CladRect img_rect = 4;
inline bool RobotObservedFace::_internal_has_img_rect() const {
  return this != internal_default_instance() && img_rect_ != nullptr;
}
inline bool RobotObservedFace::has_img_rect() const {
  return _internal_has_img_rect();
}
inline void RobotObservedFace::clear_img_rect() {
  if (GetArena() == nullptr && img_rect_ != nullptr) {
    delete img_rect_;
  }
  img_rect_ = nullptr;
}
inline const ::Anki::Vector::external_interface::CladRect& RobotObservedFace::_internal_img_rect() const {
  const ::Anki::Vector::external_interface::CladRect* p = img_rect_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::CladRect*>(
      &::Anki::Vector::external_interface::_CladRect_default_instance_);
}
inline const ::Anki::Vector::external_interface::CladRect& RobotObservedFace::img_rect() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedFace.img_rect)
  return _internal_img_rect();
}
inline void RobotObservedFace::unsafe_arena_set_allocated_img_rect(
    ::Anki::Vector::external_interface::CladRect* img_rect) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(img_rect_);
  }
  img_rect_ = img_rect;
  if (img_rect) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotObservedFace.img_rect)
}
inline ::Anki::Vector::external_interface::CladRect* RobotObservedFace::release_img_rect() {
  auto temp = unsafe_arena_release_img_rect();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::CladRect* RobotObservedFace::unsafe_arena_release_img_rect() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotObservedFace.img_rect)
  
  ::Anki::Vector::external_interface::CladRect* temp = img_rect_;
  img_rect_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::CladRect* RobotObservedFace::_internal_mutable_img_rect() {
  
  if (img_rect_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::CladRect>(GetArena());
    img_rect_ = p;
  }
  return img_rect_;
}
inline ::Anki::Vector::external_interface::CladRect* RobotObservedFace::mutable_img_rect() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotObservedFace.img_rect)
  return _internal_mutable_img_rect();
}
inline void RobotObservedFace::set_allocated_img_rect(::Anki::Vector::external_interface::CladRect* img_rect) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete img_rect_;
  }
  if (img_rect) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(img_rect);
    if (message_arena != submessage_arena) {
      img_rect = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, img_rect, submessage_arena);
    }
    
  } else {
    
  }
  img_rect_ = img_rect;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotObservedFace.img_rect)
}

// string name = 5;
inline void RobotObservedFace::clear_name() {
  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& RobotObservedFace::name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedFace.name)
  return _internal_name();
}
inline void RobotObservedFace::set_name(const std::string& value) {
  _internal_set_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedFace.name)
}
inline std::string* RobotObservedFace::mutable_name() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotObservedFace.name)
  return _internal_mutable_name();
}
inline const std::string& RobotObservedFace::_internal_name() const {
  return name_.Get();
}
inline void RobotObservedFace::_internal_set_name(const std::string& value) {
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void RobotObservedFace::set_name(std::string&& value) {
  
  name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.RobotObservedFace.name)
}
inline void RobotObservedFace::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.RobotObservedFace.name)
}
inline void RobotObservedFace::set_name(const char* value,
    size_t size) {
  
  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.RobotObservedFace.name)
}
inline std::string* RobotObservedFace::_internal_mutable_name() {
  
  return name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* RobotObservedFace::release_name() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotObservedFace.name)
  return name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void RobotObservedFace::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotObservedFace.name)
}
inline std::string* RobotObservedFace::unsafe_arena_release_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.RobotObservedFace.name)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void RobotObservedFace::unsafe_arena_set_allocated_name(
    std::string* name) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (name != nullptr) {
    
  } else {
    
  }
  name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      name, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotObservedFace.name)
}

// .Anki.Vector.external_interface.FacialExpression expression = 6;
inline void RobotObservedFace::clear_expression() {
  expression_ = 0;
}
inline ::Anki::Vector::external_interface::FacialExpression RobotObservedFace::_internal_expression() const {
  return static_cast< ::Anki::Vector::external_interface::FacialExpression >(expression_);
}
inline ::Anki::Vector::external_interface::FacialExpression RobotObservedFace::expression() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedFace.expression)
  return _internal_expression();
}
inline void RobotObservedFace::_internal_set_expression(::Anki::Vector::external_interface::FacialExpression value) {
  
  expression_ = value;
}
inline void RobotObservedFace::set_expression(::Anki::Vector::external_interface::FacialExpression value) {
  _internal_set_expression(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedFace.expression)
}

// repeated uint32 expression_values = 7;
inline int RobotObservedFace::_internal_expression_values_size() const {
  return expression_values_.size();
}
inline int RobotObservedFace::expression_values_size() const {
  return _internal_expression_values_size();
}
inline void RobotObservedFace::clear_expression_values() {
  expression_values_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RobotObservedFace::_internal_expression_values(int index) const {
  return expression_values_.Get(index);
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RobotObservedFace::expression_values(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedFace.expression_values)
  return _internal_expression_values(index);
}
inline void RobotObservedFace::set_expression_values(int index, ::PROTOBUF_NAMESPACE_ID::uint32 value) {
  expression_values_.Set(index, value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotObservedFace.expression_values)
}
inline void RobotObservedFace::_internal_add_expression_values(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  expression_values_.Add(value);
}
inline void RobotObservedFace::add_expression_values(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_add_expression_values(value);
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.RobotObservedFace.expression_values)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >&
RobotObservedFace::_internal_expression_values() const {
  return expression_values_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >&
RobotObservedFace::expression_values() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.RobotObservedFace.expression_values)
  return _internal_expression_values();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >*
RobotObservedFace::_internal_mutable_expression_values() {
  return &expression_values_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >*
RobotObservedFace::mutable_expression_values() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.RobotObservedFace.expression_values)
  return _internal_mutable_expression_values();
}

// repeated .Anki.Vector.external_interface.CladPoint left_eye = 8;
inline int RobotObservedFace::_internal_left_eye_size() const {
  return left_eye_.size();
}
inline int RobotObservedFace::left_eye_size() const {
  return _internal_left_eye_size();
}
inline void RobotObservedFace::clear_left_eye() {
  left_eye_.Clear();
}
inline ::Anki::Vector::external_interface::CladPoint* RobotObservedFace::mutable_left_eye(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotObservedFace.left_eye)
  return left_eye_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >*
RobotObservedFace::mutable_left_eye() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.RobotObservedFace.left_eye)
  return &left_eye_;
}
inline const ::Anki::Vector::external_interface::CladPoint& RobotObservedFace::_internal_left_eye(int index) const {
  return left_eye_.Get(index);
}
inline const ::Anki::Vector::external_interface::CladPoint& RobotObservedFace::left_eye(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedFace.left_eye)
  return _internal_left_eye(index);
}
inline ::Anki::Vector::external_interface::CladPoint* RobotObservedFace::_internal_add_left_eye() {
  return left_eye_.Add();
}
inline ::Anki::Vector::external_interface::CladPoint* RobotObservedFace::add_left_eye() {
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.RobotObservedFace.left_eye)
  return _internal_add_left_eye();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >&
RobotObservedFace::left_eye() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.RobotObservedFace.left_eye)
  return left_eye_;
}

// repeated .Anki.Vector.external_interface.CladPoint right_eye = 9;
inline int RobotObservedFace::_internal_right_eye_size() const {
  return right_eye_.size();
}
inline int RobotObservedFace::right_eye_size() const {
  return _internal_right_eye_size();
}
inline void RobotObservedFace::clear_right_eye() {
  right_eye_.Clear();
}
inline ::Anki::Vector::external_interface::CladPoint* RobotObservedFace::mutable_right_eye(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotObservedFace.right_eye)
  return right_eye_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >*
RobotObservedFace::mutable_right_eye() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.RobotObservedFace.right_eye)
  return &right_eye_;
}
inline const ::Anki::Vector::external_interface::CladPoint& RobotObservedFace::_internal_right_eye(int index) const {
  return right_eye_.Get(index);
}
inline const ::Anki::Vector::external_interface::CladPoint& RobotObservedFace::right_eye(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedFace.right_eye)
  return _internal_right_eye(index);
}
inline ::Anki::Vector::external_interface::CladPoint* RobotObservedFace::_internal_add_right_eye() {
  return right_eye_.Add();
}
inline ::Anki::Vector::external_interface::CladPoint* RobotObservedFace::add_right_eye() {
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.RobotObservedFace.right_eye)
  return _internal_add_right_eye();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >&
RobotObservedFace::right_eye() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.RobotObservedFace.right_eye)
  return right_eye_;
}

// repeated .Anki.Vector.external_interface.CladPoint nose = 10;
inline int RobotObservedFace::_internal_nose_size() const {
  return nose_.size();
}
inline int RobotObservedFace::nose_size() const {
  return _internal_nose_size();
}
inline void RobotObservedFace::clear_nose() {
  nose_.Clear();
}
inline ::Anki::Vector::external_interface::CladPoint* RobotObservedFace::mutable_nose(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotObservedFace.nose)
  return nose_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >*
RobotObservedFace::mutable_nose() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.RobotObservedFace.nose)
  return &nose_;
}
inline const ::Anki::Vector::external_interface::CladPoint& RobotObservedFace::_internal_nose(int index) const {
  return nose_.Get(index);
}
inline const ::Anki::Vector::external_interface::CladPoint& RobotObservedFace::nose(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedFace.nose)
  return _internal_nose(index);
}
inline ::Anki::Vector::external_interface::CladPoint* RobotObservedFace::_internal_add_nose() {
  return nose_.Add();
}
inline ::Anki::Vector::external_interface::CladPoint* RobotObservedFace::add_nose() {
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.RobotObservedFace.nose)
  return _internal_add_nose();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >&
RobotObservedFace::nose() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.RobotObservedFace.nose)
  return nose_;
}

// repeated .Anki.Vector.external_interface.CladPoint mouth = 11;
inline int RobotObservedFace::_internal_mouth_size() const {
  return mouth_.size();
}
inline int RobotObservedFace::mouth_size() const {
  return _internal_mouth_size();
}
inline void RobotObservedFace::clear_mouth() {
  mouth_.Clear();
}
inline ::Anki::Vector::external_interface::CladPoint* RobotObservedFace::mutable_mouth(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotObservedFace.mouth)
  return mouth_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >*
RobotObservedFace::mutable_mouth() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.RobotObservedFace.mouth)
  return &mouth_;
}
inline const ::Anki::Vector::external_interface::CladPoint& RobotObservedFace::_internal_mouth(int index) const {
  return mouth_.Get(index);
}
inline const ::Anki::Vector::external_interface::CladPoint& RobotObservedFace::mouth(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotObservedFace.mouth)
  return _internal_mouth(index);
}
inline ::Anki::Vector::external_interface::CladPoint* RobotObservedFace::_internal_add_mouth() {
  return mouth_.Add();
}
inline ::Anki::Vector::external_interface::CladPoint* RobotObservedFace::add_mouth() {
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.RobotObservedFace.mouth)
  return _internal_add_mouth();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::CladPoint >&
RobotObservedFace::mouth() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.RobotObservedFace.mouth)
  return mouth_;
}

// -------------------------------------------------------------------

// RobotChangedObservedFaceID

// int32 old_id = 1;
inline void RobotChangedObservedFaceID::clear_old_id() {
  old_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotChangedObservedFaceID::_internal_old_id() const {
  return old_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotChangedObservedFaceID::old_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotChangedObservedFaceID.old_id)
  return _internal_old_id();
}
inline void RobotChangedObservedFaceID::_internal_set_old_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  old_id_ = value;
}
inline void RobotChangedObservedFaceID::set_old_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_old_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotChangedObservedFaceID.old_id)
}

// int32 new_id = 2;
inline void RobotChangedObservedFaceID::clear_new_id() {
  new_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotChangedObservedFaceID::_internal_new_id() const {
  return new_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotChangedObservedFaceID::new_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotChangedObservedFaceID.new_id)
  return _internal_new_id();
}
inline void RobotChangedObservedFaceID::_internal_set_new_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  new_id_ = value;
}
inline void RobotChangedObservedFaceID::set_new_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_new_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotChangedObservedFaceID.new_id)
}

// -------------------------------------------------------------------

// FaceEnrollmentCompleted

// .Anki.Vector.external_interface.FaceEnrollmentResult result = 1;
inline void FaceEnrollmentCompleted::clear_result() {
  result_ = 0;
}
inline ::Anki::Vector::external_interface::FaceEnrollmentResult FaceEnrollmentCompleted::_internal_result() const {
  return static_cast< ::Anki::Vector::external_interface::FaceEnrollmentResult >(result_);
}
inline ::Anki::Vector::external_interface::FaceEnrollmentResult FaceEnrollmentCompleted::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FaceEnrollmentCompleted.result)
  return _internal_result();
}
inline void FaceEnrollmentCompleted::_internal_set_result(::Anki::Vector::external_interface::FaceEnrollmentResult value) {
  
  result_ = value;
}
inline void FaceEnrollmentCompleted::set_result(::Anki::Vector::external_interface::FaceEnrollmentResult value) {
  _internal_set_result(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FaceEnrollmentCompleted.result)
}

// int32 face_id = 2;
inline void FaceEnrollmentCompleted::clear_face_id() {
  face_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 FaceEnrollmentCompleted::_internal_face_id() const {
  return face_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 FaceEnrollmentCompleted::face_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FaceEnrollmentCompleted.face_id)
  return _internal_face_id();
}
inline void FaceEnrollmentCompleted::_internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  face_id_ = value;
}
inline void FaceEnrollmentCompleted::set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_face_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FaceEnrollmentCompleted.face_id)
}

// string name = 3;
inline void FaceEnrollmentCompleted::clear_name() {
  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& FaceEnrollmentCompleted::name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FaceEnrollmentCompleted.name)
  return _internal_name();
}
inline void FaceEnrollmentCompleted::set_name(const std::string& value) {
  _internal_set_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FaceEnrollmentCompleted.name)
}
inline std::string* FaceEnrollmentCompleted::mutable_name() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.FaceEnrollmentCompleted.name)
  return _internal_mutable_name();
}
inline const std::string& FaceEnrollmentCompleted::_internal_name() const {
  return name_.Get();
}
inline void FaceEnrollmentCompleted::_internal_set_name(const std::string& value) {
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void FaceEnrollmentCompleted::set_name(std::string&& value) {
  
  name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.FaceEnrollmentCompleted.name)
}
inline void FaceEnrollmentCompleted::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.FaceEnrollmentCompleted.name)
}
inline void FaceEnrollmentCompleted::set_name(const char* value,
    size_t size) {
  
  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.FaceEnrollmentCompleted.name)
}
inline std::string* FaceEnrollmentCompleted::_internal_mutable_name() {
  
  return name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* FaceEnrollmentCompleted::release_name() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.FaceEnrollmentCompleted.name)
  return name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void FaceEnrollmentCompleted::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.FaceEnrollmentCompleted.name)
}
inline std::string* FaceEnrollmentCompleted::unsafe_arena_release_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.FaceEnrollmentCompleted.name)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void FaceEnrollmentCompleted::unsafe_arena_set_allocated_name(
    std::string* name) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (name != nullptr) {
    
  } else {
    
  }
  name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      name, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.FaceEnrollmentCompleted.name)
}

// -------------------------------------------------------------------

// CancelFaceEnrollmentRequest

// -------------------------------------------------------------------

// CancelFaceEnrollmentResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool CancelFaceEnrollmentResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool CancelFaceEnrollmentResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& CancelFaceEnrollmentResponse::_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& CancelFaceEnrollmentResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CancelFaceEnrollmentResponse.status)
  return _internal_status();
}
inline void CancelFaceEnrollmentResponse::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.CancelFaceEnrollmentResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* CancelFaceEnrollmentResponse::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* CancelFaceEnrollmentResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.CancelFaceEnrollmentResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* CancelFaceEnrollmentResponse::_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* CancelFaceEnrollmentResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.CancelFaceEnrollmentResponse.status)
  return _internal_mutable_status();
}
inline void CancelFaceEnrollmentResponse::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.CancelFaceEnrollmentResponse.status)
}

// -------------------------------------------------------------------

// RequestEnrolledNamesRequest

// -------------------------------------------------------------------

// LoadedKnownFace

// int64 seconds_since_first_enrolled = 1;
inline void LoadedKnownFace::clear_seconds_since_first_enrolled() {
  seconds_since_first_enrolled_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 LoadedKnownFace::_internal_seconds_since_first_enrolled() const {
  return seconds_since_first_enrolled_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 LoadedKnownFace::seconds_since_first_enrolled() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.LoadedKnownFace.seconds_since_first_enrolled)
  return _internal_seconds_since_first_enrolled();
}
inline void LoadedKnownFace::_internal_set_seconds_since_first_enrolled(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  seconds_since_first_enrolled_ = value;
}
inline void LoadedKnownFace::set_seconds_since_first_enrolled(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_seconds_since_first_enrolled(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.LoadedKnownFace.seconds_since_first_enrolled)
}

// int64 seconds_since_last_updated = 2;
inline void LoadedKnownFace::clear_seconds_since_last_updated() {
  seconds_since_last_updated_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 LoadedKnownFace::_internal_seconds_since_last_updated() const {
  return seconds_since_last_updated_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 LoadedKnownFace::seconds_since_last_updated() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.LoadedKnownFace.seconds_since_last_updated)
  return _internal_seconds_since_last_updated();
}
inline void LoadedKnownFace::_internal_set_seconds_since_last_updated(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  seconds_since_last_updated_ = value;
}
inline void LoadedKnownFace::set_seconds_since_last_updated(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_seconds_since_last_updated(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.LoadedKnownFace.seconds_since_last_updated)
}

// int64 seconds_since_last_seen = 3;
inline void LoadedKnownFace::clear_seconds_since_last_seen() {
  seconds_since_last_seen_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 LoadedKnownFace::_internal_seconds_since_last_seen() const {
  return seconds_since_last_seen_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 LoadedKnownFace::seconds_since_last_seen() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.LoadedKnownFace.seconds_since_last_seen)
  return _internal_seconds_since_last_seen();
}
inline void LoadedKnownFace::_internal_set_seconds_since_last_seen(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  seconds_since_last_seen_ = value;
}
inline void LoadedKnownFace::set_seconds_since_last_seen(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_seconds_since_last_seen(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.LoadedKnownFace.seconds_since_last_seen)
}

// int64 last_seen_seconds_since_epoch = 4;
inline void LoadedKnownFace::clear_last_seen_seconds_since_epoch() {
  last_seen_seconds_since_epoch_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 LoadedKnownFace::_internal_last_seen_seconds_since_epoch() const {
  return last_seen_seconds_since_epoch_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 LoadedKnownFace::last_seen_seconds_since_epoch() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.LoadedKnownFace.last_seen_seconds_since_epoch)
  return _internal_last_seen_seconds_since_epoch();
}
inline void LoadedKnownFace::_internal_set_last_seen_seconds_since_epoch(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  last_seen_seconds_since_epoch_ = value;
}
inline void LoadedKnownFace::set_last_seen_seconds_since_epoch(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_last_seen_seconds_since_epoch(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.LoadedKnownFace.last_seen_seconds_since_epoch)
}

// int32 face_id = 5;
inline void LoadedKnownFace::clear_face_id() {
  face_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 LoadedKnownFace::_internal_face_id() const {
  return face_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 LoadedKnownFace::face_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.LoadedKnownFace.face_id)
  return _internal_face_id();
}
inline void LoadedKnownFace::_internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  face_id_ = value;
}
inline void LoadedKnownFace::set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_face_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.LoadedKnownFace.face_id)
}

// string name = 6;
inline void LoadedKnownFace::clear_name() {
  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& LoadedKnownFace::name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.LoadedKnownFace.name)
  return _internal_name();
}
inline void LoadedKnownFace::set_name(const std::string& value) {
  _internal_set_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.LoadedKnownFace.name)
}
inline std::string* LoadedKnownFace::mutable_name() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.LoadedKnownFace.name)
  return _internal_mutable_name();
}
inline const std::string& LoadedKnownFace::_internal_name() const {
  return name_.Get();
}
inline void LoadedKnownFace::_internal_set_name(const std::string& value) {
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void LoadedKnownFace::set_name(std::string&& value) {
  
  name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.LoadedKnownFace.name)
}
inline void LoadedKnownFace::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.LoadedKnownFace.name)
}
inline void LoadedKnownFace::set_name(const char* value,
    size_t size) {
  
  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.LoadedKnownFace.name)
}
inline std::string* LoadedKnownFace::_internal_mutable_name() {
  
  return name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* LoadedKnownFace::release_name() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.LoadedKnownFace.name)
  return name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void LoadedKnownFace::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.LoadedKnownFace.name)
}
inline std::string* LoadedKnownFace::unsafe_arena_release_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.LoadedKnownFace.name)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void LoadedKnownFace::unsafe_arena_set_allocated_name(
    std::string* name) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (name != nullptr) {
    
  } else {
    
  }
  name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      name, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.LoadedKnownFace.name)
}

// -------------------------------------------------------------------

// RobotRenamedEnrolledFace

// int32 face_id = 1;
inline void RobotRenamedEnrolledFace::clear_face_id() {
  face_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotRenamedEnrolledFace::_internal_face_id() const {
  return face_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RobotRenamedEnrolledFace::face_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotRenamedEnrolledFace.face_id)
  return _internal_face_id();
}
inline void RobotRenamedEnrolledFace::_internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  face_id_ = value;
}
inline void RobotRenamedEnrolledFace::set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_face_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotRenamedEnrolledFace.face_id)
}

// string name = 2;
inline void RobotRenamedEnrolledFace::clear_name() {
  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& RobotRenamedEnrolledFace::name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotRenamedEnrolledFace.name)
  return _internal_name();
}
inline void RobotRenamedEnrolledFace::set_name(const std::string& value) {
  _internal_set_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RobotRenamedEnrolledFace.name)
}
inline std::string* RobotRenamedEnrolledFace::mutable_name() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotRenamedEnrolledFace.name)
  return _internal_mutable_name();
}
inline const std::string& RobotRenamedEnrolledFace::_internal_name() const {
  return name_.Get();
}
inline void RobotRenamedEnrolledFace::_internal_set_name(const std::string& value) {
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void RobotRenamedEnrolledFace::set_name(std::string&& value) {
  
  name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.RobotRenamedEnrolledFace.name)
}
inline void RobotRenamedEnrolledFace::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.RobotRenamedEnrolledFace.name)
}
inline void RobotRenamedEnrolledFace::set_name(const char* value,
    size_t size) {
  
  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.RobotRenamedEnrolledFace.name)
}
inline std::string* RobotRenamedEnrolledFace::_internal_mutable_name() {
  
  return name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* RobotRenamedEnrolledFace::release_name() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RobotRenamedEnrolledFace.name)
  return name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void RobotRenamedEnrolledFace::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RobotRenamedEnrolledFace.name)
}
inline std::string* RobotRenamedEnrolledFace::unsafe_arena_release_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.RobotRenamedEnrolledFace.name)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void RobotRenamedEnrolledFace::unsafe_arena_set_allocated_name(
    std::string* name) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (name != nullptr) {
    
  } else {
    
  }
  name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      name, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RobotRenamedEnrolledFace.name)
}

// -------------------------------------------------------------------

// RequestEnrolledNamesResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool RequestEnrolledNamesResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool RequestEnrolledNamesResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& RequestEnrolledNamesResponse::_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& RequestEnrolledNamesResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RequestEnrolledNamesResponse.status)
  return _internal_status();
}
inline void RequestEnrolledNamesResponse::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.RequestEnrolledNamesResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* RequestEnrolledNamesResponse::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* RequestEnrolledNamesResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RequestEnrolledNamesResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* RequestEnrolledNamesResponse::_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* RequestEnrolledNamesResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RequestEnrolledNamesResponse.status)
  return _internal_mutable_status();
}
inline void RequestEnrolledNamesResponse::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.RequestEnrolledNamesResponse.status)
}

// repeated .Anki.Vector.external_interface.LoadedKnownFace faces = 2;
inline int RequestEnrolledNamesResponse::_internal_faces_size() const {
  return faces_.size();
}
inline int RequestEnrolledNamesResponse::faces_size() const {
  return _internal_faces_size();
}
inline void RequestEnrolledNamesResponse::clear_faces() {
  faces_.Clear();
}
inline ::Anki::Vector::external_interface::LoadedKnownFace* RequestEnrolledNamesResponse::mutable_faces(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RequestEnrolledNamesResponse.faces)
  return faces_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::LoadedKnownFace >*
RequestEnrolledNamesResponse::mutable_faces() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.RequestEnrolledNamesResponse.faces)
  return &faces_;
}
inline const ::Anki::Vector::external_interface::LoadedKnownFace& RequestEnrolledNamesResponse::_internal_faces(int index) const {
  return faces_.Get(index);
}
inline const ::Anki::Vector::external_interface::LoadedKnownFace& RequestEnrolledNamesResponse::faces(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RequestEnrolledNamesResponse.faces)
  return _internal_faces(index);
}
inline ::Anki::Vector::external_interface::LoadedKnownFace* RequestEnrolledNamesResponse::_internal_add_faces() {
  return faces_.Add();
}
inline ::Anki::Vector::external_interface::LoadedKnownFace* RequestEnrolledNamesResponse::add_faces() {
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.RequestEnrolledNamesResponse.faces)
  return _internal_add_faces();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::LoadedKnownFace >&
RequestEnrolledNamesResponse::faces() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.RequestEnrolledNamesResponse.faces)
  return faces_;
}

// -------------------------------------------------------------------

// UpdateEnrolledFaceByIDRequest

// int32 face_id = 1;
inline void UpdateEnrolledFaceByIDRequest::clear_face_id() {
  face_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 UpdateEnrolledFaceByIDRequest::_internal_face_id() const {
  return face_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 UpdateEnrolledFaceByIDRequest::face_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.face_id)
  return _internal_face_id();
}
inline void UpdateEnrolledFaceByIDRequest::_internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  face_id_ = value;
}
inline void UpdateEnrolledFaceByIDRequest::set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_face_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.face_id)
}

// string old_name = 2;
inline void UpdateEnrolledFaceByIDRequest::clear_old_name() {
  old_name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UpdateEnrolledFaceByIDRequest::old_name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.old_name)
  return _internal_old_name();
}
inline void UpdateEnrolledFaceByIDRequest::set_old_name(const std::string& value) {
  _internal_set_old_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.old_name)
}
inline std::string* UpdateEnrolledFaceByIDRequest::mutable_old_name() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.old_name)
  return _internal_mutable_old_name();
}
inline const std::string& UpdateEnrolledFaceByIDRequest::_internal_old_name() const {
  return old_name_.Get();
}
inline void UpdateEnrolledFaceByIDRequest::_internal_set_old_name(const std::string& value) {
  
  old_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UpdateEnrolledFaceByIDRequest::set_old_name(std::string&& value) {
  
  old_name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.old_name)
}
inline void UpdateEnrolledFaceByIDRequest::set_old_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  old_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.old_name)
}
inline void UpdateEnrolledFaceByIDRequest::set_old_name(const char* value,
    size_t size) {
  
  old_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.UpdateEnrolledFaceByIDRequest.old_name)
}
inline std::string* UpdateEnrolledFaceByIDRequest::_internal_mutable_old_name() {
  
  return old_name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UpdateEnrolledFaceByIDRequest::release_old_name() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.old_name)
  return old_name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UpdateEnrolledFaceByIDRequest::set_allocated_old_name(std::string* old_name) {
  if (old_name != nullptr) {
    
  } else {
    
  }
  old_name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), old_name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.old_name)
}
inline std::string* UpdateEnrolledFaceByIDRequest::unsafe_arena_release_old_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.old_name)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return old_name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void UpdateEnrolledFaceByIDRequest::unsafe_arena_set_allocated_old_name(
    std::string* old_name) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (old_name != nullptr) {
    
  } else {
    
  }
  old_name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      old_name, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.old_name)
}

// string new_name = 3;
inline void UpdateEnrolledFaceByIDRequest::clear_new_name() {
  new_name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UpdateEnrolledFaceByIDRequest::new_name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.new_name)
  return _internal_new_name();
}
inline void UpdateEnrolledFaceByIDRequest::set_new_name(const std::string& value) {
  _internal_set_new_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.new_name)
}
inline std::string* UpdateEnrolledFaceByIDRequest::mutable_new_name() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.new_name)
  return _internal_mutable_new_name();
}
inline const std::string& UpdateEnrolledFaceByIDRequest::_internal_new_name() const {
  return new_name_.Get();
}
inline void UpdateEnrolledFaceByIDRequest::_internal_set_new_name(const std::string& value) {
  
  new_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UpdateEnrolledFaceByIDRequest::set_new_name(std::string&& value) {
  
  new_name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.new_name)
}
inline void UpdateEnrolledFaceByIDRequest::set_new_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  new_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.new_name)
}
inline void UpdateEnrolledFaceByIDRequest::set_new_name(const char* value,
    size_t size) {
  
  new_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.UpdateEnrolledFaceByIDRequest.new_name)
}
inline std::string* UpdateEnrolledFaceByIDRequest::_internal_mutable_new_name() {
  
  return new_name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UpdateEnrolledFaceByIDRequest::release_new_name() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.new_name)
  return new_name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UpdateEnrolledFaceByIDRequest::set_allocated_new_name(std::string* new_name) {
  if (new_name != nullptr) {
    
  } else {
    
  }
  new_name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), new_name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.new_name)
}
inline std::string* UpdateEnrolledFaceByIDRequest::unsafe_arena_release_new_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.new_name)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return new_name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void UpdateEnrolledFaceByIDRequest::unsafe_arena_set_allocated_new_name(
    std::string* new_name) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (new_name != nullptr) {
    
  } else {
    
  }
  new_name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      new_name, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.new_name)
}

// -------------------------------------------------------------------

// UpdateEnrolledFaceByIDResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool UpdateEnrolledFaceByIDResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool UpdateEnrolledFaceByIDResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& UpdateEnrolledFaceByIDResponse::_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& UpdateEnrolledFaceByIDResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateEnrolledFaceByIDResponse.status)
  return _internal_status();
}
inline void UpdateEnrolledFaceByIDResponse::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.UpdateEnrolledFaceByIDResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateEnrolledFaceByIDResponse::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* UpdateEnrolledFaceByIDResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UpdateEnrolledFaceByIDResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateEnrolledFaceByIDResponse::_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* UpdateEnrolledFaceByIDResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UpdateEnrolledFaceByIDResponse.status)
  return _internal_mutable_status();
}
inline void UpdateEnrolledFaceByIDResponse::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.UpdateEnrolledFaceByIDResponse.status)
}

// -------------------------------------------------------------------

// EraseEnrolledFaceByIDRequest

// int32 face_id = 1;
inline void EraseEnrolledFaceByIDRequest::clear_face_id() {
  face_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 EraseEnrolledFaceByIDRequest::_internal_face_id() const {
  return face_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 EraseEnrolledFaceByIDRequest::face_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest.face_id)
  return _internal_face_id();
}
inline void EraseEnrolledFaceByIDRequest::_internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  face_id_ = value;
}
inline void EraseEnrolledFaceByIDRequest::set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_face_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest.face_id)
}

// -------------------------------------------------------------------

// EraseEnrolledFaceByIDResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool EraseEnrolledFaceByIDResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool EraseEnrolledFaceByIDResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& EraseEnrolledFaceByIDResponse::_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& EraseEnrolledFaceByIDResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EraseEnrolledFaceByIDResponse.status)
  return _internal_status();
}
inline void EraseEnrolledFaceByIDResponse::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.EraseEnrolledFaceByIDResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* EraseEnrolledFaceByIDResponse::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* EraseEnrolledFaceByIDResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.EraseEnrolledFaceByIDResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* EraseEnrolledFaceByIDResponse::_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* EraseEnrolledFaceByIDResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.EraseEnrolledFaceByIDResponse.status)
  return _internal_mutable_status();
}
inline void EraseEnrolledFaceByIDResponse::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.EraseEnrolledFaceByIDResponse.status)
}

// -------------------------------------------------------------------

// EraseAllEnrolledFacesRequest

// -------------------------------------------------------------------

// EraseAllEnrolledFacesResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool EraseAllEnrolledFacesResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool EraseAllEnrolledFacesResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& EraseAllEnrolledFacesResponse::_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& EraseAllEnrolledFacesResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EraseAllEnrolledFacesResponse.status)
  return _internal_status();
}
inline void EraseAllEnrolledFacesResponse::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.EraseAllEnrolledFacesResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* EraseAllEnrolledFacesResponse::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* EraseAllEnrolledFacesResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.EraseAllEnrolledFacesResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* EraseAllEnrolledFacesResponse::_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* EraseAllEnrolledFacesResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.EraseAllEnrolledFacesResponse.status)
  return _internal_mutable_status();
}
inline void EraseAllEnrolledFacesResponse::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.EraseAllEnrolledFacesResponse.status)
}

// -------------------------------------------------------------------

// SetFaceToEnrollRequest

// string name = 1;
inline void SetFaceToEnrollRequest::clear_name() {
  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& SetFaceToEnrollRequest::name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetFaceToEnrollRequest.name)
  return _internal_name();
}
inline void SetFaceToEnrollRequest::set_name(const std::string& value) {
  _internal_set_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetFaceToEnrollRequest.name)
}
inline std::string* SetFaceToEnrollRequest::mutable_name() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SetFaceToEnrollRequest.name)
  return _internal_mutable_name();
}
inline const std::string& SetFaceToEnrollRequest::_internal_name() const {
  return name_.Get();
}
inline void SetFaceToEnrollRequest::_internal_set_name(const std::string& value) {
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void SetFaceToEnrollRequest::set_name(std::string&& value) {
  
  name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.SetFaceToEnrollRequest.name)
}
inline void SetFaceToEnrollRequest::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.SetFaceToEnrollRequest.name)
}
inline void SetFaceToEnrollRequest::set_name(const char* value,
    size_t size) {
  
  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.SetFaceToEnrollRequest.name)
}
inline std::string* SetFaceToEnrollRequest::_internal_mutable_name() {
  
  return name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* SetFaceToEnrollRequest::release_name() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SetFaceToEnrollRequest.name)
  return name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void SetFaceToEnrollRequest::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.SetFaceToEnrollRequest.name)
}
inline std::string* SetFaceToEnrollRequest::unsafe_arena_release_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.SetFaceToEnrollRequest.name)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void SetFaceToEnrollRequest::unsafe_arena_set_allocated_name(
    std::string* name) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (name != nullptr) {
    
  } else {
    
  }
  name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      name, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.SetFaceToEnrollRequest.name)
}

// int32 observed_id = 2;
inline void SetFaceToEnrollRequest::clear_observed_id() {
  observed_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SetFaceToEnrollRequest::_internal_observed_id() const {
  return observed_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SetFaceToEnrollRequest::observed_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetFaceToEnrollRequest.observed_id)
  return _internal_observed_id();
}
inline void SetFaceToEnrollRequest::_internal_set_observed_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  observed_id_ = value;
}
inline void SetFaceToEnrollRequest::set_observed_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_observed_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetFaceToEnrollRequest.observed_id)
}

// int32 save_id = 3;
inline void SetFaceToEnrollRequest::clear_save_id() {
  save_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SetFaceToEnrollRequest::_internal_save_id() const {
  return save_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SetFaceToEnrollRequest::save_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetFaceToEnrollRequest.save_id)
  return _internal_save_id();
}
inline void SetFaceToEnrollRequest::_internal_set_save_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  save_id_ = value;
}
inline void SetFaceToEnrollRequest::set_save_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_save_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetFaceToEnrollRequest.save_id)
}

// bool save_to_robot = 4;
inline void SetFaceToEnrollRequest::clear_save_to_robot() {
  save_to_robot_ = false;
}
inline bool SetFaceToEnrollRequest::_internal_save_to_robot() const {
  return save_to_robot_;
}
inline bool SetFaceToEnrollRequest::save_to_robot() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetFaceToEnrollRequest.save_to_robot)
  return _internal_save_to_robot();
}
inline void SetFaceToEnrollRequest::_internal_set_save_to_robot(bool value) {
  
  save_to_robot_ = value;
}
inline void SetFaceToEnrollRequest::set_save_to_robot(bool value) {
  _internal_set_save_to_robot(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetFaceToEnrollRequest.save_to_robot)
}

// bool say_name = 5;
inline void SetFaceToEnrollRequest::clear_say_name() {
  say_name_ = false;
}
inline bool SetFaceToEnrollRequest::_internal_say_name() const {
  return say_name_;
}
inline bool SetFaceToEnrollRequest::say_name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetFaceToEnrollRequest.say_name)
  return _internal_say_name();
}
inline void SetFaceToEnrollRequest::_internal_set_say_name(bool value) {
  
  say_name_ = value;
}
inline void SetFaceToEnrollRequest::set_say_name(bool value) {
  _internal_set_say_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetFaceToEnrollRequest.say_name)
}

// bool use_music = 6;
inline void SetFaceToEnrollRequest::clear_use_music() {
  use_music_ = false;
}
inline bool SetFaceToEnrollRequest::_internal_use_music() const {
  return use_music_;
}
inline bool SetFaceToEnrollRequest::use_music() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetFaceToEnrollRequest.use_music)
  return _internal_use_music();
}
inline void SetFaceToEnrollRequest::_internal_set_use_music(bool value) {
  
  use_music_ = value;
}
inline void SetFaceToEnrollRequest::set_use_music(bool value) {
  _internal_set_use_music(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetFaceToEnrollRequest.use_music)
}

// -------------------------------------------------------------------

// SetFaceToEnrollResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool SetFaceToEnrollResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool SetFaceToEnrollResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& SetFaceToEnrollResponse::_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& SetFaceToEnrollResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetFaceToEnrollResponse.status)
  return _internal_status();
}
inline void SetFaceToEnrollResponse::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.SetFaceToEnrollResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* SetFaceToEnrollResponse::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* SetFaceToEnrollResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SetFaceToEnrollResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* SetFaceToEnrollResponse::_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* SetFaceToEnrollResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SetFaceToEnrollResponse.status)
  return _internal_mutable_status();
}
inline void SetFaceToEnrollResponse::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.SetFaceToEnrollResponse.status)
}

// -------------------------------------------------------------------

// EnrollFaceRequest

// -------------------------------------------------------------------

// EnrollFaceResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool EnrollFaceResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool EnrollFaceResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& EnrollFaceResponse::_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& EnrollFaceResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnrollFaceResponse.status)
  return _internal_status();
}
inline void EnrollFaceResponse::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.EnrollFaceResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* EnrollFaceResponse::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* EnrollFaceResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.EnrollFaceResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* EnrollFaceResponse::_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* EnrollFaceResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.EnrollFaceResponse.status)
  return _internal_mutable_status();
}
inline void EnrollFaceResponse::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.EnrollFaceResponse.status)
}

// .Anki.Vector.external_interface.BehaviorResults result = 2;
inline void EnrollFaceResponse::clear_result() {
  result_ = 0;
}
inline ::Anki::Vector::external_interface::BehaviorResults EnrollFaceResponse::_internal_result() const {
  return static_cast< ::Anki::Vector::external_interface::BehaviorResults >(result_);
}
inline ::Anki::Vector::external_interface::BehaviorResults EnrollFaceResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnrollFaceResponse.result)
  return _internal_result();
}
inline void EnrollFaceResponse::_internal_set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  
  result_ = value;
}
inline void EnrollFaceResponse::set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  _internal_set_result(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.EnrollFaceResponse.result)
}

// -------------------------------------------------------------------

// DriveOffChargerRequest

// -------------------------------------------------------------------

// DriveOffChargerResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool DriveOffChargerResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool DriveOffChargerResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& DriveOffChargerResponse::_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& DriveOffChargerResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveOffChargerResponse.status)
  return _internal_status();
}
inline void DriveOffChargerResponse::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.DriveOffChargerResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* DriveOffChargerResponse::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* DriveOffChargerResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.DriveOffChargerResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* DriveOffChargerResponse::_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* DriveOffChargerResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.DriveOffChargerResponse.status)
  return _internal_mutable_status();
}
inline void DriveOffChargerResponse::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.DriveOffChargerResponse.status)
}

// .Anki.Vector.external_interface.BehaviorResults result = 2;
inline void DriveOffChargerResponse::clear_result() {
  result_ = 0;
}
inline ::Anki::Vector::external_interface::BehaviorResults DriveOffChargerResponse::_internal_result() const {
  return static_cast< ::Anki::Vector::external_interface::BehaviorResults >(result_);
}
inline ::Anki::Vector::external_interface::BehaviorResults DriveOffChargerResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveOffChargerResponse.result)
  return _internal_result();
}
inline void DriveOffChargerResponse::_internal_set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  
  result_ = value;
}
inline void DriveOffChargerResponse::set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  _internal_set_result(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DriveOffChargerResponse.result)
}

// -------------------------------------------------------------------

// DriveOnChargerRequest

// -------------------------------------------------------------------

// DriveOnChargerResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool DriveOnChargerResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool DriveOnChargerResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& DriveOnChargerResponse::_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& DriveOnChargerResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveOnChargerResponse.status)
  return _internal_status();
}
inline void DriveOnChargerResponse::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.DriveOnChargerResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* DriveOnChargerResponse::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* DriveOnChargerResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.DriveOnChargerResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* DriveOnChargerResponse::_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* DriveOnChargerResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.DriveOnChargerResponse.status)
  return _internal_mutable_status();
}
inline void DriveOnChargerResponse::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.DriveOnChargerResponse.status)
}

// .Anki.Vector.external_interface.BehaviorResults result = 2;
inline void DriveOnChargerResponse::clear_result() {
  result_ = 0;
}
inline ::Anki::Vector::external_interface::BehaviorResults DriveOnChargerResponse::_internal_result() const {
  return static_cast< ::Anki::Vector::external_interface::BehaviorResults >(result_);
}
inline ::Anki::Vector::external_interface::BehaviorResults DriveOnChargerResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveOnChargerResponse.result)
  return _internal_result();
}
inline void DriveOnChargerResponse::_internal_set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  
  result_ = value;
}
inline void DriveOnChargerResponse::set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  _internal_set_result(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DriveOnChargerResponse.result)
}

// -------------------------------------------------------------------

// FindFacesRequest

// -------------------------------------------------------------------

// FindFacesResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool FindFacesResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool FindFacesResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& FindFacesResponse::_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& FindFacesResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FindFacesResponse.status)
  return _internal_status();
}
inline void FindFacesResponse::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.FindFacesResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* FindFacesResponse::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* FindFacesResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.FindFacesResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* FindFacesResponse::_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* FindFacesResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.FindFacesResponse.status)
  return _internal_mutable_status();
}
inline void FindFacesResponse::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.FindFacesResponse.status)
}

// .Anki.Vector.external_interface.BehaviorResults result = 2;
inline void FindFacesResponse::clear_result() {
  result_ = 0;
}
inline ::Anki::Vector::external_interface::BehaviorResults FindFacesResponse::_internal_result() const {
  return static_cast< ::Anki::Vector::external_interface::BehaviorResults >(result_);
}
inline ::Anki::Vector::external_interface::BehaviorResults FindFacesResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FindFacesResponse.result)
  return _internal_result();
}
inline void FindFacesResponse::_internal_set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  
  result_ = value;
}
inline void FindFacesResponse::set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  _internal_set_result(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FindFacesResponse.result)
}

// -------------------------------------------------------------------

// LookAroundInPlaceRequest

// -------------------------------------------------------------------

// LookAroundInPlaceResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool LookAroundInPlaceResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool LookAroundInPlaceResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& LookAroundInPlaceResponse::_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& LookAroundInPlaceResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.LookAroundInPlaceResponse.status)
  return _internal_status();
}
inline void LookAroundInPlaceResponse::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.LookAroundInPlaceResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* LookAroundInPlaceResponse::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* LookAroundInPlaceResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.LookAroundInPlaceResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* LookAroundInPlaceResponse::_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* LookAroundInPlaceResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.LookAroundInPlaceResponse.status)
  return _internal_mutable_status();
}
inline void LookAroundInPlaceResponse::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.LookAroundInPlaceResponse.status)
}

// .Anki.Vector.external_interface.BehaviorResults result = 2;
inline void LookAroundInPlaceResponse::clear_result() {
  result_ = 0;
}
inline ::Anki::Vector::external_interface::BehaviorResults LookAroundInPlaceResponse::_internal_result() const {
  return static_cast< ::Anki::Vector::external_interface::BehaviorResults >(result_);
}
inline ::Anki::Vector::external_interface::BehaviorResults LookAroundInPlaceResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.LookAroundInPlaceResponse.result)
  return _internal_result();
}
inline void LookAroundInPlaceResponse::_internal_set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  
  result_ = value;
}
inline void LookAroundInPlaceResponse::set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  _internal_set_result(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.LookAroundInPlaceResponse.result)
}

// -------------------------------------------------------------------

// RollBlockRequest

// -------------------------------------------------------------------

// RollBlockResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool RollBlockResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool RollBlockResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& RollBlockResponse::_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& RollBlockResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RollBlockResponse.status)
  return _internal_status();
}
inline void RollBlockResponse::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.RollBlockResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* RollBlockResponse::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* RollBlockResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RollBlockResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* RollBlockResponse::_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* RollBlockResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RollBlockResponse.status)
  return _internal_mutable_status();
}
inline void RollBlockResponse::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.RollBlockResponse.status)
}

// .Anki.Vector.external_interface.BehaviorResults result = 2;
inline void RollBlockResponse::clear_result() {
  result_ = 0;
}
inline ::Anki::Vector::external_interface::BehaviorResults RollBlockResponse::_internal_result() const {
  return static_cast< ::Anki::Vector::external_interface::BehaviorResults >(result_);
}
inline ::Anki::Vector::external_interface::BehaviorResults RollBlockResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RollBlockResponse.result)
  return _internal_result();
}
inline void RollBlockResponse::_internal_set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  
  result_ = value;
}
inline void RollBlockResponse::set_result(::Anki::Vector::external_interface::BehaviorResults value) {
  _internal_set_result(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RollBlockResponse.result)
}

// -------------------------------------------------------------------

// WakeWordBegin

// -------------------------------------------------------------------

// WakeWordEnd

// bool intent_heard = 1;
inline void WakeWordEnd::clear_intent_heard() {
  intent_heard_ = false;
}
inline bool WakeWordEnd::_internal_intent_heard() const {
  return intent_heard_;
}
inline bool WakeWordEnd::intent_heard() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.WakeWordEnd.intent_heard)
  return _internal_intent_heard();
}
inline void WakeWordEnd::_internal_set_intent_heard(bool value) {
  
  intent_heard_ = value;
}
inline void WakeWordEnd::set_intent_heard(bool value) {
  _internal_set_intent_heard(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.WakeWordEnd.intent_heard)
}

// string intent_json = 2;
inline void WakeWordEnd::clear_intent_json() {
  intent_json_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& WakeWordEnd::intent_json() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.WakeWordEnd.intent_json)
  return _internal_intent_json();
}
inline void WakeWordEnd::set_intent_json(const std::string& value) {
  _internal_set_intent_json(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.WakeWordEnd.intent_json)
}
inline std::string* WakeWordEnd::mutable_intent_json() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.WakeWordEnd.intent_json)
  return _internal_mutable_intent_json();
}
inline const std::string& WakeWordEnd::_internal_intent_json() const {
  return intent_json_.Get();
}
inline void WakeWordEnd::_internal_set_intent_json(const std::string& value) {
  
  intent_json_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void WakeWordEnd::set_intent_json(std::string&& value) {
  
  intent_json_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.WakeWordEnd.intent_json)
}
inline void WakeWordEnd::set_intent_json(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  intent_json_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.WakeWordEnd.intent_json)
}
inline void WakeWordEnd::set_intent_json(const char* value,
    size_t size) {
  
  intent_json_.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.WakeWordEnd.intent_json)
}
inline std::string* WakeWordEnd::_internal_mutable_intent_json() {
  
  return intent_json_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* WakeWordEnd::release_intent_json() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.WakeWordEnd.intent_json)
  return intent_json_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void WakeWordEnd::set_allocated_intent_json(std::string* intent_json) {
  if (intent_json != nullptr) {
    
  } else {
    
  }
  intent_json_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), intent_json,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.WakeWordEnd.intent_json)
}
inline std::string* WakeWordEnd::unsafe_arena_release_intent_json() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.WakeWordEnd.intent_json)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return intent_json_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void WakeWordEnd::unsafe_arena_set_allocated_intent_json(
    std::string* intent_json) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (intent_json != nullptr) {
    
  } else {
    
  }
  intent_json_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      intent_json, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.WakeWordEnd.intent_json)
}

// -------------------------------------------------------------------

// UserIntent

// uint32 intent_id = 1;
inline void UserIntent::clear_intent_id() {
  intent_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UserIntent::_internal_intent_id() const {
  return intent_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 UserIntent::intent_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UserIntent.intent_id)
  return _internal_intent_id();
}
inline void UserIntent::_internal_set_intent_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  intent_id_ = value;
}
inline void UserIntent::set_intent_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_intent_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UserIntent.intent_id)
}

// string json_data = 2;
inline void UserIntent::clear_json_data() {
  json_data_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UserIntent::json_data() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UserIntent.json_data)
  return _internal_json_data();
}
inline void UserIntent::set_json_data(const std::string& value) {
  _internal_set_json_data(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UserIntent.json_data)
}
inline std::string* UserIntent::mutable_json_data() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UserIntent.json_data)
  return _internal_mutable_json_data();
}
inline const std::string& UserIntent::_internal_json_data() const {
  return json_data_.Get();
}
inline void UserIntent::_internal_set_json_data(const std::string& value) {
  
  json_data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UserIntent::set_json_data(std::string&& value) {
  
  json_data_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.UserIntent.json_data)
}
inline void UserIntent::set_json_data(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  json_data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.UserIntent.json_data)
}
inline void UserIntent::set_json_data(const char* value,
    size_t size) {
  
  json_data_.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.UserIntent.json_data)
}
inline std::string* UserIntent::_internal_mutable_json_data() {
  
  return json_data_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UserIntent::release_json_data() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UserIntent.json_data)
  return json_data_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UserIntent::set_allocated_json_data(std::string* json_data) {
  if (json_data != nullptr) {
    
  } else {
    
  }
  json_data_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), json_data,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UserIntent.json_data)
}
inline std::string* UserIntent::unsafe_arena_release_json_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.UserIntent.json_data)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return json_data_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void UserIntent::unsafe_arena_set_allocated_json_data(
    std::string* json_data) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (json_data != nullptr) {
    
  } else {
    
  }
  json_data_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      json_data, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UserIntent.json_data)
}

// -------------------------------------------------------------------

// PhotoInfo

// uint32 photo_id = 1;
inline void PhotoInfo::clear_photo_id() {
  photo_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PhotoInfo::_internal_photo_id() const {
  return photo_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PhotoInfo::photo_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PhotoInfo.photo_id)
  return _internal_photo_id();
}
inline void PhotoInfo::_internal_set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  photo_id_ = value;
}
inline void PhotoInfo::set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_photo_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PhotoInfo.photo_id)
}

// uint32 timestamp_utc = 2;
inline void PhotoInfo::clear_timestamp_utc() {
  timestamp_utc_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PhotoInfo::_internal_timestamp_utc() const {
  return timestamp_utc_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PhotoInfo::timestamp_utc() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PhotoInfo.timestamp_utc)
  return _internal_timestamp_utc();
}
inline void PhotoInfo::_internal_set_timestamp_utc(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  timestamp_utc_ = value;
}
inline void PhotoInfo::set_timestamp_utc(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_timestamp_utc(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PhotoInfo.timestamp_utc)
}

// bool photo_copied_to_app = 3;
inline void PhotoInfo::clear_photo_copied_to_app() {
  photo_copied_to_app_ = false;
}
inline bool PhotoInfo::_internal_photo_copied_to_app() const {
  return photo_copied_to_app_;
}
inline bool PhotoInfo::photo_copied_to_app() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PhotoInfo.photo_copied_to_app)
  return _internal_photo_copied_to_app();
}
inline void PhotoInfo::_internal_set_photo_copied_to_app(bool value) {
  
  photo_copied_to_app_ = value;
}
inline void PhotoInfo::set_photo_copied_to_app(bool value) {
  _internal_set_photo_copied_to_app(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PhotoInfo.photo_copied_to_app)
}

// bool thumb_copied_to_app = 4;
inline void PhotoInfo::clear_thumb_copied_to_app() {
  thumb_copied_to_app_ = false;
}
inline bool PhotoInfo::_internal_thumb_copied_to_app() const {
  return thumb_copied_to_app_;
}
inline bool PhotoInfo::thumb_copied_to_app() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PhotoInfo.thumb_copied_to_app)
  return _internal_thumb_copied_to_app();
}
inline void PhotoInfo::_internal_set_thumb_copied_to_app(bool value) {
  
  thumb_copied_to_app_ = value;
}
inline void PhotoInfo::set_thumb_copied_to_app(bool value) {
  _internal_set_thumb_copied_to_app(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PhotoInfo.thumb_copied_to_app)
}

// -------------------------------------------------------------------

// PhotosInfoRequest

// -------------------------------------------------------------------

// PhotosInfoResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool PhotosInfoResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool PhotosInfoResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& PhotosInfoResponse::_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& PhotosInfoResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PhotosInfoResponse.status)
  return _internal_status();
}
inline void PhotosInfoResponse::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.PhotosInfoResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* PhotosInfoResponse::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* PhotosInfoResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PhotosInfoResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* PhotosInfoResponse::_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* PhotosInfoResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PhotosInfoResponse.status)
  return _internal_mutable_status();
}
inline void PhotosInfoResponse::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.PhotosInfoResponse.status)
}

// repeated .Anki.Vector.external_interface.PhotoInfo photo_infos = 2;
inline int PhotosInfoResponse::_internal_photo_infos_size() const {
  return photo_infos_.size();
}
inline int PhotosInfoResponse::photo_infos_size() const {
  return _internal_photo_infos_size();
}
inline void PhotosInfoResponse::clear_photo_infos() {
  photo_infos_.Clear();
}
inline ::Anki::Vector::external_interface::PhotoInfo* PhotosInfoResponse::mutable_photo_infos(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PhotosInfoResponse.photo_infos)
  return photo_infos_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::PhotoInfo >*
PhotosInfoResponse::mutable_photo_infos() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.PhotosInfoResponse.photo_infos)
  return &photo_infos_;
}
inline const ::Anki::Vector::external_interface::PhotoInfo& PhotosInfoResponse::_internal_photo_infos(int index) const {
  return photo_infos_.Get(index);
}
inline const ::Anki::Vector::external_interface::PhotoInfo& PhotosInfoResponse::photo_infos(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PhotosInfoResponse.photo_infos)
  return _internal_photo_infos(index);
}
inline ::Anki::Vector::external_interface::PhotoInfo* PhotosInfoResponse::_internal_add_photo_infos() {
  return photo_infos_.Add();
}
inline ::Anki::Vector::external_interface::PhotoInfo* PhotosInfoResponse::add_photo_infos() {
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.PhotosInfoResponse.photo_infos)
  return _internal_add_photo_infos();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::PhotoInfo >&
PhotosInfoResponse::photo_infos() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.PhotosInfoResponse.photo_infos)
  return photo_infos_;
}

// -------------------------------------------------------------------

// PhotoRequest

// uint32 photo_id = 1;
inline void PhotoRequest::clear_photo_id() {
  photo_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PhotoRequest::_internal_photo_id() const {
  return photo_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PhotoRequest::photo_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PhotoRequest.photo_id)
  return _internal_photo_id();
}
inline void PhotoRequest::_internal_set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  photo_id_ = value;
}
inline void PhotoRequest::set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_photo_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PhotoRequest.photo_id)
}

// -------------------------------------------------------------------

// PhotoPathMessage

// bool success = 1;
inline void PhotoPathMessage::clear_success() {
  success_ = false;
}
inline bool PhotoPathMessage::_internal_success() const {
  return success_;
}
inline bool PhotoPathMessage::success() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PhotoPathMessage.success)
  return _internal_success();
}
inline void PhotoPathMessage::_internal_set_success(bool value) {
  
  success_ = value;
}
inline void PhotoPathMessage::set_success(bool value) {
  _internal_set_success(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PhotoPathMessage.success)
}

// string full_path = 2;
inline void PhotoPathMessage::clear_full_path() {
  full_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& PhotoPathMessage::full_path() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PhotoPathMessage.full_path)
  return _internal_full_path();
}
inline void PhotoPathMessage::set_full_path(const std::string& value) {
  _internal_set_full_path(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PhotoPathMessage.full_path)
}
inline std::string* PhotoPathMessage::mutable_full_path() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PhotoPathMessage.full_path)
  return _internal_mutable_full_path();
}
inline const std::string& PhotoPathMessage::_internal_full_path() const {
  return full_path_.Get();
}
inline void PhotoPathMessage::_internal_set_full_path(const std::string& value) {
  
  full_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void PhotoPathMessage::set_full_path(std::string&& value) {
  
  full_path_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.PhotoPathMessage.full_path)
}
inline void PhotoPathMessage::set_full_path(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  full_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.PhotoPathMessage.full_path)
}
inline void PhotoPathMessage::set_full_path(const char* value,
    size_t size) {
  
  full_path_.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.PhotoPathMessage.full_path)
}
inline std::string* PhotoPathMessage::_internal_mutable_full_path() {
  
  return full_path_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* PhotoPathMessage::release_full_path() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PhotoPathMessage.full_path)
  return full_path_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void PhotoPathMessage::set_allocated_full_path(std::string* full_path) {
  if (full_path != nullptr) {
    
  } else {
    
  }
  full_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), full_path,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.PhotoPathMessage.full_path)
}
inline std::string* PhotoPathMessage::unsafe_arena_release_full_path() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.PhotoPathMessage.full_path)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return full_path_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void PhotoPathMessage::unsafe_arena_set_allocated_full_path(
    std::string* full_path) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (full_path != nullptr) {
    
  } else {
    
  }
  full_path_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      full_path, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.PhotoPathMessage.full_path)
}

// -------------------------------------------------------------------

// PhotoResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool PhotoResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool PhotoResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& PhotoResponse::_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& PhotoResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PhotoResponse.status)
  return _internal_status();
}
inline void PhotoResponse::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.PhotoResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* PhotoResponse::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* PhotoResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PhotoResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* PhotoResponse::_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* PhotoResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PhotoResponse.status)
  return _internal_mutable_status();
}
inline void PhotoResponse::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.PhotoResponse.status)
}

// bool success = 2;
inline void PhotoResponse::clear_success() {
  success_ = false;
}
inline bool PhotoResponse::_internal_success() const {
  return success_;
}
inline bool PhotoResponse::success() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PhotoResponse.success)
  return _internal_success();
}
inline void PhotoResponse::_internal_set_success(bool value) {
  
  success_ = value;
}
inline void PhotoResponse::set_success(bool value) {
  _internal_set_success(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PhotoResponse.success)
}

// bytes image = 3;
inline void PhotoResponse::clear_image() {
  image_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& PhotoResponse::image() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PhotoResponse.image)
  return _internal_image();
}
inline void PhotoResponse::set_image(const std::string& value) {
  _internal_set_image(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PhotoResponse.image)
}
inline std::string* PhotoResponse::mutable_image() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PhotoResponse.image)
  return _internal_mutable_image();
}
inline const std::string& PhotoResponse::_internal_image() const {
  return image_.Get();
}
inline void PhotoResponse::_internal_set_image(const std::string& value) {
  
  image_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void PhotoResponse::set_image(std::string&& value) {
  
  image_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.PhotoResponse.image)
}
inline void PhotoResponse::set_image(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  image_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.PhotoResponse.image)
}
inline void PhotoResponse::set_image(const void* value,
    size_t size) {
  
  image_.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.PhotoResponse.image)
}
inline std::string* PhotoResponse::_internal_mutable_image() {
  
  return image_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* PhotoResponse::release_image() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PhotoResponse.image)
  return image_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void PhotoResponse::set_allocated_image(std::string* image) {
  if (image != nullptr) {
    
  } else {
    
  }
  image_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), image,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.PhotoResponse.image)
}
inline std::string* PhotoResponse::unsafe_arena_release_image() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.PhotoResponse.image)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return image_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void PhotoResponse::unsafe_arena_set_allocated_image(
    std::string* image) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (image != nullptr) {
    
  } else {
    
  }
  image_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      image, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.PhotoResponse.image)
}

// -------------------------------------------------------------------

// ThumbnailRequest

// uint32 photo_id = 1;
inline void ThumbnailRequest::clear_photo_id() {
  photo_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ThumbnailRequest::_internal_photo_id() const {
  return photo_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ThumbnailRequest::photo_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ThumbnailRequest.photo_id)
  return _internal_photo_id();
}
inline void ThumbnailRequest::_internal_set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  photo_id_ = value;
}
inline void ThumbnailRequest::set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_photo_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ThumbnailRequest.photo_id)
}

// -------------------------------------------------------------------

// ThumbnailPathMessage

// bool success = 1;
inline void ThumbnailPathMessage::clear_success() {
  success_ = false;
}
inline bool ThumbnailPathMessage::_internal_success() const {
  return success_;
}
inline bool ThumbnailPathMessage::success() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ThumbnailPathMessage.success)
  return _internal_success();
}
inline void ThumbnailPathMessage::_internal_set_success(bool value) {
  
  success_ = value;
}
inline void ThumbnailPathMessage::set_success(bool value) {
  _internal_set_success(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ThumbnailPathMessage.success)
}

// string full_path = 2;
inline void ThumbnailPathMessage::clear_full_path() {
  full_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& ThumbnailPathMessage::full_path() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ThumbnailPathMessage.full_path)
  return _internal_full_path();
}
inline void ThumbnailPathMessage::set_full_path(const std::string& value) {
  _internal_set_full_path(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ThumbnailPathMessage.full_path)
}
inline std::string* ThumbnailPathMessage::mutable_full_path() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ThumbnailPathMessage.full_path)
  return _internal_mutable_full_path();
}
inline const std::string& ThumbnailPathMessage::_internal_full_path() const {
  return full_path_.Get();
}
inline void ThumbnailPathMessage::_internal_set_full_path(const std::string& value) {
  
  full_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void ThumbnailPathMessage::set_full_path(std::string&& value) {
  
  full_path_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.ThumbnailPathMessage.full_path)
}
inline void ThumbnailPathMessage::set_full_path(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  full_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.ThumbnailPathMessage.full_path)
}
inline void ThumbnailPathMessage::set_full_path(const char* value,
    size_t size) {
  
  full_path_.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.ThumbnailPathMessage.full_path)
}
inline std::string* ThumbnailPathMessage::_internal_mutable_full_path() {
  
  return full_path_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* ThumbnailPathMessage::release_full_path() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ThumbnailPathMessage.full_path)
  return full_path_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void ThumbnailPathMessage::set_allocated_full_path(std::string* full_path) {
  if (full_path != nullptr) {
    
  } else {
    
  }
  full_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), full_path,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ThumbnailPathMessage.full_path)
}
inline std::string* ThumbnailPathMessage::unsafe_arena_release_full_path() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.ThumbnailPathMessage.full_path)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return full_path_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void ThumbnailPathMessage::unsafe_arena_set_allocated_full_path(
    std::string* full_path) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (full_path != nullptr) {
    
  } else {
    
  }
  full_path_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      full_path, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.ThumbnailPathMessage.full_path)
}

// -------------------------------------------------------------------

// ThumbnailResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool ThumbnailResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool ThumbnailResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& ThumbnailResponse::_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& ThumbnailResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ThumbnailResponse.status)
  return _internal_status();
}
inline void ThumbnailResponse::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.ThumbnailResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* ThumbnailResponse::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* ThumbnailResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ThumbnailResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* ThumbnailResponse::_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* ThumbnailResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ThumbnailResponse.status)
  return _internal_mutable_status();
}
inline void ThumbnailResponse::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.ThumbnailResponse.status)
}

// bool success = 2;
inline void ThumbnailResponse::clear_success() {
  success_ = false;
}
inline bool ThumbnailResponse::_internal_success() const {
  return success_;
}
inline bool ThumbnailResponse::success() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ThumbnailResponse.success)
  return _internal_success();
}
inline void ThumbnailResponse::_internal_set_success(bool value) {
  
  success_ = value;
}
inline void ThumbnailResponse::set_success(bool value) {
  _internal_set_success(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ThumbnailResponse.success)
}

// bytes image = 3;
inline void ThumbnailResponse::clear_image() {
  image_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& ThumbnailResponse::image() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ThumbnailResponse.image)
  return _internal_image();
}
inline void ThumbnailResponse::set_image(const std::string& value) {
  _internal_set_image(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ThumbnailResponse.image)
}
inline std::string* ThumbnailResponse::mutable_image() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ThumbnailResponse.image)
  return _internal_mutable_image();
}
inline const std::string& ThumbnailResponse::_internal_image() const {
  return image_.Get();
}
inline void ThumbnailResponse::_internal_set_image(const std::string& value) {
  
  image_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void ThumbnailResponse::set_image(std::string&& value) {
  
  image_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.ThumbnailResponse.image)
}
inline void ThumbnailResponse::set_image(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  image_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.ThumbnailResponse.image)
}
inline void ThumbnailResponse::set_image(const void* value,
    size_t size) {
  
  image_.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.ThumbnailResponse.image)
}
inline std::string* ThumbnailResponse::_internal_mutable_image() {
  
  return image_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* ThumbnailResponse::release_image() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ThumbnailResponse.image)
  return image_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void ThumbnailResponse::set_allocated_image(std::string* image) {
  if (image != nullptr) {
    
  } else {
    
  }
  image_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), image,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ThumbnailResponse.image)
}
inline std::string* ThumbnailResponse::unsafe_arena_release_image() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.ThumbnailResponse.image)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return image_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void ThumbnailResponse::unsafe_arena_set_allocated_image(
    std::string* image) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (image != nullptr) {
    
  } else {
    
  }
  image_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      image, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.ThumbnailResponse.image)
}

// -------------------------------------------------------------------

// DeletePhotoRequest

// uint32 photo_id = 1;
inline void DeletePhotoRequest::clear_photo_id() {
  photo_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 DeletePhotoRequest::_internal_photo_id() const {
  return photo_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 DeletePhotoRequest::photo_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DeletePhotoRequest.photo_id)
  return _internal_photo_id();
}
inline void DeletePhotoRequest::_internal_set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  photo_id_ = value;
}
inline void DeletePhotoRequest::set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_photo_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DeletePhotoRequest.photo_id)
}

// -------------------------------------------------------------------

// DeletePhotoResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool DeletePhotoResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool DeletePhotoResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& DeletePhotoResponse::_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& DeletePhotoResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DeletePhotoResponse.status)
  return _internal_status();
}
inline void DeletePhotoResponse::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.DeletePhotoResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* DeletePhotoResponse::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* DeletePhotoResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.DeletePhotoResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* DeletePhotoResponse::_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* DeletePhotoResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.DeletePhotoResponse.status)
  return _internal_mutable_status();
}
inline void DeletePhotoResponse::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.DeletePhotoResponse.status)
}

// bool success = 2;
inline void DeletePhotoResponse::clear_success() {
  success_ = false;
}
inline bool DeletePhotoResponse::_internal_success() const {
  return success_;
}
inline bool DeletePhotoResponse::success() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DeletePhotoResponse.success)
  return _internal_success();
}
inline void DeletePhotoResponse::_internal_set_success(bool value) {
  
  success_ = value;
}
inline void DeletePhotoResponse::set_success(bool value) {
  _internal_set_success(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DeletePhotoResponse.success)
}

// -------------------------------------------------------------------

// PhotoTaken

// uint32 photo_id = 1;
inline void PhotoTaken::clear_photo_id() {
  photo_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PhotoTaken::_internal_photo_id() const {
  return photo_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 PhotoTaken::photo_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PhotoTaken.photo_id)
  return _internal_photo_id();
}
inline void PhotoTaken::_internal_set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  photo_id_ = value;
}
inline void PhotoTaken::set_photo_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_photo_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PhotoTaken.photo_id)
}

// -------------------------------------------------------------------

// PathMotionProfile

// float speed_mmps = 1;
inline void PathMotionProfile::clear_speed_mmps() {
  speed_mmps_ = 0;
}
inline float PathMotionProfile::_internal_speed_mmps() const {
  return speed_mmps_;
}
inline float PathMotionProfile::speed_mmps() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PathMotionProfile.speed_mmps)
  return _internal_speed_mmps();
}
inline void PathMotionProfile::_internal_set_speed_mmps(float value) {
  
  speed_mmps_ = value;
}
inline void PathMotionProfile::set_speed_mmps(float value) {
  _internal_set_speed_mmps(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PathMotionProfile.speed_mmps)
}

// float accel_mmps2 = 2;
inline void PathMotionProfile::clear_accel_mmps2() {
  accel_mmps2_ = 0;
}
inline float PathMotionProfile::_internal_accel_mmps2() const {
  return accel_mmps2_;
}
inline float PathMotionProfile::accel_mmps2() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PathMotionProfile.accel_mmps2)
  return _internal_accel_mmps2();
}
inline void PathMotionProfile::_internal_set_accel_mmps2(float value) {
  
  accel_mmps2_ = value;
}
inline void PathMotionProfile::set_accel_mmps2(float value) {
  _internal_set_accel_mmps2(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PathMotionProfile.accel_mmps2)
}

// float decel_mmps2 = 3;
inline void PathMotionProfile::clear_decel_mmps2() {
  decel_mmps2_ = 0;
}
inline float PathMotionProfile::_internal_decel_mmps2() const {
  return decel_mmps2_;
}
inline float PathMotionProfile::decel_mmps2() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PathMotionProfile.decel_mmps2)
  return _internal_decel_mmps2();
}
inline void PathMotionProfile::_internal_set_decel_mmps2(float value) {
  
  decel_mmps2_ = value;
}
inline void PathMotionProfile::set_decel_mmps2(float value) {
  _internal_set_decel_mmps2(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PathMotionProfile.decel_mmps2)
}

// float point_turn_speed_rad_per_sec = 4;
inline void PathMotionProfile::clear_point_turn_speed_rad_per_sec() {
  point_turn_speed_rad_per_sec_ = 0;
}
inline float PathMotionProfile::_internal_point_turn_speed_rad_per_sec() const {
  return point_turn_speed_rad_per_sec_;
}
inline float PathMotionProfile::point_turn_speed_rad_per_sec() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PathMotionProfile.point_turn_speed_rad_per_sec)
  return _internal_point_turn_speed_rad_per_sec();
}
inline void PathMotionProfile::_internal_set_point_turn_speed_rad_per_sec(float value) {
  
  point_turn_speed_rad_per_sec_ = value;
}
inline void PathMotionProfile::set_point_turn_speed_rad_per_sec(float value) {
  _internal_set_point_turn_speed_rad_per_sec(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PathMotionProfile.point_turn_speed_rad_per_sec)
}

// float point_turn_accel_rad_per_sec2 = 5;
inline void PathMotionProfile::clear_point_turn_accel_rad_per_sec2() {
  point_turn_accel_rad_per_sec2_ = 0;
}
inline float PathMotionProfile::_internal_point_turn_accel_rad_per_sec2() const {
  return point_turn_accel_rad_per_sec2_;
}
inline float PathMotionProfile::point_turn_accel_rad_per_sec2() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PathMotionProfile.point_turn_accel_rad_per_sec2)
  return _internal_point_turn_accel_rad_per_sec2();
}
inline void PathMotionProfile::_internal_set_point_turn_accel_rad_per_sec2(float value) {
  
  point_turn_accel_rad_per_sec2_ = value;
}
inline void PathMotionProfile::set_point_turn_accel_rad_per_sec2(float value) {
  _internal_set_point_turn_accel_rad_per_sec2(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PathMotionProfile.point_turn_accel_rad_per_sec2)
}

// float point_turn_decel_rad_per_sec2 = 6;
inline void PathMotionProfile::clear_point_turn_decel_rad_per_sec2() {
  point_turn_decel_rad_per_sec2_ = 0;
}
inline float PathMotionProfile::_internal_point_turn_decel_rad_per_sec2() const {
  return point_turn_decel_rad_per_sec2_;
}
inline float PathMotionProfile::point_turn_decel_rad_per_sec2() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PathMotionProfile.point_turn_decel_rad_per_sec2)
  return _internal_point_turn_decel_rad_per_sec2();
}
inline void PathMotionProfile::_internal_set_point_turn_decel_rad_per_sec2(float value) {
  
  point_turn_decel_rad_per_sec2_ = value;
}
inline void PathMotionProfile::set_point_turn_decel_rad_per_sec2(float value) {
  _internal_set_point_turn_decel_rad_per_sec2(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PathMotionProfile.point_turn_decel_rad_per_sec2)
}

// float dock_speed_mmps = 7;
inline void PathMotionProfile::clear_dock_speed_mmps() {
  dock_speed_mmps_ = 0;
}
inline float PathMotionProfile::_internal_dock_speed_mmps() const {
  return dock_speed_mmps_;
}
inline float PathMotionProfile::dock_speed_mmps() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PathMotionProfile.dock_speed_mmps)
  return _internal_dock_speed_mmps();
}
inline void PathMotionProfile::_internal_set_dock_speed_mmps(float value) {
  
  dock_speed_mmps_ = value;
}
inline void PathMotionProfile::set_dock_speed_mmps(float value) {
  _internal_set_dock_speed_mmps(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PathMotionProfile.dock_speed_mmps)
}

// float dock_accel_mmps2 = 8;
inline void PathMotionProfile::clear_dock_accel_mmps2() {
  dock_accel_mmps2_ = 0;
}
inline float PathMotionProfile::_internal_dock_accel_mmps2() const {
  return dock_accel_mmps2_;
}
inline float PathMotionProfile::dock_accel_mmps2() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PathMotionProfile.dock_accel_mmps2)
  return _internal_dock_accel_mmps2();
}
inline void PathMotionProfile::_internal_set_dock_accel_mmps2(float value) {
  
  dock_accel_mmps2_ = value;
}
inline void PathMotionProfile::set_dock_accel_mmps2(float value) {
  _internal_set_dock_accel_mmps2(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PathMotionProfile.dock_accel_mmps2)
}

// float dock_decel_mmps2 = 9;
inline void PathMotionProfile::clear_dock_decel_mmps2() {
  dock_decel_mmps2_ = 0;
}
inline float PathMotionProfile::_internal_dock_decel_mmps2() const {
  return dock_decel_mmps2_;
}
inline float PathMotionProfile::dock_decel_mmps2() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PathMotionProfile.dock_decel_mmps2)
  return _internal_dock_decel_mmps2();
}
inline void PathMotionProfile::_internal_set_dock_decel_mmps2(float value) {
  
  dock_decel_mmps2_ = value;
}
inline void PathMotionProfile::set_dock_decel_mmps2(float value) {
  _internal_set_dock_decel_mmps2(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PathMotionProfile.dock_decel_mmps2)
}

// float reverse_speed_mmps = 10;
inline void PathMotionProfile::clear_reverse_speed_mmps() {
  reverse_speed_mmps_ = 0;
}
inline float PathMotionProfile::_internal_reverse_speed_mmps() const {
  return reverse_speed_mmps_;
}
inline float PathMotionProfile::reverse_speed_mmps() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PathMotionProfile.reverse_speed_mmps)
  return _internal_reverse_speed_mmps();
}
inline void PathMotionProfile::_internal_set_reverse_speed_mmps(float value) {
  
  reverse_speed_mmps_ = value;
}
inline void PathMotionProfile::set_reverse_speed_mmps(float value) {
  _internal_set_reverse_speed_mmps(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PathMotionProfile.reverse_speed_mmps)
}

// bool is_custom = 11;
inline void PathMotionProfile::clear_is_custom() {
  is_custom_ = false;
}
inline bool PathMotionProfile::_internal_is_custom() const {
  return is_custom_;
}
inline bool PathMotionProfile::is_custom() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PathMotionProfile.is_custom)
  return _internal_is_custom();
}
inline void PathMotionProfile::_internal_set_is_custom(bool value) {
  
  is_custom_ = value;
}
inline void PathMotionProfile::set_is_custom(bool value) {
  _internal_set_is_custom(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PathMotionProfile.is_custom)
}

// -------------------------------------------------------------------

// ActionResult

// .Anki.Vector.external_interface.ActionResult.ActionResultCode code = 1;
inline void ActionResult::clear_code() {
  code_ = 0;
}
inline ::Anki::Vector::external_interface::ActionResult_ActionResultCode ActionResult::_internal_code() const {
  return static_cast< ::Anki::Vector::external_interface::ActionResult_ActionResultCode >(code_);
}
inline ::Anki::Vector::external_interface::ActionResult_ActionResultCode ActionResult::code() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ActionResult.code)
  return _internal_code();
}
inline void ActionResult::_internal_set_code(::Anki::Vector::external_interface::ActionResult_ActionResultCode value) {
  
  code_ = value;
}
inline void ActionResult::set_code(::Anki::Vector::external_interface::ActionResult_ActionResultCode value) {
  _internal_set_code(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ActionResult.code)
}

// -------------------------------------------------------------------

// CancelActionByIdTagRequest

// uint32 id_tag = 1;
inline void CancelActionByIdTagRequest::clear_id_tag() {
  id_tag_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CancelActionByIdTagRequest::_internal_id_tag() const {
  return id_tag_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CancelActionByIdTagRequest::id_tag() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CancelActionByIdTagRequest.id_tag)
  return _internal_id_tag();
}
inline void CancelActionByIdTagRequest::_internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  id_tag_ = value;
}
inline void CancelActionByIdTagRequest::set_id_tag(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_id_tag(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CancelActionByIdTagRequest.id_tag)
}

// -------------------------------------------------------------------

// CancelActionByIdTagResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool CancelActionByIdTagResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool CancelActionByIdTagResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& CancelActionByIdTagResponse::_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& CancelActionByIdTagResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CancelActionByIdTagResponse.status)
  return _internal_status();
}
inline void CancelActionByIdTagResponse::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.CancelActionByIdTagResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* CancelActionByIdTagResponse::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* CancelActionByIdTagResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.CancelActionByIdTagResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* CancelActionByIdTagResponse::_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* CancelActionByIdTagResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.CancelActionByIdTagResponse.status)
  return _internal_mutable_status();
}
inline void CancelActionByIdTagResponse::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.CancelActionByIdTagResponse.status)
}

// -------------------------------------------------------------------

// CancelBehaviorRequest

// -------------------------------------------------------------------

// CancelBehaviorResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool CancelBehaviorResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool CancelBehaviorResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& CancelBehaviorResponse::_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& CancelBehaviorResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CancelBehaviorResponse.status)
  return _internal_status();
}
inline void CancelBehaviorResponse::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.CancelBehaviorResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* CancelBehaviorResponse::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* CancelBehaviorResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.CancelBehaviorResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* CancelBehaviorResponse::_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* CancelBehaviorResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.CancelBehaviorResponse.status)
  return _internal_mutable_status();
}
inline void CancelBehaviorResponse::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.CancelBehaviorResponse.status)
}

// -------------------------------------------------------------------

// GoToPoseRequest

// float x_mm = 1;
inline void GoToPoseRequest::clear_x_mm() {
  x_mm_ = 0;
}
inline float GoToPoseRequest::_internal_x_mm() const {
  return x_mm_;
}
inline float GoToPoseRequest::x_mm() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToPoseRequest.x_mm)
  return _internal_x_mm();
}
inline void GoToPoseRequest::_internal_set_x_mm(float value) {
  
  x_mm_ = value;
}
inline void GoToPoseRequest::set_x_mm(float value) {
  _internal_set_x_mm(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GoToPoseRequest.x_mm)
}

// float y_mm = 2;
inline void GoToPoseRequest::clear_y_mm() {
  y_mm_ = 0;
}
inline float GoToPoseRequest::_internal_y_mm() const {
  return y_mm_;
}
inline float GoToPoseRequest::y_mm() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToPoseRequest.y_mm)
  return _internal_y_mm();
}
inline void GoToPoseRequest::_internal_set_y_mm(float value) {
  
  y_mm_ = value;
}
inline void GoToPoseRequest::set_y_mm(float value) {
  _internal_set_y_mm(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GoToPoseRequest.y_mm)
}

// float rad = 3;
inline void GoToPoseRequest::clear_rad() {
  rad_ = 0;
}
inline float GoToPoseRequest::_internal_rad() const {
  return rad_;
}
inline float GoToPoseRequest::rad() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToPoseRequest.rad)
  return _internal_rad();
}
inline void GoToPoseRequest::_internal_set_rad(float value) {
  
  rad_ = value;
}
inline void GoToPoseRequest::set_rad(float value) {
  _internal_set_rad(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GoToPoseRequest.rad)
}

// .Anki.Vector.external_interface.PathMotionProfile motion_prof = 4;
inline bool GoToPoseRequest::_internal_has_motion_prof() const {
  return this != internal_default_instance() && motion_prof_ != nullptr;
}
inline bool GoToPoseRequest::has_motion_prof() const {
  return _internal_has_motion_prof();
}
inline void GoToPoseRequest::clear_motion_prof() {
  if (GetArena() == nullptr && motion_prof_ != nullptr) {
    delete motion_prof_;
  }
  motion_prof_ = nullptr;
}
inline const ::Anki::Vector::external_interface::PathMotionProfile& GoToPoseRequest::_internal_motion_prof() const {
  const ::Anki::Vector::external_interface::PathMotionProfile* p = motion_prof_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::PathMotionProfile*>(
      &::Anki::Vector::external_interface::_PathMotionProfile_default_instance_);
}
inline const ::Anki::Vector::external_interface::PathMotionProfile& GoToPoseRequest::motion_prof() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToPoseRequest.motion_prof)
  return _internal_motion_prof();
}
inline void GoToPoseRequest::unsafe_arena_set_allocated_motion_prof(
    ::Anki::Vector::external_interface::PathMotionProfile* motion_prof) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(motion_prof_);
  }
  motion_prof_ = motion_prof;
  if (motion_prof) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GoToPoseRequest.motion_prof)
}
inline ::Anki::Vector::external_interface::PathMotionProfile* GoToPoseRequest::release_motion_prof() {
  auto temp = unsafe_arena_release_motion_prof();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* GoToPoseRequest::unsafe_arena_release_motion_prof() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GoToPoseRequest.motion_prof)
  
  ::Anki::Vector::external_interface::PathMotionProfile* temp = motion_prof_;
  motion_prof_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* GoToPoseRequest::_internal_mutable_motion_prof() {
  
  if (motion_prof_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::PathMotionProfile>(GetArena());
    motion_prof_ = p;
  }
  return motion_prof_;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* GoToPoseRequest::mutable_motion_prof() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GoToPoseRequest.motion_prof)
  return _internal_mutable_motion_prof();
}
inline void GoToPoseRequest::set_allocated_motion_prof(::Anki::Vector::external_interface::PathMotionProfile* motion_prof) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete motion_prof_;
  }
  if (motion_prof) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(motion_prof);
    if (message_arena != submessage_arena) {
      motion_prof = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, motion_prof, submessage_arena);
    }
    
  } else {
    
  }
  motion_prof_ = motion_prof;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GoToPoseRequest.motion_prof)
}

// int32 id_tag = 5;
inline void GoToPoseRequest::clear_id_tag() {
  id_tag_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 GoToPoseRequest::_internal_id_tag() const {
  return id_tag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 GoToPoseRequest::id_tag() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToPoseRequest.id_tag)
  return _internal_id_tag();
}
inline void GoToPoseRequest::_internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  id_tag_ = value;
}
inline void GoToPoseRequest::set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_id_tag(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GoToPoseRequest.id_tag)
}

// int32 num_retries = 6;
inline void GoToPoseRequest::clear_num_retries() {
  num_retries_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 GoToPoseRequest::_internal_num_retries() const {
  return num_retries_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 GoToPoseRequest::num_retries() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToPoseRequest.num_retries)
  return _internal_num_retries();
}
inline void GoToPoseRequest::_internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_retries_ = value;
}
inline void GoToPoseRequest::set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_retries(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GoToPoseRequest.num_retries)
}

// -------------------------------------------------------------------

// GoToPoseResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool GoToPoseResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool GoToPoseResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& GoToPoseResponse::_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& GoToPoseResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToPoseResponse.status)
  return _internal_status();
}
inline void GoToPoseResponse::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.GoToPoseResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* GoToPoseResponse::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* GoToPoseResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GoToPoseResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* GoToPoseResponse::_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* GoToPoseResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GoToPoseResponse.status)
  return _internal_mutable_status();
}
inline void GoToPoseResponse::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.GoToPoseResponse.status)
}

// .Anki.Vector.external_interface.ActionResult result = 2;
inline bool GoToPoseResponse::_internal_has_result() const {
  return this != internal_default_instance() && result_ != nullptr;
}
inline bool GoToPoseResponse::has_result() const {
  return _internal_has_result();
}
inline void GoToPoseResponse::clear_result() {
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
}
inline const ::Anki::Vector::external_interface::ActionResult& GoToPoseResponse::_internal_result() const {
  const ::Anki::Vector::external_interface::ActionResult* p = result_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ActionResult*>(
      &::Anki::Vector::external_interface::_ActionResult_default_instance_);
}
inline const ::Anki::Vector::external_interface::ActionResult& GoToPoseResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToPoseResponse.result)
  return _internal_result();
}
inline void GoToPoseResponse::unsafe_arena_set_allocated_result(
    ::Anki::Vector::external_interface::ActionResult* result) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(result_);
  }
  result_ = result;
  if (result) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GoToPoseResponse.result)
}
inline ::Anki::Vector::external_interface::ActionResult* GoToPoseResponse::release_result() {
  auto temp = unsafe_arena_release_result();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* GoToPoseResponse::unsafe_arena_release_result() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GoToPoseResponse.result)
  
  ::Anki::Vector::external_interface::ActionResult* temp = result_;
  result_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* GoToPoseResponse::_internal_mutable_result() {
  
  if (result_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ActionResult>(GetArena());
    result_ = p;
  }
  return result_;
}
inline ::Anki::Vector::external_interface::ActionResult* GoToPoseResponse::mutable_result() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GoToPoseResponse.result)
  return _internal_mutable_result();
}
inline void GoToPoseResponse::set_allocated_result(::Anki::Vector::external_interface::ActionResult* result) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete result_;
  }
  if (result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(result);
    if (message_arena != submessage_arena) {
      result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, result, submessage_arena);
    }
    
  } else {
    
  }
  result_ = result;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GoToPoseResponse.result)
}

// -------------------------------------------------------------------

// DockWithCubeRequest

// int32 object_id = 1;
inline void DockWithCubeRequest::clear_object_id() {
  object_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 DockWithCubeRequest::_internal_object_id() const {
  return object_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 DockWithCubeRequest::object_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DockWithCubeRequest.object_id)
  return _internal_object_id();
}
inline void DockWithCubeRequest::_internal_set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  object_id_ = value;
}
inline void DockWithCubeRequest::set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_object_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DockWithCubeRequest.object_id)
}

// float distance_from_marker_mm = 2;
inline void DockWithCubeRequest::clear_distance_from_marker_mm() {
  distance_from_marker_mm_ = 0;
}
inline float DockWithCubeRequest::_internal_distance_from_marker_mm() const {
  return distance_from_marker_mm_;
}
inline float DockWithCubeRequest::distance_from_marker_mm() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DockWithCubeRequest.distance_from_marker_mm)
  return _internal_distance_from_marker_mm();
}
inline void DockWithCubeRequest::_internal_set_distance_from_marker_mm(float value) {
  
  distance_from_marker_mm_ = value;
}
inline void DockWithCubeRequest::set_distance_from_marker_mm(float value) {
  _internal_set_distance_from_marker_mm(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DockWithCubeRequest.distance_from_marker_mm)
}

// float approach_angle_rad = 3;
inline void DockWithCubeRequest::clear_approach_angle_rad() {
  approach_angle_rad_ = 0;
}
inline float DockWithCubeRequest::_internal_approach_angle_rad() const {
  return approach_angle_rad_;
}
inline float DockWithCubeRequest::approach_angle_rad() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DockWithCubeRequest.approach_angle_rad)
  return _internal_approach_angle_rad();
}
inline void DockWithCubeRequest::_internal_set_approach_angle_rad(float value) {
  
  approach_angle_rad_ = value;
}
inline void DockWithCubeRequest::set_approach_angle_rad(float value) {
  _internal_set_approach_angle_rad(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DockWithCubeRequest.approach_angle_rad)
}

// .Anki.Vector.external_interface.AlignmentType alignment_type = 4;
inline void DockWithCubeRequest::clear_alignment_type() {
  alignment_type_ = 0;
}
inline ::Anki::Vector::external_interface::AlignmentType DockWithCubeRequest::_internal_alignment_type() const {
  return static_cast< ::Anki::Vector::external_interface::AlignmentType >(alignment_type_);
}
inline ::Anki::Vector::external_interface::AlignmentType DockWithCubeRequest::alignment_type() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DockWithCubeRequest.alignment_type)
  return _internal_alignment_type();
}
inline void DockWithCubeRequest::_internal_set_alignment_type(::Anki::Vector::external_interface::AlignmentType value) {
  
  alignment_type_ = value;
}
inline void DockWithCubeRequest::set_alignment_type(::Anki::Vector::external_interface::AlignmentType value) {
  _internal_set_alignment_type(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DockWithCubeRequest.alignment_type)
}

// bool use_approach_angle = 5;
inline void DockWithCubeRequest::clear_use_approach_angle() {
  use_approach_angle_ = false;
}
inline bool DockWithCubeRequest::_internal_use_approach_angle() const {
  return use_approach_angle_;
}
inline bool DockWithCubeRequest::use_approach_angle() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DockWithCubeRequest.use_approach_angle)
  return _internal_use_approach_angle();
}
inline void DockWithCubeRequest::_internal_set_use_approach_angle(bool value) {
  
  use_approach_angle_ = value;
}
inline void DockWithCubeRequest::set_use_approach_angle(bool value) {
  _internal_set_use_approach_angle(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DockWithCubeRequest.use_approach_angle)
}

// bool use_pre_dock_pose = 6;
inline void DockWithCubeRequest::clear_use_pre_dock_pose() {
  use_pre_dock_pose_ = false;
}
inline bool DockWithCubeRequest::_internal_use_pre_dock_pose() const {
  return use_pre_dock_pose_;
}
inline bool DockWithCubeRequest::use_pre_dock_pose() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DockWithCubeRequest.use_pre_dock_pose)
  return _internal_use_pre_dock_pose();
}
inline void DockWithCubeRequest::_internal_set_use_pre_dock_pose(bool value) {
  
  use_pre_dock_pose_ = value;
}
inline void DockWithCubeRequest::set_use_pre_dock_pose(bool value) {
  _internal_set_use_pre_dock_pose(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DockWithCubeRequest.use_pre_dock_pose)
}

// .Anki.Vector.external_interface.PathMotionProfile motion_prof = 7;
inline bool DockWithCubeRequest::_internal_has_motion_prof() const {
  return this != internal_default_instance() && motion_prof_ != nullptr;
}
inline bool DockWithCubeRequest::has_motion_prof() const {
  return _internal_has_motion_prof();
}
inline void DockWithCubeRequest::clear_motion_prof() {
  if (GetArena() == nullptr && motion_prof_ != nullptr) {
    delete motion_prof_;
  }
  motion_prof_ = nullptr;
}
inline const ::Anki::Vector::external_interface::PathMotionProfile& DockWithCubeRequest::_internal_motion_prof() const {
  const ::Anki::Vector::external_interface::PathMotionProfile* p = motion_prof_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::PathMotionProfile*>(
      &::Anki::Vector::external_interface::_PathMotionProfile_default_instance_);
}
inline const ::Anki::Vector::external_interface::PathMotionProfile& DockWithCubeRequest::motion_prof() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DockWithCubeRequest.motion_prof)
  return _internal_motion_prof();
}
inline void DockWithCubeRequest::unsafe_arena_set_allocated_motion_prof(
    ::Anki::Vector::external_interface::PathMotionProfile* motion_prof) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(motion_prof_);
  }
  motion_prof_ = motion_prof;
  if (motion_prof) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.DockWithCubeRequest.motion_prof)
}
inline ::Anki::Vector::external_interface::PathMotionProfile* DockWithCubeRequest::release_motion_prof() {
  auto temp = unsafe_arena_release_motion_prof();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* DockWithCubeRequest::unsafe_arena_release_motion_prof() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.DockWithCubeRequest.motion_prof)
  
  ::Anki::Vector::external_interface::PathMotionProfile* temp = motion_prof_;
  motion_prof_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* DockWithCubeRequest::_internal_mutable_motion_prof() {
  
  if (motion_prof_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::PathMotionProfile>(GetArena());
    motion_prof_ = p;
  }
  return motion_prof_;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* DockWithCubeRequest::mutable_motion_prof() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.DockWithCubeRequest.motion_prof)
  return _internal_mutable_motion_prof();
}
inline void DockWithCubeRequest::set_allocated_motion_prof(::Anki::Vector::external_interface::PathMotionProfile* motion_prof) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete motion_prof_;
  }
  if (motion_prof) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(motion_prof);
    if (message_arena != submessage_arena) {
      motion_prof = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, motion_prof, submessage_arena);
    }
    
  } else {
    
  }
  motion_prof_ = motion_prof;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.DockWithCubeRequest.motion_prof)
}

// int32 id_tag = 8;
inline void DockWithCubeRequest::clear_id_tag() {
  id_tag_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 DockWithCubeRequest::_internal_id_tag() const {
  return id_tag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 DockWithCubeRequest::id_tag() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DockWithCubeRequest.id_tag)
  return _internal_id_tag();
}
inline void DockWithCubeRequest::_internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  id_tag_ = value;
}
inline void DockWithCubeRequest::set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_id_tag(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DockWithCubeRequest.id_tag)
}

// int32 num_retries = 9;
inline void DockWithCubeRequest::clear_num_retries() {
  num_retries_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 DockWithCubeRequest::_internal_num_retries() const {
  return num_retries_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 DockWithCubeRequest::num_retries() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DockWithCubeRequest.num_retries)
  return _internal_num_retries();
}
inline void DockWithCubeRequest::_internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_retries_ = value;
}
inline void DockWithCubeRequest::set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_retries(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DockWithCubeRequest.num_retries)
}

// -------------------------------------------------------------------

// DockWithCubeResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool DockWithCubeResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool DockWithCubeResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& DockWithCubeResponse::_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& DockWithCubeResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DockWithCubeResponse.status)
  return _internal_status();
}
inline void DockWithCubeResponse::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.DockWithCubeResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* DockWithCubeResponse::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* DockWithCubeResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.DockWithCubeResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* DockWithCubeResponse::_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* DockWithCubeResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.DockWithCubeResponse.status)
  return _internal_mutable_status();
}
inline void DockWithCubeResponse::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.DockWithCubeResponse.status)
}

// .Anki.Vector.external_interface.ActionResult result = 2;
inline bool DockWithCubeResponse::_internal_has_result() const {
  return this != internal_default_instance() && result_ != nullptr;
}
inline bool DockWithCubeResponse::has_result() const {
  return _internal_has_result();
}
inline void DockWithCubeResponse::clear_result() {
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
}
inline const ::Anki::Vector::external_interface::ActionResult& DockWithCubeResponse::_internal_result() const {
  const ::Anki::Vector::external_interface::ActionResult* p = result_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ActionResult*>(
      &::Anki::Vector::external_interface::_ActionResult_default_instance_);
}
inline const ::Anki::Vector::external_interface::ActionResult& DockWithCubeResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DockWithCubeResponse.result)
  return _internal_result();
}
inline void DockWithCubeResponse::unsafe_arena_set_allocated_result(
    ::Anki::Vector::external_interface::ActionResult* result) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(result_);
  }
  result_ = result;
  if (result) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.DockWithCubeResponse.result)
}
inline ::Anki::Vector::external_interface::ActionResult* DockWithCubeResponse::release_result() {
  auto temp = unsafe_arena_release_result();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* DockWithCubeResponse::unsafe_arena_release_result() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.DockWithCubeResponse.result)
  
  ::Anki::Vector::external_interface::ActionResult* temp = result_;
  result_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* DockWithCubeResponse::_internal_mutable_result() {
  
  if (result_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ActionResult>(GetArena());
    result_ = p;
  }
  return result_;
}
inline ::Anki::Vector::external_interface::ActionResult* DockWithCubeResponse::mutable_result() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.DockWithCubeResponse.result)
  return _internal_mutable_result();
}
inline void DockWithCubeResponse::set_allocated_result(::Anki::Vector::external_interface::ActionResult* result) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete result_;
  }
  if (result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(result);
    if (message_arena != submessage_arena) {
      result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, result, submessage_arena);
    }
    
  } else {
    
  }
  result_ = result;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.DockWithCubeResponse.result)
}

// -------------------------------------------------------------------

// DriveStraightRequest

// float speed_mmps = 1;
inline void DriveStraightRequest::clear_speed_mmps() {
  speed_mmps_ = 0;
}
inline float DriveStraightRequest::_internal_speed_mmps() const {
  return speed_mmps_;
}
inline float DriveStraightRequest::speed_mmps() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveStraightRequest.speed_mmps)
  return _internal_speed_mmps();
}
inline void DriveStraightRequest::_internal_set_speed_mmps(float value) {
  
  speed_mmps_ = value;
}
inline void DriveStraightRequest::set_speed_mmps(float value) {
  _internal_set_speed_mmps(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DriveStraightRequest.speed_mmps)
}

// float dist_mm = 2;
inline void DriveStraightRequest::clear_dist_mm() {
  dist_mm_ = 0;
}
inline float DriveStraightRequest::_internal_dist_mm() const {
  return dist_mm_;
}
inline float DriveStraightRequest::dist_mm() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveStraightRequest.dist_mm)
  return _internal_dist_mm();
}
inline void DriveStraightRequest::_internal_set_dist_mm(float value) {
  
  dist_mm_ = value;
}
inline void DriveStraightRequest::set_dist_mm(float value) {
  _internal_set_dist_mm(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DriveStraightRequest.dist_mm)
}

// bool should_play_animation = 3;
inline void DriveStraightRequest::clear_should_play_animation() {
  should_play_animation_ = false;
}
inline bool DriveStraightRequest::_internal_should_play_animation() const {
  return should_play_animation_;
}
inline bool DriveStraightRequest::should_play_animation() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveStraightRequest.should_play_animation)
  return _internal_should_play_animation();
}
inline void DriveStraightRequest::_internal_set_should_play_animation(bool value) {
  
  should_play_animation_ = value;
}
inline void DriveStraightRequest::set_should_play_animation(bool value) {
  _internal_set_should_play_animation(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DriveStraightRequest.should_play_animation)
}

// int32 id_tag = 4;
inline void DriveStraightRequest::clear_id_tag() {
  id_tag_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 DriveStraightRequest::_internal_id_tag() const {
  return id_tag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 DriveStraightRequest::id_tag() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveStraightRequest.id_tag)
  return _internal_id_tag();
}
inline void DriveStraightRequest::_internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  id_tag_ = value;
}
inline void DriveStraightRequest::set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_id_tag(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DriveStraightRequest.id_tag)
}

// int32 num_retries = 5;
inline void DriveStraightRequest::clear_num_retries() {
  num_retries_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 DriveStraightRequest::_internal_num_retries() const {
  return num_retries_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 DriveStraightRequest::num_retries() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveStraightRequest.num_retries)
  return _internal_num_retries();
}
inline void DriveStraightRequest::_internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_retries_ = value;
}
inline void DriveStraightRequest::set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_retries(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.DriveStraightRequest.num_retries)
}

// -------------------------------------------------------------------

// DriveStraightResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool DriveStraightResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool DriveStraightResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& DriveStraightResponse::_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& DriveStraightResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveStraightResponse.status)
  return _internal_status();
}
inline void DriveStraightResponse::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.DriveStraightResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* DriveStraightResponse::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* DriveStraightResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.DriveStraightResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* DriveStraightResponse::_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* DriveStraightResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.DriveStraightResponse.status)
  return _internal_mutable_status();
}
inline void DriveStraightResponse::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.DriveStraightResponse.status)
}

// .Anki.Vector.external_interface.ActionResult result = 2;
inline bool DriveStraightResponse::_internal_has_result() const {
  return this != internal_default_instance() && result_ != nullptr;
}
inline bool DriveStraightResponse::has_result() const {
  return _internal_has_result();
}
inline void DriveStraightResponse::clear_result() {
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
}
inline const ::Anki::Vector::external_interface::ActionResult& DriveStraightResponse::_internal_result() const {
  const ::Anki::Vector::external_interface::ActionResult* p = result_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ActionResult*>(
      &::Anki::Vector::external_interface::_ActionResult_default_instance_);
}
inline const ::Anki::Vector::external_interface::ActionResult& DriveStraightResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.DriveStraightResponse.result)
  return _internal_result();
}
inline void DriveStraightResponse::unsafe_arena_set_allocated_result(
    ::Anki::Vector::external_interface::ActionResult* result) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(result_);
  }
  result_ = result;
  if (result) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.DriveStraightResponse.result)
}
inline ::Anki::Vector::external_interface::ActionResult* DriveStraightResponse::release_result() {
  auto temp = unsafe_arena_release_result();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* DriveStraightResponse::unsafe_arena_release_result() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.DriveStraightResponse.result)
  
  ::Anki::Vector::external_interface::ActionResult* temp = result_;
  result_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* DriveStraightResponse::_internal_mutable_result() {
  
  if (result_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ActionResult>(GetArena());
    result_ = p;
  }
  return result_;
}
inline ::Anki::Vector::external_interface::ActionResult* DriveStraightResponse::mutable_result() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.DriveStraightResponse.result)
  return _internal_mutable_result();
}
inline void DriveStraightResponse::set_allocated_result(::Anki::Vector::external_interface::ActionResult* result) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete result_;
  }
  if (result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(result);
    if (message_arena != submessage_arena) {
      result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, result, submessage_arena);
    }
    
  } else {
    
  }
  result_ = result;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.DriveStraightResponse.result)
}

// -------------------------------------------------------------------

// TurnInPlaceRequest

// float angle_rad = 1;
inline void TurnInPlaceRequest::clear_angle_rad() {
  angle_rad_ = 0;
}
inline float TurnInPlaceRequest::_internal_angle_rad() const {
  return angle_rad_;
}
inline float TurnInPlaceRequest::angle_rad() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnInPlaceRequest.angle_rad)
  return _internal_angle_rad();
}
inline void TurnInPlaceRequest::_internal_set_angle_rad(float value) {
  
  angle_rad_ = value;
}
inline void TurnInPlaceRequest::set_angle_rad(float value) {
  _internal_set_angle_rad(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TurnInPlaceRequest.angle_rad)
}

// float speed_rad_per_sec = 2;
inline void TurnInPlaceRequest::clear_speed_rad_per_sec() {
  speed_rad_per_sec_ = 0;
}
inline float TurnInPlaceRequest::_internal_speed_rad_per_sec() const {
  return speed_rad_per_sec_;
}
inline float TurnInPlaceRequest::speed_rad_per_sec() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnInPlaceRequest.speed_rad_per_sec)
  return _internal_speed_rad_per_sec();
}
inline void TurnInPlaceRequest::_internal_set_speed_rad_per_sec(float value) {
  
  speed_rad_per_sec_ = value;
}
inline void TurnInPlaceRequest::set_speed_rad_per_sec(float value) {
  _internal_set_speed_rad_per_sec(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TurnInPlaceRequest.speed_rad_per_sec)
}

// float accel_rad_per_sec2 = 3;
inline void TurnInPlaceRequest::clear_accel_rad_per_sec2() {
  accel_rad_per_sec2_ = 0;
}
inline float TurnInPlaceRequest::_internal_accel_rad_per_sec2() const {
  return accel_rad_per_sec2_;
}
inline float TurnInPlaceRequest::accel_rad_per_sec2() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnInPlaceRequest.accel_rad_per_sec2)
  return _internal_accel_rad_per_sec2();
}
inline void TurnInPlaceRequest::_internal_set_accel_rad_per_sec2(float value) {
  
  accel_rad_per_sec2_ = value;
}
inline void TurnInPlaceRequest::set_accel_rad_per_sec2(float value) {
  _internal_set_accel_rad_per_sec2(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TurnInPlaceRequest.accel_rad_per_sec2)
}

// float tol_rad = 4;
inline void TurnInPlaceRequest::clear_tol_rad() {
  tol_rad_ = 0;
}
inline float TurnInPlaceRequest::_internal_tol_rad() const {
  return tol_rad_;
}
inline float TurnInPlaceRequest::tol_rad() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnInPlaceRequest.tol_rad)
  return _internal_tol_rad();
}
inline void TurnInPlaceRequest::_internal_set_tol_rad(float value) {
  
  tol_rad_ = value;
}
inline void TurnInPlaceRequest::set_tol_rad(float value) {
  _internal_set_tol_rad(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TurnInPlaceRequest.tol_rad)
}

// uint32 is_absolute = 5;
inline void TurnInPlaceRequest::clear_is_absolute() {
  is_absolute_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 TurnInPlaceRequest::_internal_is_absolute() const {
  return is_absolute_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 TurnInPlaceRequest::is_absolute() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnInPlaceRequest.is_absolute)
  return _internal_is_absolute();
}
inline void TurnInPlaceRequest::_internal_set_is_absolute(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  is_absolute_ = value;
}
inline void TurnInPlaceRequest::set_is_absolute(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_is_absolute(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TurnInPlaceRequest.is_absolute)
}

// int32 id_tag = 6;
inline void TurnInPlaceRequest::clear_id_tag() {
  id_tag_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TurnInPlaceRequest::_internal_id_tag() const {
  return id_tag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TurnInPlaceRequest::id_tag() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnInPlaceRequest.id_tag)
  return _internal_id_tag();
}
inline void TurnInPlaceRequest::_internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  id_tag_ = value;
}
inline void TurnInPlaceRequest::set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_id_tag(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TurnInPlaceRequest.id_tag)
}

// int32 num_retries = 7;
inline void TurnInPlaceRequest::clear_num_retries() {
  num_retries_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TurnInPlaceRequest::_internal_num_retries() const {
  return num_retries_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TurnInPlaceRequest::num_retries() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnInPlaceRequest.num_retries)
  return _internal_num_retries();
}
inline void TurnInPlaceRequest::_internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_retries_ = value;
}
inline void TurnInPlaceRequest::set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_retries(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TurnInPlaceRequest.num_retries)
}

// -------------------------------------------------------------------

// TurnInPlaceResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool TurnInPlaceResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool TurnInPlaceResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& TurnInPlaceResponse::_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& TurnInPlaceResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnInPlaceResponse.status)
  return _internal_status();
}
inline void TurnInPlaceResponse::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.TurnInPlaceResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* TurnInPlaceResponse::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* TurnInPlaceResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.TurnInPlaceResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* TurnInPlaceResponse::_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* TurnInPlaceResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.TurnInPlaceResponse.status)
  return _internal_mutable_status();
}
inline void TurnInPlaceResponse::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.TurnInPlaceResponse.status)
}

// .Anki.Vector.external_interface.ActionResult result = 2;
inline bool TurnInPlaceResponse::_internal_has_result() const {
  return this != internal_default_instance() && result_ != nullptr;
}
inline bool TurnInPlaceResponse::has_result() const {
  return _internal_has_result();
}
inline void TurnInPlaceResponse::clear_result() {
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
}
inline const ::Anki::Vector::external_interface::ActionResult& TurnInPlaceResponse::_internal_result() const {
  const ::Anki::Vector::external_interface::ActionResult* p = result_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ActionResult*>(
      &::Anki::Vector::external_interface::_ActionResult_default_instance_);
}
inline const ::Anki::Vector::external_interface::ActionResult& TurnInPlaceResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnInPlaceResponse.result)
  return _internal_result();
}
inline void TurnInPlaceResponse::unsafe_arena_set_allocated_result(
    ::Anki::Vector::external_interface::ActionResult* result) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(result_);
  }
  result_ = result;
  if (result) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.TurnInPlaceResponse.result)
}
inline ::Anki::Vector::external_interface::ActionResult* TurnInPlaceResponse::release_result() {
  auto temp = unsafe_arena_release_result();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* TurnInPlaceResponse::unsafe_arena_release_result() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.TurnInPlaceResponse.result)
  
  ::Anki::Vector::external_interface::ActionResult* temp = result_;
  result_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* TurnInPlaceResponse::_internal_mutable_result() {
  
  if (result_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ActionResult>(GetArena());
    result_ = p;
  }
  return result_;
}
inline ::Anki::Vector::external_interface::ActionResult* TurnInPlaceResponse::mutable_result() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.TurnInPlaceResponse.result)
  return _internal_mutable_result();
}
inline void TurnInPlaceResponse::set_allocated_result(::Anki::Vector::external_interface::ActionResult* result) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete result_;
  }
  if (result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(result);
    if (message_arena != submessage_arena) {
      result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, result, submessage_arena);
    }
    
  } else {
    
  }
  result_ = result;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.TurnInPlaceResponse.result)
}

// -------------------------------------------------------------------

// SetHeadAngleRequest

// float angle_rad = 1;
inline void SetHeadAngleRequest::clear_angle_rad() {
  angle_rad_ = 0;
}
inline float SetHeadAngleRequest::_internal_angle_rad() const {
  return angle_rad_;
}
inline float SetHeadAngleRequest::angle_rad() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetHeadAngleRequest.angle_rad)
  return _internal_angle_rad();
}
inline void SetHeadAngleRequest::_internal_set_angle_rad(float value) {
  
  angle_rad_ = value;
}
inline void SetHeadAngleRequest::set_angle_rad(float value) {
  _internal_set_angle_rad(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetHeadAngleRequest.angle_rad)
}

// float max_speed_rad_per_sec = 2;
inline void SetHeadAngleRequest::clear_max_speed_rad_per_sec() {
  max_speed_rad_per_sec_ = 0;
}
inline float SetHeadAngleRequest::_internal_max_speed_rad_per_sec() const {
  return max_speed_rad_per_sec_;
}
inline float SetHeadAngleRequest::max_speed_rad_per_sec() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetHeadAngleRequest.max_speed_rad_per_sec)
  return _internal_max_speed_rad_per_sec();
}
inline void SetHeadAngleRequest::_internal_set_max_speed_rad_per_sec(float value) {
  
  max_speed_rad_per_sec_ = value;
}
inline void SetHeadAngleRequest::set_max_speed_rad_per_sec(float value) {
  _internal_set_max_speed_rad_per_sec(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetHeadAngleRequest.max_speed_rad_per_sec)
}

// float accel_rad_per_sec2 = 3;
inline void SetHeadAngleRequest::clear_accel_rad_per_sec2() {
  accel_rad_per_sec2_ = 0;
}
inline float SetHeadAngleRequest::_internal_accel_rad_per_sec2() const {
  return accel_rad_per_sec2_;
}
inline float SetHeadAngleRequest::accel_rad_per_sec2() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetHeadAngleRequest.accel_rad_per_sec2)
  return _internal_accel_rad_per_sec2();
}
inline void SetHeadAngleRequest::_internal_set_accel_rad_per_sec2(float value) {
  
  accel_rad_per_sec2_ = value;
}
inline void SetHeadAngleRequest::set_accel_rad_per_sec2(float value) {
  _internal_set_accel_rad_per_sec2(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetHeadAngleRequest.accel_rad_per_sec2)
}

// float duration_sec = 4;
inline void SetHeadAngleRequest::clear_duration_sec() {
  duration_sec_ = 0;
}
inline float SetHeadAngleRequest::_internal_duration_sec() const {
  return duration_sec_;
}
inline float SetHeadAngleRequest::duration_sec() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetHeadAngleRequest.duration_sec)
  return _internal_duration_sec();
}
inline void SetHeadAngleRequest::_internal_set_duration_sec(float value) {
  
  duration_sec_ = value;
}
inline void SetHeadAngleRequest::set_duration_sec(float value) {
  _internal_set_duration_sec(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetHeadAngleRequest.duration_sec)
}

// int32 id_tag = 5;
inline void SetHeadAngleRequest::clear_id_tag() {
  id_tag_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SetHeadAngleRequest::_internal_id_tag() const {
  return id_tag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SetHeadAngleRequest::id_tag() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetHeadAngleRequest.id_tag)
  return _internal_id_tag();
}
inline void SetHeadAngleRequest::_internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  id_tag_ = value;
}
inline void SetHeadAngleRequest::set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_id_tag(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetHeadAngleRequest.id_tag)
}

// int32 num_retries = 6;
inline void SetHeadAngleRequest::clear_num_retries() {
  num_retries_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SetHeadAngleRequest::_internal_num_retries() const {
  return num_retries_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SetHeadAngleRequest::num_retries() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetHeadAngleRequest.num_retries)
  return _internal_num_retries();
}
inline void SetHeadAngleRequest::_internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_retries_ = value;
}
inline void SetHeadAngleRequest::set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_retries(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetHeadAngleRequest.num_retries)
}

// -------------------------------------------------------------------

// SetHeadAngleResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool SetHeadAngleResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool SetHeadAngleResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& SetHeadAngleResponse::_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& SetHeadAngleResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetHeadAngleResponse.status)
  return _internal_status();
}
inline void SetHeadAngleResponse::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.SetHeadAngleResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* SetHeadAngleResponse::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* SetHeadAngleResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SetHeadAngleResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* SetHeadAngleResponse::_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* SetHeadAngleResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SetHeadAngleResponse.status)
  return _internal_mutable_status();
}
inline void SetHeadAngleResponse::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.SetHeadAngleResponse.status)
}

// .Anki.Vector.external_interface.ActionResult result = 2;
inline bool SetHeadAngleResponse::_internal_has_result() const {
  return this != internal_default_instance() && result_ != nullptr;
}
inline bool SetHeadAngleResponse::has_result() const {
  return _internal_has_result();
}
inline void SetHeadAngleResponse::clear_result() {
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
}
inline const ::Anki::Vector::external_interface::ActionResult& SetHeadAngleResponse::_internal_result() const {
  const ::Anki::Vector::external_interface::ActionResult* p = result_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ActionResult*>(
      &::Anki::Vector::external_interface::_ActionResult_default_instance_);
}
inline const ::Anki::Vector::external_interface::ActionResult& SetHeadAngleResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetHeadAngleResponse.result)
  return _internal_result();
}
inline void SetHeadAngleResponse::unsafe_arena_set_allocated_result(
    ::Anki::Vector::external_interface::ActionResult* result) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(result_);
  }
  result_ = result;
  if (result) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.SetHeadAngleResponse.result)
}
inline ::Anki::Vector::external_interface::ActionResult* SetHeadAngleResponse::release_result() {
  auto temp = unsafe_arena_release_result();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* SetHeadAngleResponse::unsafe_arena_release_result() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SetHeadAngleResponse.result)
  
  ::Anki::Vector::external_interface::ActionResult* temp = result_;
  result_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* SetHeadAngleResponse::_internal_mutable_result() {
  
  if (result_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ActionResult>(GetArena());
    result_ = p;
  }
  return result_;
}
inline ::Anki::Vector::external_interface::ActionResult* SetHeadAngleResponse::mutable_result() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SetHeadAngleResponse.result)
  return _internal_mutable_result();
}
inline void SetHeadAngleResponse::set_allocated_result(::Anki::Vector::external_interface::ActionResult* result) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete result_;
  }
  if (result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(result);
    if (message_arena != submessage_arena) {
      result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, result, submessage_arena);
    }
    
  } else {
    
  }
  result_ = result;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.SetHeadAngleResponse.result)
}

// -------------------------------------------------------------------

// SetLiftHeightRequest

// float height_mm = 1;
inline void SetLiftHeightRequest::clear_height_mm() {
  height_mm_ = 0;
}
inline float SetLiftHeightRequest::_internal_height_mm() const {
  return height_mm_;
}
inline float SetLiftHeightRequest::height_mm() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetLiftHeightRequest.height_mm)
  return _internal_height_mm();
}
inline void SetLiftHeightRequest::_internal_set_height_mm(float value) {
  
  height_mm_ = value;
}
inline void SetLiftHeightRequest::set_height_mm(float value) {
  _internal_set_height_mm(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetLiftHeightRequest.height_mm)
}

// float max_speed_rad_per_sec = 2;
inline void SetLiftHeightRequest::clear_max_speed_rad_per_sec() {
  max_speed_rad_per_sec_ = 0;
}
inline float SetLiftHeightRequest::_internal_max_speed_rad_per_sec() const {
  return max_speed_rad_per_sec_;
}
inline float SetLiftHeightRequest::max_speed_rad_per_sec() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetLiftHeightRequest.max_speed_rad_per_sec)
  return _internal_max_speed_rad_per_sec();
}
inline void SetLiftHeightRequest::_internal_set_max_speed_rad_per_sec(float value) {
  
  max_speed_rad_per_sec_ = value;
}
inline void SetLiftHeightRequest::set_max_speed_rad_per_sec(float value) {
  _internal_set_max_speed_rad_per_sec(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetLiftHeightRequest.max_speed_rad_per_sec)
}

// float accel_rad_per_sec2 = 3;
inline void SetLiftHeightRequest::clear_accel_rad_per_sec2() {
  accel_rad_per_sec2_ = 0;
}
inline float SetLiftHeightRequest::_internal_accel_rad_per_sec2() const {
  return accel_rad_per_sec2_;
}
inline float SetLiftHeightRequest::accel_rad_per_sec2() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetLiftHeightRequest.accel_rad_per_sec2)
  return _internal_accel_rad_per_sec2();
}
inline void SetLiftHeightRequest::_internal_set_accel_rad_per_sec2(float value) {
  
  accel_rad_per_sec2_ = value;
}
inline void SetLiftHeightRequest::set_accel_rad_per_sec2(float value) {
  _internal_set_accel_rad_per_sec2(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetLiftHeightRequest.accel_rad_per_sec2)
}

// float duration_sec = 4;
inline void SetLiftHeightRequest::clear_duration_sec() {
  duration_sec_ = 0;
}
inline float SetLiftHeightRequest::_internal_duration_sec() const {
  return duration_sec_;
}
inline float SetLiftHeightRequest::duration_sec() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetLiftHeightRequest.duration_sec)
  return _internal_duration_sec();
}
inline void SetLiftHeightRequest::_internal_set_duration_sec(float value) {
  
  duration_sec_ = value;
}
inline void SetLiftHeightRequest::set_duration_sec(float value) {
  _internal_set_duration_sec(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetLiftHeightRequest.duration_sec)
}

// int32 id_tag = 5;
inline void SetLiftHeightRequest::clear_id_tag() {
  id_tag_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SetLiftHeightRequest::_internal_id_tag() const {
  return id_tag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SetLiftHeightRequest::id_tag() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetLiftHeightRequest.id_tag)
  return _internal_id_tag();
}
inline void SetLiftHeightRequest::_internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  id_tag_ = value;
}
inline void SetLiftHeightRequest::set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_id_tag(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetLiftHeightRequest.id_tag)
}

// int32 num_retries = 6;
inline void SetLiftHeightRequest::clear_num_retries() {
  num_retries_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SetLiftHeightRequest::_internal_num_retries() const {
  return num_retries_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 SetLiftHeightRequest::num_retries() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetLiftHeightRequest.num_retries)
  return _internal_num_retries();
}
inline void SetLiftHeightRequest::_internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_retries_ = value;
}
inline void SetLiftHeightRequest::set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_retries(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetLiftHeightRequest.num_retries)
}

// -------------------------------------------------------------------

// SetLiftHeightResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool SetLiftHeightResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool SetLiftHeightResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& SetLiftHeightResponse::_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& SetLiftHeightResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetLiftHeightResponse.status)
  return _internal_status();
}
inline void SetLiftHeightResponse::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.SetLiftHeightResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* SetLiftHeightResponse::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* SetLiftHeightResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SetLiftHeightResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* SetLiftHeightResponse::_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* SetLiftHeightResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SetLiftHeightResponse.status)
  return _internal_mutable_status();
}
inline void SetLiftHeightResponse::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.SetLiftHeightResponse.status)
}

// .Anki.Vector.external_interface.ActionResult result = 2;
inline bool SetLiftHeightResponse::_internal_has_result() const {
  return this != internal_default_instance() && result_ != nullptr;
}
inline bool SetLiftHeightResponse::has_result() const {
  return _internal_has_result();
}
inline void SetLiftHeightResponse::clear_result() {
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
}
inline const ::Anki::Vector::external_interface::ActionResult& SetLiftHeightResponse::_internal_result() const {
  const ::Anki::Vector::external_interface::ActionResult* p = result_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ActionResult*>(
      &::Anki::Vector::external_interface::_ActionResult_default_instance_);
}
inline const ::Anki::Vector::external_interface::ActionResult& SetLiftHeightResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetLiftHeightResponse.result)
  return _internal_result();
}
inline void SetLiftHeightResponse::unsafe_arena_set_allocated_result(
    ::Anki::Vector::external_interface::ActionResult* result) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(result_);
  }
  result_ = result;
  if (result) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.SetLiftHeightResponse.result)
}
inline ::Anki::Vector::external_interface::ActionResult* SetLiftHeightResponse::release_result() {
  auto temp = unsafe_arena_release_result();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* SetLiftHeightResponse::unsafe_arena_release_result() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SetLiftHeightResponse.result)
  
  ::Anki::Vector::external_interface::ActionResult* temp = result_;
  result_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* SetLiftHeightResponse::_internal_mutable_result() {
  
  if (result_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ActionResult>(GetArena());
    result_ = p;
  }
  return result_;
}
inline ::Anki::Vector::external_interface::ActionResult* SetLiftHeightResponse::mutable_result() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SetLiftHeightResponse.result)
  return _internal_mutable_result();
}
inline void SetLiftHeightResponse::set_allocated_result(::Anki::Vector::external_interface::ActionResult* result) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete result_;
  }
  if (result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(result);
    if (message_arena != submessage_arena) {
      result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, result, submessage_arena);
    }
    
  } else {
    
  }
  result_ = result;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.SetLiftHeightResponse.result)
}

// -------------------------------------------------------------------

// TurnTowardsFaceRequest

// int32 face_id = 1;
inline void TurnTowardsFaceRequest::clear_face_id() {
  face_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TurnTowardsFaceRequest::_internal_face_id() const {
  return face_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TurnTowardsFaceRequest::face_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnTowardsFaceRequest.face_id)
  return _internal_face_id();
}
inline void TurnTowardsFaceRequest::_internal_set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  face_id_ = value;
}
inline void TurnTowardsFaceRequest::set_face_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_face_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TurnTowardsFaceRequest.face_id)
}

// float max_turn_angle_rad = 2;
inline void TurnTowardsFaceRequest::clear_max_turn_angle_rad() {
  max_turn_angle_rad_ = 0;
}
inline float TurnTowardsFaceRequest::_internal_max_turn_angle_rad() const {
  return max_turn_angle_rad_;
}
inline float TurnTowardsFaceRequest::max_turn_angle_rad() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnTowardsFaceRequest.max_turn_angle_rad)
  return _internal_max_turn_angle_rad();
}
inline void TurnTowardsFaceRequest::_internal_set_max_turn_angle_rad(float value) {
  
  max_turn_angle_rad_ = value;
}
inline void TurnTowardsFaceRequest::set_max_turn_angle_rad(float value) {
  _internal_set_max_turn_angle_rad(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TurnTowardsFaceRequest.max_turn_angle_rad)
}

// int32 id_tag = 3;
inline void TurnTowardsFaceRequest::clear_id_tag() {
  id_tag_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TurnTowardsFaceRequest::_internal_id_tag() const {
  return id_tag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TurnTowardsFaceRequest::id_tag() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnTowardsFaceRequest.id_tag)
  return _internal_id_tag();
}
inline void TurnTowardsFaceRequest::_internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  id_tag_ = value;
}
inline void TurnTowardsFaceRequest::set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_id_tag(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TurnTowardsFaceRequest.id_tag)
}

// int32 num_retries = 4;
inline void TurnTowardsFaceRequest::clear_num_retries() {
  num_retries_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TurnTowardsFaceRequest::_internal_num_retries() const {
  return num_retries_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TurnTowardsFaceRequest::num_retries() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnTowardsFaceRequest.num_retries)
  return _internal_num_retries();
}
inline void TurnTowardsFaceRequest::_internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_retries_ = value;
}
inline void TurnTowardsFaceRequest::set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_retries(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.TurnTowardsFaceRequest.num_retries)
}

// -------------------------------------------------------------------

// TurnTowardsFaceResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool TurnTowardsFaceResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool TurnTowardsFaceResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& TurnTowardsFaceResponse::_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& TurnTowardsFaceResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnTowardsFaceResponse.status)
  return _internal_status();
}
inline void TurnTowardsFaceResponse::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.TurnTowardsFaceResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* TurnTowardsFaceResponse::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* TurnTowardsFaceResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.TurnTowardsFaceResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* TurnTowardsFaceResponse::_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* TurnTowardsFaceResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.TurnTowardsFaceResponse.status)
  return _internal_mutable_status();
}
inline void TurnTowardsFaceResponse::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.TurnTowardsFaceResponse.status)
}

// .Anki.Vector.external_interface.ActionResult result = 2;
inline bool TurnTowardsFaceResponse::_internal_has_result() const {
  return this != internal_default_instance() && result_ != nullptr;
}
inline bool TurnTowardsFaceResponse::has_result() const {
  return _internal_has_result();
}
inline void TurnTowardsFaceResponse::clear_result() {
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
}
inline const ::Anki::Vector::external_interface::ActionResult& TurnTowardsFaceResponse::_internal_result() const {
  const ::Anki::Vector::external_interface::ActionResult* p = result_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ActionResult*>(
      &::Anki::Vector::external_interface::_ActionResult_default_instance_);
}
inline const ::Anki::Vector::external_interface::ActionResult& TurnTowardsFaceResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.TurnTowardsFaceResponse.result)
  return _internal_result();
}
inline void TurnTowardsFaceResponse::unsafe_arena_set_allocated_result(
    ::Anki::Vector::external_interface::ActionResult* result) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(result_);
  }
  result_ = result;
  if (result) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.TurnTowardsFaceResponse.result)
}
inline ::Anki::Vector::external_interface::ActionResult* TurnTowardsFaceResponse::release_result() {
  auto temp = unsafe_arena_release_result();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* TurnTowardsFaceResponse::unsafe_arena_release_result() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.TurnTowardsFaceResponse.result)
  
  ::Anki::Vector::external_interface::ActionResult* temp = result_;
  result_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* TurnTowardsFaceResponse::_internal_mutable_result() {
  
  if (result_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ActionResult>(GetArena());
    result_ = p;
  }
  return result_;
}
inline ::Anki::Vector::external_interface::ActionResult* TurnTowardsFaceResponse::mutable_result() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.TurnTowardsFaceResponse.result)
  return _internal_mutable_result();
}
inline void TurnTowardsFaceResponse::set_allocated_result(::Anki::Vector::external_interface::ActionResult* result) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete result_;
  }
  if (result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(result);
    if (message_arena != submessage_arena) {
      result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, result, submessage_arena);
    }
    
  } else {
    
  }
  result_ = result;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.TurnTowardsFaceResponse.result)
}

// -------------------------------------------------------------------

// GoToObjectRequest

// int32 object_id = 1;
inline void GoToObjectRequest::clear_object_id() {
  object_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 GoToObjectRequest::_internal_object_id() const {
  return object_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 GoToObjectRequest::object_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToObjectRequest.object_id)
  return _internal_object_id();
}
inline void GoToObjectRequest::_internal_set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  object_id_ = value;
}
inline void GoToObjectRequest::set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_object_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GoToObjectRequest.object_id)
}

// .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
inline bool GoToObjectRequest::_internal_has_motion_prof() const {
  return this != internal_default_instance() && motion_prof_ != nullptr;
}
inline bool GoToObjectRequest::has_motion_prof() const {
  return _internal_has_motion_prof();
}
inline void GoToObjectRequest::clear_motion_prof() {
  if (GetArena() == nullptr && motion_prof_ != nullptr) {
    delete motion_prof_;
  }
  motion_prof_ = nullptr;
}
inline const ::Anki::Vector::external_interface::PathMotionProfile& GoToObjectRequest::_internal_motion_prof() const {
  const ::Anki::Vector::external_interface::PathMotionProfile* p = motion_prof_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::PathMotionProfile*>(
      &::Anki::Vector::external_interface::_PathMotionProfile_default_instance_);
}
inline const ::Anki::Vector::external_interface::PathMotionProfile& GoToObjectRequest::motion_prof() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToObjectRequest.motion_prof)
  return _internal_motion_prof();
}
inline void GoToObjectRequest::unsafe_arena_set_allocated_motion_prof(
    ::Anki::Vector::external_interface::PathMotionProfile* motion_prof) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(motion_prof_);
  }
  motion_prof_ = motion_prof;
  if (motion_prof) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GoToObjectRequest.motion_prof)
}
inline ::Anki::Vector::external_interface::PathMotionProfile* GoToObjectRequest::release_motion_prof() {
  auto temp = unsafe_arena_release_motion_prof();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* GoToObjectRequest::unsafe_arena_release_motion_prof() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GoToObjectRequest.motion_prof)
  
  ::Anki::Vector::external_interface::PathMotionProfile* temp = motion_prof_;
  motion_prof_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* GoToObjectRequest::_internal_mutable_motion_prof() {
  
  if (motion_prof_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::PathMotionProfile>(GetArena());
    motion_prof_ = p;
  }
  return motion_prof_;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* GoToObjectRequest::mutable_motion_prof() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GoToObjectRequest.motion_prof)
  return _internal_mutable_motion_prof();
}
inline void GoToObjectRequest::set_allocated_motion_prof(::Anki::Vector::external_interface::PathMotionProfile* motion_prof) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete motion_prof_;
  }
  if (motion_prof) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(motion_prof);
    if (message_arena != submessage_arena) {
      motion_prof = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, motion_prof, submessage_arena);
    }
    
  } else {
    
  }
  motion_prof_ = motion_prof;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GoToObjectRequest.motion_prof)
}

// float distance_from_object_origin_mm = 3;
inline void GoToObjectRequest::clear_distance_from_object_origin_mm() {
  distance_from_object_origin_mm_ = 0;
}
inline float GoToObjectRequest::_internal_distance_from_object_origin_mm() const {
  return distance_from_object_origin_mm_;
}
inline float GoToObjectRequest::distance_from_object_origin_mm() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToObjectRequest.distance_from_object_origin_mm)
  return _internal_distance_from_object_origin_mm();
}
inline void GoToObjectRequest::_internal_set_distance_from_object_origin_mm(float value) {
  
  distance_from_object_origin_mm_ = value;
}
inline void GoToObjectRequest::set_distance_from_object_origin_mm(float value) {
  _internal_set_distance_from_object_origin_mm(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GoToObjectRequest.distance_from_object_origin_mm)
}

// bool use_pre_dock_pose = 4;
inline void GoToObjectRequest::clear_use_pre_dock_pose() {
  use_pre_dock_pose_ = false;
}
inline bool GoToObjectRequest::_internal_use_pre_dock_pose() const {
  return use_pre_dock_pose_;
}
inline bool GoToObjectRequest::use_pre_dock_pose() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToObjectRequest.use_pre_dock_pose)
  return _internal_use_pre_dock_pose();
}
inline void GoToObjectRequest::_internal_set_use_pre_dock_pose(bool value) {
  
  use_pre_dock_pose_ = value;
}
inline void GoToObjectRequest::set_use_pre_dock_pose(bool value) {
  _internal_set_use_pre_dock_pose(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GoToObjectRequest.use_pre_dock_pose)
}

// int32 id_tag = 5;
inline void GoToObjectRequest::clear_id_tag() {
  id_tag_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 GoToObjectRequest::_internal_id_tag() const {
  return id_tag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 GoToObjectRequest::id_tag() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToObjectRequest.id_tag)
  return _internal_id_tag();
}
inline void GoToObjectRequest::_internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  id_tag_ = value;
}
inline void GoToObjectRequest::set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_id_tag(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GoToObjectRequest.id_tag)
}

// int32 num_retries = 6;
inline void GoToObjectRequest::clear_num_retries() {
  num_retries_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 GoToObjectRequest::_internal_num_retries() const {
  return num_retries_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 GoToObjectRequest::num_retries() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToObjectRequest.num_retries)
  return _internal_num_retries();
}
inline void GoToObjectRequest::_internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_retries_ = value;
}
inline void GoToObjectRequest::set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_retries(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.GoToObjectRequest.num_retries)
}

// -------------------------------------------------------------------

// GoToObjectResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool GoToObjectResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool GoToObjectResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& GoToObjectResponse::_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& GoToObjectResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToObjectResponse.status)
  return _internal_status();
}
inline void GoToObjectResponse::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.GoToObjectResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* GoToObjectResponse::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* GoToObjectResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GoToObjectResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* GoToObjectResponse::_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* GoToObjectResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GoToObjectResponse.status)
  return _internal_mutable_status();
}
inline void GoToObjectResponse::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.GoToObjectResponse.status)
}

// .Anki.Vector.external_interface.ActionResult result = 2;
inline bool GoToObjectResponse::_internal_has_result() const {
  return this != internal_default_instance() && result_ != nullptr;
}
inline bool GoToObjectResponse::has_result() const {
  return _internal_has_result();
}
inline void GoToObjectResponse::clear_result() {
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
}
inline const ::Anki::Vector::external_interface::ActionResult& GoToObjectResponse::_internal_result() const {
  const ::Anki::Vector::external_interface::ActionResult* p = result_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ActionResult*>(
      &::Anki::Vector::external_interface::_ActionResult_default_instance_);
}
inline const ::Anki::Vector::external_interface::ActionResult& GoToObjectResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.GoToObjectResponse.result)
  return _internal_result();
}
inline void GoToObjectResponse::unsafe_arena_set_allocated_result(
    ::Anki::Vector::external_interface::ActionResult* result) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(result_);
  }
  result_ = result;
  if (result) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.GoToObjectResponse.result)
}
inline ::Anki::Vector::external_interface::ActionResult* GoToObjectResponse::release_result() {
  auto temp = unsafe_arena_release_result();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* GoToObjectResponse::unsafe_arena_release_result() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.GoToObjectResponse.result)
  
  ::Anki::Vector::external_interface::ActionResult* temp = result_;
  result_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* GoToObjectResponse::_internal_mutable_result() {
  
  if (result_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ActionResult>(GetArena());
    result_ = p;
  }
  return result_;
}
inline ::Anki::Vector::external_interface::ActionResult* GoToObjectResponse::mutable_result() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.GoToObjectResponse.result)
  return _internal_mutable_result();
}
inline void GoToObjectResponse::set_allocated_result(::Anki::Vector::external_interface::ActionResult* result) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete result_;
  }
  if (result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(result);
    if (message_arena != submessage_arena) {
      result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, result, submessage_arena);
    }
    
  } else {
    
  }
  result_ = result;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GoToObjectResponse.result)
}

// -------------------------------------------------------------------

// RollObjectRequest

// int32 object_id = 1;
inline void RollObjectRequest::clear_object_id() {
  object_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RollObjectRequest::_internal_object_id() const {
  return object_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RollObjectRequest::object_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RollObjectRequest.object_id)
  return _internal_object_id();
}
inline void RollObjectRequest::_internal_set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  object_id_ = value;
}
inline void RollObjectRequest::set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_object_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RollObjectRequest.object_id)
}

// .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
inline bool RollObjectRequest::_internal_has_motion_prof() const {
  return this != internal_default_instance() && motion_prof_ != nullptr;
}
inline bool RollObjectRequest::has_motion_prof() const {
  return _internal_has_motion_prof();
}
inline void RollObjectRequest::clear_motion_prof() {
  if (GetArena() == nullptr && motion_prof_ != nullptr) {
    delete motion_prof_;
  }
  motion_prof_ = nullptr;
}
inline const ::Anki::Vector::external_interface::PathMotionProfile& RollObjectRequest::_internal_motion_prof() const {
  const ::Anki::Vector::external_interface::PathMotionProfile* p = motion_prof_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::PathMotionProfile*>(
      &::Anki::Vector::external_interface::_PathMotionProfile_default_instance_);
}
inline const ::Anki::Vector::external_interface::PathMotionProfile& RollObjectRequest::motion_prof() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RollObjectRequest.motion_prof)
  return _internal_motion_prof();
}
inline void RollObjectRequest::unsafe_arena_set_allocated_motion_prof(
    ::Anki::Vector::external_interface::PathMotionProfile* motion_prof) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(motion_prof_);
  }
  motion_prof_ = motion_prof;
  if (motion_prof) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RollObjectRequest.motion_prof)
}
inline ::Anki::Vector::external_interface::PathMotionProfile* RollObjectRequest::release_motion_prof() {
  auto temp = unsafe_arena_release_motion_prof();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* RollObjectRequest::unsafe_arena_release_motion_prof() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RollObjectRequest.motion_prof)
  
  ::Anki::Vector::external_interface::PathMotionProfile* temp = motion_prof_;
  motion_prof_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* RollObjectRequest::_internal_mutable_motion_prof() {
  
  if (motion_prof_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::PathMotionProfile>(GetArena());
    motion_prof_ = p;
  }
  return motion_prof_;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* RollObjectRequest::mutable_motion_prof() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RollObjectRequest.motion_prof)
  return _internal_mutable_motion_prof();
}
inline void RollObjectRequest::set_allocated_motion_prof(::Anki::Vector::external_interface::PathMotionProfile* motion_prof) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete motion_prof_;
  }
  if (motion_prof) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(motion_prof);
    if (message_arena != submessage_arena) {
      motion_prof = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, motion_prof, submessage_arena);
    }
    
  } else {
    
  }
  motion_prof_ = motion_prof;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RollObjectRequest.motion_prof)
}

// float approach_angle_rad = 3;
inline void RollObjectRequest::clear_approach_angle_rad() {
  approach_angle_rad_ = 0;
}
inline float RollObjectRequest::_internal_approach_angle_rad() const {
  return approach_angle_rad_;
}
inline float RollObjectRequest::approach_angle_rad() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RollObjectRequest.approach_angle_rad)
  return _internal_approach_angle_rad();
}
inline void RollObjectRequest::_internal_set_approach_angle_rad(float value) {
  
  approach_angle_rad_ = value;
}
inline void RollObjectRequest::set_approach_angle_rad(float value) {
  _internal_set_approach_angle_rad(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RollObjectRequest.approach_angle_rad)
}

// bool use_approach_angle = 4;
inline void RollObjectRequest::clear_use_approach_angle() {
  use_approach_angle_ = false;
}
inline bool RollObjectRequest::_internal_use_approach_angle() const {
  return use_approach_angle_;
}
inline bool RollObjectRequest::use_approach_angle() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RollObjectRequest.use_approach_angle)
  return _internal_use_approach_angle();
}
inline void RollObjectRequest::_internal_set_use_approach_angle(bool value) {
  
  use_approach_angle_ = value;
}
inline void RollObjectRequest::set_use_approach_angle(bool value) {
  _internal_set_use_approach_angle(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RollObjectRequest.use_approach_angle)
}

// bool use_pre_dock_pose = 5;
inline void RollObjectRequest::clear_use_pre_dock_pose() {
  use_pre_dock_pose_ = false;
}
inline bool RollObjectRequest::_internal_use_pre_dock_pose() const {
  return use_pre_dock_pose_;
}
inline bool RollObjectRequest::use_pre_dock_pose() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RollObjectRequest.use_pre_dock_pose)
  return _internal_use_pre_dock_pose();
}
inline void RollObjectRequest::_internal_set_use_pre_dock_pose(bool value) {
  
  use_pre_dock_pose_ = value;
}
inline void RollObjectRequest::set_use_pre_dock_pose(bool value) {
  _internal_set_use_pre_dock_pose(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RollObjectRequest.use_pre_dock_pose)
}

// int32 id_tag = 6;
inline void RollObjectRequest::clear_id_tag() {
  id_tag_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RollObjectRequest::_internal_id_tag() const {
  return id_tag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RollObjectRequest::id_tag() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RollObjectRequest.id_tag)
  return _internal_id_tag();
}
inline void RollObjectRequest::_internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  id_tag_ = value;
}
inline void RollObjectRequest::set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_id_tag(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RollObjectRequest.id_tag)
}

// int32 num_retries = 7;
inline void RollObjectRequest::clear_num_retries() {
  num_retries_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RollObjectRequest::_internal_num_retries() const {
  return num_retries_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RollObjectRequest::num_retries() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RollObjectRequest.num_retries)
  return _internal_num_retries();
}
inline void RollObjectRequest::_internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_retries_ = value;
}
inline void RollObjectRequest::set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_retries(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.RollObjectRequest.num_retries)
}

// -------------------------------------------------------------------

// RollObjectResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool RollObjectResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool RollObjectResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& RollObjectResponse::_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& RollObjectResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RollObjectResponse.status)
  return _internal_status();
}
inline void RollObjectResponse::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.RollObjectResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* RollObjectResponse::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* RollObjectResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RollObjectResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* RollObjectResponse::_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* RollObjectResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RollObjectResponse.status)
  return _internal_mutable_status();
}
inline void RollObjectResponse::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.RollObjectResponse.status)
}

// .Anki.Vector.external_interface.ActionResult result = 2;
inline bool RollObjectResponse::_internal_has_result() const {
  return this != internal_default_instance() && result_ != nullptr;
}
inline bool RollObjectResponse::has_result() const {
  return _internal_has_result();
}
inline void RollObjectResponse::clear_result() {
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
}
inline const ::Anki::Vector::external_interface::ActionResult& RollObjectResponse::_internal_result() const {
  const ::Anki::Vector::external_interface::ActionResult* p = result_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ActionResult*>(
      &::Anki::Vector::external_interface::_ActionResult_default_instance_);
}
inline const ::Anki::Vector::external_interface::ActionResult& RollObjectResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RollObjectResponse.result)
  return _internal_result();
}
inline void RollObjectResponse::unsafe_arena_set_allocated_result(
    ::Anki::Vector::external_interface::ActionResult* result) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(result_);
  }
  result_ = result;
  if (result) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.RollObjectResponse.result)
}
inline ::Anki::Vector::external_interface::ActionResult* RollObjectResponse::release_result() {
  auto temp = unsafe_arena_release_result();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* RollObjectResponse::unsafe_arena_release_result() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.RollObjectResponse.result)
  
  ::Anki::Vector::external_interface::ActionResult* temp = result_;
  result_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* RollObjectResponse::_internal_mutable_result() {
  
  if (result_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ActionResult>(GetArena());
    result_ = p;
  }
  return result_;
}
inline ::Anki::Vector::external_interface::ActionResult* RollObjectResponse::mutable_result() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RollObjectResponse.result)
  return _internal_mutable_result();
}
inline void RollObjectResponse::set_allocated_result(::Anki::Vector::external_interface::ActionResult* result) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete result_;
  }
  if (result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(result);
    if (message_arena != submessage_arena) {
      result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, result, submessage_arena);
    }
    
  } else {
    
  }
  result_ = result;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.RollObjectResponse.result)
}

// -------------------------------------------------------------------

// PopAWheelieRequest

// int32 object_id = 1;
inline void PopAWheelieRequest::clear_object_id() {
  object_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PopAWheelieRequest::_internal_object_id() const {
  return object_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PopAWheelieRequest::object_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PopAWheelieRequest.object_id)
  return _internal_object_id();
}
inline void PopAWheelieRequest::_internal_set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  object_id_ = value;
}
inline void PopAWheelieRequest::set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_object_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PopAWheelieRequest.object_id)
}

// .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
inline bool PopAWheelieRequest::_internal_has_motion_prof() const {
  return this != internal_default_instance() && motion_prof_ != nullptr;
}
inline bool PopAWheelieRequest::has_motion_prof() const {
  return _internal_has_motion_prof();
}
inline void PopAWheelieRequest::clear_motion_prof() {
  if (GetArena() == nullptr && motion_prof_ != nullptr) {
    delete motion_prof_;
  }
  motion_prof_ = nullptr;
}
inline const ::Anki::Vector::external_interface::PathMotionProfile& PopAWheelieRequest::_internal_motion_prof() const {
  const ::Anki::Vector::external_interface::PathMotionProfile* p = motion_prof_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::PathMotionProfile*>(
      &::Anki::Vector::external_interface::_PathMotionProfile_default_instance_);
}
inline const ::Anki::Vector::external_interface::PathMotionProfile& PopAWheelieRequest::motion_prof() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PopAWheelieRequest.motion_prof)
  return _internal_motion_prof();
}
inline void PopAWheelieRequest::unsafe_arena_set_allocated_motion_prof(
    ::Anki::Vector::external_interface::PathMotionProfile* motion_prof) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(motion_prof_);
  }
  motion_prof_ = motion_prof;
  if (motion_prof) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.PopAWheelieRequest.motion_prof)
}
inline ::Anki::Vector::external_interface::PathMotionProfile* PopAWheelieRequest::release_motion_prof() {
  auto temp = unsafe_arena_release_motion_prof();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* PopAWheelieRequest::unsafe_arena_release_motion_prof() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PopAWheelieRequest.motion_prof)
  
  ::Anki::Vector::external_interface::PathMotionProfile* temp = motion_prof_;
  motion_prof_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* PopAWheelieRequest::_internal_mutable_motion_prof() {
  
  if (motion_prof_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::PathMotionProfile>(GetArena());
    motion_prof_ = p;
  }
  return motion_prof_;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* PopAWheelieRequest::mutable_motion_prof() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PopAWheelieRequest.motion_prof)
  return _internal_mutable_motion_prof();
}
inline void PopAWheelieRequest::set_allocated_motion_prof(::Anki::Vector::external_interface::PathMotionProfile* motion_prof) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete motion_prof_;
  }
  if (motion_prof) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(motion_prof);
    if (message_arena != submessage_arena) {
      motion_prof = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, motion_prof, submessage_arena);
    }
    
  } else {
    
  }
  motion_prof_ = motion_prof;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.PopAWheelieRequest.motion_prof)
}

// float approach_angle_rad = 3;
inline void PopAWheelieRequest::clear_approach_angle_rad() {
  approach_angle_rad_ = 0;
}
inline float PopAWheelieRequest::_internal_approach_angle_rad() const {
  return approach_angle_rad_;
}
inline float PopAWheelieRequest::approach_angle_rad() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PopAWheelieRequest.approach_angle_rad)
  return _internal_approach_angle_rad();
}
inline void PopAWheelieRequest::_internal_set_approach_angle_rad(float value) {
  
  approach_angle_rad_ = value;
}
inline void PopAWheelieRequest::set_approach_angle_rad(float value) {
  _internal_set_approach_angle_rad(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PopAWheelieRequest.approach_angle_rad)
}

// bool use_approach_angle = 4;
inline void PopAWheelieRequest::clear_use_approach_angle() {
  use_approach_angle_ = false;
}
inline bool PopAWheelieRequest::_internal_use_approach_angle() const {
  return use_approach_angle_;
}
inline bool PopAWheelieRequest::use_approach_angle() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PopAWheelieRequest.use_approach_angle)
  return _internal_use_approach_angle();
}
inline void PopAWheelieRequest::_internal_set_use_approach_angle(bool value) {
  
  use_approach_angle_ = value;
}
inline void PopAWheelieRequest::set_use_approach_angle(bool value) {
  _internal_set_use_approach_angle(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PopAWheelieRequest.use_approach_angle)
}

// bool use_pre_dock_pose = 5;
inline void PopAWheelieRequest::clear_use_pre_dock_pose() {
  use_pre_dock_pose_ = false;
}
inline bool PopAWheelieRequest::_internal_use_pre_dock_pose() const {
  return use_pre_dock_pose_;
}
inline bool PopAWheelieRequest::use_pre_dock_pose() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PopAWheelieRequest.use_pre_dock_pose)
  return _internal_use_pre_dock_pose();
}
inline void PopAWheelieRequest::_internal_set_use_pre_dock_pose(bool value) {
  
  use_pre_dock_pose_ = value;
}
inline void PopAWheelieRequest::set_use_pre_dock_pose(bool value) {
  _internal_set_use_pre_dock_pose(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PopAWheelieRequest.use_pre_dock_pose)
}

// int32 id_tag = 6;
inline void PopAWheelieRequest::clear_id_tag() {
  id_tag_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PopAWheelieRequest::_internal_id_tag() const {
  return id_tag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PopAWheelieRequest::id_tag() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PopAWheelieRequest.id_tag)
  return _internal_id_tag();
}
inline void PopAWheelieRequest::_internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  id_tag_ = value;
}
inline void PopAWheelieRequest::set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_id_tag(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PopAWheelieRequest.id_tag)
}

// int32 num_retries = 7;
inline void PopAWheelieRequest::clear_num_retries() {
  num_retries_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PopAWheelieRequest::_internal_num_retries() const {
  return num_retries_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PopAWheelieRequest::num_retries() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PopAWheelieRequest.num_retries)
  return _internal_num_retries();
}
inline void PopAWheelieRequest::_internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_retries_ = value;
}
inline void PopAWheelieRequest::set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_retries(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PopAWheelieRequest.num_retries)
}

// -------------------------------------------------------------------

// PopAWheelieResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool PopAWheelieResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool PopAWheelieResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& PopAWheelieResponse::_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& PopAWheelieResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PopAWheelieResponse.status)
  return _internal_status();
}
inline void PopAWheelieResponse::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.PopAWheelieResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* PopAWheelieResponse::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* PopAWheelieResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PopAWheelieResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* PopAWheelieResponse::_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* PopAWheelieResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PopAWheelieResponse.status)
  return _internal_mutable_status();
}
inline void PopAWheelieResponse::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.PopAWheelieResponse.status)
}

// .Anki.Vector.external_interface.ActionResult result = 2;
inline bool PopAWheelieResponse::_internal_has_result() const {
  return this != internal_default_instance() && result_ != nullptr;
}
inline bool PopAWheelieResponse::has_result() const {
  return _internal_has_result();
}
inline void PopAWheelieResponse::clear_result() {
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
}
inline const ::Anki::Vector::external_interface::ActionResult& PopAWheelieResponse::_internal_result() const {
  const ::Anki::Vector::external_interface::ActionResult* p = result_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ActionResult*>(
      &::Anki::Vector::external_interface::_ActionResult_default_instance_);
}
inline const ::Anki::Vector::external_interface::ActionResult& PopAWheelieResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PopAWheelieResponse.result)
  return _internal_result();
}
inline void PopAWheelieResponse::unsafe_arena_set_allocated_result(
    ::Anki::Vector::external_interface::ActionResult* result) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(result_);
  }
  result_ = result;
  if (result) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.PopAWheelieResponse.result)
}
inline ::Anki::Vector::external_interface::ActionResult* PopAWheelieResponse::release_result() {
  auto temp = unsafe_arena_release_result();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* PopAWheelieResponse::unsafe_arena_release_result() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PopAWheelieResponse.result)
  
  ::Anki::Vector::external_interface::ActionResult* temp = result_;
  result_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* PopAWheelieResponse::_internal_mutable_result() {
  
  if (result_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ActionResult>(GetArena());
    result_ = p;
  }
  return result_;
}
inline ::Anki::Vector::external_interface::ActionResult* PopAWheelieResponse::mutable_result() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PopAWheelieResponse.result)
  return _internal_mutable_result();
}
inline void PopAWheelieResponse::set_allocated_result(::Anki::Vector::external_interface::ActionResult* result) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete result_;
  }
  if (result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(result);
    if (message_arena != submessage_arena) {
      result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, result, submessage_arena);
    }
    
  } else {
    
  }
  result_ = result;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.PopAWheelieResponse.result)
}

// -------------------------------------------------------------------

// PickupObjectRequest

// int32 object_id = 1;
inline void PickupObjectRequest::clear_object_id() {
  object_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PickupObjectRequest::_internal_object_id() const {
  return object_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PickupObjectRequest::object_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PickupObjectRequest.object_id)
  return _internal_object_id();
}
inline void PickupObjectRequest::_internal_set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  object_id_ = value;
}
inline void PickupObjectRequest::set_object_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_object_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PickupObjectRequest.object_id)
}

// .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
inline bool PickupObjectRequest::_internal_has_motion_prof() const {
  return this != internal_default_instance() && motion_prof_ != nullptr;
}
inline bool PickupObjectRequest::has_motion_prof() const {
  return _internal_has_motion_prof();
}
inline void PickupObjectRequest::clear_motion_prof() {
  if (GetArena() == nullptr && motion_prof_ != nullptr) {
    delete motion_prof_;
  }
  motion_prof_ = nullptr;
}
inline const ::Anki::Vector::external_interface::PathMotionProfile& PickupObjectRequest::_internal_motion_prof() const {
  const ::Anki::Vector::external_interface::PathMotionProfile* p = motion_prof_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::PathMotionProfile*>(
      &::Anki::Vector::external_interface::_PathMotionProfile_default_instance_);
}
inline const ::Anki::Vector::external_interface::PathMotionProfile& PickupObjectRequest::motion_prof() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PickupObjectRequest.motion_prof)
  return _internal_motion_prof();
}
inline void PickupObjectRequest::unsafe_arena_set_allocated_motion_prof(
    ::Anki::Vector::external_interface::PathMotionProfile* motion_prof) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(motion_prof_);
  }
  motion_prof_ = motion_prof;
  if (motion_prof) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.PickupObjectRequest.motion_prof)
}
inline ::Anki::Vector::external_interface::PathMotionProfile* PickupObjectRequest::release_motion_prof() {
  auto temp = unsafe_arena_release_motion_prof();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* PickupObjectRequest::unsafe_arena_release_motion_prof() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PickupObjectRequest.motion_prof)
  
  ::Anki::Vector::external_interface::PathMotionProfile* temp = motion_prof_;
  motion_prof_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* PickupObjectRequest::_internal_mutable_motion_prof() {
  
  if (motion_prof_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::PathMotionProfile>(GetArena());
    motion_prof_ = p;
  }
  return motion_prof_;
}
inline ::Anki::Vector::external_interface::PathMotionProfile* PickupObjectRequest::mutable_motion_prof() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PickupObjectRequest.motion_prof)
  return _internal_mutable_motion_prof();
}
inline void PickupObjectRequest::set_allocated_motion_prof(::Anki::Vector::external_interface::PathMotionProfile* motion_prof) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete motion_prof_;
  }
  if (motion_prof) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(motion_prof);
    if (message_arena != submessage_arena) {
      motion_prof = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, motion_prof, submessage_arena);
    }
    
  } else {
    
  }
  motion_prof_ = motion_prof;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.PickupObjectRequest.motion_prof)
}

// float approach_angle_rad = 3;
inline void PickupObjectRequest::clear_approach_angle_rad() {
  approach_angle_rad_ = 0;
}
inline float PickupObjectRequest::_internal_approach_angle_rad() const {
  return approach_angle_rad_;
}
inline float PickupObjectRequest::approach_angle_rad() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PickupObjectRequest.approach_angle_rad)
  return _internal_approach_angle_rad();
}
inline void PickupObjectRequest::_internal_set_approach_angle_rad(float value) {
  
  approach_angle_rad_ = value;
}
inline void PickupObjectRequest::set_approach_angle_rad(float value) {
  _internal_set_approach_angle_rad(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PickupObjectRequest.approach_angle_rad)
}

// bool use_approach_angle = 4;
inline void PickupObjectRequest::clear_use_approach_angle() {
  use_approach_angle_ = false;
}
inline bool PickupObjectRequest::_internal_use_approach_angle() const {
  return use_approach_angle_;
}
inline bool PickupObjectRequest::use_approach_angle() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PickupObjectRequest.use_approach_angle)
  return _internal_use_approach_angle();
}
inline void PickupObjectRequest::_internal_set_use_approach_angle(bool value) {
  
  use_approach_angle_ = value;
}
inline void PickupObjectRequest::set_use_approach_angle(bool value) {
  _internal_set_use_approach_angle(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PickupObjectRequest.use_approach_angle)
}

// bool use_pre_dock_pose = 5;
inline void PickupObjectRequest::clear_use_pre_dock_pose() {
  use_pre_dock_pose_ = false;
}
inline bool PickupObjectRequest::_internal_use_pre_dock_pose() const {
  return use_pre_dock_pose_;
}
inline bool PickupObjectRequest::use_pre_dock_pose() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PickupObjectRequest.use_pre_dock_pose)
  return _internal_use_pre_dock_pose();
}
inline void PickupObjectRequest::_internal_set_use_pre_dock_pose(bool value) {
  
  use_pre_dock_pose_ = value;
}
inline void PickupObjectRequest::set_use_pre_dock_pose(bool value) {
  _internal_set_use_pre_dock_pose(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PickupObjectRequest.use_pre_dock_pose)
}

// int32 id_tag = 6;
inline void PickupObjectRequest::clear_id_tag() {
  id_tag_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PickupObjectRequest::_internal_id_tag() const {
  return id_tag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PickupObjectRequest::id_tag() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PickupObjectRequest.id_tag)
  return _internal_id_tag();
}
inline void PickupObjectRequest::_internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  id_tag_ = value;
}
inline void PickupObjectRequest::set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_id_tag(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PickupObjectRequest.id_tag)
}

// int32 num_retries = 7;
inline void PickupObjectRequest::clear_num_retries() {
  num_retries_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PickupObjectRequest::_internal_num_retries() const {
  return num_retries_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PickupObjectRequest::num_retries() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PickupObjectRequest.num_retries)
  return _internal_num_retries();
}
inline void PickupObjectRequest::_internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_retries_ = value;
}
inline void PickupObjectRequest::set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_retries(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PickupObjectRequest.num_retries)
}

// -------------------------------------------------------------------

// PickupObjectResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool PickupObjectResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool PickupObjectResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& PickupObjectResponse::_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& PickupObjectResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PickupObjectResponse.status)
  return _internal_status();
}
inline void PickupObjectResponse::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.PickupObjectResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* PickupObjectResponse::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* PickupObjectResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PickupObjectResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* PickupObjectResponse::_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* PickupObjectResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PickupObjectResponse.status)
  return _internal_mutable_status();
}
inline void PickupObjectResponse::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.PickupObjectResponse.status)
}

// .Anki.Vector.external_interface.ActionResult result = 2;
inline bool PickupObjectResponse::_internal_has_result() const {
  return this != internal_default_instance() && result_ != nullptr;
}
inline bool PickupObjectResponse::has_result() const {
  return _internal_has_result();
}
inline void PickupObjectResponse::clear_result() {
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
}
inline const ::Anki::Vector::external_interface::ActionResult& PickupObjectResponse::_internal_result() const {
  const ::Anki::Vector::external_interface::ActionResult* p = result_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ActionResult*>(
      &::Anki::Vector::external_interface::_ActionResult_default_instance_);
}
inline const ::Anki::Vector::external_interface::ActionResult& PickupObjectResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PickupObjectResponse.result)
  return _internal_result();
}
inline void PickupObjectResponse::unsafe_arena_set_allocated_result(
    ::Anki::Vector::external_interface::ActionResult* result) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(result_);
  }
  result_ = result;
  if (result) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.PickupObjectResponse.result)
}
inline ::Anki::Vector::external_interface::ActionResult* PickupObjectResponse::release_result() {
  auto temp = unsafe_arena_release_result();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* PickupObjectResponse::unsafe_arena_release_result() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PickupObjectResponse.result)
  
  ::Anki::Vector::external_interface::ActionResult* temp = result_;
  result_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* PickupObjectResponse::_internal_mutable_result() {
  
  if (result_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ActionResult>(GetArena());
    result_ = p;
  }
  return result_;
}
inline ::Anki::Vector::external_interface::ActionResult* PickupObjectResponse::mutable_result() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PickupObjectResponse.result)
  return _internal_mutable_result();
}
inline void PickupObjectResponse::set_allocated_result(::Anki::Vector::external_interface::ActionResult* result) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete result_;
  }
  if (result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(result);
    if (message_arena != submessage_arena) {
      result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, result, submessage_arena);
    }
    
  } else {
    
  }
  result_ = result;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.PickupObjectResponse.result)
}

// -------------------------------------------------------------------

// PlaceObjectOnGroundHereRequest

// int32 id_tag = 1;
inline void PlaceObjectOnGroundHereRequest::clear_id_tag() {
  id_tag_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PlaceObjectOnGroundHereRequest::_internal_id_tag() const {
  return id_tag_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PlaceObjectOnGroundHereRequest::id_tag() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest.id_tag)
  return _internal_id_tag();
}
inline void PlaceObjectOnGroundHereRequest::_internal_set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  id_tag_ = value;
}
inline void PlaceObjectOnGroundHereRequest::set_id_tag(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_id_tag(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest.id_tag)
}

// int32 num_retries = 2;
inline void PlaceObjectOnGroundHereRequest::clear_num_retries() {
  num_retries_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PlaceObjectOnGroundHereRequest::_internal_num_retries() const {
  return num_retries_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 PlaceObjectOnGroundHereRequest::num_retries() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest.num_retries)
  return _internal_num_retries();
}
inline void PlaceObjectOnGroundHereRequest::_internal_set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_retries_ = value;
}
inline void PlaceObjectOnGroundHereRequest::set_num_retries(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_retries(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest.num_retries)
}

// -------------------------------------------------------------------

// PlaceObjectOnGroundHereResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool PlaceObjectOnGroundHereResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool PlaceObjectOnGroundHereResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& PlaceObjectOnGroundHereResponse::_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& PlaceObjectOnGroundHereResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse.status)
  return _internal_status();
}
inline void PlaceObjectOnGroundHereResponse::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.PlaceObjectOnGroundHereResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* PlaceObjectOnGroundHereResponse::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* PlaceObjectOnGroundHereResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* PlaceObjectOnGroundHereResponse::_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* PlaceObjectOnGroundHereResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse.status)
  return _internal_mutable_status();
}
inline void PlaceObjectOnGroundHereResponse::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.PlaceObjectOnGroundHereResponse.status)
}

// .Anki.Vector.external_interface.ActionResult result = 2;
inline bool PlaceObjectOnGroundHereResponse::_internal_has_result() const {
  return this != internal_default_instance() && result_ != nullptr;
}
inline bool PlaceObjectOnGroundHereResponse::has_result() const {
  return _internal_has_result();
}
inline void PlaceObjectOnGroundHereResponse::clear_result() {
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
}
inline const ::Anki::Vector::external_interface::ActionResult& PlaceObjectOnGroundHereResponse::_internal_result() const {
  const ::Anki::Vector::external_interface::ActionResult* p = result_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::ActionResult*>(
      &::Anki::Vector::external_interface::_ActionResult_default_instance_);
}
inline const ::Anki::Vector::external_interface::ActionResult& PlaceObjectOnGroundHereResponse::result() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse.result)
  return _internal_result();
}
inline void PlaceObjectOnGroundHereResponse::unsafe_arena_set_allocated_result(
    ::Anki::Vector::external_interface::ActionResult* result) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(result_);
  }
  result_ = result;
  if (result) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse.result)
}
inline ::Anki::Vector::external_interface::ActionResult* PlaceObjectOnGroundHereResponse::release_result() {
  auto temp = unsafe_arena_release_result();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* PlaceObjectOnGroundHereResponse::unsafe_arena_release_result() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse.result)
  
  ::Anki::Vector::external_interface::ActionResult* temp = result_;
  result_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ActionResult* PlaceObjectOnGroundHereResponse::_internal_mutable_result() {
  
  if (result_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::ActionResult>(GetArena());
    result_ = p;
  }
  return result_;
}
inline ::Anki::Vector::external_interface::ActionResult* PlaceObjectOnGroundHereResponse::mutable_result() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse.result)
  return _internal_mutable_result();
}
inline void PlaceObjectOnGroundHereResponse::set_allocated_result(::Anki::Vector::external_interface::ActionResult* result) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete result_;
  }
  if (result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(result);
    if (message_arena != submessage_arena) {
      result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, result, submessage_arena);
    }
    
  } else {
    
  }
  result_ = result;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse.result)
}

// -------------------------------------------------------------------

// BatteryStateRequest

// -------------------------------------------------------------------

// BatteryStateResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool BatteryStateResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool BatteryStateResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& BatteryStateResponse::_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& BatteryStateResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.BatteryStateResponse.status)
  return _internal_status();
}
inline void BatteryStateResponse::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.BatteryStateResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* BatteryStateResponse::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* BatteryStateResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.BatteryStateResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* BatteryStateResponse::_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* BatteryStateResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.BatteryStateResponse.status)
  return _internal_mutable_status();
}
inline void BatteryStateResponse::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.BatteryStateResponse.status)
}

// .Anki.Vector.external_interface.BatteryLevel battery_level = 2;
inline void BatteryStateResponse::clear_battery_level() {
  battery_level_ = 0;
}
inline ::Anki::Vector::external_interface::BatteryLevel BatteryStateResponse::_internal_battery_level() const {
  return static_cast< ::Anki::Vector::external_interface::BatteryLevel >(battery_level_);
}
inline ::Anki::Vector::external_interface::BatteryLevel BatteryStateResponse::battery_level() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.BatteryStateResponse.battery_level)
  return _internal_battery_level();
}
inline void BatteryStateResponse::_internal_set_battery_level(::Anki::Vector::external_interface::BatteryLevel value) {
  
  battery_level_ = value;
}
inline void BatteryStateResponse::set_battery_level(::Anki::Vector::external_interface::BatteryLevel value) {
  _internal_set_battery_level(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.BatteryStateResponse.battery_level)
}

// float battery_volts = 3;
inline void BatteryStateResponse::clear_battery_volts() {
  battery_volts_ = 0;
}
inline float BatteryStateResponse::_internal_battery_volts() const {
  return battery_volts_;
}
inline float BatteryStateResponse::battery_volts() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.BatteryStateResponse.battery_volts)
  return _internal_battery_volts();
}
inline void BatteryStateResponse::_internal_set_battery_volts(float value) {
  
  battery_volts_ = value;
}
inline void BatteryStateResponse::set_battery_volts(float value) {
  _internal_set_battery_volts(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.BatteryStateResponse.battery_volts)
}

// bool is_charging = 4;
inline void BatteryStateResponse::clear_is_charging() {
  is_charging_ = false;
}
inline bool BatteryStateResponse::_internal_is_charging() const {
  return is_charging_;
}
inline bool BatteryStateResponse::is_charging() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.BatteryStateResponse.is_charging)
  return _internal_is_charging();
}
inline void BatteryStateResponse::_internal_set_is_charging(bool value) {
  
  is_charging_ = value;
}
inline void BatteryStateResponse::set_is_charging(bool value) {
  _internal_set_is_charging(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.BatteryStateResponse.is_charging)
}

// bool is_on_charger_platform = 5;
inline void BatteryStateResponse::clear_is_on_charger_platform() {
  is_on_charger_platform_ = false;
}
inline bool BatteryStateResponse::_internal_is_on_charger_platform() const {
  return is_on_charger_platform_;
}
inline bool BatteryStateResponse::is_on_charger_platform() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.BatteryStateResponse.is_on_charger_platform)
  return _internal_is_on_charger_platform();
}
inline void BatteryStateResponse::_internal_set_is_on_charger_platform(bool value) {
  
  is_on_charger_platform_ = value;
}
inline void BatteryStateResponse::set_is_on_charger_platform(bool value) {
  _internal_set_is_on_charger_platform(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.BatteryStateResponse.is_on_charger_platform)
}

// float suggested_charger_sec = 6;
inline void BatteryStateResponse::clear_suggested_charger_sec() {
  suggested_charger_sec_ = 0;
}
inline float BatteryStateResponse::_internal_suggested_charger_sec() const {
  return suggested_charger_sec_;
}
inline float BatteryStateResponse::suggested_charger_sec() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.BatteryStateResponse.suggested_charger_sec)
  return _internal_suggested_charger_sec();
}
inline void BatteryStateResponse::_internal_set_suggested_charger_sec(float value) {
  
  suggested_charger_sec_ = value;
}
inline void BatteryStateResponse::set_suggested_charger_sec(float value) {
  _internal_set_suggested_charger_sec(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.BatteryStateResponse.suggested_charger_sec)
}

// .Anki.Vector.external_interface.CubeBattery cube_battery = 7;
inline bool BatteryStateResponse::_internal_has_cube_battery() const {
  return this != internal_default_instance() && cube_battery_ != nullptr;
}
inline bool BatteryStateResponse::has_cube_battery() const {
  return _internal_has_cube_battery();
}
inline void BatteryStateResponse::clear_cube_battery() {
  if (GetArena() == nullptr && cube_battery_ != nullptr) {
    delete cube_battery_;
  }
  cube_battery_ = nullptr;
}
inline const ::Anki::Vector::external_interface::CubeBattery& BatteryStateResponse::_internal_cube_battery() const {
  const ::Anki::Vector::external_interface::CubeBattery* p = cube_battery_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::CubeBattery*>(
      &::Anki::Vector::external_interface::_CubeBattery_default_instance_);
}
inline const ::Anki::Vector::external_interface::CubeBattery& BatteryStateResponse::cube_battery() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.BatteryStateResponse.cube_battery)
  return _internal_cube_battery();
}
inline void BatteryStateResponse::unsafe_arena_set_allocated_cube_battery(
    ::Anki::Vector::external_interface::CubeBattery* cube_battery) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(cube_battery_);
  }
  cube_battery_ = cube_battery;
  if (cube_battery) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.BatteryStateResponse.cube_battery)
}
inline ::Anki::Vector::external_interface::CubeBattery* BatteryStateResponse::release_cube_battery() {
  auto temp = unsafe_arena_release_cube_battery();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::CubeBattery* BatteryStateResponse::unsafe_arena_release_cube_battery() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.BatteryStateResponse.cube_battery)
  
  ::Anki::Vector::external_interface::CubeBattery* temp = cube_battery_;
  cube_battery_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::CubeBattery* BatteryStateResponse::_internal_mutable_cube_battery() {
  
  if (cube_battery_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::CubeBattery>(GetArena());
    cube_battery_ = p;
  }
  return cube_battery_;
}
inline ::Anki::Vector::external_interface::CubeBattery* BatteryStateResponse::mutable_cube_battery() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.BatteryStateResponse.cube_battery)
  return _internal_mutable_cube_battery();
}
inline void BatteryStateResponse::set_allocated_cube_battery(::Anki::Vector::external_interface::CubeBattery* cube_battery) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete cube_battery_;
  }
  if (cube_battery) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(cube_battery);
    if (message_arena != submessage_arena) {
      cube_battery = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, cube_battery, submessage_arena);
    }
    
  } else {
    
  }
  cube_battery_ = cube_battery;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.BatteryStateResponse.cube_battery)
}

// -------------------------------------------------------------------

// CubeBattery

// .Anki.Vector.external_interface.CubeBattery.CubeBatteryLevel level = 1;
inline void CubeBattery::clear_level() {
  level_ = 0;
}
inline ::Anki::Vector::external_interface::CubeBattery_CubeBatteryLevel CubeBattery::_internal_level() const {
  return static_cast< ::Anki::Vector::external_interface::CubeBattery_CubeBatteryLevel >(level_);
}
inline ::Anki::Vector::external_interface::CubeBattery_CubeBatteryLevel CubeBattery::level() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CubeBattery.level)
  return _internal_level();
}
inline void CubeBattery::_internal_set_level(::Anki::Vector::external_interface::CubeBattery_CubeBatteryLevel value) {
  
  level_ = value;
}
inline void CubeBattery::set_level(::Anki::Vector::external_interface::CubeBattery_CubeBatteryLevel value) {
  _internal_set_level(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CubeBattery.level)
}

// string factory_id = 2;
inline void CubeBattery::clear_factory_id() {
  factory_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& CubeBattery::factory_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CubeBattery.factory_id)
  return _internal_factory_id();
}
inline void CubeBattery::set_factory_id(const std::string& value) {
  _internal_set_factory_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CubeBattery.factory_id)
}
inline std::string* CubeBattery::mutable_factory_id() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.CubeBattery.factory_id)
  return _internal_mutable_factory_id();
}
inline const std::string& CubeBattery::_internal_factory_id() const {
  return factory_id_.Get();
}
inline void CubeBattery::_internal_set_factory_id(const std::string& value) {
  
  factory_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void CubeBattery::set_factory_id(std::string&& value) {
  
  factory_id_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.CubeBattery.factory_id)
}
inline void CubeBattery::set_factory_id(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  factory_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.CubeBattery.factory_id)
}
inline void CubeBattery::set_factory_id(const char* value,
    size_t size) {
  
  factory_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.CubeBattery.factory_id)
}
inline std::string* CubeBattery::_internal_mutable_factory_id() {
  
  return factory_id_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* CubeBattery::release_factory_id() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.CubeBattery.factory_id)
  return factory_id_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void CubeBattery::set_allocated_factory_id(std::string* factory_id) {
  if (factory_id != nullptr) {
    
  } else {
    
  }
  factory_id_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), factory_id,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.CubeBattery.factory_id)
}
inline std::string* CubeBattery::unsafe_arena_release_factory_id() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.CubeBattery.factory_id)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return factory_id_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void CubeBattery::unsafe_arena_set_allocated_factory_id(
    std::string* factory_id) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (factory_id != nullptr) {
    
  } else {
    
  }
  factory_id_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      factory_id, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.CubeBattery.factory_id)
}

// float battery_volts = 3;
inline void CubeBattery::clear_battery_volts() {
  battery_volts_ = 0;
}
inline float CubeBattery::_internal_battery_volts() const {
  return battery_volts_;
}
inline float CubeBattery::battery_volts() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CubeBattery.battery_volts)
  return _internal_battery_volts();
}
inline void CubeBattery::_internal_set_battery_volts(float value) {
  
  battery_volts_ = value;
}
inline void CubeBattery::set_battery_volts(float value) {
  _internal_set_battery_volts(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CubeBattery.battery_volts)
}

// float time_since_last_reading_sec = 4;
inline void CubeBattery::clear_time_since_last_reading_sec() {
  time_since_last_reading_sec_ = 0;
}
inline float CubeBattery::_internal_time_since_last_reading_sec() const {
  return time_since_last_reading_sec_;
}
inline float CubeBattery::time_since_last_reading_sec() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CubeBattery.time_since_last_reading_sec)
  return _internal_time_since_last_reading_sec();
}
inline void CubeBattery::_internal_set_time_since_last_reading_sec(float value) {
  
  time_since_last_reading_sec_ = value;
}
inline void CubeBattery::set_time_since_last_reading_sec(float value) {
  _internal_set_time_since_last_reading_sec(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CubeBattery.time_since_last_reading_sec)
}

// -------------------------------------------------------------------

// VersionStateRequest

// -------------------------------------------------------------------

// VersionStateResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool VersionStateResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool VersionStateResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& VersionStateResponse::_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& VersionStateResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.VersionStateResponse.status)
  return _internal_status();
}
inline void VersionStateResponse::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.VersionStateResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* VersionStateResponse::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* VersionStateResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.VersionStateResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* VersionStateResponse::_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* VersionStateResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.VersionStateResponse.status)
  return _internal_mutable_status();
}
inline void VersionStateResponse::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.VersionStateResponse.status)
}

// string os_version = 2;
inline void VersionStateResponse::clear_os_version() {
  os_version_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& VersionStateResponse::os_version() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.VersionStateResponse.os_version)
  return _internal_os_version();
}
inline void VersionStateResponse::set_os_version(const std::string& value) {
  _internal_set_os_version(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.VersionStateResponse.os_version)
}
inline std::string* VersionStateResponse::mutable_os_version() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.VersionStateResponse.os_version)
  return _internal_mutable_os_version();
}
inline const std::string& VersionStateResponse::_internal_os_version() const {
  return os_version_.Get();
}
inline void VersionStateResponse::_internal_set_os_version(const std::string& value) {
  
  os_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void VersionStateResponse::set_os_version(std::string&& value) {
  
  os_version_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.VersionStateResponse.os_version)
}
inline void VersionStateResponse::set_os_version(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  os_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.VersionStateResponse.os_version)
}
inline void VersionStateResponse::set_os_version(const char* value,
    size_t size) {
  
  os_version_.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.VersionStateResponse.os_version)
}
inline std::string* VersionStateResponse::_internal_mutable_os_version() {
  
  return os_version_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* VersionStateResponse::release_os_version() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.VersionStateResponse.os_version)
  return os_version_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void VersionStateResponse::set_allocated_os_version(std::string* os_version) {
  if (os_version != nullptr) {
    
  } else {
    
  }
  os_version_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), os_version,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.VersionStateResponse.os_version)
}
inline std::string* VersionStateResponse::unsafe_arena_release_os_version() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.VersionStateResponse.os_version)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return os_version_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void VersionStateResponse::unsafe_arena_set_allocated_os_version(
    std::string* os_version) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (os_version != nullptr) {
    
  } else {
    
  }
  os_version_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      os_version, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.VersionStateResponse.os_version)
}

// string engine_build_id = 3;
inline void VersionStateResponse::clear_engine_build_id() {
  engine_build_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& VersionStateResponse::engine_build_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.VersionStateResponse.engine_build_id)
  return _internal_engine_build_id();
}
inline void VersionStateResponse::set_engine_build_id(const std::string& value) {
  _internal_set_engine_build_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.VersionStateResponse.engine_build_id)
}
inline std::string* VersionStateResponse::mutable_engine_build_id() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.VersionStateResponse.engine_build_id)
  return _internal_mutable_engine_build_id();
}
inline const std::string& VersionStateResponse::_internal_engine_build_id() const {
  return engine_build_id_.Get();
}
inline void VersionStateResponse::_internal_set_engine_build_id(const std::string& value) {
  
  engine_build_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void VersionStateResponse::set_engine_build_id(std::string&& value) {
  
  engine_build_id_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.VersionStateResponse.engine_build_id)
}
inline void VersionStateResponse::set_engine_build_id(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  engine_build_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.VersionStateResponse.engine_build_id)
}
inline void VersionStateResponse::set_engine_build_id(const char* value,
    size_t size) {
  
  engine_build_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.VersionStateResponse.engine_build_id)
}
inline std::string* VersionStateResponse::_internal_mutable_engine_build_id() {
  
  return engine_build_id_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* VersionStateResponse::release_engine_build_id() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.VersionStateResponse.engine_build_id)
  return engine_build_id_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void VersionStateResponse::set_allocated_engine_build_id(std::string* engine_build_id) {
  if (engine_build_id != nullptr) {
    
  } else {
    
  }
  engine_build_id_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), engine_build_id,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.VersionStateResponse.engine_build_id)
}
inline std::string* VersionStateResponse::unsafe_arena_release_engine_build_id() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.VersionStateResponse.engine_build_id)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return engine_build_id_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void VersionStateResponse::unsafe_arena_set_allocated_engine_build_id(
    std::string* engine_build_id) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (engine_build_id != nullptr) {
    
  } else {
    
  }
  engine_build_id_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      engine_build_id, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.VersionStateResponse.engine_build_id)
}

// -------------------------------------------------------------------

// SayTextRequest

// string text = 1;
inline void SayTextRequest::clear_text() {
  text_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& SayTextRequest::text() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SayTextRequest.text)
  return _internal_text();
}
inline void SayTextRequest::set_text(const std::string& value) {
  _internal_set_text(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SayTextRequest.text)
}
inline std::string* SayTextRequest::mutable_text() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SayTextRequest.text)
  return _internal_mutable_text();
}
inline const std::string& SayTextRequest::_internal_text() const {
  return text_.Get();
}
inline void SayTextRequest::_internal_set_text(const std::string& value) {
  
  text_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void SayTextRequest::set_text(std::string&& value) {
  
  text_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.SayTextRequest.text)
}
inline void SayTextRequest::set_text(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  text_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.SayTextRequest.text)
}
inline void SayTextRequest::set_text(const char* value,
    size_t size) {
  
  text_.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.SayTextRequest.text)
}
inline std::string* SayTextRequest::_internal_mutable_text() {
  
  return text_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* SayTextRequest::release_text() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SayTextRequest.text)
  return text_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void SayTextRequest::set_allocated_text(std::string* text) {
  if (text != nullptr) {
    
  } else {
    
  }
  text_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), text,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.SayTextRequest.text)
}
inline std::string* SayTextRequest::unsafe_arena_release_text() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.SayTextRequest.text)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return text_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void SayTextRequest::unsafe_arena_set_allocated_text(
    std::string* text) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (text != nullptr) {
    
  } else {
    
  }
  text_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      text, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.SayTextRequest.text)
}

// bool use_vector_voice = 2;
inline void SayTextRequest::clear_use_vector_voice() {
  use_vector_voice_ = false;
}
inline bool SayTextRequest::_internal_use_vector_voice() const {
  return use_vector_voice_;
}
inline bool SayTextRequest::use_vector_voice() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SayTextRequest.use_vector_voice)
  return _internal_use_vector_voice();
}
inline void SayTextRequest::_internal_set_use_vector_voice(bool value) {
  
  use_vector_voice_ = value;
}
inline void SayTextRequest::set_use_vector_voice(bool value) {
  _internal_set_use_vector_voice(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SayTextRequest.use_vector_voice)
}

// float duration_scalar = 3;
inline void SayTextRequest::clear_duration_scalar() {
  duration_scalar_ = 0;
}
inline float SayTextRequest::_internal_duration_scalar() const {
  return duration_scalar_;
}
inline float SayTextRequest::duration_scalar() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SayTextRequest.duration_scalar)
  return _internal_duration_scalar();
}
inline void SayTextRequest::_internal_set_duration_scalar(float value) {
  
  duration_scalar_ = value;
}
inline void SayTextRequest::set_duration_scalar(float value) {
  _internal_set_duration_scalar(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SayTextRequest.duration_scalar)
}

// float pitch_scalar = 4;
inline void SayTextRequest::clear_pitch_scalar() {
  pitch_scalar_ = 0;
}
inline float SayTextRequest::_internal_pitch_scalar() const {
  return pitch_scalar_;
}
inline float SayTextRequest::pitch_scalar() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SayTextRequest.pitch_scalar)
  return _internal_pitch_scalar();
}
inline void SayTextRequest::_internal_set_pitch_scalar(float value) {
  
  pitch_scalar_ = value;
}
inline void SayTextRequest::set_pitch_scalar(float value) {
  _internal_set_pitch_scalar(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SayTextRequest.pitch_scalar)
}

// -------------------------------------------------------------------

// SayTextResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool SayTextResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool SayTextResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& SayTextResponse::_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& SayTextResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SayTextResponse.status)
  return _internal_status();
}
inline void SayTextResponse::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.SayTextResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* SayTextResponse::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* SayTextResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SayTextResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* SayTextResponse::_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* SayTextResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SayTextResponse.status)
  return _internal_mutable_status();
}
inline void SayTextResponse::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.SayTextResponse.status)
}

// .Anki.Vector.external_interface.SayTextResponse.UtteranceState state = 2;
inline void SayTextResponse::clear_state() {
  state_ = 0;
}
inline ::Anki::Vector::external_interface::SayTextResponse_UtteranceState SayTextResponse::_internal_state() const {
  return static_cast< ::Anki::Vector::external_interface::SayTextResponse_UtteranceState >(state_);
}
inline ::Anki::Vector::external_interface::SayTextResponse_UtteranceState SayTextResponse::state() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SayTextResponse.state)
  return _internal_state();
}
inline void SayTextResponse::_internal_set_state(::Anki::Vector::external_interface::SayTextResponse_UtteranceState value) {
  
  state_ = value;
}
inline void SayTextResponse::set_state(::Anki::Vector::external_interface::SayTextResponse_UtteranceState value) {
  _internal_set_state(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SayTextResponse.state)
}

// -------------------------------------------------------------------

// StimulationInfo

// repeated string emotion_events = 1;
inline int StimulationInfo::_internal_emotion_events_size() const {
  return emotion_events_.size();
}
inline int StimulationInfo::emotion_events_size() const {
  return _internal_emotion_events_size();
}
inline void StimulationInfo::clear_emotion_events() {
  emotion_events_.Clear();
}
inline std::string* StimulationInfo::add_emotion_events() {
  // @@protoc_insertion_point(field_add_mutable:Anki.Vector.external_interface.StimulationInfo.emotion_events)
  return _internal_add_emotion_events();
}
inline const std::string& StimulationInfo::_internal_emotion_events(int index) const {
  return emotion_events_.Get(index);
}
inline const std::string& StimulationInfo::emotion_events(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.StimulationInfo.emotion_events)
  return _internal_emotion_events(index);
}
inline std::string* StimulationInfo::mutable_emotion_events(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.StimulationInfo.emotion_events)
  return emotion_events_.Mutable(index);
}
inline void StimulationInfo::set_emotion_events(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.StimulationInfo.emotion_events)
  emotion_events_.Mutable(index)->assign(value);
}
inline void StimulationInfo::set_emotion_events(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.StimulationInfo.emotion_events)
  emotion_events_.Mutable(index)->assign(std::move(value));
}
inline void StimulationInfo::set_emotion_events(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  emotion_events_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.StimulationInfo.emotion_events)
}
inline void StimulationInfo::set_emotion_events(int index, const char* value, size_t size) {
  emotion_events_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Anki.Vector.external_interface.StimulationInfo.emotion_events)
}
inline std::string* StimulationInfo::_internal_add_emotion_events() {
  return emotion_events_.Add();
}
inline void StimulationInfo::add_emotion_events(const std::string& value) {
  emotion_events_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.StimulationInfo.emotion_events)
}
inline void StimulationInfo::add_emotion_events(std::string&& value) {
  emotion_events_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.StimulationInfo.emotion_events)
}
inline void StimulationInfo::add_emotion_events(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  emotion_events_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:Anki.Vector.external_interface.StimulationInfo.emotion_events)
}
inline void StimulationInfo::add_emotion_events(const char* value, size_t size) {
  emotion_events_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:Anki.Vector.external_interface.StimulationInfo.emotion_events)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
StimulationInfo::emotion_events() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.StimulationInfo.emotion_events)
  return emotion_events_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
StimulationInfo::mutable_emotion_events() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.StimulationInfo.emotion_events)
  return &emotion_events_;
}

// float value = 2;
inline void StimulationInfo::clear_value() {
  value_ = 0;
}
inline float StimulationInfo::_internal_value() const {
  return value_;
}
inline float StimulationInfo::value() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.StimulationInfo.value)
  return _internal_value();
}
inline void StimulationInfo::_internal_set_value(float value) {
  
  value_ = value;
}
inline void StimulationInfo::set_value(float value) {
  _internal_set_value(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.StimulationInfo.value)
}

// float velocity = 3;
inline void StimulationInfo::clear_velocity() {
  velocity_ = 0;
}
inline float StimulationInfo::_internal_velocity() const {
  return velocity_;
}
inline float StimulationInfo::velocity() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.StimulationInfo.velocity)
  return _internal_velocity();
}
inline void StimulationInfo::_internal_set_velocity(float value) {
  
  velocity_ = value;
}
inline void StimulationInfo::set_velocity(float value) {
  _internal_set_velocity(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.StimulationInfo.velocity)
}

// float accel = 4;
inline void StimulationInfo::clear_accel() {
  accel_ = 0;
}
inline float StimulationInfo::_internal_accel() const {
  return accel_;
}
inline float StimulationInfo::accel() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.StimulationInfo.accel)
  return _internal_accel();
}
inline void StimulationInfo::_internal_set_accel(float value) {
  
  accel_ = value;
}
inline void StimulationInfo::set_accel(float value) {
  _internal_set_accel(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.StimulationInfo.accel)
}

// float value_before_event = 5;
inline void StimulationInfo::clear_value_before_event() {
  value_before_event_ = 0;
}
inline float StimulationInfo::_internal_value_before_event() const {
  return value_before_event_;
}
inline float StimulationInfo::value_before_event() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.StimulationInfo.value_before_event)
  return _internal_value_before_event();
}
inline void StimulationInfo::_internal_set_value_before_event(float value) {
  
  value_before_event_ = value;
}
inline void StimulationInfo::set_value_before_event(float value) {
  _internal_set_value_before_event(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.StimulationInfo.value_before_event)
}

// float min_value = 6;
inline void StimulationInfo::clear_min_value() {
  min_value_ = 0;
}
inline float StimulationInfo::_internal_min_value() const {
  return min_value_;
}
inline float StimulationInfo::min_value() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.StimulationInfo.min_value)
  return _internal_min_value();
}
inline void StimulationInfo::_internal_set_min_value(float value) {
  
  min_value_ = value;
}
inline void StimulationInfo::set_min_value(float value) {
  _internal_set_min_value(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.StimulationInfo.min_value)
}

// float max_value = 7;
inline void StimulationInfo::clear_max_value() {
  max_value_ = 0;
}
inline float StimulationInfo::_internal_max_value() const {
  return max_value_;
}
inline float StimulationInfo::max_value() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.StimulationInfo.max_value)
  return _internal_max_value();
}
inline void StimulationInfo::_internal_set_max_value(float value) {
  
  max_value_ = value;
}
inline void StimulationInfo::set_max_value(float value) {
  _internal_set_max_value(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.StimulationInfo.max_value)
}

// -------------------------------------------------------------------

// AudioSendModeRequest

// .Anki.Vector.external_interface.AudioProcessingMode mode = 1;
inline void AudioSendModeRequest::clear_mode() {
  mode_ = 0;
}
inline ::Anki::Vector::external_interface::AudioProcessingMode AudioSendModeRequest::_internal_mode() const {
  return static_cast< ::Anki::Vector::external_interface::AudioProcessingMode >(mode_);
}
inline ::Anki::Vector::external_interface::AudioProcessingMode AudioSendModeRequest::mode() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioSendModeRequest.mode)
  return _internal_mode();
}
inline void AudioSendModeRequest::_internal_set_mode(::Anki::Vector::external_interface::AudioProcessingMode value) {
  
  mode_ = value;
}
inline void AudioSendModeRequest::set_mode(::Anki::Vector::external_interface::AudioProcessingMode value) {
  _internal_set_mode(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioSendModeRequest.mode)
}

// -------------------------------------------------------------------

// AudioSendModeChanged

// .Anki.Vector.external_interface.AudioProcessingMode mode = 1;
inline void AudioSendModeChanged::clear_mode() {
  mode_ = 0;
}
inline ::Anki::Vector::external_interface::AudioProcessingMode AudioSendModeChanged::_internal_mode() const {
  return static_cast< ::Anki::Vector::external_interface::AudioProcessingMode >(mode_);
}
inline ::Anki::Vector::external_interface::AudioProcessingMode AudioSendModeChanged::mode() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioSendModeChanged.mode)
  return _internal_mode();
}
inline void AudioSendModeChanged::_internal_set_mode(::Anki::Vector::external_interface::AudioProcessingMode value) {
  
  mode_ = value;
}
inline void AudioSendModeChanged::set_mode(::Anki::Vector::external_interface::AudioProcessingMode value) {
  _internal_set_mode(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioSendModeChanged.mode)
}

// -------------------------------------------------------------------

// AudioChunk

// uint32 robot_time_stamp = 1;
inline void AudioChunk::clear_robot_time_stamp() {
  robot_time_stamp_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::_internal_robot_time_stamp() const {
  return robot_time_stamp_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::robot_time_stamp() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioChunk.robot_time_stamp)
  return _internal_robot_time_stamp();
}
inline void AudioChunk::_internal_set_robot_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  robot_time_stamp_ = value;
}
inline void AudioChunk::set_robot_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_robot_time_stamp(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioChunk.robot_time_stamp)
}

// uint32 group_id = 2;
inline void AudioChunk::clear_group_id() {
  group_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::_internal_group_id() const {
  return group_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::group_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioChunk.group_id)
  return _internal_group_id();
}
inline void AudioChunk::_internal_set_group_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  group_id_ = value;
}
inline void AudioChunk::set_group_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_group_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioChunk.group_id)
}

// uint32 chunk_id = 3;
inline void AudioChunk::clear_chunk_id() {
  chunk_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::_internal_chunk_id() const {
  return chunk_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::chunk_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioChunk.chunk_id)
  return _internal_chunk_id();
}
inline void AudioChunk::_internal_set_chunk_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  chunk_id_ = value;
}
inline void AudioChunk::set_chunk_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_chunk_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioChunk.chunk_id)
}

// uint32 audio_chunk_count = 4;
inline void AudioChunk::clear_audio_chunk_count() {
  audio_chunk_count_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::_internal_audio_chunk_count() const {
  return audio_chunk_count_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::audio_chunk_count() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioChunk.audio_chunk_count)
  return _internal_audio_chunk_count();
}
inline void AudioChunk::_internal_set_audio_chunk_count(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  audio_chunk_count_ = value;
}
inline void AudioChunk::set_audio_chunk_count(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_audio_chunk_count(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioChunk.audio_chunk_count)
}

// bytes signal_power = 5;
inline void AudioChunk::clear_signal_power() {
  signal_power_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& AudioChunk::signal_power() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioChunk.signal_power)
  return _internal_signal_power();
}
inline void AudioChunk::set_signal_power(const std::string& value) {
  _internal_set_signal_power(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioChunk.signal_power)
}
inline std::string* AudioChunk::mutable_signal_power() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.AudioChunk.signal_power)
  return _internal_mutable_signal_power();
}
inline const std::string& AudioChunk::_internal_signal_power() const {
  return signal_power_.Get();
}
inline void AudioChunk::_internal_set_signal_power(const std::string& value) {
  
  signal_power_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void AudioChunk::set_signal_power(std::string&& value) {
  
  signal_power_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.AudioChunk.signal_power)
}
inline void AudioChunk::set_signal_power(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  signal_power_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.AudioChunk.signal_power)
}
inline void AudioChunk::set_signal_power(const void* value,
    size_t size) {
  
  signal_power_.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.AudioChunk.signal_power)
}
inline std::string* AudioChunk::_internal_mutable_signal_power() {
  
  return signal_power_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* AudioChunk::release_signal_power() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.AudioChunk.signal_power)
  return signal_power_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void AudioChunk::set_allocated_signal_power(std::string* signal_power) {
  if (signal_power != nullptr) {
    
  } else {
    
  }
  signal_power_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), signal_power,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.AudioChunk.signal_power)
}
inline std::string* AudioChunk::unsafe_arena_release_signal_power() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.AudioChunk.signal_power)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return signal_power_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void AudioChunk::unsafe_arena_set_allocated_signal_power(
    std::string* signal_power) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (signal_power != nullptr) {
    
  } else {
    
  }
  signal_power_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      signal_power, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.AudioChunk.signal_power)
}

// bytes direction_strengths = 6;
inline void AudioChunk::clear_direction_strengths() {
  direction_strengths_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& AudioChunk::direction_strengths() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioChunk.direction_strengths)
  return _internal_direction_strengths();
}
inline void AudioChunk::set_direction_strengths(const std::string& value) {
  _internal_set_direction_strengths(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioChunk.direction_strengths)
}
inline std::string* AudioChunk::mutable_direction_strengths() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.AudioChunk.direction_strengths)
  return _internal_mutable_direction_strengths();
}
inline const std::string& AudioChunk::_internal_direction_strengths() const {
  return direction_strengths_.Get();
}
inline void AudioChunk::_internal_set_direction_strengths(const std::string& value) {
  
  direction_strengths_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void AudioChunk::set_direction_strengths(std::string&& value) {
  
  direction_strengths_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.AudioChunk.direction_strengths)
}
inline void AudioChunk::set_direction_strengths(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  direction_strengths_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.AudioChunk.direction_strengths)
}
inline void AudioChunk::set_direction_strengths(const void* value,
    size_t size) {
  
  direction_strengths_.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.AudioChunk.direction_strengths)
}
inline std::string* AudioChunk::_internal_mutable_direction_strengths() {
  
  return direction_strengths_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* AudioChunk::release_direction_strengths() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.AudioChunk.direction_strengths)
  return direction_strengths_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void AudioChunk::set_allocated_direction_strengths(std::string* direction_strengths) {
  if (direction_strengths != nullptr) {
    
  } else {
    
  }
  direction_strengths_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), direction_strengths,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.AudioChunk.direction_strengths)
}
inline std::string* AudioChunk::unsafe_arena_release_direction_strengths() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.AudioChunk.direction_strengths)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return direction_strengths_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void AudioChunk::unsafe_arena_set_allocated_direction_strengths(
    std::string* direction_strengths) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (direction_strengths != nullptr) {
    
  } else {
    
  }
  direction_strengths_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      direction_strengths, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.AudioChunk.direction_strengths)
}

// uint32 source_direction = 7;
inline void AudioChunk::clear_source_direction() {
  source_direction_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::_internal_source_direction() const {
  return source_direction_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::source_direction() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioChunk.source_direction)
  return _internal_source_direction();
}
inline void AudioChunk::_internal_set_source_direction(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  source_direction_ = value;
}
inline void AudioChunk::set_source_direction(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_source_direction(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioChunk.source_direction)
}

// uint32 source_confidence = 8;
inline void AudioChunk::clear_source_confidence() {
  source_confidence_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::_internal_source_confidence() const {
  return source_confidence_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::source_confidence() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioChunk.source_confidence)
  return _internal_source_confidence();
}
inline void AudioChunk::_internal_set_source_confidence(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  source_confidence_ = value;
}
inline void AudioChunk::set_source_confidence(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_source_confidence(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioChunk.source_confidence)
}

// uint32 noise_floor_power = 9;
inline void AudioChunk::clear_noise_floor_power() {
  noise_floor_power_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::_internal_noise_floor_power() const {
  return noise_floor_power_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioChunk::noise_floor_power() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioChunk.noise_floor_power)
  return _internal_noise_floor_power();
}
inline void AudioChunk::_internal_set_noise_floor_power(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  noise_floor_power_ = value;
}
inline void AudioChunk::set_noise_floor_power(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_noise_floor_power(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioChunk.noise_floor_power)
}

// -------------------------------------------------------------------

// AudioFeedRequest

// -------------------------------------------------------------------

// AudioFeedResponse

// uint32 robot_time_stamp = 1;
inline void AudioFeedResponse::clear_robot_time_stamp() {
  robot_time_stamp_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioFeedResponse::_internal_robot_time_stamp() const {
  return robot_time_stamp_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioFeedResponse::robot_time_stamp() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioFeedResponse.robot_time_stamp)
  return _internal_robot_time_stamp();
}
inline void AudioFeedResponse::_internal_set_robot_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  robot_time_stamp_ = value;
}
inline void AudioFeedResponse::set_robot_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_robot_time_stamp(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioFeedResponse.robot_time_stamp)
}

// uint32 group_id = 2;
inline void AudioFeedResponse::clear_group_id() {
  group_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioFeedResponse::_internal_group_id() const {
  return group_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioFeedResponse::group_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioFeedResponse.group_id)
  return _internal_group_id();
}
inline void AudioFeedResponse::_internal_set_group_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  group_id_ = value;
}
inline void AudioFeedResponse::set_group_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_group_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioFeedResponse.group_id)
}

// bytes signal_power = 3;
inline void AudioFeedResponse::clear_signal_power() {
  signal_power_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& AudioFeedResponse::signal_power() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioFeedResponse.signal_power)
  return _internal_signal_power();
}
inline void AudioFeedResponse::set_signal_power(const std::string& value) {
  _internal_set_signal_power(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioFeedResponse.signal_power)
}
inline std::string* AudioFeedResponse::mutable_signal_power() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.AudioFeedResponse.signal_power)
  return _internal_mutable_signal_power();
}
inline const std::string& AudioFeedResponse::_internal_signal_power() const {
  return signal_power_.Get();
}
inline void AudioFeedResponse::_internal_set_signal_power(const std::string& value) {
  
  signal_power_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void AudioFeedResponse::set_signal_power(std::string&& value) {
  
  signal_power_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.AudioFeedResponse.signal_power)
}
inline void AudioFeedResponse::set_signal_power(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  signal_power_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.AudioFeedResponse.signal_power)
}
inline void AudioFeedResponse::set_signal_power(const void* value,
    size_t size) {
  
  signal_power_.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.AudioFeedResponse.signal_power)
}
inline std::string* AudioFeedResponse::_internal_mutable_signal_power() {
  
  return signal_power_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* AudioFeedResponse::release_signal_power() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.AudioFeedResponse.signal_power)
  return signal_power_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void AudioFeedResponse::set_allocated_signal_power(std::string* signal_power) {
  if (signal_power != nullptr) {
    
  } else {
    
  }
  signal_power_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), signal_power,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.AudioFeedResponse.signal_power)
}
inline std::string* AudioFeedResponse::unsafe_arena_release_signal_power() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.AudioFeedResponse.signal_power)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return signal_power_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void AudioFeedResponse::unsafe_arena_set_allocated_signal_power(
    std::string* signal_power) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (signal_power != nullptr) {
    
  } else {
    
  }
  signal_power_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      signal_power, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.AudioFeedResponse.signal_power)
}

// bytes direction_strengths = 4;
inline void AudioFeedResponse::clear_direction_strengths() {
  direction_strengths_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& AudioFeedResponse::direction_strengths() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioFeedResponse.direction_strengths)
  return _internal_direction_strengths();
}
inline void AudioFeedResponse::set_direction_strengths(const std::string& value) {
  _internal_set_direction_strengths(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioFeedResponse.direction_strengths)
}
inline std::string* AudioFeedResponse::mutable_direction_strengths() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.AudioFeedResponse.direction_strengths)
  return _internal_mutable_direction_strengths();
}
inline const std::string& AudioFeedResponse::_internal_direction_strengths() const {
  return direction_strengths_.Get();
}
inline void AudioFeedResponse::_internal_set_direction_strengths(const std::string& value) {
  
  direction_strengths_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void AudioFeedResponse::set_direction_strengths(std::string&& value) {
  
  direction_strengths_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.AudioFeedResponse.direction_strengths)
}
inline void AudioFeedResponse::set_direction_strengths(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  direction_strengths_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.AudioFeedResponse.direction_strengths)
}
inline void AudioFeedResponse::set_direction_strengths(const void* value,
    size_t size) {
  
  direction_strengths_.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.AudioFeedResponse.direction_strengths)
}
inline std::string* AudioFeedResponse::_internal_mutable_direction_strengths() {
  
  return direction_strengths_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* AudioFeedResponse::release_direction_strengths() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.AudioFeedResponse.direction_strengths)
  return direction_strengths_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void AudioFeedResponse::set_allocated_direction_strengths(std::string* direction_strengths) {
  if (direction_strengths != nullptr) {
    
  } else {
    
  }
  direction_strengths_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), direction_strengths,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.AudioFeedResponse.direction_strengths)
}
inline std::string* AudioFeedResponse::unsafe_arena_release_direction_strengths() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.AudioFeedResponse.direction_strengths)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return direction_strengths_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void AudioFeedResponse::unsafe_arena_set_allocated_direction_strengths(
    std::string* direction_strengths) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (direction_strengths != nullptr) {
    
  } else {
    
  }
  direction_strengths_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      direction_strengths, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.AudioFeedResponse.direction_strengths)
}

// uint32 source_direction = 5;
inline void AudioFeedResponse::clear_source_direction() {
  source_direction_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioFeedResponse::_internal_source_direction() const {
  return source_direction_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioFeedResponse::source_direction() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioFeedResponse.source_direction)
  return _internal_source_direction();
}
inline void AudioFeedResponse::_internal_set_source_direction(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  source_direction_ = value;
}
inline void AudioFeedResponse::set_source_direction(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_source_direction(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioFeedResponse.source_direction)
}

// uint32 source_confidence = 6;
inline void AudioFeedResponse::clear_source_confidence() {
  source_confidence_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioFeedResponse::_internal_source_confidence() const {
  return source_confidence_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioFeedResponse::source_confidence() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioFeedResponse.source_confidence)
  return _internal_source_confidence();
}
inline void AudioFeedResponse::_internal_set_source_confidence(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  source_confidence_ = value;
}
inline void AudioFeedResponse::set_source_confidence(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_source_confidence(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioFeedResponse.source_confidence)
}

// uint32 noise_floor_power = 7;
inline void AudioFeedResponse::clear_noise_floor_power() {
  noise_floor_power_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioFeedResponse::_internal_noise_floor_power() const {
  return noise_floor_power_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 AudioFeedResponse::noise_floor_power() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AudioFeedResponse.noise_floor_power)
  return _internal_noise_floor_power();
}
inline void AudioFeedResponse::_internal_set_noise_floor_power(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  noise_floor_power_ = value;
}
inline void AudioFeedResponse::set_noise_floor_power(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_noise_floor_power(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AudioFeedResponse.noise_floor_power)
}

// -------------------------------------------------------------------

// ExternalAudioStreamPrepare

// uint32 audio_frame_rate = 1;
inline void ExternalAudioStreamPrepare::clear_audio_frame_rate() {
  audio_frame_rate_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ExternalAudioStreamPrepare::_internal_audio_frame_rate() const {
  return audio_frame_rate_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ExternalAudioStreamPrepare::audio_frame_rate() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ExternalAudioStreamPrepare.audio_frame_rate)
  return _internal_audio_frame_rate();
}
inline void ExternalAudioStreamPrepare::_internal_set_audio_frame_rate(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  audio_frame_rate_ = value;
}
inline void ExternalAudioStreamPrepare::set_audio_frame_rate(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_audio_frame_rate(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ExternalAudioStreamPrepare.audio_frame_rate)
}

// uint32 audio_volume = 2;
inline void ExternalAudioStreamPrepare::clear_audio_volume() {
  audio_volume_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ExternalAudioStreamPrepare::_internal_audio_volume() const {
  return audio_volume_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ExternalAudioStreamPrepare::audio_volume() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ExternalAudioStreamPrepare.audio_volume)
  return _internal_audio_volume();
}
inline void ExternalAudioStreamPrepare::_internal_set_audio_volume(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  audio_volume_ = value;
}
inline void ExternalAudioStreamPrepare::set_audio_volume(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_audio_volume(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ExternalAudioStreamPrepare.audio_volume)
}

// -------------------------------------------------------------------

// ExternalAudioStreamChunk

// uint32 audio_chunk_size_bytes = 1;
inline void ExternalAudioStreamChunk::clear_audio_chunk_size_bytes() {
  audio_chunk_size_bytes_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ExternalAudioStreamChunk::_internal_audio_chunk_size_bytes() const {
  return audio_chunk_size_bytes_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ExternalAudioStreamChunk::audio_chunk_size_bytes() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ExternalAudioStreamChunk.audio_chunk_size_bytes)
  return _internal_audio_chunk_size_bytes();
}
inline void ExternalAudioStreamChunk::_internal_set_audio_chunk_size_bytes(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  audio_chunk_size_bytes_ = value;
}
inline void ExternalAudioStreamChunk::set_audio_chunk_size_bytes(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_audio_chunk_size_bytes(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ExternalAudioStreamChunk.audio_chunk_size_bytes)
}

// bytes audio_chunk_samples = 2;
inline void ExternalAudioStreamChunk::clear_audio_chunk_samples() {
  audio_chunk_samples_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& ExternalAudioStreamChunk::audio_chunk_samples() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ExternalAudioStreamChunk.audio_chunk_samples)
  return _internal_audio_chunk_samples();
}
inline void ExternalAudioStreamChunk::set_audio_chunk_samples(const std::string& value) {
  _internal_set_audio_chunk_samples(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ExternalAudioStreamChunk.audio_chunk_samples)
}
inline std::string* ExternalAudioStreamChunk::mutable_audio_chunk_samples() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ExternalAudioStreamChunk.audio_chunk_samples)
  return _internal_mutable_audio_chunk_samples();
}
inline const std::string& ExternalAudioStreamChunk::_internal_audio_chunk_samples() const {
  return audio_chunk_samples_.Get();
}
inline void ExternalAudioStreamChunk::_internal_set_audio_chunk_samples(const std::string& value) {
  
  audio_chunk_samples_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void ExternalAudioStreamChunk::set_audio_chunk_samples(std::string&& value) {
  
  audio_chunk_samples_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.ExternalAudioStreamChunk.audio_chunk_samples)
}
inline void ExternalAudioStreamChunk::set_audio_chunk_samples(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  audio_chunk_samples_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.ExternalAudioStreamChunk.audio_chunk_samples)
}
inline void ExternalAudioStreamChunk::set_audio_chunk_samples(const void* value,
    size_t size) {
  
  audio_chunk_samples_.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.ExternalAudioStreamChunk.audio_chunk_samples)
}
inline std::string* ExternalAudioStreamChunk::_internal_mutable_audio_chunk_samples() {
  
  return audio_chunk_samples_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* ExternalAudioStreamChunk::release_audio_chunk_samples() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ExternalAudioStreamChunk.audio_chunk_samples)
  return audio_chunk_samples_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void ExternalAudioStreamChunk::set_allocated_audio_chunk_samples(std::string* audio_chunk_samples) {
  if (audio_chunk_samples != nullptr) {
    
  } else {
    
  }
  audio_chunk_samples_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), audio_chunk_samples,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamChunk.audio_chunk_samples)
}
inline std::string* ExternalAudioStreamChunk::unsafe_arena_release_audio_chunk_samples() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.ExternalAudioStreamChunk.audio_chunk_samples)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return audio_chunk_samples_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void ExternalAudioStreamChunk::unsafe_arena_set_allocated_audio_chunk_samples(
    std::string* audio_chunk_samples) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (audio_chunk_samples != nullptr) {
    
  } else {
    
  }
  audio_chunk_samples_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      audio_chunk_samples, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamChunk.audio_chunk_samples)
}

// -------------------------------------------------------------------

// ExternalAudioStreamComplete

// -------------------------------------------------------------------

// ExternalAudioStreamCancel

// -------------------------------------------------------------------

// ExternalAudioStreamRequest

// .Anki.Vector.external_interface.ExternalAudioStreamPrepare audio_stream_prepare = 1;
inline bool ExternalAudioStreamRequest::_internal_has_audio_stream_prepare() const {
  return audio_request_type_case() == kAudioStreamPrepare;
}
inline bool ExternalAudioStreamRequest::has_audio_stream_prepare() const {
  return _internal_has_audio_stream_prepare();
}
inline void ExternalAudioStreamRequest::set_has_audio_stream_prepare() {
  _oneof_case_[0] = kAudioStreamPrepare;
}
inline void ExternalAudioStreamRequest::clear_audio_stream_prepare() {
  if (_internal_has_audio_stream_prepare()) {
    if (GetArena() == nullptr) {
      delete audio_request_type_.audio_stream_prepare_;
    }
    clear_has_audio_request_type();
  }
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* ExternalAudioStreamRequest::release_audio_stream_prepare() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_prepare)
  if (_internal_has_audio_stream_prepare()) {
    clear_has_audio_request_type();
      ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* temp = audio_request_type_.audio_stream_prepare_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    audio_request_type_.audio_stream_prepare_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare& ExternalAudioStreamRequest::_internal_audio_stream_prepare() const {
  return _internal_has_audio_stream_prepare()
      ? *audio_request_type_.audio_stream_prepare_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ExternalAudioStreamPrepare*>(&::Anki::Vector::external_interface::_ExternalAudioStreamPrepare_default_instance_);
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare& ExternalAudioStreamRequest::audio_stream_prepare() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_prepare)
  return _internal_audio_stream_prepare();
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* ExternalAudioStreamRequest::unsafe_arena_release_audio_stream_prepare() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_prepare)
  if (_internal_has_audio_stream_prepare()) {
    clear_has_audio_request_type();
    ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* temp = audio_request_type_.audio_stream_prepare_;
    audio_request_type_.audio_stream_prepare_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void ExternalAudioStreamRequest::unsafe_arena_set_allocated_audio_stream_prepare(::Anki::Vector::external_interface::ExternalAudioStreamPrepare* audio_stream_prepare) {
  clear_audio_request_type();
  if (audio_stream_prepare) {
    set_has_audio_stream_prepare();
    audio_request_type_.audio_stream_prepare_ = audio_stream_prepare;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_prepare)
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* ExternalAudioStreamRequest::_internal_mutable_audio_stream_prepare() {
  if (!_internal_has_audio_stream_prepare()) {
    clear_audio_request_type();
    set_has_audio_stream_prepare();
    audio_request_type_.audio_stream_prepare_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamPrepare >(GetArena());
  }
  return audio_request_type_.audio_stream_prepare_;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* ExternalAudioStreamRequest::mutable_audio_stream_prepare() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_prepare)
  return _internal_mutable_audio_stream_prepare();
}

// .Anki.Vector.external_interface.ExternalAudioStreamChunk audio_stream_chunk = 2;
inline bool ExternalAudioStreamRequest::_internal_has_audio_stream_chunk() const {
  return audio_request_type_case() == kAudioStreamChunk;
}
inline bool ExternalAudioStreamRequest::has_audio_stream_chunk() const {
  return _internal_has_audio_stream_chunk();
}
inline void ExternalAudioStreamRequest::set_has_audio_stream_chunk() {
  _oneof_case_[0] = kAudioStreamChunk;
}
inline void ExternalAudioStreamRequest::clear_audio_stream_chunk() {
  if (_internal_has_audio_stream_chunk()) {
    if (GetArena() == nullptr) {
      delete audio_request_type_.audio_stream_chunk_;
    }
    clear_has_audio_request_type();
  }
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamChunk* ExternalAudioStreamRequest::release_audio_stream_chunk() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_chunk)
  if (_internal_has_audio_stream_chunk()) {
    clear_has_audio_request_type();
      ::Anki::Vector::external_interface::ExternalAudioStreamChunk* temp = audio_request_type_.audio_stream_chunk_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    audio_request_type_.audio_stream_chunk_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamChunk& ExternalAudioStreamRequest::_internal_audio_stream_chunk() const {
  return _internal_has_audio_stream_chunk()
      ? *audio_request_type_.audio_stream_chunk_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ExternalAudioStreamChunk*>(&::Anki::Vector::external_interface::_ExternalAudioStreamChunk_default_instance_);
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamChunk& ExternalAudioStreamRequest::audio_stream_chunk() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_chunk)
  return _internal_audio_stream_chunk();
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamChunk* ExternalAudioStreamRequest::unsafe_arena_release_audio_stream_chunk() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_chunk)
  if (_internal_has_audio_stream_chunk()) {
    clear_has_audio_request_type();
    ::Anki::Vector::external_interface::ExternalAudioStreamChunk* temp = audio_request_type_.audio_stream_chunk_;
    audio_request_type_.audio_stream_chunk_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void ExternalAudioStreamRequest::unsafe_arena_set_allocated_audio_stream_chunk(::Anki::Vector::external_interface::ExternalAudioStreamChunk* audio_stream_chunk) {
  clear_audio_request_type();
  if (audio_stream_chunk) {
    set_has_audio_stream_chunk();
    audio_request_type_.audio_stream_chunk_ = audio_stream_chunk;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_chunk)
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamChunk* ExternalAudioStreamRequest::_internal_mutable_audio_stream_chunk() {
  if (!_internal_has_audio_stream_chunk()) {
    clear_audio_request_type();
    set_has_audio_stream_chunk();
    audio_request_type_.audio_stream_chunk_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamChunk >(GetArena());
  }
  return audio_request_type_.audio_stream_chunk_;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamChunk* ExternalAudioStreamRequest::mutable_audio_stream_chunk() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_chunk)
  return _internal_mutable_audio_stream_chunk();
}

// .Anki.Vector.external_interface.ExternalAudioStreamComplete audio_stream_complete = 3;
inline bool ExternalAudioStreamRequest::_internal_has_audio_stream_complete() const {
  return audio_request_type_case() == kAudioStreamComplete;
}
inline bool ExternalAudioStreamRequest::has_audio_stream_complete() const {
  return _internal_has_audio_stream_complete();
}
inline void ExternalAudioStreamRequest::set_has_audio_stream_complete() {
  _oneof_case_[0] = kAudioStreamComplete;
}
inline void ExternalAudioStreamRequest::clear_audio_stream_complete() {
  if (_internal_has_audio_stream_complete()) {
    if (GetArena() == nullptr) {
      delete audio_request_type_.audio_stream_complete_;
    }
    clear_has_audio_request_type();
  }
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamComplete* ExternalAudioStreamRequest::release_audio_stream_complete() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_complete)
  if (_internal_has_audio_stream_complete()) {
    clear_has_audio_request_type();
      ::Anki::Vector::external_interface::ExternalAudioStreamComplete* temp = audio_request_type_.audio_stream_complete_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    audio_request_type_.audio_stream_complete_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamComplete& ExternalAudioStreamRequest::_internal_audio_stream_complete() const {
  return _internal_has_audio_stream_complete()
      ? *audio_request_type_.audio_stream_complete_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ExternalAudioStreamComplete*>(&::Anki::Vector::external_interface::_ExternalAudioStreamComplete_default_instance_);
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamComplete& ExternalAudioStreamRequest::audio_stream_complete() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_complete)
  return _internal_audio_stream_complete();
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamComplete* ExternalAudioStreamRequest::unsafe_arena_release_audio_stream_complete() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_complete)
  if (_internal_has_audio_stream_complete()) {
    clear_has_audio_request_type();
    ::Anki::Vector::external_interface::ExternalAudioStreamComplete* temp = audio_request_type_.audio_stream_complete_;
    audio_request_type_.audio_stream_complete_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void ExternalAudioStreamRequest::unsafe_arena_set_allocated_audio_stream_complete(::Anki::Vector::external_interface::ExternalAudioStreamComplete* audio_stream_complete) {
  clear_audio_request_type();
  if (audio_stream_complete) {
    set_has_audio_stream_complete();
    audio_request_type_.audio_stream_complete_ = audio_stream_complete;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_complete)
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamComplete* ExternalAudioStreamRequest::_internal_mutable_audio_stream_complete() {
  if (!_internal_has_audio_stream_complete()) {
    clear_audio_request_type();
    set_has_audio_stream_complete();
    audio_request_type_.audio_stream_complete_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamComplete >(GetArena());
  }
  return audio_request_type_.audio_stream_complete_;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamComplete* ExternalAudioStreamRequest::mutable_audio_stream_complete() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_complete)
  return _internal_mutable_audio_stream_complete();
}

// .Anki.Vector.external_interface.ExternalAudioStreamCancel audio_stream_cancel = 4;
inline bool ExternalAudioStreamRequest::_internal_has_audio_stream_cancel() const {
  return audio_request_type_case() == kAudioStreamCancel;
}
inline bool ExternalAudioStreamRequest::has_audio_stream_cancel() const {
  return _internal_has_audio_stream_cancel();
}
inline void ExternalAudioStreamRequest::set_has_audio_stream_cancel() {
  _oneof_case_[0] = kAudioStreamCancel;
}
inline void ExternalAudioStreamRequest::clear_audio_stream_cancel() {
  if (_internal_has_audio_stream_cancel()) {
    if (GetArena() == nullptr) {
      delete audio_request_type_.audio_stream_cancel_;
    }
    clear_has_audio_request_type();
  }
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamCancel* ExternalAudioStreamRequest::release_audio_stream_cancel() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_cancel)
  if (_internal_has_audio_stream_cancel()) {
    clear_has_audio_request_type();
      ::Anki::Vector::external_interface::ExternalAudioStreamCancel* temp = audio_request_type_.audio_stream_cancel_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    audio_request_type_.audio_stream_cancel_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamCancel& ExternalAudioStreamRequest::_internal_audio_stream_cancel() const {
  return _internal_has_audio_stream_cancel()
      ? *audio_request_type_.audio_stream_cancel_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ExternalAudioStreamCancel*>(&::Anki::Vector::external_interface::_ExternalAudioStreamCancel_default_instance_);
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamCancel& ExternalAudioStreamRequest::audio_stream_cancel() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_cancel)
  return _internal_audio_stream_cancel();
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamCancel* ExternalAudioStreamRequest::unsafe_arena_release_audio_stream_cancel() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_cancel)
  if (_internal_has_audio_stream_cancel()) {
    clear_has_audio_request_type();
    ::Anki::Vector::external_interface::ExternalAudioStreamCancel* temp = audio_request_type_.audio_stream_cancel_;
    audio_request_type_.audio_stream_cancel_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void ExternalAudioStreamRequest::unsafe_arena_set_allocated_audio_stream_cancel(::Anki::Vector::external_interface::ExternalAudioStreamCancel* audio_stream_cancel) {
  clear_audio_request_type();
  if (audio_stream_cancel) {
    set_has_audio_stream_cancel();
    audio_request_type_.audio_stream_cancel_ = audio_stream_cancel;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_cancel)
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamCancel* ExternalAudioStreamRequest::_internal_mutable_audio_stream_cancel() {
  if (!_internal_has_audio_stream_cancel()) {
    clear_audio_request_type();
    set_has_audio_stream_cancel();
    audio_request_type_.audio_stream_cancel_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamCancel >(GetArena());
  }
  return audio_request_type_.audio_stream_cancel_;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamCancel* ExternalAudioStreamRequest::mutable_audio_stream_cancel() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_cancel)
  return _internal_mutable_audio_stream_cancel();
}

inline bool ExternalAudioStreamRequest::has_audio_request_type() const {
  return audio_request_type_case() != AUDIO_REQUEST_TYPE_NOT_SET;
}
inline void ExternalAudioStreamRequest::clear_has_audio_request_type() {
  _oneof_case_[0] = AUDIO_REQUEST_TYPE_NOT_SET;
}
inline ExternalAudioStreamRequest::AudioRequestTypeCase ExternalAudioStreamRequest::audio_request_type_case() const {
  return ExternalAudioStreamRequest::AudioRequestTypeCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// ExternalAudioStreamPlaybackComplete

// -------------------------------------------------------------------

// ExternalAudioStreamPlaybackFailure

// -------------------------------------------------------------------

// ExternalAudioStreamBufferOverrun

// uint32 audio_samples_sent = 1;
inline void ExternalAudioStreamBufferOverrun::clear_audio_samples_sent() {
  audio_samples_sent_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ExternalAudioStreamBufferOverrun::_internal_audio_samples_sent() const {
  return audio_samples_sent_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ExternalAudioStreamBufferOverrun::audio_samples_sent() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun.audio_samples_sent)
  return _internal_audio_samples_sent();
}
inline void ExternalAudioStreamBufferOverrun::_internal_set_audio_samples_sent(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  audio_samples_sent_ = value;
}
inline void ExternalAudioStreamBufferOverrun::set_audio_samples_sent(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_audio_samples_sent(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun.audio_samples_sent)
}

// uint32 audio_samples_played = 2;
inline void ExternalAudioStreamBufferOverrun::clear_audio_samples_played() {
  audio_samples_played_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ExternalAudioStreamBufferOverrun::_internal_audio_samples_played() const {
  return audio_samples_played_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ExternalAudioStreamBufferOverrun::audio_samples_played() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun.audio_samples_played)
  return _internal_audio_samples_played();
}
inline void ExternalAudioStreamBufferOverrun::_internal_set_audio_samples_played(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  audio_samples_played_ = value;
}
inline void ExternalAudioStreamBufferOverrun::set_audio_samples_played(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_audio_samples_played(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun.audio_samples_played)
}

// -------------------------------------------------------------------

// ExternalAudioStreamResponse

// .Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete audio_stream_playback_complete = 1;
inline bool ExternalAudioStreamResponse::_internal_has_audio_stream_playback_complete() const {
  return audio_response_type_case() == kAudioStreamPlaybackComplete;
}
inline bool ExternalAudioStreamResponse::has_audio_stream_playback_complete() const {
  return _internal_has_audio_stream_playback_complete();
}
inline void ExternalAudioStreamResponse::set_has_audio_stream_playback_complete() {
  _oneof_case_[0] = kAudioStreamPlaybackComplete;
}
inline void ExternalAudioStreamResponse::clear_audio_stream_playback_complete() {
  if (_internal_has_audio_stream_playback_complete()) {
    if (GetArena() == nullptr) {
      delete audio_response_type_.audio_stream_playback_complete_;
    }
    clear_has_audio_response_type();
  }
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* ExternalAudioStreamResponse::release_audio_stream_playback_complete() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_playback_complete)
  if (_internal_has_audio_stream_playback_complete()) {
    clear_has_audio_response_type();
      ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* temp = audio_response_type_.audio_stream_playback_complete_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    audio_response_type_.audio_stream_playback_complete_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete& ExternalAudioStreamResponse::_internal_audio_stream_playback_complete() const {
  return _internal_has_audio_stream_playback_complete()
      ? *audio_response_type_.audio_stream_playback_complete_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete*>(&::Anki::Vector::external_interface::_ExternalAudioStreamPlaybackComplete_default_instance_);
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete& ExternalAudioStreamResponse::audio_stream_playback_complete() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_playback_complete)
  return _internal_audio_stream_playback_complete();
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* ExternalAudioStreamResponse::unsafe_arena_release_audio_stream_playback_complete() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_playback_complete)
  if (_internal_has_audio_stream_playback_complete()) {
    clear_has_audio_response_type();
    ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* temp = audio_response_type_.audio_stream_playback_complete_;
    audio_response_type_.audio_stream_playback_complete_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void ExternalAudioStreamResponse::unsafe_arena_set_allocated_audio_stream_playback_complete(::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* audio_stream_playback_complete) {
  clear_audio_response_type();
  if (audio_stream_playback_complete) {
    set_has_audio_stream_playback_complete();
    audio_response_type_.audio_stream_playback_complete_ = audio_stream_playback_complete;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_playback_complete)
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* ExternalAudioStreamResponse::_internal_mutable_audio_stream_playback_complete() {
  if (!_internal_has_audio_stream_playback_complete()) {
    clear_audio_response_type();
    set_has_audio_stream_playback_complete();
    audio_response_type_.audio_stream_playback_complete_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete >(GetArena());
  }
  return audio_response_type_.audio_stream_playback_complete_;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* ExternalAudioStreamResponse::mutable_audio_stream_playback_complete() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_playback_complete)
  return _internal_mutable_audio_stream_playback_complete();
}

// .Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun audio_stream_buffer_overrun = 2;
inline bool ExternalAudioStreamResponse::_internal_has_audio_stream_buffer_overrun() const {
  return audio_response_type_case() == kAudioStreamBufferOverrun;
}
inline bool ExternalAudioStreamResponse::has_audio_stream_buffer_overrun() const {
  return _internal_has_audio_stream_buffer_overrun();
}
inline void ExternalAudioStreamResponse::set_has_audio_stream_buffer_overrun() {
  _oneof_case_[0] = kAudioStreamBufferOverrun;
}
inline void ExternalAudioStreamResponse::clear_audio_stream_buffer_overrun() {
  if (_internal_has_audio_stream_buffer_overrun()) {
    if (GetArena() == nullptr) {
      delete audio_response_type_.audio_stream_buffer_overrun_;
    }
    clear_has_audio_response_type();
  }
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* ExternalAudioStreamResponse::release_audio_stream_buffer_overrun() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_buffer_overrun)
  if (_internal_has_audio_stream_buffer_overrun()) {
    clear_has_audio_response_type();
      ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* temp = audio_response_type_.audio_stream_buffer_overrun_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    audio_response_type_.audio_stream_buffer_overrun_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun& ExternalAudioStreamResponse::_internal_audio_stream_buffer_overrun() const {
  return _internal_has_audio_stream_buffer_overrun()
      ? *audio_response_type_.audio_stream_buffer_overrun_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun*>(&::Anki::Vector::external_interface::_ExternalAudioStreamBufferOverrun_default_instance_);
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun& ExternalAudioStreamResponse::audio_stream_buffer_overrun() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_buffer_overrun)
  return _internal_audio_stream_buffer_overrun();
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* ExternalAudioStreamResponse::unsafe_arena_release_audio_stream_buffer_overrun() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_buffer_overrun)
  if (_internal_has_audio_stream_buffer_overrun()) {
    clear_has_audio_response_type();
    ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* temp = audio_response_type_.audio_stream_buffer_overrun_;
    audio_response_type_.audio_stream_buffer_overrun_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void ExternalAudioStreamResponse::unsafe_arena_set_allocated_audio_stream_buffer_overrun(::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* audio_stream_buffer_overrun) {
  clear_audio_response_type();
  if (audio_stream_buffer_overrun) {
    set_has_audio_stream_buffer_overrun();
    audio_response_type_.audio_stream_buffer_overrun_ = audio_stream_buffer_overrun;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_buffer_overrun)
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* ExternalAudioStreamResponse::_internal_mutable_audio_stream_buffer_overrun() {
  if (!_internal_has_audio_stream_buffer_overrun()) {
    clear_audio_response_type();
    set_has_audio_stream_buffer_overrun();
    audio_response_type_.audio_stream_buffer_overrun_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun >(GetArena());
  }
  return audio_response_type_.audio_stream_buffer_overrun_;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* ExternalAudioStreamResponse::mutable_audio_stream_buffer_overrun() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_buffer_overrun)
  return _internal_mutable_audio_stream_buffer_overrun();
}

// .Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure audio_stream_playback_failyer = 3;
inline bool ExternalAudioStreamResponse::_internal_has_audio_stream_playback_failyer() const {
  return audio_response_type_case() == kAudioStreamPlaybackFailyer;
}
inline bool ExternalAudioStreamResponse::has_audio_stream_playback_failyer() const {
  return _internal_has_audio_stream_playback_failyer();
}
inline void ExternalAudioStreamResponse::set_has_audio_stream_playback_failyer() {
  _oneof_case_[0] = kAudioStreamPlaybackFailyer;
}
inline void ExternalAudioStreamResponse::clear_audio_stream_playback_failyer() {
  if (_internal_has_audio_stream_playback_failyer()) {
    if (GetArena() == nullptr) {
      delete audio_response_type_.audio_stream_playback_failyer_;
    }
    clear_has_audio_response_type();
  }
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* ExternalAudioStreamResponse::release_audio_stream_playback_failyer() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_playback_failyer)
  if (_internal_has_audio_stream_playback_failyer()) {
    clear_has_audio_response_type();
      ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* temp = audio_response_type_.audio_stream_playback_failyer_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    audio_response_type_.audio_stream_playback_failyer_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure& ExternalAudioStreamResponse::_internal_audio_stream_playback_failyer() const {
  return _internal_has_audio_stream_playback_failyer()
      ? *audio_response_type_.audio_stream_playback_failyer_
      : *reinterpret_cast< ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure*>(&::Anki::Vector::external_interface::_ExternalAudioStreamPlaybackFailure_default_instance_);
}
inline const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure& ExternalAudioStreamResponse::audio_stream_playback_failyer() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_playback_failyer)
  return _internal_audio_stream_playback_failyer();
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* ExternalAudioStreamResponse::unsafe_arena_release_audio_stream_playback_failyer() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_playback_failyer)
  if (_internal_has_audio_stream_playback_failyer()) {
    clear_has_audio_response_type();
    ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* temp = audio_response_type_.audio_stream_playback_failyer_;
    audio_response_type_.audio_stream_playback_failyer_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void ExternalAudioStreamResponse::unsafe_arena_set_allocated_audio_stream_playback_failyer(::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* audio_stream_playback_failyer) {
  clear_audio_response_type();
  if (audio_stream_playback_failyer) {
    set_has_audio_stream_playback_failyer();
    audio_response_type_.audio_stream_playback_failyer_ = audio_stream_playback_failyer;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_playback_failyer)
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* ExternalAudioStreamResponse::_internal_mutable_audio_stream_playback_failyer() {
  if (!_internal_has_audio_stream_playback_failyer()) {
    clear_audio_response_type();
    set_has_audio_stream_playback_failyer();
    audio_response_type_.audio_stream_playback_failyer_ = CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure >(GetArena());
  }
  return audio_response_type_.audio_stream_playback_failyer_;
}
inline ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* ExternalAudioStreamResponse::mutable_audio_stream_playback_failyer() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_playback_failyer)
  return _internal_mutable_audio_stream_playback_failyer();
}

inline bool ExternalAudioStreamResponse::has_audio_response_type() const {
  return audio_response_type_case() != AUDIO_RESPONSE_TYPE_NOT_SET;
}
inline void ExternalAudioStreamResponse::clear_has_audio_response_type() {
  _oneof_case_[0] = AUDIO_RESPONSE_TYPE_NOT_SET;
}
inline ExternalAudioStreamResponse::AudioResponseTypeCase ExternalAudioStreamResponse::audio_response_type_case() const {
  return ExternalAudioStreamResponse::AudioResponseTypeCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// MasterVolumeRequest

// .Anki.Vector.external_interface.MasterVolumeLevel volume_level = 1;
inline void MasterVolumeRequest::clear_volume_level() {
  volume_level_ = 0;
}
inline ::Anki::Vector::external_interface::MasterVolumeLevel MasterVolumeRequest::_internal_volume_level() const {
  return static_cast< ::Anki::Vector::external_interface::MasterVolumeLevel >(volume_level_);
}
inline ::Anki::Vector::external_interface::MasterVolumeLevel MasterVolumeRequest::volume_level() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.MasterVolumeRequest.volume_level)
  return _internal_volume_level();
}
inline void MasterVolumeRequest::_internal_set_volume_level(::Anki::Vector::external_interface::MasterVolumeLevel value) {
  
  volume_level_ = value;
}
inline void MasterVolumeRequest::set_volume_level(::Anki::Vector::external_interface::MasterVolumeLevel value) {
  _internal_set_volume_level(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.MasterVolumeRequest.volume_level)
}

// -------------------------------------------------------------------

// MasterVolumeResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool MasterVolumeResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool MasterVolumeResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& MasterVolumeResponse::_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& MasterVolumeResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.MasterVolumeResponse.status)
  return _internal_status();
}
inline void MasterVolumeResponse::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.MasterVolumeResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* MasterVolumeResponse::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* MasterVolumeResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.MasterVolumeResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* MasterVolumeResponse::_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* MasterVolumeResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.MasterVolumeResponse.status)
  return _internal_mutable_status();
}
inline void MasterVolumeResponse::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.MasterVolumeResponse.status)
}

// -------------------------------------------------------------------

// EnableMarkerDetectionRequest

// bool enable = 1;
inline void EnableMarkerDetectionRequest::clear_enable() {
  enable_ = false;
}
inline bool EnableMarkerDetectionRequest::_internal_enable() const {
  return enable_;
}
inline bool EnableMarkerDetectionRequest::enable() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableMarkerDetectionRequest.enable)
  return _internal_enable();
}
inline void EnableMarkerDetectionRequest::_internal_set_enable(bool value) {
  
  enable_ = value;
}
inline void EnableMarkerDetectionRequest::set_enable(bool value) {
  _internal_set_enable(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.EnableMarkerDetectionRequest.enable)
}

// -------------------------------------------------------------------

// EnableMarkerDetectionResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool EnableMarkerDetectionResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool EnableMarkerDetectionResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& EnableMarkerDetectionResponse::_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& EnableMarkerDetectionResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableMarkerDetectionResponse.status)
  return _internal_status();
}
inline void EnableMarkerDetectionResponse::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.EnableMarkerDetectionResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* EnableMarkerDetectionResponse::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* EnableMarkerDetectionResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.EnableMarkerDetectionResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* EnableMarkerDetectionResponse::_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* EnableMarkerDetectionResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.EnableMarkerDetectionResponse.status)
  return _internal_mutable_status();
}
inline void EnableMarkerDetectionResponse::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.EnableMarkerDetectionResponse.status)
}

// -------------------------------------------------------------------

// EnableFaceDetectionRequest

// bool enable = 1;
inline void EnableFaceDetectionRequest::clear_enable() {
  enable_ = false;
}
inline bool EnableFaceDetectionRequest::_internal_enable() const {
  return enable_;
}
inline bool EnableFaceDetectionRequest::enable() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableFaceDetectionRequest.enable)
  return _internal_enable();
}
inline void EnableFaceDetectionRequest::_internal_set_enable(bool value) {
  
  enable_ = value;
}
inline void EnableFaceDetectionRequest::set_enable(bool value) {
  _internal_set_enable(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.EnableFaceDetectionRequest.enable)
}

// bool enable_smile_detection = 2;
inline void EnableFaceDetectionRequest::clear_enable_smile_detection() {
  enable_smile_detection_ = false;
}
inline bool EnableFaceDetectionRequest::_internal_enable_smile_detection() const {
  return enable_smile_detection_;
}
inline bool EnableFaceDetectionRequest::enable_smile_detection() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableFaceDetectionRequest.enable_smile_detection)
  return _internal_enable_smile_detection();
}
inline void EnableFaceDetectionRequest::_internal_set_enable_smile_detection(bool value) {
  
  enable_smile_detection_ = value;
}
inline void EnableFaceDetectionRequest::set_enable_smile_detection(bool value) {
  _internal_set_enable_smile_detection(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.EnableFaceDetectionRequest.enable_smile_detection)
}

// bool enable_expression_estimation = 3;
inline void EnableFaceDetectionRequest::clear_enable_expression_estimation() {
  enable_expression_estimation_ = false;
}
inline bool EnableFaceDetectionRequest::_internal_enable_expression_estimation() const {
  return enable_expression_estimation_;
}
inline bool EnableFaceDetectionRequest::enable_expression_estimation() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableFaceDetectionRequest.enable_expression_estimation)
  return _internal_enable_expression_estimation();
}
inline void EnableFaceDetectionRequest::_internal_set_enable_expression_estimation(bool value) {
  
  enable_expression_estimation_ = value;
}
inline void EnableFaceDetectionRequest::set_enable_expression_estimation(bool value) {
  _internal_set_enable_expression_estimation(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.EnableFaceDetectionRequest.enable_expression_estimation)
}

// bool enable_blink_detection = 4;
inline void EnableFaceDetectionRequest::clear_enable_blink_detection() {
  enable_blink_detection_ = false;
}
inline bool EnableFaceDetectionRequest::_internal_enable_blink_detection() const {
  return enable_blink_detection_;
}
inline bool EnableFaceDetectionRequest::enable_blink_detection() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableFaceDetectionRequest.enable_blink_detection)
  return _internal_enable_blink_detection();
}
inline void EnableFaceDetectionRequest::_internal_set_enable_blink_detection(bool value) {
  
  enable_blink_detection_ = value;
}
inline void EnableFaceDetectionRequest::set_enable_blink_detection(bool value) {
  _internal_set_enable_blink_detection(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.EnableFaceDetectionRequest.enable_blink_detection)
}

// bool enable_gaze_detection = 5;
inline void EnableFaceDetectionRequest::clear_enable_gaze_detection() {
  enable_gaze_detection_ = false;
}
inline bool EnableFaceDetectionRequest::_internal_enable_gaze_detection() const {
  return enable_gaze_detection_;
}
inline bool EnableFaceDetectionRequest::enable_gaze_detection() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableFaceDetectionRequest.enable_gaze_detection)
  return _internal_enable_gaze_detection();
}
inline void EnableFaceDetectionRequest::_internal_set_enable_gaze_detection(bool value) {
  
  enable_gaze_detection_ = value;
}
inline void EnableFaceDetectionRequest::set_enable_gaze_detection(bool value) {
  _internal_set_enable_gaze_detection(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.EnableFaceDetectionRequest.enable_gaze_detection)
}

// -------------------------------------------------------------------

// EnableFaceDetectionResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool EnableFaceDetectionResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool EnableFaceDetectionResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& EnableFaceDetectionResponse::_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& EnableFaceDetectionResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableFaceDetectionResponse.status)
  return _internal_status();
}
inline void EnableFaceDetectionResponse::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.EnableFaceDetectionResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* EnableFaceDetectionResponse::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* EnableFaceDetectionResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.EnableFaceDetectionResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* EnableFaceDetectionResponse::_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* EnableFaceDetectionResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.EnableFaceDetectionResponse.status)
  return _internal_mutable_status();
}
inline void EnableFaceDetectionResponse::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.EnableFaceDetectionResponse.status)
}

// -------------------------------------------------------------------

// EnableMotionDetectionRequest

// bool enable = 1;
inline void EnableMotionDetectionRequest::clear_enable() {
  enable_ = false;
}
inline bool EnableMotionDetectionRequest::_internal_enable() const {
  return enable_;
}
inline bool EnableMotionDetectionRequest::enable() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableMotionDetectionRequest.enable)
  return _internal_enable();
}
inline void EnableMotionDetectionRequest::_internal_set_enable(bool value) {
  
  enable_ = value;
}
inline void EnableMotionDetectionRequest::set_enable(bool value) {
  _internal_set_enable(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.EnableMotionDetectionRequest.enable)
}

// -------------------------------------------------------------------

// EnableMotionDetectionResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool EnableMotionDetectionResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool EnableMotionDetectionResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& EnableMotionDetectionResponse::_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& EnableMotionDetectionResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableMotionDetectionResponse.status)
  return _internal_status();
}
inline void EnableMotionDetectionResponse::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.EnableMotionDetectionResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* EnableMotionDetectionResponse::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* EnableMotionDetectionResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.EnableMotionDetectionResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* EnableMotionDetectionResponse::_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* EnableMotionDetectionResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.EnableMotionDetectionResponse.status)
  return _internal_mutable_status();
}
inline void EnableMotionDetectionResponse::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.EnableMotionDetectionResponse.status)
}

// -------------------------------------------------------------------

// EnableMirrorModeRequest

// bool enable = 1;
inline void EnableMirrorModeRequest::clear_enable() {
  enable_ = false;
}
inline bool EnableMirrorModeRequest::_internal_enable() const {
  return enable_;
}
inline bool EnableMirrorModeRequest::enable() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableMirrorModeRequest.enable)
  return _internal_enable();
}
inline void EnableMirrorModeRequest::_internal_set_enable(bool value) {
  
  enable_ = value;
}
inline void EnableMirrorModeRequest::set_enable(bool value) {
  _internal_set_enable(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.EnableMirrorModeRequest.enable)
}

// -------------------------------------------------------------------

// EnableMirrorModeResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool EnableMirrorModeResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool EnableMirrorModeResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& EnableMirrorModeResponse::_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& EnableMirrorModeResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableMirrorModeResponse.status)
  return _internal_status();
}
inline void EnableMirrorModeResponse::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.EnableMirrorModeResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* EnableMirrorModeResponse::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* EnableMirrorModeResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.EnableMirrorModeResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* EnableMirrorModeResponse::_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* EnableMirrorModeResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.EnableMirrorModeResponse.status)
  return _internal_mutable_status();
}
inline void EnableMirrorModeResponse::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.EnableMirrorModeResponse.status)
}

// -------------------------------------------------------------------

// MirrorModeDisabled

// -------------------------------------------------------------------

// EnableImageStreamingRequest

// bool enable = 1;
inline void EnableImageStreamingRequest::clear_enable() {
  enable_ = false;
}
inline bool EnableImageStreamingRequest::_internal_enable() const {
  return enable_;
}
inline bool EnableImageStreamingRequest::enable() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableImageStreamingRequest.enable)
  return _internal_enable();
}
inline void EnableImageStreamingRequest::_internal_set_enable(bool value) {
  
  enable_ = value;
}
inline void EnableImageStreamingRequest::set_enable(bool value) {
  _internal_set_enable(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.EnableImageStreamingRequest.enable)
}

// bool enable_high_resolution = 2;
inline void EnableImageStreamingRequest::clear_enable_high_resolution() {
  enable_high_resolution_ = false;
}
inline bool EnableImageStreamingRequest::_internal_enable_high_resolution() const {
  return enable_high_resolution_;
}
inline bool EnableImageStreamingRequest::enable_high_resolution() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableImageStreamingRequest.enable_high_resolution)
  return _internal_enable_high_resolution();
}
inline void EnableImageStreamingRequest::_internal_set_enable_high_resolution(bool value) {
  
  enable_high_resolution_ = value;
}
inline void EnableImageStreamingRequest::set_enable_high_resolution(bool value) {
  _internal_set_enable_high_resolution(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.EnableImageStreamingRequest.enable_high_resolution)
}

// -------------------------------------------------------------------

// EnableImageStreamingResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool EnableImageStreamingResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool EnableImageStreamingResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& EnableImageStreamingResponse::_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& EnableImageStreamingResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.EnableImageStreamingResponse.status)
  return _internal_status();
}
inline void EnableImageStreamingResponse::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.EnableImageStreamingResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* EnableImageStreamingResponse::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* EnableImageStreamingResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.EnableImageStreamingResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* EnableImageStreamingResponse::_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* EnableImageStreamingResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.EnableImageStreamingResponse.status)
  return _internal_mutable_status();
}
inline void EnableImageStreamingResponse::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.EnableImageStreamingResponse.status)
}

// -------------------------------------------------------------------

// IsImageStreamingEnabledRequest

// -------------------------------------------------------------------

// IsImageStreamingEnabledResponse

// bool is_image_streaming_enabled = 1;
inline void IsImageStreamingEnabledResponse::clear_is_image_streaming_enabled() {
  is_image_streaming_enabled_ = false;
}
inline bool IsImageStreamingEnabledResponse::_internal_is_image_streaming_enabled() const {
  return is_image_streaming_enabled_;
}
inline bool IsImageStreamingEnabledResponse::is_image_streaming_enabled() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.IsImageStreamingEnabledResponse.is_image_streaming_enabled)
  return _internal_is_image_streaming_enabled();
}
inline void IsImageStreamingEnabledResponse::_internal_set_is_image_streaming_enabled(bool value) {
  
  is_image_streaming_enabled_ = value;
}
inline void IsImageStreamingEnabledResponse::set_is_image_streaming_enabled(bool value) {
  _internal_set_is_image_streaming_enabled(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.IsImageStreamingEnabledResponse.is_image_streaming_enabled)
}

// -------------------------------------------------------------------

// VisionModesAutoDisabled

// -------------------------------------------------------------------

// ImageChunk

// uint32 frame_time_stamp = 1;
inline void ImageChunk::clear_frame_time_stamp() {
  frame_time_stamp_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::_internal_frame_time_stamp() const {
  return frame_time_stamp_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::frame_time_stamp() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ImageChunk.frame_time_stamp)
  return _internal_frame_time_stamp();
}
inline void ImageChunk::_internal_set_frame_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  frame_time_stamp_ = value;
}
inline void ImageChunk::set_frame_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_frame_time_stamp(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ImageChunk.frame_time_stamp)
}

// uint32 image_id = 2;
inline void ImageChunk::clear_image_id() {
  image_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::_internal_image_id() const {
  return image_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::image_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ImageChunk.image_id)
  return _internal_image_id();
}
inline void ImageChunk::_internal_set_image_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  image_id_ = value;
}
inline void ImageChunk::set_image_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_image_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ImageChunk.image_id)
}

// uint32 width = 3;
inline void ImageChunk::clear_width() {
  width_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::_internal_width() const {
  return width_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::width() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ImageChunk.width)
  return _internal_width();
}
inline void ImageChunk::_internal_set_width(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  width_ = value;
}
inline void ImageChunk::set_width(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_width(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ImageChunk.width)
}

// uint32 height = 4;
inline void ImageChunk::clear_height() {
  height_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::_internal_height() const {
  return height_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::height() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ImageChunk.height)
  return _internal_height();
}
inline void ImageChunk::_internal_set_height(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  height_ = value;
}
inline void ImageChunk::set_height(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_height(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ImageChunk.height)
}

// .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 5;
inline void ImageChunk::clear_image_encoding() {
  image_encoding_ = 0;
}
inline ::Anki::Vector::external_interface::ImageChunk_ImageEncoding ImageChunk::_internal_image_encoding() const {
  return static_cast< ::Anki::Vector::external_interface::ImageChunk_ImageEncoding >(image_encoding_);
}
inline ::Anki::Vector::external_interface::ImageChunk_ImageEncoding ImageChunk::image_encoding() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ImageChunk.image_encoding)
  return _internal_image_encoding();
}
inline void ImageChunk::_internal_set_image_encoding(::Anki::Vector::external_interface::ImageChunk_ImageEncoding value) {
  
  image_encoding_ = value;
}
inline void ImageChunk::set_image_encoding(::Anki::Vector::external_interface::ImageChunk_ImageEncoding value) {
  _internal_set_image_encoding(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ImageChunk.image_encoding)
}

// uint32 display_index = 6;
inline void ImageChunk::clear_display_index() {
  display_index_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::_internal_display_index() const {
  return display_index_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::display_index() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ImageChunk.display_index)
  return _internal_display_index();
}
inline void ImageChunk::_internal_set_display_index(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  display_index_ = value;
}
inline void ImageChunk::set_display_index(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_display_index(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ImageChunk.display_index)
}

// uint32 image_chunk_count = 7;
inline void ImageChunk::clear_image_chunk_count() {
  image_chunk_count_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::_internal_image_chunk_count() const {
  return image_chunk_count_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::image_chunk_count() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ImageChunk.image_chunk_count)
  return _internal_image_chunk_count();
}
inline void ImageChunk::_internal_set_image_chunk_count(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  image_chunk_count_ = value;
}
inline void ImageChunk::set_image_chunk_count(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_image_chunk_count(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ImageChunk.image_chunk_count)
}

// uint32 chunk_id = 8;
inline void ImageChunk::clear_chunk_id() {
  chunk_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::_internal_chunk_id() const {
  return chunk_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 ImageChunk::chunk_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ImageChunk.chunk_id)
  return _internal_chunk_id();
}
inline void ImageChunk::_internal_set_chunk_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  chunk_id_ = value;
}
inline void ImageChunk::set_chunk_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_chunk_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ImageChunk.chunk_id)
}

// bytes data = 9;
inline void ImageChunk::clear_data() {
  data_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& ImageChunk::data() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.ImageChunk.data)
  return _internal_data();
}
inline void ImageChunk::set_data(const std::string& value) {
  _internal_set_data(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.ImageChunk.data)
}
inline std::string* ImageChunk::mutable_data() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.ImageChunk.data)
  return _internal_mutable_data();
}
inline const std::string& ImageChunk::_internal_data() const {
  return data_.Get();
}
inline void ImageChunk::_internal_set_data(const std::string& value) {
  
  data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void ImageChunk::set_data(std::string&& value) {
  
  data_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.ImageChunk.data)
}
inline void ImageChunk::set_data(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.ImageChunk.data)
}
inline void ImageChunk::set_data(const void* value,
    size_t size) {
  
  data_.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.ImageChunk.data)
}
inline std::string* ImageChunk::_internal_mutable_data() {
  
  return data_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* ImageChunk::release_data() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.ImageChunk.data)
  return data_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void ImageChunk::set_allocated_data(std::string* data) {
  if (data != nullptr) {
    
  } else {
    
  }
  data_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), data,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ImageChunk.data)
}
inline std::string* ImageChunk::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.ImageChunk.data)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return data_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void ImageChunk::unsafe_arena_set_allocated_data(
    std::string* data) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (data != nullptr) {
    
  } else {
    
  }
  data_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      data, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.ImageChunk.data)
}

// -------------------------------------------------------------------

// CameraFeedRequest

// -------------------------------------------------------------------

// CameraFeedResponse

// uint32 frame_time_stamp = 1;
inline void CameraFeedResponse::clear_frame_time_stamp() {
  frame_time_stamp_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraFeedResponse::_internal_frame_time_stamp() const {
  return frame_time_stamp_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraFeedResponse::frame_time_stamp() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraFeedResponse.frame_time_stamp)
  return _internal_frame_time_stamp();
}
inline void CameraFeedResponse::_internal_set_frame_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  frame_time_stamp_ = value;
}
inline void CameraFeedResponse::set_frame_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_frame_time_stamp(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraFeedResponse.frame_time_stamp)
}

// uint32 image_id = 2;
inline void CameraFeedResponse::clear_image_id() {
  image_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraFeedResponse::_internal_image_id() const {
  return image_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraFeedResponse::image_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraFeedResponse.image_id)
  return _internal_image_id();
}
inline void CameraFeedResponse::_internal_set_image_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  image_id_ = value;
}
inline void CameraFeedResponse::set_image_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_image_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraFeedResponse.image_id)
}

// .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 3;
inline void CameraFeedResponse::clear_image_encoding() {
  image_encoding_ = 0;
}
inline ::Anki::Vector::external_interface::ImageChunk_ImageEncoding CameraFeedResponse::_internal_image_encoding() const {
  return static_cast< ::Anki::Vector::external_interface::ImageChunk_ImageEncoding >(image_encoding_);
}
inline ::Anki::Vector::external_interface::ImageChunk_ImageEncoding CameraFeedResponse::image_encoding() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraFeedResponse.image_encoding)
  return _internal_image_encoding();
}
inline void CameraFeedResponse::_internal_set_image_encoding(::Anki::Vector::external_interface::ImageChunk_ImageEncoding value) {
  
  image_encoding_ = value;
}
inline void CameraFeedResponse::set_image_encoding(::Anki::Vector::external_interface::ImageChunk_ImageEncoding value) {
  _internal_set_image_encoding(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraFeedResponse.image_encoding)
}

// bytes data = 4;
inline void CameraFeedResponse::clear_data() {
  data_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& CameraFeedResponse::data() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraFeedResponse.data)
  return _internal_data();
}
inline void CameraFeedResponse::set_data(const std::string& value) {
  _internal_set_data(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraFeedResponse.data)
}
inline std::string* CameraFeedResponse::mutable_data() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.CameraFeedResponse.data)
  return _internal_mutable_data();
}
inline const std::string& CameraFeedResponse::_internal_data() const {
  return data_.Get();
}
inline void CameraFeedResponse::_internal_set_data(const std::string& value) {
  
  data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void CameraFeedResponse::set_data(std::string&& value) {
  
  data_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.CameraFeedResponse.data)
}
inline void CameraFeedResponse::set_data(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.CameraFeedResponse.data)
}
inline void CameraFeedResponse::set_data(const void* value,
    size_t size) {
  
  data_.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.CameraFeedResponse.data)
}
inline std::string* CameraFeedResponse::_internal_mutable_data() {
  
  return data_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* CameraFeedResponse::release_data() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.CameraFeedResponse.data)
  return data_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void CameraFeedResponse::set_allocated_data(std::string* data) {
  if (data != nullptr) {
    
  } else {
    
  }
  data_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), data,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.CameraFeedResponse.data)
}
inline std::string* CameraFeedResponse::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.CameraFeedResponse.data)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return data_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void CameraFeedResponse::unsafe_arena_set_allocated_data(
    std::string* data) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (data != nullptr) {
    
  } else {
    
  }
  data_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      data, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.CameraFeedResponse.data)
}

// -------------------------------------------------------------------

// CaptureSingleImageRequest

// bool enable_high_resolution = 1;
inline void CaptureSingleImageRequest::clear_enable_high_resolution() {
  enable_high_resolution_ = false;
}
inline bool CaptureSingleImageRequest::_internal_enable_high_resolution() const {
  return enable_high_resolution_;
}
inline bool CaptureSingleImageRequest::enable_high_resolution() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CaptureSingleImageRequest.enable_high_resolution)
  return _internal_enable_high_resolution();
}
inline void CaptureSingleImageRequest::_internal_set_enable_high_resolution(bool value) {
  
  enable_high_resolution_ = value;
}
inline void CaptureSingleImageRequest::set_enable_high_resolution(bool value) {
  _internal_set_enable_high_resolution(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CaptureSingleImageRequest.enable_high_resolution)
}

// -------------------------------------------------------------------

// CaptureSingleImageResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool CaptureSingleImageResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool CaptureSingleImageResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& CaptureSingleImageResponse::_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& CaptureSingleImageResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CaptureSingleImageResponse.status)
  return _internal_status();
}
inline void CaptureSingleImageResponse::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.CaptureSingleImageResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* CaptureSingleImageResponse::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* CaptureSingleImageResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.CaptureSingleImageResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* CaptureSingleImageResponse::_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* CaptureSingleImageResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.CaptureSingleImageResponse.status)
  return _internal_mutable_status();
}
inline void CaptureSingleImageResponse::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.CaptureSingleImageResponse.status)
}

// uint32 frame_time_stamp = 2;
inline void CaptureSingleImageResponse::clear_frame_time_stamp() {
  frame_time_stamp_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CaptureSingleImageResponse::_internal_frame_time_stamp() const {
  return frame_time_stamp_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CaptureSingleImageResponse::frame_time_stamp() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CaptureSingleImageResponse.frame_time_stamp)
  return _internal_frame_time_stamp();
}
inline void CaptureSingleImageResponse::_internal_set_frame_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  frame_time_stamp_ = value;
}
inline void CaptureSingleImageResponse::set_frame_time_stamp(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_frame_time_stamp(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CaptureSingleImageResponse.frame_time_stamp)
}

// uint32 image_id = 3;
inline void CaptureSingleImageResponse::clear_image_id() {
  image_id_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CaptureSingleImageResponse::_internal_image_id() const {
  return image_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CaptureSingleImageResponse::image_id() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CaptureSingleImageResponse.image_id)
  return _internal_image_id();
}
inline void CaptureSingleImageResponse::_internal_set_image_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  image_id_ = value;
}
inline void CaptureSingleImageResponse::set_image_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_image_id(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CaptureSingleImageResponse.image_id)
}

// .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 4;
inline void CaptureSingleImageResponse::clear_image_encoding() {
  image_encoding_ = 0;
}
inline ::Anki::Vector::external_interface::ImageChunk_ImageEncoding CaptureSingleImageResponse::_internal_image_encoding() const {
  return static_cast< ::Anki::Vector::external_interface::ImageChunk_ImageEncoding >(image_encoding_);
}
inline ::Anki::Vector::external_interface::ImageChunk_ImageEncoding CaptureSingleImageResponse::image_encoding() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CaptureSingleImageResponse.image_encoding)
  return _internal_image_encoding();
}
inline void CaptureSingleImageResponse::_internal_set_image_encoding(::Anki::Vector::external_interface::ImageChunk_ImageEncoding value) {
  
  image_encoding_ = value;
}
inline void CaptureSingleImageResponse::set_image_encoding(::Anki::Vector::external_interface::ImageChunk_ImageEncoding value) {
  _internal_set_image_encoding(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CaptureSingleImageResponse.image_encoding)
}

// bytes data = 5;
inline void CaptureSingleImageResponse::clear_data() {
  data_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& CaptureSingleImageResponse::data() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CaptureSingleImageResponse.data)
  return _internal_data();
}
inline void CaptureSingleImageResponse::set_data(const std::string& value) {
  _internal_set_data(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CaptureSingleImageResponse.data)
}
inline std::string* CaptureSingleImageResponse::mutable_data() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.CaptureSingleImageResponse.data)
  return _internal_mutable_data();
}
inline const std::string& CaptureSingleImageResponse::_internal_data() const {
  return data_.Get();
}
inline void CaptureSingleImageResponse::_internal_set_data(const std::string& value) {
  
  data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void CaptureSingleImageResponse::set_data(std::string&& value) {
  
  data_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.CaptureSingleImageResponse.data)
}
inline void CaptureSingleImageResponse::set_data(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.CaptureSingleImageResponse.data)
}
inline void CaptureSingleImageResponse::set_data(const void* value,
    size_t size) {
  
  data_.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.CaptureSingleImageResponse.data)
}
inline std::string* CaptureSingleImageResponse::_internal_mutable_data() {
  
  return data_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* CaptureSingleImageResponse::release_data() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.CaptureSingleImageResponse.data)
  return data_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void CaptureSingleImageResponse::set_allocated_data(std::string* data) {
  if (data != nullptr) {
    
  } else {
    
  }
  data_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), data,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.CaptureSingleImageResponse.data)
}
inline std::string* CaptureSingleImageResponse::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.CaptureSingleImageResponse.data)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return data_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void CaptureSingleImageResponse::unsafe_arena_set_allocated_data(
    std::string* data) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (data != nullptr) {
    
  } else {
    
  }
  data_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      data, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.CaptureSingleImageResponse.data)
}

// -------------------------------------------------------------------

// SetEyeColorRequest

// float hue = 1;
inline void SetEyeColorRequest::clear_hue() {
  hue_ = 0;
}
inline float SetEyeColorRequest::_internal_hue() const {
  return hue_;
}
inline float SetEyeColorRequest::hue() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetEyeColorRequest.hue)
  return _internal_hue();
}
inline void SetEyeColorRequest::_internal_set_hue(float value) {
  
  hue_ = value;
}
inline void SetEyeColorRequest::set_hue(float value) {
  _internal_set_hue(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetEyeColorRequest.hue)
}

// float saturation = 2;
inline void SetEyeColorRequest::clear_saturation() {
  saturation_ = 0;
}
inline float SetEyeColorRequest::_internal_saturation() const {
  return saturation_;
}
inline float SetEyeColorRequest::saturation() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetEyeColorRequest.saturation)
  return _internal_saturation();
}
inline void SetEyeColorRequest::_internal_set_saturation(float value) {
  
  saturation_ = value;
}
inline void SetEyeColorRequest::set_saturation(float value) {
  _internal_set_saturation(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetEyeColorRequest.saturation)
}

// -------------------------------------------------------------------

// SetEyeColorResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool SetEyeColorResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool SetEyeColorResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& SetEyeColorResponse::_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& SetEyeColorResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetEyeColorResponse.status)
  return _internal_status();
}
inline void SetEyeColorResponse::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.SetEyeColorResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* SetEyeColorResponse::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* SetEyeColorResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SetEyeColorResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* SetEyeColorResponse::_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* SetEyeColorResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SetEyeColorResponse.status)
  return _internal_mutable_status();
}
inline void SetEyeColorResponse::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.SetEyeColorResponse.status)
}

// -------------------------------------------------------------------

// CameraConfigRequest

// -------------------------------------------------------------------

// CameraConfigResponse

// float focal_length_x = 1;
inline void CameraConfigResponse::clear_focal_length_x() {
  focal_length_x_ = 0;
}
inline float CameraConfigResponse::_internal_focal_length_x() const {
  return focal_length_x_;
}
inline float CameraConfigResponse::focal_length_x() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraConfigResponse.focal_length_x)
  return _internal_focal_length_x();
}
inline void CameraConfigResponse::_internal_set_focal_length_x(float value) {
  
  focal_length_x_ = value;
}
inline void CameraConfigResponse::set_focal_length_x(float value) {
  _internal_set_focal_length_x(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraConfigResponse.focal_length_x)
}

// float focal_length_y = 2;
inline void CameraConfigResponse::clear_focal_length_y() {
  focal_length_y_ = 0;
}
inline float CameraConfigResponse::_internal_focal_length_y() const {
  return focal_length_y_;
}
inline float CameraConfigResponse::focal_length_y() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraConfigResponse.focal_length_y)
  return _internal_focal_length_y();
}
inline void CameraConfigResponse::_internal_set_focal_length_y(float value) {
  
  focal_length_y_ = value;
}
inline void CameraConfigResponse::set_focal_length_y(float value) {
  _internal_set_focal_length_y(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraConfigResponse.focal_length_y)
}

// float center_x = 3;
inline void CameraConfigResponse::clear_center_x() {
  center_x_ = 0;
}
inline float CameraConfigResponse::_internal_center_x() const {
  return center_x_;
}
inline float CameraConfigResponse::center_x() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraConfigResponse.center_x)
  return _internal_center_x();
}
inline void CameraConfigResponse::_internal_set_center_x(float value) {
  
  center_x_ = value;
}
inline void CameraConfigResponse::set_center_x(float value) {
  _internal_set_center_x(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraConfigResponse.center_x)
}

// float center_y = 4;
inline void CameraConfigResponse::clear_center_y() {
  center_y_ = 0;
}
inline float CameraConfigResponse::_internal_center_y() const {
  return center_y_;
}
inline float CameraConfigResponse::center_y() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraConfigResponse.center_y)
  return _internal_center_y();
}
inline void CameraConfigResponse::_internal_set_center_y(float value) {
  
  center_y_ = value;
}
inline void CameraConfigResponse::set_center_y(float value) {
  _internal_set_center_y(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraConfigResponse.center_y)
}

// float fov_x = 5;
inline void CameraConfigResponse::clear_fov_x() {
  fov_x_ = 0;
}
inline float CameraConfigResponse::_internal_fov_x() const {
  return fov_x_;
}
inline float CameraConfigResponse::fov_x() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraConfigResponse.fov_x)
  return _internal_fov_x();
}
inline void CameraConfigResponse::_internal_set_fov_x(float value) {
  
  fov_x_ = value;
}
inline void CameraConfigResponse::set_fov_x(float value) {
  _internal_set_fov_x(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraConfigResponse.fov_x)
}

// float fov_y = 6;
inline void CameraConfigResponse::clear_fov_y() {
  fov_y_ = 0;
}
inline float CameraConfigResponse::_internal_fov_y() const {
  return fov_y_;
}
inline float CameraConfigResponse::fov_y() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraConfigResponse.fov_y)
  return _internal_fov_y();
}
inline void CameraConfigResponse::_internal_set_fov_y(float value) {
  
  fov_y_ = value;
}
inline void CameraConfigResponse::set_fov_y(float value) {
  _internal_set_fov_y(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraConfigResponse.fov_y)
}

// uint32 min_camera_exposure_time_ms = 7;
inline void CameraConfigResponse::clear_min_camera_exposure_time_ms() {
  min_camera_exposure_time_ms_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraConfigResponse::_internal_min_camera_exposure_time_ms() const {
  return min_camera_exposure_time_ms_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraConfigResponse::min_camera_exposure_time_ms() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraConfigResponse.min_camera_exposure_time_ms)
  return _internal_min_camera_exposure_time_ms();
}
inline void CameraConfigResponse::_internal_set_min_camera_exposure_time_ms(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  min_camera_exposure_time_ms_ = value;
}
inline void CameraConfigResponse::set_min_camera_exposure_time_ms(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_min_camera_exposure_time_ms(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraConfigResponse.min_camera_exposure_time_ms)
}

// uint32 max_camera_exposure_time_ms = 8;
inline void CameraConfigResponse::clear_max_camera_exposure_time_ms() {
  max_camera_exposure_time_ms_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraConfigResponse::_internal_max_camera_exposure_time_ms() const {
  return max_camera_exposure_time_ms_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraConfigResponse::max_camera_exposure_time_ms() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraConfigResponse.max_camera_exposure_time_ms)
  return _internal_max_camera_exposure_time_ms();
}
inline void CameraConfigResponse::_internal_set_max_camera_exposure_time_ms(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  max_camera_exposure_time_ms_ = value;
}
inline void CameraConfigResponse::set_max_camera_exposure_time_ms(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_max_camera_exposure_time_ms(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraConfigResponse.max_camera_exposure_time_ms)
}

// float min_camera_gain = 9;
inline void CameraConfigResponse::clear_min_camera_gain() {
  min_camera_gain_ = 0;
}
inline float CameraConfigResponse::_internal_min_camera_gain() const {
  return min_camera_gain_;
}
inline float CameraConfigResponse::min_camera_gain() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraConfigResponse.min_camera_gain)
  return _internal_min_camera_gain();
}
inline void CameraConfigResponse::_internal_set_min_camera_gain(float value) {
  
  min_camera_gain_ = value;
}
inline void CameraConfigResponse::set_min_camera_gain(float value) {
  _internal_set_min_camera_gain(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraConfigResponse.min_camera_gain)
}

// float max_camera_gain = 10;
inline void CameraConfigResponse::clear_max_camera_gain() {
  max_camera_gain_ = 0;
}
inline float CameraConfigResponse::_internal_max_camera_gain() const {
  return max_camera_gain_;
}
inline float CameraConfigResponse::max_camera_gain() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraConfigResponse.max_camera_gain)
  return _internal_max_camera_gain();
}
inline void CameraConfigResponse::_internal_set_max_camera_gain(float value) {
  
  max_camera_gain_ = value;
}
inline void CameraConfigResponse::set_max_camera_gain(float value) {
  _internal_set_max_camera_gain(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraConfigResponse.max_camera_gain)
}

// -------------------------------------------------------------------

// SetCameraSettingsRequest

// float gain = 1;
inline void SetCameraSettingsRequest::clear_gain() {
  gain_ = 0;
}
inline float SetCameraSettingsRequest::_internal_gain() const {
  return gain_;
}
inline float SetCameraSettingsRequest::gain() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetCameraSettingsRequest.gain)
  return _internal_gain();
}
inline void SetCameraSettingsRequest::_internal_set_gain(float value) {
  
  gain_ = value;
}
inline void SetCameraSettingsRequest::set_gain(float value) {
  _internal_set_gain(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetCameraSettingsRequest.gain)
}

// uint32 exposure_ms = 2;
inline void SetCameraSettingsRequest::clear_exposure_ms() {
  exposure_ms_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 SetCameraSettingsRequest::_internal_exposure_ms() const {
  return exposure_ms_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 SetCameraSettingsRequest::exposure_ms() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetCameraSettingsRequest.exposure_ms)
  return _internal_exposure_ms();
}
inline void SetCameraSettingsRequest::_internal_set_exposure_ms(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  exposure_ms_ = value;
}
inline void SetCameraSettingsRequest::set_exposure_ms(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_exposure_ms(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetCameraSettingsRequest.exposure_ms)
}

// bool enable_auto_exposure = 3;
inline void SetCameraSettingsRequest::clear_enable_auto_exposure() {
  enable_auto_exposure_ = false;
}
inline bool SetCameraSettingsRequest::_internal_enable_auto_exposure() const {
  return enable_auto_exposure_;
}
inline bool SetCameraSettingsRequest::enable_auto_exposure() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetCameraSettingsRequest.enable_auto_exposure)
  return _internal_enable_auto_exposure();
}
inline void SetCameraSettingsRequest::_internal_set_enable_auto_exposure(bool value) {
  
  enable_auto_exposure_ = value;
}
inline void SetCameraSettingsRequest::set_enable_auto_exposure(bool value) {
  _internal_set_enable_auto_exposure(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetCameraSettingsRequest.enable_auto_exposure)
}

// -------------------------------------------------------------------

// SetCameraSettingsResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool SetCameraSettingsResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool SetCameraSettingsResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& SetCameraSettingsResponse::_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& SetCameraSettingsResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetCameraSettingsResponse.status)
  return _internal_status();
}
inline void SetCameraSettingsResponse::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.SetCameraSettingsResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* SetCameraSettingsResponse::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* SetCameraSettingsResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SetCameraSettingsResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* SetCameraSettingsResponse::_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* SetCameraSettingsResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SetCameraSettingsResponse.status)
  return _internal_mutable_status();
}
inline void SetCameraSettingsResponse::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.SetCameraSettingsResponse.status)
}

// string status_message = 2;
inline void SetCameraSettingsResponse::clear_status_message() {
  status_message_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& SetCameraSettingsResponse::status_message() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SetCameraSettingsResponse.status_message)
  return _internal_status_message();
}
inline void SetCameraSettingsResponse::set_status_message(const std::string& value) {
  _internal_set_status_message(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SetCameraSettingsResponse.status_message)
}
inline std::string* SetCameraSettingsResponse::mutable_status_message() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SetCameraSettingsResponse.status_message)
  return _internal_mutable_status_message();
}
inline const std::string& SetCameraSettingsResponse::_internal_status_message() const {
  return status_message_.Get();
}
inline void SetCameraSettingsResponse::_internal_set_status_message(const std::string& value) {
  
  status_message_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void SetCameraSettingsResponse::set_status_message(std::string&& value) {
  
  status_message_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.SetCameraSettingsResponse.status_message)
}
inline void SetCameraSettingsResponse::set_status_message(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  status_message_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.SetCameraSettingsResponse.status_message)
}
inline void SetCameraSettingsResponse::set_status_message(const char* value,
    size_t size) {
  
  status_message_.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.SetCameraSettingsResponse.status_message)
}
inline std::string* SetCameraSettingsResponse::_internal_mutable_status_message() {
  
  return status_message_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* SetCameraSettingsResponse::release_status_message() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SetCameraSettingsResponse.status_message)
  return status_message_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void SetCameraSettingsResponse::set_allocated_status_message(std::string* status_message) {
  if (status_message != nullptr) {
    
  } else {
    
  }
  status_message_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), status_message,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.SetCameraSettingsResponse.status_message)
}
inline std::string* SetCameraSettingsResponse::unsafe_arena_release_status_message() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.SetCameraSettingsResponse.status_message)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return status_message_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void SetCameraSettingsResponse::unsafe_arena_set_allocated_status_message(
    std::string* status_message) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (status_message != nullptr) {
    
  } else {
    
  }
  status_message_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      status_message, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.SetCameraSettingsResponse.status_message)
}

// -------------------------------------------------------------------

// CameraSettingsUpdate

// float gain = 1;
inline void CameraSettingsUpdate::clear_gain() {
  gain_ = 0;
}
inline float CameraSettingsUpdate::_internal_gain() const {
  return gain_;
}
inline float CameraSettingsUpdate::gain() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraSettingsUpdate.gain)
  return _internal_gain();
}
inline void CameraSettingsUpdate::_internal_set_gain(float value) {
  
  gain_ = value;
}
inline void CameraSettingsUpdate::set_gain(float value) {
  _internal_set_gain(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraSettingsUpdate.gain)
}

// uint32 exposure_ms = 2;
inline void CameraSettingsUpdate::clear_exposure_ms() {
  exposure_ms_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraSettingsUpdate::_internal_exposure_ms() const {
  return exposure_ms_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraSettingsUpdate::exposure_ms() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraSettingsUpdate.exposure_ms)
  return _internal_exposure_ms();
}
inline void CameraSettingsUpdate::_internal_set_exposure_ms(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  exposure_ms_ = value;
}
inline void CameraSettingsUpdate::set_exposure_ms(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_exposure_ms(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraSettingsUpdate.exposure_ms)
}

// bool auto_exposure_enabled = 3;
inline void CameraSettingsUpdate::clear_auto_exposure_enabled() {
  auto_exposure_enabled_ = false;
}
inline bool CameraSettingsUpdate::_internal_auto_exposure_enabled() const {
  return auto_exposure_enabled_;
}
inline bool CameraSettingsUpdate::auto_exposure_enabled() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CameraSettingsUpdate.auto_exposure_enabled)
  return _internal_auto_exposure_enabled();
}
inline void CameraSettingsUpdate::_internal_set_auto_exposure_enabled(bool value) {
  
  auto_exposure_enabled_ = value;
}
inline void CameraSettingsUpdate::set_auto_exposure_enabled(bool value) {
  _internal_set_auto_exposure_enabled(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CameraSettingsUpdate.auto_exposure_enabled)
}

// -------------------------------------------------------------------

// SDKInitializationRequest

// string sdk_module_version = 1;
inline void SDKInitializationRequest::clear_sdk_module_version() {
  sdk_module_version_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& SDKInitializationRequest::sdk_module_version() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SDKInitializationRequest.sdk_module_version)
  return _internal_sdk_module_version();
}
inline void SDKInitializationRequest::set_sdk_module_version(const std::string& value) {
  _internal_set_sdk_module_version(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SDKInitializationRequest.sdk_module_version)
}
inline std::string* SDKInitializationRequest::mutable_sdk_module_version() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SDKInitializationRequest.sdk_module_version)
  return _internal_mutable_sdk_module_version();
}
inline const std::string& SDKInitializationRequest::_internal_sdk_module_version() const {
  return sdk_module_version_.Get();
}
inline void SDKInitializationRequest::_internal_set_sdk_module_version(const std::string& value) {
  
  sdk_module_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void SDKInitializationRequest::set_sdk_module_version(std::string&& value) {
  
  sdk_module_version_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.SDKInitializationRequest.sdk_module_version)
}
inline void SDKInitializationRequest::set_sdk_module_version(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  sdk_module_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.SDKInitializationRequest.sdk_module_version)
}
inline void SDKInitializationRequest::set_sdk_module_version(const char* value,
    size_t size) {
  
  sdk_module_version_.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.SDKInitializationRequest.sdk_module_version)
}
inline std::string* SDKInitializationRequest::_internal_mutable_sdk_module_version() {
  
  return sdk_module_version_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* SDKInitializationRequest::release_sdk_module_version() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SDKInitializationRequest.sdk_module_version)
  return sdk_module_version_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void SDKInitializationRequest::set_allocated_sdk_module_version(std::string* sdk_module_version) {
  if (sdk_module_version != nullptr) {
    
  } else {
    
  }
  sdk_module_version_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), sdk_module_version,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.SDKInitializationRequest.sdk_module_version)
}
inline std::string* SDKInitializationRequest::unsafe_arena_release_sdk_module_version() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.SDKInitializationRequest.sdk_module_version)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return sdk_module_version_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void SDKInitializationRequest::unsafe_arena_set_allocated_sdk_module_version(
    std::string* sdk_module_version) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (sdk_module_version != nullptr) {
    
  } else {
    
  }
  sdk_module_version_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      sdk_module_version, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.SDKInitializationRequest.sdk_module_version)
}

// string python_version = 2;
inline void SDKInitializationRequest::clear_python_version() {
  python_version_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& SDKInitializationRequest::python_version() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SDKInitializationRequest.python_version)
  return _internal_python_version();
}
inline void SDKInitializationRequest::set_python_version(const std::string& value) {
  _internal_set_python_version(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SDKInitializationRequest.python_version)
}
inline std::string* SDKInitializationRequest::mutable_python_version() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SDKInitializationRequest.python_version)
  return _internal_mutable_python_version();
}
inline const std::string& SDKInitializationRequest::_internal_python_version() const {
  return python_version_.Get();
}
inline void SDKInitializationRequest::_internal_set_python_version(const std::string& value) {
  
  python_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void SDKInitializationRequest::set_python_version(std::string&& value) {
  
  python_version_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.SDKInitializationRequest.python_version)
}
inline void SDKInitializationRequest::set_python_version(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  python_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.SDKInitializationRequest.python_version)
}
inline void SDKInitializationRequest::set_python_version(const char* value,
    size_t size) {
  
  python_version_.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.SDKInitializationRequest.python_version)
}
inline std::string* SDKInitializationRequest::_internal_mutable_python_version() {
  
  return python_version_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* SDKInitializationRequest::release_python_version() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SDKInitializationRequest.python_version)
  return python_version_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void SDKInitializationRequest::set_allocated_python_version(std::string* python_version) {
  if (python_version != nullptr) {
    
  } else {
    
  }
  python_version_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), python_version,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.SDKInitializationRequest.python_version)
}
inline std::string* SDKInitializationRequest::unsafe_arena_release_python_version() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.SDKInitializationRequest.python_version)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return python_version_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void SDKInitializationRequest::unsafe_arena_set_allocated_python_version(
    std::string* python_version) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (python_version != nullptr) {
    
  } else {
    
  }
  python_version_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      python_version, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.SDKInitializationRequest.python_version)
}

// string python_implementation = 3;
inline void SDKInitializationRequest::clear_python_implementation() {
  python_implementation_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& SDKInitializationRequest::python_implementation() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SDKInitializationRequest.python_implementation)
  return _internal_python_implementation();
}
inline void SDKInitializationRequest::set_python_implementation(const std::string& value) {
  _internal_set_python_implementation(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SDKInitializationRequest.python_implementation)
}
inline std::string* SDKInitializationRequest::mutable_python_implementation() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SDKInitializationRequest.python_implementation)
  return _internal_mutable_python_implementation();
}
inline const std::string& SDKInitializationRequest::_internal_python_implementation() const {
  return python_implementation_.Get();
}
inline void SDKInitializationRequest::_internal_set_python_implementation(const std::string& value) {
  
  python_implementation_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void SDKInitializationRequest::set_python_implementation(std::string&& value) {
  
  python_implementation_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.SDKInitializationRequest.python_implementation)
}
inline void SDKInitializationRequest::set_python_implementation(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  python_implementation_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.SDKInitializationRequest.python_implementation)
}
inline void SDKInitializationRequest::set_python_implementation(const char* value,
    size_t size) {
  
  python_implementation_.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.SDKInitializationRequest.python_implementation)
}
inline std::string* SDKInitializationRequest::_internal_mutable_python_implementation() {
  
  return python_implementation_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* SDKInitializationRequest::release_python_implementation() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SDKInitializationRequest.python_implementation)
  return python_implementation_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void SDKInitializationRequest::set_allocated_python_implementation(std::string* python_implementation) {
  if (python_implementation != nullptr) {
    
  } else {
    
  }
  python_implementation_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), python_implementation,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.SDKInitializationRequest.python_implementation)
}
inline std::string* SDKInitializationRequest::unsafe_arena_release_python_implementation() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.SDKInitializationRequest.python_implementation)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return python_implementation_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void SDKInitializationRequest::unsafe_arena_set_allocated_python_implementation(
    std::string* python_implementation) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (python_implementation != nullptr) {
    
  } else {
    
  }
  python_implementation_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      python_implementation, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.SDKInitializationRequest.python_implementation)
}

// string os_version = 4;
inline void SDKInitializationRequest::clear_os_version() {
  os_version_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& SDKInitializationRequest::os_version() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SDKInitializationRequest.os_version)
  return _internal_os_version();
}
inline void SDKInitializationRequest::set_os_version(const std::string& value) {
  _internal_set_os_version(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SDKInitializationRequest.os_version)
}
inline std::string* SDKInitializationRequest::mutable_os_version() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SDKInitializationRequest.os_version)
  return _internal_mutable_os_version();
}
inline const std::string& SDKInitializationRequest::_internal_os_version() const {
  return os_version_.Get();
}
inline void SDKInitializationRequest::_internal_set_os_version(const std::string& value) {
  
  os_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void SDKInitializationRequest::set_os_version(std::string&& value) {
  
  os_version_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.SDKInitializationRequest.os_version)
}
inline void SDKInitializationRequest::set_os_version(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  os_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.SDKInitializationRequest.os_version)
}
inline void SDKInitializationRequest::set_os_version(const char* value,
    size_t size) {
  
  os_version_.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.SDKInitializationRequest.os_version)
}
inline std::string* SDKInitializationRequest::_internal_mutable_os_version() {
  
  return os_version_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* SDKInitializationRequest::release_os_version() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SDKInitializationRequest.os_version)
  return os_version_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void SDKInitializationRequest::set_allocated_os_version(std::string* os_version) {
  if (os_version != nullptr) {
    
  } else {
    
  }
  os_version_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), os_version,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.SDKInitializationRequest.os_version)
}
inline std::string* SDKInitializationRequest::unsafe_arena_release_os_version() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.SDKInitializationRequest.os_version)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return os_version_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void SDKInitializationRequest::unsafe_arena_set_allocated_os_version(
    std::string* os_version) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (os_version != nullptr) {
    
  } else {
    
  }
  os_version_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      os_version, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.SDKInitializationRequest.os_version)
}

// string cpu_version = 5;
inline void SDKInitializationRequest::clear_cpu_version() {
  cpu_version_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& SDKInitializationRequest::cpu_version() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SDKInitializationRequest.cpu_version)
  return _internal_cpu_version();
}
inline void SDKInitializationRequest::set_cpu_version(const std::string& value) {
  _internal_set_cpu_version(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.SDKInitializationRequest.cpu_version)
}
inline std::string* SDKInitializationRequest::mutable_cpu_version() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SDKInitializationRequest.cpu_version)
  return _internal_mutable_cpu_version();
}
inline const std::string& SDKInitializationRequest::_internal_cpu_version() const {
  return cpu_version_.Get();
}
inline void SDKInitializationRequest::_internal_set_cpu_version(const std::string& value) {
  
  cpu_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void SDKInitializationRequest::set_cpu_version(std::string&& value) {
  
  cpu_version_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.SDKInitializationRequest.cpu_version)
}
inline void SDKInitializationRequest::set_cpu_version(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  cpu_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.SDKInitializationRequest.cpu_version)
}
inline void SDKInitializationRequest::set_cpu_version(const char* value,
    size_t size) {
  
  cpu_version_.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.SDKInitializationRequest.cpu_version)
}
inline std::string* SDKInitializationRequest::_internal_mutable_cpu_version() {
  
  return cpu_version_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* SDKInitializationRequest::release_cpu_version() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SDKInitializationRequest.cpu_version)
  return cpu_version_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void SDKInitializationRequest::set_allocated_cpu_version(std::string* cpu_version) {
  if (cpu_version != nullptr) {
    
  } else {
    
  }
  cpu_version_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), cpu_version,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.SDKInitializationRequest.cpu_version)
}
inline std::string* SDKInitializationRequest::unsafe_arena_release_cpu_version() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.SDKInitializationRequest.cpu_version)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return cpu_version_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void SDKInitializationRequest::unsafe_arena_set_allocated_cpu_version(
    std::string* cpu_version) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (cpu_version != nullptr) {
    
  } else {
    
  }
  cpu_version_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      cpu_version, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.SDKInitializationRequest.cpu_version)
}

// -------------------------------------------------------------------

// SDKInitializationResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool SDKInitializationResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool SDKInitializationResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& SDKInitializationResponse::_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& SDKInitializationResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.SDKInitializationResponse.status)
  return _internal_status();
}
inline void SDKInitializationResponse::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.SDKInitializationResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* SDKInitializationResponse::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* SDKInitializationResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.SDKInitializationResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* SDKInitializationResponse::_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* SDKInitializationResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.SDKInitializationResponse.status)
  return _internal_mutable_status();
}
inline void SDKInitializationResponse::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.SDKInitializationResponse.status)
}

// -------------------------------------------------------------------

// AppDisconnected

// -------------------------------------------------------------------

// AppIntentRequest

// string intent = 1;
inline void AppIntentRequest::clear_intent() {
  intent_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& AppIntentRequest::intent() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AppIntentRequest.intent)
  return _internal_intent();
}
inline void AppIntentRequest::set_intent(const std::string& value) {
  _internal_set_intent(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AppIntentRequest.intent)
}
inline std::string* AppIntentRequest::mutable_intent() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.AppIntentRequest.intent)
  return _internal_mutable_intent();
}
inline const std::string& AppIntentRequest::_internal_intent() const {
  return intent_.Get();
}
inline void AppIntentRequest::_internal_set_intent(const std::string& value) {
  
  intent_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void AppIntentRequest::set_intent(std::string&& value) {
  
  intent_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.AppIntentRequest.intent)
}
inline void AppIntentRequest::set_intent(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  intent_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.AppIntentRequest.intent)
}
inline void AppIntentRequest::set_intent(const char* value,
    size_t size) {
  
  intent_.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.AppIntentRequest.intent)
}
inline std::string* AppIntentRequest::_internal_mutable_intent() {
  
  return intent_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* AppIntentRequest::release_intent() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.AppIntentRequest.intent)
  return intent_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void AppIntentRequest::set_allocated_intent(std::string* intent) {
  if (intent != nullptr) {
    
  } else {
    
  }
  intent_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), intent,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.AppIntentRequest.intent)
}
inline std::string* AppIntentRequest::unsafe_arena_release_intent() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.AppIntentRequest.intent)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return intent_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void AppIntentRequest::unsafe_arena_set_allocated_intent(
    std::string* intent) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (intent != nullptr) {
    
  } else {
    
  }
  intent_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      intent, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.AppIntentRequest.intent)
}

// string param = 2;
inline void AppIntentRequest::clear_param() {
  param_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& AppIntentRequest::param() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AppIntentRequest.param)
  return _internal_param();
}
inline void AppIntentRequest::set_param(const std::string& value) {
  _internal_set_param(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AppIntentRequest.param)
}
inline std::string* AppIntentRequest::mutable_param() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.AppIntentRequest.param)
  return _internal_mutable_param();
}
inline const std::string& AppIntentRequest::_internal_param() const {
  return param_.Get();
}
inline void AppIntentRequest::_internal_set_param(const std::string& value) {
  
  param_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void AppIntentRequest::set_param(std::string&& value) {
  
  param_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.AppIntentRequest.param)
}
inline void AppIntentRequest::set_param(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  param_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.AppIntentRequest.param)
}
inline void AppIntentRequest::set_param(const char* value,
    size_t size) {
  
  param_.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.AppIntentRequest.param)
}
inline std::string* AppIntentRequest::_internal_mutable_param() {
  
  return param_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* AppIntentRequest::release_param() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.AppIntentRequest.param)
  return param_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void AppIntentRequest::set_allocated_param(std::string* param) {
  if (param != nullptr) {
    
  } else {
    
  }
  param_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), param,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.AppIntentRequest.param)
}
inline std::string* AppIntentRequest::unsafe_arena_release_param() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.AppIntentRequest.param)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return param_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void AppIntentRequest::unsafe_arena_set_allocated_param(
    std::string* param) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (param != nullptr) {
    
  } else {
    
  }
  param_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      param, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.AppIntentRequest.param)
}

// -------------------------------------------------------------------

// AppIntentResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool AppIntentResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool AppIntentResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& AppIntentResponse::_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& AppIntentResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AppIntentResponse.status)
  return _internal_status();
}
inline void AppIntentResponse::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.AppIntentResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* AppIntentResponse::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* AppIntentResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.AppIntentResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* AppIntentResponse::_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* AppIntentResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.AppIntentResponse.status)
  return _internal_mutable_status();
}
inline void AppIntentResponse::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.AppIntentResponse.status)
}

// -------------------------------------------------------------------

// FeatureStatus

// string feature_name = 1;
inline void FeatureStatus::clear_feature_name() {
  feature_name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& FeatureStatus::feature_name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FeatureStatus.feature_name)
  return _internal_feature_name();
}
inline void FeatureStatus::set_feature_name(const std::string& value) {
  _internal_set_feature_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FeatureStatus.feature_name)
}
inline std::string* FeatureStatus::mutable_feature_name() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.FeatureStatus.feature_name)
  return _internal_mutable_feature_name();
}
inline const std::string& FeatureStatus::_internal_feature_name() const {
  return feature_name_.Get();
}
inline void FeatureStatus::_internal_set_feature_name(const std::string& value) {
  
  feature_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void FeatureStatus::set_feature_name(std::string&& value) {
  
  feature_name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.FeatureStatus.feature_name)
}
inline void FeatureStatus::set_feature_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  feature_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.FeatureStatus.feature_name)
}
inline void FeatureStatus::set_feature_name(const char* value,
    size_t size) {
  
  feature_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.FeatureStatus.feature_name)
}
inline std::string* FeatureStatus::_internal_mutable_feature_name() {
  
  return feature_name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* FeatureStatus::release_feature_name() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.FeatureStatus.feature_name)
  return feature_name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void FeatureStatus::set_allocated_feature_name(std::string* feature_name) {
  if (feature_name != nullptr) {
    
  } else {
    
  }
  feature_name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), feature_name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.FeatureStatus.feature_name)
}
inline std::string* FeatureStatus::unsafe_arena_release_feature_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.FeatureStatus.feature_name)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return feature_name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void FeatureStatus::unsafe_arena_set_allocated_feature_name(
    std::string* feature_name) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (feature_name != nullptr) {
    
  } else {
    
  }
  feature_name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      feature_name, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.FeatureStatus.feature_name)
}

// string source = 2;
inline void FeatureStatus::clear_source() {
  source_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& FeatureStatus::source() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FeatureStatus.source)
  return _internal_source();
}
inline void FeatureStatus::set_source(const std::string& value) {
  _internal_set_source(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FeatureStatus.source)
}
inline std::string* FeatureStatus::mutable_source() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.FeatureStatus.source)
  return _internal_mutable_source();
}
inline const std::string& FeatureStatus::_internal_source() const {
  return source_.Get();
}
inline void FeatureStatus::_internal_set_source(const std::string& value) {
  
  source_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void FeatureStatus::set_source(std::string&& value) {
  
  source_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.FeatureStatus.source)
}
inline void FeatureStatus::set_source(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  source_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.FeatureStatus.source)
}
inline void FeatureStatus::set_source(const char* value,
    size_t size) {
  
  source_.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.FeatureStatus.source)
}
inline std::string* FeatureStatus::_internal_mutable_source() {
  
  return source_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* FeatureStatus::release_source() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.FeatureStatus.source)
  return source_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void FeatureStatus::set_allocated_source(std::string* source) {
  if (source != nullptr) {
    
  } else {
    
  }
  source_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), source,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.FeatureStatus.source)
}
inline std::string* FeatureStatus::unsafe_arena_release_source() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.FeatureStatus.source)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return source_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void FeatureStatus::unsafe_arena_set_allocated_source(
    std::string* source) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (source != nullptr) {
    
  } else {
    
  }
  source_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      source, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.FeatureStatus.source)
}

// -------------------------------------------------------------------

// Onboarding

// .Anki.Vector.external_interface.OnboardingState onboarding_state = 1;
inline bool Onboarding::_internal_has_onboarding_state() const {
  return onboarding_type_case() == kOnboardingState;
}
inline bool Onboarding::has_onboarding_state() const {
  return _internal_has_onboarding_state();
}
inline void Onboarding::set_has_onboarding_state() {
  _oneof_case_[0] = kOnboardingState;
}
inline void Onboarding::clear_onboarding_state() {
  if (_internal_has_onboarding_state()) {
    if (GetArena() == nullptr) {
      delete onboarding_type_.onboarding_state_;
    }
    clear_has_onboarding_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingState* Onboarding::release_onboarding_state() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Onboarding.onboarding_state)
  if (_internal_has_onboarding_state()) {
    clear_has_onboarding_type();
      ::Anki::Vector::external_interface::OnboardingState* temp = onboarding_type_.onboarding_state_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    onboarding_type_.onboarding_state_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingState& Onboarding::_internal_onboarding_state() const {
  return _internal_has_onboarding_state()
      ? *onboarding_type_.onboarding_state_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingState*>(&::Anki::Vector::external_interface::_OnboardingState_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingState& Onboarding::onboarding_state() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Onboarding.onboarding_state)
  return _internal_onboarding_state();
}
inline ::Anki::Vector::external_interface::OnboardingState* Onboarding::unsafe_arena_release_onboarding_state() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Onboarding.onboarding_state)
  if (_internal_has_onboarding_state()) {
    clear_has_onboarding_type();
    ::Anki::Vector::external_interface::OnboardingState* temp = onboarding_type_.onboarding_state_;
    onboarding_type_.onboarding_state_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Onboarding::unsafe_arena_set_allocated_onboarding_state(::Anki::Vector::external_interface::OnboardingState* onboarding_state) {
  clear_onboarding_type();
  if (onboarding_state) {
    set_has_onboarding_state();
    onboarding_type_.onboarding_state_ = onboarding_state;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Onboarding.onboarding_state)
}
inline ::Anki::Vector::external_interface::OnboardingState* Onboarding::_internal_mutable_onboarding_state() {
  if (!_internal_has_onboarding_state()) {
    clear_onboarding_type();
    set_has_onboarding_state();
    onboarding_type_.onboarding_state_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingState >(GetArena());
  }
  return onboarding_type_.onboarding_state_;
}
inline ::Anki::Vector::external_interface::OnboardingState* Onboarding::mutable_onboarding_state() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Onboarding.onboarding_state)
  return _internal_mutable_onboarding_state();
}

// .Anki.Vector.external_interface.OnboardingWakeUpFinished onboarding_wake_up_finished = 9;
inline bool Onboarding::_internal_has_onboarding_wake_up_finished() const {
  return onboarding_type_case() == kOnboardingWakeUpFinished;
}
inline bool Onboarding::has_onboarding_wake_up_finished() const {
  return _internal_has_onboarding_wake_up_finished();
}
inline void Onboarding::set_has_onboarding_wake_up_finished() {
  _oneof_case_[0] = kOnboardingWakeUpFinished;
}
inline void Onboarding::clear_onboarding_wake_up_finished() {
  if (_internal_has_onboarding_wake_up_finished()) {
    if (GetArena() == nullptr) {
      delete onboarding_type_.onboarding_wake_up_finished_;
    }
    clear_has_onboarding_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpFinished* Onboarding::release_onboarding_wake_up_finished() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Onboarding.onboarding_wake_up_finished)
  if (_internal_has_onboarding_wake_up_finished()) {
    clear_has_onboarding_type();
      ::Anki::Vector::external_interface::OnboardingWakeUpFinished* temp = onboarding_type_.onboarding_wake_up_finished_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    onboarding_type_.onboarding_wake_up_finished_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::OnboardingWakeUpFinished& Onboarding::_internal_onboarding_wake_up_finished() const {
  return _internal_has_onboarding_wake_up_finished()
      ? *onboarding_type_.onboarding_wake_up_finished_
      : *reinterpret_cast< ::Anki::Vector::external_interface::OnboardingWakeUpFinished*>(&::Anki::Vector::external_interface::_OnboardingWakeUpFinished_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingWakeUpFinished& Onboarding::onboarding_wake_up_finished() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Onboarding.onboarding_wake_up_finished)
  return _internal_onboarding_wake_up_finished();
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpFinished* Onboarding::unsafe_arena_release_onboarding_wake_up_finished() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Onboarding.onboarding_wake_up_finished)
  if (_internal_has_onboarding_wake_up_finished()) {
    clear_has_onboarding_type();
    ::Anki::Vector::external_interface::OnboardingWakeUpFinished* temp = onboarding_type_.onboarding_wake_up_finished_;
    onboarding_type_.onboarding_wake_up_finished_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Onboarding::unsafe_arena_set_allocated_onboarding_wake_up_finished(::Anki::Vector::external_interface::OnboardingWakeUpFinished* onboarding_wake_up_finished) {
  clear_onboarding_type();
  if (onboarding_wake_up_finished) {
    set_has_onboarding_wake_up_finished();
    onboarding_type_.onboarding_wake_up_finished_ = onboarding_wake_up_finished;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Onboarding.onboarding_wake_up_finished)
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpFinished* Onboarding::_internal_mutable_onboarding_wake_up_finished() {
  if (!_internal_has_onboarding_wake_up_finished()) {
    clear_onboarding_type();
    set_has_onboarding_wake_up_finished();
    onboarding_type_.onboarding_wake_up_finished_ = CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingWakeUpFinished >(GetArena());
  }
  return onboarding_type_.onboarding_wake_up_finished_;
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpFinished* Onboarding::mutable_onboarding_wake_up_finished() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Onboarding.onboarding_wake_up_finished)
  return _internal_mutable_onboarding_wake_up_finished();
}

// .Anki.Vector.external_interface.Onboarding1p0ChargingInfo onboarding_1p0_charging_info = 10;
inline bool Onboarding::_internal_has_onboarding_1p0_charging_info() const {
  return onboarding_type_case() == kOnboarding1P0ChargingInfo;
}
inline bool Onboarding::has_onboarding_1p0_charging_info() const {
  return _internal_has_onboarding_1p0_charging_info();
}
inline void Onboarding::set_has_onboarding_1p0_charging_info() {
  _oneof_case_[0] = kOnboarding1P0ChargingInfo;
}
inline void Onboarding::clear_onboarding_1p0_charging_info() {
  if (_internal_has_onboarding_1p0_charging_info()) {
    if (GetArena() == nullptr) {
      delete onboarding_type_.onboarding_1p0_charging_info_;
    }
    clear_has_onboarding_type();
  }
}
inline ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* Onboarding::release_onboarding_1p0_charging_info() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.Onboarding.onboarding_1p0_charging_info)
  if (_internal_has_onboarding_1p0_charging_info()) {
    clear_has_onboarding_type();
      ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* temp = onboarding_type_.onboarding_1p0_charging_info_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    onboarding_type_.onboarding_1p0_charging_info_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo& Onboarding::_internal_onboarding_1p0_charging_info() const {
  return _internal_has_onboarding_1p0_charging_info()
      ? *onboarding_type_.onboarding_1p0_charging_info_
      : *reinterpret_cast< ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo*>(&::Anki::Vector::external_interface::_Onboarding1p0ChargingInfo_default_instance_);
}
inline const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo& Onboarding::onboarding_1p0_charging_info() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Onboarding.onboarding_1p0_charging_info)
  return _internal_onboarding_1p0_charging_info();
}
inline ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* Onboarding::unsafe_arena_release_onboarding_1p0_charging_info() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.Onboarding.onboarding_1p0_charging_info)
  if (_internal_has_onboarding_1p0_charging_info()) {
    clear_has_onboarding_type();
    ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* temp = onboarding_type_.onboarding_1p0_charging_info_;
    onboarding_type_.onboarding_1p0_charging_info_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void Onboarding::unsafe_arena_set_allocated_onboarding_1p0_charging_info(::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* onboarding_1p0_charging_info) {
  clear_onboarding_type();
  if (onboarding_1p0_charging_info) {
    set_has_onboarding_1p0_charging_info();
    onboarding_type_.onboarding_1p0_charging_info_ = onboarding_1p0_charging_info;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.Onboarding.onboarding_1p0_charging_info)
}
inline ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* Onboarding::_internal_mutable_onboarding_1p0_charging_info() {
  if (!_internal_has_onboarding_1p0_charging_info()) {
    clear_onboarding_type();
    set_has_onboarding_1p0_charging_info();
    onboarding_type_.onboarding_1p0_charging_info_ = CreateMaybeMessage< ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo >(GetArena());
  }
  return onboarding_type_.onboarding_1p0_charging_info_;
}
inline ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* Onboarding::mutable_onboarding_1p0_charging_info() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.Onboarding.onboarding_1p0_charging_info)
  return _internal_mutable_onboarding_1p0_charging_info();
}

inline bool Onboarding::has_onboarding_type() const {
  return onboarding_type_case() != ONBOARDING_TYPE_NOT_SET;
}
inline void Onboarding::clear_has_onboarding_type() {
  _oneof_case_[0] = ONBOARDING_TYPE_NOT_SET;
}
inline Onboarding::OnboardingTypeCase Onboarding::onboarding_type_case() const {
  return Onboarding::OnboardingTypeCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// RobotHistoryRequest

// -------------------------------------------------------------------

// RobotHistoryResponse

// repeated .Anki.Vector.external_interface.TimeStampedStatus messages = 1;
inline int RobotHistoryResponse::_internal_messages_size() const {
  return messages_.size();
}
inline int RobotHistoryResponse::messages_size() const {
  return _internal_messages_size();
}
inline void RobotHistoryResponse::clear_messages() {
  messages_.Clear();
}
inline ::Anki::Vector::external_interface::TimeStampedStatus* RobotHistoryResponse::mutable_messages(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.RobotHistoryResponse.messages)
  return messages_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::TimeStampedStatus >*
RobotHistoryResponse::mutable_messages() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.RobotHistoryResponse.messages)
  return &messages_;
}
inline const ::Anki::Vector::external_interface::TimeStampedStatus& RobotHistoryResponse::_internal_messages(int index) const {
  return messages_.Get(index);
}
inline const ::Anki::Vector::external_interface::TimeStampedStatus& RobotHistoryResponse::messages(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.RobotHistoryResponse.messages)
  return _internal_messages(index);
}
inline ::Anki::Vector::external_interface::TimeStampedStatus* RobotHistoryResponse::_internal_add_messages() {
  return messages_.Add();
}
inline ::Anki::Vector::external_interface::TimeStampedStatus* RobotHistoryResponse::add_messages() {
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.RobotHistoryResponse.messages)
  return _internal_add_messages();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Anki::Vector::external_interface::TimeStampedStatus >&
RobotHistoryResponse::messages() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.RobotHistoryResponse.messages)
  return messages_;
}

// -------------------------------------------------------------------

// OnboardingState

// .Anki.Vector.external_interface.OnboardingStages stage = 1;
inline void OnboardingState::clear_stage() {
  stage_ = 0;
}
inline ::Anki::Vector::external_interface::OnboardingStages OnboardingState::_internal_stage() const {
  return static_cast< ::Anki::Vector::external_interface::OnboardingStages >(stage_);
}
inline ::Anki::Vector::external_interface::OnboardingStages OnboardingState::stage() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingState.stage)
  return _internal_stage();
}
inline void OnboardingState::_internal_set_stage(::Anki::Vector::external_interface::OnboardingStages value) {
  
  stage_ = value;
}
inline void OnboardingState::set_stage(::Anki::Vector::external_interface::OnboardingStages value) {
  _internal_set_stage(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.OnboardingState.stage)
}

// -------------------------------------------------------------------

// OnboardingStateRequest

// -------------------------------------------------------------------

// OnboardingStateResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool OnboardingStateResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool OnboardingStateResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& OnboardingStateResponse::_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& OnboardingStateResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingStateResponse.status)
  return _internal_status();
}
inline void OnboardingStateResponse::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.OnboardingStateResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* OnboardingStateResponse::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* OnboardingStateResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingStateResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* OnboardingStateResponse::_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* OnboardingStateResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingStateResponse.status)
  return _internal_mutable_status();
}
inline void OnboardingStateResponse::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.OnboardingStateResponse.status)
}

// .Anki.Vector.external_interface.OnboardingState onboarding_state = 2;
inline bool OnboardingStateResponse::_internal_has_onboarding_state() const {
  return this != internal_default_instance() && onboarding_state_ != nullptr;
}
inline bool OnboardingStateResponse::has_onboarding_state() const {
  return _internal_has_onboarding_state();
}
inline void OnboardingStateResponse::clear_onboarding_state() {
  if (GetArena() == nullptr && onboarding_state_ != nullptr) {
    delete onboarding_state_;
  }
  onboarding_state_ = nullptr;
}
inline const ::Anki::Vector::external_interface::OnboardingState& OnboardingStateResponse::_internal_onboarding_state() const {
  const ::Anki::Vector::external_interface::OnboardingState* p = onboarding_state_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::OnboardingState*>(
      &::Anki::Vector::external_interface::_OnboardingState_default_instance_);
}
inline const ::Anki::Vector::external_interface::OnboardingState& OnboardingStateResponse::onboarding_state() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingStateResponse.onboarding_state)
  return _internal_onboarding_state();
}
inline void OnboardingStateResponse::unsafe_arena_set_allocated_onboarding_state(
    ::Anki::Vector::external_interface::OnboardingState* onboarding_state) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_state_);
  }
  onboarding_state_ = onboarding_state;
  if (onboarding_state) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.OnboardingStateResponse.onboarding_state)
}
inline ::Anki::Vector::external_interface::OnboardingState* OnboardingStateResponse::release_onboarding_state() {
  auto temp = unsafe_arena_release_onboarding_state();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::OnboardingState* OnboardingStateResponse::unsafe_arena_release_onboarding_state() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingStateResponse.onboarding_state)
  
  ::Anki::Vector::external_interface::OnboardingState* temp = onboarding_state_;
  onboarding_state_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::OnboardingState* OnboardingStateResponse::_internal_mutable_onboarding_state() {
  
  if (onboarding_state_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::OnboardingState>(GetArena());
    onboarding_state_ = p;
  }
  return onboarding_state_;
}
inline ::Anki::Vector::external_interface::OnboardingState* OnboardingStateResponse::mutable_onboarding_state() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingStateResponse.onboarding_state)
  return _internal_mutable_onboarding_state();
}
inline void OnboardingStateResponse::set_allocated_onboarding_state(::Anki::Vector::external_interface::OnboardingState* onboarding_state) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete onboarding_state_;
  }
  if (onboarding_state) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_state);
    if (message_arena != submessage_arena) {
      onboarding_state = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_state, submessage_arena);
    }
    
  } else {
    
  }
  onboarding_state_ = onboarding_state;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingStateResponse.onboarding_state)
}

// -------------------------------------------------------------------

// OnboardingSetPhaseRequest

// .Anki.Vector.external_interface.OnboardingPhase phase = 1;
inline void OnboardingSetPhaseRequest::clear_phase() {
  phase_ = 0;
}
inline ::Anki::Vector::external_interface::OnboardingPhase OnboardingSetPhaseRequest::_internal_phase() const {
  return static_cast< ::Anki::Vector::external_interface::OnboardingPhase >(phase_);
}
inline ::Anki::Vector::external_interface::OnboardingPhase OnboardingSetPhaseRequest::phase() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingSetPhaseRequest.phase)
  return _internal_phase();
}
inline void OnboardingSetPhaseRequest::_internal_set_phase(::Anki::Vector::external_interface::OnboardingPhase value) {
  
  phase_ = value;
}
inline void OnboardingSetPhaseRequest::set_phase(::Anki::Vector::external_interface::OnboardingPhase value) {
  _internal_set_phase(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.OnboardingSetPhaseRequest.phase)
}

// -------------------------------------------------------------------

// OnboardingSetPhaseResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool OnboardingSetPhaseResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool OnboardingSetPhaseResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& OnboardingSetPhaseResponse::_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& OnboardingSetPhaseResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingSetPhaseResponse.status)
  return _internal_status();
}
inline void OnboardingSetPhaseResponse::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.OnboardingSetPhaseResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* OnboardingSetPhaseResponse::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* OnboardingSetPhaseResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingSetPhaseResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* OnboardingSetPhaseResponse::_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* OnboardingSetPhaseResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingSetPhaseResponse.status)
  return _internal_mutable_status();
}
inline void OnboardingSetPhaseResponse::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.OnboardingSetPhaseResponse.status)
}

// .Anki.Vector.external_interface.OnboardingPhase phase = 2;
inline void OnboardingSetPhaseResponse::clear_phase() {
  phase_ = 0;
}
inline ::Anki::Vector::external_interface::OnboardingPhase OnboardingSetPhaseResponse::_internal_phase() const {
  return static_cast< ::Anki::Vector::external_interface::OnboardingPhase >(phase_);
}
inline ::Anki::Vector::external_interface::OnboardingPhase OnboardingSetPhaseResponse::phase() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingSetPhaseResponse.phase)
  return _internal_phase();
}
inline void OnboardingSetPhaseResponse::_internal_set_phase(::Anki::Vector::external_interface::OnboardingPhase value) {
  
  phase_ = value;
}
inline void OnboardingSetPhaseResponse::set_phase(::Anki::Vector::external_interface::OnboardingPhase value) {
  _internal_set_phase(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.OnboardingSetPhaseResponse.phase)
}

// .Anki.Vector.external_interface.OnboardingPhaseState phase_state = 3;
inline void OnboardingSetPhaseResponse::clear_phase_state() {
  phase_state_ = 0;
}
inline ::Anki::Vector::external_interface::OnboardingPhaseState OnboardingSetPhaseResponse::_internal_phase_state() const {
  return static_cast< ::Anki::Vector::external_interface::OnboardingPhaseState >(phase_state_);
}
inline ::Anki::Vector::external_interface::OnboardingPhaseState OnboardingSetPhaseResponse::phase_state() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingSetPhaseResponse.phase_state)
  return _internal_phase_state();
}
inline void OnboardingSetPhaseResponse::_internal_set_phase_state(::Anki::Vector::external_interface::OnboardingPhaseState value) {
  
  phase_state_ = value;
}
inline void OnboardingSetPhaseResponse::set_phase_state(::Anki::Vector::external_interface::OnboardingPhaseState value) {
  _internal_set_phase_state(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.OnboardingSetPhaseResponse.phase_state)
}

// -------------------------------------------------------------------

// OnboardingPhaseProgressRequest

// -------------------------------------------------------------------

// OnboardingPhaseProgressResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool OnboardingPhaseProgressResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool OnboardingPhaseProgressResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& OnboardingPhaseProgressResponse::_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& OnboardingPhaseProgressResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingPhaseProgressResponse.status)
  return _internal_status();
}
inline void OnboardingPhaseProgressResponse::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.OnboardingPhaseProgressResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* OnboardingPhaseProgressResponse::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* OnboardingPhaseProgressResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingPhaseProgressResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* OnboardingPhaseProgressResponse::_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* OnboardingPhaseProgressResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingPhaseProgressResponse.status)
  return _internal_mutable_status();
}
inline void OnboardingPhaseProgressResponse::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.OnboardingPhaseProgressResponse.status)
}

// .Anki.Vector.external_interface.OnboardingPhase last_set_phase = 2;
inline void OnboardingPhaseProgressResponse::clear_last_set_phase() {
  last_set_phase_ = 0;
}
inline ::Anki::Vector::external_interface::OnboardingPhase OnboardingPhaseProgressResponse::_internal_last_set_phase() const {
  return static_cast< ::Anki::Vector::external_interface::OnboardingPhase >(last_set_phase_);
}
inline ::Anki::Vector::external_interface::OnboardingPhase OnboardingPhaseProgressResponse::last_set_phase() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingPhaseProgressResponse.last_set_phase)
  return _internal_last_set_phase();
}
inline void OnboardingPhaseProgressResponse::_internal_set_last_set_phase(::Anki::Vector::external_interface::OnboardingPhase value) {
  
  last_set_phase_ = value;
}
inline void OnboardingPhaseProgressResponse::set_last_set_phase(::Anki::Vector::external_interface::OnboardingPhase value) {
  _internal_set_last_set_phase(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.OnboardingPhaseProgressResponse.last_set_phase)
}

// .Anki.Vector.external_interface.OnboardingPhaseState last_set_phase_state = 3;
inline void OnboardingPhaseProgressResponse::clear_last_set_phase_state() {
  last_set_phase_state_ = 0;
}
inline ::Anki::Vector::external_interface::OnboardingPhaseState OnboardingPhaseProgressResponse::_internal_last_set_phase_state() const {
  return static_cast< ::Anki::Vector::external_interface::OnboardingPhaseState >(last_set_phase_state_);
}
inline ::Anki::Vector::external_interface::OnboardingPhaseState OnboardingPhaseProgressResponse::last_set_phase_state() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingPhaseProgressResponse.last_set_phase_state)
  return _internal_last_set_phase_state();
}
inline void OnboardingPhaseProgressResponse::_internal_set_last_set_phase_state(::Anki::Vector::external_interface::OnboardingPhaseState value) {
  
  last_set_phase_state_ = value;
}
inline void OnboardingPhaseProgressResponse::set_last_set_phase_state(::Anki::Vector::external_interface::OnboardingPhaseState value) {
  _internal_set_last_set_phase_state(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.OnboardingPhaseProgressResponse.last_set_phase_state)
}

// int32 percent_completed = 4;
inline void OnboardingPhaseProgressResponse::clear_percent_completed() {
  percent_completed_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OnboardingPhaseProgressResponse::_internal_percent_completed() const {
  return percent_completed_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 OnboardingPhaseProgressResponse::percent_completed() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingPhaseProgressResponse.percent_completed)
  return _internal_percent_completed();
}
inline void OnboardingPhaseProgressResponse::_internal_set_percent_completed(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  percent_completed_ = value;
}
inline void OnboardingPhaseProgressResponse::set_percent_completed(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_percent_completed(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.OnboardingPhaseProgressResponse.percent_completed)
}

// -------------------------------------------------------------------

// OnboardingChargeInfoRequest

// -------------------------------------------------------------------

// OnboardingChargeInfoResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool OnboardingChargeInfoResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool OnboardingChargeInfoResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& OnboardingChargeInfoResponse::_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& OnboardingChargeInfoResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingChargeInfoResponse.status)
  return _internal_status();
}
inline void OnboardingChargeInfoResponse::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.OnboardingChargeInfoResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* OnboardingChargeInfoResponse::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* OnboardingChargeInfoResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingChargeInfoResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* OnboardingChargeInfoResponse::_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* OnboardingChargeInfoResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingChargeInfoResponse.status)
  return _internal_mutable_status();
}
inline void OnboardingChargeInfoResponse::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.OnboardingChargeInfoResponse.status)
}

// bool on_charger = 2;
inline void OnboardingChargeInfoResponse::clear_on_charger() {
  on_charger_ = false;
}
inline bool OnboardingChargeInfoResponse::_internal_on_charger() const {
  return on_charger_;
}
inline bool OnboardingChargeInfoResponse::on_charger() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingChargeInfoResponse.on_charger)
  return _internal_on_charger();
}
inline void OnboardingChargeInfoResponse::_internal_set_on_charger(bool value) {
  
  on_charger_ = value;
}
inline void OnboardingChargeInfoResponse::set_on_charger(bool value) {
  _internal_set_on_charger(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.OnboardingChargeInfoResponse.on_charger)
}

// bool needs_to_charge = 3;
inline void OnboardingChargeInfoResponse::clear_needs_to_charge() {
  needs_to_charge_ = false;
}
inline bool OnboardingChargeInfoResponse::_internal_needs_to_charge() const {
  return needs_to_charge_;
}
inline bool OnboardingChargeInfoResponse::needs_to_charge() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingChargeInfoResponse.needs_to_charge)
  return _internal_needs_to_charge();
}
inline void OnboardingChargeInfoResponse::_internal_set_needs_to_charge(bool value) {
  
  needs_to_charge_ = value;
}
inline void OnboardingChargeInfoResponse::set_needs_to_charge(bool value) {
  _internal_set_needs_to_charge(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.OnboardingChargeInfoResponse.needs_to_charge)
}

// float required_charge_time = 4;
inline void OnboardingChargeInfoResponse::clear_required_charge_time() {
  required_charge_time_ = 0;
}
inline float OnboardingChargeInfoResponse::_internal_required_charge_time() const {
  return required_charge_time_;
}
inline float OnboardingChargeInfoResponse::required_charge_time() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingChargeInfoResponse.required_charge_time)
  return _internal_required_charge_time();
}
inline void OnboardingChargeInfoResponse::_internal_set_required_charge_time(float value) {
  
  required_charge_time_ = value;
}
inline void OnboardingChargeInfoResponse::set_required_charge_time(float value) {
  _internal_set_required_charge_time(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.OnboardingChargeInfoResponse.required_charge_time)
}

// -------------------------------------------------------------------

// OnboardingSkipOnboarding

// -------------------------------------------------------------------

// OnboardingRestart

// -------------------------------------------------------------------

// OnboardingMarkCompleteAndExit

// -------------------------------------------------------------------

// OnboardingInputRequest

// .Anki.Vector.external_interface.OnboardingCompleteRequest onboarding_complete_request = 1;
inline bool OnboardingInputRequest::_internal_has_onboarding_complete_request() const {
  return oneof_message_type_case() == kOnboardingCompleteRequest;
}
inline bool OnboardingInputRequest::has_onboarding_complete_request() const {
  return _internal_has_onboarding_complete_request();
}
inline void OnboardingInputRequest::set_has_onboarding_complete_request() {
  _oneof_case_[0] = kOnboardingCompleteRequest;
}
inline void OnboardingInputRequest::clear_onboarding_complete_request() {
  if (_internal_has_onboarding_complete_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_complete_request_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingCompleteRequest* OnboardingInputRequest::release_onboarding_complete_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputRequest.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& OnboardingInputRequest::_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& OnboardingInputRequest::onboarding_complete_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_complete_request)
  return _internal_onboarding_complete_request();
}
inline ::Anki::Vector::external_interface::OnboardingCompleteRequest* OnboardingInputRequest::unsafe_arena_release_onboarding_complete_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputRequest.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 OnboardingInputRequest::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.OnboardingInputRequest.onboarding_complete_request)
}
inline ::Anki::Vector::external_interface::OnboardingCompleteRequest* OnboardingInputRequest::_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* OnboardingInputRequest::mutable_onboarding_complete_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_complete_request)
  return _internal_mutable_onboarding_complete_request();
}

// .Anki.Vector.external_interface.OnboardingWakeUpRequest onboarding_wake_up_request = 2;
inline bool OnboardingInputRequest::_internal_has_onboarding_wake_up_request() const {
  return oneof_message_type_case() == kOnboardingWakeUpRequest;
}
inline bool OnboardingInputRequest::has_onboarding_wake_up_request() const {
  return _internal_has_onboarding_wake_up_request();
}
inline void OnboardingInputRequest::set_has_onboarding_wake_up_request() {
  _oneof_case_[0] = kOnboardingWakeUpRequest;
}
inline void OnboardingInputRequest::clear_onboarding_wake_up_request() {
  if (_internal_has_onboarding_wake_up_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_wake_up_request_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpRequest* OnboardingInputRequest::release_onboarding_wake_up_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputRequest.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& OnboardingInputRequest::_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& OnboardingInputRequest::onboarding_wake_up_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_wake_up_request)
  return _internal_onboarding_wake_up_request();
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpRequest* OnboardingInputRequest::unsafe_arena_release_onboarding_wake_up_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputRequest.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 OnboardingInputRequest::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.OnboardingInputRequest.onboarding_wake_up_request)
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpRequest* OnboardingInputRequest::_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* OnboardingInputRequest::mutable_onboarding_wake_up_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_wake_up_request)
  return _internal_mutable_onboarding_wake_up_request();
}

// .Anki.Vector.external_interface.OnboardingSkipOnboarding onboarding_skip_onboarding = 7;
inline bool OnboardingInputRequest::_internal_has_onboarding_skip_onboarding() const {
  return oneof_message_type_case() == kOnboardingSkipOnboarding;
}
inline bool OnboardingInputRequest::has_onboarding_skip_onboarding() const {
  return _internal_has_onboarding_skip_onboarding();
}
inline void OnboardingInputRequest::set_has_onboarding_skip_onboarding() {
  _oneof_case_[0] = kOnboardingSkipOnboarding;
}
inline void OnboardingInputRequest::clear_onboarding_skip_onboarding() {
  if (_internal_has_onboarding_skip_onboarding()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_skip_onboarding_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingSkipOnboarding* OnboardingInputRequest::release_onboarding_skip_onboarding() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputRequest.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& OnboardingInputRequest::_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& OnboardingInputRequest::onboarding_skip_onboarding() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_skip_onboarding)
  return _internal_onboarding_skip_onboarding();
}
inline ::Anki::Vector::external_interface::OnboardingSkipOnboarding* OnboardingInputRequest::unsafe_arena_release_onboarding_skip_onboarding() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputRequest.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 OnboardingInputRequest::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.OnboardingInputRequest.onboarding_skip_onboarding)
}
inline ::Anki::Vector::external_interface::OnboardingSkipOnboarding* OnboardingInputRequest::_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* OnboardingInputRequest::mutable_onboarding_skip_onboarding() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_skip_onboarding)
  return _internal_mutable_onboarding_skip_onboarding();
}

// .Anki.Vector.external_interface.OnboardingRestart onboarding_restart = 8;
inline bool OnboardingInputRequest::_internal_has_onboarding_restart() const {
  return oneof_message_type_case() == kOnboardingRestart;
}
inline bool OnboardingInputRequest::has_onboarding_restart() const {
  return _internal_has_onboarding_restart();
}
inline void OnboardingInputRequest::set_has_onboarding_restart() {
  _oneof_case_[0] = kOnboardingRestart;
}
inline void OnboardingInputRequest::clear_onboarding_restart() {
  if (_internal_has_onboarding_restart()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_restart_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingRestart* OnboardingInputRequest::release_onboarding_restart() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputRequest.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& OnboardingInputRequest::_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& OnboardingInputRequest::onboarding_restart() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_restart)
  return _internal_onboarding_restart();
}
inline ::Anki::Vector::external_interface::OnboardingRestart* OnboardingInputRequest::unsafe_arena_release_onboarding_restart() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputRequest.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 OnboardingInputRequest::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.OnboardingInputRequest.onboarding_restart)
}
inline ::Anki::Vector::external_interface::OnboardingRestart* OnboardingInputRequest::_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* OnboardingInputRequest::mutable_onboarding_restart() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_restart)
  return _internal_mutable_onboarding_restart();
}

// .Anki.Vector.external_interface.OnboardingWakeUpStartedRequest onboarding_wake_up_started_request = 9;
inline bool OnboardingInputRequest::_internal_has_onboarding_wake_up_started_request() const {
  return oneof_message_type_case() == kOnboardingWakeUpStartedRequest;
}
inline bool OnboardingInputRequest::has_onboarding_wake_up_started_request() const {
  return _internal_has_onboarding_wake_up_started_request();
}
inline void OnboardingInputRequest::set_has_onboarding_wake_up_started_request() {
  _oneof_case_[0] = kOnboardingWakeUpStartedRequest;
}
inline void OnboardingInputRequest::clear_onboarding_wake_up_started_request() {
  if (_internal_has_onboarding_wake_up_started_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_wake_up_started_request_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* OnboardingInputRequest::release_onboarding_wake_up_started_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputRequest.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& OnboardingInputRequest::_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& OnboardingInputRequest::onboarding_wake_up_started_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_wake_up_started_request)
  return _internal_onboarding_wake_up_started_request();
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* OnboardingInputRequest::unsafe_arena_release_onboarding_wake_up_started_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputRequest.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 OnboardingInputRequest::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.OnboardingInputRequest.onboarding_wake_up_started_request)
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* OnboardingInputRequest::_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* OnboardingInputRequest::mutable_onboarding_wake_up_started_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_wake_up_started_request)
  return _internal_mutable_onboarding_wake_up_started_request();
}

// .Anki.Vector.external_interface.OnboardingSetPhaseRequest onboarding_set_phase_request = 10;
inline bool OnboardingInputRequest::_internal_has_onboarding_set_phase_request() const {
  return oneof_message_type_case() == kOnboardingSetPhaseRequest;
}
inline bool OnboardingInputRequest::has_onboarding_set_phase_request() const {
  return _internal_has_onboarding_set_phase_request();
}
inline void OnboardingInputRequest::set_has_onboarding_set_phase_request() {
  _oneof_case_[0] = kOnboardingSetPhaseRequest;
}
inline void OnboardingInputRequest::clear_onboarding_set_phase_request() {
  if (_internal_has_onboarding_set_phase_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_set_phase_request_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* OnboardingInputRequest::release_onboarding_set_phase_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputRequest.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& OnboardingInputRequest::_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& OnboardingInputRequest::onboarding_set_phase_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_set_phase_request)
  return _internal_onboarding_set_phase_request();
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* OnboardingInputRequest::unsafe_arena_release_onboarding_set_phase_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputRequest.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 OnboardingInputRequest::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.OnboardingInputRequest.onboarding_set_phase_request)
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* OnboardingInputRequest::_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* OnboardingInputRequest::mutable_onboarding_set_phase_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_set_phase_request)
  return _internal_mutable_onboarding_set_phase_request();
}

// .Anki.Vector.external_interface.OnboardingPhaseProgressRequest onboarding_phase_progress_request = 11;
inline bool OnboardingInputRequest::_internal_has_onboarding_phase_progress_request() const {
  return oneof_message_type_case() == kOnboardingPhaseProgressRequest;
}
inline bool OnboardingInputRequest::has_onboarding_phase_progress_request() const {
  return _internal_has_onboarding_phase_progress_request();
}
inline void OnboardingInputRequest::set_has_onboarding_phase_progress_request() {
  _oneof_case_[0] = kOnboardingPhaseProgressRequest;
}
inline void OnboardingInputRequest::clear_onboarding_phase_progress_request() {
  if (_internal_has_onboarding_phase_progress_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_phase_progress_request_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* OnboardingInputRequest::release_onboarding_phase_progress_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputRequest.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& OnboardingInputRequest::_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& OnboardingInputRequest::onboarding_phase_progress_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_phase_progress_request)
  return _internal_onboarding_phase_progress_request();
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* OnboardingInputRequest::unsafe_arena_release_onboarding_phase_progress_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputRequest.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 OnboardingInputRequest::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.OnboardingInputRequest.onboarding_phase_progress_request)
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* OnboardingInputRequest::_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* OnboardingInputRequest::mutable_onboarding_phase_progress_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_phase_progress_request)
  return _internal_mutable_onboarding_phase_progress_request();
}

// .Anki.Vector.external_interface.OnboardingChargeInfoRequest onboarding_charge_info_request = 12;
inline bool OnboardingInputRequest::_internal_has_onboarding_charge_info_request() const {
  return oneof_message_type_case() == kOnboardingChargeInfoRequest;
}
inline bool OnboardingInputRequest::has_onboarding_charge_info_request() const {
  return _internal_has_onboarding_charge_info_request();
}
inline void OnboardingInputRequest::set_has_onboarding_charge_info_request() {
  _oneof_case_[0] = kOnboardingChargeInfoRequest;
}
inline void OnboardingInputRequest::clear_onboarding_charge_info_request() {
  if (_internal_has_onboarding_charge_info_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_charge_info_request_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* OnboardingInputRequest::release_onboarding_charge_info_request() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputRequest.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& OnboardingInputRequest::_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& OnboardingInputRequest::onboarding_charge_info_request() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_charge_info_request)
  return _internal_onboarding_charge_info_request();
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* OnboardingInputRequest::unsafe_arena_release_onboarding_charge_info_request() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputRequest.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 OnboardingInputRequest::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.OnboardingInputRequest.onboarding_charge_info_request)
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* OnboardingInputRequest::_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* OnboardingInputRequest::mutable_onboarding_charge_info_request() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_charge_info_request)
  return _internal_mutable_onboarding_charge_info_request();
}

// .Anki.Vector.external_interface.OnboardingMarkCompleteAndExit onboarding_mark_complete_and_exit = 13;
inline bool OnboardingInputRequest::_internal_has_onboarding_mark_complete_and_exit() const {
  return oneof_message_type_case() == kOnboardingMarkCompleteAndExit;
}
inline bool OnboardingInputRequest::has_onboarding_mark_complete_and_exit() const {
  return _internal_has_onboarding_mark_complete_and_exit();
}
inline void OnboardingInputRequest::set_has_onboarding_mark_complete_and_exit() {
  _oneof_case_[0] = kOnboardingMarkCompleteAndExit;
}
inline void OnboardingInputRequest::clear_onboarding_mark_complete_and_exit() {
  if (_internal_has_onboarding_mark_complete_and_exit()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_mark_complete_and_exit_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* OnboardingInputRequest::release_onboarding_mark_complete_and_exit() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputRequest.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& OnboardingInputRequest::_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& OnboardingInputRequest::onboarding_mark_complete_and_exit() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_mark_complete_and_exit)
  return _internal_onboarding_mark_complete_and_exit();
}
inline ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* OnboardingInputRequest::unsafe_arena_release_onboarding_mark_complete_and_exit() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputRequest.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 OnboardingInputRequest::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.OnboardingInputRequest.onboarding_mark_complete_and_exit)
}
inline ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* OnboardingInputRequest::_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* OnboardingInputRequest::mutable_onboarding_mark_complete_and_exit() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_mark_complete_and_exit)
  return _internal_mutable_onboarding_mark_complete_and_exit();
}

inline bool OnboardingInputRequest::has_oneof_message_type() const {
  return oneof_message_type_case() != ONEOF_MESSAGE_TYPE_NOT_SET;
}
inline void OnboardingInputRequest::clear_has_oneof_message_type() {
  _oneof_case_[0] = ONEOF_MESSAGE_TYPE_NOT_SET;
}
inline OnboardingInputRequest::OneofMessageTypeCase OnboardingInputRequest::oneof_message_type_case() const {
  return OnboardingInputRequest::OneofMessageTypeCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// OnboardingInputResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool OnboardingInputResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool OnboardingInputResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& OnboardingInputResponse::_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& OnboardingInputResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputResponse.status)
  return _internal_status();
}
inline void OnboardingInputResponse::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.OnboardingInputResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* OnboardingInputResponse::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* OnboardingInputResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* OnboardingInputResponse::_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* OnboardingInputResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputResponse.status)
  return _internal_mutable_status();
}
inline void OnboardingInputResponse::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.OnboardingInputResponse.status)
}

// .Anki.Vector.external_interface.OnboardingCompleteResponse onboarding_complete_response = 2;
inline bool OnboardingInputResponse::_internal_has_onboarding_complete_response() const {
  return oneof_message_type_case() == kOnboardingCompleteResponse;
}
inline bool OnboardingInputResponse::has_onboarding_complete_response() const {
  return _internal_has_onboarding_complete_response();
}
inline void OnboardingInputResponse::set_has_onboarding_complete_response() {
  _oneof_case_[0] = kOnboardingCompleteResponse;
}
inline void OnboardingInputResponse::clear_onboarding_complete_response() {
  if (_internal_has_onboarding_complete_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_complete_response_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingCompleteResponse* OnboardingInputResponse::release_onboarding_complete_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputResponse.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& OnboardingInputResponse::_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& OnboardingInputResponse::onboarding_complete_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_complete_response)
  return _internal_onboarding_complete_response();
}
inline ::Anki::Vector::external_interface::OnboardingCompleteResponse* OnboardingInputResponse::unsafe_arena_release_onboarding_complete_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputResponse.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 OnboardingInputResponse::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.OnboardingInputResponse.onboarding_complete_response)
}
inline ::Anki::Vector::external_interface::OnboardingCompleteResponse* OnboardingInputResponse::_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* OnboardingInputResponse::mutable_onboarding_complete_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_complete_response)
  return _internal_mutable_onboarding_complete_response();
}

// .Anki.Vector.external_interface.OnboardingWakeUpResponse onboarding_wake_up_response = 3;
inline bool OnboardingInputResponse::_internal_has_onboarding_wake_up_response() const {
  return oneof_message_type_case() == kOnboardingWakeUpResponse;
}
inline bool OnboardingInputResponse::has_onboarding_wake_up_response() const {
  return _internal_has_onboarding_wake_up_response();
}
inline void OnboardingInputResponse::set_has_onboarding_wake_up_response() {
  _oneof_case_[0] = kOnboardingWakeUpResponse;
}
inline void OnboardingInputResponse::clear_onboarding_wake_up_response() {
  if (_internal_has_onboarding_wake_up_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_wake_up_response_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpResponse* OnboardingInputResponse::release_onboarding_wake_up_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputResponse.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& OnboardingInputResponse::_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& OnboardingInputResponse::onboarding_wake_up_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_wake_up_response)
  return _internal_onboarding_wake_up_response();
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpResponse* OnboardingInputResponse::unsafe_arena_release_onboarding_wake_up_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputResponse.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 OnboardingInputResponse::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.OnboardingInputResponse.onboarding_wake_up_response)
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpResponse* OnboardingInputResponse::_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* OnboardingInputResponse::mutable_onboarding_wake_up_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_wake_up_response)
  return _internal_mutable_onboarding_wake_up_response();
}

// .Anki.Vector.external_interface.OnboardingWakeUpStartedResponse onboarding_wake_up_started_response = 6;
inline bool OnboardingInputResponse::_internal_has_onboarding_wake_up_started_response() const {
  return oneof_message_type_case() == kOnboardingWakeUpStartedResponse;
}
inline bool OnboardingInputResponse::has_onboarding_wake_up_started_response() const {
  return _internal_has_onboarding_wake_up_started_response();
}
inline void OnboardingInputResponse::set_has_onboarding_wake_up_started_response() {
  _oneof_case_[0] = kOnboardingWakeUpStartedResponse;
}
inline void OnboardingInputResponse::clear_onboarding_wake_up_started_response() {
  if (_internal_has_onboarding_wake_up_started_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_wake_up_started_response_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* OnboardingInputResponse::release_onboarding_wake_up_started_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputResponse.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& OnboardingInputResponse::_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& OnboardingInputResponse::onboarding_wake_up_started_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_wake_up_started_response)
  return _internal_onboarding_wake_up_started_response();
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* OnboardingInputResponse::unsafe_arena_release_onboarding_wake_up_started_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputResponse.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 OnboardingInputResponse::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.OnboardingInputResponse.onboarding_wake_up_started_response)
}
inline ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* OnboardingInputResponse::_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* OnboardingInputResponse::mutable_onboarding_wake_up_started_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_wake_up_started_response)
  return _internal_mutable_onboarding_wake_up_started_response();
}

// .Anki.Vector.external_interface.OnboardingSetPhaseResponse onboarding_set_phase_response = 7;
inline bool OnboardingInputResponse::_internal_has_onboarding_set_phase_response() const {
  return oneof_message_type_case() == kOnboardingSetPhaseResponse;
}
inline bool OnboardingInputResponse::has_onboarding_set_phase_response() const {
  return _internal_has_onboarding_set_phase_response();
}
inline void OnboardingInputResponse::set_has_onboarding_set_phase_response() {
  _oneof_case_[0] = kOnboardingSetPhaseResponse;
}
inline void OnboardingInputResponse::clear_onboarding_set_phase_response() {
  if (_internal_has_onboarding_set_phase_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_set_phase_response_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* OnboardingInputResponse::release_onboarding_set_phase_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputResponse.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& OnboardingInputResponse::_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& OnboardingInputResponse::onboarding_set_phase_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_set_phase_response)
  return _internal_onboarding_set_phase_response();
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* OnboardingInputResponse::unsafe_arena_release_onboarding_set_phase_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputResponse.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 OnboardingInputResponse::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.OnboardingInputResponse.onboarding_set_phase_response)
}
inline ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* OnboardingInputResponse::_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* OnboardingInputResponse::mutable_onboarding_set_phase_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_set_phase_response)
  return _internal_mutable_onboarding_set_phase_response();
}

// .Anki.Vector.external_interface.OnboardingPhaseProgressResponse onboarding_phase_progress_response = 8;
inline bool OnboardingInputResponse::_internal_has_onboarding_phase_progress_response() const {
  return oneof_message_type_case() == kOnboardingPhaseProgressResponse;
}
inline bool OnboardingInputResponse::has_onboarding_phase_progress_response() const {
  return _internal_has_onboarding_phase_progress_response();
}
inline void OnboardingInputResponse::set_has_onboarding_phase_progress_response() {
  _oneof_case_[0] = kOnboardingPhaseProgressResponse;
}
inline void OnboardingInputResponse::clear_onboarding_phase_progress_response() {
  if (_internal_has_onboarding_phase_progress_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_phase_progress_response_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* OnboardingInputResponse::release_onboarding_phase_progress_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputResponse.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& OnboardingInputResponse::_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& OnboardingInputResponse::onboarding_phase_progress_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_phase_progress_response)
  return _internal_onboarding_phase_progress_response();
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* OnboardingInputResponse::unsafe_arena_release_onboarding_phase_progress_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputResponse.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 OnboardingInputResponse::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.OnboardingInputResponse.onboarding_phase_progress_response)
}
inline ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* OnboardingInputResponse::_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* OnboardingInputResponse::mutable_onboarding_phase_progress_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_phase_progress_response)
  return _internal_mutable_onboarding_phase_progress_response();
}

// .Anki.Vector.external_interface.OnboardingChargeInfoResponse onboarding_charge_info_response = 9;
inline bool OnboardingInputResponse::_internal_has_onboarding_charge_info_response() const {
  return oneof_message_type_case() == kOnboardingChargeInfoResponse;
}
inline bool OnboardingInputResponse::has_onboarding_charge_info_response() const {
  return _internal_has_onboarding_charge_info_response();
}
inline void OnboardingInputResponse::set_has_onboarding_charge_info_response() {
  _oneof_case_[0] = kOnboardingChargeInfoResponse;
}
inline void OnboardingInputResponse::clear_onboarding_charge_info_response() {
  if (_internal_has_onboarding_charge_info_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_charge_info_response_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* OnboardingInputResponse::release_onboarding_charge_info_response() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingInputResponse.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& OnboardingInputResponse::_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& OnboardingInputResponse::onboarding_charge_info_response() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_charge_info_response)
  return _internal_onboarding_charge_info_response();
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* OnboardingInputResponse::unsafe_arena_release_onboarding_charge_info_response() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.OnboardingInputResponse.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 OnboardingInputResponse::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.OnboardingInputResponse.onboarding_charge_info_response)
}
inline ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* OnboardingInputResponse::_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* OnboardingInputResponse::mutable_onboarding_charge_info_response() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_charge_info_response)
  return _internal_mutable_onboarding_charge_info_response();
}

inline bool OnboardingInputResponse::has_oneof_message_type() const {
  return oneof_message_type_case() != ONEOF_MESSAGE_TYPE_NOT_SET;
}
inline void OnboardingInputResponse::clear_has_oneof_message_type() {
  _oneof_case_[0] = ONEOF_MESSAGE_TYPE_NOT_SET;
}
inline OnboardingInputResponse::OneofMessageTypeCase OnboardingInputResponse::oneof_message_type_case() const {
  return OnboardingInputResponse::OneofMessageTypeCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// OnboardingCompleteRequest

// -------------------------------------------------------------------

// OnboardingCompleteResponse

// bool completed = 1;
inline void OnboardingCompleteResponse::clear_completed() {
  completed_ = false;
}
inline bool OnboardingCompleteResponse::_internal_completed() const {
  return completed_;
}
inline bool OnboardingCompleteResponse::completed() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingCompleteResponse.completed)
  return _internal_completed();
}
inline void OnboardingCompleteResponse::_internal_set_completed(bool value) {
  
  completed_ = value;
}
inline void OnboardingCompleteResponse::set_completed(bool value) {
  _internal_set_completed(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.OnboardingCompleteResponse.completed)
}

// -------------------------------------------------------------------

// OnboardingWakeUpStartedRequest

// -------------------------------------------------------------------

// OnboardingWakeUpStartedResponse

// bool already_started = 1;
inline void OnboardingWakeUpStartedResponse::clear_already_started() {
  already_started_ = false;
}
inline bool OnboardingWakeUpStartedResponse::_internal_already_started() const {
  return already_started_;
}
inline bool OnboardingWakeUpStartedResponse::already_started() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse.already_started)
  return _internal_already_started();
}
inline void OnboardingWakeUpStartedResponse::_internal_set_already_started(bool value) {
  
  already_started_ = value;
}
inline void OnboardingWakeUpStartedResponse::set_already_started(bool value) {
  _internal_set_already_started(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse.already_started)
}

// -------------------------------------------------------------------

// OnboardingWakeUpRequest

// -------------------------------------------------------------------

// OnboardingWakeUpResponse

// bool waking_up = 1;
inline void OnboardingWakeUpResponse::clear_waking_up() {
  waking_up_ = false;
}
inline bool OnboardingWakeUpResponse::_internal_waking_up() const {
  return waking_up_;
}
inline bool OnboardingWakeUpResponse::waking_up() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingWakeUpResponse.waking_up)
  return _internal_waking_up();
}
inline void OnboardingWakeUpResponse::_internal_set_waking_up(bool value) {
  
  waking_up_ = value;
}
inline void OnboardingWakeUpResponse::set_waking_up(bool value) {
  _internal_set_waking_up(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.OnboardingWakeUpResponse.waking_up)
}

// .Anki.Vector.external_interface.Onboarding1p0ChargingInfo charging_info = 2;
inline bool OnboardingWakeUpResponse::_internal_has_charging_info() const {
  return this != internal_default_instance() && charging_info_ != nullptr;
}
inline bool OnboardingWakeUpResponse::has_charging_info() const {
  return _internal_has_charging_info();
}
inline void OnboardingWakeUpResponse::clear_charging_info() {
  if (GetArena() == nullptr && charging_info_ != nullptr) {
    delete charging_info_;
  }
  charging_info_ = nullptr;
}
inline const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo& OnboardingWakeUpResponse::_internal_charging_info() const {
  const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* p = charging_info_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo*>(
      &::Anki::Vector::external_interface::_Onboarding1p0ChargingInfo_default_instance_);
}
inline const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo& OnboardingWakeUpResponse::charging_info() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.OnboardingWakeUpResponse.charging_info)
  return _internal_charging_info();
}
inline void OnboardingWakeUpResponse::unsafe_arena_set_allocated_charging_info(
    ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* charging_info) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(charging_info_);
  }
  charging_info_ = charging_info;
  if (charging_info) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.OnboardingWakeUpResponse.charging_info)
}
inline ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* OnboardingWakeUpResponse::release_charging_info() {
  auto temp = unsafe_arena_release_charging_info();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* OnboardingWakeUpResponse::unsafe_arena_release_charging_info() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.OnboardingWakeUpResponse.charging_info)
  
  ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* temp = charging_info_;
  charging_info_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* OnboardingWakeUpResponse::_internal_mutable_charging_info() {
  
  if (charging_info_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::Onboarding1p0ChargingInfo>(GetArena());
    charging_info_ = p;
  }
  return charging_info_;
}
inline ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* OnboardingWakeUpResponse::mutable_charging_info() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.OnboardingWakeUpResponse.charging_info)
  return _internal_mutable_charging_info();
}
inline void OnboardingWakeUpResponse::set_allocated_charging_info(::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* charging_info) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete charging_info_;
  }
  if (charging_info) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(charging_info);
    if (message_arena != submessage_arena) {
      charging_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, charging_info, submessage_arena);
    }
    
  } else {
    
  }
  charging_info_ = charging_info;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingWakeUpResponse.charging_info)
}

// -------------------------------------------------------------------

// Onboarding1p0ChargingInfo

// bool on_charger = 1;
inline void Onboarding1p0ChargingInfo::clear_on_charger() {
  on_charger_ = false;
}
inline bool Onboarding1p0ChargingInfo::_internal_on_charger() const {
  return on_charger_;
}
inline bool Onboarding1p0ChargingInfo::on_charger() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Onboarding1p0ChargingInfo.on_charger)
  return _internal_on_charger();
}
inline void Onboarding1p0ChargingInfo::_internal_set_on_charger(bool value) {
  
  on_charger_ = value;
}
inline void Onboarding1p0ChargingInfo::set_on_charger(bool value) {
  _internal_set_on_charger(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.Onboarding1p0ChargingInfo.on_charger)
}

// bool needs_to_charge = 2;
inline void Onboarding1p0ChargingInfo::clear_needs_to_charge() {
  needs_to_charge_ = false;
}
inline bool Onboarding1p0ChargingInfo::_internal_needs_to_charge() const {
  return needs_to_charge_;
}
inline bool Onboarding1p0ChargingInfo::needs_to_charge() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Onboarding1p0ChargingInfo.needs_to_charge)
  return _internal_needs_to_charge();
}
inline void Onboarding1p0ChargingInfo::_internal_set_needs_to_charge(bool value) {
  
  needs_to_charge_ = value;
}
inline void Onboarding1p0ChargingInfo::set_needs_to_charge(bool value) {
  _internal_set_needs_to_charge(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.Onboarding1p0ChargingInfo.needs_to_charge)
}

// float suggested_charger_time = 3;
inline void Onboarding1p0ChargingInfo::clear_suggested_charger_time() {
  suggested_charger_time_ = 0;
}
inline float Onboarding1p0ChargingInfo::_internal_suggested_charger_time() const {
  return suggested_charger_time_;
}
inline float Onboarding1p0ChargingInfo::suggested_charger_time() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.Onboarding1p0ChargingInfo.suggested_charger_time)
  return _internal_suggested_charger_time();
}
inline void Onboarding1p0ChargingInfo::_internal_set_suggested_charger_time(float value) {
  
  suggested_charger_time_ = value;
}
inline void Onboarding1p0ChargingInfo::set_suggested_charger_time(float value) {
  _internal_set_suggested_charger_time(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.Onboarding1p0ChargingInfo.suggested_charger_time)
}

// -------------------------------------------------------------------

// OnboardingWakeUpFinished

// -------------------------------------------------------------------

// FeatureFlagRequest

// string feature_name = 1;
inline void FeatureFlagRequest::clear_feature_name() {
  feature_name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& FeatureFlagRequest::feature_name() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FeatureFlagRequest.feature_name)
  return _internal_feature_name();
}
inline void FeatureFlagRequest::set_feature_name(const std::string& value) {
  _internal_set_feature_name(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FeatureFlagRequest.feature_name)
}
inline std::string* FeatureFlagRequest::mutable_feature_name() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.FeatureFlagRequest.feature_name)
  return _internal_mutable_feature_name();
}
inline const std::string& FeatureFlagRequest::_internal_feature_name() const {
  return feature_name_.Get();
}
inline void FeatureFlagRequest::_internal_set_feature_name(const std::string& value) {
  
  feature_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void FeatureFlagRequest::set_feature_name(std::string&& value) {
  
  feature_name_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.FeatureFlagRequest.feature_name)
}
inline void FeatureFlagRequest::set_feature_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  feature_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.FeatureFlagRequest.feature_name)
}
inline void FeatureFlagRequest::set_feature_name(const char* value,
    size_t size) {
  
  feature_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.FeatureFlagRequest.feature_name)
}
inline std::string* FeatureFlagRequest::_internal_mutable_feature_name() {
  
  return feature_name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* FeatureFlagRequest::release_feature_name() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.FeatureFlagRequest.feature_name)
  return feature_name_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void FeatureFlagRequest::set_allocated_feature_name(std::string* feature_name) {
  if (feature_name != nullptr) {
    
  } else {
    
  }
  feature_name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), feature_name,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.FeatureFlagRequest.feature_name)
}
inline std::string* FeatureFlagRequest::unsafe_arena_release_feature_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.FeatureFlagRequest.feature_name)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return feature_name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void FeatureFlagRequest::unsafe_arena_set_allocated_feature_name(
    std::string* feature_name) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (feature_name != nullptr) {
    
  } else {
    
  }
  feature_name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      feature_name, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.FeatureFlagRequest.feature_name)
}

// -------------------------------------------------------------------

// FeatureFlagResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool FeatureFlagResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool FeatureFlagResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& FeatureFlagResponse::_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& FeatureFlagResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FeatureFlagResponse.status)
  return _internal_status();
}
inline void FeatureFlagResponse::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.FeatureFlagResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* FeatureFlagResponse::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* FeatureFlagResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.FeatureFlagResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* FeatureFlagResponse::_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* FeatureFlagResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.FeatureFlagResponse.status)
  return _internal_mutable_status();
}
inline void FeatureFlagResponse::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.FeatureFlagResponse.status)
}

// bool valid_feature = 2;
inline void FeatureFlagResponse::clear_valid_feature() {
  valid_feature_ = false;
}
inline bool FeatureFlagResponse::_internal_valid_feature() const {
  return valid_feature_;
}
inline bool FeatureFlagResponse::valid_feature() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FeatureFlagResponse.valid_feature)
  return _internal_valid_feature();
}
inline void FeatureFlagResponse::_internal_set_valid_feature(bool value) {
  
  valid_feature_ = value;
}
inline void FeatureFlagResponse::set_valid_feature(bool value) {
  _internal_set_valid_feature(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FeatureFlagResponse.valid_feature)
}

// bool feature_enabled = 3;
inline void FeatureFlagResponse::clear_feature_enabled() {
  feature_enabled_ = false;
}
inline bool FeatureFlagResponse::_internal_feature_enabled() const {
  return feature_enabled_;
}
inline bool FeatureFlagResponse::feature_enabled() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FeatureFlagResponse.feature_enabled)
  return _internal_feature_enabled();
}
inline void FeatureFlagResponse::_internal_set_feature_enabled(bool value) {
  
  feature_enabled_ = value;
}
inline void FeatureFlagResponse::set_feature_enabled(bool value) {
  _internal_set_feature_enabled(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FeatureFlagResponse.feature_enabled)
}

// -------------------------------------------------------------------

// FeatureFlagListRequest

// repeated string request_list = 1;
inline int FeatureFlagListRequest::_internal_request_list_size() const {
  return request_list_.size();
}
inline int FeatureFlagListRequest::request_list_size() const {
  return _internal_request_list_size();
}
inline void FeatureFlagListRequest::clear_request_list() {
  request_list_.Clear();
}
inline std::string* FeatureFlagListRequest::add_request_list() {
  // @@protoc_insertion_point(field_add_mutable:Anki.Vector.external_interface.FeatureFlagListRequest.request_list)
  return _internal_add_request_list();
}
inline const std::string& FeatureFlagListRequest::_internal_request_list(int index) const {
  return request_list_.Get(index);
}
inline const std::string& FeatureFlagListRequest::request_list(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FeatureFlagListRequest.request_list)
  return _internal_request_list(index);
}
inline std::string* FeatureFlagListRequest::mutable_request_list(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.FeatureFlagListRequest.request_list)
  return request_list_.Mutable(index);
}
inline void FeatureFlagListRequest::set_request_list(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FeatureFlagListRequest.request_list)
  request_list_.Mutable(index)->assign(value);
}
inline void FeatureFlagListRequest::set_request_list(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FeatureFlagListRequest.request_list)
  request_list_.Mutable(index)->assign(std::move(value));
}
inline void FeatureFlagListRequest::set_request_list(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  request_list_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.FeatureFlagListRequest.request_list)
}
inline void FeatureFlagListRequest::set_request_list(int index, const char* value, size_t size) {
  request_list_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Anki.Vector.external_interface.FeatureFlagListRequest.request_list)
}
inline std::string* FeatureFlagListRequest::_internal_add_request_list() {
  return request_list_.Add();
}
inline void FeatureFlagListRequest::add_request_list(const std::string& value) {
  request_list_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.FeatureFlagListRequest.request_list)
}
inline void FeatureFlagListRequest::add_request_list(std::string&& value) {
  request_list_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.FeatureFlagListRequest.request_list)
}
inline void FeatureFlagListRequest::add_request_list(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  request_list_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:Anki.Vector.external_interface.FeatureFlagListRequest.request_list)
}
inline void FeatureFlagListRequest::add_request_list(const char* value, size_t size) {
  request_list_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:Anki.Vector.external_interface.FeatureFlagListRequest.request_list)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
FeatureFlagListRequest::request_list() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.FeatureFlagListRequest.request_list)
  return request_list_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
FeatureFlagListRequest::mutable_request_list() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.FeatureFlagListRequest.request_list)
  return &request_list_;
}

// -------------------------------------------------------------------

// FeatureFlagListResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool FeatureFlagListResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool FeatureFlagListResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& FeatureFlagListResponse::_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& FeatureFlagListResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FeatureFlagListResponse.status)
  return _internal_status();
}
inline void FeatureFlagListResponse::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.FeatureFlagListResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* FeatureFlagListResponse::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* FeatureFlagListResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.FeatureFlagListResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* FeatureFlagListResponse::_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* FeatureFlagListResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.FeatureFlagListResponse.status)
  return _internal_mutable_status();
}
inline void FeatureFlagListResponse::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.FeatureFlagListResponse.status)
}

// repeated string list = 2;
inline int FeatureFlagListResponse::_internal_list_size() const {
  return list_.size();
}
inline int FeatureFlagListResponse::list_size() const {
  return _internal_list_size();
}
inline void FeatureFlagListResponse::clear_list() {
  list_.Clear();
}
inline std::string* FeatureFlagListResponse::add_list() {
  // @@protoc_insertion_point(field_add_mutable:Anki.Vector.external_interface.FeatureFlagListResponse.list)
  return _internal_add_list();
}
inline const std::string& FeatureFlagListResponse::_internal_list(int index) const {
  return list_.Get(index);
}
inline const std::string& FeatureFlagListResponse::list(int index) const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.FeatureFlagListResponse.list)
  return _internal_list(index);
}
inline std::string* FeatureFlagListResponse::mutable_list(int index) {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.FeatureFlagListResponse.list)
  return list_.Mutable(index);
}
inline void FeatureFlagListResponse::set_list(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FeatureFlagListResponse.list)
  list_.Mutable(index)->assign(value);
}
inline void FeatureFlagListResponse::set_list(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.FeatureFlagListResponse.list)
  list_.Mutable(index)->assign(std::move(value));
}
inline void FeatureFlagListResponse::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.FeatureFlagListResponse.list)
}
inline void FeatureFlagListResponse::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.FeatureFlagListResponse.list)
}
inline std::string* FeatureFlagListResponse::_internal_add_list() {
  return list_.Add();
}
inline void FeatureFlagListResponse::add_list(const std::string& value) {
  list_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.FeatureFlagListResponse.list)
}
inline void FeatureFlagListResponse::add_list(std::string&& value) {
  list_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:Anki.Vector.external_interface.FeatureFlagListResponse.list)
}
inline void FeatureFlagListResponse::add_list(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  list_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:Anki.Vector.external_interface.FeatureFlagListResponse.list)
}
inline void FeatureFlagListResponse::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.FeatureFlagListResponse.list)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
FeatureFlagListResponse::list() const {
  // @@protoc_insertion_point(field_list:Anki.Vector.external_interface.FeatureFlagListResponse.list)
  return list_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
FeatureFlagListResponse::mutable_list() {
  // @@protoc_insertion_point(field_mutable_list:Anki.Vector.external_interface.FeatureFlagListResponse.list)
  return &list_;
}

// -------------------------------------------------------------------

// AttentionTransfer

// .Anki.Vector.external_interface.AttentionTransferReason reason = 1;
inline void AttentionTransfer::clear_reason() {
  reason_ = 0;
}
inline ::Anki::Vector::external_interface::AttentionTransferReason AttentionTransfer::_internal_reason() const {
  return static_cast< ::Anki::Vector::external_interface::AttentionTransferReason >(reason_);
}
inline ::Anki::Vector::external_interface::AttentionTransferReason AttentionTransfer::reason() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AttentionTransfer.reason)
  return _internal_reason();
}
inline void AttentionTransfer::_internal_set_reason(::Anki::Vector::external_interface::AttentionTransferReason value) {
  
  reason_ = value;
}
inline void AttentionTransfer::set_reason(::Anki::Vector::external_interface::AttentionTransferReason value) {
  _internal_set_reason(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AttentionTransfer.reason)
}

// float seconds_ago = 2;
inline void AttentionTransfer::clear_seconds_ago() {
  seconds_ago_ = 0;
}
inline float AttentionTransfer::_internal_seconds_ago() const {
  return seconds_ago_;
}
inline float AttentionTransfer::seconds_ago() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.AttentionTransfer.seconds_ago)
  return _internal_seconds_ago();
}
inline void AttentionTransfer::_internal_set_seconds_ago(float value) {
  
  seconds_ago_ = value;
}
inline void AttentionTransfer::set_seconds_ago(float value) {
  _internal_set_seconds_ago(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.AttentionTransfer.seconds_ago)
}

// -------------------------------------------------------------------

// LatestAttentionTransferRequest

// -------------------------------------------------------------------

// LatestAttentionTransfer

// .Anki.Vector.external_interface.AttentionTransfer attention_transfer = 1;
inline bool LatestAttentionTransfer::_internal_has_attention_transfer() const {
  return oneof_message_type_case() == kAttentionTransfer;
}
inline bool LatestAttentionTransfer::has_attention_transfer() const {
  return _internal_has_attention_transfer();
}
inline void LatestAttentionTransfer::set_has_attention_transfer() {
  _oneof_case_[0] = kAttentionTransfer;
}
inline void LatestAttentionTransfer::clear_attention_transfer() {
  if (_internal_has_attention_transfer()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.attention_transfer_;
    }
    clear_has_oneof_message_type();
  }
}
inline ::Anki::Vector::external_interface::AttentionTransfer* LatestAttentionTransfer::release_attention_transfer() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.LatestAttentionTransfer.attention_transfer)
  if (_internal_has_attention_transfer()) {
    clear_has_oneof_message_type();
      ::Anki::Vector::external_interface::AttentionTransfer* temp = oneof_message_type_.attention_transfer_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    oneof_message_type_.attention_transfer_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::Anki::Vector::external_interface::AttentionTransfer& LatestAttentionTransfer::_internal_attention_transfer() const {
  return _internal_has_attention_transfer()
      ? *oneof_message_type_.attention_transfer_
      : *reinterpret_cast< ::Anki::Vector::external_interface::AttentionTransfer*>(&::Anki::Vector::external_interface::_AttentionTransfer_default_instance_);
}
inline const ::Anki::Vector::external_interface::AttentionTransfer& LatestAttentionTransfer::attention_transfer() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.LatestAttentionTransfer.attention_transfer)
  return _internal_attention_transfer();
}
inline ::Anki::Vector::external_interface::AttentionTransfer* LatestAttentionTransfer::unsafe_arena_release_attention_transfer() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.LatestAttentionTransfer.attention_transfer)
  if (_internal_has_attention_transfer()) {
    clear_has_oneof_message_type();
    ::Anki::Vector::external_interface::AttentionTransfer* temp = oneof_message_type_.attention_transfer_;
    oneof_message_type_.attention_transfer_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void LatestAttentionTransfer::unsafe_arena_set_allocated_attention_transfer(::Anki::Vector::external_interface::AttentionTransfer* attention_transfer) {
  clear_oneof_message_type();
  if (attention_transfer) {
    set_has_attention_transfer();
    oneof_message_type_.attention_transfer_ = attention_transfer;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.LatestAttentionTransfer.attention_transfer)
}
inline ::Anki::Vector::external_interface::AttentionTransfer* LatestAttentionTransfer::_internal_mutable_attention_transfer() {
  if (!_internal_has_attention_transfer()) {
    clear_oneof_message_type();
    set_has_attention_transfer();
    oneof_message_type_.attention_transfer_ = CreateMaybeMessage< ::Anki::Vector::external_interface::AttentionTransfer >(GetArena());
  }
  return oneof_message_type_.attention_transfer_;
}
inline ::Anki::Vector::external_interface::AttentionTransfer* LatestAttentionTransfer::mutable_attention_transfer() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.LatestAttentionTransfer.attention_transfer)
  return _internal_mutable_attention_transfer();
}

inline bool LatestAttentionTransfer::has_oneof_message_type() const {
  return oneof_message_type_case() != ONEOF_MESSAGE_TYPE_NOT_SET;
}
inline void LatestAttentionTransfer::clear_has_oneof_message_type() {
  _oneof_case_[0] = ONEOF_MESSAGE_TYPE_NOT_SET;
}
inline LatestAttentionTransfer::OneofMessageTypeCase LatestAttentionTransfer::oneof_message_type_case() const {
  return LatestAttentionTransfer::OneofMessageTypeCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// LatestAttentionTransferResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool LatestAttentionTransferResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool LatestAttentionTransferResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& LatestAttentionTransferResponse::_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& LatestAttentionTransferResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.LatestAttentionTransferResponse.status)
  return _internal_status();
}
inline void LatestAttentionTransferResponse::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.LatestAttentionTransferResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* LatestAttentionTransferResponse::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* LatestAttentionTransferResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.LatestAttentionTransferResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* LatestAttentionTransferResponse::_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* LatestAttentionTransferResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.LatestAttentionTransferResponse.status)
  return _internal_mutable_status();
}
inline void LatestAttentionTransferResponse::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.LatestAttentionTransferResponse.status)
}

// .Anki.Vector.external_interface.LatestAttentionTransfer latest_attention_transfer = 2;
inline bool LatestAttentionTransferResponse::_internal_has_latest_attention_transfer() const {
  return this != internal_default_instance() && latest_attention_transfer_ != nullptr;
}
inline bool LatestAttentionTransferResponse::has_latest_attention_transfer() const {
  return _internal_has_latest_attention_transfer();
}
inline void LatestAttentionTransferResponse::clear_latest_attention_transfer() {
  if (GetArena() == nullptr && latest_attention_transfer_ != nullptr) {
    delete latest_attention_transfer_;
  }
  latest_attention_transfer_ = nullptr;
}
inline const ::Anki::Vector::external_interface::LatestAttentionTransfer& LatestAttentionTransferResponse::_internal_latest_attention_transfer() const {
  const ::Anki::Vector::external_interface::LatestAttentionTransfer* p = latest_attention_transfer_;
  return p != nullptr ? *p : *reinterpret_cast<const ::Anki::Vector::external_interface::LatestAttentionTransfer*>(
      &::Anki::Vector::external_interface::_LatestAttentionTransfer_default_instance_);
}
inline const ::Anki::Vector::external_interface::LatestAttentionTransfer& LatestAttentionTransferResponse::latest_attention_transfer() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.LatestAttentionTransferResponse.latest_attention_transfer)
  return _internal_latest_attention_transfer();
}
inline void LatestAttentionTransferResponse::unsafe_arena_set_allocated_latest_attention_transfer(
    ::Anki::Vector::external_interface::LatestAttentionTransfer* latest_attention_transfer) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(latest_attention_transfer_);
  }
  latest_attention_transfer_ = latest_attention_transfer;
  if (latest_attention_transfer) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.LatestAttentionTransferResponse.latest_attention_transfer)
}
inline ::Anki::Vector::external_interface::LatestAttentionTransfer* LatestAttentionTransferResponse::release_latest_attention_transfer() {
  auto temp = unsafe_arena_release_latest_attention_transfer();
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::Anki::Vector::external_interface::LatestAttentionTransfer* LatestAttentionTransferResponse::unsafe_arena_release_latest_attention_transfer() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.LatestAttentionTransferResponse.latest_attention_transfer)
  
  ::Anki::Vector::external_interface::LatestAttentionTransfer* temp = latest_attention_transfer_;
  latest_attention_transfer_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::LatestAttentionTransfer* LatestAttentionTransferResponse::_internal_mutable_latest_attention_transfer() {
  
  if (latest_attention_transfer_ == nullptr) {
    auto* p = CreateMaybeMessage<::Anki::Vector::external_interface::LatestAttentionTransfer>(GetArena());
    latest_attention_transfer_ = p;
  }
  return latest_attention_transfer_;
}
inline ::Anki::Vector::external_interface::LatestAttentionTransfer* LatestAttentionTransferResponse::mutable_latest_attention_transfer() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.LatestAttentionTransferResponse.latest_attention_transfer)
  return _internal_mutable_latest_attention_transfer();
}
inline void LatestAttentionTransferResponse::set_allocated_latest_attention_transfer(::Anki::Vector::external_interface::LatestAttentionTransfer* latest_attention_transfer) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete latest_attention_transfer_;
  }
  if (latest_attention_transfer) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(latest_attention_transfer);
    if (message_arena != submessage_arena) {
      latest_attention_transfer = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, latest_attention_transfer, submessage_arena);
    }
    
  } else {
    
  }
  latest_attention_transfer_ = latest_attention_transfer;
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.LatestAttentionTransferResponse.latest_attention_transfer)
}

// -------------------------------------------------------------------

// UpdateAndRestartRequest

// -------------------------------------------------------------------

// UpdateAndRestartResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool UpdateAndRestartResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool UpdateAndRestartResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& UpdateAndRestartResponse::_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& UpdateAndRestartResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UpdateAndRestartResponse.status)
  return _internal_status();
}
inline void UpdateAndRestartResponse::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.UpdateAndRestartResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateAndRestartResponse::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* UpdateAndRestartResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UpdateAndRestartResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* UpdateAndRestartResponse::_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* UpdateAndRestartResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UpdateAndRestartResponse.status)
  return _internal_mutable_status();
}
inline void UpdateAndRestartResponse::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.UpdateAndRestartResponse.status)
}

// -------------------------------------------------------------------

// CheckUpdateStatusRequest

// -------------------------------------------------------------------

// CheckUpdateStatusResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool CheckUpdateStatusResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool CheckUpdateStatusResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& CheckUpdateStatusResponse::_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& CheckUpdateStatusResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CheckUpdateStatusResponse.status)
  return _internal_status();
}
inline void CheckUpdateStatusResponse::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.CheckUpdateStatusResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* CheckUpdateStatusResponse::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* CheckUpdateStatusResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.CheckUpdateStatusResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* CheckUpdateStatusResponse::_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* CheckUpdateStatusResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.CheckUpdateStatusResponse.status)
  return _internal_mutable_status();
}
inline void CheckUpdateStatusResponse::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.CheckUpdateStatusResponse.status)
}

// .Anki.Vector.external_interface.CheckUpdateStatusResponse.UpdateStatus update_status = 2;
inline void CheckUpdateStatusResponse::clear_update_status() {
  update_status_ = 0;
}
inline ::Anki::Vector::external_interface::CheckUpdateStatusResponse_UpdateStatus CheckUpdateStatusResponse::_internal_update_status() const {
  return static_cast< ::Anki::Vector::external_interface::CheckUpdateStatusResponse_UpdateStatus >(update_status_);
}
inline ::Anki::Vector::external_interface::CheckUpdateStatusResponse_UpdateStatus CheckUpdateStatusResponse::update_status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_status)
  return _internal_update_status();
}
inline void CheckUpdateStatusResponse::_internal_set_update_status(::Anki::Vector::external_interface::CheckUpdateStatusResponse_UpdateStatus value) {
  
  update_status_ = value;
}
inline void CheckUpdateStatusResponse::set_update_status(::Anki::Vector::external_interface::CheckUpdateStatusResponse_UpdateStatus value) {
  _internal_set_update_status(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_status)
}

// int64 expected = 3;
inline void CheckUpdateStatusResponse::clear_expected() {
  expected_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 CheckUpdateStatusResponse::_internal_expected() const {
  return expected_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 CheckUpdateStatusResponse::expected() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CheckUpdateStatusResponse.expected)
  return _internal_expected();
}
inline void CheckUpdateStatusResponse::_internal_set_expected(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  expected_ = value;
}
inline void CheckUpdateStatusResponse::set_expected(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_expected(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CheckUpdateStatusResponse.expected)
}

// int64 progress = 4;
inline void CheckUpdateStatusResponse::clear_progress() {
  progress_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 CheckUpdateStatusResponse::_internal_progress() const {
  return progress_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 CheckUpdateStatusResponse::progress() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CheckUpdateStatusResponse.progress)
  return _internal_progress();
}
inline void CheckUpdateStatusResponse::_internal_set_progress(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  progress_ = value;
}
inline void CheckUpdateStatusResponse::set_progress(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_progress(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CheckUpdateStatusResponse.progress)
}

// string update_version = 5;
inline void CheckUpdateStatusResponse::clear_update_version() {
  update_version_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& CheckUpdateStatusResponse::update_version() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_version)
  return _internal_update_version();
}
inline void CheckUpdateStatusResponse::set_update_version(const std::string& value) {
  _internal_set_update_version(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_version)
}
inline std::string* CheckUpdateStatusResponse::mutable_update_version() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_version)
  return _internal_mutable_update_version();
}
inline const std::string& CheckUpdateStatusResponse::_internal_update_version() const {
  return update_version_.Get();
}
inline void CheckUpdateStatusResponse::_internal_set_update_version(const std::string& value) {
  
  update_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void CheckUpdateStatusResponse::set_update_version(std::string&& value) {
  
  update_version_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_version)
}
inline void CheckUpdateStatusResponse::set_update_version(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  update_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_version)
}
inline void CheckUpdateStatusResponse::set_update_version(const char* value,
    size_t size) {
  
  update_version_.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.CheckUpdateStatusResponse.update_version)
}
inline std::string* CheckUpdateStatusResponse::_internal_mutable_update_version() {
  
  return update_version_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* CheckUpdateStatusResponse::release_update_version() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_version)
  return update_version_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void CheckUpdateStatusResponse::set_allocated_update_version(std::string* update_version) {
  if (update_version != nullptr) {
    
  } else {
    
  }
  update_version_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), update_version,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_version)
}
inline std::string* CheckUpdateStatusResponse::unsafe_arena_release_update_version() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_version)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return update_version_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void CheckUpdateStatusResponse::unsafe_arena_set_allocated_update_version(
    std::string* update_version) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (update_version != nullptr) {
    
  } else {
    
  }
  update_version_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      update_version, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_version)
}

// string update_phase = 6;
inline void CheckUpdateStatusResponse::clear_update_phase() {
  update_phase_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& CheckUpdateStatusResponse::update_phase() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_phase)
  return _internal_update_phase();
}
inline void CheckUpdateStatusResponse::set_update_phase(const std::string& value) {
  _internal_set_update_phase(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_phase)
}
inline std::string* CheckUpdateStatusResponse::mutable_update_phase() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_phase)
  return _internal_mutable_update_phase();
}
inline const std::string& CheckUpdateStatusResponse::_internal_update_phase() const {
  return update_phase_.Get();
}
inline void CheckUpdateStatusResponse::_internal_set_update_phase(const std::string& value) {
  
  update_phase_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void CheckUpdateStatusResponse::set_update_phase(std::string&& value) {
  
  update_phase_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_phase)
}
inline void CheckUpdateStatusResponse::set_update_phase(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  update_phase_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_phase)
}
inline void CheckUpdateStatusResponse::set_update_phase(const char* value,
    size_t size) {
  
  update_phase_.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.CheckUpdateStatusResponse.update_phase)
}
inline std::string* CheckUpdateStatusResponse::_internal_mutable_update_phase() {
  
  return update_phase_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* CheckUpdateStatusResponse::release_update_phase() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_phase)
  return update_phase_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void CheckUpdateStatusResponse::set_allocated_update_phase(std::string* update_phase) {
  if (update_phase != nullptr) {
    
  } else {
    
  }
  update_phase_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), update_phase,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_phase)
}
inline std::string* CheckUpdateStatusResponse::unsafe_arena_release_update_phase() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_phase)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return update_phase_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void CheckUpdateStatusResponse::unsafe_arena_set_allocated_update_phase(
    std::string* update_phase) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (update_phase != nullptr) {
    
  } else {
    
  }
  update_phase_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      update_phase, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.CheckUpdateStatusResponse.update_phase)
}

// string error = 7;
inline void CheckUpdateStatusResponse::clear_error() {
  error_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& CheckUpdateStatusResponse::error() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CheckUpdateStatusResponse.error)
  return _internal_error();
}
inline void CheckUpdateStatusResponse::set_error(const std::string& value) {
  _internal_set_error(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CheckUpdateStatusResponse.error)
}
inline std::string* CheckUpdateStatusResponse::mutable_error() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.CheckUpdateStatusResponse.error)
  return _internal_mutable_error();
}
inline const std::string& CheckUpdateStatusResponse::_internal_error() const {
  return error_.Get();
}
inline void CheckUpdateStatusResponse::_internal_set_error(const std::string& value) {
  
  error_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void CheckUpdateStatusResponse::set_error(std::string&& value) {
  
  error_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.CheckUpdateStatusResponse.error)
}
inline void CheckUpdateStatusResponse::set_error(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  error_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.CheckUpdateStatusResponse.error)
}
inline void CheckUpdateStatusResponse::set_error(const char* value,
    size_t size) {
  
  error_.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.CheckUpdateStatusResponse.error)
}
inline std::string* CheckUpdateStatusResponse::_internal_mutable_error() {
  
  return error_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* CheckUpdateStatusResponse::release_error() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.CheckUpdateStatusResponse.error)
  return error_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void CheckUpdateStatusResponse::set_allocated_error(std::string* error) {
  if (error != nullptr) {
    
  } else {
    
  }
  error_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), error,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.CheckUpdateStatusResponse.error)
}
inline std::string* CheckUpdateStatusResponse::unsafe_arena_release_error() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.CheckUpdateStatusResponse.error)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return error_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void CheckUpdateStatusResponse::unsafe_arena_set_allocated_error(
    std::string* error) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (error != nullptr) {
    
  } else {
    
  }
  error_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      error, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.CheckUpdateStatusResponse.error)
}

// int64 exit_code = 8;
inline void CheckUpdateStatusResponse::clear_exit_code() {
  exit_code_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 CheckUpdateStatusResponse::_internal_exit_code() const {
  return exit_code_;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 CheckUpdateStatusResponse::exit_code() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CheckUpdateStatusResponse.exit_code)
  return _internal_exit_code();
}
inline void CheckUpdateStatusResponse::_internal_set_exit_code(::PROTOBUF_NAMESPACE_ID::int64 value) {
  
  exit_code_ = value;
}
inline void CheckUpdateStatusResponse::set_exit_code(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _internal_set_exit_code(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CheckUpdateStatusResponse.exit_code)
}

// -------------------------------------------------------------------

// UploadDebugLogsRequest

// -------------------------------------------------------------------

// UploadDebugLogsResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool UploadDebugLogsResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool UploadDebugLogsResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& UploadDebugLogsResponse::_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& UploadDebugLogsResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UploadDebugLogsResponse.status)
  return _internal_status();
}
inline void UploadDebugLogsResponse::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.UploadDebugLogsResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* UploadDebugLogsResponse::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* UploadDebugLogsResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UploadDebugLogsResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* UploadDebugLogsResponse::_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* UploadDebugLogsResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UploadDebugLogsResponse.status)
  return _internal_mutable_status();
}
inline void UploadDebugLogsResponse::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.UploadDebugLogsResponse.status)
}

// string url = 2;
inline void UploadDebugLogsResponse::clear_url() {
  url_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& UploadDebugLogsResponse::url() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.UploadDebugLogsResponse.url)
  return _internal_url();
}
inline void UploadDebugLogsResponse::set_url(const std::string& value) {
  _internal_set_url(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.UploadDebugLogsResponse.url)
}
inline std::string* UploadDebugLogsResponse::mutable_url() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.UploadDebugLogsResponse.url)
  return _internal_mutable_url();
}
inline const std::string& UploadDebugLogsResponse::_internal_url() const {
  return url_.Get();
}
inline void UploadDebugLogsResponse::_internal_set_url(const std::string& value) {
  
  url_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void UploadDebugLogsResponse::set_url(std::string&& value) {
  
  url_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.UploadDebugLogsResponse.url)
}
inline void UploadDebugLogsResponse::set_url(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  url_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.UploadDebugLogsResponse.url)
}
inline void UploadDebugLogsResponse::set_url(const char* value,
    size_t size) {
  
  url_.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.UploadDebugLogsResponse.url)
}
inline std::string* UploadDebugLogsResponse::_internal_mutable_url() {
  
  return url_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* UploadDebugLogsResponse::release_url() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.UploadDebugLogsResponse.url)
  return url_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void UploadDebugLogsResponse::set_allocated_url(std::string* url) {
  if (url != nullptr) {
    
  } else {
    
  }
  url_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), url,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.UploadDebugLogsResponse.url)
}
inline std::string* UploadDebugLogsResponse::unsafe_arena_release_url() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.UploadDebugLogsResponse.url)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return url_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void UploadDebugLogsResponse::unsafe_arena_set_allocated_url(
    std::string* url) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (url != nullptr) {
    
  } else {
    
  }
  url_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      url, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.UploadDebugLogsResponse.url)
}

// -------------------------------------------------------------------

// CheckCloudRequest

// -------------------------------------------------------------------

// CheckCloudResponse

// .Anki.Vector.external_interface.ResponseStatus status = 1;
inline bool CheckCloudResponse::_internal_has_status() const {
  return this != internal_default_instance() && status_ != nullptr;
}
inline bool CheckCloudResponse::has_status() const {
  return _internal_has_status();
}
inline const ::Anki::Vector::external_interface::ResponseStatus& CheckCloudResponse::_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& CheckCloudResponse::status() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CheckCloudResponse.status)
  return _internal_status();
}
inline void CheckCloudResponse::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.CheckCloudResponse.status)
}
inline ::Anki::Vector::external_interface::ResponseStatus* CheckCloudResponse::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* CheckCloudResponse::unsafe_arena_release_status() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.CheckCloudResponse.status)
  
  ::Anki::Vector::external_interface::ResponseStatus* temp = status_;
  status_ = nullptr;
  return temp;
}
inline ::Anki::Vector::external_interface::ResponseStatus* CheckCloudResponse::_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* CheckCloudResponse::mutable_status() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.CheckCloudResponse.status)
  return _internal_mutable_status();
}
inline void CheckCloudResponse::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.CheckCloudResponse.status)
}

// .Anki.Vector.external_interface.CheckCloudResponse.ConnectionCode code = 2;
inline void CheckCloudResponse::clear_code() {
  code_ = 0;
}
inline ::Anki::Vector::external_interface::CheckCloudResponse_ConnectionCode CheckCloudResponse::_internal_code() const {
  return static_cast< ::Anki::Vector::external_interface::CheckCloudResponse_ConnectionCode >(code_);
}
inline ::Anki::Vector::external_interface::CheckCloudResponse_ConnectionCode CheckCloudResponse::code() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CheckCloudResponse.code)
  return _internal_code();
}
inline void CheckCloudResponse::_internal_set_code(::Anki::Vector::external_interface::CheckCloudResponse_ConnectionCode value) {
  
  code_ = value;
}
inline void CheckCloudResponse::set_code(::Anki::Vector::external_interface::CheckCloudResponse_ConnectionCode value) {
  _internal_set_code(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CheckCloudResponse.code)
}

// string status_message = 3;
inline void CheckCloudResponse::clear_status_message() {
  status_message_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& CheckCloudResponse::status_message() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CheckCloudResponse.status_message)
  return _internal_status_message();
}
inline void CheckCloudResponse::set_status_message(const std::string& value) {
  _internal_set_status_message(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CheckCloudResponse.status_message)
}
inline std::string* CheckCloudResponse::mutable_status_message() {
  // @@protoc_insertion_point(field_mutable:Anki.Vector.external_interface.CheckCloudResponse.status_message)
  return _internal_mutable_status_message();
}
inline const std::string& CheckCloudResponse::_internal_status_message() const {
  return status_message_.Get();
}
inline void CheckCloudResponse::_internal_set_status_message(const std::string& value) {
  
  status_message_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void CheckCloudResponse::set_status_message(std::string&& value) {
  
  status_message_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:Anki.Vector.external_interface.CheckCloudResponse.status_message)
}
inline void CheckCloudResponse::set_status_message(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  status_message_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:Anki.Vector.external_interface.CheckCloudResponse.status_message)
}
inline void CheckCloudResponse::set_status_message(const char* value,
    size_t size) {
  
  status_message_.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.CheckCloudResponse.status_message)
}
inline std::string* CheckCloudResponse::_internal_mutable_status_message() {
  
  return status_message_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* CheckCloudResponse::release_status_message() {
  // @@protoc_insertion_point(field_release:Anki.Vector.external_interface.CheckCloudResponse.status_message)
  return status_message_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void CheckCloudResponse::set_allocated_status_message(std::string* status_message) {
  if (status_message != nullptr) {
    
  } else {
    
  }
  status_message_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), status_message,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.CheckCloudResponse.status_message)
}
inline std::string* CheckCloudResponse::unsafe_arena_release_status_message() {
  // @@protoc_insertion_point(field_unsafe_arena_release:Anki.Vector.external_interface.CheckCloudResponse.status_message)
  GOOGLE_DCHECK(GetArena() != nullptr);
  
  return status_message_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArena());
}
inline void CheckCloudResponse::unsafe_arena_set_allocated_status_message(
    std::string* status_message) {
  GOOGLE_DCHECK(GetArena() != nullptr);
  if (status_message != nullptr) {
    
  } else {
    
  }
  status_message_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      status_message, GetArena());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:Anki.Vector.external_interface.CheckCloudResponse.status_message)
}

// int32 num_packets = 4;
inline void CheckCloudResponse::clear_num_packets() {
  num_packets_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 CheckCloudResponse::_internal_num_packets() const {
  return num_packets_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 CheckCloudResponse::num_packets() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CheckCloudResponse.num_packets)
  return _internal_num_packets();
}
inline void CheckCloudResponse::_internal_set_num_packets(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_packets_ = value;
}
inline void CheckCloudResponse::set_num_packets(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_packets(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CheckCloudResponse.num_packets)
}

// int32 expected_packets = 5;
inline void CheckCloudResponse::clear_expected_packets() {
  expected_packets_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 CheckCloudResponse::_internal_expected_packets() const {
  return expected_packets_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 CheckCloudResponse::expected_packets() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface.CheckCloudResponse.expected_packets)
  return _internal_expected_packets();
}
inline void CheckCloudResponse::_internal_set_expected_packets(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  expected_packets_ = value;
}
inline void CheckCloudResponse::set_expected_packets(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_expected_packets(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface.CheckCloudResponse.expected_packets)
}

// -------------------------------------------------------------------

// _FakeAlexaUsage

// .Anki.Vector.external_interface.AlexaAuthState ignored = 1;
inline void _FakeAlexaUsage::clear_ignored() {
  ignored_ = 0;
}
inline ::Anki::Vector::external_interface::AlexaAuthState _FakeAlexaUsage::_internal_ignored() const {
  return static_cast< ::Anki::Vector::external_interface::AlexaAuthState >(ignored_);
}
inline ::Anki::Vector::external_interface::AlexaAuthState _FakeAlexaUsage::ignored() const {
  // @@protoc_insertion_point(field_get:Anki.Vector.external_interface._FakeAlexaUsage.ignored)
  return _internal_ignored();
}
inline void _FakeAlexaUsage::_internal_set_ignored(::Anki::Vector::external_interface::AlexaAuthState value) {
  
  ignored_ = value;
}
inline void _FakeAlexaUsage::set_ignored(::Anki::Vector::external_interface::AlexaAuthState value) {
  _internal_set_ignored(value);
  // @@protoc_insertion_point(field_set:Anki.Vector.external_interface._FakeAlexaUsage.ignored)
}

#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::ActionResult_ActionResultCode> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::ActionResult_ActionResultCode>() {
  return ::Anki::Vector::external_interface::ActionResult_ActionResultCode_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::CubeBattery_CubeBatteryLevel> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::CubeBattery_CubeBatteryLevel>() {
  return ::Anki::Vector::external_interface::CubeBattery_CubeBatteryLevel_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::SayTextResponse_UtteranceState> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::SayTextResponse_UtteranceState>() {
  return ::Anki::Vector::external_interface::SayTextResponse_UtteranceState_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::ImageChunk_ImageEncoding> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::ImageChunk_ImageEncoding>() {
  return ::Anki::Vector::external_interface::ImageChunk_ImageEncoding_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::CheckUpdateStatusResponse_UpdateStatus> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::CheckUpdateStatusResponse_UpdateStatus>() {
  return ::Anki::Vector::external_interface::CheckUpdateStatusResponse_UpdateStatus_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::CheckCloudResponse_ConnectionCode> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::CheckCloudResponse_ConnectionCode>() {
  return ::Anki::Vector::external_interface::CheckCloudResponse_ConnectionCode_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::RobotStatus> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::RobotStatus>() {
  return ::Anki::Vector::external_interface::RobotStatus_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::UnexpectedMovementType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::UnexpectedMovementType>() {
  return ::Anki::Vector::external_interface::UnexpectedMovementType_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::UnexpectedMovementSide> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::UnexpectedMovementSide>() {
  return ::Anki::Vector::external_interface::UnexpectedMovementSide_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::FacialExpression> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::FacialExpression>() {
  return ::Anki::Vector::external_interface::FacialExpression_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::FaceEnrollmentResult> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::FaceEnrollmentResult>() {
  return ::Anki::Vector::external_interface::FaceEnrollmentResult_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::BehaviorResults> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::BehaviorResults>() {
  return ::Anki::Vector::external_interface::BehaviorResults_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::ActionTagConstants> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::ActionTagConstants>() {
  return ::Anki::Vector::external_interface::ActionTagConstants_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::AlignmentType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::AlignmentType>() {
  return ::Anki::Vector::external_interface::AlignmentType_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::BatteryLevel> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::BatteryLevel>() {
  return ::Anki::Vector::external_interface::BatteryLevel_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::AudioConstants> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::AudioConstants>() {
  return ::Anki::Vector::external_interface::AudioConstants_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::AudioProcessingMode> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::AudioProcessingMode>() {
  return ::Anki::Vector::external_interface::AudioProcessingMode_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::MasterVolumeLevel> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::MasterVolumeLevel>() {
  return ::Anki::Vector::external_interface::MasterVolumeLevel_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::OnboardingStages> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::OnboardingStages>() {
  return ::Anki::Vector::external_interface::OnboardingStages_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::OnboardingPhase> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::OnboardingPhase>() {
  return ::Anki::Vector::external_interface::OnboardingPhase_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::OnboardingPhaseState> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::OnboardingPhaseState>() {
  return ::Anki::Vector::external_interface::OnboardingPhaseState_descriptor();
}
template <> struct is_proto_enum< ::Anki::Vector::external_interface::AttentionTransferReason> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Anki::Vector::external_interface::AttentionTransferReason>() {
  return ::Anki::Vector::external_interface::AttentionTransferReason_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_messages_2eproto
