# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
import grpc

from anki_vector.messaging import behavior_pb2 as anki__vector_dot_messaging_dot_behavior__pb2
from anki_vector.messaging import cube_pb2 as anki__vector_dot_messaging_dot_cube__pb2
from anki_vector.messaging import messages_pb2 as anki__vector_dot_messaging_dot_messages__pb2
from anki_vector.messaging import nav_map_pb2 as anki__vector_dot_messaging_dot_nav__map__pb2
from anki_vector.messaging import shared_pb2 as anki__vector_dot_messaging_dot_shared__pb2


class ExternalInterfaceStub(object):
  """The grpc-defined connection between the SDK and Anki's Vector robot.
  """

  def __init__(self, channel):
    """Constructor.

    Args:
      channel: A grpc.Channel.
    """
    self.ProtocolVersion = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/ProtocolVersion',
        request_serializer=anki__vector_dot_messaging_dot_shared__pb2.ProtocolVersionRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_shared__pb2.ProtocolVersionResponse.FromString,
        )
    self.SDKInitialization = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/SDKInitialization',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.SDKInitializationRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.SDKInitializationResponse.FromString,
        )
    self.DriveWheels = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/DriveWheels',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.DriveWheelsRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DriveWheelsResponse.FromString,
        )
    self.PlayAnimationTrigger = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/PlayAnimationTrigger',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.PlayAnimationTriggerRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PlayAnimationResponse.FromString,
        )
    self.PlayAnimation = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/PlayAnimation',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.PlayAnimationRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PlayAnimationResponse.FromString,
        )
    self.ListAnimations = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/ListAnimations',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.ListAnimationsRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.ListAnimationsResponse.FromString,
        )
    self.ListAnimationTriggers = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/ListAnimationTriggers',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.ListAnimationTriggersRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.ListAnimationTriggersResponse.FromString,
        )
    self.MoveHead = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/MoveHead',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.MoveHeadRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.MoveHeadResponse.FromString,
        )
    self.MoveLift = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/MoveLift',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.MoveLiftRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.MoveLiftResponse.FromString,
        )
    self.StopAllMotors = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/StopAllMotors',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.StopAllMotorsRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.StopAllMotorsResponse.FromString,
        )
    self.DisplayFaceImageRGB = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/DisplayFaceImageRGB',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.DisplayFaceImageRGBRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DisplayFaceImageRGBResponse.FromString,
        )
    self.EventStream = channel.unary_stream(
        '/Anki.Vector.external_interface.ExternalInterface/EventStream',
        request_serializer=anki__vector_dot_messaging_dot_shared__pb2.EventRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_shared__pb2.EventResponse.FromString,
        )
    self.ExternalAudioStreamPlayback = channel.stream_stream(
        '/Anki.Vector.external_interface.ExternalInterface/ExternalAudioStreamPlayback',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.ExternalAudioStreamRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.ExternalAudioStreamResponse.FromString,
        )
    self.BehaviorControl = channel.stream_stream(
        '/Anki.Vector.external_interface.ExternalInterface/BehaviorControl',
        request_serializer=anki__vector_dot_messaging_dot_behavior__pb2.BehaviorControlRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_behavior__pb2.BehaviorControlResponse.FromString,
        )
    self.AssumeBehaviorControl = channel.unary_stream(
        '/Anki.Vector.external_interface.ExternalInterface/AssumeBehaviorControl',
        request_serializer=anki__vector_dot_messaging_dot_behavior__pb2.BehaviorControlRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_behavior__pb2.BehaviorControlResponse.FromString,
        )
    self.CancelFaceEnrollment = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/CancelFaceEnrollment',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.CancelFaceEnrollmentRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.CancelFaceEnrollmentResponse.FromString,
        )
    self.RequestEnrolledNames = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/RequestEnrolledNames',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.RequestEnrolledNamesRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.RequestEnrolledNamesResponse.FromString,
        )
    self.UpdateEnrolledFaceByID = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/UpdateEnrolledFaceByID',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.UpdateEnrolledFaceByIDRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.UpdateEnrolledFaceByIDResponse.FromString,
        )
    self.EraseEnrolledFaceByID = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/EraseEnrolledFaceByID',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.EraseEnrolledFaceByIDRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EraseEnrolledFaceByIDResponse.FromString,
        )
    self.EraseAllEnrolledFaces = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/EraseAllEnrolledFaces',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.EraseAllEnrolledFacesRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EraseAllEnrolledFacesResponse.FromString,
        )
    self.SetFaceToEnroll = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/SetFaceToEnroll',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.SetFaceToEnrollRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.SetFaceToEnrollResponse.FromString,
        )
    self.EnableMarkerDetection = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/EnableMarkerDetection',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.EnableMarkerDetectionRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EnableMarkerDetectionResponse.FromString,
        )
    self.EnableFaceDetection = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/EnableFaceDetection',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.EnableFaceDetectionRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EnableFaceDetectionResponse.FromString,
        )
    self.EnableMotionDetection = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/EnableMotionDetection',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.EnableMotionDetectionRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EnableMotionDetectionResponse.FromString,
        )
    self.EnableMirrorMode = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/EnableMirrorMode',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.EnableMirrorModeRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EnableMirrorModeResponse.FromString,
        )
    self.EnableImageStreaming = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/EnableImageStreaming',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.EnableImageStreamingRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EnableImageStreamingResponse.FromString,
        )
    self.IsImageStreamingEnabled = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/IsImageStreamingEnabled',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.IsImageStreamingEnabledRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.IsImageStreamingEnabledResponse.FromString,
        )
    self.CancelActionByIdTag = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/CancelActionByIdTag',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.CancelActionByIdTagRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.CancelActionByIdTagResponse.FromString,
        )
    self.GoToPose = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/GoToPose',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.GoToPoseRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.GoToPoseResponse.FromString,
        )
    self.DockWithCube = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/DockWithCube',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.DockWithCubeRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DockWithCubeResponse.FromString,
        )
    self.DriveOffCharger = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/DriveOffCharger',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.DriveOffChargerRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DriveOffChargerResponse.FromString,
        )
    self.DriveOnCharger = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/DriveOnCharger',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.DriveOnChargerRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DriveOnChargerResponse.FromString,
        )
    self.FindFaces = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/FindFaces',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.FindFacesRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.FindFacesResponse.FromString,
        )
    self.LookAroundInPlace = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/LookAroundInPlace',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.LookAroundInPlaceRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.LookAroundInPlaceResponse.FromString,
        )
    self.RollBlock = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/RollBlock',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.RollBlockRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.RollBlockResponse.FromString,
        )
    self.PhotosInfo = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/PhotosInfo',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.PhotosInfoRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PhotosInfoResponse.FromString,
        )
    self.Photo = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/Photo',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.PhotoRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PhotoResponse.FromString,
        )
    self.Thumbnail = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/Thumbnail',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.ThumbnailRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.ThumbnailResponse.FromString,
        )
    self.DeletePhoto = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/DeletePhoto',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.DeletePhotoRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DeletePhotoResponse.FromString,
        )
    self.DriveStraight = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/DriveStraight',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.DriveStraightRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DriveStraightResponse.FromString,
        )
    self.TurnInPlace = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/TurnInPlace',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.TurnInPlaceRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.TurnInPlaceResponse.FromString,
        )
    self.SetHeadAngle = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/SetHeadAngle',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.SetHeadAngleRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.SetHeadAngleResponse.FromString,
        )
    self.SetLiftHeight = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/SetLiftHeight',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.SetLiftHeightRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.SetLiftHeightResponse.FromString,
        )
    self.TurnTowardsFace = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/TurnTowardsFace',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.TurnTowardsFaceRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.TurnTowardsFaceResponse.FromString,
        )
    self.GoToObject = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/GoToObject',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.GoToObjectRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.GoToObjectResponse.FromString,
        )
    self.RollObject = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/RollObject',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.RollObjectRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.RollObjectResponse.FromString,
        )
    self.PopAWheelie = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/PopAWheelie',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.PopAWheelieRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PopAWheelieResponse.FromString,
        )
    self.PickupObject = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/PickupObject',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.PickupObjectRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PickupObjectResponse.FromString,
        )
    self.PlaceObjectOnGroundHere = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/PlaceObjectOnGroundHere',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.PlaceObjectOnGroundHereRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PlaceObjectOnGroundHereResponse.FromString,
        )
    self.SetMasterVolume = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/SetMasterVolume',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.MasterVolumeRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.MasterVolumeResponse.FromString,
        )
    self.UserAuthentication = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/UserAuthentication',
        request_serializer=anki__vector_dot_messaging_dot_shared__pb2.UserAuthenticationRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_shared__pb2.UserAuthenticationResponse.FromString,
        )
    self.BatteryState = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/BatteryState',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.BatteryStateRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.BatteryStateResponse.FromString,
        )
    self.VersionState = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/VersionState',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.VersionStateRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.VersionStateResponse.FromString,
        )
    self.SayText = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/SayText',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.SayTextRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.SayTextResponse.FromString,
        )
    self.ConnectCube = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/ConnectCube',
        request_serializer=anki__vector_dot_messaging_dot_cube__pb2.ConnectCubeRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_cube__pb2.ConnectCubeResponse.FromString,
        )
    self.DisconnectCube = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/DisconnectCube',
        request_serializer=anki__vector_dot_messaging_dot_cube__pb2.DisconnectCubeRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_cube__pb2.DisconnectCubeResponse.FromString,
        )
    self.CubesAvailable = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/CubesAvailable',
        request_serializer=anki__vector_dot_messaging_dot_cube__pb2.CubesAvailableRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_cube__pb2.CubesAvailableResponse.FromString,
        )
    self.FlashCubeLights = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/FlashCubeLights',
        request_serializer=anki__vector_dot_messaging_dot_cube__pb2.FlashCubeLightsRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_cube__pb2.FlashCubeLightsResponse.FromString,
        )
    self.ForgetPreferredCube = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/ForgetPreferredCube',
        request_serializer=anki__vector_dot_messaging_dot_cube__pb2.ForgetPreferredCubeRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_cube__pb2.ForgetPreferredCubeResponse.FromString,
        )
    self.SetPreferredCube = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/SetPreferredCube',
        request_serializer=anki__vector_dot_messaging_dot_cube__pb2.SetPreferredCubeRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_cube__pb2.SetPreferredCubeResponse.FromString,
        )
    self.DeleteCustomObjects = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/DeleteCustomObjects',
        request_serializer=anki__vector_dot_messaging_dot_cube__pb2.DeleteCustomObjectsRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_cube__pb2.DeleteCustomObjectsResponse.FromString,
        )
    self.CreateFixedCustomObject = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/CreateFixedCustomObject',
        request_serializer=anki__vector_dot_messaging_dot_cube__pb2.CreateFixedCustomObjectRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_cube__pb2.CreateFixedCustomObjectResponse.FromString,
        )
    self.DefineCustomObject = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/DefineCustomObject',
        request_serializer=anki__vector_dot_messaging_dot_cube__pb2.DefineCustomObjectRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_cube__pb2.DefineCustomObjectResponse.FromString,
        )
    self.SetCubeLights = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/SetCubeLights',
        request_serializer=anki__vector_dot_messaging_dot_cube__pb2.SetCubeLightsRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_cube__pb2.SetCubeLightsResponse.FromString,
        )
    self.AudioFeed = channel.unary_stream(
        '/Anki.Vector.external_interface.ExternalInterface/AudioFeed',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.AudioFeedRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.AudioFeedResponse.FromString,
        )
    self.CameraFeed = channel.unary_stream(
        '/Anki.Vector.external_interface.ExternalInterface/CameraFeed',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.CameraFeedRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.CameraFeedResponse.FromString,
        )
    self.CaptureSingleImage = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/CaptureSingleImage',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.CaptureSingleImageRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.CaptureSingleImageResponse.FromString,
        )
    self.SetEyeColor = channel.unary_unary(
        '/Anki.Vector.external_interface.ExternalInterface/SetEyeColor',
        request_serializer=anki__vector_dot_messaging_dot_messages__pb2.SetEyeColorRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_messages__pb2.SetEyeColorResponse.FromString,
        )
    self.NavMapFeed = channel.unary_stream(
        '/Anki.Vector.external_interface.ExternalInterface/NavMapFeed',
        request_serializer=anki__vector_dot_messaging_dot_nav__map__pb2.NavMapFeedRequest.SerializeToString,
        response_deserializer=anki__vector_dot_messaging_dot_nav__map__pb2.NavMapFeedResponse.FromString,
        )


