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

#include "shared.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
extern PROTOBUF_INTERNAL_EXPORT_alexa_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AlexaAuthEvent_alexa_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_alexa_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AlexaAuthStateRequest_alexa_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_alexa_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_AlexaAuthStateResponse_alexa_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_alexa_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AlexaOptInRequest_alexa_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_alexa_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_AlexaOptInResponse_alexa_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AppDisconnected_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AttentionTransfer_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AudioChunk_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AudioSendModeChanged_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AudioSendModeRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BatteryStateRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_BatteryStateResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_behavior_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_BehaviorControlResponse_behavior_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CameraConfigRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CameraConfigResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CameraSettingsUpdate_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CancelActionByIdTagRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CancelActionByIdTagResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CancelBehaviorRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CancelBehaviorResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CheckCloudRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CheckCloudResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CheckUpdateStatusResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ConnectCubeRequest_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ConnectCubeResponse_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_shared_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ConnectionResponse_shared_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_behavior_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ControlRelease_behavior_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_behavior_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ControlRequest_behavior_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CubeBattery_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CubesAvailableRequest_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CubesAvailableResponse_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_DeletePhotoRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DeletePhotoResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_DisconnectCubeRequest_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DockWithCubeRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_DockWithCubeResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_DriveOffChargerRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DriveOffChargerResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_DriveOnChargerRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DriveOnChargerResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_DriveStraightRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_DriveStraightResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_DriveWheelsRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DriveWheelsResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EnableFaceDetectionRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EnableFaceDetectionResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EnableImageStreamingRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EnableImageStreamingResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EnableMarkerDetectionRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EnableMarkerDetectionResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EnableMirrorModeRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EnableMirrorModeResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EnableMotionDetectionRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EnableMotionDetectionResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_EnrollFaceRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EnrollFaceResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_shared_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<24> scc_info_Event_shared_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ExternalAudioStreamCancel_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ExternalAudioStreamChunk_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ExternalAudioStreamComplete_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ExternalAudioStreamPrepare_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_ExternalAudioStreamResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FeatureFlagListRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FeatureFlagListResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FeatureFlagRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FeatureFlagResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_shared_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FilterList_shared_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FindFacesRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FindFacesResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FlashCubeLightsRequest_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ForgetPreferredCubeRequest_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_GoToObjectRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_GoToObjectResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_GoToPoseRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_GoToPoseResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ImageChunk_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IsImageStreamingEnabledRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IsImageStreamingEnabledResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_JdocsChanged_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_KeepAlivePing_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_LatestAttentionTransfer_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LatestAttentionTransferRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ListAnimationTriggersRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_ListAnimationTriggersResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ListAnimationsRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_ListAnimationsResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LookAroundInPlaceRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_LookAroundInPlaceResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MasterVolumeRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MasterVolumeResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MirrorModeDisabled_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<8> scc_info_ObjectEvent_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Onboarding_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingChargeInfoRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_OnboardingChargeInfoResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingCompleteRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingCompleteResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingMarkCompleteAndExit_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingPhaseProgressRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_OnboardingPhaseProgressResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingRestart_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingSetPhaseRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_OnboardingSetPhaseResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingSkipOnboarding_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingState_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingStateRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingWakeUpRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_OnboardingWakeUpResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingWakeUpStartedRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingWakeUpStartedResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PhotoPathMessage_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PhotoRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PhotoTaken_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PhotosInfoRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PhotosInfoResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_PickupObjectRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PickupObjectResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PlaceObjectOnGroundHereRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PlaceObjectOnGroundHereResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_PlayAnimationRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PlayAnimationResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_PlayAnimationTriggerRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_PopAWheelieRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PopAWheelieResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PullJdocsRequest_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PullJdocsResponse_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_response_5fstatus_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ResponseStatus_response_5fstatus_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RobotChangedObservedFaceID_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RobotErasedEnrolledFace_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RobotHistoryRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RobotHistoryResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_RobotObservedFace_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RobotObservedMotion_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RobotRenamedEnrolledFace_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<5> scc_info_RobotState_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RollBlockRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RollBlockResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RollObjectRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_RollObjectResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SayTextRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SayTextResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SetCameraSettingsRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SetCameraSettingsResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SetCubeLightsRequest_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SetEyeColorRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SetEyeColorResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SetFaceToEnrollRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SetFaceToEnrollResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SetHeadAngleRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SetHeadAngleResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SetLiftHeightRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SetLiftHeightResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SetPreferredCubeRequest_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_StimulationInfo_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_StopAllMotorsRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_StopAllMotorsResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ThumbnailPathMessage_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ThumbnailRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_TimeStampedStatus_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_TurnInPlaceRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_TurnInPlaceResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_TurnTowardsFaceRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_TurnTowardsFaceResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_UnexpectedMovement_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_UpdateAccountSettingsRequest_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_UpdateAccountSettingsResponse_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_UpdateSettingsRequest_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_UpdateSettingsResponse_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_UpdateUserEntitlementsRequest_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_settings_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_UpdateUserEntitlementsResponse_settings_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_UserIntent_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_VersionStateRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_VersionStateResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_VisionModesAutoDisabled_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_WakeWord_messages_2eproto;
namespace Anki {
namespace Vector {
namespace external_interface {
class ProtocolVersionRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ProtocolVersionRequest> _instance;
} _ProtocolVersionRequest_default_instance_;
class ProtocolVersionResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ProtocolVersionResponse> _instance;
} _ProtocolVersionResponse_default_instance_;
class ConnectionResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ConnectionResponse> _instance;
} _ConnectionResponse_default_instance_;
class EventDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Event> _instance;
  const ::Anki::Vector::external_interface::TimeStampedStatus* time_stamped_status_;
  const ::Anki::Vector::external_interface::Onboarding* onboarding_;
  const ::Anki::Vector::external_interface::WakeWord* wake_word_;
  const ::Anki::Vector::external_interface::AttentionTransfer* attention_transfer_;
  const ::Anki::Vector::external_interface::RobotObservedFace* robot_observed_face_;
  const ::Anki::Vector::external_interface::RobotChangedObservedFaceID* robot_changed_observed_face_id_;
  const ::Anki::Vector::external_interface::ObjectEvent* object_event_;
  const ::Anki::Vector::external_interface::StimulationInfo* stimulation_info_;
  const ::Anki::Vector::external_interface::PhotoTaken* photo_taken_;
  const ::Anki::Vector::external_interface::RobotState* robot_state_;
  const ::Anki::Vector::external_interface::CubeBattery* cube_battery_;
  const ::Anki::Vector::external_interface::KeepAlivePing* keep_alive_;
  const ::Anki::Vector::external_interface::ConnectionResponse* connection_response_;
  const ::Anki::Vector::external_interface::JdocsChanged* jdocs_changed_;
  const ::Anki::Vector::external_interface::AlexaAuthEvent* alexa_auth_event_;
  const ::Anki::Vector::external_interface::MirrorModeDisabled* mirror_mode_disabled_;
  const ::Anki::Vector::external_interface::VisionModesAutoDisabled* vision_modes_auto_disabled_;
  const ::Anki::Vector::external_interface::CheckUpdateStatusResponse* check_update_status_response_;
  const ::Anki::Vector::external_interface::UserIntent* user_intent_;
  const ::Anki::Vector::external_interface::RobotObservedMotion* robot_observed_motion_;
  const ::Anki::Vector::external_interface::RobotErasedEnrolledFace* robot_erased_enrolled_face_;
  const ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* robot_renamed_enrolled_face_;
  const ::Anki::Vector::external_interface::CameraSettingsUpdate* camera_settings_update_;
  const ::Anki::Vector::external_interface::UnexpectedMovement* unexpected_movement_;
} _Event_default_instance_;
class FilterListDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FilterList> _instance;
} _FilterList_default_instance_;
class EventRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EventRequest> _instance;
  const ::Anki::Vector::external_interface::FilterList* white_list_;
  const ::Anki::Vector::external_interface::FilterList* black_list_;
} _EventRequest_default_instance_;
class EventResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EventResponse> _instance;
} _EventResponse_default_instance_;
class UserAuthenticationRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UserAuthenticationRequest> _instance;
} _UserAuthenticationRequest_default_instance_;
class UserAuthenticationResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UserAuthenticationResponse> _instance;
} _UserAuthenticationResponse_default_instance_;
class GatewayWrapperDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GatewayWrapper> _instance;
  const ::Anki::Vector::external_interface::Event* event_;
  const ::Anki::Vector::external_interface::OnboardingStateRequest* onboarding_state_request_;
  const ::Anki::Vector::external_interface::OnboardingState* onboarding_state_;
  const ::Anki::Vector::external_interface::OnboardingSkipOnboarding* onboarding_skip_onboarding_;
  const ::Anki::Vector::external_interface::OnboardingRestart* onboarding_restart_;
  const ::Anki::Vector::external_interface::OnboardingCompleteRequest* onboarding_complete_request_;
  const ::Anki::Vector::external_interface::OnboardingCompleteResponse* onboarding_complete_response_;
  const ::Anki::Vector::external_interface::OnboardingWakeUpRequest* onboarding_wake_up_request_;
  const ::Anki::Vector::external_interface::OnboardingWakeUpResponse* onboarding_wake_up_response_;
  const ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* onboarding_wake_up_started_request_;
  const ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* onboarding_wake_up_started_response_;
  const ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* onboarding_set_phase_request_;
  const ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* onboarding_set_phase_response_;
  const ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* onboarding_phase_progress_request_;
  const ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* onboarding_phase_progress_response_;
  const ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* onboarding_charge_info_request_;
  const ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* onboarding_charge_info_response_;
  const ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* onboarding_mark_complete_and_exit_;
  const ::Anki::Vector::external_interface::LatestAttentionTransferRequest* latest_attention_transfer_request_;
  const ::Anki::Vector::external_interface::LatestAttentionTransfer* latest_attention_transfer_;
  const ::Anki::Vector::external_interface::PhotosInfoRequest* photos_info_request_;
  const ::Anki::Vector::external_interface::PhotosInfoResponse* photos_info_response_;
  const ::Anki::Vector::external_interface::PhotoRequest* photo_request_;
  const ::Anki::Vector::external_interface::PhotoPathMessage* photo_path_message_;
  const ::Anki::Vector::external_interface::ThumbnailRequest* thumbnail_request_;
  const ::Anki::Vector::external_interface::ThumbnailPathMessage* thumbnail_path_message_;
  const ::Anki::Vector::external_interface::DeletePhotoRequest* delete_photo_request_;
  const ::Anki::Vector::external_interface::DeletePhotoResponse* delete_photo_response_;
  const ::Anki::Vector::external_interface::PullJdocsRequest* pull_jdocs_request_;
  const ::Anki::Vector::external_interface::PullJdocsResponse* pull_jdocs_response_;
  const ::Anki::Vector::external_interface::UpdateSettingsRequest* update_settings_request_;
  const ::Anki::Vector::external_interface::UpdateSettingsResponse* update_settings_response_;
  const ::Anki::Vector::external_interface::UpdateAccountSettingsRequest* update_account_settings_request_;
  const ::Anki::Vector::external_interface::UpdateAccountSettingsResponse* update_account_settings_response_;
  const ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* update_user_entitlements_request_;
  const ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* update_user_entitlements_response_;
  const ::Anki::Vector::external_interface::DriveOffChargerRequest* drive_off_charger_request_;
  const ::Anki::Vector::external_interface::DriveOffChargerResponse* drive_off_charger_response_;
  const ::Anki::Vector::external_interface::DriveOnChargerRequest* drive_on_charger_request_;
  const ::Anki::Vector::external_interface::DriveOnChargerResponse* drive_on_charger_response_;
  const ::Anki::Vector::external_interface::FindFacesRequest* find_faces_request_;
  const ::Anki::Vector::external_interface::FindFacesResponse* find_faces_response_;
  const ::Anki::Vector::external_interface::LookAroundInPlaceRequest* look_around_in_place_request_;
  const ::Anki::Vector::external_interface::LookAroundInPlaceResponse* look_around_in_place_response_;
  const ::Anki::Vector::external_interface::RollBlockRequest* roll_block_request_;
  const ::Anki::Vector::external_interface::RollBlockResponse* roll_block_response_;
  const ::Anki::Vector::external_interface::EnrollFaceRequest* enroll_face_request_;
  const ::Anki::Vector::external_interface::EnrollFaceResponse* enroll_face_response_;
  const ::Anki::Vector::external_interface::SetFaceToEnrollRequest* set_face_to_enroll_request_;
  const ::Anki::Vector::external_interface::SetFaceToEnrollResponse* set_face_to_enroll_response_;
  const ::Anki::Vector::external_interface::CancelBehaviorRequest* cancel_behavior_request_;
  const ::Anki::Vector::external_interface::CancelBehaviorResponse* cancel_behavior_response_;
  const ::Anki::Vector::external_interface::TurnInPlaceRequest* turn_in_place_request_;
  const ::Anki::Vector::external_interface::TurnInPlaceResponse* turn_in_place_response_;
  const ::Anki::Vector::external_interface::DriveStraightRequest* drive_straight_request_;
  const ::Anki::Vector::external_interface::DriveStraightResponse* drive_straight_response_;
  const ::Anki::Vector::external_interface::SetHeadAngleRequest* set_head_angle_request_;
  const ::Anki::Vector::external_interface::SetHeadAngleResponse* set_head_angle_response_;
  const ::Anki::Vector::external_interface::SetLiftHeightRequest* set_lift_height_request_;
  const ::Anki::Vector::external_interface::SetLiftHeightResponse* set_lift_height_response_;
  const ::Anki::Vector::external_interface::PlayAnimationRequest* play_animation_request_;
  const ::Anki::Vector::external_interface::PlayAnimationResponse* play_animation_response_;
  const ::Anki::Vector::external_interface::GoToPoseRequest* go_to_pose_request_;
  const ::Anki::Vector::external_interface::GoToPoseResponse* go_to_pose_response_;
  const ::Anki::Vector::external_interface::DockWithCubeRequest* dock_with_cube_request_;
  const ::Anki::Vector::external_interface::DockWithCubeResponse* dock_with_cube_response_;
  const ::Anki::Vector::external_interface::DriveWheelsRequest* drive_wheels_request_;
  const ::Anki::Vector::external_interface::DriveWheelsResponse* drive_wheels_response_;
  const ::Anki::Vector::external_interface::ListAnimationsRequest* list_animations_request_;
  const ::Anki::Vector::external_interface::ListAnimationsResponse* list_animations_response_;
  const ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* play_animation_trigger_request_;
  const ::Anki::Vector::external_interface::ListAnimationTriggersRequest* list_animation_triggers_request_;
  const ::Anki::Vector::external_interface::ListAnimationTriggersResponse* list_animation_triggers_response_;
  const ::Anki::Vector::external_interface::CancelActionByIdTagRequest* cancel_action_by_id_tag_request_;
  const ::Anki::Vector::external_interface::CancelActionByIdTagResponse* cancel_action_by_id_tag_response_;
  const ::Anki::Vector::external_interface::TurnTowardsFaceRequest* turn_towards_face_request_;
  const ::Anki::Vector::external_interface::TurnTowardsFaceResponse* turn_towards_face_response_;
  const ::Anki::Vector::external_interface::GoToObjectRequest* go_to_object_request_;
  const ::Anki::Vector::external_interface::GoToObjectResponse* go_to_object_response_;
  const ::Anki::Vector::external_interface::RollObjectRequest* roll_object_request_;
  const ::Anki::Vector::external_interface::RollObjectResponse* roll_object_response_;
  const ::Anki::Vector::external_interface::PopAWheelieRequest* pop_a_wheelie_request_;
  const ::Anki::Vector::external_interface::PopAWheelieResponse* pop_a_wheelie_response_;
  const ::Anki::Vector::external_interface::PickupObjectRequest* pickup_object_request_;
  const ::Anki::Vector::external_interface::PickupObjectResponse* pickup_object_response_;
  const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* place_object_on_ground_here_request_;
  const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* place_object_on_ground_here_response_;
  const ::Anki::Vector::external_interface::StopAllMotorsRequest* stop_all_motors_request_;
  const ::Anki::Vector::external_interface::StopAllMotorsResponse* stop_all_motors_response_;
  const ::Anki::Vector::external_interface::RobotHistoryRequest* robot_history_request_;
  const ::Anki::Vector::external_interface::RobotHistoryResponse* robot_history_response_;
  const ::Anki::Vector::external_interface::ConnectCubeRequest* connect_cube_request_;
  const ::Anki::Vector::external_interface::ConnectCubeResponse* connect_cube_response_;
  const ::Anki::Vector::external_interface::DisconnectCubeRequest* disconnect_cube_request_;
  const ::Anki::Vector::external_interface::FlashCubeLightsRequest* flash_cube_lights_request_;
  const ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* forget_preferred_cube_request_;
  const ::Anki::Vector::external_interface::SetPreferredCubeRequest* set_preferred_cube_request_;
  const ::Anki::Vector::external_interface::SetCubeLightsRequest* set_cube_lights_request_;
  const ::Anki::Vector::external_interface::CubesAvailableRequest* cubes_available_request_;
  const ::Anki::Vector::external_interface::CubesAvailableResponse* cubes_available_response_;
  const ::Anki::Vector::external_interface::BatteryStateRequest* battery_state_request_;
  const ::Anki::Vector::external_interface::BatteryStateResponse* battery_state_response_;
  const ::Anki::Vector::external_interface::VersionStateRequest* version_state_request_;
  const ::Anki::Vector::external_interface::VersionStateResponse* version_state_response_;
  const ::Anki::Vector::external_interface::SayTextRequest* say_text_request_;
  const ::Anki::Vector::external_interface::SayTextResponse* say_text_response_;
  const ::Anki::Vector::external_interface::ControlRequest* control_request_;
  const ::Anki::Vector::external_interface::ControlRelease* control_release_;
  const ::Anki::Vector::external_interface::BehaviorControlResponse* behavior_control_response_;
  const ::Anki::Vector::external_interface::ImageChunk* image_chunk_;
  const ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* enable_marker_detection_request_;
  const ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* enable_marker_detection_response_;
  const ::Anki::Vector::external_interface::EnableFaceDetectionRequest* enable_face_detection_request_;
  const ::Anki::Vector::external_interface::EnableFaceDetectionResponse* enable_face_detection_response_;
  const ::Anki::Vector::external_interface::EnableMotionDetectionRequest* enable_motion_detection_request_;
  const ::Anki::Vector::external_interface::EnableMotionDetectionResponse* enable_motion_detection_response_;
  const ::Anki::Vector::external_interface::EnableMirrorModeRequest* enable_mirror_mode_request_;
  const ::Anki::Vector::external_interface::EnableMirrorModeResponse* enable_mirror_mode_response_;
  const ::Anki::Vector::external_interface::EnableImageStreamingRequest* enable_image_streaming_request_;
  const ::Anki::Vector::external_interface::EnableImageStreamingResponse* enable_image_streaming_response_;
  const ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* is_image_streaming_enabled_request_;
  const ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* is_image_streaming_enabled_response_;
  const ::Anki::Vector::external_interface::CheckCloudRequest* check_cloud_request_;
  const ::Anki::Vector::external_interface::CheckCloudResponse* check_cloud_response_;
  const ::Anki::Vector::external_interface::AudioSendModeRequest* audio_send_mode_request_;
  const ::Anki::Vector::external_interface::AudioSendModeChanged* audio_send_mode_changed_;
  const ::Anki::Vector::external_interface::AudioChunk* audio_chunk_;
  const ::Anki::Vector::external_interface::FeatureFlagRequest* feature_flag_request_;
  const ::Anki::Vector::external_interface::FeatureFlagResponse* feature_flag_response_;
  const ::Anki::Vector::external_interface::FeatureFlagListRequest* feature_flag_list_request_;
  const ::Anki::Vector::external_interface::FeatureFlagListResponse* feature_flag_list_response_;
  const ::Anki::Vector::external_interface::AppDisconnected* app_disconnected_;
  const ::Anki::Vector::external_interface::AlexaAuthStateRequest* alexa_auth_state_request_;
  const ::Anki::Vector::external_interface::AlexaAuthStateResponse* alexa_auth_state_response_;
  const ::Anki::Vector::external_interface::AlexaOptInRequest* alexa_opt_in_request_;
  const ::Anki::Vector::external_interface::AlexaOptInResponse* alexa_opt_in_response_;
  const ::Anki::Vector::external_interface::SetEyeColorRequest* set_eye_color_request_;
  const ::Anki::Vector::external_interface::SetEyeColorResponse* set_eye_color_response_;
  const ::Anki::Vector::external_interface::MasterVolumeRequest* master_volume_request_;
  const ::Anki::Vector::external_interface::MasterVolumeResponse* master_volume_response_;
  const ::Anki::Vector::external_interface::SetCameraSettingsRequest* set_camera_settings_request_;
  const ::Anki::Vector::external_interface::SetCameraSettingsResponse* set_camera_settings_response_;
  const ::Anki::Vector::external_interface::CameraConfigRequest* camera_config_request_;
  const ::Anki::Vector::external_interface::CameraConfigResponse* camera_config_response_;
  const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* external_audio_stream_prepare_;
  const ::Anki::Vector::external_interface::ExternalAudioStreamChunk* external_audio_stream_chunk_;
  const ::Anki::Vector::external_interface::ExternalAudioStreamCancel* external_audio_stream_cancel_;
  const ::Anki::Vector::external_interface::ExternalAudioStreamComplete* external_audio_stream_complete_;
  const ::Anki::Vector::external_interface::ExternalAudioStreamResponse* external_audio_stream_response_;
} _GatewayWrapper_default_instance_;
}  // namespace external_interface
}  // namespace Vector
}  // namespace Anki
static void InitDefaultsscc_info_ConnectionResponse_shared_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

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

static void InitDefaultsscc_info_Event_shared_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<24> scc_info_Event_shared_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 24, 0, InitDefaultsscc_info_Event_shared_2eproto}, {
      &scc_info_TimeStampedStatus_messages_2eproto.base,
      &scc_info_Onboarding_messages_2eproto.base,
      &scc_info_WakeWord_messages_2eproto.base,
      &scc_info_AttentionTransfer_messages_2eproto.base,
      &scc_info_RobotObservedFace_messages_2eproto.base,
      &scc_info_RobotChangedObservedFaceID_messages_2eproto.base,
      &scc_info_ObjectEvent_cube_2eproto.base,
      &scc_info_StimulationInfo_messages_2eproto.base,
      &scc_info_PhotoTaken_messages_2eproto.base,
      &scc_info_RobotState_messages_2eproto.base,
      &scc_info_CubeBattery_messages_2eproto.base,
      &scc_info_KeepAlivePing_messages_2eproto.base,
      &scc_info_ConnectionResponse_shared_2eproto.base,
      &scc_info_JdocsChanged_settings_2eproto.base,
      &scc_info_AlexaAuthEvent_alexa_2eproto.base,
      &scc_info_MirrorModeDisabled_messages_2eproto.base,
      &scc_info_VisionModesAutoDisabled_messages_2eproto.base,
      &scc_info_CheckUpdateStatusResponse_messages_2eproto.base,
      &scc_info_UserIntent_messages_2eproto.base,
      &scc_info_RobotObservedMotion_messages_2eproto.base,
      &scc_info_RobotErasedEnrolledFace_messages_2eproto.base,
      &scc_info_RobotRenamedEnrolledFace_messages_2eproto.base,
      &scc_info_CameraSettingsUpdate_messages_2eproto.base,
      &scc_info_UnexpectedMovement_messages_2eproto.base,}};

static void InitDefaultsscc_info_EventRequest_shared_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EventRequest_shared_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EventRequest_shared_2eproto}, {
      &scc_info_FilterList_shared_2eproto.base,}};

static void InitDefaultsscc_info_EventResponse_shared_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_EventResponse_shared_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_EventResponse_shared_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_Event_shared_2eproto.base,}};

static void InitDefaultsscc_info_FilterList_shared_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

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

static void InitDefaultsscc_info_GatewayWrapper_shared_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<149> scc_info_GatewayWrapper_shared_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 149, 0, InitDefaultsscc_info_GatewayWrapper_shared_2eproto}, {
      &scc_info_Event_shared_2eproto.base,
      &scc_info_OnboardingStateRequest_messages_2eproto.base,
      &scc_info_OnboardingState_messages_2eproto.base,
      &scc_info_OnboardingSkipOnboarding_messages_2eproto.base,
      &scc_info_OnboardingRestart_messages_2eproto.base,
      &scc_info_OnboardingCompleteRequest_messages_2eproto.base,
      &scc_info_OnboardingCompleteResponse_messages_2eproto.base,
      &scc_info_OnboardingWakeUpRequest_messages_2eproto.base,
      &scc_info_OnboardingWakeUpResponse_messages_2eproto.base,
      &scc_info_OnboardingWakeUpStartedRequest_messages_2eproto.base,
      &scc_info_OnboardingWakeUpStartedResponse_messages_2eproto.base,
      &scc_info_OnboardingSetPhaseRequest_messages_2eproto.base,
      &scc_info_OnboardingSetPhaseResponse_messages_2eproto.base,
      &scc_info_OnboardingPhaseProgressRequest_messages_2eproto.base,
      &scc_info_OnboardingPhaseProgressResponse_messages_2eproto.base,
      &scc_info_OnboardingChargeInfoRequest_messages_2eproto.base,
      &scc_info_OnboardingChargeInfoResponse_messages_2eproto.base,
      &scc_info_OnboardingMarkCompleteAndExit_messages_2eproto.base,
      &scc_info_LatestAttentionTransferRequest_messages_2eproto.base,
      &scc_info_LatestAttentionTransfer_messages_2eproto.base,
      &scc_info_PhotosInfoRequest_messages_2eproto.base,
      &scc_info_PhotosInfoResponse_messages_2eproto.base,
      &scc_info_PhotoRequest_messages_2eproto.base,
      &scc_info_PhotoPathMessage_messages_2eproto.base,
      &scc_info_ThumbnailRequest_messages_2eproto.base,
      &scc_info_ThumbnailPathMessage_messages_2eproto.base,
      &scc_info_DeletePhotoRequest_messages_2eproto.base,
      &scc_info_DeletePhotoResponse_messages_2eproto.base,
      &scc_info_PullJdocsRequest_settings_2eproto.base,
      &scc_info_PullJdocsResponse_settings_2eproto.base,
      &scc_info_UpdateSettingsRequest_settings_2eproto.base,
      &scc_info_UpdateSettingsResponse_settings_2eproto.base,
      &scc_info_UpdateAccountSettingsRequest_settings_2eproto.base,
      &scc_info_UpdateAccountSettingsResponse_settings_2eproto.base,
      &scc_info_UpdateUserEntitlementsRequest_settings_2eproto.base,
      &scc_info_UpdateUserEntitlementsResponse_settings_2eproto.base,
      &scc_info_DriveOffChargerRequest_messages_2eproto.base,
      &scc_info_DriveOffChargerResponse_messages_2eproto.base,
      &scc_info_DriveOnChargerRequest_messages_2eproto.base,
      &scc_info_DriveOnChargerResponse_messages_2eproto.base,
      &scc_info_FindFacesRequest_messages_2eproto.base,
      &scc_info_FindFacesResponse_messages_2eproto.base,
      &scc_info_LookAroundInPlaceRequest_messages_2eproto.base,
      &scc_info_LookAroundInPlaceResponse_messages_2eproto.base,
      &scc_info_RollBlockRequest_messages_2eproto.base,
      &scc_info_RollBlockResponse_messages_2eproto.base,
      &scc_info_EnrollFaceRequest_messages_2eproto.base,
      &scc_info_EnrollFaceResponse_messages_2eproto.base,
      &scc_info_SetFaceToEnrollRequest_messages_2eproto.base,
      &scc_info_SetFaceToEnrollResponse_messages_2eproto.base,
      &scc_info_CancelBehaviorRequest_messages_2eproto.base,
      &scc_info_CancelBehaviorResponse_messages_2eproto.base,
      &scc_info_TurnInPlaceRequest_messages_2eproto.base,
      &scc_info_TurnInPlaceResponse_messages_2eproto.base,
      &scc_info_DriveStraightRequest_messages_2eproto.base,
      &scc_info_DriveStraightResponse_messages_2eproto.base,
      &scc_info_SetHeadAngleRequest_messages_2eproto.base,
      &scc_info_SetHeadAngleResponse_messages_2eproto.base,
      &scc_info_SetLiftHeightRequest_messages_2eproto.base,
      &scc_info_SetLiftHeightResponse_messages_2eproto.base,
      &scc_info_PlayAnimationRequest_messages_2eproto.base,
      &scc_info_PlayAnimationResponse_messages_2eproto.base,
      &scc_info_GoToPoseRequest_messages_2eproto.base,
      &scc_info_GoToPoseResponse_messages_2eproto.base,
      &scc_info_DockWithCubeRequest_messages_2eproto.base,
      &scc_info_DockWithCubeResponse_messages_2eproto.base,
      &scc_info_DriveWheelsRequest_messages_2eproto.base,
      &scc_info_DriveWheelsResponse_messages_2eproto.base,
      &scc_info_ListAnimationsRequest_messages_2eproto.base,
      &scc_info_ListAnimationsResponse_messages_2eproto.base,
      &scc_info_PlayAnimationTriggerRequest_messages_2eproto.base,
      &scc_info_ListAnimationTriggersRequest_messages_2eproto.base,
      &scc_info_ListAnimationTriggersResponse_messages_2eproto.base,
      &scc_info_CancelActionByIdTagRequest_messages_2eproto.base,
      &scc_info_CancelActionByIdTagResponse_messages_2eproto.base,
      &scc_info_TurnTowardsFaceRequest_messages_2eproto.base,
      &scc_info_TurnTowardsFaceResponse_messages_2eproto.base,
      &scc_info_GoToObjectRequest_messages_2eproto.base,
      &scc_info_GoToObjectResponse_messages_2eproto.base,
      &scc_info_RollObjectRequest_messages_2eproto.base,
      &scc_info_RollObjectResponse_messages_2eproto.base,
      &scc_info_PopAWheelieRequest_messages_2eproto.base,
      &scc_info_PopAWheelieResponse_messages_2eproto.base,
      &scc_info_PickupObjectRequest_messages_2eproto.base,
      &scc_info_PickupObjectResponse_messages_2eproto.base,
      &scc_info_PlaceObjectOnGroundHereRequest_messages_2eproto.base,
      &scc_info_PlaceObjectOnGroundHereResponse_messages_2eproto.base,
      &scc_info_StopAllMotorsRequest_messages_2eproto.base,
      &scc_info_StopAllMotorsResponse_messages_2eproto.base,
      &scc_info_RobotHistoryRequest_messages_2eproto.base,
      &scc_info_RobotHistoryResponse_messages_2eproto.base,
      &scc_info_ConnectCubeRequest_cube_2eproto.base,
      &scc_info_ConnectCubeResponse_cube_2eproto.base,
      &scc_info_DisconnectCubeRequest_cube_2eproto.base,
      &scc_info_FlashCubeLightsRequest_cube_2eproto.base,
      &scc_info_ForgetPreferredCubeRequest_cube_2eproto.base,
      &scc_info_SetPreferredCubeRequest_cube_2eproto.base,
      &scc_info_SetCubeLightsRequest_cube_2eproto.base,
      &scc_info_CubesAvailableRequest_cube_2eproto.base,
      &scc_info_CubesAvailableResponse_cube_2eproto.base,
      &scc_info_BatteryStateRequest_messages_2eproto.base,
      &scc_info_BatteryStateResponse_messages_2eproto.base,
      &scc_info_VersionStateRequest_messages_2eproto.base,
      &scc_info_VersionStateResponse_messages_2eproto.base,
      &scc_info_SayTextRequest_messages_2eproto.base,
      &scc_info_SayTextResponse_messages_2eproto.base,
      &scc_info_ControlRequest_behavior_2eproto.base,
      &scc_info_ControlRelease_behavior_2eproto.base,
      &scc_info_BehaviorControlResponse_behavior_2eproto.base,
      &scc_info_ImageChunk_messages_2eproto.base,
      &scc_info_EnableMarkerDetectionRequest_messages_2eproto.base,
      &scc_info_EnableMarkerDetectionResponse_messages_2eproto.base,
      &scc_info_EnableFaceDetectionRequest_messages_2eproto.base,
      &scc_info_EnableFaceDetectionResponse_messages_2eproto.base,
      &scc_info_EnableMotionDetectionRequest_messages_2eproto.base,
      &scc_info_EnableMotionDetectionResponse_messages_2eproto.base,
      &scc_info_EnableMirrorModeRequest_messages_2eproto.base,
      &scc_info_EnableMirrorModeResponse_messages_2eproto.base,
      &scc_info_EnableImageStreamingRequest_messages_2eproto.base,
      &scc_info_EnableImageStreamingResponse_messages_2eproto.base,
      &scc_info_IsImageStreamingEnabledRequest_messages_2eproto.base,
      &scc_info_IsImageStreamingEnabledResponse_messages_2eproto.base,
      &scc_info_CheckCloudRequest_messages_2eproto.base,
      &scc_info_CheckCloudResponse_messages_2eproto.base,
      &scc_info_AudioSendModeRequest_messages_2eproto.base,
      &scc_info_AudioSendModeChanged_messages_2eproto.base,
      &scc_info_AudioChunk_messages_2eproto.base,
      &scc_info_FeatureFlagRequest_messages_2eproto.base,
      &scc_info_FeatureFlagResponse_messages_2eproto.base,
      &scc_info_FeatureFlagListRequest_messages_2eproto.base,
      &scc_info_FeatureFlagListResponse_messages_2eproto.base,
      &scc_info_AppDisconnected_messages_2eproto.base,
      &scc_info_AlexaAuthStateRequest_alexa_2eproto.base,
      &scc_info_AlexaAuthStateResponse_alexa_2eproto.base,
      &scc_info_AlexaOptInRequest_alexa_2eproto.base,
      &scc_info_AlexaOptInResponse_alexa_2eproto.base,
      &scc_info_SetEyeColorRequest_messages_2eproto.base,
      &scc_info_SetEyeColorResponse_messages_2eproto.base,
      &scc_info_MasterVolumeRequest_messages_2eproto.base,
      &scc_info_MasterVolumeResponse_messages_2eproto.base,
      &scc_info_SetCameraSettingsRequest_messages_2eproto.base,
      &scc_info_SetCameraSettingsResponse_messages_2eproto.base,
      &scc_info_CameraConfigRequest_messages_2eproto.base,
      &scc_info_CameraConfigResponse_messages_2eproto.base,
      &scc_info_ExternalAudioStreamPrepare_messages_2eproto.base,
      &scc_info_ExternalAudioStreamChunk_messages_2eproto.base,
      &scc_info_ExternalAudioStreamCancel_messages_2eproto.base,
      &scc_info_ExternalAudioStreamComplete_messages_2eproto.base,
      &scc_info_ExternalAudioStreamResponse_messages_2eproto.base,}};

static void InitDefaultsscc_info_ProtocolVersionRequest_shared_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

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

static void InitDefaultsscc_info_ProtocolVersionResponse_shared_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

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

static void InitDefaultsscc_info_UserAuthenticationRequest_shared_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

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

static void InitDefaultsscc_info_UserAuthenticationResponse_shared_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

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

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

static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_shared_2eproto[10];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_shared_2eproto[2];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_shared_2eproto = nullptr;

const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_shared_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ProtocolVersionRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ProtocolVersionRequest, client_version_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ProtocolVersionRequest, min_host_version_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ProtocolVersionResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ProtocolVersionResponse, result_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ProtocolVersionResponse, host_version_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ConnectionResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ConnectionResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ConnectionResponse, is_primary_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Event, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Event, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, time_stamped_status_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, onboarding_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, wake_word_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, attention_transfer_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, robot_observed_face_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, robot_changed_observed_face_id_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, object_event_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, stimulation_info_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, photo_taken_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, robot_state_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, cube_battery_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, keep_alive_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, connection_response_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, jdocs_changed_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, alexa_auth_event_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, mirror_mode_disabled_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, vision_modes_auto_disabled_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, check_update_status_response_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, user_intent_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, robot_observed_motion_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, robot_erased_enrolled_face_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, robot_renamed_enrolled_face_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, camera_settings_update_),
  offsetof(::Anki::Vector::external_interface::EventDefaultTypeInternal, unexpected_movement_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Event, event_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FilterList, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FilterList, list_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EventRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EventRequest, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::Anki::Vector::external_interface::EventRequestDefaultTypeInternal, white_list_),
  offsetof(::Anki::Vector::external_interface::EventRequestDefaultTypeInternal, black_list_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EventRequest, connection_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EventRequest, list_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EventResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EventResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EventResponse, event_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UserAuthenticationRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UserAuthenticationRequest, user_session_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UserAuthenticationRequest, client_name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UserAuthenticationResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UserAuthenticationResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UserAuthenticationResponse, code_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UserAuthenticationResponse, client_token_guid_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GatewayWrapper, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GatewayWrapper, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GatewayWrapper, connection_id_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, event_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_state_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_state_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_skip_onboarding_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_restart_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_complete_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_complete_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_wake_up_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_wake_up_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_wake_up_started_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_wake_up_started_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_set_phase_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_set_phase_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_phase_progress_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_phase_progress_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_charge_info_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_charge_info_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, onboarding_mark_complete_and_exit_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, latest_attention_transfer_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, latest_attention_transfer_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, photos_info_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, photos_info_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, photo_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, photo_path_message_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, thumbnail_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, thumbnail_path_message_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, delete_photo_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, delete_photo_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, pull_jdocs_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, pull_jdocs_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, update_settings_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, update_settings_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, update_account_settings_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, update_account_settings_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, update_user_entitlements_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, update_user_entitlements_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, drive_off_charger_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, drive_off_charger_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, drive_on_charger_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, drive_on_charger_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, find_faces_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, find_faces_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, look_around_in_place_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, look_around_in_place_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, roll_block_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, roll_block_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, enroll_face_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, enroll_face_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, set_face_to_enroll_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, set_face_to_enroll_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, cancel_behavior_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, cancel_behavior_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, turn_in_place_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, turn_in_place_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, drive_straight_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, drive_straight_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, set_head_angle_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, set_head_angle_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, set_lift_height_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, set_lift_height_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, play_animation_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, play_animation_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, go_to_pose_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, go_to_pose_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, dock_with_cube_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, dock_with_cube_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, drive_wheels_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, drive_wheels_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, list_animations_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, list_animations_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, play_animation_trigger_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, list_animation_triggers_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, list_animation_triggers_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, cancel_action_by_id_tag_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, cancel_action_by_id_tag_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, turn_towards_face_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, turn_towards_face_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, go_to_object_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, go_to_object_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, roll_object_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, roll_object_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, pop_a_wheelie_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, pop_a_wheelie_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, pickup_object_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, pickup_object_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, place_object_on_ground_here_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, place_object_on_ground_here_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, stop_all_motors_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, stop_all_motors_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, robot_history_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, robot_history_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, connect_cube_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, connect_cube_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, disconnect_cube_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, flash_cube_lights_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, forget_preferred_cube_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, set_preferred_cube_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, set_cube_lights_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, cubes_available_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, cubes_available_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, battery_state_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, battery_state_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, version_state_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, version_state_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, say_text_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, say_text_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, control_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, control_release_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, behavior_control_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, image_chunk_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, enable_marker_detection_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, enable_marker_detection_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, enable_face_detection_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, enable_face_detection_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, enable_motion_detection_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, enable_motion_detection_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, enable_mirror_mode_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, enable_mirror_mode_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, enable_image_streaming_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, enable_image_streaming_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, is_image_streaming_enabled_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, is_image_streaming_enabled_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, check_cloud_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, check_cloud_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, audio_send_mode_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, audio_send_mode_changed_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, audio_chunk_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, feature_flag_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, feature_flag_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, feature_flag_list_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, feature_flag_list_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, app_disconnected_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, alexa_auth_state_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, alexa_auth_state_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, alexa_opt_in_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, alexa_opt_in_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, set_eye_color_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, set_eye_color_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, master_volume_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, master_volume_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, set_camera_settings_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, set_camera_settings_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, camera_config_request_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, camera_config_response_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, external_audio_stream_prepare_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, external_audio_stream_chunk_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, external_audio_stream_cancel_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, external_audio_stream_complete_),
  offsetof(::Anki::Vector::external_interface::GatewayWrapperDefaultTypeInternal, external_audio_stream_response_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GatewayWrapper, oneof_message_type_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::Anki::Vector::external_interface::ProtocolVersionRequest)},
  { 7, -1, sizeof(::Anki::Vector::external_interface::ProtocolVersionResponse)},
  { 14, -1, sizeof(::Anki::Vector::external_interface::ConnectionResponse)},
  { 21, -1, sizeof(::Anki::Vector::external_interface::Event)},
  { 51, -1, sizeof(::Anki::Vector::external_interface::FilterList)},
  { 57, -1, sizeof(::Anki::Vector::external_interface::EventRequest)},
  { 66, -1, sizeof(::Anki::Vector::external_interface::EventResponse)},
  { 73, -1, sizeof(::Anki::Vector::external_interface::UserAuthenticationRequest)},
  { 80, -1, sizeof(::Anki::Vector::external_interface::UserAuthenticationResponse)},
  { 88, -1, sizeof(::Anki::Vector::external_interface::GatewayWrapper)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ProtocolVersionRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ProtocolVersionResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ConnectionResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_Event_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_FilterList_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EventRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EventResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UserAuthenticationRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UserAuthenticationResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_GatewayWrapper_default_instance_),
};

const char descriptor_table_protodef_shared_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\014shared.proto\022\036Anki.Vector.external_int"
  "erface\032\016behavior.proto\032\ncube.proto\032\013alex"
  "a.proto\032\016messages.proto\032\016settings.proto\032"
  "\020extensions.proto\032\025response_status.proto"
  "\"J\n\026ProtocolVersionRequest\022\026\n\016client_ver"
  "sion\030\001 \001(\003\022\030\n\020min_host_version\030\002 \001(\003\"\247\001\n"
  "\027ProtocolVersionResponse\022N\n\006result\030\001 \001(\016"
  "2>.Anki.Vector.external_interface.Protoc"
  "olVersionResponse.Result\022\024\n\014host_version"
  "\030\002 \001(\003\"&\n\006Result\022\017\n\013UNSUPPORTED\020\000\022\013\n\007SUC"
  "CESS\020\001\"h\n\022ConnectionResponse\022>\n\006status\030\001"
  " \001(\0132..Anki.Vector.external_interface.Re"
  "sponseStatus\022\022\n\nis_primary\030\002 \001(\010\"\223\017\n\005Eve"
  "nt\022P\n\023time_stamped_status\030\001 \001(\01321.Anki.V"
  "ector.external_interface.TimeStampedStat"
  "usH\000\022@\n\nonboarding\030\002 \001(\0132*.Anki.Vector.e"
  "xternal_interface.OnboardingH\000\022=\n\twake_w"
  "ord\030\003 \001(\0132(.Anki.Vector.external_interfa"
  "ce.WakeWordH\000\022O\n\022attention_transfer\030\004 \001("
  "\01321.Anki.Vector.external_interface.Atten"
  "tionTransferH\000\022P\n\023robot_observed_face\030\005 "
  "\001(\01321.Anki.Vector.external_interface.Rob"
  "otObservedFaceH\000\022d\n\036robot_changed_observ"
  "ed_face_id\030\006 \001(\0132:.Anki.Vector.external_"
  "interface.RobotChangedObservedFaceIDH\000\022C"
  "\n\014object_event\030\007 \001(\0132+.Anki.Vector.exter"
  "nal_interface.ObjectEventH\000\022K\n\020stimulati"
  "on_info\030\010 \001(\0132/.Anki.Vector.external_int"
  "erface.StimulationInfoH\000\022A\n\013photo_taken\030"
  "\t \001(\0132*.Anki.Vector.external_interface.P"
  "hotoTakenH\000\022A\n\013robot_state\030\n \001(\0132*.Anki."
  "Vector.external_interface.RobotStateH\000\022C"
  "\n\014cube_battery\030\013 \001(\0132+.Anki.Vector.exter"
  "nal_interface.CubeBatteryH\000\022C\n\nkeep_aliv"
  "e\030\014 \001(\0132-.Anki.Vector.external_interface"
  ".KeepAlivePingH\000\022Q\n\023connection_response\030"
  "\r \001(\01322.Anki.Vector.external_interface.C"
  "onnectionResponseH\000\022E\n\rjdocs_changed\030\016 \001"
  "(\0132,.Anki.Vector.external_interface.Jdoc"
  "sChangedH\000\022J\n\020alexa_auth_event\030\017 \001(\0132..A"
  "nki.Vector.external_interface.AlexaAuthE"
  "ventH\000\022R\n\024mirror_mode_disabled\030\020 \001(\01322.A"
  "nki.Vector.external_interface.MirrorMode"
  "DisabledH\000\022]\n\032vision_modes_auto_disabled"
  "\030\021 \001(\01327.Anki.Vector.external_interface."
  "VisionModesAutoDisabledH\000\022a\n\034check_updat"
  "e_status_response\030\022 \001(\01329.Anki.Vector.ex"
  "ternal_interface.CheckUpdateStatusRespon"
  "seH\000\022A\n\013user_intent\030\023 \001(\0132*.Anki.Vector."
  "external_interface.UserIntentH\000\022T\n\025robot"
  "_observed_motion\030\024 \001(\01323.Anki.Vector.ext"
  "ernal_interface.RobotObservedMotionH\000\022]\n"
  "\032robot_erased_enrolled_face\030\025 \001(\01327.Anki"
  ".Vector.external_interface.RobotErasedEn"
  "rolledFaceH\000\022_\n\033robot_renamed_enrolled_f"
  "ace\030\026 \001(\01328.Anki.Vector.external_interfa"
  "ce.RobotRenamedEnrolledFaceH\000\022V\n\026camera_"
  "settings_update\030\027 \001(\01324.Anki.Vector.exte"
  "rnal_interface.CameraSettingsUpdateH\000\022Q\n"
  "\023unexpected_movement\030\030 \001(\01322.Anki.Vector"
  ".external_interface.UnexpectedMovementH\000"
  "B\014\n\nevent_type\"\032\n\nFilterList\022\014\n\004list\030\001 \003"
  "(\t\"\266\001\n\014EventRequest\022@\n\nwhite_list\030\001 \001(\0132"
  "*.Anki.Vector.external_interface.FilterL"
  "istH\000\022@\n\nblack_list\030\002 \001(\0132*.Anki.Vector."
  "external_interface.FilterListH\000\022\025\n\rconne"
  "ction_id\030\003 \001(\tB\013\n\tlist_type\"\213\001\n\rEventRes"
  "ponse\022>\n\006status\030\001 \001(\0132..Anki.Vector.exte"
  "rnal_interface.ResponseStatus\0224\n\005event\030\002"
  " \001(\0132%.Anki.Vector.external_interface.Ev"
  "ent:\004\200\246\035\001\"I\n\031UserAuthenticationRequest\022\027"
  "\n\017user_session_id\030\001 \001(\014\022\023\n\013client_name\030\002"
  " \001(\014\"\360\001\n\032UserAuthenticationResponse\022>\n\006s"
  "tatus\030\001 \001(\0132..Anki.Vector.external_inter"
  "face.ResponseStatus\022M\n\004code\030\002 \001(\0162\?.Anki"
  ".Vector.external_interface.UserAuthentic"
  "ationResponse.Code\022\031\n\021client_token_guid\030"
  "\003 \001(\014\"(\n\004Code\022\020\n\014UNAUTHORIZED\020\000\022\016\n\nAUTHO"
  "RIZED\020\001\"\222l\n\016GatewayWrapper\022\025\n\rconnection"
  "_id\030\001 \001(\004\0226\n\005event\030\002 \001(\0132%.Anki.Vector.e"
  "xternal_interface.EventH\000\022Z\n\030onboarding_"
  "state_request\030\003 \001(\01326.Anki.Vector.extern"
  "al_interface.OnboardingStateRequestH\000\022K\n"
  "\020onboarding_state\030\004 \001(\0132/.Anki.Vector.ex"
  "ternal_interface.OnboardingStateH\000\022^\n\032on"
  "boarding_skip_onboarding\030\005 \001(\01328.Anki.Ve"
  "ctor.external_interface.OnboardingSkipOn"
  "boardingH\000\022O\n\022onboarding_restart\030\006 \001(\01321"
  ".Anki.Vector.external_interface.Onboardi"
  "ngRestartH\000\022`\n\033onboarding_complete_reque"
  "st\030\013 \001(\01329.Anki.Vector.external_interfac"
  "e.OnboardingCompleteRequestH\000\022b\n\034onboard"
  "ing_complete_response\030\014 \001(\0132:.Anki.Vecto"
  "r.external_interface.OnboardingCompleteR"
  "esponseH\000\022]\n\032onboarding_wake_up_request\030"
  "\r \001(\01327.Anki.Vector.external_interface.O"
  "nboardingWakeUpRequestH\000\022_\n\033onboarding_w"
  "ake_up_response\030\016 \001(\01328.Anki.Vector.exte"
  "rnal_interface.OnboardingWakeUpResponseH"
  "\000\022l\n\"onboarding_wake_up_started_request\030"
  "\017 \001(\0132>.Anki.Vector.external_interface.O"
  "nboardingWakeUpStartedRequestH\000\022n\n#onboa"
  "rding_wake_up_started_response\030\020 \001(\0132\?.A"
  "nki.Vector.external_interface.Onboarding"
  "WakeUpStartedResponseH\000\022a\n\034onboarding_se"
  "t_phase_request\030\021 \001(\01329.Anki.Vector.exte"
  "rnal_interface.OnboardingSetPhaseRequest"
  "H\000\022c\n\035onboarding_set_phase_response\030\022 \001("
  "\0132:.Anki.Vector.external_interface.Onboa"
  "rdingSetPhaseResponseH\000\022k\n!onboarding_ph"
  "ase_progress_request\030\023 \001(\0132>.Anki.Vector"
  ".external_interface.OnboardingPhaseProgr"
  "essRequestH\000\022m\n\"onboarding_phase_progres"
  "s_response\030\024 \001(\0132\?.Anki.Vector.external_"
  "interface.OnboardingPhaseProgressRespons"
  "eH\000\022e\n\036onboarding_charge_info_request\030\025 "
  "\001(\0132;.Anki.Vector.external_interface.Onb"
  "oardingChargeInfoRequestH\000\022g\n\037onboarding"
  "_charge_info_response\030\026 \001(\0132<.Anki.Vecto"
  "r.external_interface.OnboardingChargeInf"
  "oResponseH\000\022j\n!onboarding_mark_complete_"
  "and_exit\030\027 \001(\0132=.Anki.Vector.external_in"
  "terface.OnboardingMarkCompleteAndExitH\000\022"
  "k\n!latest_attention_transfer_request\030d \001"
  "(\0132>.Anki.Vector.external_interface.Late"
  "stAttentionTransferRequestH\000\022\\\n\031latest_a"
  "ttention_transfer\030e \001(\01327.Anki.Vector.ex"
  "ternal_interface.LatestAttentionTransfer"
  "H\000\022Q\n\023photos_info_request\030\310\001 \001(\01321.Anki."
  "Vector.external_interface.PhotosInfoRequ"
  "estH\000\022S\n\024photos_info_response\030\311\001 \001(\01322.A"
  "nki.Vector.external_interface.PhotosInfo"
  "ResponseH\000\022F\n\rphoto_request\030\312\001 \001(\0132,.Ank"
  "i.Vector.external_interface.PhotoRequest"
  "H\000\022O\n\022photo_path_message\030\313\001 \001(\01320.Anki.V"
  "ector.external_interface.PhotoPathMessag"
  "eH\000\022N\n\021thumbnail_request\030\314\001 \001(\01320.Anki.V"
  "ector.external_interface.ThumbnailReques"
  "tH\000\022W\n\026thumbnail_path_message\030\315\001 \001(\01324.A"
  "nki.Vector.external_interface.ThumbnailP"
  "athMessageH\000\022S\n\024delete_photo_request\030\316\001 "
  "\001(\01322.Anki.Vector.external_interface.Del"
  "etePhotoRequestH\000\022U\n\025delete_photo_respon"
  "se\030\317\001 \001(\01323.Anki.Vector.external_interfa"
  "ce.DeletePhotoResponseH\000\022O\n\022pull_jdocs_r"
  "equest\030\254\002 \001(\01320.Anki.Vector.external_int"
  "erface.PullJdocsRequestH\000\022Q\n\023pull_jdocs_"
  "response\030\255\002 \001(\01321.Anki.Vector.external_i"
  "nterface.PullJdocsResponseH\000\022Y\n\027update_s"
  "ettings_request\030\256\002 \001(\01325.Anki.Vector.ext"
  "ernal_interface.UpdateSettingsRequestH\000\022"
  "[\n\030update_settings_response\030\257\002 \001(\01326.Ank"
  "i.Vector.external_interface.UpdateSettin"
  "gsResponseH\000\022h\n\037update_account_settings_"
  "request\030\260\002 \001(\0132<.Anki.Vector.external_in"
  "terface.UpdateAccountSettingsRequestH\000\022j"
  "\n update_account_settings_response\030\261\002 \001("
  "\0132=.Anki.Vector.external_interface.Updat"
  "eAccountSettingsResponseH\000\022j\n update_use"
  "r_entitlements_request\030\262\002 \001(\0132=.Anki.Vec"
  "tor.external_interface.UpdateUserEntitle"
  "mentsRequestH\000\022l\n!update_user_entitlemen"
  "ts_response\030\263\002 \001(\0132>.Anki.Vector.externa"
  "l_interface.UpdateUserEntitlementsRespon"
  "seH\000\022\\\n\031drive_off_charger_request\030\220\003 \001(\013"
  "26.Anki.Vector.external_interface.DriveO"
  "ffChargerRequestH\000\022^\n\032drive_off_charger_"
  "response\030\221\003 \001(\01327.Anki.Vector.external_i"
  "nterface.DriveOffChargerResponseH\000\022Z\n\030dr"
  "ive_on_charger_request\030\222\003 \001(\01325.Anki.Vec"
  "tor.external_interface.DriveOnChargerReq"
  "uestH\000\022\\\n\031drive_on_charger_response\030\223\003 \001"
  "(\01326.Anki.Vector.external_interface.Driv"
  "eOnChargerResponseH\000\022O\n\022find_faces_reque"
  "st\030\224\003 \001(\01320.Anki.Vector.external_interfa"
  "ce.FindFacesRequestH\000\022Q\n\023find_faces_resp"
  "onse\030\225\003 \001(\01321.Anki.Vector.external_inter"
  "face.FindFacesResponseH\000\022a\n\034look_around_"
  "in_place_request\030\226\003 \001(\01328.Anki.Vector.ex"
  "ternal_interface.LookAroundInPlaceReques"
  "tH\000\022c\n\035look_around_in_place_response\030\227\003 "
  "\001(\01329.Anki.Vector.external_interface.Loo"
  "kAroundInPlaceResponseH\000\022O\n\022roll_block_r"
  "equest\030\230\003 \001(\01320.Anki.Vector.external_int"
  "erface.RollBlockRequestH\000\022Q\n\023roll_block_"
  "response\030\231\003 \001(\01321.Anki.Vector.external_i"
  "nterface.RollBlockResponseH\000\022Q\n\023enroll_f"
  "ace_request\030\232\003 \001(\01321.Anki.Vector.externa"
  "l_interface.EnrollFaceRequestH\000\022S\n\024enrol"
  "l_face_response\030\233\003 \001(\01322.Anki.Vector.ext"
  "ernal_interface.EnrollFaceResponseH\000\022]\n\032"
  "set_face_to_enroll_request\030\234\003 \001(\01326.Anki"
  ".Vector.external_interface.SetFaceToEnro"
  "llRequestH\000\022_\n\033set_face_to_enroll_respon"
  "se\030\235\003 \001(\01327.Anki.Vector.external_interfa"
  "ce.SetFaceToEnrollResponseH\000\022Y\n\027cancel_b"
  "ehavior_request\030\236\003 \001(\01325.Anki.Vector.ext"
  "ernal_interface.CancelBehaviorRequestH\000\022"
  "[\n\030cancel_behavior_response\030\237\003 \001(\01326.Ank"
  "i.Vector.external_interface.CancelBehavi"
  "orResponseH\000\022T\n\025turn_in_place_request\030\364\003"
  " \001(\01322.Anki.Vector.external_interface.Tu"
  "rnInPlaceRequestH\000\022V\n\026turn_in_place_resp"
  "onse\030\365\003 \001(\01323.Anki.Vector.external_inter"
  "face.TurnInPlaceResponseH\000\022W\n\026drive_stra"
  "ight_request\030\366\003 \001(\01324.Anki.Vector.extern"
  "al_interface.DriveStraightRequestH\000\022Y\n\027d"
  "rive_straight_response\030\367\003 \001(\01325.Anki.Vec"
  "tor.external_interface.DriveStraightResp"
  "onseH\000\022V\n\026set_head_angle_request\030\370\003 \001(\0132"
  "3.Anki.Vector.external_interface.SetHead"
  "AngleRequestH\000\022X\n\027set_head_angle_respons"
  "e\030\371\003 \001(\01324.Anki.Vector.external_interfac"
  "e.SetHeadAngleResponseH\000\022X\n\027set_lift_hei"
  "ght_request\030\372\003 \001(\01324.Anki.Vector.externa"
  "l_interface.SetLiftHeightRequestH\000\022Z\n\030se"
  "t_lift_height_response\030\373\003 \001(\01325.Anki.Vec"
  "tor.external_interface.SetLiftHeightResp"
  "onseH\000\022W\n\026play_animation_request\030\374\003 \001(\0132"
  "4.Anki.Vector.external_interface.PlayAni"
  "mationRequestH\000\022Y\n\027play_animation_respon"
  "se\030\375\003 \001(\01325.Anki.Vector.external_interfa"
  "ce.PlayAnimationResponseH\000\022N\n\022go_to_pose"
  "_request\030\376\003 \001(\0132/.Anki.Vector.external_i"
  "nterface.GoToPoseRequestH\000\022P\n\023go_to_pose"
  "_response\030\377\003 \001(\01320.Anki.Vector.external_"
  "interface.GoToPoseResponseH\000\022V\n\026dock_wit"
  "h_cube_request\030\200\004 \001(\01323.Anki.Vector.exte"
  "rnal_interface.DockWithCubeRequestH\000\022X\n\027"
  "dock_with_cube_response\030\201\004 \001(\01324.Anki.Ve"
  "ctor.external_interface.DockWithCubeResp"
  "onseH\000\022S\n\024drive_wheels_request\030\202\004 \001(\01322."
  "Anki.Vector.external_interface.DriveWhee"
  "lsRequestH\000\022U\n\025drive_wheels_response\030\203\004 "
  "\001(\01323.Anki.Vector.external_interface.Dri"
  "veWheelsResponseH\000\022Y\n\027list_animations_re"
  "quest\030\204\004 \001(\01325.Anki.Vector.external_inte"
  "rface.ListAnimationsRequestH\000\022[\n\030list_an"
  "imations_response\030\205\004 \001(\01326.Anki.Vector.e"
  "xternal_interface.ListAnimationsResponse"
  "H\000\022f\n\036play_animation_trigger_request\030\206\004 "
  "\001(\0132;.Anki.Vector.external_interface.Pla"
  "yAnimationTriggerRequestH\000\022h\n\037list_anima"
  "tion_triggers_request\030\207\004 \001(\0132<.Anki.Vect"
  "or.external_interface.ListAnimationTrigg"
  "ersRequestH\000\022j\n list_animation_triggers_"
  "response\030\210\004 \001(\0132=.Anki.Vector.external_i"
  "nterface.ListAnimationTriggersResponseH\000"
  "\022f\n\037cancel_action_by_id_tag_request\030\211\004 \001"
  "(\0132:.Anki.Vector.external_interface.Canc"
  "elActionByIdTagRequestH\000\022h\n cancel_actio"
  "n_by_id_tag_response\030\212\004 \001(\0132;.Anki.Vecto"
  "r.external_interface.CancelActionByIdTag"
  "ResponseH\000\022\\\n\031turn_towards_face_request\030"
  "\213\004 \001(\01326.Anki.Vector.external_interface."
  "TurnTowardsFaceRequestH\000\022^\n\032turn_towards"
  "_face_response\030\214\004 \001(\01327.Anki.Vector.exte"
  "rnal_interface.TurnTowardsFaceResponseH\000"
  "\022R\n\024go_to_object_request\030\215\004 \001(\01321.Anki.V"
  "ector.external_interface.GoToObjectReque"
  "stH\000\022T\n\025go_to_object_response\030\216\004 \001(\01322.A"
  "nki.Vector.external_interface.GoToObject"
  "ResponseH\000\022Q\n\023roll_object_request\030\217\004 \001(\013"
  "21.Anki.Vector.external_interface.RollOb"
  "jectRequestH\000\022S\n\024roll_object_response\030\220\004"
  " \001(\01322.Anki.Vector.external_interface.Ro"
  "llObjectResponseH\000\022T\n\025pop_a_wheelie_requ"
  "est\030\221\004 \001(\01322.Anki.Vector.external_interf"
  "ace.PopAWheelieRequestH\000\022V\n\026pop_a_wheeli"
  "e_response\030\222\004 \001(\01323.Anki.Vector.external"
  "_interface.PopAWheelieResponseH\000\022U\n\025pick"
  "up_object_request\030\223\004 \001(\01323.Anki.Vector.e"
  "xternal_interface.PickupObjectRequestH\000\022"
  "W\n\026pickup_object_response\030\224\004 \001(\01324.Anki."
  "Vector.external_interface.PickupObjectRe"
  "sponseH\000\022n\n#place_object_on_ground_here_"
  "request\030\225\004 \001(\0132>.Anki.Vector.external_in"
  "terface.PlaceObjectOnGroundHereRequestH\000"
  "\022p\n$place_object_on_ground_here_response"
  "\030\226\004 \001(\0132\?.Anki.Vector.external_interface"
  ".PlaceObjectOnGroundHereResponseH\000\022X\n\027st"
  "op_all_motors_request\030\227\004 \001(\01324.Anki.Vect"
  "or.external_interface.StopAllMotorsReque"
  "stH\000\022Z\n\030stop_all_motors_response\030\230\004 \001(\0132"
  "5.Anki.Vector.external_interface.StopAll"
  "MotorsResponseH\000\022U\n\025robot_history_reques"
  "t\030\330\004 \001(\01323.Anki.Vector.external_interfac"
  "e.RobotHistoryRequestH\000\022W\n\026robot_history"
  "_response\030\331\004 \001(\01324.Anki.Vector.external_"
  "interface.RobotHistoryResponseH\000\022S\n\024conn"
  "ect_cube_request\030\274\005 \001(\01322.Anki.Vector.ex"
  "ternal_interface.ConnectCubeRequestH\000\022U\n"
  "\025connect_cube_response\030\275\005 \001(\01323.Anki.Vec"
  "tor.external_interface.ConnectCubeRespon"
  "seH\000\022Y\n\027disconnect_cube_request\030\276\005 \001(\01325"
  ".Anki.Vector.external_interface.Disconne"
  "ctCubeRequestH\000\022\\\n\031flash_cube_lights_req"
  "uest\030\277\005 \001(\01326.Anki.Vector.external_inter"
  "face.FlashCubeLightsRequestH\000\022d\n\035forget_"
  "preferred_cube_request\030\300\005 \001(\0132:.Anki.Vec"
  "tor.external_interface.ForgetPreferredCu"
  "beRequestH\000\022^\n\032set_preferred_cube_reques"
  "t\030\301\005 \001(\01327.Anki.Vector.external_interfac"
  "e.SetPreferredCubeRequestH\000\022X\n\027set_cube_"
  "lights_request\030\302\005 \001(\01324.Anki.Vector.exte"
  "rnal_interface.SetCubeLightsRequestH\000\022Y\n"
  "\027cubes_available_request\030\303\005 \001(\01325.Anki.V"
  "ector.external_interface.CubesAvailableR"
  "equestH\000\022[\n\030cubes_available_response\030\304\005 "
  "\001(\01326.Anki.Vector.external_interface.Cub"
  "esAvailableResponseH\000\022U\n\025battery_state_r"
  "equest\030\240\006 \001(\01323.Anki.Vector.external_int"
  "erface.BatteryStateRequestH\000\022W\n\026battery_"
  "state_response\030\241\006 \001(\01324.Anki.Vector.exte"
  "rnal_interface.BatteryStateResponseH\000\022U\n"
  "\025version_state_request\030\242\006 \001(\01323.Anki.Vec"
  "tor.external_interface.VersionStateReque"
  "stH\000\022W\n\026version_state_response\030\243\006 \001(\01324."
  "Anki.Vector.external_interface.VersionSt"
  "ateResponseH\000\022K\n\020say_text_request\030\204\007 \001(\013"
  "2..Anki.Vector.external_interface.SayTex"
  "tRequestH\000\022M\n\021say_text_response\030\205\007 \001(\0132/"
  ".Anki.Vector.external_interface.SayTextR"
  "esponseH\000\022J\n\017control_request\030\350\007 \001(\0132..An"
  "ki.Vector.external_interface.ControlRequ"
  "estH\000\022J\n\017control_release\030\351\007 \001(\0132..Anki.V"
  "ector.external_interface.ControlReleaseH"
  "\000\022]\n\031behavior_control_response\030\352\007 \001(\01327."
  "Anki.Vector.external_interface.BehaviorC"
  "ontrolResponseH\000\022B\n\013image_chunk\030\315\010 \001(\0132*"
  ".Anki.Vector.external_interface.ImageChu"
  "nkH\000\022h\n\037enable_marker_detection_request\030"
  "\316\010 \001(\0132<.Anki.Vector.external_interface."
  "EnableMarkerDetectionRequestH\000\022j\n enable"
  "_marker_detection_response\030\317\010 \001(\0132=.Anki"
  ".Vector.external_interface.EnableMarkerD"
  "etectionResponseH\000\022d\n\035enable_face_detect"
  "ion_request\030\320\010 \001(\0132:.Anki.Vector.externa"
  "l_interface.EnableFaceDetectionRequestH\000"
  "\022f\n\036enable_face_detection_response\030\321\010 \001("
  "\0132;.Anki.Vector.external_interface.Enabl"
  "eFaceDetectionResponseH\000\022h\n\037enable_motio"
  "n_detection_request\030\322\010 \001(\0132<.Anki.Vector"
  ".external_interface.EnableMotionDetectio"
  "nRequestH\000\022j\n enable_motion_detection_re"
  "sponse\030\323\010 \001(\0132=.Anki.Vector.external_int"
  "erface.EnableMotionDetectionResponseH\000\022^"
  "\n\032enable_mirror_mode_request\030\324\010 \001(\01327.An"
  "ki.Vector.external_interface.EnableMirro"
  "rModeRequestH\000\022`\n\033enable_mirror_mode_res"
  "ponse\030\325\010 \001(\01328.Anki.Vector.external_inte"
  "rface.EnableMirrorModeResponseH\000\022f\n\036enab"
  "le_image_streaming_request\030\326\010 \001(\0132;.Anki"
  ".Vector.external_interface.EnableImageSt"
  "reamingRequestH\000\022h\n\037enable_image_streami"
  "ng_response\030\327\010 \001(\0132<.Anki.Vector.externa"
  "l_interface.EnableImageStreamingResponse"
  "H\000\022m\n\"is_image_streaming_enabled_request"
  "\030\330\010 \001(\0132>.Anki.Vector.external_interface"
  ".IsImageStreamingEnabledRequestH\000\022o\n#is_"
  "image_streaming_enabled_response\030\331\010 \001(\0132"
  "\?.Anki.Vector.external_interface.IsImage"
  "StreamingEnabledResponseH\000\022Q\n\023check_clou"
  "d_request\030\260\t \001(\01321.Anki.Vector.external_"
  "interface.CheckCloudRequestH\000\022S\n\024check_c"
  "loud_response\030\261\t \001(\01322.Anki.Vector.exter"
  "nal_interface.CheckCloudResponseH\000\022X\n\027au"
  "dio_send_mode_request\030\224\n \001(\01324.Anki.Vect"
  "or.external_interface.AudioSendModeReque"
  "stH\000\022X\n\027audio_send_mode_changed\030\225\n \001(\01324"
  ".Anki.Vector.external_interface.AudioSen"
  "dModeChangedH\000\022B\n\013audio_chunk\030\226\n \001(\0132*.A"
  "nki.Vector.external_interface.AudioChunk"
  "H\000\022S\n\024feature_flag_request\030\370\n \001(\01322.Anki"
  ".Vector.external_interface.FeatureFlagRe"
  "questH\000\022U\n\025feature_flag_response\030\371\n \001(\0132"
  "3.Anki.Vector.external_interface.Feature"
  "FlagResponseH\000\022\\\n\031feature_flag_list_requ"
  "est\030\372\n \001(\01326.Anki.Vector.external_interf"
  "ace.FeatureFlagListRequestH\000\022^\n\032feature_"
  "flag_list_response\030\373\n \001(\01327.Anki.Vector."
  "external_interface.FeatureFlagListRespon"
  "seH\000\022L\n\020app_disconnected\030\334\013 \001(\0132/.Anki.V"
  "ector.external_interface.AppDisconnected"
  "H\000\022Z\n\030alexa_auth_state_request\030\300\014 \001(\01325."
  "Anki.Vector.external_interface.AlexaAuth"
  "StateRequestH\000\022\\\n\031alexa_auth_state_respo"
  "nse\030\301\014 \001(\01326.Anki.Vector.external_interf"
  "ace.AlexaAuthStateResponseH\000\022R\n\024alexa_op"
  "t_in_request\030\302\014 \001(\01321.Anki.Vector.extern"
  "al_interface.AlexaOptInRequestH\000\022T\n\025alex"
  "a_opt_in_response\030\303\014 \001(\01322.Anki.Vector.e"
  "xternal_interface.AlexaOptInResponseH\000\022T"
  "\n\025set_eye_color_request\030\244\r \001(\01322.Anki.Ve"
  "ctor.external_interface.SetEyeColorReque"
  "stH\000\022V\n\026set_eye_color_response\030\245\r \001(\01323."
  "Anki.Vector.external_interface.SetEyeCol"
  "orResponseH\000\022U\n\025master_volume_request\030\246\r"
  " \001(\01323.Anki.Vector.external_interface.Ma"
  "sterVolumeRequestH\000\022W\n\026master_volume_res"
  "ponse\030\247\r \001(\01324.Anki.Vector.external_inte"
  "rface.MasterVolumeResponseH\000\022`\n\033set_came"
  "ra_settings_request\030\250\r \001(\01328.Anki.Vector"
  ".external_interface.SetCameraSettingsReq"
  "uestH\000\022b\n\034set_camera_settings_response\030\251"
  "\r \001(\01329.Anki.Vector.external_interface.S"
  "etCameraSettingsResponseH\000\022U\n\025camera_con"
  "fig_request\030\252\r \001(\01323.Anki.Vector.externa"
  "l_interface.CameraConfigRequestH\000\022W\n\026cam"
  "era_config_response\030\253\r \001(\01324.Anki.Vector"
  ".external_interface.CameraConfigResponse"
  "H\000\022d\n\035external_audio_stream_prepare\030\210\016 \001"
  "(\0132:.Anki.Vector.external_interface.Exte"
  "rnalAudioStreamPrepareH\000\022`\n\033external_aud"
  "io_stream_chunk\030\211\016 \001(\01328.Anki.Vector.ext"
  "ernal_interface.ExternalAudioStreamChunk"
  "H\000\022b\n\034external_audio_stream_cancel\030\212\016 \001("
  "\01329.Anki.Vector.external_interface.Exter"
  "nalAudioStreamCancelH\000\022f\n\036external_audio"
  "_stream_complete\030\213\016 \001(\0132;.Anki.Vector.ex"
  "ternal_interface.ExternalAudioStreamComp"
  "leteH\000\022f\n\036external_audio_stream_response"
  "\030\214\016 \001(\0132;.Anki.Vector.external_interface"
  ".ExternalAudioStreamResponseH\000B\024\n\022oneof_"
  "message_typeB Z\036Anki.Vector.external_int"
  "erfaceb\006proto3"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_shared_2eproto_deps[7] = {
  &::descriptor_table_alexa_2eproto,
  &::descriptor_table_behavior_2eproto,
  &::descriptor_table_cube_2eproto,
  &::descriptor_table_extensions_2eproto,
  &::descriptor_table_messages_2eproto,
  &::descriptor_table_response_5fstatus_2eproto,
  &::descriptor_table_settings_2eproto,
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_shared_2eproto_sccs[10] = {
  &scc_info_ConnectionResponse_shared_2eproto.base,
  &scc_info_Event_shared_2eproto.base,
  &scc_info_EventRequest_shared_2eproto.base,
  &scc_info_EventResponse_shared_2eproto.base,
  &scc_info_FilterList_shared_2eproto.base,
  &scc_info_GatewayWrapper_shared_2eproto.base,
  &scc_info_ProtocolVersionRequest_shared_2eproto.base,
  &scc_info_ProtocolVersionResponse_shared_2eproto.base,
  &scc_info_UserAuthenticationRequest_shared_2eproto.base,
  &scc_info_UserAuthenticationResponse_shared_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_shared_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_shared_2eproto = {
  false, false, descriptor_table_protodef_shared_2eproto, "shared.proto", 17014,
  &descriptor_table_shared_2eproto_once, descriptor_table_shared_2eproto_sccs, descriptor_table_shared_2eproto_deps, 10, 7,
  schemas, file_default_instances, TableStruct_shared_2eproto::offsets,
  file_level_metadata_shared_2eproto, 10, file_level_enum_descriptors_shared_2eproto, file_level_service_descriptors_shared_2eproto,
};

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_shared_2eproto = (static_cast<void>(::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_shared_2eproto)), true);
namespace Anki {
namespace Vector {
namespace external_interface {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ProtocolVersionResponse_Result_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_shared_2eproto);
  return file_level_enum_descriptors_shared_2eproto[0];
}
bool ProtocolVersionResponse_Result_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
constexpr ProtocolVersionResponse_Result ProtocolVersionResponse::UNSUPPORTED;
constexpr ProtocolVersionResponse_Result ProtocolVersionResponse::SUCCESS;
constexpr ProtocolVersionResponse_Result ProtocolVersionResponse::Result_MIN;
constexpr ProtocolVersionResponse_Result ProtocolVersionResponse::Result_MAX;
constexpr int ProtocolVersionResponse::Result_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* UserAuthenticationResponse_Code_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_shared_2eproto);
  return file_level_enum_descriptors_shared_2eproto[1];
}
bool UserAuthenticationResponse_Code_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
constexpr UserAuthenticationResponse_Code UserAuthenticationResponse::UNAUTHORIZED;
constexpr UserAuthenticationResponse_Code UserAuthenticationResponse::AUTHORIZED;
constexpr UserAuthenticationResponse_Code UserAuthenticationResponse::Code_MIN;
constexpr UserAuthenticationResponse_Code UserAuthenticationResponse::Code_MAX;
constexpr int UserAuthenticationResponse::Code_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)

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

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

ProtocolVersionRequest::ProtocolVersionRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ProtocolVersionRequest)
}
ProtocolVersionRequest::ProtocolVersionRequest(const ProtocolVersionRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&client_version_, &from.client_version_,
    static_cast<size_t>(reinterpret_cast<char*>(&min_host_version_) -
    reinterpret_cast<char*>(&client_version_)) + sizeof(min_host_version_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ProtocolVersionRequest)
}

void ProtocolVersionRequest::SharedCtor() {
  ::memset(&client_version_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&min_host_version_) -
      reinterpret_cast<char*>(&client_version_)) + sizeof(min_host_version_));
}

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

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

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


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

  ::memset(&client_version_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&min_host_version_) -
      reinterpret_cast<char*>(&client_version_)) + sizeof(min_host_version_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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

  // int64 client_version = 1;
  if (this->client_version() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->_internal_client_version(), target);
  }

  // int64 min_host_version = 2;
  if (this->min_host_version() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_min_host_version(), target);
  }

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

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

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

  // int64 client_version = 1;
  if (this->client_version() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
        this->_internal_client_version());
  }

  // int64 min_host_version = 2;
  if (this->min_host_version() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
        this->_internal_min_host_version());
  }

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

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

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

  if (from.client_version() != 0) {
    _internal_set_client_version(from._internal_client_version());
  }
  if (from.min_host_version() != 0) {
    _internal_set_min_host_version(from._internal_min_host_version());
  }
}

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

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

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

void ProtocolVersionRequest::InternalSwap(ProtocolVersionRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ProtocolVersionRequest, min_host_version_)
      + sizeof(ProtocolVersionRequest::min_host_version_)
      - PROTOBUF_FIELD_OFFSET(ProtocolVersionRequest, client_version_)>(
          reinterpret_cast<char*>(&client_version_),
          reinterpret_cast<char*>(&other->client_version_));
}

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


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

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

ProtocolVersionResponse::ProtocolVersionResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ProtocolVersionResponse)
}
ProtocolVersionResponse::ProtocolVersionResponse(const ProtocolVersionResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&host_version_, &from.host_version_,
    static_cast<size_t>(reinterpret_cast<char*>(&result_) -
    reinterpret_cast<char*>(&host_version_)) + sizeof(result_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ProtocolVersionResponse)
}

void ProtocolVersionResponse::SharedCtor() {
  ::memset(&host_version_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&host_version_)) + sizeof(result_));
}

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

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

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


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

  ::memset(&host_version_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&host_version_)) + sizeof(result_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ProtocolVersionResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.ProtocolVersionResponse.Result result = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_result(static_cast<::Anki::Vector::external_interface::ProtocolVersionResponse_Result>(val));
        } else goto handle_unusual;
        continue;
      // int64 host_version = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          host_version_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.ProtocolVersionResponse.Result result = 1;
  if (this->result() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_result(), target);
  }

  // int64 host_version = 2;
  if (this->host_version() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_host_version(), target);
  }

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

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

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

  // int64 host_version = 2;
  if (this->host_version() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
        this->_internal_host_version());
  }

  // .Anki.Vector.external_interface.ProtocolVersionResponse.Result result = 1;
  if (this->result() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_result());
  }

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

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

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

  if (from.host_version() != 0) {
    _internal_set_host_version(from._internal_host_version());
  }
  if (from.result() != 0) {
    _internal_set_result(from._internal_result());
  }
}

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

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

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

void ProtocolVersionResponse::InternalSwap(ProtocolVersionResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ProtocolVersionResponse, result_)
      + sizeof(ProtocolVersionResponse::result_)
      - PROTOBUF_FIELD_OFFSET(ProtocolVersionResponse, host_version_)>(
          reinterpret_cast<char*>(&host_version_),
          reinterpret_cast<char*>(&other->host_version_));
}

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


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

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

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

void ConnectionResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ConnectionResponse_shared_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&is_primary_) -
      reinterpret_cast<char*>(&status_)) + sizeof(is_primary_));
}

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

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

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


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

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

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

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

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

  // bool is_primary = 2;
  if (this->is_primary() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_is_primary(), target);
  }

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

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

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

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

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

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

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.is_primary() != 0) {
    _internal_set_is_primary(from._internal_is_primary());
  }
}

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

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

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

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

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


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

void Event::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_Event_default_instance_.time_stamped_status_ = const_cast< ::Anki::Vector::external_interface::TimeStampedStatus*>(
      ::Anki::Vector::external_interface::TimeStampedStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.onboarding_ = const_cast< ::Anki::Vector::external_interface::Onboarding*>(
      ::Anki::Vector::external_interface::Onboarding::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.wake_word_ = const_cast< ::Anki::Vector::external_interface::WakeWord*>(
      ::Anki::Vector::external_interface::WakeWord::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.attention_transfer_ = const_cast< ::Anki::Vector::external_interface::AttentionTransfer*>(
      ::Anki::Vector::external_interface::AttentionTransfer::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.robot_observed_face_ = const_cast< ::Anki::Vector::external_interface::RobotObservedFace*>(
      ::Anki::Vector::external_interface::RobotObservedFace::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.robot_changed_observed_face_id_ = const_cast< ::Anki::Vector::external_interface::RobotChangedObservedFaceID*>(
      ::Anki::Vector::external_interface::RobotChangedObservedFaceID::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.object_event_ = const_cast< ::Anki::Vector::external_interface::ObjectEvent*>(
      ::Anki::Vector::external_interface::ObjectEvent::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.stimulation_info_ = const_cast< ::Anki::Vector::external_interface::StimulationInfo*>(
      ::Anki::Vector::external_interface::StimulationInfo::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.photo_taken_ = const_cast< ::Anki::Vector::external_interface::PhotoTaken*>(
      ::Anki::Vector::external_interface::PhotoTaken::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.robot_state_ = const_cast< ::Anki::Vector::external_interface::RobotState*>(
      ::Anki::Vector::external_interface::RobotState::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.cube_battery_ = const_cast< ::Anki::Vector::external_interface::CubeBattery*>(
      ::Anki::Vector::external_interface::CubeBattery::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.keep_alive_ = const_cast< ::Anki::Vector::external_interface::KeepAlivePing*>(
      ::Anki::Vector::external_interface::KeepAlivePing::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.connection_response_ = const_cast< ::Anki::Vector::external_interface::ConnectionResponse*>(
      ::Anki::Vector::external_interface::ConnectionResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.jdocs_changed_ = const_cast< ::Anki::Vector::external_interface::JdocsChanged*>(
      ::Anki::Vector::external_interface::JdocsChanged::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.alexa_auth_event_ = const_cast< ::Anki::Vector::external_interface::AlexaAuthEvent*>(
      ::Anki::Vector::external_interface::AlexaAuthEvent::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.mirror_mode_disabled_ = const_cast< ::Anki::Vector::external_interface::MirrorModeDisabled*>(
      ::Anki::Vector::external_interface::MirrorModeDisabled::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.vision_modes_auto_disabled_ = const_cast< ::Anki::Vector::external_interface::VisionModesAutoDisabled*>(
      ::Anki::Vector::external_interface::VisionModesAutoDisabled::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.check_update_status_response_ = const_cast< ::Anki::Vector::external_interface::CheckUpdateStatusResponse*>(
      ::Anki::Vector::external_interface::CheckUpdateStatusResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.user_intent_ = const_cast< ::Anki::Vector::external_interface::UserIntent*>(
      ::Anki::Vector::external_interface::UserIntent::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.robot_observed_motion_ = const_cast< ::Anki::Vector::external_interface::RobotObservedMotion*>(
      ::Anki::Vector::external_interface::RobotObservedMotion::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.robot_erased_enrolled_face_ = const_cast< ::Anki::Vector::external_interface::RobotErasedEnrolledFace*>(
      ::Anki::Vector::external_interface::RobotErasedEnrolledFace::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.robot_renamed_enrolled_face_ = const_cast< ::Anki::Vector::external_interface::RobotRenamedEnrolledFace*>(
      ::Anki::Vector::external_interface::RobotRenamedEnrolledFace::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.camera_settings_update_ = const_cast< ::Anki::Vector::external_interface::CameraSettingsUpdate*>(
      ::Anki::Vector::external_interface::CameraSettingsUpdate::internal_default_instance());
  ::Anki::Vector::external_interface::_Event_default_instance_.unexpected_movement_ = const_cast< ::Anki::Vector::external_interface::UnexpectedMovement*>(
      ::Anki::Vector::external_interface::UnexpectedMovement::internal_default_instance());
}
class Event::_Internal {
 public:
  static const ::Anki::Vector::external_interface::TimeStampedStatus& time_stamped_status(const Event* msg);
  static const ::Anki::Vector::external_interface::Onboarding& onboarding(const Event* msg);
  static const ::Anki::Vector::external_interface::WakeWord& wake_word(const Event* msg);
  static const ::Anki::Vector::external_interface::AttentionTransfer& attention_transfer(const Event* msg);
  static const ::Anki::Vector::external_interface::RobotObservedFace& robot_observed_face(const Event* msg);
  static const ::Anki::Vector::external_interface::RobotChangedObservedFaceID& robot_changed_observed_face_id(const Event* msg);
  static const ::Anki::Vector::external_interface::ObjectEvent& object_event(const Event* msg);
  static const ::Anki::Vector::external_interface::StimulationInfo& stimulation_info(const Event* msg);
  static const ::Anki::Vector::external_interface::PhotoTaken& photo_taken(const Event* msg);
  static const ::Anki::Vector::external_interface::RobotState& robot_state(const Event* msg);
  static const ::Anki::Vector::external_interface::CubeBattery& cube_battery(const Event* msg);
  static const ::Anki::Vector::external_interface::KeepAlivePing& keep_alive(const Event* msg);
  static const ::Anki::Vector::external_interface::ConnectionResponse& connection_response(const Event* msg);
  static const ::Anki::Vector::external_interface::JdocsChanged& jdocs_changed(const Event* msg);
  static const ::Anki::Vector::external_interface::AlexaAuthEvent& alexa_auth_event(const Event* msg);
  static const ::Anki::Vector::external_interface::MirrorModeDisabled& mirror_mode_disabled(const Event* msg);
  static const ::Anki::Vector::external_interface::VisionModesAutoDisabled& vision_modes_auto_disabled(const Event* msg);
  static const ::Anki::Vector::external_interface::CheckUpdateStatusResponse& check_update_status_response(const Event* msg);
  static const ::Anki::Vector::external_interface::UserIntent& user_intent(const Event* msg);
  static const ::Anki::Vector::external_interface::RobotObservedMotion& robot_observed_motion(const Event* msg);
  static const ::Anki::Vector::external_interface::RobotErasedEnrolledFace& robot_erased_enrolled_face(const Event* msg);
  static const ::Anki::Vector::external_interface::RobotRenamedEnrolledFace& robot_renamed_enrolled_face(const Event* msg);
  static const ::Anki::Vector::external_interface::CameraSettingsUpdate& camera_settings_update(const Event* msg);
  static const ::Anki::Vector::external_interface::UnexpectedMovement& unexpected_movement(const Event* msg);
};

const ::Anki::Vector::external_interface::TimeStampedStatus&
Event::_Internal::time_stamped_status(const Event* msg) {
  return *msg->event_type_.time_stamped_status_;
}
const ::Anki::Vector::external_interface::Onboarding&
Event::_Internal::onboarding(const Event* msg) {
  return *msg->event_type_.onboarding_;
}
const ::Anki::Vector::external_interface::WakeWord&
Event::_Internal::wake_word(const Event* msg) {
  return *msg->event_type_.wake_word_;
}
const ::Anki::Vector::external_interface::AttentionTransfer&
Event::_Internal::attention_transfer(const Event* msg) {
  return *msg->event_type_.attention_transfer_;
}
const ::Anki::Vector::external_interface::RobotObservedFace&
Event::_Internal::robot_observed_face(const Event* msg) {
  return *msg->event_type_.robot_observed_face_;
}
const ::Anki::Vector::external_interface::RobotChangedObservedFaceID&
Event::_Internal::robot_changed_observed_face_id(const Event* msg) {
  return *msg->event_type_.robot_changed_observed_face_id_;
}
const ::Anki::Vector::external_interface::ObjectEvent&
Event::_Internal::object_event(const Event* msg) {
  return *msg->event_type_.object_event_;
}
const ::Anki::Vector::external_interface::StimulationInfo&
Event::_Internal::stimulation_info(const Event* msg) {
  return *msg->event_type_.stimulation_info_;
}
const ::Anki::Vector::external_interface::PhotoTaken&
Event::_Internal::photo_taken(const Event* msg) {
  return *msg->event_type_.photo_taken_;
}
const ::Anki::Vector::external_interface::RobotState&
Event::_Internal::robot_state(const Event* msg) {
  return *msg->event_type_.robot_state_;
}
const ::Anki::Vector::external_interface::CubeBattery&
Event::_Internal::cube_battery(const Event* msg) {
  return *msg->event_type_.cube_battery_;
}
const ::Anki::Vector::external_interface::KeepAlivePing&
Event::_Internal::keep_alive(const Event* msg) {
  return *msg->event_type_.keep_alive_;
}
const ::Anki::Vector::external_interface::ConnectionResponse&
Event::_Internal::connection_response(const Event* msg) {
  return *msg->event_type_.connection_response_;
}
const ::Anki::Vector::external_interface::JdocsChanged&
Event::_Internal::jdocs_changed(const Event* msg) {
  return *msg->event_type_.jdocs_changed_;
}
const ::Anki::Vector::external_interface::AlexaAuthEvent&
Event::_Internal::alexa_auth_event(const Event* msg) {
  return *msg->event_type_.alexa_auth_event_;
}
const ::Anki::Vector::external_interface::MirrorModeDisabled&
Event::_Internal::mirror_mode_disabled(const Event* msg) {
  return *msg->event_type_.mirror_mode_disabled_;
}
const ::Anki::Vector::external_interface::VisionModesAutoDisabled&
Event::_Internal::vision_modes_auto_disabled(const Event* msg) {
  return *msg->event_type_.vision_modes_auto_disabled_;
}
const ::Anki::Vector::external_interface::CheckUpdateStatusResponse&
Event::_Internal::check_update_status_response(const Event* msg) {
  return *msg->event_type_.check_update_status_response_;
}
const ::Anki::Vector::external_interface::UserIntent&
Event::_Internal::user_intent(const Event* msg) {
  return *msg->event_type_.user_intent_;
}
const ::Anki::Vector::external_interface::RobotObservedMotion&
Event::_Internal::robot_observed_motion(const Event* msg) {
  return *msg->event_type_.robot_observed_motion_;
}
const ::Anki::Vector::external_interface::RobotErasedEnrolledFace&
Event::_Internal::robot_erased_enrolled_face(const Event* msg) {
  return *msg->event_type_.robot_erased_enrolled_face_;
}
const ::Anki::Vector::external_interface::RobotRenamedEnrolledFace&
Event::_Internal::robot_renamed_enrolled_face(const Event* msg) {
  return *msg->event_type_.robot_renamed_enrolled_face_;
}
const ::Anki::Vector::external_interface::CameraSettingsUpdate&
Event::_Internal::camera_settings_update(const Event* msg) {
  return *msg->event_type_.camera_settings_update_;
}
const ::Anki::Vector::external_interface::UnexpectedMovement&
Event::_Internal::unexpected_movement(const Event* msg) {
  return *msg->event_type_.unexpected_movement_;
}
void Event::set_allocated_time_stamped_status(::Anki::Vector::external_interface::TimeStampedStatus* time_stamped_status) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (time_stamped_status) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(time_stamped_status)->GetArena();
    if (message_arena != submessage_arena) {
      time_stamped_status = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, time_stamped_status, submessage_arena);
    }
    set_has_time_stamped_status();
    event_type_.time_stamped_status_ = time_stamped_status;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.time_stamped_status)
}
void Event::clear_time_stamped_status() {
  if (_internal_has_time_stamped_status()) {
    if (GetArena() == nullptr) {
      delete event_type_.time_stamped_status_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_onboarding(::Anki::Vector::external_interface::Onboarding* onboarding) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (onboarding) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding, submessage_arena);
    }
    set_has_onboarding();
    event_type_.onboarding_ = onboarding;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.onboarding)
}
void Event::clear_onboarding() {
  if (_internal_has_onboarding()) {
    if (GetArena() == nullptr) {
      delete event_type_.onboarding_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_wake_word(::Anki::Vector::external_interface::WakeWord* wake_word) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (wake_word) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(wake_word)->GetArena();
    if (message_arena != submessage_arena) {
      wake_word = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, wake_word, submessage_arena);
    }
    set_has_wake_word();
    event_type_.wake_word_ = wake_word;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.wake_word)
}
void Event::clear_wake_word() {
  if (_internal_has_wake_word()) {
    if (GetArena() == nullptr) {
      delete event_type_.wake_word_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_attention_transfer(::Anki::Vector::external_interface::AttentionTransfer* attention_transfer) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (attention_transfer) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(attention_transfer)->GetArena();
    if (message_arena != submessage_arena) {
      attention_transfer = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, attention_transfer, submessage_arena);
    }
    set_has_attention_transfer();
    event_type_.attention_transfer_ = attention_transfer;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.attention_transfer)
}
void Event::clear_attention_transfer() {
  if (_internal_has_attention_transfer()) {
    if (GetArena() == nullptr) {
      delete event_type_.attention_transfer_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_robot_observed_face(::Anki::Vector::external_interface::RobotObservedFace* robot_observed_face) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (robot_observed_face) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(robot_observed_face)->GetArena();
    if (message_arena != submessage_arena) {
      robot_observed_face = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, robot_observed_face, submessage_arena);
    }
    set_has_robot_observed_face();
    event_type_.robot_observed_face_ = robot_observed_face;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.robot_observed_face)
}
void Event::clear_robot_observed_face() {
  if (_internal_has_robot_observed_face()) {
    if (GetArena() == nullptr) {
      delete event_type_.robot_observed_face_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_robot_changed_observed_face_id(::Anki::Vector::external_interface::RobotChangedObservedFaceID* robot_changed_observed_face_id) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (robot_changed_observed_face_id) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(robot_changed_observed_face_id)->GetArena();
    if (message_arena != submessage_arena) {
      robot_changed_observed_face_id = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, robot_changed_observed_face_id, submessage_arena);
    }
    set_has_robot_changed_observed_face_id();
    event_type_.robot_changed_observed_face_id_ = robot_changed_observed_face_id;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.robot_changed_observed_face_id)
}
void Event::clear_robot_changed_observed_face_id() {
  if (_internal_has_robot_changed_observed_face_id()) {
    if (GetArena() == nullptr) {
      delete event_type_.robot_changed_observed_face_id_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_object_event(::Anki::Vector::external_interface::ObjectEvent* object_event) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (object_event) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(object_event)->GetArena();
    if (message_arena != submessage_arena) {
      object_event = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, object_event, submessage_arena);
    }
    set_has_object_event();
    event_type_.object_event_ = object_event;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.object_event)
}
void Event::clear_object_event() {
  if (_internal_has_object_event()) {
    if (GetArena() == nullptr) {
      delete event_type_.object_event_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_stimulation_info(::Anki::Vector::external_interface::StimulationInfo* stimulation_info) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (stimulation_info) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(stimulation_info)->GetArena();
    if (message_arena != submessage_arena) {
      stimulation_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, stimulation_info, submessage_arena);
    }
    set_has_stimulation_info();
    event_type_.stimulation_info_ = stimulation_info;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.stimulation_info)
}
void Event::clear_stimulation_info() {
  if (_internal_has_stimulation_info()) {
    if (GetArena() == nullptr) {
      delete event_type_.stimulation_info_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_photo_taken(::Anki::Vector::external_interface::PhotoTaken* photo_taken) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (photo_taken) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(photo_taken)->GetArena();
    if (message_arena != submessage_arena) {
      photo_taken = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, photo_taken, submessage_arena);
    }
    set_has_photo_taken();
    event_type_.photo_taken_ = photo_taken;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.photo_taken)
}
void Event::clear_photo_taken() {
  if (_internal_has_photo_taken()) {
    if (GetArena() == nullptr) {
      delete event_type_.photo_taken_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_robot_state(::Anki::Vector::external_interface::RobotState* robot_state) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (robot_state) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(robot_state)->GetArena();
    if (message_arena != submessage_arena) {
      robot_state = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, robot_state, submessage_arena);
    }
    set_has_robot_state();
    event_type_.robot_state_ = robot_state;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.robot_state)
}
void Event::clear_robot_state() {
  if (_internal_has_robot_state()) {
    if (GetArena() == nullptr) {
      delete event_type_.robot_state_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_cube_battery(::Anki::Vector::external_interface::CubeBattery* cube_battery) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (cube_battery) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(cube_battery)->GetArena();
    if (message_arena != submessage_arena) {
      cube_battery = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, cube_battery, submessage_arena);
    }
    set_has_cube_battery();
    event_type_.cube_battery_ = cube_battery;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.cube_battery)
}
void Event::clear_cube_battery() {
  if (_internal_has_cube_battery()) {
    if (GetArena() == nullptr) {
      delete event_type_.cube_battery_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_keep_alive(::Anki::Vector::external_interface::KeepAlivePing* keep_alive) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (keep_alive) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(keep_alive)->GetArena();
    if (message_arena != submessage_arena) {
      keep_alive = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, keep_alive, submessage_arena);
    }
    set_has_keep_alive();
    event_type_.keep_alive_ = keep_alive;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.keep_alive)
}
void Event::clear_keep_alive() {
  if (_internal_has_keep_alive()) {
    if (GetArena() == nullptr) {
      delete event_type_.keep_alive_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_connection_response(::Anki::Vector::external_interface::ConnectionResponse* connection_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (connection_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(connection_response);
    if (message_arena != submessage_arena) {
      connection_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, connection_response, submessage_arena);
    }
    set_has_connection_response();
    event_type_.connection_response_ = connection_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.connection_response)
}
void Event::set_allocated_jdocs_changed(::Anki::Vector::external_interface::JdocsChanged* jdocs_changed) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (jdocs_changed) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(jdocs_changed)->GetArena();
    if (message_arena != submessage_arena) {
      jdocs_changed = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, jdocs_changed, submessage_arena);
    }
    set_has_jdocs_changed();
    event_type_.jdocs_changed_ = jdocs_changed;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.jdocs_changed)
}
void Event::clear_jdocs_changed() {
  if (_internal_has_jdocs_changed()) {
    if (GetArena() == nullptr) {
      delete event_type_.jdocs_changed_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_alexa_auth_event(::Anki::Vector::external_interface::AlexaAuthEvent* alexa_auth_event) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (alexa_auth_event) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(alexa_auth_event)->GetArena();
    if (message_arena != submessage_arena) {
      alexa_auth_event = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, alexa_auth_event, submessage_arena);
    }
    set_has_alexa_auth_event();
    event_type_.alexa_auth_event_ = alexa_auth_event;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.alexa_auth_event)
}
void Event::clear_alexa_auth_event() {
  if (_internal_has_alexa_auth_event()) {
    if (GetArena() == nullptr) {
      delete event_type_.alexa_auth_event_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_mirror_mode_disabled(::Anki::Vector::external_interface::MirrorModeDisabled* mirror_mode_disabled) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (mirror_mode_disabled) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mirror_mode_disabled)->GetArena();
    if (message_arena != submessage_arena) {
      mirror_mode_disabled = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mirror_mode_disabled, submessage_arena);
    }
    set_has_mirror_mode_disabled();
    event_type_.mirror_mode_disabled_ = mirror_mode_disabled;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.mirror_mode_disabled)
}
void Event::clear_mirror_mode_disabled() {
  if (_internal_has_mirror_mode_disabled()) {
    if (GetArena() == nullptr) {
      delete event_type_.mirror_mode_disabled_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_vision_modes_auto_disabled(::Anki::Vector::external_interface::VisionModesAutoDisabled* vision_modes_auto_disabled) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (vision_modes_auto_disabled) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(vision_modes_auto_disabled)->GetArena();
    if (message_arena != submessage_arena) {
      vision_modes_auto_disabled = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, vision_modes_auto_disabled, submessage_arena);
    }
    set_has_vision_modes_auto_disabled();
    event_type_.vision_modes_auto_disabled_ = vision_modes_auto_disabled;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.vision_modes_auto_disabled)
}
void Event::clear_vision_modes_auto_disabled() {
  if (_internal_has_vision_modes_auto_disabled()) {
    if (GetArena() == nullptr) {
      delete event_type_.vision_modes_auto_disabled_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_check_update_status_response(::Anki::Vector::external_interface::CheckUpdateStatusResponse* check_update_status_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (check_update_status_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(check_update_status_response)->GetArena();
    if (message_arena != submessage_arena) {
      check_update_status_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, check_update_status_response, submessage_arena);
    }
    set_has_check_update_status_response();
    event_type_.check_update_status_response_ = check_update_status_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.check_update_status_response)
}
void Event::clear_check_update_status_response() {
  if (_internal_has_check_update_status_response()) {
    if (GetArena() == nullptr) {
      delete event_type_.check_update_status_response_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_user_intent(::Anki::Vector::external_interface::UserIntent* user_intent) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (user_intent) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(user_intent)->GetArena();
    if (message_arena != submessage_arena) {
      user_intent = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, user_intent, submessage_arena);
    }
    set_has_user_intent();
    event_type_.user_intent_ = user_intent;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.user_intent)
}
void Event::clear_user_intent() {
  if (_internal_has_user_intent()) {
    if (GetArena() == nullptr) {
      delete event_type_.user_intent_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_robot_observed_motion(::Anki::Vector::external_interface::RobotObservedMotion* robot_observed_motion) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (robot_observed_motion) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(robot_observed_motion)->GetArena();
    if (message_arena != submessage_arena) {
      robot_observed_motion = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, robot_observed_motion, submessage_arena);
    }
    set_has_robot_observed_motion();
    event_type_.robot_observed_motion_ = robot_observed_motion;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.robot_observed_motion)
}
void Event::clear_robot_observed_motion() {
  if (_internal_has_robot_observed_motion()) {
    if (GetArena() == nullptr) {
      delete event_type_.robot_observed_motion_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_robot_erased_enrolled_face(::Anki::Vector::external_interface::RobotErasedEnrolledFace* robot_erased_enrolled_face) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (robot_erased_enrolled_face) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(robot_erased_enrolled_face)->GetArena();
    if (message_arena != submessage_arena) {
      robot_erased_enrolled_face = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, robot_erased_enrolled_face, submessage_arena);
    }
    set_has_robot_erased_enrolled_face();
    event_type_.robot_erased_enrolled_face_ = robot_erased_enrolled_face;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.robot_erased_enrolled_face)
}
void Event::clear_robot_erased_enrolled_face() {
  if (_internal_has_robot_erased_enrolled_face()) {
    if (GetArena() == nullptr) {
      delete event_type_.robot_erased_enrolled_face_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_robot_renamed_enrolled_face(::Anki::Vector::external_interface::RobotRenamedEnrolledFace* robot_renamed_enrolled_face) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (robot_renamed_enrolled_face) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(robot_renamed_enrolled_face)->GetArena();
    if (message_arena != submessage_arena) {
      robot_renamed_enrolled_face = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, robot_renamed_enrolled_face, submessage_arena);
    }
    set_has_robot_renamed_enrolled_face();
    event_type_.robot_renamed_enrolled_face_ = robot_renamed_enrolled_face;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.robot_renamed_enrolled_face)
}
void Event::clear_robot_renamed_enrolled_face() {
  if (_internal_has_robot_renamed_enrolled_face()) {
    if (GetArena() == nullptr) {
      delete event_type_.robot_renamed_enrolled_face_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_camera_settings_update(::Anki::Vector::external_interface::CameraSettingsUpdate* camera_settings_update) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (camera_settings_update) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(camera_settings_update)->GetArena();
    if (message_arena != submessage_arena) {
      camera_settings_update = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, camera_settings_update, submessage_arena);
    }
    set_has_camera_settings_update();
    event_type_.camera_settings_update_ = camera_settings_update;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.camera_settings_update)
}
void Event::clear_camera_settings_update() {
  if (_internal_has_camera_settings_update()) {
    if (GetArena() == nullptr) {
      delete event_type_.camera_settings_update_;
    }
    clear_has_event_type();
  }
}
void Event::set_allocated_unexpected_movement(::Anki::Vector::external_interface::UnexpectedMovement* unexpected_movement) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_event_type();
  if (unexpected_movement) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(unexpected_movement)->GetArena();
    if (message_arena != submessage_arena) {
      unexpected_movement = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, unexpected_movement, submessage_arena);
    }
    set_has_unexpected_movement();
    event_type_.unexpected_movement_ = unexpected_movement;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Event.unexpected_movement)
}
void Event::clear_unexpected_movement() {
  if (_internal_has_unexpected_movement()) {
    if (GetArena() == nullptr) {
      delete event_type_.unexpected_movement_;
    }
    clear_has_event_type();
  }
}
Event::Event(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.Event)
}
Event::Event(const Event& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_event_type();
  switch (from.event_type_case()) {
    case kTimeStampedStatus: {
      _internal_mutable_time_stamped_status()->::Anki::Vector::external_interface::TimeStampedStatus::MergeFrom(from._internal_time_stamped_status());
      break;
    }
    case kOnboarding: {
      _internal_mutable_onboarding()->::Anki::Vector::external_interface::Onboarding::MergeFrom(from._internal_onboarding());
      break;
    }
    case kWakeWord: {
      _internal_mutable_wake_word()->::Anki::Vector::external_interface::WakeWord::MergeFrom(from._internal_wake_word());
      break;
    }
    case kAttentionTransfer: {
      _internal_mutable_attention_transfer()->::Anki::Vector::external_interface::AttentionTransfer::MergeFrom(from._internal_attention_transfer());
      break;
    }
    case kRobotObservedFace: {
      _internal_mutable_robot_observed_face()->::Anki::Vector::external_interface::RobotObservedFace::MergeFrom(from._internal_robot_observed_face());
      break;
    }
    case kRobotChangedObservedFaceId: {
      _internal_mutable_robot_changed_observed_face_id()->::Anki::Vector::external_interface::RobotChangedObservedFaceID::MergeFrom(from._internal_robot_changed_observed_face_id());
      break;
    }
    case kObjectEvent: {
      _internal_mutable_object_event()->::Anki::Vector::external_interface::ObjectEvent::MergeFrom(from._internal_object_event());
      break;
    }
    case kStimulationInfo: {
      _internal_mutable_stimulation_info()->::Anki::Vector::external_interface::StimulationInfo::MergeFrom(from._internal_stimulation_info());
      break;
    }
    case kPhotoTaken: {
      _internal_mutable_photo_taken()->::Anki::Vector::external_interface::PhotoTaken::MergeFrom(from._internal_photo_taken());
      break;
    }
    case kRobotState: {
      _internal_mutable_robot_state()->::Anki::Vector::external_interface::RobotState::MergeFrom(from._internal_robot_state());
      break;
    }
    case kCubeBattery: {
      _internal_mutable_cube_battery()->::Anki::Vector::external_interface::CubeBattery::MergeFrom(from._internal_cube_battery());
      break;
    }
    case kKeepAlive: {
      _internal_mutable_keep_alive()->::Anki::Vector::external_interface::KeepAlivePing::MergeFrom(from._internal_keep_alive());
      break;
    }
    case kConnectionResponse: {
      _internal_mutable_connection_response()->::Anki::Vector::external_interface::ConnectionResponse::MergeFrom(from._internal_connection_response());
      break;
    }
    case kJdocsChanged: {
      _internal_mutable_jdocs_changed()->::Anki::Vector::external_interface::JdocsChanged::MergeFrom(from._internal_jdocs_changed());
      break;
    }
    case kAlexaAuthEvent: {
      _internal_mutable_alexa_auth_event()->::Anki::Vector::external_interface::AlexaAuthEvent::MergeFrom(from._internal_alexa_auth_event());
      break;
    }
    case kMirrorModeDisabled: {
      _internal_mutable_mirror_mode_disabled()->::Anki::Vector::external_interface::MirrorModeDisabled::MergeFrom(from._internal_mirror_mode_disabled());
      break;
    }
    case kVisionModesAutoDisabled: {
      _internal_mutable_vision_modes_auto_disabled()->::Anki::Vector::external_interface::VisionModesAutoDisabled::MergeFrom(from._internal_vision_modes_auto_disabled());
      break;
    }
    case kCheckUpdateStatusResponse: {
      _internal_mutable_check_update_status_response()->::Anki::Vector::external_interface::CheckUpdateStatusResponse::MergeFrom(from._internal_check_update_status_response());
      break;
    }
    case kUserIntent: {
      _internal_mutable_user_intent()->::Anki::Vector::external_interface::UserIntent::MergeFrom(from._internal_user_intent());
      break;
    }
    case kRobotObservedMotion: {
      _internal_mutable_robot_observed_motion()->::Anki::Vector::external_interface::RobotObservedMotion::MergeFrom(from._internal_robot_observed_motion());
      break;
    }
    case kRobotErasedEnrolledFace: {
      _internal_mutable_robot_erased_enrolled_face()->::Anki::Vector::external_interface::RobotErasedEnrolledFace::MergeFrom(from._internal_robot_erased_enrolled_face());
      break;
    }
    case kRobotRenamedEnrolledFace: {
      _internal_mutable_robot_renamed_enrolled_face()->::Anki::Vector::external_interface::RobotRenamedEnrolledFace::MergeFrom(from._internal_robot_renamed_enrolled_face());
      break;
    }
    case kCameraSettingsUpdate: {
      _internal_mutable_camera_settings_update()->::Anki::Vector::external_interface::CameraSettingsUpdate::MergeFrom(from._internal_camera_settings_update());
      break;
    }
    case kUnexpectedMovement: {
      _internal_mutable_unexpected_movement()->::Anki::Vector::external_interface::UnexpectedMovement::MergeFrom(from._internal_unexpected_movement());
      break;
    }
    case EVENT_TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.Event)
}

void Event::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Event_shared_2eproto.base);
  clear_has_event_type();
}

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

void Event::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_event_type()) {
    clear_event_type();
  }
}

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


void Event::clear_event_type() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.Event)
  switch (event_type_case()) {
    case kTimeStampedStatus: {
      if (GetArena() == nullptr) {
        delete event_type_.time_stamped_status_;
      }
      break;
    }
    case kOnboarding: {
      if (GetArena() == nullptr) {
        delete event_type_.onboarding_;
      }
      break;
    }
    case kWakeWord: {
      if (GetArena() == nullptr) {
        delete event_type_.wake_word_;
      }
      break;
    }
    case kAttentionTransfer: {
      if (GetArena() == nullptr) {
        delete event_type_.attention_transfer_;
      }
      break;
    }
    case kRobotObservedFace: {
      if (GetArena() == nullptr) {
        delete event_type_.robot_observed_face_;
      }
      break;
    }
    case kRobotChangedObservedFaceId: {
      if (GetArena() == nullptr) {
        delete event_type_.robot_changed_observed_face_id_;
      }
      break;
    }
    case kObjectEvent: {
      if (GetArena() == nullptr) {
        delete event_type_.object_event_;
      }
      break;
    }
    case kStimulationInfo: {
      if (GetArena() == nullptr) {
        delete event_type_.stimulation_info_;
      }
      break;
    }
    case kPhotoTaken: {
      if (GetArena() == nullptr) {
        delete event_type_.photo_taken_;
      }
      break;
    }
    case kRobotState: {
      if (GetArena() == nullptr) {
        delete event_type_.robot_state_;
      }
      break;
    }
    case kCubeBattery: {
      if (GetArena() == nullptr) {
        delete event_type_.cube_battery_;
      }
      break;
    }
    case kKeepAlive: {
      if (GetArena() == nullptr) {
        delete event_type_.keep_alive_;
      }
      break;
    }
    case kConnectionResponse: {
      if (GetArena() == nullptr) {
        delete event_type_.connection_response_;
      }
      break;
    }
    case kJdocsChanged: {
      if (GetArena() == nullptr) {
        delete event_type_.jdocs_changed_;
      }
      break;
    }
    case kAlexaAuthEvent: {
      if (GetArena() == nullptr) {
        delete event_type_.alexa_auth_event_;
      }
      break;
    }
    case kMirrorModeDisabled: {
      if (GetArena() == nullptr) {
        delete event_type_.mirror_mode_disabled_;
      }
      break;
    }
    case kVisionModesAutoDisabled: {
      if (GetArena() == nullptr) {
        delete event_type_.vision_modes_auto_disabled_;
      }
      break;
    }
    case kCheckUpdateStatusResponse: {
      if (GetArena() == nullptr) {
        delete event_type_.check_update_status_response_;
      }
      break;
    }
    case kUserIntent: {
      if (GetArena() == nullptr) {
        delete event_type_.user_intent_;
      }
      break;
    }
    case kRobotObservedMotion: {
      if (GetArena() == nullptr) {
        delete event_type_.robot_observed_motion_;
      }
      break;
    }
    case kRobotErasedEnrolledFace: {
      if (GetArena() == nullptr) {
        delete event_type_.robot_erased_enrolled_face_;
      }
      break;
    }
    case kRobotRenamedEnrolledFace: {
      if (GetArena() == nullptr) {
        delete event_type_.robot_renamed_enrolled_face_;
      }
      break;
    }
    case kCameraSettingsUpdate: {
      if (GetArena() == nullptr) {
        delete event_type_.camera_settings_update_;
      }
      break;
    }
    case kUnexpectedMovement: {
      if (GetArena() == nullptr) {
        delete event_type_.unexpected_movement_;
      }
      break;
    }
    case EVENT_TYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = EVENT_TYPE_NOT_SET;
}


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

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

const char* Event::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.TimeStampedStatus time_stamped_status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_time_stamped_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.Onboarding onboarding = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.WakeWord wake_word = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_wake_word(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.AttentionTransfer attention_transfer = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_attention_transfer(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.RobotObservedFace robot_observed_face = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_robot_observed_face(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.RobotChangedObservedFaceID robot_changed_observed_face_id = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_robot_changed_observed_face_id(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ObjectEvent object_event = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_object_event(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.StimulationInfo stimulation_info = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_stimulation_info(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PhotoTaken photo_taken = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_photo_taken(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.RobotState robot_state = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_robot_state(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CubeBattery cube_battery = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_cube_battery(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.KeepAlivePing keep_alive = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_keep_alive(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ConnectionResponse connection_response = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_connection_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.JdocsChanged jdocs_changed = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) {
          ptr = ctx->ParseMessage(_internal_mutable_jdocs_changed(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.AlexaAuthEvent alexa_auth_event = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
          ptr = ctx->ParseMessage(_internal_mutable_alexa_auth_event(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.MirrorModeDisabled mirror_mode_disabled = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
          ptr = ctx->ParseMessage(_internal_mutable_mirror_mode_disabled(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.VisionModesAutoDisabled vision_modes_auto_disabled = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
          ptr = ctx->ParseMessage(_internal_mutable_vision_modes_auto_disabled(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CheckUpdateStatusResponse check_update_status_response = 18;
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
          ptr = ctx->ParseMessage(_internal_mutable_check_update_status_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.UserIntent user_intent = 19;
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
          ptr = ctx->ParseMessage(_internal_mutable_user_intent(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.RobotObservedMotion robot_observed_motion = 20;
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
          ptr = ctx->ParseMessage(_internal_mutable_robot_observed_motion(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.RobotErasedEnrolledFace robot_erased_enrolled_face = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
          ptr = ctx->ParseMessage(_internal_mutable_robot_erased_enrolled_face(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.RobotRenamedEnrolledFace robot_renamed_enrolled_face = 22;
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_robot_renamed_enrolled_face(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CameraSettingsUpdate camera_settings_update = 23;
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
          ptr = ctx->ParseMessage(_internal_mutable_camera_settings_update(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.UnexpectedMovement unexpected_movement = 24;
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
          ptr = ctx->ParseMessage(_internal_mutable_unexpected_movement(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

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

  // .Anki.Vector.external_interface.Onboarding onboarding = 2;
  if (_internal_has_onboarding()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::onboarding(this), target, stream);
  }

  // .Anki.Vector.external_interface.WakeWord wake_word = 3;
  if (_internal_has_wake_word()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::wake_word(this), target, stream);
  }

  // .Anki.Vector.external_interface.AttentionTransfer attention_transfer = 4;
  if (_internal_has_attention_transfer()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::attention_transfer(this), target, stream);
  }

  // .Anki.Vector.external_interface.RobotObservedFace robot_observed_face = 5;
  if (_internal_has_robot_observed_face()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        5, _Internal::robot_observed_face(this), target, stream);
  }

  // .Anki.Vector.external_interface.RobotChangedObservedFaceID robot_changed_observed_face_id = 6;
  if (_internal_has_robot_changed_observed_face_id()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        6, _Internal::robot_changed_observed_face_id(this), target, stream);
  }

  // .Anki.Vector.external_interface.ObjectEvent object_event = 7;
  if (_internal_has_object_event()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        7, _Internal::object_event(this), target, stream);
  }

  // .Anki.Vector.external_interface.StimulationInfo stimulation_info = 8;
  if (_internal_has_stimulation_info()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        8, _Internal::stimulation_info(this), target, stream);
  }

  // .Anki.Vector.external_interface.PhotoTaken photo_taken = 9;
  if (_internal_has_photo_taken()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        9, _Internal::photo_taken(this), target, stream);
  }

  // .Anki.Vector.external_interface.RobotState robot_state = 10;
  if (_internal_has_robot_state()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        10, _Internal::robot_state(this), target, stream);
  }

  // .Anki.Vector.external_interface.CubeBattery cube_battery = 11;
  if (_internal_has_cube_battery()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        11, _Internal::cube_battery(this), target, stream);
  }

  // .Anki.Vector.external_interface.KeepAlivePing keep_alive = 12;
  if (_internal_has_keep_alive()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        12, _Internal::keep_alive(this), target, stream);
  }

  // .Anki.Vector.external_interface.ConnectionResponse connection_response = 13;
  if (_internal_has_connection_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        13, _Internal::connection_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.JdocsChanged jdocs_changed = 14;
  if (_internal_has_jdocs_changed()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        14, _Internal::jdocs_changed(this), target, stream);
  }

  // .Anki.Vector.external_interface.AlexaAuthEvent alexa_auth_event = 15;
  if (_internal_has_alexa_auth_event()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        15, _Internal::alexa_auth_event(this), target, stream);
  }

  // .Anki.Vector.external_interface.MirrorModeDisabled mirror_mode_disabled = 16;
  if (_internal_has_mirror_mode_disabled()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        16, _Internal::mirror_mode_disabled(this), target, stream);
  }

  // .Anki.Vector.external_interface.VisionModesAutoDisabled vision_modes_auto_disabled = 17;
  if (_internal_has_vision_modes_auto_disabled()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        17, _Internal::vision_modes_auto_disabled(this), target, stream);
  }

  // .Anki.Vector.external_interface.CheckUpdateStatusResponse check_update_status_response = 18;
  if (_internal_has_check_update_status_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        18, _Internal::check_update_status_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.UserIntent user_intent = 19;
  if (_internal_has_user_intent()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        19, _Internal::user_intent(this), target, stream);
  }

  // .Anki.Vector.external_interface.RobotObservedMotion robot_observed_motion = 20;
  if (_internal_has_robot_observed_motion()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        20, _Internal::robot_observed_motion(this), target, stream);
  }

  // .Anki.Vector.external_interface.RobotErasedEnrolledFace robot_erased_enrolled_face = 21;
  if (_internal_has_robot_erased_enrolled_face()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        21, _Internal::robot_erased_enrolled_face(this), target, stream);
  }

  // .Anki.Vector.external_interface.RobotRenamedEnrolledFace robot_renamed_enrolled_face = 22;
  if (_internal_has_robot_renamed_enrolled_face()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        22, _Internal::robot_renamed_enrolled_face(this), target, stream);
  }

  // .Anki.Vector.external_interface.CameraSettingsUpdate camera_settings_update = 23;
  if (_internal_has_camera_settings_update()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        23, _Internal::camera_settings_update(this), target, stream);
  }

  // .Anki.Vector.external_interface.UnexpectedMovement unexpected_movement = 24;
  if (_internal_has_unexpected_movement()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        24, _Internal::unexpected_movement(this), target, stream);
  }

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

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

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

  switch (event_type_case()) {
    // .Anki.Vector.external_interface.TimeStampedStatus time_stamped_status = 1;
    case kTimeStampedStatus: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.time_stamped_status_);
      break;
    }
    // .Anki.Vector.external_interface.Onboarding onboarding = 2;
    case kOnboarding: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.onboarding_);
      break;
    }
    // .Anki.Vector.external_interface.WakeWord wake_word = 3;
    case kWakeWord: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.wake_word_);
      break;
    }
    // .Anki.Vector.external_interface.AttentionTransfer attention_transfer = 4;
    case kAttentionTransfer: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.attention_transfer_);
      break;
    }
    // .Anki.Vector.external_interface.RobotObservedFace robot_observed_face = 5;
    case kRobotObservedFace: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.robot_observed_face_);
      break;
    }
    // .Anki.Vector.external_interface.RobotChangedObservedFaceID robot_changed_observed_face_id = 6;
    case kRobotChangedObservedFaceId: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.robot_changed_observed_face_id_);
      break;
    }
    // .Anki.Vector.external_interface.ObjectEvent object_event = 7;
    case kObjectEvent: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.object_event_);
      break;
    }
    // .Anki.Vector.external_interface.StimulationInfo stimulation_info = 8;
    case kStimulationInfo: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.stimulation_info_);
      break;
    }
    // .Anki.Vector.external_interface.PhotoTaken photo_taken = 9;
    case kPhotoTaken: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.photo_taken_);
      break;
    }
    // .Anki.Vector.external_interface.RobotState robot_state = 10;
    case kRobotState: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.robot_state_);
      break;
    }
    // .Anki.Vector.external_interface.CubeBattery cube_battery = 11;
    case kCubeBattery: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.cube_battery_);
      break;
    }
    // .Anki.Vector.external_interface.KeepAlivePing keep_alive = 12;
    case kKeepAlive: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.keep_alive_);
      break;
    }
    // .Anki.Vector.external_interface.ConnectionResponse connection_response = 13;
    case kConnectionResponse: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.connection_response_);
      break;
    }
    // .Anki.Vector.external_interface.JdocsChanged jdocs_changed = 14;
    case kJdocsChanged: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.jdocs_changed_);
      break;
    }
    // .Anki.Vector.external_interface.AlexaAuthEvent alexa_auth_event = 15;
    case kAlexaAuthEvent: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.alexa_auth_event_);
      break;
    }
    // .Anki.Vector.external_interface.MirrorModeDisabled mirror_mode_disabled = 16;
    case kMirrorModeDisabled: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.mirror_mode_disabled_);
      break;
    }
    // .Anki.Vector.external_interface.VisionModesAutoDisabled vision_modes_auto_disabled = 17;
    case kVisionModesAutoDisabled: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.vision_modes_auto_disabled_);
      break;
    }
    // .Anki.Vector.external_interface.CheckUpdateStatusResponse check_update_status_response = 18;
    case kCheckUpdateStatusResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.check_update_status_response_);
      break;
    }
    // .Anki.Vector.external_interface.UserIntent user_intent = 19;
    case kUserIntent: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.user_intent_);
      break;
    }
    // .Anki.Vector.external_interface.RobotObservedMotion robot_observed_motion = 20;
    case kRobotObservedMotion: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.robot_observed_motion_);
      break;
    }
    // .Anki.Vector.external_interface.RobotErasedEnrolledFace robot_erased_enrolled_face = 21;
    case kRobotErasedEnrolledFace: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.robot_erased_enrolled_face_);
      break;
    }
    // .Anki.Vector.external_interface.RobotRenamedEnrolledFace robot_renamed_enrolled_face = 22;
    case kRobotRenamedEnrolledFace: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.robot_renamed_enrolled_face_);
      break;
    }
    // .Anki.Vector.external_interface.CameraSettingsUpdate camera_settings_update = 23;
    case kCameraSettingsUpdate: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.camera_settings_update_);
      break;
    }
    // .Anki.Vector.external_interface.UnexpectedMovement unexpected_movement = 24;
    case kUnexpectedMovement: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *event_type_.unexpected_movement_);
      break;
    }
    case EVENT_TYPE_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  switch (from.event_type_case()) {
    case kTimeStampedStatus: {
      _internal_mutable_time_stamped_status()->::Anki::Vector::external_interface::TimeStampedStatus::MergeFrom(from._internal_time_stamped_status());
      break;
    }
    case kOnboarding: {
      _internal_mutable_onboarding()->::Anki::Vector::external_interface::Onboarding::MergeFrom(from._internal_onboarding());
      break;
    }
    case kWakeWord: {
      _internal_mutable_wake_word()->::Anki::Vector::external_interface::WakeWord::MergeFrom(from._internal_wake_word());
      break;
    }
    case kAttentionTransfer: {
      _internal_mutable_attention_transfer()->::Anki::Vector::external_interface::AttentionTransfer::MergeFrom(from._internal_attention_transfer());
      break;
    }
    case kRobotObservedFace: {
      _internal_mutable_robot_observed_face()->::Anki::Vector::external_interface::RobotObservedFace::MergeFrom(from._internal_robot_observed_face());
      break;
    }
    case kRobotChangedObservedFaceId: {
      _internal_mutable_robot_changed_observed_face_id()->::Anki::Vector::external_interface::RobotChangedObservedFaceID::MergeFrom(from._internal_robot_changed_observed_face_id());
      break;
    }
    case kObjectEvent: {
      _internal_mutable_object_event()->::Anki::Vector::external_interface::ObjectEvent::MergeFrom(from._internal_object_event());
      break;
    }
    case kStimulationInfo: {
      _internal_mutable_stimulation_info()->::Anki::Vector::external_interface::StimulationInfo::MergeFrom(from._internal_stimulation_info());
      break;
    }
    case kPhotoTaken: {
      _internal_mutable_photo_taken()->::Anki::Vector::external_interface::PhotoTaken::MergeFrom(from._internal_photo_taken());
      break;
    }
    case kRobotState: {
      _internal_mutable_robot_state()->::Anki::Vector::external_interface::RobotState::MergeFrom(from._internal_robot_state());
      break;
    }
    case kCubeBattery: {
      _internal_mutable_cube_battery()->::Anki::Vector::external_interface::CubeBattery::MergeFrom(from._internal_cube_battery());
      break;
    }
    case kKeepAlive: {
      _internal_mutable_keep_alive()->::Anki::Vector::external_interface::KeepAlivePing::MergeFrom(from._internal_keep_alive());
      break;
    }
    case kConnectionResponse: {
      _internal_mutable_connection_response()->::Anki::Vector::external_interface::ConnectionResponse::MergeFrom(from._internal_connection_response());
      break;
    }
    case kJdocsChanged: {
      _internal_mutable_jdocs_changed()->::Anki::Vector::external_interface::JdocsChanged::MergeFrom(from._internal_jdocs_changed());
      break;
    }
    case kAlexaAuthEvent: {
      _internal_mutable_alexa_auth_event()->::Anki::Vector::external_interface::AlexaAuthEvent::MergeFrom(from._internal_alexa_auth_event());
      break;
    }
    case kMirrorModeDisabled: {
      _internal_mutable_mirror_mode_disabled()->::Anki::Vector::external_interface::MirrorModeDisabled::MergeFrom(from._internal_mirror_mode_disabled());
      break;
    }
    case kVisionModesAutoDisabled: {
      _internal_mutable_vision_modes_auto_disabled()->::Anki::Vector::external_interface::VisionModesAutoDisabled::MergeFrom(from._internal_vision_modes_auto_disabled());
      break;
    }
    case kCheckUpdateStatusResponse: {
      _internal_mutable_check_update_status_response()->::Anki::Vector::external_interface::CheckUpdateStatusResponse::MergeFrom(from._internal_check_update_status_response());
      break;
    }
    case kUserIntent: {
      _internal_mutable_user_intent()->::Anki::Vector::external_interface::UserIntent::MergeFrom(from._internal_user_intent());
      break;
    }
    case kRobotObservedMotion: {
      _internal_mutable_robot_observed_motion()->::Anki::Vector::external_interface::RobotObservedMotion::MergeFrom(from._internal_robot_observed_motion());
      break;
    }
    case kRobotErasedEnrolledFace: {
      _internal_mutable_robot_erased_enrolled_face()->::Anki::Vector::external_interface::RobotErasedEnrolledFace::MergeFrom(from._internal_robot_erased_enrolled_face());
      break;
    }
    case kRobotRenamedEnrolledFace: {
      _internal_mutable_robot_renamed_enrolled_face()->::Anki::Vector::external_interface::RobotRenamedEnrolledFace::MergeFrom(from._internal_robot_renamed_enrolled_face());
      break;
    }
    case kCameraSettingsUpdate: {
      _internal_mutable_camera_settings_update()->::Anki::Vector::external_interface::CameraSettingsUpdate::MergeFrom(from._internal_camera_settings_update());
      break;
    }
    case kUnexpectedMovement: {
      _internal_mutable_unexpected_movement()->::Anki::Vector::external_interface::UnexpectedMovement::MergeFrom(from._internal_unexpected_movement());
      break;
    }
    case EVENT_TYPE_NOT_SET: {
      break;
    }
  }
}

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

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

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

void Event::InternalSwap(Event* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(event_type_, other->event_type_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

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


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

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

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

void FilterList::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_FilterList_shared_2eproto.base);
}

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

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

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


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

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

const char* FilterList::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated string list = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_list();
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.FilterList.list"));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // repeated string list = 1;
  for (int i = 0, n = this->_internal_list_size(); i < n; i++) {
    const auto& s = this->_internal_list(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.FilterList.list");
    target = stream->WriteString(1, s, target);
  }

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

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

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

  // repeated string list = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(list_.size());
  for (int i = 0, n = list_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      list_.Get(i));
  }

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

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

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

  list_.MergeFrom(from.list_);
}

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

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

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

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

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


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

void EventRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_EventRequest_default_instance_.white_list_ = const_cast< ::Anki::Vector::external_interface::FilterList*>(
      ::Anki::Vector::external_interface::FilterList::internal_default_instance());
  ::Anki::Vector::external_interface::_EventRequest_default_instance_.black_list_ = const_cast< ::Anki::Vector::external_interface::FilterList*>(
      ::Anki::Vector::external_interface::FilterList::internal_default_instance());
}
class EventRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::FilterList& white_list(const EventRequest* msg);
  static const ::Anki::Vector::external_interface::FilterList& black_list(const EventRequest* msg);
};

const ::Anki::Vector::external_interface::FilterList&
EventRequest::_Internal::white_list(const EventRequest* msg) {
  return *msg->list_type_.white_list_;
}
const ::Anki::Vector::external_interface::FilterList&
EventRequest::_Internal::black_list(const EventRequest* msg) {
  return *msg->list_type_.black_list_;
}
void EventRequest::set_allocated_white_list(::Anki::Vector::external_interface::FilterList* white_list) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_list_type();
  if (white_list) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(white_list);
    if (message_arena != submessage_arena) {
      white_list = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, white_list, submessage_arena);
    }
    set_has_white_list();
    list_type_.white_list_ = white_list;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.EventRequest.white_list)
}
void EventRequest::set_allocated_black_list(::Anki::Vector::external_interface::FilterList* black_list) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_list_type();
  if (black_list) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(black_list);
    if (message_arena != submessage_arena) {
      black_list = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, black_list, submessage_arena);
    }
    set_has_black_list();
    list_type_.black_list_ = black_list;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.EventRequest.black_list)
}
EventRequest::EventRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EventRequest)
}
EventRequest::EventRequest(const EventRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  connection_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_connection_id().empty()) {
    connection_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_connection_id(),
      GetArena());
  }
  clear_has_list_type();
  switch (from.list_type_case()) {
    case kWhiteList: {
      _internal_mutable_white_list()->::Anki::Vector::external_interface::FilterList::MergeFrom(from._internal_white_list());
      break;
    }
    case kBlackList: {
      _internal_mutable_black_list()->::Anki::Vector::external_interface::FilterList::MergeFrom(from._internal_black_list());
      break;
    }
    case LIST_TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EventRequest)
}

void EventRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EventRequest_shared_2eproto.base);
  connection_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  clear_has_list_type();
}

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

void EventRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  connection_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (has_list_type()) {
    clear_list_type();
  }
}

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


void EventRequest::clear_list_type() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.EventRequest)
  switch (list_type_case()) {
    case kWhiteList: {
      if (GetArena() == nullptr) {
        delete list_type_.white_list_;
      }
      break;
    }
    case kBlackList: {
      if (GetArena() == nullptr) {
        delete list_type_.black_list_;
      }
      break;
    }
    case LIST_TYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = LIST_TYPE_NOT_SET;
}


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

  connection_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  clear_list_type();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EventRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.FilterList white_list = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_white_list(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.FilterList black_list = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_black_list(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string connection_id = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_connection_id();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.EventRequest.connection_id"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

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

  // .Anki.Vector.external_interface.FilterList black_list = 2;
  if (_internal_has_black_list()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::black_list(this), target, stream);
  }

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

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

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

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

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

  switch (list_type_case()) {
    // .Anki.Vector.external_interface.FilterList white_list = 1;
    case kWhiteList: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *list_type_.white_list_);
      break;
    }
    // .Anki.Vector.external_interface.FilterList black_list = 2;
    case kBlackList: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *list_type_.black_list_);
      break;
    }
    case LIST_TYPE_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  if (from.connection_id().size() > 0) {
    _internal_set_connection_id(from._internal_connection_id());
  }
  switch (from.list_type_case()) {
    case kWhiteList: {
      _internal_mutable_white_list()->::Anki::Vector::external_interface::FilterList::MergeFrom(from._internal_white_list());
      break;
    }
    case kBlackList: {
      _internal_mutable_black_list()->::Anki::Vector::external_interface::FilterList::MergeFrom(from._internal_black_list());
      break;
    }
    case LIST_TYPE_NOT_SET: {
      break;
    }
  }
}

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

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

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

void EventRequest::InternalSwap(EventRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  connection_id_.Swap(&other->connection_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(list_type_, other->list_type_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

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


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

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

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

void EventResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EventResponse_shared_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&event_) -
      reinterpret_cast<char*>(&status_)) + sizeof(event_));
}

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

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

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


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

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

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

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

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

  // .Anki.Vector.external_interface.Event event = 2;
  if (this->has_event()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::event(this), target, stream);
  }

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

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

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

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

  // .Anki.Vector.external_interface.Event event = 2;
  if (this->has_event()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *event_);
  }

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

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

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

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

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

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

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

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

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


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

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

UserAuthenticationRequest::UserAuthenticationRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UserAuthenticationRequest)
}
UserAuthenticationRequest::UserAuthenticationRequest(const UserAuthenticationRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  user_session_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_user_session_id().empty()) {
    user_session_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_user_session_id(),
      GetArena());
  }
  client_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_client_name().empty()) {
    client_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_client_name(),
      GetArena());
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UserAuthenticationRequest)
}

void UserAuthenticationRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UserAuthenticationRequest_shared_2eproto.base);
  user_session_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  client_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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

void UserAuthenticationRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  user_session_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  client_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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


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

  user_session_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  client_name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UserAuthenticationRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bytes user_session_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          auto str = _internal_mutable_user_session_id();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bytes client_name = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_client_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // bytes user_session_id = 1;
  if (this->user_session_id().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        1, this->_internal_user_session_id(), target);
  }

  // bytes client_name = 2;
  if (this->client_name().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        2, this->_internal_client_name(), target);
  }

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

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

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

  // bytes user_session_id = 1;
  if (this->user_session_id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_user_session_id());
  }

  // bytes client_name = 2;
  if (this->client_name().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_client_name());
  }

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

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

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

  if (from.user_session_id().size() > 0) {
    _internal_set_user_session_id(from._internal_user_session_id());
  }
  if (from.client_name().size() > 0) {
    _internal_set_client_name(from._internal_client_name());
  }
}

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

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

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

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

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


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

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

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

void UserAuthenticationResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UserAuthenticationResponse_shared_2eproto.base);
  client_token_guid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&code_) -
      reinterpret_cast<char*>(&status_)) + sizeof(code_));
}

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

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

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


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

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

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

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

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

  // .Anki.Vector.external_interface.UserAuthenticationResponse.Code code = 2;
  if (this->code() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_code(), target);
  }

  // bytes client_token_guid = 3;
  if (this->client_token_guid().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        3, this->_internal_client_token_guid(), target);
  }

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

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

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

  // bytes client_token_guid = 3;
  if (this->client_token_guid().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_client_token_guid());
  }

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

  // .Anki.Vector.external_interface.UserAuthenticationResponse.Code code = 2;
  if (this->code() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_code());
  }

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

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

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

  if (from.client_token_guid().size() > 0) {
    _internal_set_client_token_guid(from._internal_client_token_guid());
  }
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.code() != 0) {
    _internal_set_code(from._internal_code());
  }
}

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

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

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

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

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


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

void GatewayWrapper::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.event_ = const_cast< ::Anki::Vector::external_interface::Event*>(
      ::Anki::Vector::external_interface::Event::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_state_request_ = const_cast< ::Anki::Vector::external_interface::OnboardingStateRequest*>(
      ::Anki::Vector::external_interface::OnboardingStateRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_state_ = const_cast< ::Anki::Vector::external_interface::OnboardingState*>(
      ::Anki::Vector::external_interface::OnboardingState::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_skip_onboarding_ = const_cast< ::Anki::Vector::external_interface::OnboardingSkipOnboarding*>(
      ::Anki::Vector::external_interface::OnboardingSkipOnboarding::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_restart_ = const_cast< ::Anki::Vector::external_interface::OnboardingRestart*>(
      ::Anki::Vector::external_interface::OnboardingRestart::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_complete_request_ = const_cast< ::Anki::Vector::external_interface::OnboardingCompleteRequest*>(
      ::Anki::Vector::external_interface::OnboardingCompleteRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_complete_response_ = const_cast< ::Anki::Vector::external_interface::OnboardingCompleteResponse*>(
      ::Anki::Vector::external_interface::OnboardingCompleteResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_wake_up_request_ = const_cast< ::Anki::Vector::external_interface::OnboardingWakeUpRequest*>(
      ::Anki::Vector::external_interface::OnboardingWakeUpRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_wake_up_response_ = const_cast< ::Anki::Vector::external_interface::OnboardingWakeUpResponse*>(
      ::Anki::Vector::external_interface::OnboardingWakeUpResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_wake_up_started_request_ = const_cast< ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest*>(
      ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_wake_up_started_response_ = const_cast< ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse*>(
      ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_set_phase_request_ = const_cast< ::Anki::Vector::external_interface::OnboardingSetPhaseRequest*>(
      ::Anki::Vector::external_interface::OnboardingSetPhaseRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_set_phase_response_ = const_cast< ::Anki::Vector::external_interface::OnboardingSetPhaseResponse*>(
      ::Anki::Vector::external_interface::OnboardingSetPhaseResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_phase_progress_request_ = const_cast< ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest*>(
      ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_phase_progress_response_ = const_cast< ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse*>(
      ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_charge_info_request_ = const_cast< ::Anki::Vector::external_interface::OnboardingChargeInfoRequest*>(
      ::Anki::Vector::external_interface::OnboardingChargeInfoRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_charge_info_response_ = const_cast< ::Anki::Vector::external_interface::OnboardingChargeInfoResponse*>(
      ::Anki::Vector::external_interface::OnboardingChargeInfoResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.onboarding_mark_complete_and_exit_ = const_cast< ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit*>(
      ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.latest_attention_transfer_request_ = const_cast< ::Anki::Vector::external_interface::LatestAttentionTransferRequest*>(
      ::Anki::Vector::external_interface::LatestAttentionTransferRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.latest_attention_transfer_ = const_cast< ::Anki::Vector::external_interface::LatestAttentionTransfer*>(
      ::Anki::Vector::external_interface::LatestAttentionTransfer::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.photos_info_request_ = const_cast< ::Anki::Vector::external_interface::PhotosInfoRequest*>(
      ::Anki::Vector::external_interface::PhotosInfoRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.photos_info_response_ = const_cast< ::Anki::Vector::external_interface::PhotosInfoResponse*>(
      ::Anki::Vector::external_interface::PhotosInfoResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.photo_request_ = const_cast< ::Anki::Vector::external_interface::PhotoRequest*>(
      ::Anki::Vector::external_interface::PhotoRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.photo_path_message_ = const_cast< ::Anki::Vector::external_interface::PhotoPathMessage*>(
      ::Anki::Vector::external_interface::PhotoPathMessage::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.thumbnail_request_ = const_cast< ::Anki::Vector::external_interface::ThumbnailRequest*>(
      ::Anki::Vector::external_interface::ThumbnailRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.thumbnail_path_message_ = const_cast< ::Anki::Vector::external_interface::ThumbnailPathMessage*>(
      ::Anki::Vector::external_interface::ThumbnailPathMessage::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.delete_photo_request_ = const_cast< ::Anki::Vector::external_interface::DeletePhotoRequest*>(
      ::Anki::Vector::external_interface::DeletePhotoRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.delete_photo_response_ = const_cast< ::Anki::Vector::external_interface::DeletePhotoResponse*>(
      ::Anki::Vector::external_interface::DeletePhotoResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.pull_jdocs_request_ = const_cast< ::Anki::Vector::external_interface::PullJdocsRequest*>(
      ::Anki::Vector::external_interface::PullJdocsRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.pull_jdocs_response_ = const_cast< ::Anki::Vector::external_interface::PullJdocsResponse*>(
      ::Anki::Vector::external_interface::PullJdocsResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.update_settings_request_ = const_cast< ::Anki::Vector::external_interface::UpdateSettingsRequest*>(
      ::Anki::Vector::external_interface::UpdateSettingsRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.update_settings_response_ = const_cast< ::Anki::Vector::external_interface::UpdateSettingsResponse*>(
      ::Anki::Vector::external_interface::UpdateSettingsResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.update_account_settings_request_ = const_cast< ::Anki::Vector::external_interface::UpdateAccountSettingsRequest*>(
      ::Anki::Vector::external_interface::UpdateAccountSettingsRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.update_account_settings_response_ = const_cast< ::Anki::Vector::external_interface::UpdateAccountSettingsResponse*>(
      ::Anki::Vector::external_interface::UpdateAccountSettingsResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.update_user_entitlements_request_ = const_cast< ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest*>(
      ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.update_user_entitlements_response_ = const_cast< ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse*>(
      ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.drive_off_charger_request_ = const_cast< ::Anki::Vector::external_interface::DriveOffChargerRequest*>(
      ::Anki::Vector::external_interface::DriveOffChargerRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.drive_off_charger_response_ = const_cast< ::Anki::Vector::external_interface::DriveOffChargerResponse*>(
      ::Anki::Vector::external_interface::DriveOffChargerResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.drive_on_charger_request_ = const_cast< ::Anki::Vector::external_interface::DriveOnChargerRequest*>(
      ::Anki::Vector::external_interface::DriveOnChargerRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.drive_on_charger_response_ = const_cast< ::Anki::Vector::external_interface::DriveOnChargerResponse*>(
      ::Anki::Vector::external_interface::DriveOnChargerResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.find_faces_request_ = const_cast< ::Anki::Vector::external_interface::FindFacesRequest*>(
      ::Anki::Vector::external_interface::FindFacesRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.find_faces_response_ = const_cast< ::Anki::Vector::external_interface::FindFacesResponse*>(
      ::Anki::Vector::external_interface::FindFacesResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.look_around_in_place_request_ = const_cast< ::Anki::Vector::external_interface::LookAroundInPlaceRequest*>(
      ::Anki::Vector::external_interface::LookAroundInPlaceRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.look_around_in_place_response_ = const_cast< ::Anki::Vector::external_interface::LookAroundInPlaceResponse*>(
      ::Anki::Vector::external_interface::LookAroundInPlaceResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.roll_block_request_ = const_cast< ::Anki::Vector::external_interface::RollBlockRequest*>(
      ::Anki::Vector::external_interface::RollBlockRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.roll_block_response_ = const_cast< ::Anki::Vector::external_interface::RollBlockResponse*>(
      ::Anki::Vector::external_interface::RollBlockResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.enroll_face_request_ = const_cast< ::Anki::Vector::external_interface::EnrollFaceRequest*>(
      ::Anki::Vector::external_interface::EnrollFaceRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.enroll_face_response_ = const_cast< ::Anki::Vector::external_interface::EnrollFaceResponse*>(
      ::Anki::Vector::external_interface::EnrollFaceResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.set_face_to_enroll_request_ = const_cast< ::Anki::Vector::external_interface::SetFaceToEnrollRequest*>(
      ::Anki::Vector::external_interface::SetFaceToEnrollRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.set_face_to_enroll_response_ = const_cast< ::Anki::Vector::external_interface::SetFaceToEnrollResponse*>(
      ::Anki::Vector::external_interface::SetFaceToEnrollResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.cancel_behavior_request_ = const_cast< ::Anki::Vector::external_interface::CancelBehaviorRequest*>(
      ::Anki::Vector::external_interface::CancelBehaviorRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.cancel_behavior_response_ = const_cast< ::Anki::Vector::external_interface::CancelBehaviorResponse*>(
      ::Anki::Vector::external_interface::CancelBehaviorResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.turn_in_place_request_ = const_cast< ::Anki::Vector::external_interface::TurnInPlaceRequest*>(
      ::Anki::Vector::external_interface::TurnInPlaceRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.turn_in_place_response_ = const_cast< ::Anki::Vector::external_interface::TurnInPlaceResponse*>(
      ::Anki::Vector::external_interface::TurnInPlaceResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.drive_straight_request_ = const_cast< ::Anki::Vector::external_interface::DriveStraightRequest*>(
      ::Anki::Vector::external_interface::DriveStraightRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.drive_straight_response_ = const_cast< ::Anki::Vector::external_interface::DriveStraightResponse*>(
      ::Anki::Vector::external_interface::DriveStraightResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.set_head_angle_request_ = const_cast< ::Anki::Vector::external_interface::SetHeadAngleRequest*>(
      ::Anki::Vector::external_interface::SetHeadAngleRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.set_head_angle_response_ = const_cast< ::Anki::Vector::external_interface::SetHeadAngleResponse*>(
      ::Anki::Vector::external_interface::SetHeadAngleResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.set_lift_height_request_ = const_cast< ::Anki::Vector::external_interface::SetLiftHeightRequest*>(
      ::Anki::Vector::external_interface::SetLiftHeightRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.set_lift_height_response_ = const_cast< ::Anki::Vector::external_interface::SetLiftHeightResponse*>(
      ::Anki::Vector::external_interface::SetLiftHeightResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.play_animation_request_ = const_cast< ::Anki::Vector::external_interface::PlayAnimationRequest*>(
      ::Anki::Vector::external_interface::PlayAnimationRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.play_animation_response_ = const_cast< ::Anki::Vector::external_interface::PlayAnimationResponse*>(
      ::Anki::Vector::external_interface::PlayAnimationResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.go_to_pose_request_ = const_cast< ::Anki::Vector::external_interface::GoToPoseRequest*>(
      ::Anki::Vector::external_interface::GoToPoseRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.go_to_pose_response_ = const_cast< ::Anki::Vector::external_interface::GoToPoseResponse*>(
      ::Anki::Vector::external_interface::GoToPoseResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.dock_with_cube_request_ = const_cast< ::Anki::Vector::external_interface::DockWithCubeRequest*>(
      ::Anki::Vector::external_interface::DockWithCubeRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.dock_with_cube_response_ = const_cast< ::Anki::Vector::external_interface::DockWithCubeResponse*>(
      ::Anki::Vector::external_interface::DockWithCubeResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.drive_wheels_request_ = const_cast< ::Anki::Vector::external_interface::DriveWheelsRequest*>(
      ::Anki::Vector::external_interface::DriveWheelsRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.drive_wheels_response_ = const_cast< ::Anki::Vector::external_interface::DriveWheelsResponse*>(
      ::Anki::Vector::external_interface::DriveWheelsResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.list_animations_request_ = const_cast< ::Anki::Vector::external_interface::ListAnimationsRequest*>(
      ::Anki::Vector::external_interface::ListAnimationsRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.list_animations_response_ = const_cast< ::Anki::Vector::external_interface::ListAnimationsResponse*>(
      ::Anki::Vector::external_interface::ListAnimationsResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.play_animation_trigger_request_ = const_cast< ::Anki::Vector::external_interface::PlayAnimationTriggerRequest*>(
      ::Anki::Vector::external_interface::PlayAnimationTriggerRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.list_animation_triggers_request_ = const_cast< ::Anki::Vector::external_interface::ListAnimationTriggersRequest*>(
      ::Anki::Vector::external_interface::ListAnimationTriggersRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.list_animation_triggers_response_ = const_cast< ::Anki::Vector::external_interface::ListAnimationTriggersResponse*>(
      ::Anki::Vector::external_interface::ListAnimationTriggersResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.cancel_action_by_id_tag_request_ = const_cast< ::Anki::Vector::external_interface::CancelActionByIdTagRequest*>(
      ::Anki::Vector::external_interface::CancelActionByIdTagRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.cancel_action_by_id_tag_response_ = const_cast< ::Anki::Vector::external_interface::CancelActionByIdTagResponse*>(
      ::Anki::Vector::external_interface::CancelActionByIdTagResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.turn_towards_face_request_ = const_cast< ::Anki::Vector::external_interface::TurnTowardsFaceRequest*>(
      ::Anki::Vector::external_interface::TurnTowardsFaceRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.turn_towards_face_response_ = const_cast< ::Anki::Vector::external_interface::TurnTowardsFaceResponse*>(
      ::Anki::Vector::external_interface::TurnTowardsFaceResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.go_to_object_request_ = const_cast< ::Anki::Vector::external_interface::GoToObjectRequest*>(
      ::Anki::Vector::external_interface::GoToObjectRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.go_to_object_response_ = const_cast< ::Anki::Vector::external_interface::GoToObjectResponse*>(
      ::Anki::Vector::external_interface::GoToObjectResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.roll_object_request_ = const_cast< ::Anki::Vector::external_interface::RollObjectRequest*>(
      ::Anki::Vector::external_interface::RollObjectRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.roll_object_response_ = const_cast< ::Anki::Vector::external_interface::RollObjectResponse*>(
      ::Anki::Vector::external_interface::RollObjectResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.pop_a_wheelie_request_ = const_cast< ::Anki::Vector::external_interface::PopAWheelieRequest*>(
      ::Anki::Vector::external_interface::PopAWheelieRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.pop_a_wheelie_response_ = const_cast< ::Anki::Vector::external_interface::PopAWheelieResponse*>(
      ::Anki::Vector::external_interface::PopAWheelieResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.pickup_object_request_ = const_cast< ::Anki::Vector::external_interface::PickupObjectRequest*>(
      ::Anki::Vector::external_interface::PickupObjectRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.pickup_object_response_ = const_cast< ::Anki::Vector::external_interface::PickupObjectResponse*>(
      ::Anki::Vector::external_interface::PickupObjectResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.place_object_on_ground_here_request_ = const_cast< ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest*>(
      ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.place_object_on_ground_here_response_ = const_cast< ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse*>(
      ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.stop_all_motors_request_ = const_cast< ::Anki::Vector::external_interface::StopAllMotorsRequest*>(
      ::Anki::Vector::external_interface::StopAllMotorsRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.stop_all_motors_response_ = const_cast< ::Anki::Vector::external_interface::StopAllMotorsResponse*>(
      ::Anki::Vector::external_interface::StopAllMotorsResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.robot_history_request_ = const_cast< ::Anki::Vector::external_interface::RobotHistoryRequest*>(
      ::Anki::Vector::external_interface::RobotHistoryRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.robot_history_response_ = const_cast< ::Anki::Vector::external_interface::RobotHistoryResponse*>(
      ::Anki::Vector::external_interface::RobotHistoryResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.connect_cube_request_ = const_cast< ::Anki::Vector::external_interface::ConnectCubeRequest*>(
      ::Anki::Vector::external_interface::ConnectCubeRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.connect_cube_response_ = const_cast< ::Anki::Vector::external_interface::ConnectCubeResponse*>(
      ::Anki::Vector::external_interface::ConnectCubeResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.disconnect_cube_request_ = const_cast< ::Anki::Vector::external_interface::DisconnectCubeRequest*>(
      ::Anki::Vector::external_interface::DisconnectCubeRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.flash_cube_lights_request_ = const_cast< ::Anki::Vector::external_interface::FlashCubeLightsRequest*>(
      ::Anki::Vector::external_interface::FlashCubeLightsRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.forget_preferred_cube_request_ = const_cast< ::Anki::Vector::external_interface::ForgetPreferredCubeRequest*>(
      ::Anki::Vector::external_interface::ForgetPreferredCubeRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.set_preferred_cube_request_ = const_cast< ::Anki::Vector::external_interface::SetPreferredCubeRequest*>(
      ::Anki::Vector::external_interface::SetPreferredCubeRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.set_cube_lights_request_ = const_cast< ::Anki::Vector::external_interface::SetCubeLightsRequest*>(
      ::Anki::Vector::external_interface::SetCubeLightsRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.cubes_available_request_ = const_cast< ::Anki::Vector::external_interface::CubesAvailableRequest*>(
      ::Anki::Vector::external_interface::CubesAvailableRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.cubes_available_response_ = const_cast< ::Anki::Vector::external_interface::CubesAvailableResponse*>(
      ::Anki::Vector::external_interface::CubesAvailableResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.battery_state_request_ = const_cast< ::Anki::Vector::external_interface::BatteryStateRequest*>(
      ::Anki::Vector::external_interface::BatteryStateRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.battery_state_response_ = const_cast< ::Anki::Vector::external_interface::BatteryStateResponse*>(
      ::Anki::Vector::external_interface::BatteryStateResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.version_state_request_ = const_cast< ::Anki::Vector::external_interface::VersionStateRequest*>(
      ::Anki::Vector::external_interface::VersionStateRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.version_state_response_ = const_cast< ::Anki::Vector::external_interface::VersionStateResponse*>(
      ::Anki::Vector::external_interface::VersionStateResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.say_text_request_ = const_cast< ::Anki::Vector::external_interface::SayTextRequest*>(
      ::Anki::Vector::external_interface::SayTextRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.say_text_response_ = const_cast< ::Anki::Vector::external_interface::SayTextResponse*>(
      ::Anki::Vector::external_interface::SayTextResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.control_request_ = const_cast< ::Anki::Vector::external_interface::ControlRequest*>(
      ::Anki::Vector::external_interface::ControlRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.control_release_ = const_cast< ::Anki::Vector::external_interface::ControlRelease*>(
      ::Anki::Vector::external_interface::ControlRelease::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.behavior_control_response_ = const_cast< ::Anki::Vector::external_interface::BehaviorControlResponse*>(
      ::Anki::Vector::external_interface::BehaviorControlResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.image_chunk_ = const_cast< ::Anki::Vector::external_interface::ImageChunk*>(
      ::Anki::Vector::external_interface::ImageChunk::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.enable_marker_detection_request_ = const_cast< ::Anki::Vector::external_interface::EnableMarkerDetectionRequest*>(
      ::Anki::Vector::external_interface::EnableMarkerDetectionRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.enable_marker_detection_response_ = const_cast< ::Anki::Vector::external_interface::EnableMarkerDetectionResponse*>(
      ::Anki::Vector::external_interface::EnableMarkerDetectionResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.enable_face_detection_request_ = const_cast< ::Anki::Vector::external_interface::EnableFaceDetectionRequest*>(
      ::Anki::Vector::external_interface::EnableFaceDetectionRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.enable_face_detection_response_ = const_cast< ::Anki::Vector::external_interface::EnableFaceDetectionResponse*>(
      ::Anki::Vector::external_interface::EnableFaceDetectionResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.enable_motion_detection_request_ = const_cast< ::Anki::Vector::external_interface::EnableMotionDetectionRequest*>(
      ::Anki::Vector::external_interface::EnableMotionDetectionRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.enable_motion_detection_response_ = const_cast< ::Anki::Vector::external_interface::EnableMotionDetectionResponse*>(
      ::Anki::Vector::external_interface::EnableMotionDetectionResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.enable_mirror_mode_request_ = const_cast< ::Anki::Vector::external_interface::EnableMirrorModeRequest*>(
      ::Anki::Vector::external_interface::EnableMirrorModeRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.enable_mirror_mode_response_ = const_cast< ::Anki::Vector::external_interface::EnableMirrorModeResponse*>(
      ::Anki::Vector::external_interface::EnableMirrorModeResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.enable_image_streaming_request_ = const_cast< ::Anki::Vector::external_interface::EnableImageStreamingRequest*>(
      ::Anki::Vector::external_interface::EnableImageStreamingRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.enable_image_streaming_response_ = const_cast< ::Anki::Vector::external_interface::EnableImageStreamingResponse*>(
      ::Anki::Vector::external_interface::EnableImageStreamingResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.is_image_streaming_enabled_request_ = const_cast< ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest*>(
      ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.is_image_streaming_enabled_response_ = const_cast< ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse*>(
      ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.check_cloud_request_ = const_cast< ::Anki::Vector::external_interface::CheckCloudRequest*>(
      ::Anki::Vector::external_interface::CheckCloudRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.check_cloud_response_ = const_cast< ::Anki::Vector::external_interface::CheckCloudResponse*>(
      ::Anki::Vector::external_interface::CheckCloudResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.audio_send_mode_request_ = const_cast< ::Anki::Vector::external_interface::AudioSendModeRequest*>(
      ::Anki::Vector::external_interface::AudioSendModeRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.audio_send_mode_changed_ = const_cast< ::Anki::Vector::external_interface::AudioSendModeChanged*>(
      ::Anki::Vector::external_interface::AudioSendModeChanged::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.audio_chunk_ = const_cast< ::Anki::Vector::external_interface::AudioChunk*>(
      ::Anki::Vector::external_interface::AudioChunk::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.feature_flag_request_ = const_cast< ::Anki::Vector::external_interface::FeatureFlagRequest*>(
      ::Anki::Vector::external_interface::FeatureFlagRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.feature_flag_response_ = const_cast< ::Anki::Vector::external_interface::FeatureFlagResponse*>(
      ::Anki::Vector::external_interface::FeatureFlagResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.feature_flag_list_request_ = const_cast< ::Anki::Vector::external_interface::FeatureFlagListRequest*>(
      ::Anki::Vector::external_interface::FeatureFlagListRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.feature_flag_list_response_ = const_cast< ::Anki::Vector::external_interface::FeatureFlagListResponse*>(
      ::Anki::Vector::external_interface::FeatureFlagListResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.app_disconnected_ = const_cast< ::Anki::Vector::external_interface::AppDisconnected*>(
      ::Anki::Vector::external_interface::AppDisconnected::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.alexa_auth_state_request_ = const_cast< ::Anki::Vector::external_interface::AlexaAuthStateRequest*>(
      ::Anki::Vector::external_interface::AlexaAuthStateRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.alexa_auth_state_response_ = const_cast< ::Anki::Vector::external_interface::AlexaAuthStateResponse*>(
      ::Anki::Vector::external_interface::AlexaAuthStateResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.alexa_opt_in_request_ = const_cast< ::Anki::Vector::external_interface::AlexaOptInRequest*>(
      ::Anki::Vector::external_interface::AlexaOptInRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.alexa_opt_in_response_ = const_cast< ::Anki::Vector::external_interface::AlexaOptInResponse*>(
      ::Anki::Vector::external_interface::AlexaOptInResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.set_eye_color_request_ = const_cast< ::Anki::Vector::external_interface::SetEyeColorRequest*>(
      ::Anki::Vector::external_interface::SetEyeColorRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.set_eye_color_response_ = const_cast< ::Anki::Vector::external_interface::SetEyeColorResponse*>(
      ::Anki::Vector::external_interface::SetEyeColorResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.master_volume_request_ = const_cast< ::Anki::Vector::external_interface::MasterVolumeRequest*>(
      ::Anki::Vector::external_interface::MasterVolumeRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.master_volume_response_ = const_cast< ::Anki::Vector::external_interface::MasterVolumeResponse*>(
      ::Anki::Vector::external_interface::MasterVolumeResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.set_camera_settings_request_ = const_cast< ::Anki::Vector::external_interface::SetCameraSettingsRequest*>(
      ::Anki::Vector::external_interface::SetCameraSettingsRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.set_camera_settings_response_ = const_cast< ::Anki::Vector::external_interface::SetCameraSettingsResponse*>(
      ::Anki::Vector::external_interface::SetCameraSettingsResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.camera_config_request_ = const_cast< ::Anki::Vector::external_interface::CameraConfigRequest*>(
      ::Anki::Vector::external_interface::CameraConfigRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.camera_config_response_ = const_cast< ::Anki::Vector::external_interface::CameraConfigResponse*>(
      ::Anki::Vector::external_interface::CameraConfigResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.external_audio_stream_prepare_ = const_cast< ::Anki::Vector::external_interface::ExternalAudioStreamPrepare*>(
      ::Anki::Vector::external_interface::ExternalAudioStreamPrepare::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.external_audio_stream_chunk_ = const_cast< ::Anki::Vector::external_interface::ExternalAudioStreamChunk*>(
      ::Anki::Vector::external_interface::ExternalAudioStreamChunk::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.external_audio_stream_cancel_ = const_cast< ::Anki::Vector::external_interface::ExternalAudioStreamCancel*>(
      ::Anki::Vector::external_interface::ExternalAudioStreamCancel::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.external_audio_stream_complete_ = const_cast< ::Anki::Vector::external_interface::ExternalAudioStreamComplete*>(
      ::Anki::Vector::external_interface::ExternalAudioStreamComplete::internal_default_instance());
  ::Anki::Vector::external_interface::_GatewayWrapper_default_instance_.external_audio_stream_response_ = const_cast< ::Anki::Vector::external_interface::ExternalAudioStreamResponse*>(
      ::Anki::Vector::external_interface::ExternalAudioStreamResponse::internal_default_instance());
}
class GatewayWrapper::_Internal {
 public:
  static const ::Anki::Vector::external_interface::Event& event(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingStateRequest& onboarding_state_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingState& onboarding_state(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingSkipOnboarding& onboarding_skip_onboarding(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingRestart& onboarding_restart(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingCompleteRequest& onboarding_complete_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingCompleteResponse& onboarding_complete_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingWakeUpRequest& onboarding_wake_up_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingWakeUpResponse& onboarding_wake_up_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest& onboarding_wake_up_started_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse& onboarding_wake_up_started_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingSetPhaseRequest& onboarding_set_phase_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingSetPhaseResponse& onboarding_set_phase_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest& onboarding_phase_progress_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse& onboarding_phase_progress_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingChargeInfoRequest& onboarding_charge_info_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingChargeInfoResponse& onboarding_charge_info_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit& onboarding_mark_complete_and_exit(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::LatestAttentionTransferRequest& latest_attention_transfer_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::LatestAttentionTransfer& latest_attention_transfer(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PhotosInfoRequest& photos_info_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PhotosInfoResponse& photos_info_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PhotoRequest& photo_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PhotoPathMessage& photo_path_message(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ThumbnailRequest& thumbnail_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ThumbnailPathMessage& thumbnail_path_message(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::DeletePhotoRequest& delete_photo_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::DeletePhotoResponse& delete_photo_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PullJdocsRequest& pull_jdocs_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PullJdocsResponse& pull_jdocs_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::UpdateSettingsRequest& update_settings_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::UpdateSettingsResponse& update_settings_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::UpdateAccountSettingsRequest& update_account_settings_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::UpdateAccountSettingsResponse& update_account_settings_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest& update_user_entitlements_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse& update_user_entitlements_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::DriveOffChargerRequest& drive_off_charger_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::DriveOffChargerResponse& drive_off_charger_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::DriveOnChargerRequest& drive_on_charger_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::DriveOnChargerResponse& drive_on_charger_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::FindFacesRequest& find_faces_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::FindFacesResponse& find_faces_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::LookAroundInPlaceRequest& look_around_in_place_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::LookAroundInPlaceResponse& look_around_in_place_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::RollBlockRequest& roll_block_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::RollBlockResponse& roll_block_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::EnrollFaceRequest& enroll_face_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::EnrollFaceResponse& enroll_face_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SetFaceToEnrollRequest& set_face_to_enroll_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SetFaceToEnrollResponse& set_face_to_enroll_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::CancelBehaviorRequest& cancel_behavior_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::CancelBehaviorResponse& cancel_behavior_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::TurnInPlaceRequest& turn_in_place_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::TurnInPlaceResponse& turn_in_place_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::DriveStraightRequest& drive_straight_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::DriveStraightResponse& drive_straight_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SetHeadAngleRequest& set_head_angle_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SetHeadAngleResponse& set_head_angle_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SetLiftHeightRequest& set_lift_height_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SetLiftHeightResponse& set_lift_height_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PlayAnimationRequest& play_animation_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PlayAnimationResponse& play_animation_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::GoToPoseRequest& go_to_pose_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::GoToPoseResponse& go_to_pose_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::DockWithCubeRequest& dock_with_cube_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::DockWithCubeResponse& dock_with_cube_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::DriveWheelsRequest& drive_wheels_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::DriveWheelsResponse& drive_wheels_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ListAnimationsRequest& list_animations_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ListAnimationsResponse& list_animations_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PlayAnimationTriggerRequest& play_animation_trigger_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ListAnimationTriggersRequest& list_animation_triggers_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ListAnimationTriggersResponse& list_animation_triggers_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::CancelActionByIdTagRequest& cancel_action_by_id_tag_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::CancelActionByIdTagResponse& cancel_action_by_id_tag_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::TurnTowardsFaceRequest& turn_towards_face_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::TurnTowardsFaceResponse& turn_towards_face_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::GoToObjectRequest& go_to_object_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::GoToObjectResponse& go_to_object_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::RollObjectRequest& roll_object_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::RollObjectResponse& roll_object_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PopAWheelieRequest& pop_a_wheelie_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PopAWheelieResponse& pop_a_wheelie_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PickupObjectRequest& pickup_object_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PickupObjectResponse& pickup_object_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest& place_object_on_ground_here_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse& place_object_on_ground_here_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::StopAllMotorsRequest& stop_all_motors_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::StopAllMotorsResponse& stop_all_motors_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::RobotHistoryRequest& robot_history_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::RobotHistoryResponse& robot_history_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ConnectCubeRequest& connect_cube_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ConnectCubeResponse& connect_cube_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::DisconnectCubeRequest& disconnect_cube_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::FlashCubeLightsRequest& flash_cube_lights_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ForgetPreferredCubeRequest& forget_preferred_cube_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SetPreferredCubeRequest& set_preferred_cube_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SetCubeLightsRequest& set_cube_lights_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::CubesAvailableRequest& cubes_available_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::CubesAvailableResponse& cubes_available_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::BatteryStateRequest& battery_state_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::BatteryStateResponse& battery_state_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::VersionStateRequest& version_state_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::VersionStateResponse& version_state_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SayTextRequest& say_text_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SayTextResponse& say_text_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ControlRequest& control_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ControlRelease& control_release(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::BehaviorControlResponse& behavior_control_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ImageChunk& image_chunk(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::EnableMarkerDetectionRequest& enable_marker_detection_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::EnableMarkerDetectionResponse& enable_marker_detection_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::EnableFaceDetectionRequest& enable_face_detection_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::EnableFaceDetectionResponse& enable_face_detection_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::EnableMotionDetectionRequest& enable_motion_detection_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::EnableMotionDetectionResponse& enable_motion_detection_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::EnableMirrorModeRequest& enable_mirror_mode_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::EnableMirrorModeResponse& enable_mirror_mode_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::EnableImageStreamingRequest& enable_image_streaming_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::EnableImageStreamingResponse& enable_image_streaming_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest& is_image_streaming_enabled_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse& is_image_streaming_enabled_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::CheckCloudRequest& check_cloud_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::CheckCloudResponse& check_cloud_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::AudioSendModeRequest& audio_send_mode_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::AudioSendModeChanged& audio_send_mode_changed(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::AudioChunk& audio_chunk(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::FeatureFlagRequest& feature_flag_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::FeatureFlagResponse& feature_flag_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::FeatureFlagListRequest& feature_flag_list_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::FeatureFlagListResponse& feature_flag_list_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::AppDisconnected& app_disconnected(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::AlexaAuthStateRequest& alexa_auth_state_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::AlexaAuthStateResponse& alexa_auth_state_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::AlexaOptInRequest& alexa_opt_in_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::AlexaOptInResponse& alexa_opt_in_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SetEyeColorRequest& set_eye_color_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SetEyeColorResponse& set_eye_color_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::MasterVolumeRequest& master_volume_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::MasterVolumeResponse& master_volume_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SetCameraSettingsRequest& set_camera_settings_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::SetCameraSettingsResponse& set_camera_settings_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::CameraConfigRequest& camera_config_request(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::CameraConfigResponse& camera_config_response(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare& external_audio_stream_prepare(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ExternalAudioStreamChunk& external_audio_stream_chunk(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ExternalAudioStreamCancel& external_audio_stream_cancel(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ExternalAudioStreamComplete& external_audio_stream_complete(const GatewayWrapper* msg);
  static const ::Anki::Vector::external_interface::ExternalAudioStreamResponse& external_audio_stream_response(const GatewayWrapper* msg);
};

const ::Anki::Vector::external_interface::Event&
GatewayWrapper::_Internal::event(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.event_;
}
const ::Anki::Vector::external_interface::OnboardingStateRequest&
GatewayWrapper::_Internal::onboarding_state_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_state_request_;
}
const ::Anki::Vector::external_interface::OnboardingState&
GatewayWrapper::_Internal::onboarding_state(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_state_;
}
const ::Anki::Vector::external_interface::OnboardingSkipOnboarding&
GatewayWrapper::_Internal::onboarding_skip_onboarding(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_skip_onboarding_;
}
const ::Anki::Vector::external_interface::OnboardingRestart&
GatewayWrapper::_Internal::onboarding_restart(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_restart_;
}
const ::Anki::Vector::external_interface::OnboardingCompleteRequest&
GatewayWrapper::_Internal::onboarding_complete_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_complete_request_;
}
const ::Anki::Vector::external_interface::OnboardingCompleteResponse&
GatewayWrapper::_Internal::onboarding_complete_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_complete_response_;
}
const ::Anki::Vector::external_interface::OnboardingWakeUpRequest&
GatewayWrapper::_Internal::onboarding_wake_up_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_wake_up_request_;
}
const ::Anki::Vector::external_interface::OnboardingWakeUpResponse&
GatewayWrapper::_Internal::onboarding_wake_up_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_wake_up_response_;
}
const ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest&
GatewayWrapper::_Internal::onboarding_wake_up_started_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_wake_up_started_request_;
}
const ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse&
GatewayWrapper::_Internal::onboarding_wake_up_started_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_wake_up_started_response_;
}
const ::Anki::Vector::external_interface::OnboardingSetPhaseRequest&
GatewayWrapper::_Internal::onboarding_set_phase_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_set_phase_request_;
}
const ::Anki::Vector::external_interface::OnboardingSetPhaseResponse&
GatewayWrapper::_Internal::onboarding_set_phase_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_set_phase_response_;
}
const ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest&
GatewayWrapper::_Internal::onboarding_phase_progress_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_phase_progress_request_;
}
const ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse&
GatewayWrapper::_Internal::onboarding_phase_progress_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_phase_progress_response_;
}
const ::Anki::Vector::external_interface::OnboardingChargeInfoRequest&
GatewayWrapper::_Internal::onboarding_charge_info_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_charge_info_request_;
}
const ::Anki::Vector::external_interface::OnboardingChargeInfoResponse&
GatewayWrapper::_Internal::onboarding_charge_info_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_charge_info_response_;
}
const ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit&
GatewayWrapper::_Internal::onboarding_mark_complete_and_exit(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.onboarding_mark_complete_and_exit_;
}
const ::Anki::Vector::external_interface::LatestAttentionTransferRequest&
GatewayWrapper::_Internal::latest_attention_transfer_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.latest_attention_transfer_request_;
}
const ::Anki::Vector::external_interface::LatestAttentionTransfer&
GatewayWrapper::_Internal::latest_attention_transfer(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.latest_attention_transfer_;
}
const ::Anki::Vector::external_interface::PhotosInfoRequest&
GatewayWrapper::_Internal::photos_info_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.photos_info_request_;
}
const ::Anki::Vector::external_interface::PhotosInfoResponse&
GatewayWrapper::_Internal::photos_info_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.photos_info_response_;
}
const ::Anki::Vector::external_interface::PhotoRequest&
GatewayWrapper::_Internal::photo_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.photo_request_;
}
const ::Anki::Vector::external_interface::PhotoPathMessage&
GatewayWrapper::_Internal::photo_path_message(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.photo_path_message_;
}
const ::Anki::Vector::external_interface::ThumbnailRequest&
GatewayWrapper::_Internal::thumbnail_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.thumbnail_request_;
}
const ::Anki::Vector::external_interface::ThumbnailPathMessage&
GatewayWrapper::_Internal::thumbnail_path_message(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.thumbnail_path_message_;
}
const ::Anki::Vector::external_interface::DeletePhotoRequest&
GatewayWrapper::_Internal::delete_photo_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.delete_photo_request_;
}
const ::Anki::Vector::external_interface::DeletePhotoResponse&
GatewayWrapper::_Internal::delete_photo_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.delete_photo_response_;
}
const ::Anki::Vector::external_interface::PullJdocsRequest&
GatewayWrapper::_Internal::pull_jdocs_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.pull_jdocs_request_;
}
const ::Anki::Vector::external_interface::PullJdocsResponse&
GatewayWrapper::_Internal::pull_jdocs_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.pull_jdocs_response_;
}
const ::Anki::Vector::external_interface::UpdateSettingsRequest&
GatewayWrapper::_Internal::update_settings_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.update_settings_request_;
}
const ::Anki::Vector::external_interface::UpdateSettingsResponse&
GatewayWrapper::_Internal::update_settings_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.update_settings_response_;
}
const ::Anki::Vector::external_interface::UpdateAccountSettingsRequest&
GatewayWrapper::_Internal::update_account_settings_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.update_account_settings_request_;
}
const ::Anki::Vector::external_interface::UpdateAccountSettingsResponse&
GatewayWrapper::_Internal::update_account_settings_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.update_account_settings_response_;
}
const ::Anki::Vector::external_interface::UpdateUserEntitlementsRequest&
GatewayWrapper::_Internal::update_user_entitlements_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.update_user_entitlements_request_;
}
const ::Anki::Vector::external_interface::UpdateUserEntitlementsResponse&
GatewayWrapper::_Internal::update_user_entitlements_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.update_user_entitlements_response_;
}
const ::Anki::Vector::external_interface::DriveOffChargerRequest&
GatewayWrapper::_Internal::drive_off_charger_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.drive_off_charger_request_;
}
const ::Anki::Vector::external_interface::DriveOffChargerResponse&
GatewayWrapper::_Internal::drive_off_charger_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.drive_off_charger_response_;
}
const ::Anki::Vector::external_interface::DriveOnChargerRequest&
GatewayWrapper::_Internal::drive_on_charger_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.drive_on_charger_request_;
}
const ::Anki::Vector::external_interface::DriveOnChargerResponse&
GatewayWrapper::_Internal::drive_on_charger_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.drive_on_charger_response_;
}
const ::Anki::Vector::external_interface::FindFacesRequest&
GatewayWrapper::_Internal::find_faces_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.find_faces_request_;
}
const ::Anki::Vector::external_interface::FindFacesResponse&
GatewayWrapper::_Internal::find_faces_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.find_faces_response_;
}
const ::Anki::Vector::external_interface::LookAroundInPlaceRequest&
GatewayWrapper::_Internal::look_around_in_place_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.look_around_in_place_request_;
}
const ::Anki::Vector::external_interface::LookAroundInPlaceResponse&
GatewayWrapper::_Internal::look_around_in_place_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.look_around_in_place_response_;
}
const ::Anki::Vector::external_interface::RollBlockRequest&
GatewayWrapper::_Internal::roll_block_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.roll_block_request_;
}
const ::Anki::Vector::external_interface::RollBlockResponse&
GatewayWrapper::_Internal::roll_block_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.roll_block_response_;
}
const ::Anki::Vector::external_interface::EnrollFaceRequest&
GatewayWrapper::_Internal::enroll_face_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.enroll_face_request_;
}
const ::Anki::Vector::external_interface::EnrollFaceResponse&
GatewayWrapper::_Internal::enroll_face_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.enroll_face_response_;
}
const ::Anki::Vector::external_interface::SetFaceToEnrollRequest&
GatewayWrapper::_Internal::set_face_to_enroll_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.set_face_to_enroll_request_;
}
const ::Anki::Vector::external_interface::SetFaceToEnrollResponse&
GatewayWrapper::_Internal::set_face_to_enroll_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.set_face_to_enroll_response_;
}
const ::Anki::Vector::external_interface::CancelBehaviorRequest&
GatewayWrapper::_Internal::cancel_behavior_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.cancel_behavior_request_;
}
const ::Anki::Vector::external_interface::CancelBehaviorResponse&
GatewayWrapper::_Internal::cancel_behavior_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.cancel_behavior_response_;
}
const ::Anki::Vector::external_interface::TurnInPlaceRequest&
GatewayWrapper::_Internal::turn_in_place_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.turn_in_place_request_;
}
const ::Anki::Vector::external_interface::TurnInPlaceResponse&
GatewayWrapper::_Internal::turn_in_place_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.turn_in_place_response_;
}
const ::Anki::Vector::external_interface::DriveStraightRequest&
GatewayWrapper::_Internal::drive_straight_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.drive_straight_request_;
}
const ::Anki::Vector::external_interface::DriveStraightResponse&
GatewayWrapper::_Internal::drive_straight_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.drive_straight_response_;
}
const ::Anki::Vector::external_interface::SetHeadAngleRequest&
GatewayWrapper::_Internal::set_head_angle_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.set_head_angle_request_;
}
const ::Anki::Vector::external_interface::SetHeadAngleResponse&
GatewayWrapper::_Internal::set_head_angle_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.set_head_angle_response_;
}
const ::Anki::Vector::external_interface::SetLiftHeightRequest&
GatewayWrapper::_Internal::set_lift_height_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.set_lift_height_request_;
}
const ::Anki::Vector::external_interface::SetLiftHeightResponse&
GatewayWrapper::_Internal::set_lift_height_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.set_lift_height_response_;
}
const ::Anki::Vector::external_interface::PlayAnimationRequest&
GatewayWrapper::_Internal::play_animation_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.play_animation_request_;
}
const ::Anki::Vector::external_interface::PlayAnimationResponse&
GatewayWrapper::_Internal::play_animation_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.play_animation_response_;
}
const ::Anki::Vector::external_interface::GoToPoseRequest&
GatewayWrapper::_Internal::go_to_pose_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.go_to_pose_request_;
}
const ::Anki::Vector::external_interface::GoToPoseResponse&
GatewayWrapper::_Internal::go_to_pose_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.go_to_pose_response_;
}
const ::Anki::Vector::external_interface::DockWithCubeRequest&
GatewayWrapper::_Internal::dock_with_cube_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.dock_with_cube_request_;
}
const ::Anki::Vector::external_interface::DockWithCubeResponse&
GatewayWrapper::_Internal::dock_with_cube_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.dock_with_cube_response_;
}
const ::Anki::Vector::external_interface::DriveWheelsRequest&
GatewayWrapper::_Internal::drive_wheels_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.drive_wheels_request_;
}
const ::Anki::Vector::external_interface::DriveWheelsResponse&
GatewayWrapper::_Internal::drive_wheels_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.drive_wheels_response_;
}
const ::Anki::Vector::external_interface::ListAnimationsRequest&
GatewayWrapper::_Internal::list_animations_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.list_animations_request_;
}
const ::Anki::Vector::external_interface::ListAnimationsResponse&
GatewayWrapper::_Internal::list_animations_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.list_animations_response_;
}
const ::Anki::Vector::external_interface::PlayAnimationTriggerRequest&
GatewayWrapper::_Internal::play_animation_trigger_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.play_animation_trigger_request_;
}
const ::Anki::Vector::external_interface::ListAnimationTriggersRequest&
GatewayWrapper::_Internal::list_animation_triggers_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.list_animation_triggers_request_;
}
const ::Anki::Vector::external_interface::ListAnimationTriggersResponse&
GatewayWrapper::_Internal::list_animation_triggers_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.list_animation_triggers_response_;
}
const ::Anki::Vector::external_interface::CancelActionByIdTagRequest&
GatewayWrapper::_Internal::cancel_action_by_id_tag_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.cancel_action_by_id_tag_request_;
}
const ::Anki::Vector::external_interface::CancelActionByIdTagResponse&
GatewayWrapper::_Internal::cancel_action_by_id_tag_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.cancel_action_by_id_tag_response_;
}
const ::Anki::Vector::external_interface::TurnTowardsFaceRequest&
GatewayWrapper::_Internal::turn_towards_face_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.turn_towards_face_request_;
}
const ::Anki::Vector::external_interface::TurnTowardsFaceResponse&
GatewayWrapper::_Internal::turn_towards_face_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.turn_towards_face_response_;
}
const ::Anki::Vector::external_interface::GoToObjectRequest&
GatewayWrapper::_Internal::go_to_object_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.go_to_object_request_;
}
const ::Anki::Vector::external_interface::GoToObjectResponse&
GatewayWrapper::_Internal::go_to_object_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.go_to_object_response_;
}
const ::Anki::Vector::external_interface::RollObjectRequest&
GatewayWrapper::_Internal::roll_object_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.roll_object_request_;
}
const ::Anki::Vector::external_interface::RollObjectResponse&
GatewayWrapper::_Internal::roll_object_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.roll_object_response_;
}
const ::Anki::Vector::external_interface::PopAWheelieRequest&
GatewayWrapper::_Internal::pop_a_wheelie_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.pop_a_wheelie_request_;
}
const ::Anki::Vector::external_interface::PopAWheelieResponse&
GatewayWrapper::_Internal::pop_a_wheelie_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.pop_a_wheelie_response_;
}
const ::Anki::Vector::external_interface::PickupObjectRequest&
GatewayWrapper::_Internal::pickup_object_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.pickup_object_request_;
}
const ::Anki::Vector::external_interface::PickupObjectResponse&
GatewayWrapper::_Internal::pickup_object_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.pickup_object_response_;
}
const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest&
GatewayWrapper::_Internal::place_object_on_ground_here_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.place_object_on_ground_here_request_;
}
const ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse&
GatewayWrapper::_Internal::place_object_on_ground_here_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.place_object_on_ground_here_response_;
}
const ::Anki::Vector::external_interface::StopAllMotorsRequest&
GatewayWrapper::_Internal::stop_all_motors_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.stop_all_motors_request_;
}
const ::Anki::Vector::external_interface::StopAllMotorsResponse&
GatewayWrapper::_Internal::stop_all_motors_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.stop_all_motors_response_;
}
const ::Anki::Vector::external_interface::RobotHistoryRequest&
GatewayWrapper::_Internal::robot_history_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.robot_history_request_;
}
const ::Anki::Vector::external_interface::RobotHistoryResponse&
GatewayWrapper::_Internal::robot_history_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.robot_history_response_;
}
const ::Anki::Vector::external_interface::ConnectCubeRequest&
GatewayWrapper::_Internal::connect_cube_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.connect_cube_request_;
}
const ::Anki::Vector::external_interface::ConnectCubeResponse&
GatewayWrapper::_Internal::connect_cube_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.connect_cube_response_;
}
const ::Anki::Vector::external_interface::DisconnectCubeRequest&
GatewayWrapper::_Internal::disconnect_cube_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.disconnect_cube_request_;
}
const ::Anki::Vector::external_interface::FlashCubeLightsRequest&
GatewayWrapper::_Internal::flash_cube_lights_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.flash_cube_lights_request_;
}
const ::Anki::Vector::external_interface::ForgetPreferredCubeRequest&
GatewayWrapper::_Internal::forget_preferred_cube_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.forget_preferred_cube_request_;
}
const ::Anki::Vector::external_interface::SetPreferredCubeRequest&
GatewayWrapper::_Internal::set_preferred_cube_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.set_preferred_cube_request_;
}
const ::Anki::Vector::external_interface::SetCubeLightsRequest&
GatewayWrapper::_Internal::set_cube_lights_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.set_cube_lights_request_;
}
const ::Anki::Vector::external_interface::CubesAvailableRequest&
GatewayWrapper::_Internal::cubes_available_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.cubes_available_request_;
}
const ::Anki::Vector::external_interface::CubesAvailableResponse&
GatewayWrapper::_Internal::cubes_available_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.cubes_available_response_;
}
const ::Anki::Vector::external_interface::BatteryStateRequest&
GatewayWrapper::_Internal::battery_state_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.battery_state_request_;
}
const ::Anki::Vector::external_interface::BatteryStateResponse&
GatewayWrapper::_Internal::battery_state_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.battery_state_response_;
}
const ::Anki::Vector::external_interface::VersionStateRequest&
GatewayWrapper::_Internal::version_state_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.version_state_request_;
}
const ::Anki::Vector::external_interface::VersionStateResponse&
GatewayWrapper::_Internal::version_state_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.version_state_response_;
}
const ::Anki::Vector::external_interface::SayTextRequest&
GatewayWrapper::_Internal::say_text_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.say_text_request_;
}
const ::Anki::Vector::external_interface::SayTextResponse&
GatewayWrapper::_Internal::say_text_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.say_text_response_;
}
const ::Anki::Vector::external_interface::ControlRequest&
GatewayWrapper::_Internal::control_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.control_request_;
}
const ::Anki::Vector::external_interface::ControlRelease&
GatewayWrapper::_Internal::control_release(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.control_release_;
}
const ::Anki::Vector::external_interface::BehaviorControlResponse&
GatewayWrapper::_Internal::behavior_control_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.behavior_control_response_;
}
const ::Anki::Vector::external_interface::ImageChunk&
GatewayWrapper::_Internal::image_chunk(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.image_chunk_;
}
const ::Anki::Vector::external_interface::EnableMarkerDetectionRequest&
GatewayWrapper::_Internal::enable_marker_detection_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.enable_marker_detection_request_;
}
const ::Anki::Vector::external_interface::EnableMarkerDetectionResponse&
GatewayWrapper::_Internal::enable_marker_detection_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.enable_marker_detection_response_;
}
const ::Anki::Vector::external_interface::EnableFaceDetectionRequest&
GatewayWrapper::_Internal::enable_face_detection_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.enable_face_detection_request_;
}
const ::Anki::Vector::external_interface::EnableFaceDetectionResponse&
GatewayWrapper::_Internal::enable_face_detection_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.enable_face_detection_response_;
}
const ::Anki::Vector::external_interface::EnableMotionDetectionRequest&
GatewayWrapper::_Internal::enable_motion_detection_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.enable_motion_detection_request_;
}
const ::Anki::Vector::external_interface::EnableMotionDetectionResponse&
GatewayWrapper::_Internal::enable_motion_detection_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.enable_motion_detection_response_;
}
const ::Anki::Vector::external_interface::EnableMirrorModeRequest&
GatewayWrapper::_Internal::enable_mirror_mode_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.enable_mirror_mode_request_;
}
const ::Anki::Vector::external_interface::EnableMirrorModeResponse&
GatewayWrapper::_Internal::enable_mirror_mode_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.enable_mirror_mode_response_;
}
const ::Anki::Vector::external_interface::EnableImageStreamingRequest&
GatewayWrapper::_Internal::enable_image_streaming_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.enable_image_streaming_request_;
}
const ::Anki::Vector::external_interface::EnableImageStreamingResponse&
GatewayWrapper::_Internal::enable_image_streaming_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.enable_image_streaming_response_;
}
const ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest&
GatewayWrapper::_Internal::is_image_streaming_enabled_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.is_image_streaming_enabled_request_;
}
const ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse&
GatewayWrapper::_Internal::is_image_streaming_enabled_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.is_image_streaming_enabled_response_;
}
const ::Anki::Vector::external_interface::CheckCloudRequest&
GatewayWrapper::_Internal::check_cloud_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.check_cloud_request_;
}
const ::Anki::Vector::external_interface::CheckCloudResponse&
GatewayWrapper::_Internal::check_cloud_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.check_cloud_response_;
}
const ::Anki::Vector::external_interface::AudioSendModeRequest&
GatewayWrapper::_Internal::audio_send_mode_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.audio_send_mode_request_;
}
const ::Anki::Vector::external_interface::AudioSendModeChanged&
GatewayWrapper::_Internal::audio_send_mode_changed(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.audio_send_mode_changed_;
}
const ::Anki::Vector::external_interface::AudioChunk&
GatewayWrapper::_Internal::audio_chunk(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.audio_chunk_;
}
const ::Anki::Vector::external_interface::FeatureFlagRequest&
GatewayWrapper::_Internal::feature_flag_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.feature_flag_request_;
}
const ::Anki::Vector::external_interface::FeatureFlagResponse&
GatewayWrapper::_Internal::feature_flag_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.feature_flag_response_;
}
const ::Anki::Vector::external_interface::FeatureFlagListRequest&
GatewayWrapper::_Internal::feature_flag_list_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.feature_flag_list_request_;
}
const ::Anki::Vector::external_interface::FeatureFlagListResponse&
GatewayWrapper::_Internal::feature_flag_list_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.feature_flag_list_response_;
}
const ::Anki::Vector::external_interface::AppDisconnected&
GatewayWrapper::_Internal::app_disconnected(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.app_disconnected_;
}
const ::Anki::Vector::external_interface::AlexaAuthStateRequest&
GatewayWrapper::_Internal::alexa_auth_state_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.alexa_auth_state_request_;
}
const ::Anki::Vector::external_interface::AlexaAuthStateResponse&
GatewayWrapper::_Internal::alexa_auth_state_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.alexa_auth_state_response_;
}
const ::Anki::Vector::external_interface::AlexaOptInRequest&
GatewayWrapper::_Internal::alexa_opt_in_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.alexa_opt_in_request_;
}
const ::Anki::Vector::external_interface::AlexaOptInResponse&
GatewayWrapper::_Internal::alexa_opt_in_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.alexa_opt_in_response_;
}
const ::Anki::Vector::external_interface::SetEyeColorRequest&
GatewayWrapper::_Internal::set_eye_color_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.set_eye_color_request_;
}
const ::Anki::Vector::external_interface::SetEyeColorResponse&
GatewayWrapper::_Internal::set_eye_color_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.set_eye_color_response_;
}
const ::Anki::Vector::external_interface::MasterVolumeRequest&
GatewayWrapper::_Internal::master_volume_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.master_volume_request_;
}
const ::Anki::Vector::external_interface::MasterVolumeResponse&
GatewayWrapper::_Internal::master_volume_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.master_volume_response_;
}
const ::Anki::Vector::external_interface::SetCameraSettingsRequest&
GatewayWrapper::_Internal::set_camera_settings_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.set_camera_settings_request_;
}
const ::Anki::Vector::external_interface::SetCameraSettingsResponse&
GatewayWrapper::_Internal::set_camera_settings_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.set_camera_settings_response_;
}
const ::Anki::Vector::external_interface::CameraConfigRequest&
GatewayWrapper::_Internal::camera_config_request(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.camera_config_request_;
}
const ::Anki::Vector::external_interface::CameraConfigResponse&
GatewayWrapper::_Internal::camera_config_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.camera_config_response_;
}
const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare&
GatewayWrapper::_Internal::external_audio_stream_prepare(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.external_audio_stream_prepare_;
}
const ::Anki::Vector::external_interface::ExternalAudioStreamChunk&
GatewayWrapper::_Internal::external_audio_stream_chunk(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.external_audio_stream_chunk_;
}
const ::Anki::Vector::external_interface::ExternalAudioStreamCancel&
GatewayWrapper::_Internal::external_audio_stream_cancel(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.external_audio_stream_cancel_;
}
const ::Anki::Vector::external_interface::ExternalAudioStreamComplete&
GatewayWrapper::_Internal::external_audio_stream_complete(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.external_audio_stream_complete_;
}
const ::Anki::Vector::external_interface::ExternalAudioStreamResponse&
GatewayWrapper::_Internal::external_audio_stream_response(const GatewayWrapper* msg) {
  return *msg->oneof_message_type_.external_audio_stream_response_;
}
void GatewayWrapper::set_allocated_event(::Anki::Vector::external_interface::Event* event) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (event) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(event);
    if (message_arena != submessage_arena) {
      event = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, event, submessage_arena);
    }
    set_has_event();
    oneof_message_type_.event_ = event;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.event)
}
void GatewayWrapper::set_allocated_onboarding_state_request(::Anki::Vector::external_interface::OnboardingStateRequest* onboarding_state_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_state_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_state_request)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_state_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_state_request, submessage_arena);
    }
    set_has_onboarding_state_request();
    oneof_message_type_.onboarding_state_request_ = onboarding_state_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_state_request)
}
void GatewayWrapper::clear_onboarding_state_request() {
  if (_internal_has_onboarding_state_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_state_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_onboarding_state(::Anki::Vector::external_interface::OnboardingState* onboarding_state) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_state) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_state)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_state = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_state, submessage_arena);
    }
    set_has_onboarding_state();
    oneof_message_type_.onboarding_state_ = onboarding_state;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_state)
}
void GatewayWrapper::clear_onboarding_state() {
  if (_internal_has_onboarding_state()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_state_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_onboarding_skip_onboarding(::Anki::Vector::external_interface::OnboardingSkipOnboarding* onboarding_skip_onboarding) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_skip_onboarding) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_skip_onboarding)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_skip_onboarding = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_skip_onboarding, submessage_arena);
    }
    set_has_onboarding_skip_onboarding();
    oneof_message_type_.onboarding_skip_onboarding_ = onboarding_skip_onboarding;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_skip_onboarding)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_onboarding_restart(::Anki::Vector::external_interface::OnboardingRestart* onboarding_restart) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_restart) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_restart)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_restart = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_restart, submessage_arena);
    }
    set_has_onboarding_restart();
    oneof_message_type_.onboarding_restart_ = onboarding_restart;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_restart)
}
void GatewayWrapper::clear_onboarding_restart() {
  if (_internal_has_onboarding_restart()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.onboarding_restart_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_onboarding_complete_request(::Anki::Vector::external_interface::OnboardingCompleteRequest* onboarding_complete_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_complete_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_complete_request)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_complete_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_complete_request, submessage_arena);
    }
    set_has_onboarding_complete_request();
    oneof_message_type_.onboarding_complete_request_ = onboarding_complete_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_complete_request)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_onboarding_complete_response(::Anki::Vector::external_interface::OnboardingCompleteResponse* onboarding_complete_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_complete_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_complete_response)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_complete_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_complete_response, submessage_arena);
    }
    set_has_onboarding_complete_response();
    oneof_message_type_.onboarding_complete_response_ = onboarding_complete_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_complete_response)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_onboarding_wake_up_request(::Anki::Vector::external_interface::OnboardingWakeUpRequest* onboarding_wake_up_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_wake_up_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_wake_up_request)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_wake_up_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_wake_up_request, submessage_arena);
    }
    set_has_onboarding_wake_up_request();
    oneof_message_type_.onboarding_wake_up_request_ = onboarding_wake_up_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_request)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_onboarding_wake_up_response(::Anki::Vector::external_interface::OnboardingWakeUpResponse* onboarding_wake_up_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_wake_up_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_wake_up_response)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_wake_up_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_wake_up_response, submessage_arena);
    }
    set_has_onboarding_wake_up_response();
    oneof_message_type_.onboarding_wake_up_response_ = onboarding_wake_up_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_response)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_onboarding_wake_up_started_request(::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* onboarding_wake_up_started_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_wake_up_started_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_wake_up_started_request)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_wake_up_started_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_wake_up_started_request, submessage_arena);
    }
    set_has_onboarding_wake_up_started_request();
    oneof_message_type_.onboarding_wake_up_started_request_ = onboarding_wake_up_started_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_started_request)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_onboarding_wake_up_started_response(::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* onboarding_wake_up_started_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_wake_up_started_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_wake_up_started_response)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_wake_up_started_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_wake_up_started_response, submessage_arena);
    }
    set_has_onboarding_wake_up_started_response();
    oneof_message_type_.onboarding_wake_up_started_response_ = onboarding_wake_up_started_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_wake_up_started_response)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_onboarding_set_phase_request(::Anki::Vector::external_interface::OnboardingSetPhaseRequest* onboarding_set_phase_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_set_phase_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_set_phase_request)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_set_phase_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_set_phase_request, submessage_arena);
    }
    set_has_onboarding_set_phase_request();
    oneof_message_type_.onboarding_set_phase_request_ = onboarding_set_phase_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_set_phase_request)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_onboarding_set_phase_response(::Anki::Vector::external_interface::OnboardingSetPhaseResponse* onboarding_set_phase_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_set_phase_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_set_phase_response)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_set_phase_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_set_phase_response, submessage_arena);
    }
    set_has_onboarding_set_phase_response();
    oneof_message_type_.onboarding_set_phase_response_ = onboarding_set_phase_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_set_phase_response)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_onboarding_phase_progress_request(::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* onboarding_phase_progress_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_phase_progress_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_phase_progress_request)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_phase_progress_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_phase_progress_request, submessage_arena);
    }
    set_has_onboarding_phase_progress_request();
    oneof_message_type_.onboarding_phase_progress_request_ = onboarding_phase_progress_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_phase_progress_request)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_onboarding_phase_progress_response(::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* onboarding_phase_progress_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_phase_progress_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_phase_progress_response)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_phase_progress_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_phase_progress_response, submessage_arena);
    }
    set_has_onboarding_phase_progress_response();
    oneof_message_type_.onboarding_phase_progress_response_ = onboarding_phase_progress_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_phase_progress_response)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_onboarding_charge_info_request(::Anki::Vector::external_interface::OnboardingChargeInfoRequest* onboarding_charge_info_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_charge_info_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_charge_info_request)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_charge_info_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_charge_info_request, submessage_arena);
    }
    set_has_onboarding_charge_info_request();
    oneof_message_type_.onboarding_charge_info_request_ = onboarding_charge_info_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_charge_info_request)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_onboarding_charge_info_response(::Anki::Vector::external_interface::OnboardingChargeInfoResponse* onboarding_charge_info_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_charge_info_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_charge_info_response)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_charge_info_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_charge_info_response, submessage_arena);
    }
    set_has_onboarding_charge_info_response();
    oneof_message_type_.onboarding_charge_info_response_ = onboarding_charge_info_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_charge_info_response)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_onboarding_mark_complete_and_exit(::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* onboarding_mark_complete_and_exit) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_mark_complete_and_exit) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(onboarding_mark_complete_and_exit)->GetArena();
    if (message_arena != submessage_arena) {
      onboarding_mark_complete_and_exit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_mark_complete_and_exit, submessage_arena);
    }
    set_has_onboarding_mark_complete_and_exit();
    oneof_message_type_.onboarding_mark_complete_and_exit_ = onboarding_mark_complete_and_exit;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.onboarding_mark_complete_and_exit)
}
void GatewayWrapper::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();
  }
}
void GatewayWrapper::set_allocated_latest_attention_transfer_request(::Anki::Vector::external_interface::LatestAttentionTransferRequest* latest_attention_transfer_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (latest_attention_transfer_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(latest_attention_transfer_request)->GetArena();
    if (message_arena != submessage_arena) {
      latest_attention_transfer_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, latest_attention_transfer_request, submessage_arena);
    }
    set_has_latest_attention_transfer_request();
    oneof_message_type_.latest_attention_transfer_request_ = latest_attention_transfer_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.latest_attention_transfer_request)
}
void GatewayWrapper::clear_latest_attention_transfer_request() {
  if (_internal_has_latest_attention_transfer_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.latest_attention_transfer_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_latest_attention_transfer(::Anki::Vector::external_interface::LatestAttentionTransfer* latest_attention_transfer) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (latest_attention_transfer) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(latest_attention_transfer)->GetArena();
    if (message_arena != submessage_arena) {
      latest_attention_transfer = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, latest_attention_transfer, submessage_arena);
    }
    set_has_latest_attention_transfer();
    oneof_message_type_.latest_attention_transfer_ = latest_attention_transfer;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.latest_attention_transfer)
}
void GatewayWrapper::clear_latest_attention_transfer() {
  if (_internal_has_latest_attention_transfer()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.latest_attention_transfer_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_photos_info_request(::Anki::Vector::external_interface::PhotosInfoRequest* photos_info_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (photos_info_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(photos_info_request)->GetArena();
    if (message_arena != submessage_arena) {
      photos_info_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, photos_info_request, submessage_arena);
    }
    set_has_photos_info_request();
    oneof_message_type_.photos_info_request_ = photos_info_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.photos_info_request)
}
void GatewayWrapper::clear_photos_info_request() {
  if (_internal_has_photos_info_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.photos_info_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_photos_info_response(::Anki::Vector::external_interface::PhotosInfoResponse* photos_info_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (photos_info_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(photos_info_response)->GetArena();
    if (message_arena != submessage_arena) {
      photos_info_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, photos_info_response, submessage_arena);
    }
    set_has_photos_info_response();
    oneof_message_type_.photos_info_response_ = photos_info_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.photos_info_response)
}
void GatewayWrapper::clear_photos_info_response() {
  if (_internal_has_photos_info_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.photos_info_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_photo_request(::Anki::Vector::external_interface::PhotoRequest* photo_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (photo_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(photo_request)->GetArena();
    if (message_arena != submessage_arena) {
      photo_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, photo_request, submessage_arena);
    }
    set_has_photo_request();
    oneof_message_type_.photo_request_ = photo_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.photo_request)
}
void GatewayWrapper::clear_photo_request() {
  if (_internal_has_photo_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.photo_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_photo_path_message(::Anki::Vector::external_interface::PhotoPathMessage* photo_path_message) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (photo_path_message) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(photo_path_message)->GetArena();
    if (message_arena != submessage_arena) {
      photo_path_message = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, photo_path_message, submessage_arena);
    }
    set_has_photo_path_message();
    oneof_message_type_.photo_path_message_ = photo_path_message;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.photo_path_message)
}
void GatewayWrapper::clear_photo_path_message() {
  if (_internal_has_photo_path_message()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.photo_path_message_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_thumbnail_request(::Anki::Vector::external_interface::ThumbnailRequest* thumbnail_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (thumbnail_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(thumbnail_request)->GetArena();
    if (message_arena != submessage_arena) {
      thumbnail_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, thumbnail_request, submessage_arena);
    }
    set_has_thumbnail_request();
    oneof_message_type_.thumbnail_request_ = thumbnail_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.thumbnail_request)
}
void GatewayWrapper::clear_thumbnail_request() {
  if (_internal_has_thumbnail_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.thumbnail_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_thumbnail_path_message(::Anki::Vector::external_interface::ThumbnailPathMessage* thumbnail_path_message) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (thumbnail_path_message) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(thumbnail_path_message)->GetArena();
    if (message_arena != submessage_arena) {
      thumbnail_path_message = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, thumbnail_path_message, submessage_arena);
    }
    set_has_thumbnail_path_message();
    oneof_message_type_.thumbnail_path_message_ = thumbnail_path_message;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.thumbnail_path_message)
}
void GatewayWrapper::clear_thumbnail_path_message() {
  if (_internal_has_thumbnail_path_message()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.thumbnail_path_message_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_delete_photo_request(::Anki::Vector::external_interface::DeletePhotoRequest* delete_photo_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (delete_photo_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(delete_photo_request)->GetArena();
    if (message_arena != submessage_arena) {
      delete_photo_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, delete_photo_request, submessage_arena);
    }
    set_has_delete_photo_request();
    oneof_message_type_.delete_photo_request_ = delete_photo_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.delete_photo_request)
}
void GatewayWrapper::clear_delete_photo_request() {
  if (_internal_has_delete_photo_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.delete_photo_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_delete_photo_response(::Anki::Vector::external_interface::DeletePhotoResponse* delete_photo_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (delete_photo_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(delete_photo_response)->GetArena();
    if (message_arena != submessage_arena) {
      delete_photo_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, delete_photo_response, submessage_arena);
    }
    set_has_delete_photo_response();
    oneof_message_type_.delete_photo_response_ = delete_photo_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.delete_photo_response)
}
void GatewayWrapper::clear_delete_photo_response() {
  if (_internal_has_delete_photo_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.delete_photo_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_pull_jdocs_request(::Anki::Vector::external_interface::PullJdocsRequest* pull_jdocs_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (pull_jdocs_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pull_jdocs_request)->GetArena();
    if (message_arena != submessage_arena) {
      pull_jdocs_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, pull_jdocs_request, submessage_arena);
    }
    set_has_pull_jdocs_request();
    oneof_message_type_.pull_jdocs_request_ = pull_jdocs_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.pull_jdocs_request)
}
void GatewayWrapper::clear_pull_jdocs_request() {
  if (_internal_has_pull_jdocs_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.pull_jdocs_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_pull_jdocs_response(::Anki::Vector::external_interface::PullJdocsResponse* pull_jdocs_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (pull_jdocs_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pull_jdocs_response)->GetArena();
    if (message_arena != submessage_arena) {
      pull_jdocs_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, pull_jdocs_response, submessage_arena);
    }
    set_has_pull_jdocs_response();
    oneof_message_type_.pull_jdocs_response_ = pull_jdocs_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.pull_jdocs_response)
}
void GatewayWrapper::clear_pull_jdocs_response() {
  if (_internal_has_pull_jdocs_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.pull_jdocs_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_update_settings_request(::Anki::Vector::external_interface::UpdateSettingsRequest* update_settings_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (update_settings_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(update_settings_request)->GetArena();
    if (message_arena != submessage_arena) {
      update_settings_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, update_settings_request, submessage_arena);
    }
    set_has_update_settings_request();
    oneof_message_type_.update_settings_request_ = update_settings_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.update_settings_request)
}
void GatewayWrapper::clear_update_settings_request() {
  if (_internal_has_update_settings_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.update_settings_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_update_settings_response(::Anki::Vector::external_interface::UpdateSettingsResponse* update_settings_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (update_settings_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(update_settings_response)->GetArena();
    if (message_arena != submessage_arena) {
      update_settings_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, update_settings_response, submessage_arena);
    }
    set_has_update_settings_response();
    oneof_message_type_.update_settings_response_ = update_settings_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.update_settings_response)
}
void GatewayWrapper::clear_update_settings_response() {
  if (_internal_has_update_settings_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.update_settings_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_update_account_settings_request(::Anki::Vector::external_interface::UpdateAccountSettingsRequest* update_account_settings_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (update_account_settings_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(update_account_settings_request)->GetArena();
    if (message_arena != submessage_arena) {
      update_account_settings_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, update_account_settings_request, submessage_arena);
    }
    set_has_update_account_settings_request();
    oneof_message_type_.update_account_settings_request_ = update_account_settings_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.update_account_settings_request)
}
void GatewayWrapper::clear_update_account_settings_request() {
  if (_internal_has_update_account_settings_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.update_account_settings_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_update_account_settings_response(::Anki::Vector::external_interface::UpdateAccountSettingsResponse* update_account_settings_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (update_account_settings_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(update_account_settings_response)->GetArena();
    if (message_arena != submessage_arena) {
      update_account_settings_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, update_account_settings_response, submessage_arena);
    }
    set_has_update_account_settings_response();
    oneof_message_type_.update_account_settings_response_ = update_account_settings_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.update_account_settings_response)
}
void GatewayWrapper::clear_update_account_settings_response() {
  if (_internal_has_update_account_settings_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.update_account_settings_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_update_user_entitlements_request(::Anki::Vector::external_interface::UpdateUserEntitlementsRequest* update_user_entitlements_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (update_user_entitlements_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(update_user_entitlements_request)->GetArena();
    if (message_arena != submessage_arena) {
      update_user_entitlements_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, update_user_entitlements_request, submessage_arena);
    }
    set_has_update_user_entitlements_request();
    oneof_message_type_.update_user_entitlements_request_ = update_user_entitlements_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.update_user_entitlements_request)
}
void GatewayWrapper::clear_update_user_entitlements_request() {
  if (_internal_has_update_user_entitlements_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.update_user_entitlements_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_update_user_entitlements_response(::Anki::Vector::external_interface::UpdateUserEntitlementsResponse* update_user_entitlements_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (update_user_entitlements_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(update_user_entitlements_response)->GetArena();
    if (message_arena != submessage_arena) {
      update_user_entitlements_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, update_user_entitlements_response, submessage_arena);
    }
    set_has_update_user_entitlements_response();
    oneof_message_type_.update_user_entitlements_response_ = update_user_entitlements_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.update_user_entitlements_response)
}
void GatewayWrapper::clear_update_user_entitlements_response() {
  if (_internal_has_update_user_entitlements_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.update_user_entitlements_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_drive_off_charger_request(::Anki::Vector::external_interface::DriveOffChargerRequest* drive_off_charger_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (drive_off_charger_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(drive_off_charger_request)->GetArena();
    if (message_arena != submessage_arena) {
      drive_off_charger_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, drive_off_charger_request, submessage_arena);
    }
    set_has_drive_off_charger_request();
    oneof_message_type_.drive_off_charger_request_ = drive_off_charger_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_off_charger_request)
}
void GatewayWrapper::clear_drive_off_charger_request() {
  if (_internal_has_drive_off_charger_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.drive_off_charger_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_drive_off_charger_response(::Anki::Vector::external_interface::DriveOffChargerResponse* drive_off_charger_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (drive_off_charger_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(drive_off_charger_response)->GetArena();
    if (message_arena != submessage_arena) {
      drive_off_charger_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, drive_off_charger_response, submessage_arena);
    }
    set_has_drive_off_charger_response();
    oneof_message_type_.drive_off_charger_response_ = drive_off_charger_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_off_charger_response)
}
void GatewayWrapper::clear_drive_off_charger_response() {
  if (_internal_has_drive_off_charger_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.drive_off_charger_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_drive_on_charger_request(::Anki::Vector::external_interface::DriveOnChargerRequest* drive_on_charger_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (drive_on_charger_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(drive_on_charger_request)->GetArena();
    if (message_arena != submessage_arena) {
      drive_on_charger_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, drive_on_charger_request, submessage_arena);
    }
    set_has_drive_on_charger_request();
    oneof_message_type_.drive_on_charger_request_ = drive_on_charger_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_on_charger_request)
}
void GatewayWrapper::clear_drive_on_charger_request() {
  if (_internal_has_drive_on_charger_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.drive_on_charger_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_drive_on_charger_response(::Anki::Vector::external_interface::DriveOnChargerResponse* drive_on_charger_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (drive_on_charger_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(drive_on_charger_response)->GetArena();
    if (message_arena != submessage_arena) {
      drive_on_charger_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, drive_on_charger_response, submessage_arena);
    }
    set_has_drive_on_charger_response();
    oneof_message_type_.drive_on_charger_response_ = drive_on_charger_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_on_charger_response)
}
void GatewayWrapper::clear_drive_on_charger_response() {
  if (_internal_has_drive_on_charger_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.drive_on_charger_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_find_faces_request(::Anki::Vector::external_interface::FindFacesRequest* find_faces_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (find_faces_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(find_faces_request)->GetArena();
    if (message_arena != submessage_arena) {
      find_faces_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, find_faces_request, submessage_arena);
    }
    set_has_find_faces_request();
    oneof_message_type_.find_faces_request_ = find_faces_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.find_faces_request)
}
void GatewayWrapper::clear_find_faces_request() {
  if (_internal_has_find_faces_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.find_faces_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_find_faces_response(::Anki::Vector::external_interface::FindFacesResponse* find_faces_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (find_faces_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(find_faces_response)->GetArena();
    if (message_arena != submessage_arena) {
      find_faces_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, find_faces_response, submessage_arena);
    }
    set_has_find_faces_response();
    oneof_message_type_.find_faces_response_ = find_faces_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.find_faces_response)
}
void GatewayWrapper::clear_find_faces_response() {
  if (_internal_has_find_faces_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.find_faces_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_look_around_in_place_request(::Anki::Vector::external_interface::LookAroundInPlaceRequest* look_around_in_place_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (look_around_in_place_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(look_around_in_place_request)->GetArena();
    if (message_arena != submessage_arena) {
      look_around_in_place_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, look_around_in_place_request, submessage_arena);
    }
    set_has_look_around_in_place_request();
    oneof_message_type_.look_around_in_place_request_ = look_around_in_place_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.look_around_in_place_request)
}
void GatewayWrapper::clear_look_around_in_place_request() {
  if (_internal_has_look_around_in_place_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.look_around_in_place_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_look_around_in_place_response(::Anki::Vector::external_interface::LookAroundInPlaceResponse* look_around_in_place_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (look_around_in_place_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(look_around_in_place_response)->GetArena();
    if (message_arena != submessage_arena) {
      look_around_in_place_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, look_around_in_place_response, submessage_arena);
    }
    set_has_look_around_in_place_response();
    oneof_message_type_.look_around_in_place_response_ = look_around_in_place_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.look_around_in_place_response)
}
void GatewayWrapper::clear_look_around_in_place_response() {
  if (_internal_has_look_around_in_place_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.look_around_in_place_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_roll_block_request(::Anki::Vector::external_interface::RollBlockRequest* roll_block_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (roll_block_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(roll_block_request)->GetArena();
    if (message_arena != submessage_arena) {
      roll_block_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, roll_block_request, submessage_arena);
    }
    set_has_roll_block_request();
    oneof_message_type_.roll_block_request_ = roll_block_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.roll_block_request)
}
void GatewayWrapper::clear_roll_block_request() {
  if (_internal_has_roll_block_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.roll_block_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_roll_block_response(::Anki::Vector::external_interface::RollBlockResponse* roll_block_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (roll_block_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(roll_block_response)->GetArena();
    if (message_arena != submessage_arena) {
      roll_block_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, roll_block_response, submessage_arena);
    }
    set_has_roll_block_response();
    oneof_message_type_.roll_block_response_ = roll_block_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.roll_block_response)
}
void GatewayWrapper::clear_roll_block_response() {
  if (_internal_has_roll_block_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.roll_block_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_enroll_face_request(::Anki::Vector::external_interface::EnrollFaceRequest* enroll_face_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (enroll_face_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(enroll_face_request)->GetArena();
    if (message_arena != submessage_arena) {
      enroll_face_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, enroll_face_request, submessage_arena);
    }
    set_has_enroll_face_request();
    oneof_message_type_.enroll_face_request_ = enroll_face_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enroll_face_request)
}
void GatewayWrapper::clear_enroll_face_request() {
  if (_internal_has_enroll_face_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.enroll_face_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_enroll_face_response(::Anki::Vector::external_interface::EnrollFaceResponse* enroll_face_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (enroll_face_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(enroll_face_response)->GetArena();
    if (message_arena != submessage_arena) {
      enroll_face_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, enroll_face_response, submessage_arena);
    }
    set_has_enroll_face_response();
    oneof_message_type_.enroll_face_response_ = enroll_face_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enroll_face_response)
}
void GatewayWrapper::clear_enroll_face_response() {
  if (_internal_has_enroll_face_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.enroll_face_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_set_face_to_enroll_request(::Anki::Vector::external_interface::SetFaceToEnrollRequest* set_face_to_enroll_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (set_face_to_enroll_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(set_face_to_enroll_request)->GetArena();
    if (message_arena != submessage_arena) {
      set_face_to_enroll_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, set_face_to_enroll_request, submessage_arena);
    }
    set_has_set_face_to_enroll_request();
    oneof_message_type_.set_face_to_enroll_request_ = set_face_to_enroll_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_face_to_enroll_request)
}
void GatewayWrapper::clear_set_face_to_enroll_request() {
  if (_internal_has_set_face_to_enroll_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.set_face_to_enroll_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_set_face_to_enroll_response(::Anki::Vector::external_interface::SetFaceToEnrollResponse* set_face_to_enroll_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (set_face_to_enroll_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(set_face_to_enroll_response)->GetArena();
    if (message_arena != submessage_arena) {
      set_face_to_enroll_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, set_face_to_enroll_response, submessage_arena);
    }
    set_has_set_face_to_enroll_response();
    oneof_message_type_.set_face_to_enroll_response_ = set_face_to_enroll_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_face_to_enroll_response)
}
void GatewayWrapper::clear_set_face_to_enroll_response() {
  if (_internal_has_set_face_to_enroll_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.set_face_to_enroll_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_cancel_behavior_request(::Anki::Vector::external_interface::CancelBehaviorRequest* cancel_behavior_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (cancel_behavior_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(cancel_behavior_request)->GetArena();
    if (message_arena != submessage_arena) {
      cancel_behavior_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, cancel_behavior_request, submessage_arena);
    }
    set_has_cancel_behavior_request();
    oneof_message_type_.cancel_behavior_request_ = cancel_behavior_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.cancel_behavior_request)
}
void GatewayWrapper::clear_cancel_behavior_request() {
  if (_internal_has_cancel_behavior_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.cancel_behavior_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_cancel_behavior_response(::Anki::Vector::external_interface::CancelBehaviorResponse* cancel_behavior_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (cancel_behavior_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(cancel_behavior_response)->GetArena();
    if (message_arena != submessage_arena) {
      cancel_behavior_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, cancel_behavior_response, submessage_arena);
    }
    set_has_cancel_behavior_response();
    oneof_message_type_.cancel_behavior_response_ = cancel_behavior_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.cancel_behavior_response)
}
void GatewayWrapper::clear_cancel_behavior_response() {
  if (_internal_has_cancel_behavior_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.cancel_behavior_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_turn_in_place_request(::Anki::Vector::external_interface::TurnInPlaceRequest* turn_in_place_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (turn_in_place_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(turn_in_place_request)->GetArena();
    if (message_arena != submessage_arena) {
      turn_in_place_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, turn_in_place_request, submessage_arena);
    }
    set_has_turn_in_place_request();
    oneof_message_type_.turn_in_place_request_ = turn_in_place_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.turn_in_place_request)
}
void GatewayWrapper::clear_turn_in_place_request() {
  if (_internal_has_turn_in_place_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.turn_in_place_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_turn_in_place_response(::Anki::Vector::external_interface::TurnInPlaceResponse* turn_in_place_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (turn_in_place_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(turn_in_place_response)->GetArena();
    if (message_arena != submessage_arena) {
      turn_in_place_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, turn_in_place_response, submessage_arena);
    }
    set_has_turn_in_place_response();
    oneof_message_type_.turn_in_place_response_ = turn_in_place_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.turn_in_place_response)
}
void GatewayWrapper::clear_turn_in_place_response() {
  if (_internal_has_turn_in_place_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.turn_in_place_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_drive_straight_request(::Anki::Vector::external_interface::DriveStraightRequest* drive_straight_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (drive_straight_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(drive_straight_request)->GetArena();
    if (message_arena != submessage_arena) {
      drive_straight_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, drive_straight_request, submessage_arena);
    }
    set_has_drive_straight_request();
    oneof_message_type_.drive_straight_request_ = drive_straight_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_straight_request)
}
void GatewayWrapper::clear_drive_straight_request() {
  if (_internal_has_drive_straight_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.drive_straight_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_drive_straight_response(::Anki::Vector::external_interface::DriveStraightResponse* drive_straight_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (drive_straight_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(drive_straight_response)->GetArena();
    if (message_arena != submessage_arena) {
      drive_straight_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, drive_straight_response, submessage_arena);
    }
    set_has_drive_straight_response();
    oneof_message_type_.drive_straight_response_ = drive_straight_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_straight_response)
}
void GatewayWrapper::clear_drive_straight_response() {
  if (_internal_has_drive_straight_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.drive_straight_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_set_head_angle_request(::Anki::Vector::external_interface::SetHeadAngleRequest* set_head_angle_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (set_head_angle_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(set_head_angle_request)->GetArena();
    if (message_arena != submessage_arena) {
      set_head_angle_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, set_head_angle_request, submessage_arena);
    }
    set_has_set_head_angle_request();
    oneof_message_type_.set_head_angle_request_ = set_head_angle_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_head_angle_request)
}
void GatewayWrapper::clear_set_head_angle_request() {
  if (_internal_has_set_head_angle_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.set_head_angle_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_set_head_angle_response(::Anki::Vector::external_interface::SetHeadAngleResponse* set_head_angle_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (set_head_angle_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(set_head_angle_response)->GetArena();
    if (message_arena != submessage_arena) {
      set_head_angle_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, set_head_angle_response, submessage_arena);
    }
    set_has_set_head_angle_response();
    oneof_message_type_.set_head_angle_response_ = set_head_angle_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_head_angle_response)
}
void GatewayWrapper::clear_set_head_angle_response() {
  if (_internal_has_set_head_angle_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.set_head_angle_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_set_lift_height_request(::Anki::Vector::external_interface::SetLiftHeightRequest* set_lift_height_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (set_lift_height_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(set_lift_height_request)->GetArena();
    if (message_arena != submessage_arena) {
      set_lift_height_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, set_lift_height_request, submessage_arena);
    }
    set_has_set_lift_height_request();
    oneof_message_type_.set_lift_height_request_ = set_lift_height_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_lift_height_request)
}
void GatewayWrapper::clear_set_lift_height_request() {
  if (_internal_has_set_lift_height_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.set_lift_height_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_set_lift_height_response(::Anki::Vector::external_interface::SetLiftHeightResponse* set_lift_height_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (set_lift_height_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(set_lift_height_response)->GetArena();
    if (message_arena != submessage_arena) {
      set_lift_height_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, set_lift_height_response, submessage_arena);
    }
    set_has_set_lift_height_response();
    oneof_message_type_.set_lift_height_response_ = set_lift_height_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_lift_height_response)
}
void GatewayWrapper::clear_set_lift_height_response() {
  if (_internal_has_set_lift_height_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.set_lift_height_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_play_animation_request(::Anki::Vector::external_interface::PlayAnimationRequest* play_animation_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (play_animation_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(play_animation_request)->GetArena();
    if (message_arena != submessage_arena) {
      play_animation_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, play_animation_request, submessage_arena);
    }
    set_has_play_animation_request();
    oneof_message_type_.play_animation_request_ = play_animation_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.play_animation_request)
}
void GatewayWrapper::clear_play_animation_request() {
  if (_internal_has_play_animation_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.play_animation_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_play_animation_response(::Anki::Vector::external_interface::PlayAnimationResponse* play_animation_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (play_animation_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(play_animation_response)->GetArena();
    if (message_arena != submessage_arena) {
      play_animation_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, play_animation_response, submessage_arena);
    }
    set_has_play_animation_response();
    oneof_message_type_.play_animation_response_ = play_animation_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.play_animation_response)
}
void GatewayWrapper::clear_play_animation_response() {
  if (_internal_has_play_animation_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.play_animation_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_go_to_pose_request(::Anki::Vector::external_interface::GoToPoseRequest* go_to_pose_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (go_to_pose_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(go_to_pose_request)->GetArena();
    if (message_arena != submessage_arena) {
      go_to_pose_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, go_to_pose_request, submessage_arena);
    }
    set_has_go_to_pose_request();
    oneof_message_type_.go_to_pose_request_ = go_to_pose_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.go_to_pose_request)
}
void GatewayWrapper::clear_go_to_pose_request() {
  if (_internal_has_go_to_pose_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.go_to_pose_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_go_to_pose_response(::Anki::Vector::external_interface::GoToPoseResponse* go_to_pose_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (go_to_pose_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(go_to_pose_response)->GetArena();
    if (message_arena != submessage_arena) {
      go_to_pose_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, go_to_pose_response, submessage_arena);
    }
    set_has_go_to_pose_response();
    oneof_message_type_.go_to_pose_response_ = go_to_pose_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.go_to_pose_response)
}
void GatewayWrapper::clear_go_to_pose_response() {
  if (_internal_has_go_to_pose_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.go_to_pose_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_dock_with_cube_request(::Anki::Vector::external_interface::DockWithCubeRequest* dock_with_cube_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (dock_with_cube_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(dock_with_cube_request)->GetArena();
    if (message_arena != submessage_arena) {
      dock_with_cube_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, dock_with_cube_request, submessage_arena);
    }
    set_has_dock_with_cube_request();
    oneof_message_type_.dock_with_cube_request_ = dock_with_cube_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.dock_with_cube_request)
}
void GatewayWrapper::clear_dock_with_cube_request() {
  if (_internal_has_dock_with_cube_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.dock_with_cube_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_dock_with_cube_response(::Anki::Vector::external_interface::DockWithCubeResponse* dock_with_cube_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (dock_with_cube_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(dock_with_cube_response)->GetArena();
    if (message_arena != submessage_arena) {
      dock_with_cube_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, dock_with_cube_response, submessage_arena);
    }
    set_has_dock_with_cube_response();
    oneof_message_type_.dock_with_cube_response_ = dock_with_cube_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.dock_with_cube_response)
}
void GatewayWrapper::clear_dock_with_cube_response() {
  if (_internal_has_dock_with_cube_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.dock_with_cube_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_drive_wheels_request(::Anki::Vector::external_interface::DriveWheelsRequest* drive_wheels_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (drive_wheels_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(drive_wheels_request)->GetArena();
    if (message_arena != submessage_arena) {
      drive_wheels_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, drive_wheels_request, submessage_arena);
    }
    set_has_drive_wheels_request();
    oneof_message_type_.drive_wheels_request_ = drive_wheels_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_wheels_request)
}
void GatewayWrapper::clear_drive_wheels_request() {
  if (_internal_has_drive_wheels_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.drive_wheels_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_drive_wheels_response(::Anki::Vector::external_interface::DriveWheelsResponse* drive_wheels_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (drive_wheels_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(drive_wheels_response)->GetArena();
    if (message_arena != submessage_arena) {
      drive_wheels_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, drive_wheels_response, submessage_arena);
    }
    set_has_drive_wheels_response();
    oneof_message_type_.drive_wheels_response_ = drive_wheels_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.drive_wheels_response)
}
void GatewayWrapper::clear_drive_wheels_response() {
  if (_internal_has_drive_wheels_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.drive_wheels_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_list_animations_request(::Anki::Vector::external_interface::ListAnimationsRequest* list_animations_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (list_animations_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(list_animations_request)->GetArena();
    if (message_arena != submessage_arena) {
      list_animations_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, list_animations_request, submessage_arena);
    }
    set_has_list_animations_request();
    oneof_message_type_.list_animations_request_ = list_animations_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.list_animations_request)
}
void GatewayWrapper::clear_list_animations_request() {
  if (_internal_has_list_animations_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.list_animations_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_list_animations_response(::Anki::Vector::external_interface::ListAnimationsResponse* list_animations_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (list_animations_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(list_animations_response)->GetArena();
    if (message_arena != submessage_arena) {
      list_animations_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, list_animations_response, submessage_arena);
    }
    set_has_list_animations_response();
    oneof_message_type_.list_animations_response_ = list_animations_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.list_animations_response)
}
void GatewayWrapper::clear_list_animations_response() {
  if (_internal_has_list_animations_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.list_animations_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_play_animation_trigger_request(::Anki::Vector::external_interface::PlayAnimationTriggerRequest* play_animation_trigger_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (play_animation_trigger_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(play_animation_trigger_request)->GetArena();
    if (message_arena != submessage_arena) {
      play_animation_trigger_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, play_animation_trigger_request, submessage_arena);
    }
    set_has_play_animation_trigger_request();
    oneof_message_type_.play_animation_trigger_request_ = play_animation_trigger_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.play_animation_trigger_request)
}
void GatewayWrapper::clear_play_animation_trigger_request() {
  if (_internal_has_play_animation_trigger_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.play_animation_trigger_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_list_animation_triggers_request(::Anki::Vector::external_interface::ListAnimationTriggersRequest* list_animation_triggers_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (list_animation_triggers_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(list_animation_triggers_request)->GetArena();
    if (message_arena != submessage_arena) {
      list_animation_triggers_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, list_animation_triggers_request, submessage_arena);
    }
    set_has_list_animation_triggers_request();
    oneof_message_type_.list_animation_triggers_request_ = list_animation_triggers_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.list_animation_triggers_request)
}
void GatewayWrapper::clear_list_animation_triggers_request() {
  if (_internal_has_list_animation_triggers_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.list_animation_triggers_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_list_animation_triggers_response(::Anki::Vector::external_interface::ListAnimationTriggersResponse* list_animation_triggers_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (list_animation_triggers_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(list_animation_triggers_response)->GetArena();
    if (message_arena != submessage_arena) {
      list_animation_triggers_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, list_animation_triggers_response, submessage_arena);
    }
    set_has_list_animation_triggers_response();
    oneof_message_type_.list_animation_triggers_response_ = list_animation_triggers_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.list_animation_triggers_response)
}
void GatewayWrapper::clear_list_animation_triggers_response() {
  if (_internal_has_list_animation_triggers_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.list_animation_triggers_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_cancel_action_by_id_tag_request(::Anki::Vector::external_interface::CancelActionByIdTagRequest* cancel_action_by_id_tag_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (cancel_action_by_id_tag_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(cancel_action_by_id_tag_request)->GetArena();
    if (message_arena != submessage_arena) {
      cancel_action_by_id_tag_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, cancel_action_by_id_tag_request, submessage_arena);
    }
    set_has_cancel_action_by_id_tag_request();
    oneof_message_type_.cancel_action_by_id_tag_request_ = cancel_action_by_id_tag_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.cancel_action_by_id_tag_request)
}
void GatewayWrapper::clear_cancel_action_by_id_tag_request() {
  if (_internal_has_cancel_action_by_id_tag_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.cancel_action_by_id_tag_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_cancel_action_by_id_tag_response(::Anki::Vector::external_interface::CancelActionByIdTagResponse* cancel_action_by_id_tag_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (cancel_action_by_id_tag_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(cancel_action_by_id_tag_response)->GetArena();
    if (message_arena != submessage_arena) {
      cancel_action_by_id_tag_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, cancel_action_by_id_tag_response, submessage_arena);
    }
    set_has_cancel_action_by_id_tag_response();
    oneof_message_type_.cancel_action_by_id_tag_response_ = cancel_action_by_id_tag_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.cancel_action_by_id_tag_response)
}
void GatewayWrapper::clear_cancel_action_by_id_tag_response() {
  if (_internal_has_cancel_action_by_id_tag_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.cancel_action_by_id_tag_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_turn_towards_face_request(::Anki::Vector::external_interface::TurnTowardsFaceRequest* turn_towards_face_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (turn_towards_face_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(turn_towards_face_request)->GetArena();
    if (message_arena != submessage_arena) {
      turn_towards_face_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, turn_towards_face_request, submessage_arena);
    }
    set_has_turn_towards_face_request();
    oneof_message_type_.turn_towards_face_request_ = turn_towards_face_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.turn_towards_face_request)
}
void GatewayWrapper::clear_turn_towards_face_request() {
  if (_internal_has_turn_towards_face_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.turn_towards_face_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_turn_towards_face_response(::Anki::Vector::external_interface::TurnTowardsFaceResponse* turn_towards_face_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (turn_towards_face_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(turn_towards_face_response)->GetArena();
    if (message_arena != submessage_arena) {
      turn_towards_face_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, turn_towards_face_response, submessage_arena);
    }
    set_has_turn_towards_face_response();
    oneof_message_type_.turn_towards_face_response_ = turn_towards_face_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.turn_towards_face_response)
}
void GatewayWrapper::clear_turn_towards_face_response() {
  if (_internal_has_turn_towards_face_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.turn_towards_face_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_go_to_object_request(::Anki::Vector::external_interface::GoToObjectRequest* go_to_object_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (go_to_object_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(go_to_object_request)->GetArena();
    if (message_arena != submessage_arena) {
      go_to_object_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, go_to_object_request, submessage_arena);
    }
    set_has_go_to_object_request();
    oneof_message_type_.go_to_object_request_ = go_to_object_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.go_to_object_request)
}
void GatewayWrapper::clear_go_to_object_request() {
  if (_internal_has_go_to_object_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.go_to_object_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_go_to_object_response(::Anki::Vector::external_interface::GoToObjectResponse* go_to_object_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (go_to_object_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(go_to_object_response)->GetArena();
    if (message_arena != submessage_arena) {
      go_to_object_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, go_to_object_response, submessage_arena);
    }
    set_has_go_to_object_response();
    oneof_message_type_.go_to_object_response_ = go_to_object_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.go_to_object_response)
}
void GatewayWrapper::clear_go_to_object_response() {
  if (_internal_has_go_to_object_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.go_to_object_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_roll_object_request(::Anki::Vector::external_interface::RollObjectRequest* roll_object_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (roll_object_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(roll_object_request)->GetArena();
    if (message_arena != submessage_arena) {
      roll_object_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, roll_object_request, submessage_arena);
    }
    set_has_roll_object_request();
    oneof_message_type_.roll_object_request_ = roll_object_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.roll_object_request)
}
void GatewayWrapper::clear_roll_object_request() {
  if (_internal_has_roll_object_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.roll_object_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_roll_object_response(::Anki::Vector::external_interface::RollObjectResponse* roll_object_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (roll_object_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(roll_object_response)->GetArena();
    if (message_arena != submessage_arena) {
      roll_object_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, roll_object_response, submessage_arena);
    }
    set_has_roll_object_response();
    oneof_message_type_.roll_object_response_ = roll_object_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.roll_object_response)
}
void GatewayWrapper::clear_roll_object_response() {
  if (_internal_has_roll_object_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.roll_object_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_pop_a_wheelie_request(::Anki::Vector::external_interface::PopAWheelieRequest* pop_a_wheelie_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (pop_a_wheelie_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pop_a_wheelie_request)->GetArena();
    if (message_arena != submessage_arena) {
      pop_a_wheelie_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, pop_a_wheelie_request, submessage_arena);
    }
    set_has_pop_a_wheelie_request();
    oneof_message_type_.pop_a_wheelie_request_ = pop_a_wheelie_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.pop_a_wheelie_request)
}
void GatewayWrapper::clear_pop_a_wheelie_request() {
  if (_internal_has_pop_a_wheelie_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.pop_a_wheelie_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_pop_a_wheelie_response(::Anki::Vector::external_interface::PopAWheelieResponse* pop_a_wheelie_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (pop_a_wheelie_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pop_a_wheelie_response)->GetArena();
    if (message_arena != submessage_arena) {
      pop_a_wheelie_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, pop_a_wheelie_response, submessage_arena);
    }
    set_has_pop_a_wheelie_response();
    oneof_message_type_.pop_a_wheelie_response_ = pop_a_wheelie_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.pop_a_wheelie_response)
}
void GatewayWrapper::clear_pop_a_wheelie_response() {
  if (_internal_has_pop_a_wheelie_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.pop_a_wheelie_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_pickup_object_request(::Anki::Vector::external_interface::PickupObjectRequest* pickup_object_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (pickup_object_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pickup_object_request)->GetArena();
    if (message_arena != submessage_arena) {
      pickup_object_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, pickup_object_request, submessage_arena);
    }
    set_has_pickup_object_request();
    oneof_message_type_.pickup_object_request_ = pickup_object_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.pickup_object_request)
}
void GatewayWrapper::clear_pickup_object_request() {
  if (_internal_has_pickup_object_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.pickup_object_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_pickup_object_response(::Anki::Vector::external_interface::PickupObjectResponse* pickup_object_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (pickup_object_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pickup_object_response)->GetArena();
    if (message_arena != submessage_arena) {
      pickup_object_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, pickup_object_response, submessage_arena);
    }
    set_has_pickup_object_response();
    oneof_message_type_.pickup_object_response_ = pickup_object_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.pickup_object_response)
}
void GatewayWrapper::clear_pickup_object_response() {
  if (_internal_has_pickup_object_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.pickup_object_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_place_object_on_ground_here_request(::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* place_object_on_ground_here_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (place_object_on_ground_here_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(place_object_on_ground_here_request)->GetArena();
    if (message_arena != submessage_arena) {
      place_object_on_ground_here_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, place_object_on_ground_here_request, submessage_arena);
    }
    set_has_place_object_on_ground_here_request();
    oneof_message_type_.place_object_on_ground_here_request_ = place_object_on_ground_here_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.place_object_on_ground_here_request)
}
void GatewayWrapper::clear_place_object_on_ground_here_request() {
  if (_internal_has_place_object_on_ground_here_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.place_object_on_ground_here_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_place_object_on_ground_here_response(::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* place_object_on_ground_here_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (place_object_on_ground_here_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(place_object_on_ground_here_response)->GetArena();
    if (message_arena != submessage_arena) {
      place_object_on_ground_here_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, place_object_on_ground_here_response, submessage_arena);
    }
    set_has_place_object_on_ground_here_response();
    oneof_message_type_.place_object_on_ground_here_response_ = place_object_on_ground_here_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.place_object_on_ground_here_response)
}
void GatewayWrapper::clear_place_object_on_ground_here_response() {
  if (_internal_has_place_object_on_ground_here_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.place_object_on_ground_here_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_stop_all_motors_request(::Anki::Vector::external_interface::StopAllMotorsRequest* stop_all_motors_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (stop_all_motors_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(stop_all_motors_request)->GetArena();
    if (message_arena != submessage_arena) {
      stop_all_motors_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, stop_all_motors_request, submessage_arena);
    }
    set_has_stop_all_motors_request();
    oneof_message_type_.stop_all_motors_request_ = stop_all_motors_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.stop_all_motors_request)
}
void GatewayWrapper::clear_stop_all_motors_request() {
  if (_internal_has_stop_all_motors_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.stop_all_motors_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_stop_all_motors_response(::Anki::Vector::external_interface::StopAllMotorsResponse* stop_all_motors_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (stop_all_motors_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(stop_all_motors_response)->GetArena();
    if (message_arena != submessage_arena) {
      stop_all_motors_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, stop_all_motors_response, submessage_arena);
    }
    set_has_stop_all_motors_response();
    oneof_message_type_.stop_all_motors_response_ = stop_all_motors_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.stop_all_motors_response)
}
void GatewayWrapper::clear_stop_all_motors_response() {
  if (_internal_has_stop_all_motors_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.stop_all_motors_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_robot_history_request(::Anki::Vector::external_interface::RobotHistoryRequest* robot_history_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (robot_history_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(robot_history_request)->GetArena();
    if (message_arena != submessage_arena) {
      robot_history_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, robot_history_request, submessage_arena);
    }
    set_has_robot_history_request();
    oneof_message_type_.robot_history_request_ = robot_history_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.robot_history_request)
}
void GatewayWrapper::clear_robot_history_request() {
  if (_internal_has_robot_history_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.robot_history_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_robot_history_response(::Anki::Vector::external_interface::RobotHistoryResponse* robot_history_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (robot_history_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(robot_history_response)->GetArena();
    if (message_arena != submessage_arena) {
      robot_history_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, robot_history_response, submessage_arena);
    }
    set_has_robot_history_response();
    oneof_message_type_.robot_history_response_ = robot_history_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.robot_history_response)
}
void GatewayWrapper::clear_robot_history_response() {
  if (_internal_has_robot_history_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.robot_history_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_connect_cube_request(::Anki::Vector::external_interface::ConnectCubeRequest* connect_cube_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (connect_cube_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(connect_cube_request)->GetArena();
    if (message_arena != submessage_arena) {
      connect_cube_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, connect_cube_request, submessage_arena);
    }
    set_has_connect_cube_request();
    oneof_message_type_.connect_cube_request_ = connect_cube_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.connect_cube_request)
}
void GatewayWrapper::clear_connect_cube_request() {
  if (_internal_has_connect_cube_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.connect_cube_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_connect_cube_response(::Anki::Vector::external_interface::ConnectCubeResponse* connect_cube_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (connect_cube_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(connect_cube_response)->GetArena();
    if (message_arena != submessage_arena) {
      connect_cube_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, connect_cube_response, submessage_arena);
    }
    set_has_connect_cube_response();
    oneof_message_type_.connect_cube_response_ = connect_cube_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.connect_cube_response)
}
void GatewayWrapper::clear_connect_cube_response() {
  if (_internal_has_connect_cube_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.connect_cube_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_disconnect_cube_request(::Anki::Vector::external_interface::DisconnectCubeRequest* disconnect_cube_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (disconnect_cube_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(disconnect_cube_request)->GetArena();
    if (message_arena != submessage_arena) {
      disconnect_cube_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, disconnect_cube_request, submessage_arena);
    }
    set_has_disconnect_cube_request();
    oneof_message_type_.disconnect_cube_request_ = disconnect_cube_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.disconnect_cube_request)
}
void GatewayWrapper::clear_disconnect_cube_request() {
  if (_internal_has_disconnect_cube_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.disconnect_cube_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_flash_cube_lights_request(::Anki::Vector::external_interface::FlashCubeLightsRequest* flash_cube_lights_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (flash_cube_lights_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(flash_cube_lights_request)->GetArena();
    if (message_arena != submessage_arena) {
      flash_cube_lights_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, flash_cube_lights_request, submessage_arena);
    }
    set_has_flash_cube_lights_request();
    oneof_message_type_.flash_cube_lights_request_ = flash_cube_lights_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.flash_cube_lights_request)
}
void GatewayWrapper::clear_flash_cube_lights_request() {
  if (_internal_has_flash_cube_lights_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.flash_cube_lights_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_forget_preferred_cube_request(::Anki::Vector::external_interface::ForgetPreferredCubeRequest* forget_preferred_cube_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (forget_preferred_cube_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(forget_preferred_cube_request)->GetArena();
    if (message_arena != submessage_arena) {
      forget_preferred_cube_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, forget_preferred_cube_request, submessage_arena);
    }
    set_has_forget_preferred_cube_request();
    oneof_message_type_.forget_preferred_cube_request_ = forget_preferred_cube_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.forget_preferred_cube_request)
}
void GatewayWrapper::clear_forget_preferred_cube_request() {
  if (_internal_has_forget_preferred_cube_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.forget_preferred_cube_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_set_preferred_cube_request(::Anki::Vector::external_interface::SetPreferredCubeRequest* set_preferred_cube_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (set_preferred_cube_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(set_preferred_cube_request)->GetArena();
    if (message_arena != submessage_arena) {
      set_preferred_cube_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, set_preferred_cube_request, submessage_arena);
    }
    set_has_set_preferred_cube_request();
    oneof_message_type_.set_preferred_cube_request_ = set_preferred_cube_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_preferred_cube_request)
}
void GatewayWrapper::clear_set_preferred_cube_request() {
  if (_internal_has_set_preferred_cube_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.set_preferred_cube_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_set_cube_lights_request(::Anki::Vector::external_interface::SetCubeLightsRequest* set_cube_lights_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (set_cube_lights_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(set_cube_lights_request)->GetArena();
    if (message_arena != submessage_arena) {
      set_cube_lights_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, set_cube_lights_request, submessage_arena);
    }
    set_has_set_cube_lights_request();
    oneof_message_type_.set_cube_lights_request_ = set_cube_lights_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_cube_lights_request)
}
void GatewayWrapper::clear_set_cube_lights_request() {
  if (_internal_has_set_cube_lights_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.set_cube_lights_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_cubes_available_request(::Anki::Vector::external_interface::CubesAvailableRequest* cubes_available_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (cubes_available_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(cubes_available_request)->GetArena();
    if (message_arena != submessage_arena) {
      cubes_available_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, cubes_available_request, submessage_arena);
    }
    set_has_cubes_available_request();
    oneof_message_type_.cubes_available_request_ = cubes_available_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.cubes_available_request)
}
void GatewayWrapper::clear_cubes_available_request() {
  if (_internal_has_cubes_available_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.cubes_available_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_cubes_available_response(::Anki::Vector::external_interface::CubesAvailableResponse* cubes_available_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (cubes_available_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(cubes_available_response)->GetArena();
    if (message_arena != submessage_arena) {
      cubes_available_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, cubes_available_response, submessage_arena);
    }
    set_has_cubes_available_response();
    oneof_message_type_.cubes_available_response_ = cubes_available_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.cubes_available_response)
}
void GatewayWrapper::clear_cubes_available_response() {
  if (_internal_has_cubes_available_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.cubes_available_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_battery_state_request(::Anki::Vector::external_interface::BatteryStateRequest* battery_state_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (battery_state_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(battery_state_request)->GetArena();
    if (message_arena != submessage_arena) {
      battery_state_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, battery_state_request, submessage_arena);
    }
    set_has_battery_state_request();
    oneof_message_type_.battery_state_request_ = battery_state_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.battery_state_request)
}
void GatewayWrapper::clear_battery_state_request() {
  if (_internal_has_battery_state_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.battery_state_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_battery_state_response(::Anki::Vector::external_interface::BatteryStateResponse* battery_state_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (battery_state_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(battery_state_response)->GetArena();
    if (message_arena != submessage_arena) {
      battery_state_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, battery_state_response, submessage_arena);
    }
    set_has_battery_state_response();
    oneof_message_type_.battery_state_response_ = battery_state_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.battery_state_response)
}
void GatewayWrapper::clear_battery_state_response() {
  if (_internal_has_battery_state_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.battery_state_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_version_state_request(::Anki::Vector::external_interface::VersionStateRequest* version_state_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (version_state_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(version_state_request)->GetArena();
    if (message_arena != submessage_arena) {
      version_state_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, version_state_request, submessage_arena);
    }
    set_has_version_state_request();
    oneof_message_type_.version_state_request_ = version_state_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.version_state_request)
}
void GatewayWrapper::clear_version_state_request() {
  if (_internal_has_version_state_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.version_state_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_version_state_response(::Anki::Vector::external_interface::VersionStateResponse* version_state_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (version_state_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(version_state_response)->GetArena();
    if (message_arena != submessage_arena) {
      version_state_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, version_state_response, submessage_arena);
    }
    set_has_version_state_response();
    oneof_message_type_.version_state_response_ = version_state_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.version_state_response)
}
void GatewayWrapper::clear_version_state_response() {
  if (_internal_has_version_state_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.version_state_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_say_text_request(::Anki::Vector::external_interface::SayTextRequest* say_text_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (say_text_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(say_text_request)->GetArena();
    if (message_arena != submessage_arena) {
      say_text_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, say_text_request, submessage_arena);
    }
    set_has_say_text_request();
    oneof_message_type_.say_text_request_ = say_text_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.say_text_request)
}
void GatewayWrapper::clear_say_text_request() {
  if (_internal_has_say_text_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.say_text_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_say_text_response(::Anki::Vector::external_interface::SayTextResponse* say_text_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (say_text_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(say_text_response)->GetArena();
    if (message_arena != submessage_arena) {
      say_text_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, say_text_response, submessage_arena);
    }
    set_has_say_text_response();
    oneof_message_type_.say_text_response_ = say_text_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.say_text_response)
}
void GatewayWrapper::clear_say_text_response() {
  if (_internal_has_say_text_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.say_text_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_control_request(::Anki::Vector::external_interface::ControlRequest* control_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (control_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(control_request)->GetArena();
    if (message_arena != submessage_arena) {
      control_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, control_request, submessage_arena);
    }
    set_has_control_request();
    oneof_message_type_.control_request_ = control_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.control_request)
}
void GatewayWrapper::clear_control_request() {
  if (_internal_has_control_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.control_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_control_release(::Anki::Vector::external_interface::ControlRelease* control_release) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (control_release) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(control_release)->GetArena();
    if (message_arena != submessage_arena) {
      control_release = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, control_release, submessage_arena);
    }
    set_has_control_release();
    oneof_message_type_.control_release_ = control_release;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.control_release)
}
void GatewayWrapper::clear_control_release() {
  if (_internal_has_control_release()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.control_release_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_behavior_control_response(::Anki::Vector::external_interface::BehaviorControlResponse* behavior_control_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (behavior_control_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(behavior_control_response)->GetArena();
    if (message_arena != submessage_arena) {
      behavior_control_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, behavior_control_response, submessage_arena);
    }
    set_has_behavior_control_response();
    oneof_message_type_.behavior_control_response_ = behavior_control_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.behavior_control_response)
}
void GatewayWrapper::clear_behavior_control_response() {
  if (_internal_has_behavior_control_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.behavior_control_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_image_chunk(::Anki::Vector::external_interface::ImageChunk* image_chunk) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (image_chunk) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(image_chunk)->GetArena();
    if (message_arena != submessage_arena) {
      image_chunk = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, image_chunk, submessage_arena);
    }
    set_has_image_chunk();
    oneof_message_type_.image_chunk_ = image_chunk;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.image_chunk)
}
void GatewayWrapper::clear_image_chunk() {
  if (_internal_has_image_chunk()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.image_chunk_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_enable_marker_detection_request(::Anki::Vector::external_interface::EnableMarkerDetectionRequest* enable_marker_detection_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (enable_marker_detection_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(enable_marker_detection_request)->GetArena();
    if (message_arena != submessage_arena) {
      enable_marker_detection_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, enable_marker_detection_request, submessage_arena);
    }
    set_has_enable_marker_detection_request();
    oneof_message_type_.enable_marker_detection_request_ = enable_marker_detection_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_marker_detection_request)
}
void GatewayWrapper::clear_enable_marker_detection_request() {
  if (_internal_has_enable_marker_detection_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.enable_marker_detection_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_enable_marker_detection_response(::Anki::Vector::external_interface::EnableMarkerDetectionResponse* enable_marker_detection_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (enable_marker_detection_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(enable_marker_detection_response)->GetArena();
    if (message_arena != submessage_arena) {
      enable_marker_detection_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, enable_marker_detection_response, submessage_arena);
    }
    set_has_enable_marker_detection_response();
    oneof_message_type_.enable_marker_detection_response_ = enable_marker_detection_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_marker_detection_response)
}
void GatewayWrapper::clear_enable_marker_detection_response() {
  if (_internal_has_enable_marker_detection_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.enable_marker_detection_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_enable_face_detection_request(::Anki::Vector::external_interface::EnableFaceDetectionRequest* enable_face_detection_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (enable_face_detection_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(enable_face_detection_request)->GetArena();
    if (message_arena != submessage_arena) {
      enable_face_detection_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, enable_face_detection_request, submessage_arena);
    }
    set_has_enable_face_detection_request();
    oneof_message_type_.enable_face_detection_request_ = enable_face_detection_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_face_detection_request)
}
void GatewayWrapper::clear_enable_face_detection_request() {
  if (_internal_has_enable_face_detection_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.enable_face_detection_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_enable_face_detection_response(::Anki::Vector::external_interface::EnableFaceDetectionResponse* enable_face_detection_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (enable_face_detection_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(enable_face_detection_response)->GetArena();
    if (message_arena != submessage_arena) {
      enable_face_detection_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, enable_face_detection_response, submessage_arena);
    }
    set_has_enable_face_detection_response();
    oneof_message_type_.enable_face_detection_response_ = enable_face_detection_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_face_detection_response)
}
void GatewayWrapper::clear_enable_face_detection_response() {
  if (_internal_has_enable_face_detection_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.enable_face_detection_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_enable_motion_detection_request(::Anki::Vector::external_interface::EnableMotionDetectionRequest* enable_motion_detection_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (enable_motion_detection_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(enable_motion_detection_request)->GetArena();
    if (message_arena != submessage_arena) {
      enable_motion_detection_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, enable_motion_detection_request, submessage_arena);
    }
    set_has_enable_motion_detection_request();
    oneof_message_type_.enable_motion_detection_request_ = enable_motion_detection_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_motion_detection_request)
}
void GatewayWrapper::clear_enable_motion_detection_request() {
  if (_internal_has_enable_motion_detection_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.enable_motion_detection_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_enable_motion_detection_response(::Anki::Vector::external_interface::EnableMotionDetectionResponse* enable_motion_detection_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (enable_motion_detection_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(enable_motion_detection_response)->GetArena();
    if (message_arena != submessage_arena) {
      enable_motion_detection_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, enable_motion_detection_response, submessage_arena);
    }
    set_has_enable_motion_detection_response();
    oneof_message_type_.enable_motion_detection_response_ = enable_motion_detection_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_motion_detection_response)
}
void GatewayWrapper::clear_enable_motion_detection_response() {
  if (_internal_has_enable_motion_detection_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.enable_motion_detection_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_enable_mirror_mode_request(::Anki::Vector::external_interface::EnableMirrorModeRequest* enable_mirror_mode_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (enable_mirror_mode_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(enable_mirror_mode_request)->GetArena();
    if (message_arena != submessage_arena) {
      enable_mirror_mode_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, enable_mirror_mode_request, submessage_arena);
    }
    set_has_enable_mirror_mode_request();
    oneof_message_type_.enable_mirror_mode_request_ = enable_mirror_mode_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_mirror_mode_request)
}
void GatewayWrapper::clear_enable_mirror_mode_request() {
  if (_internal_has_enable_mirror_mode_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.enable_mirror_mode_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_enable_mirror_mode_response(::Anki::Vector::external_interface::EnableMirrorModeResponse* enable_mirror_mode_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (enable_mirror_mode_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(enable_mirror_mode_response)->GetArena();
    if (message_arena != submessage_arena) {
      enable_mirror_mode_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, enable_mirror_mode_response, submessage_arena);
    }
    set_has_enable_mirror_mode_response();
    oneof_message_type_.enable_mirror_mode_response_ = enable_mirror_mode_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_mirror_mode_response)
}
void GatewayWrapper::clear_enable_mirror_mode_response() {
  if (_internal_has_enable_mirror_mode_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.enable_mirror_mode_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_enable_image_streaming_request(::Anki::Vector::external_interface::EnableImageStreamingRequest* enable_image_streaming_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (enable_image_streaming_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(enable_image_streaming_request)->GetArena();
    if (message_arena != submessage_arena) {
      enable_image_streaming_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, enable_image_streaming_request, submessage_arena);
    }
    set_has_enable_image_streaming_request();
    oneof_message_type_.enable_image_streaming_request_ = enable_image_streaming_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_image_streaming_request)
}
void GatewayWrapper::clear_enable_image_streaming_request() {
  if (_internal_has_enable_image_streaming_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.enable_image_streaming_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_enable_image_streaming_response(::Anki::Vector::external_interface::EnableImageStreamingResponse* enable_image_streaming_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (enable_image_streaming_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(enable_image_streaming_response)->GetArena();
    if (message_arena != submessage_arena) {
      enable_image_streaming_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, enable_image_streaming_response, submessage_arena);
    }
    set_has_enable_image_streaming_response();
    oneof_message_type_.enable_image_streaming_response_ = enable_image_streaming_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.enable_image_streaming_response)
}
void GatewayWrapper::clear_enable_image_streaming_response() {
  if (_internal_has_enable_image_streaming_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.enable_image_streaming_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_is_image_streaming_enabled_request(::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* is_image_streaming_enabled_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (is_image_streaming_enabled_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(is_image_streaming_enabled_request)->GetArena();
    if (message_arena != submessage_arena) {
      is_image_streaming_enabled_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, is_image_streaming_enabled_request, submessage_arena);
    }
    set_has_is_image_streaming_enabled_request();
    oneof_message_type_.is_image_streaming_enabled_request_ = is_image_streaming_enabled_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.is_image_streaming_enabled_request)
}
void GatewayWrapper::clear_is_image_streaming_enabled_request() {
  if (_internal_has_is_image_streaming_enabled_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.is_image_streaming_enabled_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_is_image_streaming_enabled_response(::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* is_image_streaming_enabled_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (is_image_streaming_enabled_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(is_image_streaming_enabled_response)->GetArena();
    if (message_arena != submessage_arena) {
      is_image_streaming_enabled_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, is_image_streaming_enabled_response, submessage_arena);
    }
    set_has_is_image_streaming_enabled_response();
    oneof_message_type_.is_image_streaming_enabled_response_ = is_image_streaming_enabled_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.is_image_streaming_enabled_response)
}
void GatewayWrapper::clear_is_image_streaming_enabled_response() {
  if (_internal_has_is_image_streaming_enabled_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.is_image_streaming_enabled_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_check_cloud_request(::Anki::Vector::external_interface::CheckCloudRequest* check_cloud_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (check_cloud_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(check_cloud_request)->GetArena();
    if (message_arena != submessage_arena) {
      check_cloud_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, check_cloud_request, submessage_arena);
    }
    set_has_check_cloud_request();
    oneof_message_type_.check_cloud_request_ = check_cloud_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.check_cloud_request)
}
void GatewayWrapper::clear_check_cloud_request() {
  if (_internal_has_check_cloud_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.check_cloud_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_check_cloud_response(::Anki::Vector::external_interface::CheckCloudResponse* check_cloud_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (check_cloud_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(check_cloud_response)->GetArena();
    if (message_arena != submessage_arena) {
      check_cloud_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, check_cloud_response, submessage_arena);
    }
    set_has_check_cloud_response();
    oneof_message_type_.check_cloud_response_ = check_cloud_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.check_cloud_response)
}
void GatewayWrapper::clear_check_cloud_response() {
  if (_internal_has_check_cloud_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.check_cloud_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_audio_send_mode_request(::Anki::Vector::external_interface::AudioSendModeRequest* audio_send_mode_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (audio_send_mode_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(audio_send_mode_request)->GetArena();
    if (message_arena != submessage_arena) {
      audio_send_mode_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, audio_send_mode_request, submessage_arena);
    }
    set_has_audio_send_mode_request();
    oneof_message_type_.audio_send_mode_request_ = audio_send_mode_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.audio_send_mode_request)
}
void GatewayWrapper::clear_audio_send_mode_request() {
  if (_internal_has_audio_send_mode_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.audio_send_mode_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_audio_send_mode_changed(::Anki::Vector::external_interface::AudioSendModeChanged* audio_send_mode_changed) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (audio_send_mode_changed) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(audio_send_mode_changed)->GetArena();
    if (message_arena != submessage_arena) {
      audio_send_mode_changed = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, audio_send_mode_changed, submessage_arena);
    }
    set_has_audio_send_mode_changed();
    oneof_message_type_.audio_send_mode_changed_ = audio_send_mode_changed;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.audio_send_mode_changed)
}
void GatewayWrapper::clear_audio_send_mode_changed() {
  if (_internal_has_audio_send_mode_changed()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.audio_send_mode_changed_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_audio_chunk(::Anki::Vector::external_interface::AudioChunk* audio_chunk) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (audio_chunk) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(audio_chunk)->GetArena();
    if (message_arena != submessage_arena) {
      audio_chunk = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, audio_chunk, submessage_arena);
    }
    set_has_audio_chunk();
    oneof_message_type_.audio_chunk_ = audio_chunk;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.audio_chunk)
}
void GatewayWrapper::clear_audio_chunk() {
  if (_internal_has_audio_chunk()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.audio_chunk_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_feature_flag_request(::Anki::Vector::external_interface::FeatureFlagRequest* feature_flag_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (feature_flag_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(feature_flag_request)->GetArena();
    if (message_arena != submessage_arena) {
      feature_flag_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, feature_flag_request, submessage_arena);
    }
    set_has_feature_flag_request();
    oneof_message_type_.feature_flag_request_ = feature_flag_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.feature_flag_request)
}
void GatewayWrapper::clear_feature_flag_request() {
  if (_internal_has_feature_flag_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.feature_flag_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_feature_flag_response(::Anki::Vector::external_interface::FeatureFlagResponse* feature_flag_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (feature_flag_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(feature_flag_response)->GetArena();
    if (message_arena != submessage_arena) {
      feature_flag_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, feature_flag_response, submessage_arena);
    }
    set_has_feature_flag_response();
    oneof_message_type_.feature_flag_response_ = feature_flag_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.feature_flag_response)
}
void GatewayWrapper::clear_feature_flag_response() {
  if (_internal_has_feature_flag_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.feature_flag_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_feature_flag_list_request(::Anki::Vector::external_interface::FeatureFlagListRequest* feature_flag_list_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (feature_flag_list_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(feature_flag_list_request)->GetArena();
    if (message_arena != submessage_arena) {
      feature_flag_list_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, feature_flag_list_request, submessage_arena);
    }
    set_has_feature_flag_list_request();
    oneof_message_type_.feature_flag_list_request_ = feature_flag_list_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.feature_flag_list_request)
}
void GatewayWrapper::clear_feature_flag_list_request() {
  if (_internal_has_feature_flag_list_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.feature_flag_list_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_feature_flag_list_response(::Anki::Vector::external_interface::FeatureFlagListResponse* feature_flag_list_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (feature_flag_list_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(feature_flag_list_response)->GetArena();
    if (message_arena != submessage_arena) {
      feature_flag_list_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, feature_flag_list_response, submessage_arena);
    }
    set_has_feature_flag_list_response();
    oneof_message_type_.feature_flag_list_response_ = feature_flag_list_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.feature_flag_list_response)
}
void GatewayWrapper::clear_feature_flag_list_response() {
  if (_internal_has_feature_flag_list_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.feature_flag_list_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_app_disconnected(::Anki::Vector::external_interface::AppDisconnected* app_disconnected) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (app_disconnected) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(app_disconnected)->GetArena();
    if (message_arena != submessage_arena) {
      app_disconnected = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, app_disconnected, submessage_arena);
    }
    set_has_app_disconnected();
    oneof_message_type_.app_disconnected_ = app_disconnected;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.app_disconnected)
}
void GatewayWrapper::clear_app_disconnected() {
  if (_internal_has_app_disconnected()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.app_disconnected_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_alexa_auth_state_request(::Anki::Vector::external_interface::AlexaAuthStateRequest* alexa_auth_state_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (alexa_auth_state_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(alexa_auth_state_request)->GetArena();
    if (message_arena != submessage_arena) {
      alexa_auth_state_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, alexa_auth_state_request, submessage_arena);
    }
    set_has_alexa_auth_state_request();
    oneof_message_type_.alexa_auth_state_request_ = alexa_auth_state_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.alexa_auth_state_request)
}
void GatewayWrapper::clear_alexa_auth_state_request() {
  if (_internal_has_alexa_auth_state_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.alexa_auth_state_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_alexa_auth_state_response(::Anki::Vector::external_interface::AlexaAuthStateResponse* alexa_auth_state_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (alexa_auth_state_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(alexa_auth_state_response)->GetArena();
    if (message_arena != submessage_arena) {
      alexa_auth_state_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, alexa_auth_state_response, submessage_arena);
    }
    set_has_alexa_auth_state_response();
    oneof_message_type_.alexa_auth_state_response_ = alexa_auth_state_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.alexa_auth_state_response)
}
void GatewayWrapper::clear_alexa_auth_state_response() {
  if (_internal_has_alexa_auth_state_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.alexa_auth_state_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_alexa_opt_in_request(::Anki::Vector::external_interface::AlexaOptInRequest* alexa_opt_in_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (alexa_opt_in_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(alexa_opt_in_request)->GetArena();
    if (message_arena != submessage_arena) {
      alexa_opt_in_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, alexa_opt_in_request, submessage_arena);
    }
    set_has_alexa_opt_in_request();
    oneof_message_type_.alexa_opt_in_request_ = alexa_opt_in_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.alexa_opt_in_request)
}
void GatewayWrapper::clear_alexa_opt_in_request() {
  if (_internal_has_alexa_opt_in_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.alexa_opt_in_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_alexa_opt_in_response(::Anki::Vector::external_interface::AlexaOptInResponse* alexa_opt_in_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (alexa_opt_in_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(alexa_opt_in_response)->GetArena();
    if (message_arena != submessage_arena) {
      alexa_opt_in_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, alexa_opt_in_response, submessage_arena);
    }
    set_has_alexa_opt_in_response();
    oneof_message_type_.alexa_opt_in_response_ = alexa_opt_in_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.alexa_opt_in_response)
}
void GatewayWrapper::clear_alexa_opt_in_response() {
  if (_internal_has_alexa_opt_in_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.alexa_opt_in_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_set_eye_color_request(::Anki::Vector::external_interface::SetEyeColorRequest* set_eye_color_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (set_eye_color_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(set_eye_color_request)->GetArena();
    if (message_arena != submessage_arena) {
      set_eye_color_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, set_eye_color_request, submessage_arena);
    }
    set_has_set_eye_color_request();
    oneof_message_type_.set_eye_color_request_ = set_eye_color_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_eye_color_request)
}
void GatewayWrapper::clear_set_eye_color_request() {
  if (_internal_has_set_eye_color_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.set_eye_color_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_set_eye_color_response(::Anki::Vector::external_interface::SetEyeColorResponse* set_eye_color_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (set_eye_color_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(set_eye_color_response)->GetArena();
    if (message_arena != submessage_arena) {
      set_eye_color_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, set_eye_color_response, submessage_arena);
    }
    set_has_set_eye_color_response();
    oneof_message_type_.set_eye_color_response_ = set_eye_color_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_eye_color_response)
}
void GatewayWrapper::clear_set_eye_color_response() {
  if (_internal_has_set_eye_color_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.set_eye_color_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_master_volume_request(::Anki::Vector::external_interface::MasterVolumeRequest* master_volume_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (master_volume_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(master_volume_request)->GetArena();
    if (message_arena != submessage_arena) {
      master_volume_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, master_volume_request, submessage_arena);
    }
    set_has_master_volume_request();
    oneof_message_type_.master_volume_request_ = master_volume_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.master_volume_request)
}
void GatewayWrapper::clear_master_volume_request() {
  if (_internal_has_master_volume_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.master_volume_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_master_volume_response(::Anki::Vector::external_interface::MasterVolumeResponse* master_volume_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (master_volume_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(master_volume_response)->GetArena();
    if (message_arena != submessage_arena) {
      master_volume_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, master_volume_response, submessage_arena);
    }
    set_has_master_volume_response();
    oneof_message_type_.master_volume_response_ = master_volume_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.master_volume_response)
}
void GatewayWrapper::clear_master_volume_response() {
  if (_internal_has_master_volume_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.master_volume_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_set_camera_settings_request(::Anki::Vector::external_interface::SetCameraSettingsRequest* set_camera_settings_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (set_camera_settings_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(set_camera_settings_request)->GetArena();
    if (message_arena != submessage_arena) {
      set_camera_settings_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, set_camera_settings_request, submessage_arena);
    }
    set_has_set_camera_settings_request();
    oneof_message_type_.set_camera_settings_request_ = set_camera_settings_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_camera_settings_request)
}
void GatewayWrapper::clear_set_camera_settings_request() {
  if (_internal_has_set_camera_settings_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.set_camera_settings_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_set_camera_settings_response(::Anki::Vector::external_interface::SetCameraSettingsResponse* set_camera_settings_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (set_camera_settings_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(set_camera_settings_response)->GetArena();
    if (message_arena != submessage_arena) {
      set_camera_settings_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, set_camera_settings_response, submessage_arena);
    }
    set_has_set_camera_settings_response();
    oneof_message_type_.set_camera_settings_response_ = set_camera_settings_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.set_camera_settings_response)
}
void GatewayWrapper::clear_set_camera_settings_response() {
  if (_internal_has_set_camera_settings_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.set_camera_settings_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_camera_config_request(::Anki::Vector::external_interface::CameraConfigRequest* camera_config_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (camera_config_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(camera_config_request)->GetArena();
    if (message_arena != submessage_arena) {
      camera_config_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, camera_config_request, submessage_arena);
    }
    set_has_camera_config_request();
    oneof_message_type_.camera_config_request_ = camera_config_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.camera_config_request)
}
void GatewayWrapper::clear_camera_config_request() {
  if (_internal_has_camera_config_request()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.camera_config_request_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_camera_config_response(::Anki::Vector::external_interface::CameraConfigResponse* camera_config_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (camera_config_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(camera_config_response)->GetArena();
    if (message_arena != submessage_arena) {
      camera_config_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, camera_config_response, submessage_arena);
    }
    set_has_camera_config_response();
    oneof_message_type_.camera_config_response_ = camera_config_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.camera_config_response)
}
void GatewayWrapper::clear_camera_config_response() {
  if (_internal_has_camera_config_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.camera_config_response_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_external_audio_stream_prepare(::Anki::Vector::external_interface::ExternalAudioStreamPrepare* external_audio_stream_prepare) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (external_audio_stream_prepare) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(external_audio_stream_prepare)->GetArena();
    if (message_arena != submessage_arena) {
      external_audio_stream_prepare = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, external_audio_stream_prepare, submessage_arena);
    }
    set_has_external_audio_stream_prepare();
    oneof_message_type_.external_audio_stream_prepare_ = external_audio_stream_prepare;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_prepare)
}
void GatewayWrapper::clear_external_audio_stream_prepare() {
  if (_internal_has_external_audio_stream_prepare()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.external_audio_stream_prepare_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_external_audio_stream_chunk(::Anki::Vector::external_interface::ExternalAudioStreamChunk* external_audio_stream_chunk) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (external_audio_stream_chunk) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(external_audio_stream_chunk)->GetArena();
    if (message_arena != submessage_arena) {
      external_audio_stream_chunk = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, external_audio_stream_chunk, submessage_arena);
    }
    set_has_external_audio_stream_chunk();
    oneof_message_type_.external_audio_stream_chunk_ = external_audio_stream_chunk;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_chunk)
}
void GatewayWrapper::clear_external_audio_stream_chunk() {
  if (_internal_has_external_audio_stream_chunk()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.external_audio_stream_chunk_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_external_audio_stream_cancel(::Anki::Vector::external_interface::ExternalAudioStreamCancel* external_audio_stream_cancel) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (external_audio_stream_cancel) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(external_audio_stream_cancel)->GetArena();
    if (message_arena != submessage_arena) {
      external_audio_stream_cancel = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, external_audio_stream_cancel, submessage_arena);
    }
    set_has_external_audio_stream_cancel();
    oneof_message_type_.external_audio_stream_cancel_ = external_audio_stream_cancel;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_cancel)
}
void GatewayWrapper::clear_external_audio_stream_cancel() {
  if (_internal_has_external_audio_stream_cancel()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.external_audio_stream_cancel_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_external_audio_stream_complete(::Anki::Vector::external_interface::ExternalAudioStreamComplete* external_audio_stream_complete) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (external_audio_stream_complete) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(external_audio_stream_complete)->GetArena();
    if (message_arena != submessage_arena) {
      external_audio_stream_complete = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, external_audio_stream_complete, submessage_arena);
    }
    set_has_external_audio_stream_complete();
    oneof_message_type_.external_audio_stream_complete_ = external_audio_stream_complete;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_complete)
}
void GatewayWrapper::clear_external_audio_stream_complete() {
  if (_internal_has_external_audio_stream_complete()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.external_audio_stream_complete_;
    }
    clear_has_oneof_message_type();
  }
}
void GatewayWrapper::set_allocated_external_audio_stream_response(::Anki::Vector::external_interface::ExternalAudioStreamResponse* external_audio_stream_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (external_audio_stream_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(external_audio_stream_response)->GetArena();
    if (message_arena != submessage_arena) {
      external_audio_stream_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, external_audio_stream_response, submessage_arena);
    }
    set_has_external_audio_stream_response();
    oneof_message_type_.external_audio_stream_response_ = external_audio_stream_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.GatewayWrapper.external_audio_stream_response)
}
void GatewayWrapper::clear_external_audio_stream_response() {
  if (_internal_has_external_audio_stream_response()) {
    if (GetArena() == nullptr) {
      delete oneof_message_type_.external_audio_stream_response_;
    }
    clear_has_oneof_message_type();
  }
}
GatewayWrapper::GatewayWrapper(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.GatewayWrapper)
}
GatewayWrapper::GatewayWrapper(const GatewayWrapper& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  connection_id_ = from.connection_id_;
  clear_has_oneof_message_type();
  switch (from.oneof_message_type_case()) {
    case kEvent: {
      _internal_mutable_event()->::Anki::Vector::external_interface::Event::MergeFrom(from._internal_event());
      break;
    }
    case kOnboardingStateRequest: {
      _internal_mutable_onboarding_state_request()->::Anki::Vector::external_interface::OnboardingStateRequest::MergeFrom(from._internal_onboarding_state_request());
      break;
    }
    case kOnboardingState: {
      _internal_mutable_onboarding_state()->::Anki::Vector::external_interface::OnboardingState::MergeFrom(from._internal_onboarding_state());
      break;
    }
    case kOnboardingSkipOnboarding: {
      _internal_mutable_onboarding_skip_onboarding()->::Anki::Vector::external_interface::OnboardingSkipOnboarding::MergeFrom(from._internal_onboarding_skip_onboarding());
      break;
    }
    case kOnboardingRestart: {
      _internal_mutable_onboarding_restart()->::Anki::Vector::external_interface::OnboardingRestart::MergeFrom(from._internal_onboarding_restart());
      break;
    }
    case kOnboardingCompleteRequest: {
      _internal_mutable_onboarding_complete_request()->::Anki::Vector::external_interface::OnboardingCompleteRequest::MergeFrom(from._internal_onboarding_complete_request());
      break;
    }
    case kOnboardingCompleteResponse: {
      _internal_mutable_onboarding_complete_response()->::Anki::Vector::external_interface::OnboardingCompleteResponse::MergeFrom(from._internal_onboarding_complete_response());
      break;
    }
    case kOnboardingWakeUpRequest: {
      _internal_mutable_onboarding_wake_up_request()->::Anki::Vector::external_interface::OnboardingWakeUpRequest::MergeFrom(from._internal_onboarding_wake_up_request());
      break;
    }
    case kOnboardingWakeUpResponse: {
      _internal_mutable_onboarding_wake_up_response()->::Anki::Vector::external_interface::OnboardingWakeUpResponse::MergeFrom(from._internal_onboarding_wake_up_response());
      break;
    }
    case kOnboardingWakeUpStartedRequest: {
      _internal_mutable_onboarding_wake_up_started_request()->::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest::MergeFrom(from._internal_onboarding_wake_up_started_request());
      break;
    }
    case kOnboardingWakeUpStartedResponse: {
      _internal_mutable_onboarding_wake_up_started_response()->::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse::MergeFrom(from._internal_onboarding_wake_up_started_response());
      break;
    }
    case kOnboardingSetPhaseRequest: {
      _internal_mutable_onboarding_set_phase_request()->::Anki::Vector::external_interface::OnboardingSetPhaseRequest::MergeFrom(from._internal_onboarding_set_phase_request());
      break;
    }
    case kOnboardingSetPhaseResponse: {
      _internal_mutable_onboarding_set_phase_response()->::Anki::Vector::external_interface::OnboardingSetPhaseResponse::MergeFrom(from._internal_onboarding_set_phase_response());
      break;
    }
    case kOnboardingPhaseProgressRequest: {
      _internal_mutable_onboarding_phase_progress_request()->::Anki::Vector::external_interface::OnboardingPhaseProgressRequest::MergeFrom(from._internal_onboarding_phase_progress_request());
      break;
    }
    case kOnboardingPhaseProgressResponse: {
      _internal_mutable_onboarding_phase_progress_response()->::Anki::Vector::external_interface::OnboardingPhaseProgressResponse::MergeFrom(from._internal_onboarding_phase_progress_response());
      break;
    }
    case kOnboardingChargeInfoRequest: {
      _internal_mutable_onboarding_charge_info_request()->::Anki::Vector::external_interface::OnboardingChargeInfoRequest::MergeFrom(from._internal_onboarding_charge_info_request());
      break;
    }
    case kOnboardingChargeInfoResponse: {
      _internal_mutable_onboarding_charge_info_response()->::Anki::Vector::external_interface::OnboardingChargeInfoResponse::MergeFrom(from._internal_onboarding_charge_info_response());
      break;
    }
    case kOnboardingMarkCompleteAndExit: {
      _internal_mutable_onboarding_mark_complete_and_exit()->::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit::MergeFrom(from._internal_onboarding_mark_complete_and_exit());
      break;
    }
    case kLatestAttentionTransferRequest: {
      _internal_mutable_latest_attention_transfer_request()->::Anki::Vector::external_interface::LatestAttentionTransferRequest::MergeFrom(from._internal_latest_attention_transfer_request());
      break;
    }
    case kLatestAttentionTransfer: {
      _internal_mutable_latest_attention_transfer()->::Anki::Vector::external_interface::LatestAttentionTransfer::MergeFrom(from._internal_latest_attention_transfer());
      break;
    }
    case kPhotosInfoRequest: {
      _internal_mutable_photos_info_request()->::Anki::Vector::external_interface::PhotosInfoRequest::MergeFrom(from._internal_photos_info_request());
      break;
    }
    case kPhotosInfoResponse: {
      _internal_mutable_photos_info_response()->::Anki::Vector::external_interface::PhotosInfoResponse::MergeFrom(from._internal_photos_info_response());
      break;
    }
    case kPhotoRequest: {
      _internal_mutable_photo_request()->::Anki::Vector::external_interface::PhotoRequest::MergeFrom(from._internal_photo_request());
      break;
    }
    case kPhotoPathMessage: {
      _internal_mutable_photo_path_message()->::Anki::Vector::external_interface::PhotoPathMessage::MergeFrom(from._internal_photo_path_message());
      break;
    }
    case kThumbnailRequest: {
      _internal_mutable_thumbnail_request()->::Anki::Vector::external_interface::ThumbnailRequest::MergeFrom(from._internal_thumbnail_request());
      break;
    }
    case kThumbnailPathMessage: {
      _internal_mutable_thumbnail_path_message()->::Anki::Vector::external_interface::ThumbnailPathMessage::MergeFrom(from._internal_thumbnail_path_message());
      break;
    }
    case kDeletePhotoRequest: {
      _internal_mutable_delete_photo_request()->::Anki::Vector::external_interface::DeletePhotoRequest::MergeFrom(from._internal_delete_photo_request());
      break;
    }
    case kDeletePhotoResponse: {
      _internal_mutable_delete_photo_response()->::Anki::Vector::external_interface::DeletePhotoResponse::MergeFrom(from._internal_delete_photo_response());
      break;
    }
    case kPullJdocsRequest: {
      _internal_mutable_pull_jdocs_request()->::Anki::Vector::external_interface::PullJdocsRequest::MergeFrom(from._internal_pull_jdocs_request());
      break;
    }
    case kPullJdocsResponse: {
      _internal_mutable_pull_jdocs_response()->::Anki::Vector::external_interface::PullJdocsResponse::MergeFrom(from._internal_pull_jdocs_response());
      break;
    }
    case kUpdateSettingsRequest: {
      _internal_mutable_update_settings_request()->::Anki::Vector::external_interface::UpdateSettingsRequest::MergeFrom(from._internal_update_settings_request());
      break;
    }
    case kUpdateSettingsResponse: {
      _internal_mutable_update_settings_response()->::Anki::Vector::external_interface::UpdateSettingsResponse::MergeFrom(from._internal_update_settings_response());
      break;
    }
    case kUpdateAccountSettingsRequest: {
      _internal_mutable_update_account_settings_request()->::Anki::Vector::external_interface::UpdateAccountSettingsRequest::MergeFrom(from._internal_update_account_settings_request());
      break;
    }
    case kUpdateAccountSettingsResponse: {
      _internal_mutable_update_account_settings_response()->::Anki::Vector::external_interface::UpdateAccountSettingsResponse::MergeFrom(from._internal_update_account_settings_response());
      break;
    }
    case kUpdateUserEntitlementsRequest: {
      _internal_mutable_update_user_entitlements_request()->::Anki::Vector::external_interface::UpdateUserEntitlementsRequest::MergeFrom(from._internal_update_user_entitlements_request());
      break;
    }
    case kUpdateUserEntitlementsResponse: {
      _internal_mutable_update_user_entitlements_response()->::Anki::Vector::external_interface::UpdateUserEntitlementsResponse::MergeFrom(from._internal_update_user_entitlements_response());
      break;
    }
    case kDriveOffChargerRequest: {
      _internal_mutable_drive_off_charger_request()->::Anki::Vector::external_interface::DriveOffChargerRequest::MergeFrom(from._internal_drive_off_charger_request());
      break;
    }
    case kDriveOffChargerResponse: {
      _internal_mutable_drive_off_charger_response()->::Anki::Vector::external_interface::DriveOffChargerResponse::MergeFrom(from._internal_drive_off_charger_response());
      break;
    }
    case kDriveOnChargerRequest: {
      _internal_mutable_drive_on_charger_request()->::Anki::Vector::external_interface::DriveOnChargerRequest::MergeFrom(from._internal_drive_on_charger_request());
      break;
    }
    case kDriveOnChargerResponse: {
      _internal_mutable_drive_on_charger_response()->::Anki::Vector::external_interface::DriveOnChargerResponse::MergeFrom(from._internal_drive_on_charger_response());
      break;
    }
    case kFindFacesRequest: {
      _internal_mutable_find_faces_request()->::Anki::Vector::external_interface::FindFacesRequest::MergeFrom(from._internal_find_faces_request());
      break;
    }
    case kFindFacesResponse: {
      _internal_mutable_find_faces_response()->::Anki::Vector::external_interface::FindFacesResponse::MergeFrom(from._internal_find_faces_response());
      break;
    }
    case kLookAroundInPlaceRequest: {
      _internal_mutable_look_around_in_place_request()->::Anki::Vector::external_interface::LookAroundInPlaceRequest::MergeFrom(from._internal_look_around_in_place_request());
      break;
    }
    case kLookAroundInPlaceResponse: {
      _internal_mutable_look_around_in_place_response()->::Anki::Vector::external_interface::LookAroundInPlaceResponse::MergeFrom(from._internal_look_around_in_place_response());
      break;
    }
    case kRollBlockRequest: {
      _internal_mutable_roll_block_request()->::Anki::Vector::external_interface::RollBlockRequest::MergeFrom(from._internal_roll_block_request());
      break;
    }
    case kRollBlockResponse: {
      _internal_mutable_roll_block_response()->::Anki::Vector::external_interface::RollBlockResponse::MergeFrom(from._internal_roll_block_response());
      break;
    }
    case kEnrollFaceRequest: {
      _internal_mutable_enroll_face_request()->::Anki::Vector::external_interface::EnrollFaceRequest::MergeFrom(from._internal_enroll_face_request());
      break;
    }
    case kEnrollFaceResponse: {
      _internal_mutable_enroll_face_response()->::Anki::Vector::external_interface::EnrollFaceResponse::MergeFrom(from._internal_enroll_face_response());
      break;
    }
    case kSetFaceToEnrollRequest: {
      _internal_mutable_set_face_to_enroll_request()->::Anki::Vector::external_interface::SetFaceToEnrollRequest::MergeFrom(from._internal_set_face_to_enroll_request());
      break;
    }
    case kSetFaceToEnrollResponse: {
      _internal_mutable_set_face_to_enroll_response()->::Anki::Vector::external_interface::SetFaceToEnrollResponse::MergeFrom(from._internal_set_face_to_enroll_response());
      break;
    }
    case kCancelBehaviorRequest: {
      _internal_mutable_cancel_behavior_request()->::Anki::Vector::external_interface::CancelBehaviorRequest::MergeFrom(from._internal_cancel_behavior_request());
      break;
    }
    case kCancelBehaviorResponse: {
      _internal_mutable_cancel_behavior_response()->::Anki::Vector::external_interface::CancelBehaviorResponse::MergeFrom(from._internal_cancel_behavior_response());
      break;
    }
    case kTurnInPlaceRequest: {
      _internal_mutable_turn_in_place_request()->::Anki::Vector::external_interface::TurnInPlaceRequest::MergeFrom(from._internal_turn_in_place_request());
      break;
    }
    case kTurnInPlaceResponse: {
      _internal_mutable_turn_in_place_response()->::Anki::Vector::external_interface::TurnInPlaceResponse::MergeFrom(from._internal_turn_in_place_response());
      break;
    }
    case kDriveStraightRequest: {
      _internal_mutable_drive_straight_request()->::Anki::Vector::external_interface::DriveStraightRequest::MergeFrom(from._internal_drive_straight_request());
      break;
    }
    case kDriveStraightResponse: {
      _internal_mutable_drive_straight_response()->::Anki::Vector::external_interface::DriveStraightResponse::MergeFrom(from._internal_drive_straight_response());
      break;
    }
    case kSetHeadAngleRequest: {
      _internal_mutable_set_head_angle_request()->::Anki::Vector::external_interface::SetHeadAngleRequest::MergeFrom(from._internal_set_head_angle_request());
      break;
    }
    case kSetHeadAngleResponse: {
      _internal_mutable_set_head_angle_response()->::Anki::Vector::external_interface::SetHeadAngleResponse::MergeFrom(from._internal_set_head_angle_response());
      break;
    }
    case kSetLiftHeightRequest: {
      _internal_mutable_set_lift_height_request()->::Anki::Vector::external_interface::SetLiftHeightRequest::MergeFrom(from._internal_set_lift_height_request());
      break;
    }
    case kSetLiftHeightResponse: {
      _internal_mutable_set_lift_height_response()->::Anki::Vector::external_interface::SetLiftHeightResponse::MergeFrom(from._internal_set_lift_height_response());
      break;
    }
    case kPlayAnimationRequest: {
      _internal_mutable_play_animation_request()->::Anki::Vector::external_interface::PlayAnimationRequest::MergeFrom(from._internal_play_animation_request());
      break;
    }
    case kPlayAnimationResponse: {
      _internal_mutable_play_animation_response()->::Anki::Vector::external_interface::PlayAnimationResponse::MergeFrom(from._internal_play_animation_response());
      break;
    }
    case kGoToPoseRequest: {
      _internal_mutable_go_to_pose_request()->::Anki::Vector::external_interface::GoToPoseRequest::MergeFrom(from._internal_go_to_pose_request());
      break;
    }
    case kGoToPoseResponse: {
      _internal_mutable_go_to_pose_response()->::Anki::Vector::external_interface::GoToPoseResponse::MergeFrom(from._internal_go_to_pose_response());
      break;
    }
    case kDockWithCubeRequest: {
      _internal_mutable_dock_with_cube_request()->::Anki::Vector::external_interface::DockWithCubeRequest::MergeFrom(from._internal_dock_with_cube_request());
      break;
    }
    case kDockWithCubeResponse: {
      _internal_mutable_dock_with_cube_response()->::Anki::Vector::external_interface::DockWithCubeResponse::MergeFrom(from._internal_dock_with_cube_response());
      break;
    }
    case kDriveWheelsRequest: {
      _internal_mutable_drive_wheels_request()->::Anki::Vector::external_interface::DriveWheelsRequest::MergeFrom(from._internal_drive_wheels_request());
      break;
    }
    case kDriveWheelsResponse: {
      _internal_mutable_drive_wheels_response()->::Anki::Vector::external_interface::DriveWheelsResponse::MergeFrom(from._internal_drive_wheels_response());
      break;
    }
    case kListAnimationsRequest: {
      _internal_mutable_list_animations_request()->::Anki::Vector::external_interface::ListAnimationsRequest::MergeFrom(from._internal_list_animations_request());
      break;
    }
    case kListAnimationsResponse: {
      _internal_mutable_list_animations_response()->::Anki::Vector::external_interface::ListAnimationsResponse::MergeFrom(from._internal_list_animations_response());
      break;
    }
    case kPlayAnimationTriggerRequest: {
      _internal_mutable_play_animation_trigger_request()->::Anki::Vector::external_interface::PlayAnimationTriggerRequest::MergeFrom(from._internal_play_animation_trigger_request());
      break;
    }
    case kListAnimationTriggersRequest: {
      _internal_mutable_list_animation_triggers_request()->::Anki::Vector::external_interface::ListAnimationTriggersRequest::MergeFrom(from._internal_list_animation_triggers_request());
      break;
    }
    case kListAnimationTriggersResponse: {
      _internal_mutable_list_animation_triggers_response()->::Anki::Vector::external_interface::ListAnimationTriggersResponse::MergeFrom(from._internal_list_animation_triggers_response());
      break;
    }
    case kCancelActionByIdTagRequest: {
      _internal_mutable_cancel_action_by_id_tag_request()->::Anki::Vector::external_interface::CancelActionByIdTagRequest::MergeFrom(from._internal_cancel_action_by_id_tag_request());
      break;
    }
    case kCancelActionByIdTagResponse: {
      _internal_mutable_cancel_action_by_id_tag_response()->::Anki::Vector::external_interface::CancelActionByIdTagResponse::MergeFrom(from._internal_cancel_action_by_id_tag_response());
      break;
    }
    case kTurnTowardsFaceRequest: {
      _internal_mutable_turn_towards_face_request()->::Anki::Vector::external_interface::TurnTowardsFaceRequest::MergeFrom(from._internal_turn_towards_face_request());
      break;
    }
    case kTurnTowardsFaceResponse: {
      _internal_mutable_turn_towards_face_response()->::Anki::Vector::external_interface::TurnTowardsFaceResponse::MergeFrom(from._internal_turn_towards_face_response());
      break;
    }
    case kGoToObjectRequest: {
      _internal_mutable_go_to_object_request()->::Anki::Vector::external_interface::GoToObjectRequest::MergeFrom(from._internal_go_to_object_request());
      break;
    }
    case kGoToObjectResponse: {
      _internal_mutable_go_to_object_response()->::Anki::Vector::external_interface::GoToObjectResponse::MergeFrom(from._internal_go_to_object_response());
      break;
    }
    case kRollObjectRequest: {
      _internal_mutable_roll_object_request()->::Anki::Vector::external_interface::RollObjectRequest::MergeFrom(from._internal_roll_object_request());
      break;
    }
    case kRollObjectResponse: {
      _internal_mutable_roll_object_response()->::Anki::Vector::external_interface::RollObjectResponse::MergeFrom(from._internal_roll_object_response());
      break;
    }
    case kPopAWheelieRequest: {
      _internal_mutable_pop_a_wheelie_request()->::Anki::Vector::external_interface::PopAWheelieRequest::MergeFrom(from._internal_pop_a_wheelie_request());
      break;
    }
    case kPopAWheelieResponse: {
      _internal_mutable_pop_a_wheelie_response()->::Anki::Vector::external_interface::PopAWheelieResponse::MergeFrom(from._internal_pop_a_wheelie_response());
      break;
    }
    case kPickupObjectRequest: {
      _internal_mutable_pickup_object_request()->::Anki::Vector::external_interface::PickupObjectRequest::MergeFrom(from._internal_pickup_object_request());
      break;
    }
    case kPickupObjectResponse: {
      _internal_mutable_pickup_object_response()->::Anki::Vector::external_interface::PickupObjectResponse::MergeFrom(from._internal_pickup_object_response());
      break;
    }
    case kPlaceObjectOnGroundHereRequest: {
      _internal_mutable_place_object_on_ground_here_request()->::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest::MergeFrom(from._internal_place_object_on_ground_here_request());
      break;
    }
    case kPlaceObjectOnGroundHereResponse: {
      _internal_mutable_place_object_on_ground_here_response()->::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse::MergeFrom(from._internal_place_object_on_ground_here_response());
      break;
    }
    case kStopAllMotorsRequest: {
      _internal_mutable_stop_all_motors_request()->::Anki::Vector::external_interface::StopAllMotorsRequest::MergeFrom(from._internal_stop_all_motors_request());
      break;
    }
    case kStopAllMotorsResponse: {
      _internal_mutable_stop_all_motors_response()->::Anki::Vector::external_interface::StopAllMotorsResponse::MergeFrom(from._internal_stop_all_motors_response());
      break;
    }
    case kRobotHistoryRequest: {
      _internal_mutable_robot_history_request()->::Anki::Vector::external_interface::RobotHistoryRequest::MergeFrom(from._internal_robot_history_request());
      break;
    }
    case kRobotHistoryResponse: {
      _internal_mutable_robot_history_response()->::Anki::Vector::external_interface::RobotHistoryResponse::MergeFrom(from._internal_robot_history_response());
      break;
    }
    case kConnectCubeRequest: {
      _internal_mutable_connect_cube_request()->::Anki::Vector::external_interface::ConnectCubeRequest::MergeFrom(from._internal_connect_cube_request());
      break;
    }
    case kConnectCubeResponse: {
      _internal_mutable_connect_cube_response()->::Anki::Vector::external_interface::ConnectCubeResponse::MergeFrom(from._internal_connect_cube_response());
      break;
    }
    case kDisconnectCubeRequest: {
      _internal_mutable_disconnect_cube_request()->::Anki::Vector::external_interface::DisconnectCubeRequest::MergeFrom(from._internal_disconnect_cube_request());
      break;
    }
    case kFlashCubeLightsRequest: {
      _internal_mutable_flash_cube_lights_request()->::Anki::Vector::external_interface::FlashCubeLightsRequest::MergeFrom(from._internal_flash_cube_lights_request());
      break;
    }
    case kForgetPreferredCubeRequest: {
      _internal_mutable_forget_preferred_cube_request()->::Anki::Vector::external_interface::ForgetPreferredCubeRequest::MergeFrom(from._internal_forget_preferred_cube_request());
      break;
    }
    case kSetPreferredCubeRequest: {
      _internal_mutable_set_preferred_cube_request()->::Anki::Vector::external_interface::SetPreferredCubeRequest::MergeFrom(from._internal_set_preferred_cube_request());
      break;
    }
    case kSetCubeLightsRequest: {
      _internal_mutable_set_cube_lights_request()->::Anki::Vector::external_interface::SetCubeLightsRequest::MergeFrom(from._internal_set_cube_lights_request());
      break;
    }
    case kCubesAvailableRequest: {
      _internal_mutable_cubes_available_request()->::Anki::Vector::external_interface::CubesAvailableRequest::MergeFrom(from._internal_cubes_available_request());
      break;
    }
    case kCubesAvailableResponse: {
      _internal_mutable_cubes_available_response()->::Anki::Vector::external_interface::CubesAvailableResponse::MergeFrom(from._internal_cubes_available_response());
      break;
    }
    case kBatteryStateRequest: {
      _internal_mutable_battery_state_request()->::Anki::Vector::external_interface::BatteryStateRequest::MergeFrom(from._internal_battery_state_request());
      break;
    }
    case kBatteryStateResponse: {
      _internal_mutable_battery_state_response()->::Anki::Vector::external_interface::BatteryStateResponse::MergeFrom(from._internal_battery_state_response());
      break;
    }
    case kVersionStateRequest: {
      _internal_mutable_version_state_request()->::Anki::Vector::external_interface::VersionStateRequest::MergeFrom(from._internal_version_state_request());
      break;
    }
    case kVersionStateResponse: {
      _internal_mutable_version_state_response()->::Anki::Vector::external_interface::VersionStateResponse::MergeFrom(from._internal_version_state_response());
      break;
    }
    case kSayTextRequest: {
      _internal_mutable_say_text_request()->::Anki::Vector::external_interface::SayTextRequest::MergeFrom(from._internal_say_text_request());
      break;
    }
    case kSayTextResponse: {
      _internal_mutable_say_text_response()->::Anki::Vector::external_interface::SayTextResponse::MergeFrom(from._internal_say_text_response());
      break;
    }
    case kControlRequest: {
      _internal_mutable_control_request()->::Anki::Vector::external_interface::ControlRequest::MergeFrom(from._internal_control_request());
      break;
    }
    case kControlRelease: {
      _internal_mutable_control_release()->::Anki::Vector::external_interface::ControlRelease::MergeFrom(from._internal_control_release());
      break;
    }
    case kBehaviorControlResponse: {
      _internal_mutable_behavior_control_response()->::Anki::Vector::external_interface::BehaviorControlResponse::MergeFrom(from._internal_behavior_control_response());
      break;
    }
    case kImageChunk: {
      _internal_mutable_image_chunk()->::Anki::Vector::external_interface::ImageChunk::MergeFrom(from._internal_image_chunk());
      break;
    }
    case kEnableMarkerDetectionRequest: {
      _internal_mutable_enable_marker_detection_request()->::Anki::Vector::external_interface::EnableMarkerDetectionRequest::MergeFrom(from._internal_enable_marker_detection_request());
      break;
    }
    case kEnableMarkerDetectionResponse: {
      _internal_mutable_enable_marker_detection_response()->::Anki::Vector::external_interface::EnableMarkerDetectionResponse::MergeFrom(from._internal_enable_marker_detection_response());
      break;
    }
    case kEnableFaceDetectionRequest: {
      _internal_mutable_enable_face_detection_request()->::Anki::Vector::external_interface::EnableFaceDetectionRequest::MergeFrom(from._internal_enable_face_detection_request());
      break;
    }
    case kEnableFaceDetectionResponse: {
      _internal_mutable_enable_face_detection_response()->::Anki::Vector::external_interface::EnableFaceDetectionResponse::MergeFrom(from._internal_enable_face_detection_response());
      break;
    }
    case kEnableMotionDetectionRequest: {
      _internal_mutable_enable_motion_detection_request()->::Anki::Vector::external_interface::EnableMotionDetectionRequest::MergeFrom(from._internal_enable_motion_detection_request());
      break;
    }
    case kEnableMotionDetectionResponse: {
      _internal_mutable_enable_motion_detection_response()->::Anki::Vector::external_interface::EnableMotionDetectionResponse::MergeFrom(from._internal_enable_motion_detection_response());
      break;
    }
    case kEnableMirrorModeRequest: {
      _internal_mutable_enable_mirror_mode_request()->::Anki::Vector::external_interface::EnableMirrorModeRequest::MergeFrom(from._internal_enable_mirror_mode_request());
      break;
    }
    case kEnableMirrorModeResponse: {
      _internal_mutable_enable_mirror_mode_response()->::Anki::Vector::external_interface::EnableMirrorModeResponse::MergeFrom(from._internal_enable_mirror_mode_response());
      break;
    }
    case kEnableImageStreamingRequest: {
      _internal_mutable_enable_image_streaming_request()->::Anki::Vector::external_interface::EnableImageStreamingRequest::MergeFrom(from._internal_enable_image_streaming_request());
      break;
    }
    case kEnableImageStreamingResponse: {
      _internal_mutable_enable_image_streaming_response()->::Anki::Vector::external_interface::EnableImageStreamingResponse::MergeFrom(from._internal_enable_image_streaming_response());
      break;
    }
    case kIsImageStreamingEnabledRequest: {
      _internal_mutable_is_image_streaming_enabled_request()->::Anki::Vector::external_interface::IsImageStreamingEnabledRequest::MergeFrom(from._internal_is_image_streaming_enabled_request());
      break;
    }
    case kIsImageStreamingEnabledResponse: {
      _internal_mutable_is_image_streaming_enabled_response()->::Anki::Vector::external_interface::IsImageStreamingEnabledResponse::MergeFrom(from._internal_is_image_streaming_enabled_response());
      break;
    }
    case kCheckCloudRequest: {
      _internal_mutable_check_cloud_request()->::Anki::Vector::external_interface::CheckCloudRequest::MergeFrom(from._internal_check_cloud_request());
      break;
    }
    case kCheckCloudResponse: {
      _internal_mutable_check_cloud_response()->::Anki::Vector::external_interface::CheckCloudResponse::MergeFrom(from._internal_check_cloud_response());
      break;
    }
    case kAudioSendModeRequest: {
      _internal_mutable_audio_send_mode_request()->::Anki::Vector::external_interface::AudioSendModeRequest::MergeFrom(from._internal_audio_send_mode_request());
      break;
    }
    case kAudioSendModeChanged: {
      _internal_mutable_audio_send_mode_changed()->::Anki::Vector::external_interface::AudioSendModeChanged::MergeFrom(from._internal_audio_send_mode_changed());
      break;
    }
    case kAudioChunk: {
      _internal_mutable_audio_chunk()->::Anki::Vector::external_interface::AudioChunk::MergeFrom(from._internal_audio_chunk());
      break;
    }
    case kFeatureFlagRequest: {
      _internal_mutable_feature_flag_request()->::Anki::Vector::external_interface::FeatureFlagRequest::MergeFrom(from._internal_feature_flag_request());
      break;
    }
    case kFeatureFlagResponse: {
      _internal_mutable_feature_flag_response()->::Anki::Vector::external_interface::FeatureFlagResponse::MergeFrom(from._internal_feature_flag_response());
      break;
    }
    case kFeatureFlagListRequest: {
      _internal_mutable_feature_flag_list_request()->::Anki::Vector::external_interface::FeatureFlagListRequest::MergeFrom(from._internal_feature_flag_list_request());
      break;
    }
    case kFeatureFlagListResponse: {
      _internal_mutable_feature_flag_list_response()->::Anki::Vector::external_interface::FeatureFlagListResponse::MergeFrom(from._internal_feature_flag_list_response());
      break;
    }
    case kAppDisconnected: {
      _internal_mutable_app_disconnected()->::Anki::Vector::external_interface::AppDisconnected::MergeFrom(from._internal_app_disconnected());
      break;
    }
    case kAlexaAuthStateRequest: {
      _internal_mutable_alexa_auth_state_request()->::Anki::Vector::external_interface::AlexaAuthStateRequest::MergeFrom(from._internal_alexa_auth_state_request());
      break;
    }
    case kAlexaAuthStateResponse: {
      _internal_mutable_alexa_auth_state_response()->::Anki::Vector::external_interface::AlexaAuthStateResponse::MergeFrom(from._internal_alexa_auth_state_response());
      break;
    }
    case kAlexaOptInRequest: {
      _internal_mutable_alexa_opt_in_request()->::Anki::Vector::external_interface::AlexaOptInRequest::MergeFrom(from._internal_alexa_opt_in_request());
      break;
    }
    case kAlexaOptInResponse: {
      _internal_mutable_alexa_opt_in_response()->::Anki::Vector::external_interface::AlexaOptInResponse::MergeFrom(from._internal_alexa_opt_in_response());
      break;
    }
    case kSetEyeColorRequest: {
      _internal_mutable_set_eye_color_request()->::Anki::Vector::external_interface::SetEyeColorRequest::MergeFrom(from._internal_set_eye_color_request());
      break;
    }
    case kSetEyeColorResponse: {
      _internal_mutable_set_eye_color_response()->::Anki::Vector::external_interface::SetEyeColorResponse::MergeFrom(from._internal_set_eye_color_response());
      break;
    }
    case kMasterVolumeRequest: {
      _internal_mutable_master_volume_request()->::Anki::Vector::external_interface::MasterVolumeRequest::MergeFrom(from._internal_master_volume_request());
      break;
    }
    case kMasterVolumeResponse: {
      _internal_mutable_master_volume_response()->::Anki::Vector::external_interface::MasterVolumeResponse::MergeFrom(from._internal_master_volume_response());
      break;
    }
    case kSetCameraSettingsRequest: {
      _internal_mutable_set_camera_settings_request()->::Anki::Vector::external_interface::SetCameraSettingsRequest::MergeFrom(from._internal_set_camera_settings_request());
      break;
    }
    case kSetCameraSettingsResponse: {
      _internal_mutable_set_camera_settings_response()->::Anki::Vector::external_interface::SetCameraSettingsResponse::MergeFrom(from._internal_set_camera_settings_response());
      break;
    }
    case kCameraConfigRequest: {
      _internal_mutable_camera_config_request()->::Anki::Vector::external_interface::CameraConfigRequest::MergeFrom(from._internal_camera_config_request());
      break;
    }
    case kCameraConfigResponse: {
      _internal_mutable_camera_config_response()->::Anki::Vector::external_interface::CameraConfigResponse::MergeFrom(from._internal_camera_config_response());
      break;
    }
    case kExternalAudioStreamPrepare: {
      _internal_mutable_external_audio_stream_prepare()->::Anki::Vector::external_interface::ExternalAudioStreamPrepare::MergeFrom(from._internal_external_audio_stream_prepare());
      break;
    }
    case kExternalAudioStreamChunk: {
      _internal_mutable_external_audio_stream_chunk()->::Anki::Vector::external_interface::ExternalAudioStreamChunk::MergeFrom(from._internal_external_audio_stream_chunk());
      break;
    }
    case kExternalAudioStreamCancel: {
      _internal_mutable_external_audio_stream_cancel()->::Anki::Vector::external_interface::ExternalAudioStreamCancel::MergeFrom(from._internal_external_audio_stream_cancel());
      break;
    }
    case kExternalAudioStreamComplete: {
      _internal_mutable_external_audio_stream_complete()->::Anki::Vector::external_interface::ExternalAudioStreamComplete::MergeFrom(from._internal_external_audio_stream_complete());
      break;
    }
    case kExternalAudioStreamResponse: {
      _internal_mutable_external_audio_stream_response()->::Anki::Vector::external_interface::ExternalAudioStreamResponse::MergeFrom(from._internal_external_audio_stream_response());
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.GatewayWrapper)
}

void GatewayWrapper::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_GatewayWrapper_shared_2eproto.base);
  connection_id_ = PROTOBUF_ULONGLONG(0);
  clear_has_oneof_message_type();
}

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

void GatewayWrapper::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_oneof_message_type()) {
    clear_oneof_message_type();
  }
}

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


void GatewayWrapper::clear_oneof_message_type() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.GatewayWrapper)
  switch (oneof_message_type_case()) {
    case kEvent: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.event_;
      }
      break;
    }
    case kOnboardingStateRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_state_request_;
      }
      break;
    }
    case kOnboardingState: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_state_;
      }
      break;
    }
    case kOnboardingSkipOnboarding: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_skip_onboarding_;
      }
      break;
    }
    case kOnboardingRestart: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_restart_;
      }
      break;
    }
    case kOnboardingCompleteRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_complete_request_;
      }
      break;
    }
    case kOnboardingCompleteResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_complete_response_;
      }
      break;
    }
    case kOnboardingWakeUpRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_wake_up_request_;
      }
      break;
    }
    case kOnboardingWakeUpResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_wake_up_response_;
      }
      break;
    }
    case kOnboardingWakeUpStartedRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_wake_up_started_request_;
      }
      break;
    }
    case kOnboardingWakeUpStartedResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_wake_up_started_response_;
      }
      break;
    }
    case kOnboardingSetPhaseRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_set_phase_request_;
      }
      break;
    }
    case kOnboardingSetPhaseResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_set_phase_response_;
      }
      break;
    }
    case kOnboardingPhaseProgressRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_phase_progress_request_;
      }
      break;
    }
    case kOnboardingPhaseProgressResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_phase_progress_response_;
      }
      break;
    }
    case kOnboardingChargeInfoRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_charge_info_request_;
      }
      break;
    }
    case kOnboardingChargeInfoResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_charge_info_response_;
      }
      break;
    }
    case kOnboardingMarkCompleteAndExit: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_mark_complete_and_exit_;
      }
      break;
    }
    case kLatestAttentionTransferRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.latest_attention_transfer_request_;
      }
      break;
    }
    case kLatestAttentionTransfer: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.latest_attention_transfer_;
      }
      break;
    }
    case kPhotosInfoRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.photos_info_request_;
      }
      break;
    }
    case kPhotosInfoResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.photos_info_response_;
      }
      break;
    }
    case kPhotoRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.photo_request_;
      }
      break;
    }
    case kPhotoPathMessage: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.photo_path_message_;
      }
      break;
    }
    case kThumbnailRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.thumbnail_request_;
      }
      break;
    }
    case kThumbnailPathMessage: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.thumbnail_path_message_;
      }
      break;
    }
    case kDeletePhotoRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.delete_photo_request_;
      }
      break;
    }
    case kDeletePhotoResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.delete_photo_response_;
      }
      break;
    }
    case kPullJdocsRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.pull_jdocs_request_;
      }
      break;
    }
    case kPullJdocsResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.pull_jdocs_response_;
      }
      break;
    }
    case kUpdateSettingsRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.update_settings_request_;
      }
      break;
    }
    case kUpdateSettingsResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.update_settings_response_;
      }
      break;
    }
    case kUpdateAccountSettingsRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.update_account_settings_request_;
      }
      break;
    }
    case kUpdateAccountSettingsResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.update_account_settings_response_;
      }
      break;
    }
    case kUpdateUserEntitlementsRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.update_user_entitlements_request_;
      }
      break;
    }
    case kUpdateUserEntitlementsResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.update_user_entitlements_response_;
      }
      break;
    }
    case kDriveOffChargerRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.drive_off_charger_request_;
      }
      break;
    }
    case kDriveOffChargerResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.drive_off_charger_response_;
      }
      break;
    }
    case kDriveOnChargerRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.drive_on_charger_request_;
      }
      break;
    }
    case kDriveOnChargerResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.drive_on_charger_response_;
      }
      break;
    }
    case kFindFacesRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.find_faces_request_;
      }
      break;
    }
    case kFindFacesResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.find_faces_response_;
      }
      break;
    }
    case kLookAroundInPlaceRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.look_around_in_place_request_;
      }
      break;
    }
    case kLookAroundInPlaceResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.look_around_in_place_response_;
      }
      break;
    }
    case kRollBlockRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.roll_block_request_;
      }
      break;
    }
    case kRollBlockResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.roll_block_response_;
      }
      break;
    }
    case kEnrollFaceRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.enroll_face_request_;
      }
      break;
    }
    case kEnrollFaceResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.enroll_face_response_;
      }
      break;
    }
    case kSetFaceToEnrollRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.set_face_to_enroll_request_;
      }
      break;
    }
    case kSetFaceToEnrollResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.set_face_to_enroll_response_;
      }
      break;
    }
    case kCancelBehaviorRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.cancel_behavior_request_;
      }
      break;
    }
    case kCancelBehaviorResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.cancel_behavior_response_;
      }
      break;
    }
    case kTurnInPlaceRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.turn_in_place_request_;
      }
      break;
    }
    case kTurnInPlaceResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.turn_in_place_response_;
      }
      break;
    }
    case kDriveStraightRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.drive_straight_request_;
      }
      break;
    }
    case kDriveStraightResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.drive_straight_response_;
      }
      break;
    }
    case kSetHeadAngleRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.set_head_angle_request_;
      }
      break;
    }
    case kSetHeadAngleResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.set_head_angle_response_;
      }
      break;
    }
    case kSetLiftHeightRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.set_lift_height_request_;
      }
      break;
    }
    case kSetLiftHeightResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.set_lift_height_response_;
      }
      break;
    }
    case kPlayAnimationRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.play_animation_request_;
      }
      break;
    }
    case kPlayAnimationResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.play_animation_response_;
      }
      break;
    }
    case kGoToPoseRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.go_to_pose_request_;
      }
      break;
    }
    case kGoToPoseResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.go_to_pose_response_;
      }
      break;
    }
    case kDockWithCubeRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.dock_with_cube_request_;
      }
      break;
    }
    case kDockWithCubeResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.dock_with_cube_response_;
      }
      break;
    }
    case kDriveWheelsRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.drive_wheels_request_;
      }
      break;
    }
    case kDriveWheelsResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.drive_wheels_response_;
      }
      break;
    }
    case kListAnimationsRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.list_animations_request_;
      }
      break;
    }
    case kListAnimationsResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.list_animations_response_;
      }
      break;
    }
    case kPlayAnimationTriggerRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.play_animation_trigger_request_;
      }
      break;
    }
    case kListAnimationTriggersRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.list_animation_triggers_request_;
      }
      break;
    }
    case kListAnimationTriggersResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.list_animation_triggers_response_;
      }
      break;
    }
    case kCancelActionByIdTagRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.cancel_action_by_id_tag_request_;
      }
      break;
    }
    case kCancelActionByIdTagResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.cancel_action_by_id_tag_response_;
      }
      break;
    }
    case kTurnTowardsFaceRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.turn_towards_face_request_;
      }
      break;
    }
    case kTurnTowardsFaceResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.turn_towards_face_response_;
      }
      break;
    }
    case kGoToObjectRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.go_to_object_request_;
      }
      break;
    }
    case kGoToObjectResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.go_to_object_response_;
      }
      break;
    }
    case kRollObjectRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.roll_object_request_;
      }
      break;
    }
    case kRollObjectResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.roll_object_response_;
      }
      break;
    }
    case kPopAWheelieRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.pop_a_wheelie_request_;
      }
      break;
    }
    case kPopAWheelieResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.pop_a_wheelie_response_;
      }
      break;
    }
    case kPickupObjectRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.pickup_object_request_;
      }
      break;
    }
    case kPickupObjectResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.pickup_object_response_;
      }
      break;
    }
    case kPlaceObjectOnGroundHereRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.place_object_on_ground_here_request_;
      }
      break;
    }
    case kPlaceObjectOnGroundHereResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.place_object_on_ground_here_response_;
      }
      break;
    }
    case kStopAllMotorsRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.stop_all_motors_request_;
      }
      break;
    }
    case kStopAllMotorsResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.stop_all_motors_response_;
      }
      break;
    }
    case kRobotHistoryRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.robot_history_request_;
      }
      break;
    }
    case kRobotHistoryResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.robot_history_response_;
      }
      break;
    }
    case kConnectCubeRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.connect_cube_request_;
      }
      break;
    }
    case kConnectCubeResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.connect_cube_response_;
      }
      break;
    }
    case kDisconnectCubeRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.disconnect_cube_request_;
      }
      break;
    }
    case kFlashCubeLightsRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.flash_cube_lights_request_;
      }
      break;
    }
    case kForgetPreferredCubeRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.forget_preferred_cube_request_;
      }
      break;
    }
    case kSetPreferredCubeRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.set_preferred_cube_request_;
      }
      break;
    }
    case kSetCubeLightsRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.set_cube_lights_request_;
      }
      break;
    }
    case kCubesAvailableRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.cubes_available_request_;
      }
      break;
    }
    case kCubesAvailableResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.cubes_available_response_;
      }
      break;
    }
    case kBatteryStateRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.battery_state_request_;
      }
      break;
    }
    case kBatteryStateResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.battery_state_response_;
      }
      break;
    }
    case kVersionStateRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.version_state_request_;
      }
      break;
    }
    case kVersionStateResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.version_state_response_;
      }
      break;
    }
    case kSayTextRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.say_text_request_;
      }
      break;
    }
    case kSayTextResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.say_text_response_;
      }
      break;
    }
    case kControlRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.control_request_;
      }
      break;
    }
    case kControlRelease: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.control_release_;
      }
      break;
    }
    case kBehaviorControlResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.behavior_control_response_;
      }
      break;
    }
    case kImageChunk: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.image_chunk_;
      }
      break;
    }
    case kEnableMarkerDetectionRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.enable_marker_detection_request_;
      }
      break;
    }
    case kEnableMarkerDetectionResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.enable_marker_detection_response_;
      }
      break;
    }
    case kEnableFaceDetectionRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.enable_face_detection_request_;
      }
      break;
    }
    case kEnableFaceDetectionResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.enable_face_detection_response_;
      }
      break;
    }
    case kEnableMotionDetectionRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.enable_motion_detection_request_;
      }
      break;
    }
    case kEnableMotionDetectionResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.enable_motion_detection_response_;
      }
      break;
    }
    case kEnableMirrorModeRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.enable_mirror_mode_request_;
      }
      break;
    }
    case kEnableMirrorModeResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.enable_mirror_mode_response_;
      }
      break;
    }
    case kEnableImageStreamingRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.enable_image_streaming_request_;
      }
      break;
    }
    case kEnableImageStreamingResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.enable_image_streaming_response_;
      }
      break;
    }
    case kIsImageStreamingEnabledRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.is_image_streaming_enabled_request_;
      }
      break;
    }
    case kIsImageStreamingEnabledResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.is_image_streaming_enabled_response_;
      }
      break;
    }
    case kCheckCloudRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.check_cloud_request_;
      }
      break;
    }
    case kCheckCloudResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.check_cloud_response_;
      }
      break;
    }
    case kAudioSendModeRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.audio_send_mode_request_;
      }
      break;
    }
    case kAudioSendModeChanged: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.audio_send_mode_changed_;
      }
      break;
    }
    case kAudioChunk: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.audio_chunk_;
      }
      break;
    }
    case kFeatureFlagRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.feature_flag_request_;
      }
      break;
    }
    case kFeatureFlagResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.feature_flag_response_;
      }
      break;
    }
    case kFeatureFlagListRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.feature_flag_list_request_;
      }
      break;
    }
    case kFeatureFlagListResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.feature_flag_list_response_;
      }
      break;
    }
    case kAppDisconnected: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.app_disconnected_;
      }
      break;
    }
    case kAlexaAuthStateRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.alexa_auth_state_request_;
      }
      break;
    }
    case kAlexaAuthStateResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.alexa_auth_state_response_;
      }
      break;
    }
    case kAlexaOptInRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.alexa_opt_in_request_;
      }
      break;
    }
    case kAlexaOptInResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.alexa_opt_in_response_;
      }
      break;
    }
    case kSetEyeColorRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.set_eye_color_request_;
      }
      break;
    }
    case kSetEyeColorResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.set_eye_color_response_;
      }
      break;
    }
    case kMasterVolumeRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.master_volume_request_;
      }
      break;
    }
    case kMasterVolumeResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.master_volume_response_;
      }
      break;
    }
    case kSetCameraSettingsRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.set_camera_settings_request_;
      }
      break;
    }
    case kSetCameraSettingsResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.set_camera_settings_response_;
      }
      break;
    }
    case kCameraConfigRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.camera_config_request_;
      }
      break;
    }
    case kCameraConfigResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.camera_config_response_;
      }
      break;
    }
    case kExternalAudioStreamPrepare: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.external_audio_stream_prepare_;
      }
      break;
    }
    case kExternalAudioStreamChunk: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.external_audio_stream_chunk_;
      }
      break;
    }
    case kExternalAudioStreamCancel: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.external_audio_stream_cancel_;
      }
      break;
    }
    case kExternalAudioStreamComplete: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.external_audio_stream_complete_;
      }
      break;
    }
    case kExternalAudioStreamResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.external_audio_stream_response_;
      }
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = ONEOF_MESSAGE_TYPE_NOT_SET;
}


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

  connection_id_ = PROTOBUF_ULONGLONG(0);
  clear_oneof_message_type();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* GatewayWrapper::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // uint64 connection_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          connection_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.Event event = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_event(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingStateRequest onboarding_state_request = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_state_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingState onboarding_state = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_state(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingSkipOnboarding onboarding_skip_onboarding = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_skip_onboarding(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingRestart onboarding_restart = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_restart(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingCompleteRequest onboarding_complete_request = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_complete_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingCompleteResponse onboarding_complete_response = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_complete_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingWakeUpRequest onboarding_wake_up_request = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_wake_up_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingWakeUpResponse onboarding_wake_up_response = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_wake_up_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingWakeUpStartedRequest onboarding_wake_up_started_request = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_wake_up_started_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingWakeUpStartedResponse onboarding_wake_up_started_response = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_wake_up_started_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingSetPhaseRequest onboarding_set_phase_request = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_set_phase_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingSetPhaseResponse onboarding_set_phase_response = 18;
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_set_phase_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingPhaseProgressRequest onboarding_phase_progress_request = 19;
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_phase_progress_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingPhaseProgressResponse onboarding_phase_progress_response = 20;
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_phase_progress_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingChargeInfoRequest onboarding_charge_info_request = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_charge_info_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingChargeInfoResponse onboarding_charge_info_response = 22;
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_charge_info_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingMarkCompleteAndExit onboarding_mark_complete_and_exit = 23;
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_mark_complete_and_exit(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.LatestAttentionTransferRequest latest_attention_transfer_request = 100;
      case 100:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_latest_attention_transfer_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.LatestAttentionTransfer latest_attention_transfer = 101;
      case 101:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_latest_attention_transfer(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PhotosInfoRequest photos_info_request = 200;
      case 200:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_photos_info_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PhotosInfoResponse photos_info_response = 201;
      case 201:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_photos_info_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PhotoRequest photo_request = 202;
      case 202:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_photo_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PhotoPathMessage photo_path_message = 203;
      case 203:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_photo_path_message(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ThumbnailRequest thumbnail_request = 204;
      case 204:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_thumbnail_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ThumbnailPathMessage thumbnail_path_message = 205;
      case 205:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_thumbnail_path_message(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.DeletePhotoRequest delete_photo_request = 206;
      case 206:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) {
          ptr = ctx->ParseMessage(_internal_mutable_delete_photo_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.DeletePhotoResponse delete_photo_response = 207;
      case 207:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
          ptr = ctx->ParseMessage(_internal_mutable_delete_photo_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PullJdocsRequest pull_jdocs_request = 300;
      case 300:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_pull_jdocs_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PullJdocsResponse pull_jdocs_response = 301;
      case 301:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_pull_jdocs_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.UpdateSettingsRequest update_settings_request = 302;
      case 302:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) {
          ptr = ctx->ParseMessage(_internal_mutable_update_settings_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.UpdateSettingsResponse update_settings_response = 303;
      case 303:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
          ptr = ctx->ParseMessage(_internal_mutable_update_settings_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.UpdateAccountSettingsRequest update_account_settings_request = 304;
      case 304:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
          ptr = ctx->ParseMessage(_internal_mutable_update_account_settings_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.UpdateAccountSettingsResponse update_account_settings_response = 305;
      case 305:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
          ptr = ctx->ParseMessage(_internal_mutable_update_account_settings_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.UpdateUserEntitlementsRequest update_user_entitlements_request = 306;
      case 306:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
          ptr = ctx->ParseMessage(_internal_mutable_update_user_entitlements_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.UpdateUserEntitlementsResponse update_user_entitlements_response = 307;
      case 307:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
          ptr = ctx->ParseMessage(_internal_mutable_update_user_entitlements_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.DriveOffChargerRequest drive_off_charger_request = 400;
      case 400:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
          ptr = ctx->ParseMessage(_internal_mutable_drive_off_charger_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.DriveOffChargerResponse drive_off_charger_response = 401;
      case 401:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
          ptr = ctx->ParseMessage(_internal_mutable_drive_off_charger_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.DriveOnChargerRequest drive_on_charger_request = 402;
      case 402:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
          ptr = ctx->ParseMessage(_internal_mutable_drive_on_charger_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.DriveOnChargerResponse drive_on_charger_response = 403;
      case 403:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
          ptr = ctx->ParseMessage(_internal_mutable_drive_on_charger_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.FindFacesRequest find_faces_request = 404;
      case 404:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
          ptr = ctx->ParseMessage(_internal_mutable_find_faces_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.FindFacesResponse find_faces_response = 405;
      case 405:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
          ptr = ctx->ParseMessage(_internal_mutable_find_faces_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.LookAroundInPlaceRequest look_around_in_place_request = 406;
      case 406:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_look_around_in_place_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.LookAroundInPlaceResponse look_around_in_place_response = 407;
      case 407:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
          ptr = ctx->ParseMessage(_internal_mutable_look_around_in_place_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.RollBlockRequest roll_block_request = 408;
      case 408:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
          ptr = ctx->ParseMessage(_internal_mutable_roll_block_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.RollBlockResponse roll_block_response = 409;
      case 409:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 202)) {
          ptr = ctx->ParseMessage(_internal_mutable_roll_block_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.EnrollFaceRequest enroll_face_request = 410;
      case 410:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 210)) {
          ptr = ctx->ParseMessage(_internal_mutable_enroll_face_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.EnrollFaceResponse enroll_face_response = 411;
      case 411:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 218)) {
          ptr = ctx->ParseMessage(_internal_mutable_enroll_face_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SetFaceToEnrollRequest set_face_to_enroll_request = 412;
      case 412:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 226)) {
          ptr = ctx->ParseMessage(_internal_mutable_set_face_to_enroll_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SetFaceToEnrollResponse set_face_to_enroll_response = 413;
      case 413:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 234)) {
          ptr = ctx->ParseMessage(_internal_mutable_set_face_to_enroll_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CancelBehaviorRequest cancel_behavior_request = 414;
      case 414:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 242)) {
          ptr = ctx->ParseMessage(_internal_mutable_cancel_behavior_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CancelBehaviorResponse cancel_behavior_response = 415;
      case 415:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 250)) {
          ptr = ctx->ParseMessage(_internal_mutable_cancel_behavior_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.TurnInPlaceRequest turn_in_place_request = 500;
      case 500:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
          ptr = ctx->ParseMessage(_internal_mutable_turn_in_place_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.TurnInPlaceResponse turn_in_place_response = 501;
      case 501:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
          ptr = ctx->ParseMessage(_internal_mutable_turn_in_place_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.DriveStraightRequest drive_straight_request = 502;
      case 502:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_drive_straight_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.DriveStraightResponse drive_straight_response = 503;
      case 503:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
          ptr = ctx->ParseMessage(_internal_mutable_drive_straight_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SetHeadAngleRequest set_head_angle_request = 504;
      case 504:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
          ptr = ctx->ParseMessage(_internal_mutable_set_head_angle_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SetHeadAngleResponse set_head_angle_response = 505;
      case 505:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 202)) {
          ptr = ctx->ParseMessage(_internal_mutable_set_head_angle_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SetLiftHeightRequest set_lift_height_request = 506;
      case 506:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 210)) {
          ptr = ctx->ParseMessage(_internal_mutable_set_lift_height_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SetLiftHeightResponse set_lift_height_response = 507;
      case 507:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 218)) {
          ptr = ctx->ParseMessage(_internal_mutable_set_lift_height_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PlayAnimationRequest play_animation_request = 508;
      case 508:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 226)) {
          ptr = ctx->ParseMessage(_internal_mutable_play_animation_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PlayAnimationResponse play_animation_response = 509;
      case 509:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 234)) {
          ptr = ctx->ParseMessage(_internal_mutable_play_animation_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.GoToPoseRequest go_to_pose_request = 510;
      case 510:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 242)) {
          ptr = ctx->ParseMessage(_internal_mutable_go_to_pose_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.GoToPoseResponse go_to_pose_response = 511;
      case 511:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 250)) {
          ptr = ctx->ParseMessage(_internal_mutable_go_to_pose_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.DockWithCubeRequest dock_with_cube_request = 512;
      case 512:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 2)) {
          ptr = ctx->ParseMessage(_internal_mutable_dock_with_cube_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.DockWithCubeResponse dock_with_cube_response = 513;
      case 513:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_dock_with_cube_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.DriveWheelsRequest drive_wheels_request = 514;
      case 514:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_drive_wheels_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.DriveWheelsResponse drive_wheels_response = 515;
      case 515:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_drive_wheels_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ListAnimationsRequest list_animations_request = 516;
      case 516:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_list_animations_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ListAnimationsResponse list_animations_response = 517;
      case 517:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_list_animations_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PlayAnimationTriggerRequest play_animation_trigger_request = 518;
      case 518:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_play_animation_trigger_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ListAnimationTriggersRequest list_animation_triggers_request = 519;
      case 519:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_list_animation_triggers_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ListAnimationTriggersResponse list_animation_triggers_response = 520;
      case 520:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_list_animation_triggers_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CancelActionByIdTagRequest cancel_action_by_id_tag_request = 521;
      case 521:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_cancel_action_by_id_tag_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CancelActionByIdTagResponse cancel_action_by_id_tag_response = 522;
      case 522:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_cancel_action_by_id_tag_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.TurnTowardsFaceRequest turn_towards_face_request = 523;
      case 523:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_turn_towards_face_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.TurnTowardsFaceResponse turn_towards_face_response = 524;
      case 524:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_turn_towards_face_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.GoToObjectRequest go_to_object_request = 525;
      case 525:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_go_to_object_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.GoToObjectResponse go_to_object_response = 526;
      case 526:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) {
          ptr = ctx->ParseMessage(_internal_mutable_go_to_object_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.RollObjectRequest roll_object_request = 527;
      case 527:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
          ptr = ctx->ParseMessage(_internal_mutable_roll_object_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.RollObjectResponse roll_object_response = 528;
      case 528:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
          ptr = ctx->ParseMessage(_internal_mutable_roll_object_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PopAWheelieRequest pop_a_wheelie_request = 529;
      case 529:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
          ptr = ctx->ParseMessage(_internal_mutable_pop_a_wheelie_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PopAWheelieResponse pop_a_wheelie_response = 530;
      case 530:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
          ptr = ctx->ParseMessage(_internal_mutable_pop_a_wheelie_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PickupObjectRequest pickup_object_request = 531;
      case 531:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
          ptr = ctx->ParseMessage(_internal_mutable_pickup_object_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PickupObjectResponse pickup_object_response = 532;
      case 532:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
          ptr = ctx->ParseMessage(_internal_mutable_pickup_object_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest place_object_on_ground_here_request = 533;
      case 533:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
          ptr = ctx->ParseMessage(_internal_mutable_place_object_on_ground_here_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse place_object_on_ground_here_response = 534;
      case 534:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_place_object_on_ground_here_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.StopAllMotorsRequest stop_all_motors_request = 535;
      case 535:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
          ptr = ctx->ParseMessage(_internal_mutable_stop_all_motors_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.StopAllMotorsResponse stop_all_motors_response = 536;
      case 536:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
          ptr = ctx->ParseMessage(_internal_mutable_stop_all_motors_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.RobotHistoryRequest robot_history_request = 600;
      case 600:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
          ptr = ctx->ParseMessage(_internal_mutable_robot_history_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.RobotHistoryResponse robot_history_response = 601;
      case 601:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 202)) {
          ptr = ctx->ParseMessage(_internal_mutable_robot_history_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ConnectCubeRequest connect_cube_request = 700;
      case 700:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 226)) {
          ptr = ctx->ParseMessage(_internal_mutable_connect_cube_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ConnectCubeResponse connect_cube_response = 701;
      case 701:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 234)) {
          ptr = ctx->ParseMessage(_internal_mutable_connect_cube_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.DisconnectCubeRequest disconnect_cube_request = 702;
      case 702:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 242)) {
          ptr = ctx->ParseMessage(_internal_mutable_disconnect_cube_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.FlashCubeLightsRequest flash_cube_lights_request = 703;
      case 703:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 250)) {
          ptr = ctx->ParseMessage(_internal_mutable_flash_cube_lights_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ForgetPreferredCubeRequest forget_preferred_cube_request = 704;
      case 704:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 2)) {
          ptr = ctx->ParseMessage(_internal_mutable_forget_preferred_cube_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SetPreferredCubeRequest set_preferred_cube_request = 705;
      case 705:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_set_preferred_cube_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SetCubeLightsRequest set_cube_lights_request = 706;
      case 706:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_set_cube_lights_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CubesAvailableRequest cubes_available_request = 707;
      case 707:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_cubes_available_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CubesAvailableResponse cubes_available_response = 708;
      case 708:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_cubes_available_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.BatteryStateRequest battery_state_request = 800;
      case 800:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 2)) {
          ptr = ctx->ParseMessage(_internal_mutable_battery_state_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.BatteryStateResponse battery_state_response = 801;
      case 801:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_battery_state_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.VersionStateRequest version_state_request = 802;
      case 802:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_version_state_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.VersionStateResponse version_state_response = 803;
      case 803:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_version_state_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SayTextRequest say_text_request = 900;
      case 900:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_say_text_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SayTextResponse say_text_response = 901;
      case 901:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_say_text_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ControlRequest control_request = 1000;
      case 1000:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_control_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ControlRelease control_release = 1001;
      case 1001:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_control_release(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.BehaviorControlResponse behavior_control_response = 1002;
      case 1002:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_behavior_control_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ImageChunk image_chunk = 1101;
      case 1101:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_image_chunk(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.EnableMarkerDetectionRequest enable_marker_detection_request = 1102;
      case 1102:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) {
          ptr = ctx->ParseMessage(_internal_mutable_enable_marker_detection_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.EnableMarkerDetectionResponse enable_marker_detection_response = 1103;
      case 1103:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
          ptr = ctx->ParseMessage(_internal_mutable_enable_marker_detection_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.EnableFaceDetectionRequest enable_face_detection_request = 1104;
      case 1104:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
          ptr = ctx->ParseMessage(_internal_mutable_enable_face_detection_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.EnableFaceDetectionResponse enable_face_detection_response = 1105;
      case 1105:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
          ptr = ctx->ParseMessage(_internal_mutable_enable_face_detection_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.EnableMotionDetectionRequest enable_motion_detection_request = 1106;
      case 1106:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
          ptr = ctx->ParseMessage(_internal_mutable_enable_motion_detection_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.EnableMotionDetectionResponse enable_motion_detection_response = 1107;
      case 1107:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
          ptr = ctx->ParseMessage(_internal_mutable_enable_motion_detection_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.EnableMirrorModeRequest enable_mirror_mode_request = 1108;
      case 1108:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
          ptr = ctx->ParseMessage(_internal_mutable_enable_mirror_mode_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.EnableMirrorModeResponse enable_mirror_mode_response = 1109;
      case 1109:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
          ptr = ctx->ParseMessage(_internal_mutable_enable_mirror_mode_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.EnableImageStreamingRequest enable_image_streaming_request = 1110;
      case 1110:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_enable_image_streaming_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.EnableImageStreamingResponse enable_image_streaming_response = 1111;
      case 1111:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
          ptr = ctx->ParseMessage(_internal_mutable_enable_image_streaming_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.IsImageStreamingEnabledRequest is_image_streaming_enabled_request = 1112;
      case 1112:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
          ptr = ctx->ParseMessage(_internal_mutable_is_image_streaming_enabled_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.IsImageStreamingEnabledResponse is_image_streaming_enabled_response = 1113;
      case 1113:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 202)) {
          ptr = ctx->ParseMessage(_internal_mutable_is_image_streaming_enabled_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CheckCloudRequest check_cloud_request = 1200;
      case 1200:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
          ptr = ctx->ParseMessage(_internal_mutable_check_cloud_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CheckCloudResponse check_cloud_response = 1201;
      case 1201:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
          ptr = ctx->ParseMessage(_internal_mutable_check_cloud_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.AudioSendModeRequest audio_send_mode_request = 1300;
      case 1300:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
          ptr = ctx->ParseMessage(_internal_mutable_audio_send_mode_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.AudioSendModeChanged audio_send_mode_changed = 1301;
      case 1301:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
          ptr = ctx->ParseMessage(_internal_mutable_audio_send_mode_changed(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.AudioChunk audio_chunk = 1302;
      case 1302:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_audio_chunk(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.FeatureFlagRequest feature_flag_request = 1400;
      case 1400:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
          ptr = ctx->ParseMessage(_internal_mutable_feature_flag_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.FeatureFlagResponse feature_flag_response = 1401;
      case 1401:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 202)) {
          ptr = ctx->ParseMessage(_internal_mutable_feature_flag_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.FeatureFlagListRequest feature_flag_list_request = 1402;
      case 1402:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 210)) {
          ptr = ctx->ParseMessage(_internal_mutable_feature_flag_list_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.FeatureFlagListResponse feature_flag_list_response = 1403;
      case 1403:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 218)) {
          ptr = ctx->ParseMessage(_internal_mutable_feature_flag_list_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.AppDisconnected app_disconnected = 1500;
      case 1500:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 226)) {
          ptr = ctx->ParseMessage(_internal_mutable_app_disconnected(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.AlexaAuthStateRequest alexa_auth_state_request = 1600;
      case 1600:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 2)) {
          ptr = ctx->ParseMessage(_internal_mutable_alexa_auth_state_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.AlexaAuthStateResponse alexa_auth_state_response = 1601;
      case 1601:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_alexa_auth_state_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.AlexaOptInRequest alexa_opt_in_request = 1602;
      case 1602:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_alexa_opt_in_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.AlexaOptInResponse alexa_opt_in_response = 1603;
      case 1603:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_alexa_opt_in_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SetEyeColorRequest set_eye_color_request = 1700;
      case 1700:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_set_eye_color_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SetEyeColorResponse set_eye_color_response = 1701;
      case 1701:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_set_eye_color_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.MasterVolumeRequest master_volume_request = 1702;
      case 1702:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_master_volume_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.MasterVolumeResponse master_volume_response = 1703;
      case 1703:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_master_volume_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SetCameraSettingsRequest set_camera_settings_request = 1704;
      case 1704:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_set_camera_settings_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SetCameraSettingsResponse set_camera_settings_response = 1705;
      case 1705:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_set_camera_settings_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CameraConfigRequest camera_config_request = 1706;
      case 1706:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_camera_config_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CameraConfigResponse camera_config_response = 1707;
      case 1707:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_camera_config_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ExternalAudioStreamPrepare external_audio_stream_prepare = 1800;
      case 1800:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_external_audio_stream_prepare(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ExternalAudioStreamChunk external_audio_stream_chunk = 1801;
      case 1801:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_external_audio_stream_chunk(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ExternalAudioStreamCancel external_audio_stream_cancel = 1802;
      case 1802:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_external_audio_stream_cancel(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ExternalAudioStreamComplete external_audio_stream_complete = 1803;
      case 1803:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_external_audio_stream_complete(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ExternalAudioStreamResponse external_audio_stream_response = 1804;
      case 1804:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_external_audio_stream_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // uint64 connection_id = 1;
  if (this->connection_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(1, this->_internal_connection_id(), target);
  }

  // .Anki.Vector.external_interface.Event event = 2;
  if (_internal_has_event()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::event(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingStateRequest onboarding_state_request = 3;
  if (_internal_has_onboarding_state_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::onboarding_state_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingState onboarding_state = 4;
  if (_internal_has_onboarding_state()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::onboarding_state(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingSkipOnboarding onboarding_skip_onboarding = 5;
  if (_internal_has_onboarding_skip_onboarding()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        5, _Internal::onboarding_skip_onboarding(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingRestart onboarding_restart = 6;
  if (_internal_has_onboarding_restart()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        6, _Internal::onboarding_restart(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingCompleteRequest onboarding_complete_request = 11;
  if (_internal_has_onboarding_complete_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        11, _Internal::onboarding_complete_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingCompleteResponse onboarding_complete_response = 12;
  if (_internal_has_onboarding_complete_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        12, _Internal::onboarding_complete_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingWakeUpRequest onboarding_wake_up_request = 13;
  if (_internal_has_onboarding_wake_up_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        13, _Internal::onboarding_wake_up_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingWakeUpResponse onboarding_wake_up_response = 14;
  if (_internal_has_onboarding_wake_up_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        14, _Internal::onboarding_wake_up_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingWakeUpStartedRequest onboarding_wake_up_started_request = 15;
  if (_internal_has_onboarding_wake_up_started_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        15, _Internal::onboarding_wake_up_started_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingWakeUpStartedResponse onboarding_wake_up_started_response = 16;
  if (_internal_has_onboarding_wake_up_started_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        16, _Internal::onboarding_wake_up_started_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingSetPhaseRequest onboarding_set_phase_request = 17;
  if (_internal_has_onboarding_set_phase_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        17, _Internal::onboarding_set_phase_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingSetPhaseResponse onboarding_set_phase_response = 18;
  if (_internal_has_onboarding_set_phase_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        18, _Internal::onboarding_set_phase_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingPhaseProgressRequest onboarding_phase_progress_request = 19;
  if (_internal_has_onboarding_phase_progress_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        19, _Internal::onboarding_phase_progress_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingPhaseProgressResponse onboarding_phase_progress_response = 20;
  if (_internal_has_onboarding_phase_progress_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        20, _Internal::onboarding_phase_progress_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingChargeInfoRequest onboarding_charge_info_request = 21;
  if (_internal_has_onboarding_charge_info_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        21, _Internal::onboarding_charge_info_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingChargeInfoResponse onboarding_charge_info_response = 22;
  if (_internal_has_onboarding_charge_info_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        22, _Internal::onboarding_charge_info_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingMarkCompleteAndExit onboarding_mark_complete_and_exit = 23;
  if (_internal_has_onboarding_mark_complete_and_exit()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        23, _Internal::onboarding_mark_complete_and_exit(this), target, stream);
  }

  // .Anki.Vector.external_interface.LatestAttentionTransferRequest latest_attention_transfer_request = 100;
  if (_internal_has_latest_attention_transfer_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        100, _Internal::latest_attention_transfer_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.LatestAttentionTransfer latest_attention_transfer = 101;
  if (_internal_has_latest_attention_transfer()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        101, _Internal::latest_attention_transfer(this), target, stream);
  }

  // .Anki.Vector.external_interface.PhotosInfoRequest photos_info_request = 200;
  if (_internal_has_photos_info_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        200, _Internal::photos_info_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.PhotosInfoResponse photos_info_response = 201;
  if (_internal_has_photos_info_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        201, _Internal::photos_info_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.PhotoRequest photo_request = 202;
  if (_internal_has_photo_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        202, _Internal::photo_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.PhotoPathMessage photo_path_message = 203;
  if (_internal_has_photo_path_message()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        203, _Internal::photo_path_message(this), target, stream);
  }

  // .Anki.Vector.external_interface.ThumbnailRequest thumbnail_request = 204;
  if (_internal_has_thumbnail_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        204, _Internal::thumbnail_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.ThumbnailPathMessage thumbnail_path_message = 205;
  if (_internal_has_thumbnail_path_message()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        205, _Internal::thumbnail_path_message(this), target, stream);
  }

  // .Anki.Vector.external_interface.DeletePhotoRequest delete_photo_request = 206;
  if (_internal_has_delete_photo_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        206, _Internal::delete_photo_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.DeletePhotoResponse delete_photo_response = 207;
  if (_internal_has_delete_photo_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        207, _Internal::delete_photo_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.PullJdocsRequest pull_jdocs_request = 300;
  if (_internal_has_pull_jdocs_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        300, _Internal::pull_jdocs_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.PullJdocsResponse pull_jdocs_response = 301;
  if (_internal_has_pull_jdocs_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        301, _Internal::pull_jdocs_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.UpdateSettingsRequest update_settings_request = 302;
  if (_internal_has_update_settings_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        302, _Internal::update_settings_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.UpdateSettingsResponse update_settings_response = 303;
  if (_internal_has_update_settings_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        303, _Internal::update_settings_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.UpdateAccountSettingsRequest update_account_settings_request = 304;
  if (_internal_has_update_account_settings_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        304, _Internal::update_account_settings_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.UpdateAccountSettingsResponse update_account_settings_response = 305;
  if (_internal_has_update_account_settings_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        305, _Internal::update_account_settings_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.UpdateUserEntitlementsRequest update_user_entitlements_request = 306;
  if (_internal_has_update_user_entitlements_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        306, _Internal::update_user_entitlements_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.UpdateUserEntitlementsResponse update_user_entitlements_response = 307;
  if (_internal_has_update_user_entitlements_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        307, _Internal::update_user_entitlements_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.DriveOffChargerRequest drive_off_charger_request = 400;
  if (_internal_has_drive_off_charger_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        400, _Internal::drive_off_charger_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.DriveOffChargerResponse drive_off_charger_response = 401;
  if (_internal_has_drive_off_charger_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        401, _Internal::drive_off_charger_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.DriveOnChargerRequest drive_on_charger_request = 402;
  if (_internal_has_drive_on_charger_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        402, _Internal::drive_on_charger_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.DriveOnChargerResponse drive_on_charger_response = 403;
  if (_internal_has_drive_on_charger_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        403, _Internal::drive_on_charger_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.FindFacesRequest find_faces_request = 404;
  if (_internal_has_find_faces_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        404, _Internal::find_faces_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.FindFacesResponse find_faces_response = 405;
  if (_internal_has_find_faces_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        405, _Internal::find_faces_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.LookAroundInPlaceRequest look_around_in_place_request = 406;
  if (_internal_has_look_around_in_place_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        406, _Internal::look_around_in_place_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.LookAroundInPlaceResponse look_around_in_place_response = 407;
  if (_internal_has_look_around_in_place_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        407, _Internal::look_around_in_place_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.RollBlockRequest roll_block_request = 408;
  if (_internal_has_roll_block_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        408, _Internal::roll_block_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.RollBlockResponse roll_block_response = 409;
  if (_internal_has_roll_block_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        409, _Internal::roll_block_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.EnrollFaceRequest enroll_face_request = 410;
  if (_internal_has_enroll_face_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        410, _Internal::enroll_face_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.EnrollFaceResponse enroll_face_response = 411;
  if (_internal_has_enroll_face_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        411, _Internal::enroll_face_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.SetFaceToEnrollRequest set_face_to_enroll_request = 412;
  if (_internal_has_set_face_to_enroll_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        412, _Internal::set_face_to_enroll_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.SetFaceToEnrollResponse set_face_to_enroll_response = 413;
  if (_internal_has_set_face_to_enroll_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        413, _Internal::set_face_to_enroll_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.CancelBehaviorRequest cancel_behavior_request = 414;
  if (_internal_has_cancel_behavior_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        414, _Internal::cancel_behavior_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.CancelBehaviorResponse cancel_behavior_response = 415;
  if (_internal_has_cancel_behavior_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        415, _Internal::cancel_behavior_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.TurnInPlaceRequest turn_in_place_request = 500;
  if (_internal_has_turn_in_place_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        500, _Internal::turn_in_place_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.TurnInPlaceResponse turn_in_place_response = 501;
  if (_internal_has_turn_in_place_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        501, _Internal::turn_in_place_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.DriveStraightRequest drive_straight_request = 502;
  if (_internal_has_drive_straight_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        502, _Internal::drive_straight_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.DriveStraightResponse drive_straight_response = 503;
  if (_internal_has_drive_straight_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        503, _Internal::drive_straight_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.SetHeadAngleRequest set_head_angle_request = 504;
  if (_internal_has_set_head_angle_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        504, _Internal::set_head_angle_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.SetHeadAngleResponse set_head_angle_response = 505;
  if (_internal_has_set_head_angle_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        505, _Internal::set_head_angle_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.SetLiftHeightRequest set_lift_height_request = 506;
  if (_internal_has_set_lift_height_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        506, _Internal::set_lift_height_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.SetLiftHeightResponse set_lift_height_response = 507;
  if (_internal_has_set_lift_height_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        507, _Internal::set_lift_height_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.PlayAnimationRequest play_animation_request = 508;
  if (_internal_has_play_animation_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        508, _Internal::play_animation_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.PlayAnimationResponse play_animation_response = 509;
  if (_internal_has_play_animation_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        509, _Internal::play_animation_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.GoToPoseRequest go_to_pose_request = 510;
  if (_internal_has_go_to_pose_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        510, _Internal::go_to_pose_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.GoToPoseResponse go_to_pose_response = 511;
  if (_internal_has_go_to_pose_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        511, _Internal::go_to_pose_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.DockWithCubeRequest dock_with_cube_request = 512;
  if (_internal_has_dock_with_cube_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        512, _Internal::dock_with_cube_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.DockWithCubeResponse dock_with_cube_response = 513;
  if (_internal_has_dock_with_cube_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        513, _Internal::dock_with_cube_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.DriveWheelsRequest drive_wheels_request = 514;
  if (_internal_has_drive_wheels_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        514, _Internal::drive_wheels_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.DriveWheelsResponse drive_wheels_response = 515;
  if (_internal_has_drive_wheels_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        515, _Internal::drive_wheels_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.ListAnimationsRequest list_animations_request = 516;
  if (_internal_has_list_animations_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        516, _Internal::list_animations_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.ListAnimationsResponse list_animations_response = 517;
  if (_internal_has_list_animations_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        517, _Internal::list_animations_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.PlayAnimationTriggerRequest play_animation_trigger_request = 518;
  if (_internal_has_play_animation_trigger_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        518, _Internal::play_animation_trigger_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.ListAnimationTriggersRequest list_animation_triggers_request = 519;
  if (_internal_has_list_animation_triggers_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        519, _Internal::list_animation_triggers_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.ListAnimationTriggersResponse list_animation_triggers_response = 520;
  if (_internal_has_list_animation_triggers_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        520, _Internal::list_animation_triggers_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.CancelActionByIdTagRequest cancel_action_by_id_tag_request = 521;
  if (_internal_has_cancel_action_by_id_tag_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        521, _Internal::cancel_action_by_id_tag_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.CancelActionByIdTagResponse cancel_action_by_id_tag_response = 522;
  if (_internal_has_cancel_action_by_id_tag_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        522, _Internal::cancel_action_by_id_tag_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.TurnTowardsFaceRequest turn_towards_face_request = 523;
  if (_internal_has_turn_towards_face_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        523, _Internal::turn_towards_face_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.TurnTowardsFaceResponse turn_towards_face_response = 524;
  if (_internal_has_turn_towards_face_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        524, _Internal::turn_towards_face_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.GoToObjectRequest go_to_object_request = 525;
  if (_internal_has_go_to_object_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        525, _Internal::go_to_object_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.GoToObjectResponse go_to_object_response = 526;
  if (_internal_has_go_to_object_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        526, _Internal::go_to_object_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.RollObjectRequest roll_object_request = 527;
  if (_internal_has_roll_object_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        527, _Internal::roll_object_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.RollObjectResponse roll_object_response = 528;
  if (_internal_has_roll_object_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        528, _Internal::roll_object_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.PopAWheelieRequest pop_a_wheelie_request = 529;
  if (_internal_has_pop_a_wheelie_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        529, _Internal::pop_a_wheelie_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.PopAWheelieResponse pop_a_wheelie_response = 530;
  if (_internal_has_pop_a_wheelie_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        530, _Internal::pop_a_wheelie_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.PickupObjectRequest pickup_object_request = 531;
  if (_internal_has_pickup_object_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        531, _Internal::pickup_object_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.PickupObjectResponse pickup_object_response = 532;
  if (_internal_has_pickup_object_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        532, _Internal::pickup_object_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest place_object_on_ground_here_request = 533;
  if (_internal_has_place_object_on_ground_here_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        533, _Internal::place_object_on_ground_here_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse place_object_on_ground_here_response = 534;
  if (_internal_has_place_object_on_ground_here_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        534, _Internal::place_object_on_ground_here_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.StopAllMotorsRequest stop_all_motors_request = 535;
  if (_internal_has_stop_all_motors_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        535, _Internal::stop_all_motors_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.StopAllMotorsResponse stop_all_motors_response = 536;
  if (_internal_has_stop_all_motors_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        536, _Internal::stop_all_motors_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.RobotHistoryRequest robot_history_request = 600;
  if (_internal_has_robot_history_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        600, _Internal::robot_history_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.RobotHistoryResponse robot_history_response = 601;
  if (_internal_has_robot_history_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        601, _Internal::robot_history_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.ConnectCubeRequest connect_cube_request = 700;
  if (_internal_has_connect_cube_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        700, _Internal::connect_cube_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.ConnectCubeResponse connect_cube_response = 701;
  if (_internal_has_connect_cube_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        701, _Internal::connect_cube_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.DisconnectCubeRequest disconnect_cube_request = 702;
  if (_internal_has_disconnect_cube_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        702, _Internal::disconnect_cube_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.FlashCubeLightsRequest flash_cube_lights_request = 703;
  if (_internal_has_flash_cube_lights_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        703, _Internal::flash_cube_lights_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.ForgetPreferredCubeRequest forget_preferred_cube_request = 704;
  if (_internal_has_forget_preferred_cube_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        704, _Internal::forget_preferred_cube_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.SetPreferredCubeRequest set_preferred_cube_request = 705;
  if (_internal_has_set_preferred_cube_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        705, _Internal::set_preferred_cube_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.SetCubeLightsRequest set_cube_lights_request = 706;
  if (_internal_has_set_cube_lights_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        706, _Internal::set_cube_lights_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.CubesAvailableRequest cubes_available_request = 707;
  if (_internal_has_cubes_available_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        707, _Internal::cubes_available_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.CubesAvailableResponse cubes_available_response = 708;
  if (_internal_has_cubes_available_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        708, _Internal::cubes_available_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.BatteryStateRequest battery_state_request = 800;
  if (_internal_has_battery_state_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        800, _Internal::battery_state_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.BatteryStateResponse battery_state_response = 801;
  if (_internal_has_battery_state_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        801, _Internal::battery_state_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.VersionStateRequest version_state_request = 802;
  if (_internal_has_version_state_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        802, _Internal::version_state_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.VersionStateResponse version_state_response = 803;
  if (_internal_has_version_state_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        803, _Internal::version_state_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.SayTextRequest say_text_request = 900;
  if (_internal_has_say_text_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        900, _Internal::say_text_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.SayTextResponse say_text_response = 901;
  if (_internal_has_say_text_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        901, _Internal::say_text_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.ControlRequest control_request = 1000;
  if (_internal_has_control_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1000, _Internal::control_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.ControlRelease control_release = 1001;
  if (_internal_has_control_release()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1001, _Internal::control_release(this), target, stream);
  }

  // .Anki.Vector.external_interface.BehaviorControlResponse behavior_control_response = 1002;
  if (_internal_has_behavior_control_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1002, _Internal::behavior_control_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.ImageChunk image_chunk = 1101;
  if (_internal_has_image_chunk()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1101, _Internal::image_chunk(this), target, stream);
  }

  // .Anki.Vector.external_interface.EnableMarkerDetectionRequest enable_marker_detection_request = 1102;
  if (_internal_has_enable_marker_detection_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1102, _Internal::enable_marker_detection_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.EnableMarkerDetectionResponse enable_marker_detection_response = 1103;
  if (_internal_has_enable_marker_detection_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1103, _Internal::enable_marker_detection_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.EnableFaceDetectionRequest enable_face_detection_request = 1104;
  if (_internal_has_enable_face_detection_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1104, _Internal::enable_face_detection_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.EnableFaceDetectionResponse enable_face_detection_response = 1105;
  if (_internal_has_enable_face_detection_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1105, _Internal::enable_face_detection_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.EnableMotionDetectionRequest enable_motion_detection_request = 1106;
  if (_internal_has_enable_motion_detection_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1106, _Internal::enable_motion_detection_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.EnableMotionDetectionResponse enable_motion_detection_response = 1107;
  if (_internal_has_enable_motion_detection_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1107, _Internal::enable_motion_detection_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.EnableMirrorModeRequest enable_mirror_mode_request = 1108;
  if (_internal_has_enable_mirror_mode_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1108, _Internal::enable_mirror_mode_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.EnableMirrorModeResponse enable_mirror_mode_response = 1109;
  if (_internal_has_enable_mirror_mode_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1109, _Internal::enable_mirror_mode_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.EnableImageStreamingRequest enable_image_streaming_request = 1110;
  if (_internal_has_enable_image_streaming_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1110, _Internal::enable_image_streaming_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.EnableImageStreamingResponse enable_image_streaming_response = 1111;
  if (_internal_has_enable_image_streaming_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1111, _Internal::enable_image_streaming_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.IsImageStreamingEnabledRequest is_image_streaming_enabled_request = 1112;
  if (_internal_has_is_image_streaming_enabled_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1112, _Internal::is_image_streaming_enabled_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.IsImageStreamingEnabledResponse is_image_streaming_enabled_response = 1113;
  if (_internal_has_is_image_streaming_enabled_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1113, _Internal::is_image_streaming_enabled_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.CheckCloudRequest check_cloud_request = 1200;
  if (_internal_has_check_cloud_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1200, _Internal::check_cloud_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.CheckCloudResponse check_cloud_response = 1201;
  if (_internal_has_check_cloud_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1201, _Internal::check_cloud_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.AudioSendModeRequest audio_send_mode_request = 1300;
  if (_internal_has_audio_send_mode_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1300, _Internal::audio_send_mode_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.AudioSendModeChanged audio_send_mode_changed = 1301;
  if (_internal_has_audio_send_mode_changed()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1301, _Internal::audio_send_mode_changed(this), target, stream);
  }

  // .Anki.Vector.external_interface.AudioChunk audio_chunk = 1302;
  if (_internal_has_audio_chunk()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1302, _Internal::audio_chunk(this), target, stream);
  }

  // .Anki.Vector.external_interface.FeatureFlagRequest feature_flag_request = 1400;
  if (_internal_has_feature_flag_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1400, _Internal::feature_flag_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.FeatureFlagResponse feature_flag_response = 1401;
  if (_internal_has_feature_flag_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1401, _Internal::feature_flag_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.FeatureFlagListRequest feature_flag_list_request = 1402;
  if (_internal_has_feature_flag_list_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1402, _Internal::feature_flag_list_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.FeatureFlagListResponse feature_flag_list_response = 1403;
  if (_internal_has_feature_flag_list_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1403, _Internal::feature_flag_list_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.AppDisconnected app_disconnected = 1500;
  if (_internal_has_app_disconnected()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1500, _Internal::app_disconnected(this), target, stream);
  }

  // .Anki.Vector.external_interface.AlexaAuthStateRequest alexa_auth_state_request = 1600;
  if (_internal_has_alexa_auth_state_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1600, _Internal::alexa_auth_state_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.AlexaAuthStateResponse alexa_auth_state_response = 1601;
  if (_internal_has_alexa_auth_state_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1601, _Internal::alexa_auth_state_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.AlexaOptInRequest alexa_opt_in_request = 1602;
  if (_internal_has_alexa_opt_in_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1602, _Internal::alexa_opt_in_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.AlexaOptInResponse alexa_opt_in_response = 1603;
  if (_internal_has_alexa_opt_in_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1603, _Internal::alexa_opt_in_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.SetEyeColorRequest set_eye_color_request = 1700;
  if (_internal_has_set_eye_color_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1700, _Internal::set_eye_color_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.SetEyeColorResponse set_eye_color_response = 1701;
  if (_internal_has_set_eye_color_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1701, _Internal::set_eye_color_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.MasterVolumeRequest master_volume_request = 1702;
  if (_internal_has_master_volume_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1702, _Internal::master_volume_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.MasterVolumeResponse master_volume_response = 1703;
  if (_internal_has_master_volume_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1703, _Internal::master_volume_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.SetCameraSettingsRequest set_camera_settings_request = 1704;
  if (_internal_has_set_camera_settings_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1704, _Internal::set_camera_settings_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.SetCameraSettingsResponse set_camera_settings_response = 1705;
  if (_internal_has_set_camera_settings_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1705, _Internal::set_camera_settings_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.CameraConfigRequest camera_config_request = 1706;
  if (_internal_has_camera_config_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1706, _Internal::camera_config_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.CameraConfigResponse camera_config_response = 1707;
  if (_internal_has_camera_config_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1707, _Internal::camera_config_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.ExternalAudioStreamPrepare external_audio_stream_prepare = 1800;
  if (_internal_has_external_audio_stream_prepare()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1800, _Internal::external_audio_stream_prepare(this), target, stream);
  }

  // .Anki.Vector.external_interface.ExternalAudioStreamChunk external_audio_stream_chunk = 1801;
  if (_internal_has_external_audio_stream_chunk()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1801, _Internal::external_audio_stream_chunk(this), target, stream);
  }

  // .Anki.Vector.external_interface.ExternalAudioStreamCancel external_audio_stream_cancel = 1802;
  if (_internal_has_external_audio_stream_cancel()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1802, _Internal::external_audio_stream_cancel(this), target, stream);
  }

  // .Anki.Vector.external_interface.ExternalAudioStreamComplete external_audio_stream_complete = 1803;
  if (_internal_has_external_audio_stream_complete()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1803, _Internal::external_audio_stream_complete(this), target, stream);
  }

  // .Anki.Vector.external_interface.ExternalAudioStreamResponse external_audio_stream_response = 1804;
  if (_internal_has_external_audio_stream_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1804, _Internal::external_audio_stream_response(this), target, stream);
  }

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

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

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

  // uint64 connection_id = 1;
  if (this->connection_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size(
        this->_internal_connection_id());
  }

  switch (oneof_message_type_case()) {
    // .Anki.Vector.external_interface.Event event = 2;
    case kEvent: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.event_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingStateRequest onboarding_state_request = 3;
    case kOnboardingStateRequest: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_state_request_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingState onboarding_state = 4;
    case kOnboardingState: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_state_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingSkipOnboarding onboarding_skip_onboarding = 5;
    case kOnboardingSkipOnboarding: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_skip_onboarding_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingRestart onboarding_restart = 6;
    case kOnboardingRestart: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_restart_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingCompleteRequest onboarding_complete_request = 11;
    case kOnboardingCompleteRequest: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_complete_request_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingCompleteResponse onboarding_complete_response = 12;
    case kOnboardingCompleteResponse: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_complete_response_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingWakeUpRequest onboarding_wake_up_request = 13;
    case kOnboardingWakeUpRequest: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_wake_up_request_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingWakeUpResponse onboarding_wake_up_response = 14;
    case kOnboardingWakeUpResponse: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_wake_up_response_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingWakeUpStartedRequest onboarding_wake_up_started_request = 15;
    case kOnboardingWakeUpStartedRequest: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_wake_up_started_request_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingWakeUpStartedResponse onboarding_wake_up_started_response = 16;
    case kOnboardingWakeUpStartedResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_wake_up_started_response_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingSetPhaseRequest onboarding_set_phase_request = 17;
    case kOnboardingSetPhaseRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_set_phase_request_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingSetPhaseResponse onboarding_set_phase_response = 18;
    case kOnboardingSetPhaseResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_set_phase_response_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingPhaseProgressRequest onboarding_phase_progress_request = 19;
    case kOnboardingPhaseProgressRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_phase_progress_request_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingPhaseProgressResponse onboarding_phase_progress_response = 20;
    case kOnboardingPhaseProgressResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_phase_progress_response_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingChargeInfoRequest onboarding_charge_info_request = 21;
    case kOnboardingChargeInfoRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_charge_info_request_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingChargeInfoResponse onboarding_charge_info_response = 22;
    case kOnboardingChargeInfoResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_charge_info_response_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingMarkCompleteAndExit onboarding_mark_complete_and_exit = 23;
    case kOnboardingMarkCompleteAndExit: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_mark_complete_and_exit_);
      break;
    }
    // .Anki.Vector.external_interface.LatestAttentionTransferRequest latest_attention_transfer_request = 100;
    case kLatestAttentionTransferRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.latest_attention_transfer_request_);
      break;
    }
    // .Anki.Vector.external_interface.LatestAttentionTransfer latest_attention_transfer = 101;
    case kLatestAttentionTransfer: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.latest_attention_transfer_);
      break;
    }
    // .Anki.Vector.external_interface.PhotosInfoRequest photos_info_request = 200;
    case kPhotosInfoRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.photos_info_request_);
      break;
    }
    // .Anki.Vector.external_interface.PhotosInfoResponse photos_info_response = 201;
    case kPhotosInfoResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.photos_info_response_);
      break;
    }
    // .Anki.Vector.external_interface.PhotoRequest photo_request = 202;
    case kPhotoRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.photo_request_);
      break;
    }
    // .Anki.Vector.external_interface.PhotoPathMessage photo_path_message = 203;
    case kPhotoPathMessage: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.photo_path_message_);
      break;
    }
    // .Anki.Vector.external_interface.ThumbnailRequest thumbnail_request = 204;
    case kThumbnailRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.thumbnail_request_);
      break;
    }
    // .Anki.Vector.external_interface.ThumbnailPathMessage thumbnail_path_message = 205;
    case kThumbnailPathMessage: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.thumbnail_path_message_);
      break;
    }
    // .Anki.Vector.external_interface.DeletePhotoRequest delete_photo_request = 206;
    case kDeletePhotoRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.delete_photo_request_);
      break;
    }
    // .Anki.Vector.external_interface.DeletePhotoResponse delete_photo_response = 207;
    case kDeletePhotoResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.delete_photo_response_);
      break;
    }
    // .Anki.Vector.external_interface.PullJdocsRequest pull_jdocs_request = 300;
    case kPullJdocsRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.pull_jdocs_request_);
      break;
    }
    // .Anki.Vector.external_interface.PullJdocsResponse pull_jdocs_response = 301;
    case kPullJdocsResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.pull_jdocs_response_);
      break;
    }
    // .Anki.Vector.external_interface.UpdateSettingsRequest update_settings_request = 302;
    case kUpdateSettingsRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.update_settings_request_);
      break;
    }
    // .Anki.Vector.external_interface.UpdateSettingsResponse update_settings_response = 303;
    case kUpdateSettingsResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.update_settings_response_);
      break;
    }
    // .Anki.Vector.external_interface.UpdateAccountSettingsRequest update_account_settings_request = 304;
    case kUpdateAccountSettingsRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.update_account_settings_request_);
      break;
    }
    // .Anki.Vector.external_interface.UpdateAccountSettingsResponse update_account_settings_response = 305;
    case kUpdateAccountSettingsResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.update_account_settings_response_);
      break;
    }
    // .Anki.Vector.external_interface.UpdateUserEntitlementsRequest update_user_entitlements_request = 306;
    case kUpdateUserEntitlementsRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.update_user_entitlements_request_);
      break;
    }
    // .Anki.Vector.external_interface.UpdateUserEntitlementsResponse update_user_entitlements_response = 307;
    case kUpdateUserEntitlementsResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.update_user_entitlements_response_);
      break;
    }
    // .Anki.Vector.external_interface.DriveOffChargerRequest drive_off_charger_request = 400;
    case kDriveOffChargerRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.drive_off_charger_request_);
      break;
    }
    // .Anki.Vector.external_interface.DriveOffChargerResponse drive_off_charger_response = 401;
    case kDriveOffChargerResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.drive_off_charger_response_);
      break;
    }
    // .Anki.Vector.external_interface.DriveOnChargerRequest drive_on_charger_request = 402;
    case kDriveOnChargerRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.drive_on_charger_request_);
      break;
    }
    // .Anki.Vector.external_interface.DriveOnChargerResponse drive_on_charger_response = 403;
    case kDriveOnChargerResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.drive_on_charger_response_);
      break;
    }
    // .Anki.Vector.external_interface.FindFacesRequest find_faces_request = 404;
    case kFindFacesRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.find_faces_request_);
      break;
    }
    // .Anki.Vector.external_interface.FindFacesResponse find_faces_response = 405;
    case kFindFacesResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.find_faces_response_);
      break;
    }
    // .Anki.Vector.external_interface.LookAroundInPlaceRequest look_around_in_place_request = 406;
    case kLookAroundInPlaceRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.look_around_in_place_request_);
      break;
    }
    // .Anki.Vector.external_interface.LookAroundInPlaceResponse look_around_in_place_response = 407;
    case kLookAroundInPlaceResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.look_around_in_place_response_);
      break;
    }
    // .Anki.Vector.external_interface.RollBlockRequest roll_block_request = 408;
    case kRollBlockRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.roll_block_request_);
      break;
    }
    // .Anki.Vector.external_interface.RollBlockResponse roll_block_response = 409;
    case kRollBlockResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.roll_block_response_);
      break;
    }
    // .Anki.Vector.external_interface.EnrollFaceRequest enroll_face_request = 410;
    case kEnrollFaceRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.enroll_face_request_);
      break;
    }
    // .Anki.Vector.external_interface.EnrollFaceResponse enroll_face_response = 411;
    case kEnrollFaceResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.enroll_face_response_);
      break;
    }
    // .Anki.Vector.external_interface.SetFaceToEnrollRequest set_face_to_enroll_request = 412;
    case kSetFaceToEnrollRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.set_face_to_enroll_request_);
      break;
    }
    // .Anki.Vector.external_interface.SetFaceToEnrollResponse set_face_to_enroll_response = 413;
    case kSetFaceToEnrollResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.set_face_to_enroll_response_);
      break;
    }
    // .Anki.Vector.external_interface.CancelBehaviorRequest cancel_behavior_request = 414;
    case kCancelBehaviorRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.cancel_behavior_request_);
      break;
    }
    // .Anki.Vector.external_interface.CancelBehaviorResponse cancel_behavior_response = 415;
    case kCancelBehaviorResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.cancel_behavior_response_);
      break;
    }
    // .Anki.Vector.external_interface.TurnInPlaceRequest turn_in_place_request = 500;
    case kTurnInPlaceRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.turn_in_place_request_);
      break;
    }
    // .Anki.Vector.external_interface.TurnInPlaceResponse turn_in_place_response = 501;
    case kTurnInPlaceResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.turn_in_place_response_);
      break;
    }
    // .Anki.Vector.external_interface.DriveStraightRequest drive_straight_request = 502;
    case kDriveStraightRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.drive_straight_request_);
      break;
    }
    // .Anki.Vector.external_interface.DriveStraightResponse drive_straight_response = 503;
    case kDriveStraightResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.drive_straight_response_);
      break;
    }
    // .Anki.Vector.external_interface.SetHeadAngleRequest set_head_angle_request = 504;
    case kSetHeadAngleRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.set_head_angle_request_);
      break;
    }
    // .Anki.Vector.external_interface.SetHeadAngleResponse set_head_angle_response = 505;
    case kSetHeadAngleResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.set_head_angle_response_);
      break;
    }
    // .Anki.Vector.external_interface.SetLiftHeightRequest set_lift_height_request = 506;
    case kSetLiftHeightRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.set_lift_height_request_);
      break;
    }
    // .Anki.Vector.external_interface.SetLiftHeightResponse set_lift_height_response = 507;
    case kSetLiftHeightResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.set_lift_height_response_);
      break;
    }
    // .Anki.Vector.external_interface.PlayAnimationRequest play_animation_request = 508;
    case kPlayAnimationRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.play_animation_request_);
      break;
    }
    // .Anki.Vector.external_interface.PlayAnimationResponse play_animation_response = 509;
    case kPlayAnimationResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.play_animation_response_);
      break;
    }
    // .Anki.Vector.external_interface.GoToPoseRequest go_to_pose_request = 510;
    case kGoToPoseRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.go_to_pose_request_);
      break;
    }
    // .Anki.Vector.external_interface.GoToPoseResponse go_to_pose_response = 511;
    case kGoToPoseResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.go_to_pose_response_);
      break;
    }
    // .Anki.Vector.external_interface.DockWithCubeRequest dock_with_cube_request = 512;
    case kDockWithCubeRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.dock_with_cube_request_);
      break;
    }
    // .Anki.Vector.external_interface.DockWithCubeResponse dock_with_cube_response = 513;
    case kDockWithCubeResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.dock_with_cube_response_);
      break;
    }
    // .Anki.Vector.external_interface.DriveWheelsRequest drive_wheels_request = 514;
    case kDriveWheelsRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.drive_wheels_request_);
      break;
    }
    // .Anki.Vector.external_interface.DriveWheelsResponse drive_wheels_response = 515;
    case kDriveWheelsResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.drive_wheels_response_);
      break;
    }
    // .Anki.Vector.external_interface.ListAnimationsRequest list_animations_request = 516;
    case kListAnimationsRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.list_animations_request_);
      break;
    }
    // .Anki.Vector.external_interface.ListAnimationsResponse list_animations_response = 517;
    case kListAnimationsResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.list_animations_response_);
      break;
    }
    // .Anki.Vector.external_interface.PlayAnimationTriggerRequest play_animation_trigger_request = 518;
    case kPlayAnimationTriggerRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.play_animation_trigger_request_);
      break;
    }
    // .Anki.Vector.external_interface.ListAnimationTriggersRequest list_animation_triggers_request = 519;
    case kListAnimationTriggersRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.list_animation_triggers_request_);
      break;
    }
    // .Anki.Vector.external_interface.ListAnimationTriggersResponse list_animation_triggers_response = 520;
    case kListAnimationTriggersResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.list_animation_triggers_response_);
      break;
    }
    // .Anki.Vector.external_interface.CancelActionByIdTagRequest cancel_action_by_id_tag_request = 521;
    case kCancelActionByIdTagRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.cancel_action_by_id_tag_request_);
      break;
    }
    // .Anki.Vector.external_interface.CancelActionByIdTagResponse cancel_action_by_id_tag_response = 522;
    case kCancelActionByIdTagResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.cancel_action_by_id_tag_response_);
      break;
    }
    // .Anki.Vector.external_interface.TurnTowardsFaceRequest turn_towards_face_request = 523;
    case kTurnTowardsFaceRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.turn_towards_face_request_);
      break;
    }
    // .Anki.Vector.external_interface.TurnTowardsFaceResponse turn_towards_face_response = 524;
    case kTurnTowardsFaceResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.turn_towards_face_response_);
      break;
    }
    // .Anki.Vector.external_interface.GoToObjectRequest go_to_object_request = 525;
    case kGoToObjectRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.go_to_object_request_);
      break;
    }
    // .Anki.Vector.external_interface.GoToObjectResponse go_to_object_response = 526;
    case kGoToObjectResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.go_to_object_response_);
      break;
    }
    // .Anki.Vector.external_interface.RollObjectRequest roll_object_request = 527;
    case kRollObjectRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.roll_object_request_);
      break;
    }
    // .Anki.Vector.external_interface.RollObjectResponse roll_object_response = 528;
    case kRollObjectResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.roll_object_response_);
      break;
    }
    // .Anki.Vector.external_interface.PopAWheelieRequest pop_a_wheelie_request = 529;
    case kPopAWheelieRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.pop_a_wheelie_request_);
      break;
    }
    // .Anki.Vector.external_interface.PopAWheelieResponse pop_a_wheelie_response = 530;
    case kPopAWheelieResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.pop_a_wheelie_response_);
      break;
    }
    // .Anki.Vector.external_interface.PickupObjectRequest pickup_object_request = 531;
    case kPickupObjectRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.pickup_object_request_);
      break;
    }
    // .Anki.Vector.external_interface.PickupObjectResponse pickup_object_response = 532;
    case kPickupObjectResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.pickup_object_response_);
      break;
    }
    // .Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest place_object_on_ground_here_request = 533;
    case kPlaceObjectOnGroundHereRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.place_object_on_ground_here_request_);
      break;
    }
    // .Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse place_object_on_ground_here_response = 534;
    case kPlaceObjectOnGroundHereResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.place_object_on_ground_here_response_);
      break;
    }
    // .Anki.Vector.external_interface.StopAllMotorsRequest stop_all_motors_request = 535;
    case kStopAllMotorsRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.stop_all_motors_request_);
      break;
    }
    // .Anki.Vector.external_interface.StopAllMotorsResponse stop_all_motors_response = 536;
    case kStopAllMotorsResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.stop_all_motors_response_);
      break;
    }
    // .Anki.Vector.external_interface.RobotHistoryRequest robot_history_request = 600;
    case kRobotHistoryRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.robot_history_request_);
      break;
    }
    // .Anki.Vector.external_interface.RobotHistoryResponse robot_history_response = 601;
    case kRobotHistoryResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.robot_history_response_);
      break;
    }
    // .Anki.Vector.external_interface.ConnectCubeRequest connect_cube_request = 700;
    case kConnectCubeRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.connect_cube_request_);
      break;
    }
    // .Anki.Vector.external_interface.ConnectCubeResponse connect_cube_response = 701;
    case kConnectCubeResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.connect_cube_response_);
      break;
    }
    // .Anki.Vector.external_interface.DisconnectCubeRequest disconnect_cube_request = 702;
    case kDisconnectCubeRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.disconnect_cube_request_);
      break;
    }
    // .Anki.Vector.external_interface.FlashCubeLightsRequest flash_cube_lights_request = 703;
    case kFlashCubeLightsRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.flash_cube_lights_request_);
      break;
    }
    // .Anki.Vector.external_interface.ForgetPreferredCubeRequest forget_preferred_cube_request = 704;
    case kForgetPreferredCubeRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.forget_preferred_cube_request_);
      break;
    }
    // .Anki.Vector.external_interface.SetPreferredCubeRequest set_preferred_cube_request = 705;
    case kSetPreferredCubeRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.set_preferred_cube_request_);
      break;
    }
    // .Anki.Vector.external_interface.SetCubeLightsRequest set_cube_lights_request = 706;
    case kSetCubeLightsRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.set_cube_lights_request_);
      break;
    }
    // .Anki.Vector.external_interface.CubesAvailableRequest cubes_available_request = 707;
    case kCubesAvailableRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.cubes_available_request_);
      break;
    }
    // .Anki.Vector.external_interface.CubesAvailableResponse cubes_available_response = 708;
    case kCubesAvailableResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.cubes_available_response_);
      break;
    }
    // .Anki.Vector.external_interface.BatteryStateRequest battery_state_request = 800;
    case kBatteryStateRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.battery_state_request_);
      break;
    }
    // .Anki.Vector.external_interface.BatteryStateResponse battery_state_response = 801;
    case kBatteryStateResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.battery_state_response_);
      break;
    }
    // .Anki.Vector.external_interface.VersionStateRequest version_state_request = 802;
    case kVersionStateRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.version_state_request_);
      break;
    }
    // .Anki.Vector.external_interface.VersionStateResponse version_state_response = 803;
    case kVersionStateResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.version_state_response_);
      break;
    }
    // .Anki.Vector.external_interface.SayTextRequest say_text_request = 900;
    case kSayTextRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.say_text_request_);
      break;
    }
    // .Anki.Vector.external_interface.SayTextResponse say_text_response = 901;
    case kSayTextResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.say_text_response_);
      break;
    }
    // .Anki.Vector.external_interface.ControlRequest control_request = 1000;
    case kControlRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.control_request_);
      break;
    }
    // .Anki.Vector.external_interface.ControlRelease control_release = 1001;
    case kControlRelease: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.control_release_);
      break;
    }
    // .Anki.Vector.external_interface.BehaviorControlResponse behavior_control_response = 1002;
    case kBehaviorControlResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.behavior_control_response_);
      break;
    }
    // .Anki.Vector.external_interface.ImageChunk image_chunk = 1101;
    case kImageChunk: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.image_chunk_);
      break;
    }
    // .Anki.Vector.external_interface.EnableMarkerDetectionRequest enable_marker_detection_request = 1102;
    case kEnableMarkerDetectionRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.enable_marker_detection_request_);
      break;
    }
    // .Anki.Vector.external_interface.EnableMarkerDetectionResponse enable_marker_detection_response = 1103;
    case kEnableMarkerDetectionResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.enable_marker_detection_response_);
      break;
    }
    // .Anki.Vector.external_interface.EnableFaceDetectionRequest enable_face_detection_request = 1104;
    case kEnableFaceDetectionRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.enable_face_detection_request_);
      break;
    }
    // .Anki.Vector.external_interface.EnableFaceDetectionResponse enable_face_detection_response = 1105;
    case kEnableFaceDetectionResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.enable_face_detection_response_);
      break;
    }
    // .Anki.Vector.external_interface.EnableMotionDetectionRequest enable_motion_detection_request = 1106;
    case kEnableMotionDetectionRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.enable_motion_detection_request_);
      break;
    }
    // .Anki.Vector.external_interface.EnableMotionDetectionResponse enable_motion_detection_response = 1107;
    case kEnableMotionDetectionResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.enable_motion_detection_response_);
      break;
    }
    // .Anki.Vector.external_interface.EnableMirrorModeRequest enable_mirror_mode_request = 1108;
    case kEnableMirrorModeRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.enable_mirror_mode_request_);
      break;
    }
    // .Anki.Vector.external_interface.EnableMirrorModeResponse enable_mirror_mode_response = 1109;
    case kEnableMirrorModeResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.enable_mirror_mode_response_);
      break;
    }
    // .Anki.Vector.external_interface.EnableImageStreamingRequest enable_image_streaming_request = 1110;
    case kEnableImageStreamingRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.enable_image_streaming_request_);
      break;
    }
    // .Anki.Vector.external_interface.EnableImageStreamingResponse enable_image_streaming_response = 1111;
    case kEnableImageStreamingResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.enable_image_streaming_response_);
      break;
    }
    // .Anki.Vector.external_interface.IsImageStreamingEnabledRequest is_image_streaming_enabled_request = 1112;
    case kIsImageStreamingEnabledRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.is_image_streaming_enabled_request_);
      break;
    }
    // .Anki.Vector.external_interface.IsImageStreamingEnabledResponse is_image_streaming_enabled_response = 1113;
    case kIsImageStreamingEnabledResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.is_image_streaming_enabled_response_);
      break;
    }
    // .Anki.Vector.external_interface.CheckCloudRequest check_cloud_request = 1200;
    case kCheckCloudRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.check_cloud_request_);
      break;
    }
    // .Anki.Vector.external_interface.CheckCloudResponse check_cloud_response = 1201;
    case kCheckCloudResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.check_cloud_response_);
      break;
    }
    // .Anki.Vector.external_interface.AudioSendModeRequest audio_send_mode_request = 1300;
    case kAudioSendModeRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.audio_send_mode_request_);
      break;
    }
    // .Anki.Vector.external_interface.AudioSendModeChanged audio_send_mode_changed = 1301;
    case kAudioSendModeChanged: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.audio_send_mode_changed_);
      break;
    }
    // .Anki.Vector.external_interface.AudioChunk audio_chunk = 1302;
    case kAudioChunk: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.audio_chunk_);
      break;
    }
    // .Anki.Vector.external_interface.FeatureFlagRequest feature_flag_request = 1400;
    case kFeatureFlagRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.feature_flag_request_);
      break;
    }
    // .Anki.Vector.external_interface.FeatureFlagResponse feature_flag_response = 1401;
    case kFeatureFlagResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.feature_flag_response_);
      break;
    }
    // .Anki.Vector.external_interface.FeatureFlagListRequest feature_flag_list_request = 1402;
    case kFeatureFlagListRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.feature_flag_list_request_);
      break;
    }
    // .Anki.Vector.external_interface.FeatureFlagListResponse feature_flag_list_response = 1403;
    case kFeatureFlagListResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.feature_flag_list_response_);
      break;
    }
    // .Anki.Vector.external_interface.AppDisconnected app_disconnected = 1500;
    case kAppDisconnected: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.app_disconnected_);
      break;
    }
    // .Anki.Vector.external_interface.AlexaAuthStateRequest alexa_auth_state_request = 1600;
    case kAlexaAuthStateRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.alexa_auth_state_request_);
      break;
    }
    // .Anki.Vector.external_interface.AlexaAuthStateResponse alexa_auth_state_response = 1601;
    case kAlexaAuthStateResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.alexa_auth_state_response_);
      break;
    }
    // .Anki.Vector.external_interface.AlexaOptInRequest alexa_opt_in_request = 1602;
    case kAlexaOptInRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.alexa_opt_in_request_);
      break;
    }
    // .Anki.Vector.external_interface.AlexaOptInResponse alexa_opt_in_response = 1603;
    case kAlexaOptInResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.alexa_opt_in_response_);
      break;
    }
    // .Anki.Vector.external_interface.SetEyeColorRequest set_eye_color_request = 1700;
    case kSetEyeColorRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.set_eye_color_request_);
      break;
    }
    // .Anki.Vector.external_interface.SetEyeColorResponse set_eye_color_response = 1701;
    case kSetEyeColorResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.set_eye_color_response_);
      break;
    }
    // .Anki.Vector.external_interface.MasterVolumeRequest master_volume_request = 1702;
    case kMasterVolumeRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.master_volume_request_);
      break;
    }
    // .Anki.Vector.external_interface.MasterVolumeResponse master_volume_response = 1703;
    case kMasterVolumeResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.master_volume_response_);
      break;
    }
    // .Anki.Vector.external_interface.SetCameraSettingsRequest set_camera_settings_request = 1704;
    case kSetCameraSettingsRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.set_camera_settings_request_);
      break;
    }
    // .Anki.Vector.external_interface.SetCameraSettingsResponse set_camera_settings_response = 1705;
    case kSetCameraSettingsResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.set_camera_settings_response_);
      break;
    }
    // .Anki.Vector.external_interface.CameraConfigRequest camera_config_request = 1706;
    case kCameraConfigRequest: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.camera_config_request_);
      break;
    }
    // .Anki.Vector.external_interface.CameraConfigResponse camera_config_response = 1707;
    case kCameraConfigResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.camera_config_response_);
      break;
    }
    // .Anki.Vector.external_interface.ExternalAudioStreamPrepare external_audio_stream_prepare = 1800;
    case kExternalAudioStreamPrepare: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.external_audio_stream_prepare_);
      break;
    }
    // .Anki.Vector.external_interface.ExternalAudioStreamChunk external_audio_stream_chunk = 1801;
    case kExternalAudioStreamChunk: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.external_audio_stream_chunk_);
      break;
    }
    // .Anki.Vector.external_interface.ExternalAudioStreamCancel external_audio_stream_cancel = 1802;
    case kExternalAudioStreamCancel: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.external_audio_stream_cancel_);
      break;
    }
    // .Anki.Vector.external_interface.ExternalAudioStreamComplete external_audio_stream_complete = 1803;
    case kExternalAudioStreamComplete: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.external_audio_stream_complete_);
      break;
    }
    // .Anki.Vector.external_interface.ExternalAudioStreamResponse external_audio_stream_response = 1804;
    case kExternalAudioStreamResponse: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.external_audio_stream_response_);
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  if (from.connection_id() != 0) {
    _internal_set_connection_id(from._internal_connection_id());
  }
  switch (from.oneof_message_type_case()) {
    case kEvent: {
      _internal_mutable_event()->::Anki::Vector::external_interface::Event::MergeFrom(from._internal_event());
      break;
    }
    case kOnboardingStateRequest: {
      _internal_mutable_onboarding_state_request()->::Anki::Vector::external_interface::OnboardingStateRequest::MergeFrom(from._internal_onboarding_state_request());
      break;
    }
    case kOnboardingState: {
      _internal_mutable_onboarding_state()->::Anki::Vector::external_interface::OnboardingState::MergeFrom(from._internal_onboarding_state());
      break;
    }
    case kOnboardingSkipOnboarding: {
      _internal_mutable_onboarding_skip_onboarding()->::Anki::Vector::external_interface::OnboardingSkipOnboarding::MergeFrom(from._internal_onboarding_skip_onboarding());
      break;
    }
    case kOnboardingRestart: {
      _internal_mutable_onboarding_restart()->::Anki::Vector::external_interface::OnboardingRestart::MergeFrom(from._internal_onboarding_restart());
      break;
    }
    case kOnboardingCompleteRequest: {
      _internal_mutable_onboarding_complete_request()->::Anki::Vector::external_interface::OnboardingCompleteRequest::MergeFrom(from._internal_onboarding_complete_request());
      break;
    }
    case kOnboardingCompleteResponse: {
      _internal_mutable_onboarding_complete_response()->::Anki::Vector::external_interface::OnboardingCompleteResponse::MergeFrom(from._internal_onboarding_complete_response());
      break;
    }
    case kOnboardingWakeUpRequest: {
      _internal_mutable_onboarding_wake_up_request()->::Anki::Vector::external_interface::OnboardingWakeUpRequest::MergeFrom(from._internal_onboarding_wake_up_request());
      break;
    }
    case kOnboardingWakeUpResponse: {
      _internal_mutable_onboarding_wake_up_response()->::Anki::Vector::external_interface::OnboardingWakeUpResponse::MergeFrom(from._internal_onboarding_wake_up_response());
      break;
    }
    case kOnboardingWakeUpStartedRequest: {
      _internal_mutable_onboarding_wake_up_started_request()->::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest::MergeFrom(from._internal_onboarding_wake_up_started_request());
      break;
    }
    case kOnboardingWakeUpStartedResponse: {
      _internal_mutable_onboarding_wake_up_started_response()->::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse::MergeFrom(from._internal_onboarding_wake_up_started_response());
      break;
    }
    case kOnboardingSetPhaseRequest: {
      _internal_mutable_onboarding_set_phase_request()->::Anki::Vector::external_interface::OnboardingSetPhaseRequest::MergeFrom(from._internal_onboarding_set_phase_request());
      break;
    }
    case kOnboardingSetPhaseResponse: {
      _internal_mutable_onboarding_set_phase_response()->::Anki::Vector::external_interface::OnboardingSetPhaseResponse::MergeFrom(from._internal_onboarding_set_phase_response());
      break;
    }
    case kOnboardingPhaseProgressRequest: {
      _internal_mutable_onboarding_phase_progress_request()->::Anki::Vector::external_interface::OnboardingPhaseProgressRequest::MergeFrom(from._internal_onboarding_phase_progress_request());
      break;
    }
    case kOnboardingPhaseProgressResponse: {
      _internal_mutable_onboarding_phase_progress_response()->::Anki::Vector::external_interface::OnboardingPhaseProgressResponse::MergeFrom(from._internal_onboarding_phase_progress_response());
      break;
    }
    case kOnboardingChargeInfoRequest: {
      _internal_mutable_onboarding_charge_info_request()->::Anki::Vector::external_interface::OnboardingChargeInfoRequest::MergeFrom(from._internal_onboarding_charge_info_request());
      break;
    }
    case kOnboardingChargeInfoResponse: {
      _internal_mutable_onboarding_charge_info_response()->::Anki::Vector::external_interface::OnboardingChargeInfoResponse::MergeFrom(from._internal_onboarding_charge_info_response());
      break;
    }
    case kOnboardingMarkCompleteAndExit: {
      _internal_mutable_onboarding_mark_complete_and_exit()->::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit::MergeFrom(from._internal_onboarding_mark_complete_and_exit());
      break;
    }
    case kLatestAttentionTransferRequest: {
      _internal_mutable_latest_attention_transfer_request()->::Anki::Vector::external_interface::LatestAttentionTransferRequest::MergeFrom(from._internal_latest_attention_transfer_request());
      break;
    }
    case kLatestAttentionTransfer: {
      _internal_mutable_latest_attention_transfer()->::Anki::Vector::external_interface::LatestAttentionTransfer::MergeFrom(from._internal_latest_attention_transfer());
      break;
    }
    case kPhotosInfoRequest: {
      _internal_mutable_photos_info_request()->::Anki::Vector::external_interface::PhotosInfoRequest::MergeFrom(from._internal_photos_info_request());
      break;
    }
    case kPhotosInfoResponse: {
      _internal_mutable_photos_info_response()->::Anki::Vector::external_interface::PhotosInfoResponse::MergeFrom(from._internal_photos_info_response());
      break;
    }
    case kPhotoRequest: {
      _internal_mutable_photo_request()->::Anki::Vector::external_interface::PhotoRequest::MergeFrom(from._internal_photo_request());
      break;
    }
    case kPhotoPathMessage: {
      _internal_mutable_photo_path_message()->::Anki::Vector::external_interface::PhotoPathMessage::MergeFrom(from._internal_photo_path_message());
      break;
    }
    case kThumbnailRequest: {
      _internal_mutable_thumbnail_request()->::Anki::Vector::external_interface::ThumbnailRequest::MergeFrom(from._internal_thumbnail_request());
      break;
    }
    case kThumbnailPathMessage: {
      _internal_mutable_thumbnail_path_message()->::Anki::Vector::external_interface::ThumbnailPathMessage::MergeFrom(from._internal_thumbnail_path_message());
      break;
    }
    case kDeletePhotoRequest: {
      _internal_mutable_delete_photo_request()->::Anki::Vector::external_interface::DeletePhotoRequest::MergeFrom(from._internal_delete_photo_request());
      break;
    }
    case kDeletePhotoResponse: {
      _internal_mutable_delete_photo_response()->::Anki::Vector::external_interface::DeletePhotoResponse::MergeFrom(from._internal_delete_photo_response());
      break;
    }
    case kPullJdocsRequest: {
      _internal_mutable_pull_jdocs_request()->::Anki::Vector::external_interface::PullJdocsRequest::MergeFrom(from._internal_pull_jdocs_request());
      break;
    }
    case kPullJdocsResponse: {
      _internal_mutable_pull_jdocs_response()->::Anki::Vector::external_interface::PullJdocsResponse::MergeFrom(from._internal_pull_jdocs_response());
      break;
    }
    case kUpdateSettingsRequest: {
      _internal_mutable_update_settings_request()->::Anki::Vector::external_interface::UpdateSettingsRequest::MergeFrom(from._internal_update_settings_request());
      break;
    }
    case kUpdateSettingsResponse: {
      _internal_mutable_update_settings_response()->::Anki::Vector::external_interface::UpdateSettingsResponse::MergeFrom(from._internal_update_settings_response());
      break;
    }
    case kUpdateAccountSettingsRequest: {
      _internal_mutable_update_account_settings_request()->::Anki::Vector::external_interface::UpdateAccountSettingsRequest::MergeFrom(from._internal_update_account_settings_request());
      break;
    }
    case kUpdateAccountSettingsResponse: {
      _internal_mutable_update_account_settings_response()->::Anki::Vector::external_interface::UpdateAccountSettingsResponse::MergeFrom(from._internal_update_account_settings_response());
      break;
    }
    case kUpdateUserEntitlementsRequest: {
      _internal_mutable_update_user_entitlements_request()->::Anki::Vector::external_interface::UpdateUserEntitlementsRequest::MergeFrom(from._internal_update_user_entitlements_request());
      break;
    }
    case kUpdateUserEntitlementsResponse: {
      _internal_mutable_update_user_entitlements_response()->::Anki::Vector::external_interface::UpdateUserEntitlementsResponse::MergeFrom(from._internal_update_user_entitlements_response());
      break;
    }
    case kDriveOffChargerRequest: {
      _internal_mutable_drive_off_charger_request()->::Anki::Vector::external_interface::DriveOffChargerRequest::MergeFrom(from._internal_drive_off_charger_request());
      break;
    }
    case kDriveOffChargerResponse: {
      _internal_mutable_drive_off_charger_response()->::Anki::Vector::external_interface::DriveOffChargerResponse::MergeFrom(from._internal_drive_off_charger_response());
      break;
    }
    case kDriveOnChargerRequest: {
      _internal_mutable_drive_on_charger_request()->::Anki::Vector::external_interface::DriveOnChargerRequest::MergeFrom(from._internal_drive_on_charger_request());
      break;
    }
    case kDriveOnChargerResponse: {
      _internal_mutable_drive_on_charger_response()->::Anki::Vector::external_interface::DriveOnChargerResponse::MergeFrom(from._internal_drive_on_charger_response());
      break;
    }
    case kFindFacesRequest: {
      _internal_mutable_find_faces_request()->::Anki::Vector::external_interface::FindFacesRequest::MergeFrom(from._internal_find_faces_request());
      break;
    }
    case kFindFacesResponse: {
      _internal_mutable_find_faces_response()->::Anki::Vector::external_interface::FindFacesResponse::MergeFrom(from._internal_find_faces_response());
      break;
    }
    case kLookAroundInPlaceRequest: {
      _internal_mutable_look_around_in_place_request()->::Anki::Vector::external_interface::LookAroundInPlaceRequest::MergeFrom(from._internal_look_around_in_place_request());
      break;
    }
    case kLookAroundInPlaceResponse: {
      _internal_mutable_look_around_in_place_response()->::Anki::Vector::external_interface::LookAroundInPlaceResponse::MergeFrom(from._internal_look_around_in_place_response());
      break;
    }
    case kRollBlockRequest: {
      _internal_mutable_roll_block_request()->::Anki::Vector::external_interface::RollBlockRequest::MergeFrom(from._internal_roll_block_request());
      break;
    }
    case kRollBlockResponse: {
      _internal_mutable_roll_block_response()->::Anki::Vector::external_interface::RollBlockResponse::MergeFrom(from._internal_roll_block_response());
      break;
    }
    case kEnrollFaceRequest: {
      _internal_mutable_enroll_face_request()->::Anki::Vector::external_interface::EnrollFaceRequest::MergeFrom(from._internal_enroll_face_request());
      break;
    }
    case kEnrollFaceResponse: {
      _internal_mutable_enroll_face_response()->::Anki::Vector::external_interface::EnrollFaceResponse::MergeFrom(from._internal_enroll_face_response());
      break;
    }
    case kSetFaceToEnrollRequest: {
      _internal_mutable_set_face_to_enroll_request()->::Anki::Vector::external_interface::SetFaceToEnrollRequest::MergeFrom(from._internal_set_face_to_enroll_request());
      break;
    }
    case kSetFaceToEnrollResponse: {
      _internal_mutable_set_face_to_enroll_response()->::Anki::Vector::external_interface::SetFaceToEnrollResponse::MergeFrom(from._internal_set_face_to_enroll_response());
      break;
    }
    case kCancelBehaviorRequest: {
      _internal_mutable_cancel_behavior_request()->::Anki::Vector::external_interface::CancelBehaviorRequest::MergeFrom(from._internal_cancel_behavior_request());
      break;
    }
    case kCancelBehaviorResponse: {
      _internal_mutable_cancel_behavior_response()->::Anki::Vector::external_interface::CancelBehaviorResponse::MergeFrom(from._internal_cancel_behavior_response());
      break;
    }
    case kTurnInPlaceRequest: {
      _internal_mutable_turn_in_place_request()->::Anki::Vector::external_interface::TurnInPlaceRequest::MergeFrom(from._internal_turn_in_place_request());
      break;
    }
    case kTurnInPlaceResponse: {
      _internal_mutable_turn_in_place_response()->::Anki::Vector::external_interface::TurnInPlaceResponse::MergeFrom(from._internal_turn_in_place_response());
      break;
    }
    case kDriveStraightRequest: {
      _internal_mutable_drive_straight_request()->::Anki::Vector::external_interface::DriveStraightRequest::MergeFrom(from._internal_drive_straight_request());
      break;
    }
    case kDriveStraightResponse: {
      _internal_mutable_drive_straight_response()->::Anki::Vector::external_interface::DriveStraightResponse::MergeFrom(from._internal_drive_straight_response());
      break;
    }
    case kSetHeadAngleRequest: {
      _internal_mutable_set_head_angle_request()->::Anki::Vector::external_interface::SetHeadAngleRequest::MergeFrom(from._internal_set_head_angle_request());
      break;
    }
    case kSetHeadAngleResponse: {
      _internal_mutable_set_head_angle_response()->::Anki::Vector::external_interface::SetHeadAngleResponse::MergeFrom(from._internal_set_head_angle_response());
      break;
    }
    case kSetLiftHeightRequest: {
      _internal_mutable_set_lift_height_request()->::Anki::Vector::external_interface::SetLiftHeightRequest::MergeFrom(from._internal_set_lift_height_request());
      break;
    }
    case kSetLiftHeightResponse: {
      _internal_mutable_set_lift_height_response()->::Anki::Vector::external_interface::SetLiftHeightResponse::MergeFrom(from._internal_set_lift_height_response());
      break;
    }
    case kPlayAnimationRequest: {
      _internal_mutable_play_animation_request()->::Anki::Vector::external_interface::PlayAnimationRequest::MergeFrom(from._internal_play_animation_request());
      break;
    }
    case kPlayAnimationResponse: {
      _internal_mutable_play_animation_response()->::Anki::Vector::external_interface::PlayAnimationResponse::MergeFrom(from._internal_play_animation_response());
      break;
    }
    case kGoToPoseRequest: {
      _internal_mutable_go_to_pose_request()->::Anki::Vector::external_interface::GoToPoseRequest::MergeFrom(from._internal_go_to_pose_request());
      break;
    }
    case kGoToPoseResponse: {
      _internal_mutable_go_to_pose_response()->::Anki::Vector::external_interface::GoToPoseResponse::MergeFrom(from._internal_go_to_pose_response());
      break;
    }
    case kDockWithCubeRequest: {
      _internal_mutable_dock_with_cube_request()->::Anki::Vector::external_interface::DockWithCubeRequest::MergeFrom(from._internal_dock_with_cube_request());
      break;
    }
    case kDockWithCubeResponse: {
      _internal_mutable_dock_with_cube_response()->::Anki::Vector::external_interface::DockWithCubeResponse::MergeFrom(from._internal_dock_with_cube_response());
      break;
    }
    case kDriveWheelsRequest: {
      _internal_mutable_drive_wheels_request()->::Anki::Vector::external_interface::DriveWheelsRequest::MergeFrom(from._internal_drive_wheels_request());
      break;
    }
    case kDriveWheelsResponse: {
      _internal_mutable_drive_wheels_response()->::Anki::Vector::external_interface::DriveWheelsResponse::MergeFrom(from._internal_drive_wheels_response());
      break;
    }
    case kListAnimationsRequest: {
      _internal_mutable_list_animations_request()->::Anki::Vector::external_interface::ListAnimationsRequest::MergeFrom(from._internal_list_animations_request());
      break;
    }
    case kListAnimationsResponse: {
      _internal_mutable_list_animations_response()->::Anki::Vector::external_interface::ListAnimationsResponse::MergeFrom(from._internal_list_animations_response());
      break;
    }
    case kPlayAnimationTriggerRequest: {
      _internal_mutable_play_animation_trigger_request()->::Anki::Vector::external_interface::PlayAnimationTriggerRequest::MergeFrom(from._internal_play_animation_trigger_request());
      break;
    }
    case kListAnimationTriggersRequest: {
      _internal_mutable_list_animation_triggers_request()->::Anki::Vector::external_interface::ListAnimationTriggersRequest::MergeFrom(from._internal_list_animation_triggers_request());
      break;
    }
    case kListAnimationTriggersResponse: {
      _internal_mutable_list_animation_triggers_response()->::Anki::Vector::external_interface::ListAnimationTriggersResponse::MergeFrom(from._internal_list_animation_triggers_response());
      break;
    }
    case kCancelActionByIdTagRequest: {
      _internal_mutable_cancel_action_by_id_tag_request()->::Anki::Vector::external_interface::CancelActionByIdTagRequest::MergeFrom(from._internal_cancel_action_by_id_tag_request());
      break;
    }
    case kCancelActionByIdTagResponse: {
      _internal_mutable_cancel_action_by_id_tag_response()->::Anki::Vector::external_interface::CancelActionByIdTagResponse::MergeFrom(from._internal_cancel_action_by_id_tag_response());
      break;
    }
    case kTurnTowardsFaceRequest: {
      _internal_mutable_turn_towards_face_request()->::Anki::Vector::external_interface::TurnTowardsFaceRequest::MergeFrom(from._internal_turn_towards_face_request());
      break;
    }
    case kTurnTowardsFaceResponse: {
      _internal_mutable_turn_towards_face_response()->::Anki::Vector::external_interface::TurnTowardsFaceResponse::MergeFrom(from._internal_turn_towards_face_response());
      break;
    }
    case kGoToObjectRequest: {
      _internal_mutable_go_to_object_request()->::Anki::Vector::external_interface::GoToObjectRequest::MergeFrom(from._internal_go_to_object_request());
      break;
    }
    case kGoToObjectResponse: {
      _internal_mutable_go_to_object_response()->::Anki::Vector::external_interface::GoToObjectResponse::MergeFrom(from._internal_go_to_object_response());
      break;
    }
    case kRollObjectRequest: {
      _internal_mutable_roll_object_request()->::Anki::Vector::external_interface::RollObjectRequest::MergeFrom(from._internal_roll_object_request());
      break;
    }
    case kRollObjectResponse: {
      _internal_mutable_roll_object_response()->::Anki::Vector::external_interface::RollObjectResponse::MergeFrom(from._internal_roll_object_response());
      break;
    }
    case kPopAWheelieRequest: {
      _internal_mutable_pop_a_wheelie_request()->::Anki::Vector::external_interface::PopAWheelieRequest::MergeFrom(from._internal_pop_a_wheelie_request());
      break;
    }
    case kPopAWheelieResponse: {
      _internal_mutable_pop_a_wheelie_response()->::Anki::Vector::external_interface::PopAWheelieResponse::MergeFrom(from._internal_pop_a_wheelie_response());
      break;
    }
    case kPickupObjectRequest: {
      _internal_mutable_pickup_object_request()->::Anki::Vector::external_interface::PickupObjectRequest::MergeFrom(from._internal_pickup_object_request());
      break;
    }
    case kPickupObjectResponse: {
      _internal_mutable_pickup_object_response()->::Anki::Vector::external_interface::PickupObjectResponse::MergeFrom(from._internal_pickup_object_response());
      break;
    }
    case kPlaceObjectOnGroundHereRequest: {
      _internal_mutable_place_object_on_ground_here_request()->::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest::MergeFrom(from._internal_place_object_on_ground_here_request());
      break;
    }
    case kPlaceObjectOnGroundHereResponse: {
      _internal_mutable_place_object_on_ground_here_response()->::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse::MergeFrom(from._internal_place_object_on_ground_here_response());
      break;
    }
    case kStopAllMotorsRequest: {
      _internal_mutable_stop_all_motors_request()->::Anki::Vector::external_interface::StopAllMotorsRequest::MergeFrom(from._internal_stop_all_motors_request());
      break;
    }
    case kStopAllMotorsResponse: {
      _internal_mutable_stop_all_motors_response()->::Anki::Vector::external_interface::StopAllMotorsResponse::MergeFrom(from._internal_stop_all_motors_response());
      break;
    }
    case kRobotHistoryRequest: {
      _internal_mutable_robot_history_request()->::Anki::Vector::external_interface::RobotHistoryRequest::MergeFrom(from._internal_robot_history_request());
      break;
    }
    case kRobotHistoryResponse: {
      _internal_mutable_robot_history_response()->::Anki::Vector::external_interface::RobotHistoryResponse::MergeFrom(from._internal_robot_history_response());
      break;
    }
    case kConnectCubeRequest: {
      _internal_mutable_connect_cube_request()->::Anki::Vector::external_interface::ConnectCubeRequest::MergeFrom(from._internal_connect_cube_request());
      break;
    }
    case kConnectCubeResponse: {
      _internal_mutable_connect_cube_response()->::Anki::Vector::external_interface::ConnectCubeResponse::MergeFrom(from._internal_connect_cube_response());
      break;
    }
    case kDisconnectCubeRequest: {
      _internal_mutable_disconnect_cube_request()->::Anki::Vector::external_interface::DisconnectCubeRequest::MergeFrom(from._internal_disconnect_cube_request());
      break;
    }
    case kFlashCubeLightsRequest: {
      _internal_mutable_flash_cube_lights_request()->::Anki::Vector::external_interface::FlashCubeLightsRequest::MergeFrom(from._internal_flash_cube_lights_request());
      break;
    }
    case kForgetPreferredCubeRequest: {
      _internal_mutable_forget_preferred_cube_request()->::Anki::Vector::external_interface::ForgetPreferredCubeRequest::MergeFrom(from._internal_forget_preferred_cube_request());
      break;
    }
    case kSetPreferredCubeRequest: {
      _internal_mutable_set_preferred_cube_request()->::Anki::Vector::external_interface::SetPreferredCubeRequest::MergeFrom(from._internal_set_preferred_cube_request());
      break;
    }
    case kSetCubeLightsRequest: {
      _internal_mutable_set_cube_lights_request()->::Anki::Vector::external_interface::SetCubeLightsRequest::MergeFrom(from._internal_set_cube_lights_request());
      break;
    }
    case kCubesAvailableRequest: {
      _internal_mutable_cubes_available_request()->::Anki::Vector::external_interface::CubesAvailableRequest::MergeFrom(from._internal_cubes_available_request());
      break;
    }
    case kCubesAvailableResponse: {
      _internal_mutable_cubes_available_response()->::Anki::Vector::external_interface::CubesAvailableResponse::MergeFrom(from._internal_cubes_available_response());
      break;
    }
    case kBatteryStateRequest: {
      _internal_mutable_battery_state_request()->::Anki::Vector::external_interface::BatteryStateRequest::MergeFrom(from._internal_battery_state_request());
      break;
    }
    case kBatteryStateResponse: {
      _internal_mutable_battery_state_response()->::Anki::Vector::external_interface::BatteryStateResponse::MergeFrom(from._internal_battery_state_response());
      break;
    }
    case kVersionStateRequest: {
      _internal_mutable_version_state_request()->::Anki::Vector::external_interface::VersionStateRequest::MergeFrom(from._internal_version_state_request());
      break;
    }
    case kVersionStateResponse: {
      _internal_mutable_version_state_response()->::Anki::Vector::external_interface::VersionStateResponse::MergeFrom(from._internal_version_state_response());
      break;
    }
    case kSayTextRequest: {
      _internal_mutable_say_text_request()->::Anki::Vector::external_interface::SayTextRequest::MergeFrom(from._internal_say_text_request());
      break;
    }
    case kSayTextResponse: {
      _internal_mutable_say_text_response()->::Anki::Vector::external_interface::SayTextResponse::MergeFrom(from._internal_say_text_response());
      break;
    }
    case kControlRequest: {
      _internal_mutable_control_request()->::Anki::Vector::external_interface::ControlRequest::MergeFrom(from._internal_control_request());
      break;
    }
    case kControlRelease: {
      _internal_mutable_control_release()->::Anki::Vector::external_interface::ControlRelease::MergeFrom(from._internal_control_release());
      break;
    }
    case kBehaviorControlResponse: {
      _internal_mutable_behavior_control_response()->::Anki::Vector::external_interface::BehaviorControlResponse::MergeFrom(from._internal_behavior_control_response());
      break;
    }
    case kImageChunk: {
      _internal_mutable_image_chunk()->::Anki::Vector::external_interface::ImageChunk::MergeFrom(from._internal_image_chunk());
      break;
    }
    case kEnableMarkerDetectionRequest: {
      _internal_mutable_enable_marker_detection_request()->::Anki::Vector::external_interface::EnableMarkerDetectionRequest::MergeFrom(from._internal_enable_marker_detection_request());
      break;
    }
    case kEnableMarkerDetectionResponse: {
      _internal_mutable_enable_marker_detection_response()->::Anki::Vector::external_interface::EnableMarkerDetectionResponse::MergeFrom(from._internal_enable_marker_detection_response());
      break;
    }
    case kEnableFaceDetectionRequest: {
      _internal_mutable_enable_face_detection_request()->::Anki::Vector::external_interface::EnableFaceDetectionRequest::MergeFrom(from._internal_enable_face_detection_request());
      break;
    }
    case kEnableFaceDetectionResponse: {
      _internal_mutable_enable_face_detection_response()->::Anki::Vector::external_interface::EnableFaceDetectionResponse::MergeFrom(from._internal_enable_face_detection_response());
      break;
    }
    case kEnableMotionDetectionRequest: {
      _internal_mutable_enable_motion_detection_request()->::Anki::Vector::external_interface::EnableMotionDetectionRequest::MergeFrom(from._internal_enable_motion_detection_request());
      break;
    }
    case kEnableMotionDetectionResponse: {
      _internal_mutable_enable_motion_detection_response()->::Anki::Vector::external_interface::EnableMotionDetectionResponse::MergeFrom(from._internal_enable_motion_detection_response());
      break;
    }
    case kEnableMirrorModeRequest: {
      _internal_mutable_enable_mirror_mode_request()->::Anki::Vector::external_interface::EnableMirrorModeRequest::MergeFrom(from._internal_enable_mirror_mode_request());
      break;
    }
    case kEnableMirrorModeResponse: {
      _internal_mutable_enable_mirror_mode_response()->::Anki::Vector::external_interface::EnableMirrorModeResponse::MergeFrom(from._internal_enable_mirror_mode_response());
      break;
    }
    case kEnableImageStreamingRequest: {
      _internal_mutable_enable_image_streaming_request()->::Anki::Vector::external_interface::EnableImageStreamingRequest::MergeFrom(from._internal_enable_image_streaming_request());
      break;
    }
    case kEnableImageStreamingResponse: {
      _internal_mutable_enable_image_streaming_response()->::Anki::Vector::external_interface::EnableImageStreamingResponse::MergeFrom(from._internal_enable_image_streaming_response());
      break;
    }
    case kIsImageStreamingEnabledRequest: {
      _internal_mutable_is_image_streaming_enabled_request()->::Anki::Vector::external_interface::IsImageStreamingEnabledRequest::MergeFrom(from._internal_is_image_streaming_enabled_request());
      break;
    }
    case kIsImageStreamingEnabledResponse: {
      _internal_mutable_is_image_streaming_enabled_response()->::Anki::Vector::external_interface::IsImageStreamingEnabledResponse::MergeFrom(from._internal_is_image_streaming_enabled_response());
      break;
    }
    case kCheckCloudRequest: {
      _internal_mutable_check_cloud_request()->::Anki::Vector::external_interface::CheckCloudRequest::MergeFrom(from._internal_check_cloud_request());
      break;
    }
    case kCheckCloudResponse: {
      _internal_mutable_check_cloud_response()->::Anki::Vector::external_interface::CheckCloudResponse::MergeFrom(from._internal_check_cloud_response());
      break;
    }
    case kAudioSendModeRequest: {
      _internal_mutable_audio_send_mode_request()->::Anki::Vector::external_interface::AudioSendModeRequest::MergeFrom(from._internal_audio_send_mode_request());
      break;
    }
    case kAudioSendModeChanged: {
      _internal_mutable_audio_send_mode_changed()->::Anki::Vector::external_interface::AudioSendModeChanged::MergeFrom(from._internal_audio_send_mode_changed());
      break;
    }
    case kAudioChunk: {
      _internal_mutable_audio_chunk()->::Anki::Vector::external_interface::AudioChunk::MergeFrom(from._internal_audio_chunk());
      break;
    }
    case kFeatureFlagRequest: {
      _internal_mutable_feature_flag_request()->::Anki::Vector::external_interface::FeatureFlagRequest::MergeFrom(from._internal_feature_flag_request());
      break;
    }
    case kFeatureFlagResponse: {
      _internal_mutable_feature_flag_response()->::Anki::Vector::external_interface::FeatureFlagResponse::MergeFrom(from._internal_feature_flag_response());
      break;
    }
    case kFeatureFlagListRequest: {
      _internal_mutable_feature_flag_list_request()->::Anki::Vector::external_interface::FeatureFlagListRequest::MergeFrom(from._internal_feature_flag_list_request());
      break;
    }
    case kFeatureFlagListResponse: {
      _internal_mutable_feature_flag_list_response()->::Anki::Vector::external_interface::FeatureFlagListResponse::MergeFrom(from._internal_feature_flag_list_response());
      break;
    }
    case kAppDisconnected: {
      _internal_mutable_app_disconnected()->::Anki::Vector::external_interface::AppDisconnected::MergeFrom(from._internal_app_disconnected());
      break;
    }
    case kAlexaAuthStateRequest: {
      _internal_mutable_alexa_auth_state_request()->::Anki::Vector::external_interface::AlexaAuthStateRequest::MergeFrom(from._internal_alexa_auth_state_request());
      break;
    }
    case kAlexaAuthStateResponse: {
      _internal_mutable_alexa_auth_state_response()->::Anki::Vector::external_interface::AlexaAuthStateResponse::MergeFrom(from._internal_alexa_auth_state_response());
      break;
    }
    case kAlexaOptInRequest: {
      _internal_mutable_alexa_opt_in_request()->::Anki::Vector::external_interface::AlexaOptInRequest::MergeFrom(from._internal_alexa_opt_in_request());
      break;
    }
    case kAlexaOptInResponse: {
      _internal_mutable_alexa_opt_in_response()->::Anki::Vector::external_interface::AlexaOptInResponse::MergeFrom(from._internal_alexa_opt_in_response());
      break;
    }
    case kSetEyeColorRequest: {
      _internal_mutable_set_eye_color_request()->::Anki::Vector::external_interface::SetEyeColorRequest::MergeFrom(from._internal_set_eye_color_request());
      break;
    }
    case kSetEyeColorResponse: {
      _internal_mutable_set_eye_color_response()->::Anki::Vector::external_interface::SetEyeColorResponse::MergeFrom(from._internal_set_eye_color_response());
      break;
    }
    case kMasterVolumeRequest: {
      _internal_mutable_master_volume_request()->::Anki::Vector::external_interface::MasterVolumeRequest::MergeFrom(from._internal_master_volume_request());
      break;
    }
    case kMasterVolumeResponse: {
      _internal_mutable_master_volume_response()->::Anki::Vector::external_interface::MasterVolumeResponse::MergeFrom(from._internal_master_volume_response());
      break;
    }
    case kSetCameraSettingsRequest: {
      _internal_mutable_set_camera_settings_request()->::Anki::Vector::external_interface::SetCameraSettingsRequest::MergeFrom(from._internal_set_camera_settings_request());
      break;
    }
    case kSetCameraSettingsResponse: {
      _internal_mutable_set_camera_settings_response()->::Anki::Vector::external_interface::SetCameraSettingsResponse::MergeFrom(from._internal_set_camera_settings_response());
      break;
    }
    case kCameraConfigRequest: {
      _internal_mutable_camera_config_request()->::Anki::Vector::external_interface::CameraConfigRequest::MergeFrom(from._internal_camera_config_request());
      break;
    }
    case kCameraConfigResponse: {
      _internal_mutable_camera_config_response()->::Anki::Vector::external_interface::CameraConfigResponse::MergeFrom(from._internal_camera_config_response());
      break;
    }
    case kExternalAudioStreamPrepare: {
      _internal_mutable_external_audio_stream_prepare()->::Anki::Vector::external_interface::ExternalAudioStreamPrepare::MergeFrom(from._internal_external_audio_stream_prepare());
      break;
    }
    case kExternalAudioStreamChunk: {
      _internal_mutable_external_audio_stream_chunk()->::Anki::Vector::external_interface::ExternalAudioStreamChunk::MergeFrom(from._internal_external_audio_stream_chunk());
      break;
    }
    case kExternalAudioStreamCancel: {
      _internal_mutable_external_audio_stream_cancel()->::Anki::Vector::external_interface::ExternalAudioStreamCancel::MergeFrom(from._internal_external_audio_stream_cancel());
      break;
    }
    case kExternalAudioStreamComplete: {
      _internal_mutable_external_audio_stream_complete()->::Anki::Vector::external_interface::ExternalAudioStreamComplete::MergeFrom(from._internal_external_audio_stream_complete());
      break;
    }
    case kExternalAudioStreamResponse: {
      _internal_mutable_external_audio_stream_response()->::Anki::Vector::external_interface::ExternalAudioStreamResponse::MergeFrom(from._internal_external_audio_stream_response());
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
}

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

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

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

void GatewayWrapper::InternalSwap(GatewayWrapper* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(connection_id_, other->connection_id_);
  swap(oneof_message_type_, other->oneof_message_type_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

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



// Begin code inserted by Anki plugin.
ProtocolVersionRequest::ProtocolVersionRequest( ::google::protobuf::int64 client_version, ::google::protobuf::int64 min_host_version )
  : ProtocolVersionRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_client_version( client_version );
  set_min_host_version( min_host_version );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ProtocolVersionResponse::ProtocolVersionResponse( ::Anki::Vector::external_interface::ProtocolVersionResponse::Result result, ::google::protobuf::int64 host_version )
  : ProtocolVersionResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_result( result );
  set_host_version( host_version );
}
// End code inserted by Anki plugin.


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


// Begin code inserted by Anki plugin.
Event::Event( TimeStampedStatus* time_stamped_status )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_time_stamped_status( time_stamped_status );
}
Event::Event( Onboarding* onboarding )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding( onboarding );
}
Event::Event( WakeWord* wake_word )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_wake_word( wake_word );
}
Event::Event( AttentionTransfer* attention_transfer )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_attention_transfer( attention_transfer );
}
Event::Event( RobotObservedFace* robot_observed_face )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_robot_observed_face( robot_observed_face );
}
Event::Event( RobotChangedObservedFaceID* robot_changed_observed_face_id )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_robot_changed_observed_face_id( robot_changed_observed_face_id );
}
Event::Event( ObjectEvent* object_event )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_object_event( object_event );
}
Event::Event( StimulationInfo* stimulation_info )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_stimulation_info( stimulation_info );
}
Event::Event( PhotoTaken* photo_taken )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_photo_taken( photo_taken );
}
Event::Event( RobotState* robot_state )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_robot_state( robot_state );
}
Event::Event( CubeBattery* cube_battery )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_cube_battery( cube_battery );
}
Event::Event( KeepAlivePing* keep_alive )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_keep_alive( keep_alive );
}
Event::Event( ConnectionResponse* connection_response )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_connection_response( connection_response );
}
Event::Event( JdocsChanged* jdocs_changed )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_jdocs_changed( jdocs_changed );
}
Event::Event( AlexaAuthEvent* alexa_auth_event )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_alexa_auth_event( alexa_auth_event );
}
Event::Event( MirrorModeDisabled* mirror_mode_disabled )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_mirror_mode_disabled( mirror_mode_disabled );
}
Event::Event( VisionModesAutoDisabled* vision_modes_auto_disabled )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_vision_modes_auto_disabled( vision_modes_auto_disabled );
}
Event::Event( CheckUpdateStatusResponse* check_update_status_response )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_check_update_status_response( check_update_status_response );
}
Event::Event( UserIntent* user_intent )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_user_intent( user_intent );
}
Event::Event( RobotObservedMotion* robot_observed_motion )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_robot_observed_motion( robot_observed_motion );
}
Event::Event( RobotErasedEnrolledFace* robot_erased_enrolled_face )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_robot_erased_enrolled_face( robot_erased_enrolled_face );
}
Event::Event( RobotRenamedEnrolledFace* robot_renamed_enrolled_face )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_robot_renamed_enrolled_face( robot_renamed_enrolled_face );
}
Event::Event( CameraSettingsUpdate* camera_settings_update )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_camera_settings_update( camera_settings_update );
}
Event::Event( UnexpectedMovement* unexpected_movement )
  : Event(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_unexpected_movement( unexpected_movement );
}
// End code inserted by Anki plugin.


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


// Begin code inserted by Anki plugin.
UserAuthenticationRequest::UserAuthenticationRequest( const std::string& user_session_id, const std::string& client_name )
  : UserAuthenticationRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_user_session_id( user_session_id );
  set_client_name( client_name );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UserAuthenticationResponse::UserAuthenticationResponse( ResponseStatus* status, ::Anki::Vector::external_interface::UserAuthenticationResponse::Code code, const std::string& client_token_guid )
  : UserAuthenticationResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_code( code );
  set_client_token_guid( client_token_guid );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
GatewayWrapper::GatewayWrapper( ::google::protobuf::uint64 connection_id )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_connection_id( connection_id );
}
GatewayWrapper::GatewayWrapper( Event* event )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_event( event );
}
GatewayWrapper::GatewayWrapper( OnboardingStateRequest* onboarding_state_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_state_request( onboarding_state_request );
}
GatewayWrapper::GatewayWrapper( OnboardingState* onboarding_state )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_state( onboarding_state );
}
GatewayWrapper::GatewayWrapper( OnboardingSkipOnboarding* onboarding_skip_onboarding )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_skip_onboarding( onboarding_skip_onboarding );
}
GatewayWrapper::GatewayWrapper( OnboardingRestart* onboarding_restart )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_restart( onboarding_restart );
}
GatewayWrapper::GatewayWrapper( OnboardingCompleteRequest* onboarding_complete_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_complete_request( onboarding_complete_request );
}
GatewayWrapper::GatewayWrapper( OnboardingCompleteResponse* onboarding_complete_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_complete_response( onboarding_complete_response );
}
GatewayWrapper::GatewayWrapper( OnboardingWakeUpRequest* onboarding_wake_up_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_wake_up_request( onboarding_wake_up_request );
}
GatewayWrapper::GatewayWrapper( OnboardingWakeUpResponse* onboarding_wake_up_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_wake_up_response( onboarding_wake_up_response );
}
GatewayWrapper::GatewayWrapper( OnboardingWakeUpStartedRequest* onboarding_wake_up_started_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_wake_up_started_request( onboarding_wake_up_started_request );
}
GatewayWrapper::GatewayWrapper( OnboardingWakeUpStartedResponse* onboarding_wake_up_started_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_wake_up_started_response( onboarding_wake_up_started_response );
}
GatewayWrapper::GatewayWrapper( OnboardingSetPhaseRequest* onboarding_set_phase_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_set_phase_request( onboarding_set_phase_request );
}
GatewayWrapper::GatewayWrapper( OnboardingSetPhaseResponse* onboarding_set_phase_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_set_phase_response( onboarding_set_phase_response );
}
GatewayWrapper::GatewayWrapper( OnboardingPhaseProgressRequest* onboarding_phase_progress_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_phase_progress_request( onboarding_phase_progress_request );
}
GatewayWrapper::GatewayWrapper( OnboardingPhaseProgressResponse* onboarding_phase_progress_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_phase_progress_response( onboarding_phase_progress_response );
}
GatewayWrapper::GatewayWrapper( OnboardingChargeInfoRequest* onboarding_charge_info_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_charge_info_request( onboarding_charge_info_request );
}
GatewayWrapper::GatewayWrapper( OnboardingChargeInfoResponse* onboarding_charge_info_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_charge_info_response( onboarding_charge_info_response );
}
GatewayWrapper::GatewayWrapper( OnboardingMarkCompleteAndExit* onboarding_mark_complete_and_exit )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_mark_complete_and_exit( onboarding_mark_complete_and_exit );
}
GatewayWrapper::GatewayWrapper( LatestAttentionTransferRequest* latest_attention_transfer_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_latest_attention_transfer_request( latest_attention_transfer_request );
}
GatewayWrapper::GatewayWrapper( LatestAttentionTransfer* latest_attention_transfer )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_latest_attention_transfer( latest_attention_transfer );
}
GatewayWrapper::GatewayWrapper( PhotosInfoRequest* photos_info_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_photos_info_request( photos_info_request );
}
GatewayWrapper::GatewayWrapper( PhotosInfoResponse* photos_info_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_photos_info_response( photos_info_response );
}
GatewayWrapper::GatewayWrapper( PhotoRequest* photo_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_photo_request( photo_request );
}
GatewayWrapper::GatewayWrapper( PhotoPathMessage* photo_path_message )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_photo_path_message( photo_path_message );
}
GatewayWrapper::GatewayWrapper( ThumbnailRequest* thumbnail_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_thumbnail_request( thumbnail_request );
}
GatewayWrapper::GatewayWrapper( ThumbnailPathMessage* thumbnail_path_message )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_thumbnail_path_message( thumbnail_path_message );
}
GatewayWrapper::GatewayWrapper( DeletePhotoRequest* delete_photo_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_delete_photo_request( delete_photo_request );
}
GatewayWrapper::GatewayWrapper( DeletePhotoResponse* delete_photo_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_delete_photo_response( delete_photo_response );
}
GatewayWrapper::GatewayWrapper( PullJdocsRequest* pull_jdocs_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_pull_jdocs_request( pull_jdocs_request );
}
GatewayWrapper::GatewayWrapper( PullJdocsResponse* pull_jdocs_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_pull_jdocs_response( pull_jdocs_response );
}
GatewayWrapper::GatewayWrapper( UpdateSettingsRequest* update_settings_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_update_settings_request( update_settings_request );
}
GatewayWrapper::GatewayWrapper( UpdateSettingsResponse* update_settings_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_update_settings_response( update_settings_response );
}
GatewayWrapper::GatewayWrapper( UpdateAccountSettingsRequest* update_account_settings_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_update_account_settings_request( update_account_settings_request );
}
GatewayWrapper::GatewayWrapper( UpdateAccountSettingsResponse* update_account_settings_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_update_account_settings_response( update_account_settings_response );
}
GatewayWrapper::GatewayWrapper( UpdateUserEntitlementsRequest* update_user_entitlements_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_update_user_entitlements_request( update_user_entitlements_request );
}
GatewayWrapper::GatewayWrapper( UpdateUserEntitlementsResponse* update_user_entitlements_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_update_user_entitlements_response( update_user_entitlements_response );
}
GatewayWrapper::GatewayWrapper( DriveOffChargerRequest* drive_off_charger_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_drive_off_charger_request( drive_off_charger_request );
}
GatewayWrapper::GatewayWrapper( DriveOffChargerResponse* drive_off_charger_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_drive_off_charger_response( drive_off_charger_response );
}
GatewayWrapper::GatewayWrapper( DriveOnChargerRequest* drive_on_charger_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_drive_on_charger_request( drive_on_charger_request );
}
GatewayWrapper::GatewayWrapper( DriveOnChargerResponse* drive_on_charger_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_drive_on_charger_response( drive_on_charger_response );
}
GatewayWrapper::GatewayWrapper( FindFacesRequest* find_faces_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_find_faces_request( find_faces_request );
}
GatewayWrapper::GatewayWrapper( FindFacesResponse* find_faces_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_find_faces_response( find_faces_response );
}
GatewayWrapper::GatewayWrapper( LookAroundInPlaceRequest* look_around_in_place_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_look_around_in_place_request( look_around_in_place_request );
}
GatewayWrapper::GatewayWrapper( LookAroundInPlaceResponse* look_around_in_place_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_look_around_in_place_response( look_around_in_place_response );
}
GatewayWrapper::GatewayWrapper( RollBlockRequest* roll_block_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_roll_block_request( roll_block_request );
}
GatewayWrapper::GatewayWrapper( RollBlockResponse* roll_block_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_roll_block_response( roll_block_response );
}
GatewayWrapper::GatewayWrapper( EnrollFaceRequest* enroll_face_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_enroll_face_request( enroll_face_request );
}
GatewayWrapper::GatewayWrapper( EnrollFaceResponse* enroll_face_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_enroll_face_response( enroll_face_response );
}
GatewayWrapper::GatewayWrapper( SetFaceToEnrollRequest* set_face_to_enroll_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_set_face_to_enroll_request( set_face_to_enroll_request );
}
GatewayWrapper::GatewayWrapper( SetFaceToEnrollResponse* set_face_to_enroll_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_set_face_to_enroll_response( set_face_to_enroll_response );
}
GatewayWrapper::GatewayWrapper( CancelBehaviorRequest* cancel_behavior_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_cancel_behavior_request( cancel_behavior_request );
}
GatewayWrapper::GatewayWrapper( CancelBehaviorResponse* cancel_behavior_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_cancel_behavior_response( cancel_behavior_response );
}
GatewayWrapper::GatewayWrapper( TurnInPlaceRequest* turn_in_place_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_turn_in_place_request( turn_in_place_request );
}
GatewayWrapper::GatewayWrapper( TurnInPlaceResponse* turn_in_place_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_turn_in_place_response( turn_in_place_response );
}
GatewayWrapper::GatewayWrapper( DriveStraightRequest* drive_straight_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_drive_straight_request( drive_straight_request );
}
GatewayWrapper::GatewayWrapper( DriveStraightResponse* drive_straight_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_drive_straight_response( drive_straight_response );
}
GatewayWrapper::GatewayWrapper( SetHeadAngleRequest* set_head_angle_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_set_head_angle_request( set_head_angle_request );
}
GatewayWrapper::GatewayWrapper( SetHeadAngleResponse* set_head_angle_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_set_head_angle_response( set_head_angle_response );
}
GatewayWrapper::GatewayWrapper( SetLiftHeightRequest* set_lift_height_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_set_lift_height_request( set_lift_height_request );
}
GatewayWrapper::GatewayWrapper( SetLiftHeightResponse* set_lift_height_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_set_lift_height_response( set_lift_height_response );
}
GatewayWrapper::GatewayWrapper( PlayAnimationRequest* play_animation_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_play_animation_request( play_animation_request );
}
GatewayWrapper::GatewayWrapper( PlayAnimationResponse* play_animation_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_play_animation_response( play_animation_response );
}
GatewayWrapper::GatewayWrapper( GoToPoseRequest* go_to_pose_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_go_to_pose_request( go_to_pose_request );
}
GatewayWrapper::GatewayWrapper( GoToPoseResponse* go_to_pose_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_go_to_pose_response( go_to_pose_response );
}
GatewayWrapper::GatewayWrapper( DockWithCubeRequest* dock_with_cube_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_dock_with_cube_request( dock_with_cube_request );
}
GatewayWrapper::GatewayWrapper( DockWithCubeResponse* dock_with_cube_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_dock_with_cube_response( dock_with_cube_response );
}
GatewayWrapper::GatewayWrapper( DriveWheelsRequest* drive_wheels_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_drive_wheels_request( drive_wheels_request );
}
GatewayWrapper::GatewayWrapper( DriveWheelsResponse* drive_wheels_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_drive_wheels_response( drive_wheels_response );
}
GatewayWrapper::GatewayWrapper( ListAnimationsRequest* list_animations_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_list_animations_request( list_animations_request );
}
GatewayWrapper::GatewayWrapper( ListAnimationsResponse* list_animations_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_list_animations_response( list_animations_response );
}
GatewayWrapper::GatewayWrapper( PlayAnimationTriggerRequest* play_animation_trigger_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_play_animation_trigger_request( play_animation_trigger_request );
}
GatewayWrapper::GatewayWrapper( ListAnimationTriggersRequest* list_animation_triggers_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_list_animation_triggers_request( list_animation_triggers_request );
}
GatewayWrapper::GatewayWrapper( ListAnimationTriggersResponse* list_animation_triggers_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_list_animation_triggers_response( list_animation_triggers_response );
}
GatewayWrapper::GatewayWrapper( CancelActionByIdTagRequest* cancel_action_by_id_tag_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_cancel_action_by_id_tag_request( cancel_action_by_id_tag_request );
}
GatewayWrapper::GatewayWrapper( CancelActionByIdTagResponse* cancel_action_by_id_tag_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_cancel_action_by_id_tag_response( cancel_action_by_id_tag_response );
}
GatewayWrapper::GatewayWrapper( TurnTowardsFaceRequest* turn_towards_face_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_turn_towards_face_request( turn_towards_face_request );
}
GatewayWrapper::GatewayWrapper( TurnTowardsFaceResponse* turn_towards_face_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_turn_towards_face_response( turn_towards_face_response );
}
GatewayWrapper::GatewayWrapper( GoToObjectRequest* go_to_object_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_go_to_object_request( go_to_object_request );
}
GatewayWrapper::GatewayWrapper( GoToObjectResponse* go_to_object_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_go_to_object_response( go_to_object_response );
}
GatewayWrapper::GatewayWrapper( RollObjectRequest* roll_object_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_roll_object_request( roll_object_request );
}
GatewayWrapper::GatewayWrapper( RollObjectResponse* roll_object_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_roll_object_response( roll_object_response );
}
GatewayWrapper::GatewayWrapper( PopAWheelieRequest* pop_a_wheelie_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_pop_a_wheelie_request( pop_a_wheelie_request );
}
GatewayWrapper::GatewayWrapper( PopAWheelieResponse* pop_a_wheelie_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_pop_a_wheelie_response( pop_a_wheelie_response );
}
GatewayWrapper::GatewayWrapper( PickupObjectRequest* pickup_object_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_pickup_object_request( pickup_object_request );
}
GatewayWrapper::GatewayWrapper( PickupObjectResponse* pickup_object_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_pickup_object_response( pickup_object_response );
}
GatewayWrapper::GatewayWrapper( PlaceObjectOnGroundHereRequest* place_object_on_ground_here_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_place_object_on_ground_here_request( place_object_on_ground_here_request );
}
GatewayWrapper::GatewayWrapper( PlaceObjectOnGroundHereResponse* place_object_on_ground_here_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_place_object_on_ground_here_response( place_object_on_ground_here_response );
}
GatewayWrapper::GatewayWrapper( StopAllMotorsRequest* stop_all_motors_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_stop_all_motors_request( stop_all_motors_request );
}
GatewayWrapper::GatewayWrapper( StopAllMotorsResponse* stop_all_motors_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_stop_all_motors_response( stop_all_motors_response );
}
GatewayWrapper::GatewayWrapper( RobotHistoryRequest* robot_history_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_robot_history_request( robot_history_request );
}
GatewayWrapper::GatewayWrapper( RobotHistoryResponse* robot_history_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_robot_history_response( robot_history_response );
}
GatewayWrapper::GatewayWrapper( ConnectCubeRequest* connect_cube_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_connect_cube_request( connect_cube_request );
}
GatewayWrapper::GatewayWrapper( ConnectCubeResponse* connect_cube_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_connect_cube_response( connect_cube_response );
}
GatewayWrapper::GatewayWrapper( DisconnectCubeRequest* disconnect_cube_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_disconnect_cube_request( disconnect_cube_request );
}
GatewayWrapper::GatewayWrapper( FlashCubeLightsRequest* flash_cube_lights_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_flash_cube_lights_request( flash_cube_lights_request );
}
GatewayWrapper::GatewayWrapper( ForgetPreferredCubeRequest* forget_preferred_cube_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_forget_preferred_cube_request( forget_preferred_cube_request );
}
GatewayWrapper::GatewayWrapper( SetPreferredCubeRequest* set_preferred_cube_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_set_preferred_cube_request( set_preferred_cube_request );
}
GatewayWrapper::GatewayWrapper( SetCubeLightsRequest* set_cube_lights_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_set_cube_lights_request( set_cube_lights_request );
}
GatewayWrapper::GatewayWrapper( CubesAvailableRequest* cubes_available_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_cubes_available_request( cubes_available_request );
}
GatewayWrapper::GatewayWrapper( CubesAvailableResponse* cubes_available_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_cubes_available_response( cubes_available_response );
}
GatewayWrapper::GatewayWrapper( BatteryStateRequest* battery_state_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_battery_state_request( battery_state_request );
}
GatewayWrapper::GatewayWrapper( BatteryStateResponse* battery_state_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_battery_state_response( battery_state_response );
}
GatewayWrapper::GatewayWrapper( VersionStateRequest* version_state_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_version_state_request( version_state_request );
}
GatewayWrapper::GatewayWrapper( VersionStateResponse* version_state_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_version_state_response( version_state_response );
}
GatewayWrapper::GatewayWrapper( SayTextRequest* say_text_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_say_text_request( say_text_request );
}
GatewayWrapper::GatewayWrapper( SayTextResponse* say_text_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_say_text_response( say_text_response );
}
GatewayWrapper::GatewayWrapper( ControlRequest* control_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_control_request( control_request );
}
GatewayWrapper::GatewayWrapper( ControlRelease* control_release )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_control_release( control_release );
}
GatewayWrapper::GatewayWrapper( BehaviorControlResponse* behavior_control_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_behavior_control_response( behavior_control_response );
}
GatewayWrapper::GatewayWrapper( ImageChunk* image_chunk )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_image_chunk( image_chunk );
}
GatewayWrapper::GatewayWrapper( EnableMarkerDetectionRequest* enable_marker_detection_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_enable_marker_detection_request( enable_marker_detection_request );
}
GatewayWrapper::GatewayWrapper( EnableMarkerDetectionResponse* enable_marker_detection_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_enable_marker_detection_response( enable_marker_detection_response );
}
GatewayWrapper::GatewayWrapper( EnableFaceDetectionRequest* enable_face_detection_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_enable_face_detection_request( enable_face_detection_request );
}
GatewayWrapper::GatewayWrapper( EnableFaceDetectionResponse* enable_face_detection_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_enable_face_detection_response( enable_face_detection_response );
}
GatewayWrapper::GatewayWrapper( EnableMotionDetectionRequest* enable_motion_detection_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_enable_motion_detection_request( enable_motion_detection_request );
}
GatewayWrapper::GatewayWrapper( EnableMotionDetectionResponse* enable_motion_detection_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_enable_motion_detection_response( enable_motion_detection_response );
}
GatewayWrapper::GatewayWrapper( EnableMirrorModeRequest* enable_mirror_mode_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_enable_mirror_mode_request( enable_mirror_mode_request );
}
GatewayWrapper::GatewayWrapper( EnableMirrorModeResponse* enable_mirror_mode_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_enable_mirror_mode_response( enable_mirror_mode_response );
}
GatewayWrapper::GatewayWrapper( EnableImageStreamingRequest* enable_image_streaming_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_enable_image_streaming_request( enable_image_streaming_request );
}
GatewayWrapper::GatewayWrapper( EnableImageStreamingResponse* enable_image_streaming_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_enable_image_streaming_response( enable_image_streaming_response );
}
GatewayWrapper::GatewayWrapper( IsImageStreamingEnabledRequest* is_image_streaming_enabled_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_is_image_streaming_enabled_request( is_image_streaming_enabled_request );
}
GatewayWrapper::GatewayWrapper( IsImageStreamingEnabledResponse* is_image_streaming_enabled_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_is_image_streaming_enabled_response( is_image_streaming_enabled_response );
}
GatewayWrapper::GatewayWrapper( CheckCloudRequest* check_cloud_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_check_cloud_request( check_cloud_request );
}
GatewayWrapper::GatewayWrapper( CheckCloudResponse* check_cloud_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_check_cloud_response( check_cloud_response );
}
GatewayWrapper::GatewayWrapper( AudioSendModeRequest* audio_send_mode_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_audio_send_mode_request( audio_send_mode_request );
}
GatewayWrapper::GatewayWrapper( AudioSendModeChanged* audio_send_mode_changed )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_audio_send_mode_changed( audio_send_mode_changed );
}
GatewayWrapper::GatewayWrapper( AudioChunk* audio_chunk )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_audio_chunk( audio_chunk );
}
GatewayWrapper::GatewayWrapper( FeatureFlagRequest* feature_flag_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_feature_flag_request( feature_flag_request );
}
GatewayWrapper::GatewayWrapper( FeatureFlagResponse* feature_flag_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_feature_flag_response( feature_flag_response );
}
GatewayWrapper::GatewayWrapper( FeatureFlagListRequest* feature_flag_list_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_feature_flag_list_request( feature_flag_list_request );
}
GatewayWrapper::GatewayWrapper( FeatureFlagListResponse* feature_flag_list_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_feature_flag_list_response( feature_flag_list_response );
}
GatewayWrapper::GatewayWrapper( AppDisconnected* app_disconnected )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_app_disconnected( app_disconnected );
}
GatewayWrapper::GatewayWrapper( AlexaAuthStateRequest* alexa_auth_state_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_alexa_auth_state_request( alexa_auth_state_request );
}
GatewayWrapper::GatewayWrapper( AlexaAuthStateResponse* alexa_auth_state_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_alexa_auth_state_response( alexa_auth_state_response );
}
GatewayWrapper::GatewayWrapper( AlexaOptInRequest* alexa_opt_in_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_alexa_opt_in_request( alexa_opt_in_request );
}
GatewayWrapper::GatewayWrapper( AlexaOptInResponse* alexa_opt_in_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_alexa_opt_in_response( alexa_opt_in_response );
}
GatewayWrapper::GatewayWrapper( SetEyeColorRequest* set_eye_color_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_set_eye_color_request( set_eye_color_request );
}
GatewayWrapper::GatewayWrapper( SetEyeColorResponse* set_eye_color_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_set_eye_color_response( set_eye_color_response );
}
GatewayWrapper::GatewayWrapper( MasterVolumeRequest* master_volume_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_master_volume_request( master_volume_request );
}
GatewayWrapper::GatewayWrapper( MasterVolumeResponse* master_volume_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_master_volume_response( master_volume_response );
}
GatewayWrapper::GatewayWrapper( SetCameraSettingsRequest* set_camera_settings_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_set_camera_settings_request( set_camera_settings_request );
}
GatewayWrapper::GatewayWrapper( SetCameraSettingsResponse* set_camera_settings_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_set_camera_settings_response( set_camera_settings_response );
}
GatewayWrapper::GatewayWrapper( CameraConfigRequest* camera_config_request )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_camera_config_request( camera_config_request );
}
GatewayWrapper::GatewayWrapper( CameraConfigResponse* camera_config_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_camera_config_response( camera_config_response );
}
GatewayWrapper::GatewayWrapper( ExternalAudioStreamPrepare* external_audio_stream_prepare )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_external_audio_stream_prepare( external_audio_stream_prepare );
}
GatewayWrapper::GatewayWrapper( ExternalAudioStreamChunk* external_audio_stream_chunk )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_external_audio_stream_chunk( external_audio_stream_chunk );
}
GatewayWrapper::GatewayWrapper( ExternalAudioStreamCancel* external_audio_stream_cancel )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_external_audio_stream_cancel( external_audio_stream_cancel );
}
GatewayWrapper::GatewayWrapper( ExternalAudioStreamComplete* external_audio_stream_complete )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_external_audio_stream_complete( external_audio_stream_complete );
}
GatewayWrapper::GatewayWrapper( ExternalAudioStreamResponse* external_audio_stream_response )
  : GatewayWrapper(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_external_audio_stream_response( external_audio_stream_response );
}
// End code inserted by Anki plugin.

// @@protoc_insertion_point(namespace_scope)
}  // namespace external_interface
}  // namespace Vector
}  // namespace Anki
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ProtocolVersionRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ProtocolVersionRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ProtocolVersionRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ProtocolVersionResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ProtocolVersionResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ProtocolVersionResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ConnectionResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ConnectionResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ConnectionResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::Event* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::Event >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::Event >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::FilterList* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::FilterList >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::FilterList >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EventRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EventRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EventRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EventResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EventResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EventResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UserAuthenticationRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UserAuthenticationRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UserAuthenticationRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UserAuthenticationResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UserAuthenticationResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UserAuthenticationResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::GatewayWrapper* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::GatewayWrapper >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::GatewayWrapper >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

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