class ExternalInterfaceServicer(object):
  """The grpc-defined connection between the SDK and Anki's Vector robot.
  """

  def ProtocolVersion(self, request, context):
    """Checks the supported protocol version by passing in the client version and
    minimum host version and receiving a response to see whether the versions are supported.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def SDKInitialization(self, request, context):
    """SDK-only message to pass version info for device OS, Python version, etc.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def DriveWheels(self, request, context):
    """Sets the speed and acceleration for Vector's wheel motors.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def PlayAnimationTrigger(self, request, context):
    """Requests that Vector play an animation trigger.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def PlayAnimation(self, request, context):
    """Requests that Vector play an animation.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def ListAnimations(self, request, context):
    """Constructs and returns a list of animations.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def ListAnimationTriggers(self, request, context):
    """Constructs and returns a list of animation triggers.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def MoveHead(self, request, context):
    """Moves Vector's head.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def MoveLift(self, request, context):
    """Moves Vector's lift.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def StopAllMotors(self, request, context):
    """Stop all motor commands requested: MoveHead, MoveLift and DriveWheels.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def DisplayFaceImageRGB(self, request, context):
    """Sets screen (Vector's face) to a solid color.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def EventStream(self, request, context):
    """Streaming events endpoint
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def ExternalAudioStreamPlayback(self, request_iterator, context):
    """Play audio using Vector's speaker
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def BehaviorControl(self, request_iterator, context):
    """Integrate with and acquire control of Vector's AI system.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def AssumeBehaviorControl(self, request, context):
    """Acquire control of Vector's AI system.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def CancelFaceEnrollment(self, request, context):
    # missing associated documentation comment in .proto file
    pass
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def RequestEnrolledNames(self, request, context):
    """Get a list of names and their IDs.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def UpdateEnrolledFaceByID(self, request, context):
    """Update the name enrolled for a given face.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def EraseEnrolledFaceByID(self, request, context):
    """Erase the enrollment (name) record for the face with this ID.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def EraseAllEnrolledFaces(self, request, context):
    """Erase the enrollment (name) records for all faces.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def SetFaceToEnroll(self, request, context):
    # missing associated documentation comment in .proto file
    pass
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def EnableMarkerDetection(self, request, context):
    # missing associated documentation comment in .proto file
    pass
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def EnableFaceDetection(self, request, context):
    # missing associated documentation comment in .proto file
    pass
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def EnableMotionDetection(self, request, context):
    # missing associated documentation comment in .proto file
    pass
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def EnableMirrorMode(self, request, context):
    # missing associated documentation comment in .proto file
    pass
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def EnableImageStreaming(self, request, context):
    # missing associated documentation comment in .proto file
    pass
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def IsImageStreamingEnabled(self, request, context):
    # missing associated documentation comment in .proto file
    pass
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def CancelActionByIdTag(self, request, context):
    """Cancel action by id
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def GoToPose(self, request, context):
    """Tells Vector to drive to the specified pose and orientation.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def DockWithCube(self, request, context):
    """Tells Vector to dock with a light cube with a given approach angle and distance.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def DriveOffCharger(self, request, context):
    """Drive Vector off the charger.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def DriveOnCharger(self, request, context):
    """Drive Vector onto the charger.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def FindFaces(self, request, context):
    """Make Vector look for faces by turning and angling his head
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def LookAroundInPlace(self, request, context):
    """Make Vector look around in place by turning and moving his head
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def RollBlock(self, request, context):
    """Make Vector roll his block, regardless of relative position and orientation
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def PhotosInfo(self, request, context):
    """Get the photos info.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def Photo(self, request, context):
    """Get a photo by ID.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def Thumbnail(self, request, context):
    """Get a thumbnail by ID.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def DeletePhoto(self, request, context):
    """Delete a photo by ID.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def DriveStraight(self, request, context):
    """Tells Vector to drive in a straight line.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def TurnInPlace(self, request, context):
    """Turn the robot around its current position.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def SetHeadAngle(self, request, context):
    """Tell Vector's head to move to a given angle.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def SetLiftHeight(self, request, context):
    """Tell Vector's lift to move to a given height.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def TurnTowardsFace(self, request, context):
    """Tell Vector to turn towards this face.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def GoToObject(self, request, context):
    """Tell Vector to drive to the specified object.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def RollObject(self, request, context):
    """Tell Vector to roll his cube.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def PopAWheelie(self, request, context):
    """Tell Vector to "pop a wheelie" using his cube.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def PickupObject(self, request, context):
    """Instruct the robot to pick up the supplied object.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def PlaceObjectOnGroundHere(self, request, context):
    """Ask Vector to place the object he is carrying on the ground at the current location.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def SetMasterVolume(self, request, context):
    """Set the Robot's master volume
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def UserAuthentication(self, request, context):
    # missing associated documentation comment in .proto file
    pass
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def BatteryState(self, request, context):
    """Check the current state of the battery.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def VersionState(self, request, context):
    """Get the versioning information for Vector.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def SayText(self, request, context):
    """Make Vector speak text.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def ConnectCube(self, request, context):
    """Attempt to connect to a cube. If a cube is currently connected,
    this will do nothing.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def DisconnectCube(self, request, context):
    """Requests a disconnection from the currently connected cube.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def CubesAvailable(self, request, context):
    # missing associated documentation comment in .proto file
    pass
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def FlashCubeLights(self, request, context):
    """Signal a connected cube to flash its lights using the default cube
    flash animation.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def ForgetPreferredCube(self, request, context):
    """Forget the robot's preferred cube. This will cause the robot to
    connect to the cube with the highest RSSI (signal strength) next
    time a connection is requested. Saves this preference to disk.
    The next cube that the robot connects to will become its
    preferred cube.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def SetPreferredCube(self, request, context):
    """Set the robot's preferred cube and save it to disk. The robot
    will always attempt to connect to this cube if it is available.
    This is only used in simulation for now.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def DeleteCustomObjects(self, request, context):
    """Causes the robot to forget about custom objects it currently knows about.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def CreateFixedCustomObject(self, request, context):
    """Creates a permanent custom object instance in the robot's world, with no connection to the vision system.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def DefineCustomObject(self, request, context):
    """Creates a custom object with distinct custom marker(s).
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def SetCubeLights(self, request, context):
    """Set each of the lights on the currently connected cube based on two
    rgb values each and timing data for how to transition between them.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def AudioFeed(self, request, context):
    """Request an audio feed from the robot.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def CameraFeed(self, request, context):
    """Request a camera feed from the robot.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def CaptureSingleImage(self, request, context):
    """Request a single image to be captured and sent from the robot.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def SetEyeColor(self, request, context):
    """Set Vector's eye color.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def NavMapFeed(self, request, context):
    """Stream navigation map data.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')


def add_ExternalInterfaceServicer_to_server(servicer, server):
  rpc_method_handlers = {
      'ProtocolVersion': grpc.unary_unary_rpc_method_handler(
          servicer.ProtocolVersion,
          request_deserializer=anki__vector_dot_messaging_dot_shared__pb2.ProtocolVersionRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_shared__pb2.ProtocolVersionResponse.SerializeToString,
      ),
      'SDKInitialization': grpc.unary_unary_rpc_method_handler(
          servicer.SDKInitialization,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.SDKInitializationRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.SDKInitializationResponse.SerializeToString,
      ),
      'DriveWheels': grpc.unary_unary_rpc_method_handler(
          servicer.DriveWheels,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DriveWheelsRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.DriveWheelsResponse.SerializeToString,
      ),
      'PlayAnimationTrigger': grpc.unary_unary_rpc_method_handler(
          servicer.PlayAnimationTrigger,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PlayAnimationTriggerRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.PlayAnimationResponse.SerializeToString,
      ),
      'PlayAnimation': grpc.unary_unary_rpc_method_handler(
          servicer.PlayAnimation,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PlayAnimationRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.PlayAnimationResponse.SerializeToString,
      ),
      'ListAnimations': grpc.unary_unary_rpc_method_handler(
          servicer.ListAnimations,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.ListAnimationsRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.ListAnimationsResponse.SerializeToString,
      ),
      'ListAnimationTriggers': grpc.unary_unary_rpc_method_handler(
          servicer.ListAnimationTriggers,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.ListAnimationTriggersRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.ListAnimationTriggersResponse.SerializeToString,
      ),
      'MoveHead': grpc.unary_unary_rpc_method_handler(
          servicer.MoveHead,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.MoveHeadRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.MoveHeadResponse.SerializeToString,
      ),
      'MoveLift': grpc.unary_unary_rpc_method_handler(
          servicer.MoveLift,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.MoveLiftRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.MoveLiftResponse.SerializeToString,
      ),
      'StopAllMotors': grpc.unary_unary_rpc_method_handler(
          servicer.StopAllMotors,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.StopAllMotorsRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.StopAllMotorsResponse.SerializeToString,
      ),
      'DisplayFaceImageRGB': grpc.unary_unary_rpc_method_handler(
          servicer.DisplayFaceImageRGB,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DisplayFaceImageRGBRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.DisplayFaceImageRGBResponse.SerializeToString,
      ),
      'EventStream': grpc.unary_stream_rpc_method_handler(
          servicer.EventStream,
          request_deserializer=anki__vector_dot_messaging_dot_shared__pb2.EventRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_shared__pb2.EventResponse.SerializeToString,
      ),
      'ExternalAudioStreamPlayback': grpc.stream_stream_rpc_method_handler(
          servicer.ExternalAudioStreamPlayback,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.ExternalAudioStreamRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.ExternalAudioStreamResponse.SerializeToString,
      ),
      'BehaviorControl': grpc.stream_stream_rpc_method_handler(
          servicer.BehaviorControl,
          request_deserializer=anki__vector_dot_messaging_dot_behavior__pb2.BehaviorControlRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_behavior__pb2.BehaviorControlResponse.SerializeToString,
      ),
      'AssumeBehaviorControl': grpc.unary_stream_rpc_method_handler(
          servicer.AssumeBehaviorControl,
          request_deserializer=anki__vector_dot_messaging_dot_behavior__pb2.BehaviorControlRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_behavior__pb2.BehaviorControlResponse.SerializeToString,
      ),
      'CancelFaceEnrollment': grpc.unary_unary_rpc_method_handler(
          servicer.CancelFaceEnrollment,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.CancelFaceEnrollmentRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.CancelFaceEnrollmentResponse.SerializeToString,
      ),
      'RequestEnrolledNames': grpc.unary_unary_rpc_method_handler(
          servicer.RequestEnrolledNames,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.RequestEnrolledNamesRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.RequestEnrolledNamesResponse.SerializeToString,
      ),
      'UpdateEnrolledFaceByID': grpc.unary_unary_rpc_method_handler(
          servicer.UpdateEnrolledFaceByID,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.UpdateEnrolledFaceByIDRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.UpdateEnrolledFaceByIDResponse.SerializeToString,
      ),
      'EraseEnrolledFaceByID': grpc.unary_unary_rpc_method_handler(
          servicer.EraseEnrolledFaceByID,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EraseEnrolledFaceByIDRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.EraseEnrolledFaceByIDResponse.SerializeToString,
      ),
      'EraseAllEnrolledFaces': grpc.unary_unary_rpc_method_handler(
          servicer.EraseAllEnrolledFaces,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EraseAllEnrolledFacesRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.EraseAllEnrolledFacesResponse.SerializeToString,
      ),
      'SetFaceToEnroll': grpc.unary_unary_rpc_method_handler(
          servicer.SetFaceToEnroll,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.SetFaceToEnrollRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.SetFaceToEnrollResponse.SerializeToString,
      ),
      'EnableMarkerDetection': grpc.unary_unary_rpc_method_handler(
          servicer.EnableMarkerDetection,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EnableMarkerDetectionRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.EnableMarkerDetectionResponse.SerializeToString,
      ),
      'EnableFaceDetection': grpc.unary_unary_rpc_method_handler(
          servicer.EnableFaceDetection,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EnableFaceDetectionRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.EnableFaceDetectionResponse.SerializeToString,
      ),
      'EnableMotionDetection': grpc.unary_unary_rpc_method_handler(
          servicer.EnableMotionDetection,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EnableMotionDetectionRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.EnableMotionDetectionResponse.SerializeToString,
      ),
      'EnableMirrorMode': grpc.unary_unary_rpc_method_handler(
          servicer.EnableMirrorMode,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EnableMirrorModeRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.EnableMirrorModeResponse.SerializeToString,
      ),
      'EnableImageStreaming': grpc.unary_unary_rpc_method_handler(
          servicer.EnableImageStreaming,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.EnableImageStreamingRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.EnableImageStreamingResponse.SerializeToString,
      ),
      'IsImageStreamingEnabled': grpc.unary_unary_rpc_method_handler(
          servicer.IsImageStreamingEnabled,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.IsImageStreamingEnabledRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.IsImageStreamingEnabledResponse.SerializeToString,
      ),
      'CancelActionByIdTag': grpc.unary_unary_rpc_method_handler(
          servicer.CancelActionByIdTag,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.CancelActionByIdTagRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.CancelActionByIdTagResponse.SerializeToString,
      ),
      'GoToPose': grpc.unary_unary_rpc_method_handler(
          servicer.GoToPose,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.GoToPoseRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.GoToPoseResponse.SerializeToString,
      ),
      'DockWithCube': grpc.unary_unary_rpc_method_handler(
          servicer.DockWithCube,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DockWithCubeRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.DockWithCubeResponse.SerializeToString,
      ),
      'DriveOffCharger': grpc.unary_unary_rpc_method_handler(
          servicer.DriveOffCharger,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DriveOffChargerRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.DriveOffChargerResponse.SerializeToString,
      ),
      'DriveOnCharger': grpc.unary_unary_rpc_method_handler(
          servicer.DriveOnCharger,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DriveOnChargerRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.DriveOnChargerResponse.SerializeToString,
      ),
      'FindFaces': grpc.unary_unary_rpc_method_handler(
          servicer.FindFaces,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.FindFacesRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.FindFacesResponse.SerializeToString,
      ),
      'LookAroundInPlace': grpc.unary_unary_rpc_method_handler(
          servicer.LookAroundInPlace,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.LookAroundInPlaceRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.LookAroundInPlaceResponse.SerializeToString,
      ),
      'RollBlock': grpc.unary_unary_rpc_method_handler(
          servicer.RollBlock,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.RollBlockRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.RollBlockResponse.SerializeToString,
      ),
      'PhotosInfo': grpc.unary_unary_rpc_method_handler(
          servicer.PhotosInfo,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PhotosInfoRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.PhotosInfoResponse.SerializeToString,
      ),
      'Photo': grpc.unary_unary_rpc_method_handler(
          servicer.Photo,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PhotoRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.PhotoResponse.SerializeToString,
      ),
      'Thumbnail': grpc.unary_unary_rpc_method_handler(
          servicer.Thumbnail,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.ThumbnailRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.ThumbnailResponse.SerializeToString,
      ),
      'DeletePhoto': grpc.unary_unary_rpc_method_handler(
          servicer.DeletePhoto,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DeletePhotoRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.DeletePhotoResponse.SerializeToString,
      ),
      'DriveStraight': grpc.unary_unary_rpc_method_handler(
          servicer.DriveStraight,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.DriveStraightRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.DriveStraightResponse.SerializeToString,
      ),
      'TurnInPlace': grpc.unary_unary_rpc_method_handler(
          servicer.TurnInPlace,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.TurnInPlaceRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.TurnInPlaceResponse.SerializeToString,
      ),
      'SetHeadAngle': grpc.unary_unary_rpc_method_handler(
          servicer.SetHeadAngle,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.SetHeadAngleRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.SetHeadAngleResponse.SerializeToString,
      ),
      'SetLiftHeight': grpc.unary_unary_rpc_method_handler(
          servicer.SetLiftHeight,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.SetLiftHeightRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.SetLiftHeightResponse.SerializeToString,
      ),
      'TurnTowardsFace': grpc.unary_unary_rpc_method_handler(
          servicer.TurnTowardsFace,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.TurnTowardsFaceRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.TurnTowardsFaceResponse.SerializeToString,
      ),
      'GoToObject': grpc.unary_unary_rpc_method_handler(
          servicer.GoToObject,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.GoToObjectRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.GoToObjectResponse.SerializeToString,
      ),
      'RollObject': grpc.unary_unary_rpc_method_handler(
          servicer.RollObject,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.RollObjectRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.RollObjectResponse.SerializeToString,
      ),
      'PopAWheelie': grpc.unary_unary_rpc_method_handler(
          servicer.PopAWheelie,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PopAWheelieRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.PopAWheelieResponse.SerializeToString,
      ),
      'PickupObject': grpc.unary_unary_rpc_method_handler(
          servicer.PickupObject,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PickupObjectRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.PickupObjectResponse.SerializeToString,
      ),
      'PlaceObjectOnGroundHere': grpc.unary_unary_rpc_method_handler(
          servicer.PlaceObjectOnGroundHere,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.PlaceObjectOnGroundHereRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.PlaceObjectOnGroundHereResponse.SerializeToString,
      ),
      'SetMasterVolume': grpc.unary_unary_rpc_method_handler(
          servicer.SetMasterVolume,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.MasterVolumeRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.MasterVolumeResponse.SerializeToString,
      ),
      'UserAuthentication': grpc.unary_unary_rpc_method_handler(
          servicer.UserAuthentication,
          request_deserializer=anki__vector_dot_messaging_dot_shared__pb2.UserAuthenticationRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_shared__pb2.UserAuthenticationResponse.SerializeToString,
      ),
      'BatteryState': grpc.unary_unary_rpc_method_handler(
          servicer.BatteryState,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.BatteryStateRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.BatteryStateResponse.SerializeToString,
      ),
      'VersionState': grpc.unary_unary_rpc_method_handler(
          servicer.VersionState,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.VersionStateRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.VersionStateResponse.SerializeToString,
      ),
      'SayText': grpc.unary_unary_rpc_method_handler(
          servicer.SayText,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.SayTextRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.SayTextResponse.SerializeToString,
      ),
      'ConnectCube': grpc.unary_unary_rpc_method_handler(
          servicer.ConnectCube,
          request_deserializer=anki__vector_dot_messaging_dot_cube__pb2.ConnectCubeRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_cube__pb2.ConnectCubeResponse.SerializeToString,
      ),
      'DisconnectCube': grpc.unary_unary_rpc_method_handler(
          servicer.DisconnectCube,
          request_deserializer=anki__vector_dot_messaging_dot_cube__pb2.DisconnectCubeRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_cube__pb2.DisconnectCubeResponse.SerializeToString,
      ),
      'CubesAvailable': grpc.unary_unary_rpc_method_handler(
          servicer.CubesAvailable,
          request_deserializer=anki__vector_dot_messaging_dot_cube__pb2.CubesAvailableRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_cube__pb2.CubesAvailableResponse.SerializeToString,
      ),
      'FlashCubeLights': grpc.unary_unary_rpc_method_handler(
          servicer.FlashCubeLights,
          request_deserializer=anki__vector_dot_messaging_dot_cube__pb2.FlashCubeLightsRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_cube__pb2.FlashCubeLightsResponse.SerializeToString,
      ),
      'ForgetPreferredCube': grpc.unary_unary_rpc_method_handler(
          servicer.ForgetPreferredCube,
          request_deserializer=anki__vector_dot_messaging_dot_cube__pb2.ForgetPreferredCubeRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_cube__pb2.ForgetPreferredCubeResponse.SerializeToString,
      ),
      'SetPreferredCube': grpc.unary_unary_rpc_method_handler(
          servicer.SetPreferredCube,
          request_deserializer=anki__vector_dot_messaging_dot_cube__pb2.SetPreferredCubeRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_cube__pb2.SetPreferredCubeResponse.SerializeToString,
      ),
      'DeleteCustomObjects': grpc.unary_unary_rpc_method_handler(
          servicer.DeleteCustomObjects,
          request_deserializer=anki__vector_dot_messaging_dot_cube__pb2.DeleteCustomObjectsRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_cube__pb2.DeleteCustomObjectsResponse.SerializeToString,
      ),
      'CreateFixedCustomObject': grpc.unary_unary_rpc_method_handler(
          servicer.CreateFixedCustomObject,
          request_deserializer=anki__vector_dot_messaging_dot_cube__pb2.CreateFixedCustomObjectRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_cube__pb2.CreateFixedCustomObjectResponse.SerializeToString,
      ),
      'DefineCustomObject': grpc.unary_unary_rpc_method_handler(
          servicer.DefineCustomObject,
          request_deserializer=anki__vector_dot_messaging_dot_cube__pb2.DefineCustomObjectRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_cube__pb2.DefineCustomObjectResponse.SerializeToString,
      ),
      'SetCubeLights': grpc.unary_unary_rpc_method_handler(
          servicer.SetCubeLights,
          request_deserializer=anki__vector_dot_messaging_dot_cube__pb2.SetCubeLightsRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_cube__pb2.SetCubeLightsResponse.SerializeToString,
      ),
      'AudioFeed': grpc.unary_stream_rpc_method_handler(
          servicer.AudioFeed,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.AudioFeedRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.AudioFeedResponse.SerializeToString,
      ),
      'CameraFeed': grpc.unary_stream_rpc_method_handler(
          servicer.CameraFeed,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.CameraFeedRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.CameraFeedResponse.SerializeToString,
      ),
      'CaptureSingleImage': grpc.unary_unary_rpc_method_handler(
          servicer.CaptureSingleImage,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.CaptureSingleImageRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.CaptureSingleImageResponse.SerializeToString,
      ),
      'SetEyeColor': grpc.unary_unary_rpc_method_handler(
          servicer.SetEyeColor,
          request_deserializer=anki__vector_dot_messaging_dot_messages__pb2.SetEyeColorRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_messages__pb2.SetEyeColorResponse.SerializeToString,
      ),
      'NavMapFeed': grpc.unary_stream_rpc_method_handler(
          servicer.NavMapFeed,
          request_deserializer=anki__vector_dot_messaging_dot_nav__map__pb2.NavMapFeedRequest.FromString,
          response_serializer=anki__vector_dot_messaging_dot_nav__map__pb2.NavMapFeedResponse.SerializeToString,
      ),
  }
  generic_handler = grpc.method_handlers_generic_handler(
      'Anki.Vector.external_interface.ExternalInterface', rpc_method_handlers)
  server.add_generic_rpc_handlers((generic_handler,))
