# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: anki_vector/messaging/cube.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from anki_vector.messaging import messages_pb2 as anki__vector_dot_messaging_dot_messages__pb2
from anki_vector.messaging import response_status_pb2 as anki__vector_dot_messaging_dot_response__status__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='anki_vector/messaging/cube.proto',
  package='Anki.Vector.external_interface',
  syntax='proto3',
  serialized_pb=_b('\n anki_vector/messaging/cube.proto\x12\x1e\x41nki.Vector.external_interface\x1a$anki_vector/messaging/messages.proto\x1a+anki_vector/messaging/response_status.proto\"\x14\n\x12\x43onnectCubeRequest\"\x8d\x01\n\x13\x43onnectCubeResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x11\n\tobject_id\x18\x03 \x01(\r\x12\x12\n\nfactory_id\x18\x04 \x01(\t\"\x17\n\x15\x43ubesAvailableRequest\"m\n\x16\x43ubesAvailableResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\x12\x13\n\x0b\x66\x61\x63tory_ids\x18\x02 \x03(\t\"\x17\n\x15\x44isconnectCubeRequest\"X\n\x16\x44isconnectCubeResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\"\x18\n\x16\x46lashCubeLightsRequest\"Y\n\x17\x46lashCubeLightsResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\"\x1c\n\x1a\x46orgetPreferredCubeRequest\"]\n\x1b\x46orgetPreferredCubeResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\"-\n\x17SetPreferredCubeRequest\x12\x12\n\nfactory_id\x18\x01 \x01(\t\"Z\n\x18SetPreferredCubeResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\"\xb0\x03\n\x14SetCubeLightsRequest\x12\x11\n\tobject_id\x18\x01 \x01(\r\x12\x10\n\x08on_color\x18\x02 \x03(\r\x12\x11\n\toff_color\x18\x03 \x03(\r\x12\x14\n\x0con_period_ms\x18\x04 \x03(\r\x12\x15\n\roff_period_ms\x18\x05 \x03(\r\x12\x1f\n\x17transition_on_period_ms\x18\x06 \x03(\r\x12 \n\x18transition_off_period_ms\x18\x07 \x03(\r\x12\x0e\n\x06offset\x18\x08 \x03(\x05\x12\x15\n\rrelative_to_x\x18\t \x01(\x02\x12\x15\n\rrelative_to_y\x18\n \x01(\x02\x12\x0e\n\x06rotate\x18\x0b \x01(\x08\x12\\\n\rmake_relative\x18\x0c \x01(\x0e\x32\x45.Anki.Vector.external_interface.SetCubeLightsRequest.MakeRelativeMode\"D\n\x10MakeRelativeMode\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03OFF\x10\x01\x12\r\n\tBY_CORNER\x10\x02\x12\x0b\n\x07\x42Y_SIDE\x10\x03\"W\n\x15SetCubeLightsResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\"%\n\x0fObjectAvailable\x12\x12\n\nfactory_id\x18\x01 \x01(\t\"\x92\x01\n\x15ObjectConnectionState\x12\x11\n\tobject_id\x18\x01 \x01(\r\x12\x12\n\nfactory_id\x18\x02 \x01(\t\x12?\n\x0bobject_type\x18\x03 \x01(\x0e\x32*.Anki.Vector.external_interface.ObjectType\x12\x11\n\tconnected\x18\x04 \x01(\x08\"3\n\x0bObjectMoved\x12\x11\n\ttimestamp\x18\x01 \x01(\r\x12\x11\n\tobject_id\x18\x02 \x01(\r\";\n\x13ObjectStoppedMoving\x12\x11\n\ttimestamp\x18\x01 \x01(\r\x12\x11\n\tobject_id\x18\x02 \x01(\r\"t\n\x13ObjectUpAxisChanged\x12\x11\n\ttimestamp\x18\x01 \x01(\r\x12\x11\n\tobject_id\x18\x02 \x01(\r\x12\x37\n\x07up_axis\x18\x03 \x01(\x0e\x32&.Anki.Vector.external_interface.UpAxis\"4\n\x0cObjectTapped\x12\x11\n\ttimestamp\x18\x01 \x01(\r\x12\x11\n\tobject_id\x18\x02 \x01(\r\"\xf0\x02\n\x13RobotObservedObject\x12\x11\n\ttimestamp\x18\x01 \x01(\r\x12G\n\robject_family\x18\x02 \x01(\x0e\x32,.Anki.Vector.external_interface.ObjectFamilyB\x02\x18\x01\x12?\n\x0bobject_type\x18\x03 \x01(\x0e\x32*.Anki.Vector.external_interface.ObjectType\x12\x11\n\tobject_id\x18\x04 \x01(\x05\x12:\n\x08img_rect\x18\x05 \x01(\x0b\x32(.Anki.Vector.external_interface.CladRect\x12\x38\n\x04pose\x18\x06 \x01(\x0b\x32*.Anki.Vector.external_interface.PoseStruct\x12 \n\x18top_face_orientation_rad\x18\x07 \x01(\x02\x12\x11\n\tis_active\x18\x08 \x01(\r\"\x14\n\x12\x43ubeConnectionLost\"d\n\x1a\x44\x65leteCustomObjectsRequest\x12\x46\n\x04mode\x18\x01 \x01(\x0e\x32\x38.Anki.Vector.external_interface.CustomObjectDeletionMode\"]\n\x1b\x44\x65leteCustomObjectsResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\"\x93\x01\n\x1e\x43reateFixedCustomObjectRequest\x12\x38\n\x04pose\x18\x01 \x01(\x0b\x32*.Anki.Vector.external_interface.PoseStruct\x12\x11\n\tx_size_mm\x18\x02 \x01(\x02\x12\x11\n\ty_size_mm\x18\x03 \x01(\x02\x12\x11\n\tz_size_mm\x18\x04 \x01(\x02\"t\n\x1f\x43reateFixedCustomObjectResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\x12\x11\n\tobject_id\x18\x02 \x01(\r\"\xba\x04\n\x13\x43ustomBoxDefinition\x12H\n\x0cmarker_front\x18\x01 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12G\n\x0bmarker_back\x18\x02 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12\x46\n\nmarker_top\x18\x03 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12I\n\rmarker_bottom\x18\x04 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12G\n\x0bmarker_left\x18\x05 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12H\n\x0cmarker_right\x18\x06 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12\x11\n\tx_size_mm\x18\x07 \x01(\x02\x12\x11\n\ty_size_mm\x18\x08 \x01(\x02\x12\x11\n\tz_size_mm\x18\t \x01(\x02\x12\x17\n\x0fmarker_width_mm\x18\n \x01(\x02\x12\x18\n\x10marker_height_mm\x18\x0b \x01(\x02\"\x9e\x01\n\x14\x43ustomCubeDefinition\x12\x42\n\x06marker\x18\x01 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12\x0f\n\x07size_mm\x18\x02 \x01(\x02\x12\x17\n\x0fmarker_width_mm\x18\x03 \x01(\x02\x12\x18\n\x10marker_height_mm\x18\x04 \x01(\x02\"\xb2\x01\n\x14\x43ustomWallDefinition\x12\x42\n\x06marker\x18\x01 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12\x10\n\x08width_mm\x18\x02 \x01(\x02\x12\x11\n\theight_mm\x18\x03 \x01(\x02\x12\x17\n\x0fmarker_width_mm\x18\x04 \x01(\x02\x12\x18\n\x10marker_height_mm\x18\x05 \x01(\x02\"\xf0\x02\n\x19\x44\x65\x66ineCustomObjectRequest\x12?\n\x0b\x63ustom_type\x18\x01 \x01(\x0e\x32*.Anki.Vector.external_interface.CustomType\x12\x11\n\tis_unique\x18\x02 \x01(\x08\x12I\n\ncustom_box\x18\x03 \x01(\x0b\x32\x33.Anki.Vector.external_interface.CustomBoxDefinitionH\x00\x12K\n\x0b\x63ustom_cube\x18\x04 \x01(\x0b\x32\x34.Anki.Vector.external_interface.CustomCubeDefinitionH\x00\x12K\n\x0b\x63ustom_wall\x18\x05 \x01(\x0b\x32\x34.Anki.Vector.external_interface.CustomWallDefinitionH\x00\x42\x1a\n\x18\x63ustom_object_definition\"m\n\x1a\x44\x65\x66ineCustomObjectResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\x12\x0f\n\x07success\x18\x02 \x01(\x08\"\xac\x05\n\x0bObjectEvent\x12K\n\x10object_available\x18\x01 \x01(\x0b\x32/.Anki.Vector.external_interface.ObjectAvailableH\x00\x12X\n\x17object_connection_state\x18\x02 \x01(\x0b\x32\x35.Anki.Vector.external_interface.ObjectConnectionStateH\x00\x12\x43\n\x0cobject_moved\x18\x03 \x01(\x0b\x32+.Anki.Vector.external_interface.ObjectMovedH\x00\x12T\n\x15object_stopped_moving\x18\x04 \x01(\x0b\x32\x33.Anki.Vector.external_interface.ObjectStoppedMovingH\x00\x12U\n\x16object_up_axis_changed\x18\x05 \x01(\x0b\x32\x33.Anki.Vector.external_interface.ObjectUpAxisChangedH\x00\x12\x45\n\robject_tapped\x18\x06 \x01(\x0b\x32,.Anki.Vector.external_interface.ObjectTappedH\x00\x12T\n\x15robot_observed_object\x18\x07 \x01(\x0b\x32\x33.Anki.Vector.external_interface.RobotObservedObjectH\x00\x12R\n\x14\x63ube_connection_lost\x18\x08 \x01(\x0b\x32\x32.Anki.Vector.external_interface.CubeConnectionLostH\x00\x42\x13\n\x11object_event_type*{\n\nObjectType\x12\x12\n\x0eINVALID_OBJECT\x10\x00\x12\x12\n\x0eUNKNOWN_OBJECT\x10\x01\x12\x14\n\x10\x42LOCK_LIGHTCUBE1\x10\x02\x12\x11\n\rCHARGER_BASIC\x10\x06\x12\x1c\n\x18\x46IRST_CUSTOM_OBJECT_TYPE\x10\x0f*\xd0\x03\n\nCustomType\x12\x17\n\x13INVALID_CUSTOM_TYPE\x10\x00\x12\x12\n\x0e\x43USTOM_TYPE_00\x10\x01\x12\x12\n\x0e\x43USTOM_TYPE_01\x10\x02\x12\x12\n\x0e\x43USTOM_TYPE_02\x10\x03\x12\x12\n\x0e\x43USTOM_TYPE_03\x10\x04\x12\x12\n\x0e\x43USTOM_TYPE_04\x10\x05\x12\x12\n\x0e\x43USTOM_TYPE_05\x10\x06\x12\x12\n\x0e\x43USTOM_TYPE_06\x10\x07\x12\x12\n\x0e\x43USTOM_TYPE_07\x10\x08\x12\x12\n\x0e\x43USTOM_TYPE_08\x10\t\x12\x12\n\x0e\x43USTOM_TYPE_09\x10\n\x12\x12\n\x0e\x43USTOM_TYPE_10\x10\x0b\x12\x12\n\x0e\x43USTOM_TYPE_11\x10\x0c\x12\x12\n\x0e\x43USTOM_TYPE_12\x10\r\x12\x12\n\x0e\x43USTOM_TYPE_13\x10\x0e\x12\x12\n\x0e\x43USTOM_TYPE_14\x10\x0f\x12\x12\n\x0e\x43USTOM_TYPE_15\x10\x10\x12\x12\n\x0e\x43USTOM_TYPE_16\x10\x11\x12\x12\n\x0e\x43USTOM_TYPE_17\x10\x12\x12\x12\n\x0e\x43USTOM_TYPE_18\x10\x13\x12\x12\n\x0e\x43USTOM_TYPE_19\x10\x14\x12\x15\n\x11\x43USTOM_TYPE_COUNT\x10\x14\x1a\x02\x10\x01*\x8e\x01\n\x0cObjectFamily\x12\x12\n\x0eINVALID_FAMILY\x10\x00\x12\x12\n\x0eUNKNOWN_FAMILY\x10\x01\x12\t\n\x05\x42LOCK\x10\x02\x12\x0e\n\nLIGHT_CUBE\x10\x03\x12\x0b\n\x07\x43HARGER\x10\x04\x12\x11\n\rCUSTOM_OBJECT\x10\x07\x12\x17\n\x13OBJECT_FAMILY_COUNT\x10\x07\x1a\x02\x10\x01*\x88\x01\n\x06UpAxis\x12\x10\n\x0cINVALID_AXIS\x10\x00\x12\x0e\n\nX_NEGATIVE\x10\x01\x12\x0e\n\nX_POSITIVE\x10\x02\x12\x0e\n\nY_NEGATIVE\x10\x03\x12\x0e\n\nY_POSITIVE\x10\x04\x12\x0e\n\nZ_NEGATIVE\x10\x05\x12\x0e\n\nZ_POSITIVE\x10\x06\x12\x0c\n\x08NUM_AXES\x10\x07*P\n\x0fObjectConstants\x12\x19\n\x15OBJECT_CONSTANTS_NULL\x10\x00\x12\"\n\x1e\x46IXED_CUSTOM_WALL_THICKNESS_MM\x10\n*\xac\x04\n\x12\x43ustomObjectMarker\x12\x19\n\x15\x43USTOM_MARKER_UNKNOWN\x10\x00\x12\x1b\n\x17\x43USTOM_MARKER_CIRCLES_2\x10\x01\x12\x1b\n\x17\x43USTOM_MARKER_CIRCLES_3\x10\x02\x12\x1b\n\x17\x43USTOM_MARKER_CIRCLES_4\x10\x03\x12\x1b\n\x17\x43USTOM_MARKER_CIRCLES_5\x10\x04\x12\x1c\n\x18\x43USTOM_MARKER_DIAMONDS_2\x10\x05\x12\x1c\n\x18\x43USTOM_MARKER_DIAMONDS_3\x10\x06\x12\x1c\n\x18\x43USTOM_MARKER_DIAMONDS_4\x10\x07\x12\x1c\n\x18\x43USTOM_MARKER_DIAMONDS_5\x10\x08\x12\x1c\n\x18\x43USTOM_MARKER_HEXAGONS_2\x10\t\x12\x1c\n\x18\x43USTOM_MARKER_HEXAGONS_3\x10\n\x12\x1c\n\x18\x43USTOM_MARKER_HEXAGONS_4\x10\x0b\x12\x1c\n\x18\x43USTOM_MARKER_HEXAGONS_5\x10\x0c\x12\x1d\n\x19\x43USTOM_MARKER_TRIANGLES_2\x10\r\x12\x1d\n\x19\x43USTOM_MARKER_TRIANGLES_3\x10\x0e\x12\x1d\n\x19\x43USTOM_MARKER_TRIANGLES_4\x10\x0f\x12\x1d\n\x19\x43USTOM_MARKER_TRIANGLES_5\x10\x10\x12\x17\n\x13\x43USTOM_MARKER_COUNT\x10\x10\x1a\x02\x10\x01*\xa4\x01\n\x18\x43ustomObjectDeletionMode\x12\x19\n\x15\x44\x45LETION_MASK_UNKNOWN\x10\x00\x12&\n\"DELETION_MASK_FIXED_CUSTOM_OBJECTS\x10\x01\x12\'\n#DELETION_MASK_CUSTOM_MARKER_OBJECTS\x10\x02\x12\x1c\n\x18\x44\x45LETION_MASK_ARCHETYPES\x10\x03\x62\x06proto3')
  ,
  dependencies=[anki__vector_dot_messaging_dot_messages__pb2.DESCRIPTOR,anki__vector_dot_messaging_dot_response__status__pb2.DESCRIPTOR,])

_OBJECTTYPE = _descriptor.EnumDescriptor(
  name='ObjectType',
  full_name='Anki.Vector.external_interface.ObjectType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='INVALID_OBJECT', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN_OBJECT', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BLOCK_LIGHTCUBE1', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CHARGER_BASIC', index=3, number=6,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FIRST_CUSTOM_OBJECT_TYPE', index=4, number=15,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=4889,
  serialized_end=5012,
)
_sym_db.RegisterEnumDescriptor(_OBJECTTYPE)

ObjectType = enum_type_wrapper.EnumTypeWrapper(_OBJECTTYPE)
_CUSTOMTYPE = _descriptor.EnumDescriptor(
  name='CustomType',
  full_name='Anki.Vector.external_interface.CustomType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='INVALID_CUSTOM_TYPE', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_00', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_01', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_02', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_03', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_04', index=5, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_05', index=6, number=6,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_06', index=7, number=7,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_07', index=8, number=8,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_08', index=9, number=9,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_09', index=10, number=10,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_10', index=11, number=11,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_11', index=12, number=12,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_12', index=13, number=13,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_13', index=14, number=14,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_14', index=15, number=15,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_15', index=16, number=16,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_16', index=17, number=17,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_17', index=18, number=18,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_18', index=19, number=19,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_19', index=20, number=20,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_TYPE_COUNT', index=21, number=20,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=_descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\020\001')),
  serialized_start=5015,
  serialized_end=5479,
)
_sym_db.RegisterEnumDescriptor(_CUSTOMTYPE)

CustomType = enum_type_wrapper.EnumTypeWrapper(_CUSTOMTYPE)
_OBJECTFAMILY = _descriptor.EnumDescriptor(
  name='ObjectFamily',
  full_name='Anki.Vector.external_interface.ObjectFamily',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='INVALID_FAMILY', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN_FAMILY', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BLOCK', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LIGHT_CUBE', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CHARGER', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_OBJECT', index=5, number=7,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='OBJECT_FAMILY_COUNT', index=6, number=7,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=_descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\020\001')),
  serialized_start=5482,
  serialized_end=5624,
)
_sym_db.RegisterEnumDescriptor(_OBJECTFAMILY)

ObjectFamily = enum_type_wrapper.EnumTypeWrapper(_OBJECTFAMILY)
_UPAXIS = _descriptor.EnumDescriptor(
  name='UpAxis',
  full_name='Anki.Vector.external_interface.UpAxis',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='INVALID_AXIS', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='X_NEGATIVE', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='X_POSITIVE', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='Y_NEGATIVE', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='Y_POSITIVE', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='Z_NEGATIVE', index=5, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='Z_POSITIVE', index=6, number=6,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NUM_AXES', index=7, number=7,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=5627,
  serialized_end=5763,
)
_sym_db.RegisterEnumDescriptor(_UPAXIS)

UpAxis = enum_type_wrapper.EnumTypeWrapper(_UPAXIS)
_OBJECTCONSTANTS = _descriptor.EnumDescriptor(
  name='ObjectConstants',
  full_name='Anki.Vector.external_interface.ObjectConstants',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='OBJECT_CONSTANTS_NULL', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FIXED_CUSTOM_WALL_THICKNESS_MM', index=1, number=10,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=5765,
  serialized_end=5845,
)
_sym_db.RegisterEnumDescriptor(_OBJECTCONSTANTS)

ObjectConstants = enum_type_wrapper.EnumTypeWrapper(_OBJECTCONSTANTS)
_CUSTOMOBJECTMARKER = _descriptor.EnumDescriptor(
  name='CustomObjectMarker',
  full_name='Anki.Vector.external_interface.CustomObjectMarker',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_CIRCLES_2', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_CIRCLES_3', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_CIRCLES_4', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_CIRCLES_5', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_DIAMONDS_2', index=5, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_DIAMONDS_3', index=6, number=6,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_DIAMONDS_4', index=7, number=7,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_DIAMONDS_5', index=8, number=8,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_HEXAGONS_2', index=9, number=9,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_HEXAGONS_3', index=10, number=10,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_HEXAGONS_4', index=11, number=11,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_HEXAGONS_5', index=12, number=12,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_TRIANGLES_2', index=13, number=13,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_TRIANGLES_3', index=14, number=14,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_TRIANGLES_4', index=15, number=15,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_TRIANGLES_5', index=16, number=16,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CUSTOM_MARKER_COUNT', index=17, number=16,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=_descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\020\001')),
  serialized_start=5848,
  serialized_end=6404,
)
_sym_db.RegisterEnumDescriptor(_CUSTOMOBJECTMARKER)

CustomObjectMarker = enum_type_wrapper.EnumTypeWrapper(_CUSTOMOBJECTMARKER)
_CUSTOMOBJECTDELETIONMODE = _descriptor.EnumDescriptor(
  name='CustomObjectDeletionMode',
  full_name='Anki.Vector.external_interface.CustomObjectDeletionMode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='DELETION_MASK_UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DELETION_MASK_FIXED_CUSTOM_OBJECTS', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DELETION_MASK_CUSTOM_MARKER_OBJECTS', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DELETION_MASK_ARCHETYPES', index=3, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=6407,
  serialized_end=6571,
)
_sym_db.RegisterEnumDescriptor(_CUSTOMOBJECTDELETIONMODE)

CustomObjectDeletionMode = enum_type_wrapper.EnumTypeWrapper(_CUSTOMOBJECTDELETIONMODE)
INVALID_OBJECT = 0
UNKNOWN_OBJECT = 1
BLOCK_LIGHTCUBE1 = 2
CHARGER_BASIC = 6
FIRST_CUSTOM_OBJECT_TYPE = 15
INVALID_CUSTOM_TYPE = 0
CUSTOM_TYPE_00 = 1
CUSTOM_TYPE_01 = 2
CUSTOM_TYPE_02 = 3
CUSTOM_TYPE_03 = 4
CUSTOM_TYPE_04 = 5
CUSTOM_TYPE_05 = 6
CUSTOM_TYPE_06 = 7
CUSTOM_TYPE_07 = 8
CUSTOM_TYPE_08 = 9
CUSTOM_TYPE_09 = 10
CUSTOM_TYPE_10 = 11
CUSTOM_TYPE_11 = 12
CUSTOM_TYPE_12 = 13
CUSTOM_TYPE_13 = 14
CUSTOM_TYPE_14 = 15
CUSTOM_TYPE_15 = 16
CUSTOM_TYPE_16 = 17
CUSTOM_TYPE_17 = 18
CUSTOM_TYPE_18 = 19
CUSTOM_TYPE_19 = 20
CUSTOM_TYPE_COUNT = 20
INVALID_FAMILY = 0
UNKNOWN_FAMILY = 1
BLOCK = 2
LIGHT_CUBE = 3
CHARGER = 4
CUSTOM_OBJECT = 7
OBJECT_FAMILY_COUNT = 7
INVALID_AXIS = 0
X_NEGATIVE = 1
X_POSITIVE = 2
Y_NEGATIVE = 3
Y_POSITIVE = 4
Z_NEGATIVE = 5
Z_POSITIVE = 6
NUM_AXES = 7
OBJECT_CONSTANTS_NULL = 0
FIXED_CUSTOM_WALL_THICKNESS_MM = 10
CUSTOM_MARKER_UNKNOWN = 0
CUSTOM_MARKER_CIRCLES_2 = 1
CUSTOM_MARKER_CIRCLES_3 = 2
CUSTOM_MARKER_CIRCLES_4 = 3
CUSTOM_MARKER_CIRCLES_5 = 4
CUSTOM_MARKER_DIAMONDS_2 = 5
CUSTOM_MARKER_DIAMONDS_3 = 6
CUSTOM_MARKER_DIAMONDS_4 = 7
CUSTOM_MARKER_DIAMONDS_5 = 8
CUSTOM_MARKER_HEXAGONS_2 = 9
CUSTOM_MARKER_HEXAGONS_3 = 10
CUSTOM_MARKER_HEXAGONS_4 = 11
CUSTOM_MARKER_HEXAGONS_5 = 12
CUSTOM_MARKER_TRIANGLES_2 = 13
CUSTOM_MARKER_TRIANGLES_3 = 14
CUSTOM_MARKER_TRIANGLES_4 = 15
CUSTOM_MARKER_TRIANGLES_5 = 16
CUSTOM_MARKER_COUNT = 16
DELETION_MASK_UNKNOWN = 0
DELETION_MASK_FIXED_CUSTOM_OBJECTS = 1
DELETION_MASK_CUSTOM_MARKER_OBJECTS = 2
DELETION_MASK_ARCHETYPES = 3


_SETCUBELIGHTSREQUEST_MAKERELATIVEMODE = _descriptor.EnumDescriptor(
  name='MakeRelativeMode',
  full_name='Anki.Vector.external_interface.SetCubeLightsRequest.MakeRelativeMode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='OFF', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BY_CORNER', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BY_SIDE', index=3, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1314,
  serialized_end=1382,
)
_sym_db.RegisterEnumDescriptor(_SETCUBELIGHTSREQUEST_MAKERELATIVEMODE)


_CONNECTCUBEREQUEST = _descriptor.Descriptor(
  name='ConnectCubeRequest',
  full_name='Anki.Vector.external_interface.ConnectCubeRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=151,
  serialized_end=171,
)


_CONNECTCUBERESPONSE = _descriptor.Descriptor(
  name='ConnectCubeResponse',
  full_name='Anki.Vector.external_interface.ConnectCubeResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='status', full_name='Anki.Vector.external_interface.ConnectCubeResponse.status', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='success', full_name='Anki.Vector.external_interface.ConnectCubeResponse.success', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_id', full_name='Anki.Vector.external_interface.ConnectCubeResponse.object_id', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='factory_id', full_name='Anki.Vector.external_interface.ConnectCubeResponse.factory_id', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=174,
  serialized_end=315,
)


_CUBESAVAILABLEREQUEST = _descriptor.Descriptor(
  name='CubesAvailableRequest',
  full_name='Anki.Vector.external_interface.CubesAvailableRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=317,
  serialized_end=340,
)


_CUBESAVAILABLERESPONSE = _descriptor.Descriptor(
  name='CubesAvailableResponse',
  full_name='Anki.Vector.external_interface.CubesAvailableResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='status', full_name='Anki.Vector.external_interface.CubesAvailableResponse.status', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='factory_ids', full_name='Anki.Vector.external_interface.CubesAvailableResponse.factory_ids', index=1,
      number=2, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=342,
  serialized_end=451,
)


_DISCONNECTCUBEREQUEST = _descriptor.Descriptor(
  name='DisconnectCubeRequest',
  full_name='Anki.Vector.external_interface.DisconnectCubeRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=453,
  serialized_end=476,
)


_DISCONNECTCUBERESPONSE = _descriptor.Descriptor(
  name='DisconnectCubeResponse',
  full_name='Anki.Vector.external_interface.DisconnectCubeResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='status', full_name='Anki.Vector.external_interface.DisconnectCubeResponse.status', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=478,
  serialized_end=566,
)


_FLASHCUBELIGHTSREQUEST = _descriptor.Descriptor(
  name='FlashCubeLightsRequest',
  full_name='Anki.Vector.external_interface.FlashCubeLightsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=568,
  serialized_end=592,
)


_FLASHCUBELIGHTSRESPONSE = _descriptor.Descriptor(
  name='FlashCubeLightsResponse',
  full_name='Anki.Vector.external_interface.FlashCubeLightsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='status', full_name='Anki.Vector.external_interface.FlashCubeLightsResponse.status', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=594,
  serialized_end=683,
)


_FORGETPREFERREDCUBEREQUEST = _descriptor.Descriptor(
  name='ForgetPreferredCubeRequest',
  full_name='Anki.Vector.external_interface.ForgetPreferredCubeRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=685,
  serialized_end=713,
)


_FORGETPREFERREDCUBERESPONSE = _descriptor.Descriptor(
  name='ForgetPreferredCubeResponse',
  full_name='Anki.Vector.external_interface.ForgetPreferredCubeResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='status', full_name='Anki.Vector.external_interface.ForgetPreferredCubeResponse.status', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=715,
  serialized_end=808,
)


_SETPREFERREDCUBEREQUEST = _descriptor.Descriptor(
  name='SetPreferredCubeRequest',
  full_name='Anki.Vector.external_interface.SetPreferredCubeRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='factory_id', full_name='Anki.Vector.external_interface.SetPreferredCubeRequest.factory_id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=810,
  serialized_end=855,
)


_SETPREFERREDCUBERESPONSE = _descriptor.Descriptor(
  name='SetPreferredCubeResponse',
  full_name='Anki.Vector.external_interface.SetPreferredCubeResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='status', full_name='Anki.Vector.external_interface.SetPreferredCubeResponse.status', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=857,
  serialized_end=947,
)


_SETCUBELIGHTSREQUEST = _descriptor.Descriptor(
  name='SetCubeLightsRequest',
  full_name='Anki.Vector.external_interface.SetCubeLightsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='object_id', full_name='Anki.Vector.external_interface.SetCubeLightsRequest.object_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='on_color', full_name='Anki.Vector.external_interface.SetCubeLightsRequest.on_color', index=1,
      number=2, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='off_color', full_name='Anki.Vector.external_interface.SetCubeLightsRequest.off_color', index=2,
      number=3, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='on_period_ms', full_name='Anki.Vector.external_interface.SetCubeLightsRequest.on_period_ms', index=3,
      number=4, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='off_period_ms', full_name='Anki.Vector.external_interface.SetCubeLightsRequest.off_period_ms', index=4,
      number=5, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='transition_on_period_ms', full_name='Anki.Vector.external_interface.SetCubeLightsRequest.transition_on_period_ms', index=5,
      number=6, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='transition_off_period_ms', full_name='Anki.Vector.external_interface.SetCubeLightsRequest.transition_off_period_ms', index=6,
      number=7, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='offset', full_name='Anki.Vector.external_interface.SetCubeLightsRequest.offset', index=7,
      number=8, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='relative_to_x', full_name='Anki.Vector.external_interface.SetCubeLightsRequest.relative_to_x', index=8,
      number=9, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='relative_to_y', full_name='Anki.Vector.external_interface.SetCubeLightsRequest.relative_to_y', index=9,
      number=10, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='rotate', full_name='Anki.Vector.external_interface.SetCubeLightsRequest.rotate', index=10,
      number=11, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='make_relative', full_name='Anki.Vector.external_interface.SetCubeLightsRequest.make_relative', index=11,
      number=12, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _SETCUBELIGHTSREQUEST_MAKERELATIVEMODE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=950,
  serialized_end=1382,
)


_SETCUBELIGHTSRESPONSE = _descriptor.Descriptor(
  name='SetCubeLightsResponse',
  full_name='Anki.Vector.external_interface.SetCubeLightsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='status', full_name='Anki.Vector.external_interface.SetCubeLightsResponse.status', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1384,
  serialized_end=1471,
)


_OBJECTAVAILABLE = _descriptor.Descriptor(
  name='ObjectAvailable',
  full_name='Anki.Vector.external_interface.ObjectAvailable',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='factory_id', full_name='Anki.Vector.external_interface.ObjectAvailable.factory_id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1473,
  serialized_end=1510,
)


_OBJECTCONNECTIONSTATE = _descriptor.Descriptor(
  name='ObjectConnectionState',
  full_name='Anki.Vector.external_interface.ObjectConnectionState',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='object_id', full_name='Anki.Vector.external_interface.ObjectConnectionState.object_id', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='factory_id', full_name='Anki.Vector.external_interface.ObjectConnectionState.factory_id', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_type', full_name='Anki.Vector.external_interface.ObjectConnectionState.object_type', index=2,
      number=3, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='connected', full_name='Anki.Vector.external_interface.ObjectConnectionState.connected', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1513,
  serialized_end=1659,
)


_OBJECTMOVED = _descriptor.Descriptor(
  name='ObjectMoved',
  full_name='Anki.Vector.external_interface.ObjectMoved',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='Anki.Vector.external_interface.ObjectMoved.timestamp', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_id', full_name='Anki.Vector.external_interface.ObjectMoved.object_id', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1661,
  serialized_end=1712,
)


_OBJECTSTOPPEDMOVING = _descriptor.Descriptor(
  name='ObjectStoppedMoving',
  full_name='Anki.Vector.external_interface.ObjectStoppedMoving',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='Anki.Vector.external_interface.ObjectStoppedMoving.timestamp', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_id', full_name='Anki.Vector.external_interface.ObjectStoppedMoving.object_id', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1714,
  serialized_end=1773,
)


_OBJECTUPAXISCHANGED = _descriptor.Descriptor(
  name='ObjectUpAxisChanged',
  full_name='Anki.Vector.external_interface.ObjectUpAxisChanged',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='Anki.Vector.external_interface.ObjectUpAxisChanged.timestamp', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_id', full_name='Anki.Vector.external_interface.ObjectUpAxisChanged.object_id', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='up_axis', full_name='Anki.Vector.external_interface.ObjectUpAxisChanged.up_axis', index=2,
      number=3, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1775,
  serialized_end=1891,
)


_OBJECTTAPPED = _descriptor.Descriptor(
  name='ObjectTapped',
  full_name='Anki.Vector.external_interface.ObjectTapped',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='Anki.Vector.external_interface.ObjectTapped.timestamp', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_id', full_name='Anki.Vector.external_interface.ObjectTapped.object_id', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1893,
  serialized_end=1945,
)


_ROBOTOBSERVEDOBJECT = _descriptor.Descriptor(
  name='RobotObservedObject',
  full_name='Anki.Vector.external_interface.RobotObservedObject',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='Anki.Vector.external_interface.RobotObservedObject.timestamp', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_family', full_name='Anki.Vector.external_interface.RobotObservedObject.object_family', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_type', full_name='Anki.Vector.external_interface.RobotObservedObject.object_type', index=2,
      number=3, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_id', full_name='Anki.Vector.external_interface.RobotObservedObject.object_id', index=3,
      number=4, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='img_rect', full_name='Anki.Vector.external_interface.RobotObservedObject.img_rect', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='pose', full_name='Anki.Vector.external_interface.RobotObservedObject.pose', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='top_face_orientation_rad', full_name='Anki.Vector.external_interface.RobotObservedObject.top_face_orientation_rad', index=6,
      number=7, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='is_active', full_name='Anki.Vector.external_interface.RobotObservedObject.is_active', index=7,
      number=8, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1948,
  serialized_end=2316,
)


_CUBECONNECTIONLOST = _descriptor.Descriptor(
  name='CubeConnectionLost',
  full_name='Anki.Vector.external_interface.CubeConnectionLost',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2318,
  serialized_end=2338,
)


_DELETECUSTOMOBJECTSREQUEST = _descriptor.Descriptor(
  name='DeleteCustomObjectsRequest',
  full_name='Anki.Vector.external_interface.DeleteCustomObjectsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='mode', full_name='Anki.Vector.external_interface.DeleteCustomObjectsRequest.mode', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2340,
  serialized_end=2440,
)


_DELETECUSTOMOBJECTSRESPONSE = _descriptor.Descriptor(
  name='DeleteCustomObjectsResponse',
  full_name='Anki.Vector.external_interface.DeleteCustomObjectsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='status', full_name='Anki.Vector.external_interface.DeleteCustomObjectsResponse.status', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2442,
  serialized_end=2535,
)


_CREATEFIXEDCUSTOMOBJECTREQUEST = _descriptor.Descriptor(
  name='CreateFixedCustomObjectRequest',
  full_name='Anki.Vector.external_interface.CreateFixedCustomObjectRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pose', full_name='Anki.Vector.external_interface.CreateFixedCustomObjectRequest.pose', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='x_size_mm', full_name='Anki.Vector.external_interface.CreateFixedCustomObjectRequest.x_size_mm', index=1,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='y_size_mm', full_name='Anki.Vector.external_interface.CreateFixedCustomObjectRequest.y_size_mm', index=2,
      number=3, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='z_size_mm', full_name='Anki.Vector.external_interface.CreateFixedCustomObjectRequest.z_size_mm', index=3,
      number=4, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2538,
  serialized_end=2685,
)


_CREATEFIXEDCUSTOMOBJECTRESPONSE = _descriptor.Descriptor(
  name='CreateFixedCustomObjectResponse',
  full_name='Anki.Vector.external_interface.CreateFixedCustomObjectResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='status', full_name='Anki.Vector.external_interface.CreateFixedCustomObjectResponse.status', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_id', full_name='Anki.Vector.external_interface.CreateFixedCustomObjectResponse.object_id', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2687,
  serialized_end=2803,
)


_CUSTOMBOXDEFINITION = _descriptor.Descriptor(
  name='CustomBoxDefinition',
  full_name='Anki.Vector.external_interface.CustomBoxDefinition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='marker_front', full_name='Anki.Vector.external_interface.CustomBoxDefinition.marker_front', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='marker_back', full_name='Anki.Vector.external_interface.CustomBoxDefinition.marker_back', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='marker_top', full_name='Anki.Vector.external_interface.CustomBoxDefinition.marker_top', index=2,
      number=3, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='marker_bottom', full_name='Anki.Vector.external_interface.CustomBoxDefinition.marker_bottom', index=3,
      number=4, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='marker_left', full_name='Anki.Vector.external_interface.CustomBoxDefinition.marker_left', index=4,
      number=5, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='marker_right', full_name='Anki.Vector.external_interface.CustomBoxDefinition.marker_right', index=5,
      number=6, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='x_size_mm', full_name='Anki.Vector.external_interface.CustomBoxDefinition.x_size_mm', index=6,
      number=7, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='y_size_mm', full_name='Anki.Vector.external_interface.CustomBoxDefinition.y_size_mm', index=7,
      number=8, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='z_size_mm', full_name='Anki.Vector.external_interface.CustomBoxDefinition.z_size_mm', index=8,
      number=9, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='marker_width_mm', full_name='Anki.Vector.external_interface.CustomBoxDefinition.marker_width_mm', index=9,
      number=10, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='marker_height_mm', full_name='Anki.Vector.external_interface.CustomBoxDefinition.marker_height_mm', index=10,
      number=11, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2806,
  serialized_end=3376,
)


_CUSTOMCUBEDEFINITION = _descriptor.Descriptor(
  name='CustomCubeDefinition',
  full_name='Anki.Vector.external_interface.CustomCubeDefinition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='marker', full_name='Anki.Vector.external_interface.CustomCubeDefinition.marker', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='size_mm', full_name='Anki.Vector.external_interface.CustomCubeDefinition.size_mm', index=1,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='marker_width_mm', full_name='Anki.Vector.external_interface.CustomCubeDefinition.marker_width_mm', index=2,
      number=3, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='marker_height_mm', full_name='Anki.Vector.external_interface.CustomCubeDefinition.marker_height_mm', index=3,
      number=4, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3379,
  serialized_end=3537,
)


_CUSTOMWALLDEFINITION = _descriptor.Descriptor(
  name='CustomWallDefinition',
  full_name='Anki.Vector.external_interface.CustomWallDefinition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='marker', full_name='Anki.Vector.external_interface.CustomWallDefinition.marker', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='width_mm', full_name='Anki.Vector.external_interface.CustomWallDefinition.width_mm', index=1,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='height_mm', full_name='Anki.Vector.external_interface.CustomWallDefinition.height_mm', index=2,
      number=3, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='marker_width_mm', full_name='Anki.Vector.external_interface.CustomWallDefinition.marker_width_mm', index=3,
      number=4, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='marker_height_mm', full_name='Anki.Vector.external_interface.CustomWallDefinition.marker_height_mm', index=4,
      number=5, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3540,
  serialized_end=3718,
)


_DEFINECUSTOMOBJECTREQUEST = _descriptor.Descriptor(
  name='DefineCustomObjectRequest',
  full_name='Anki.Vector.external_interface.DefineCustomObjectRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='custom_type', full_name='Anki.Vector.external_interface.DefineCustomObjectRequest.custom_type', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='is_unique', full_name='Anki.Vector.external_interface.DefineCustomObjectRequest.is_unique', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='custom_box', full_name='Anki.Vector.external_interface.DefineCustomObjectRequest.custom_box', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='custom_cube', full_name='Anki.Vector.external_interface.DefineCustomObjectRequest.custom_cube', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='custom_wall', full_name='Anki.Vector.external_interface.DefineCustomObjectRequest.custom_wall', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='custom_object_definition', full_name='Anki.Vector.external_interface.DefineCustomObjectRequest.custom_object_definition',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=3721,
  serialized_end=4089,
)


_DEFINECUSTOMOBJECTRESPONSE = _descriptor.Descriptor(
  name='DefineCustomObjectResponse',
  full_name='Anki.Vector.external_interface.DefineCustomObjectResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='status', full_name='Anki.Vector.external_interface.DefineCustomObjectResponse.status', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='success', full_name='Anki.Vector.external_interface.DefineCustomObjectResponse.success', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4091,
  serialized_end=4200,
)


_OBJECTEVENT = _descriptor.Descriptor(
  name='ObjectEvent',
  full_name='Anki.Vector.external_interface.ObjectEvent',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='object_available', full_name='Anki.Vector.external_interface.ObjectEvent.object_available', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_connection_state', full_name='Anki.Vector.external_interface.ObjectEvent.object_connection_state', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_moved', full_name='Anki.Vector.external_interface.ObjectEvent.object_moved', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_stopped_moving', full_name='Anki.Vector.external_interface.ObjectEvent.object_stopped_moving', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_up_axis_changed', full_name='Anki.Vector.external_interface.ObjectEvent.object_up_axis_changed', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='object_tapped', full_name='Anki.Vector.external_interface.ObjectEvent.object_tapped', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='robot_observed_object', full_name='Anki.Vector.external_interface.ObjectEvent.robot_observed_object', index=6,
      number=7, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='cube_connection_lost', full_name='Anki.Vector.external_interface.ObjectEvent.cube_connection_lost', index=7,
      number=8, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='object_event_type', full_name='Anki.Vector.external_interface.ObjectEvent.object_event_type',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=4203,
  serialized_end=4887,
)

_CONNECTCUBERESPONSE.fields_by_name['status'].message_type = anki__vector_dot_messaging_dot_response__status__pb2._RESPONSESTATUS
_CUBESAVAILABLERESPONSE.fields_by_name['status'].message_type = anki__vector_dot_messaging_dot_response__status__pb2._RESPONSESTATUS
_DISCONNECTCUBERESPONSE.fields_by_name['status'].message_type = anki__vector_dot_messaging_dot_response__status__pb2._RESPONSESTATUS
_FLASHCUBELIGHTSRESPONSE.fields_by_name['status'].message_type = anki__vector_dot_messaging_dot_response__status__pb2._RESPONSESTATUS
_FORGETPREFERREDCUBERESPONSE.fields_by_name['status'].message_type = anki__vector_dot_messaging_dot_response__status__pb2._RESPONSESTATUS
_SETPREFERREDCUBERESPONSE.fields_by_name['status'].message_type = anki__vector_dot_messaging_dot_response__status__pb2._RESPONSESTATUS
_SETCUBELIGHTSREQUEST.fields_by_name['make_relative'].enum_type = _SETCUBELIGHTSREQUEST_MAKERELATIVEMODE
_SETCUBELIGHTSREQUEST_MAKERELATIVEMODE.containing_type = _SETCUBELIGHTSREQUEST
_SETCUBELIGHTSRESPONSE.fields_by_name['status'].message_type = anki__vector_dot_messaging_dot_response__status__pb2._RESPONSESTATUS
_OBJECTCONNECTIONSTATE.fields_by_name['object_type'].enum_type = _OBJECTTYPE
_OBJECTUPAXISCHANGED.fields_by_name['up_axis'].enum_type = _UPAXIS
_ROBOTOBSERVEDOBJECT.fields_by_name['object_family'].enum_type = _OBJECTFAMILY
_ROBOTOBSERVEDOBJECT.fields_by_name['object_type'].enum_type = _OBJECTTYPE
_ROBOTOBSERVEDOBJECT.fields_by_name['img_rect'].message_type = anki__vector_dot_messaging_dot_messages__pb2._CLADRECT
_ROBOTOBSERVEDOBJECT.fields_by_name['pose'].message_type = anki__vector_dot_messaging_dot_messages__pb2._POSESTRUCT
_DELETECUSTOMOBJECTSREQUEST.fields_by_name['mode'].enum_type = _CUSTOMOBJECTDELETIONMODE
_DELETECUSTOMOBJECTSRESPONSE.fields_by_name['status'].message_type = anki__vector_dot_messaging_dot_response__status__pb2._RESPONSESTATUS
_CREATEFIXEDCUSTOMOBJECTREQUEST.fields_by_name['pose'].message_type = anki__vector_dot_messaging_dot_messages__pb2._POSESTRUCT
_CREATEFIXEDCUSTOMOBJECTRESPONSE.fields_by_name['status'].message_type = anki__vector_dot_messaging_dot_response__status__pb2._RESPONSESTATUS
_CUSTOMBOXDEFINITION.fields_by_name['marker_front'].enum_type = _CUSTOMOBJECTMARKER
_CUSTOMBOXDEFINITION.fields_by_name['marker_back'].enum_type = _CUSTOMOBJECTMARKER
_CUSTOMBOXDEFINITION.fields_by_name['marker_top'].enum_type = _CUSTOMOBJECTMARKER
_CUSTOMBOXDEFINITION.fields_by_name['marker_bottom'].enum_type = _CUSTOMOBJECTMARKER
_CUSTOMBOXDEFINITION.fields_by_name['marker_left'].enum_type = _CUSTOMOBJECTMARKER
_CUSTOMBOXDEFINITION.fields_by_name['marker_right'].enum_type = _CUSTOMOBJECTMARKER
_CUSTOMCUBEDEFINITION.fields_by_name['marker'].enum_type = _CUSTOMOBJECTMARKER
_CUSTOMWALLDEFINITION.fields_by_name['marker'].enum_type = _CUSTOMOBJECTMARKER
_DEFINECUSTOMOBJECTREQUEST.fields_by_name['custom_type'].enum_type = _CUSTOMTYPE
_DEFINECUSTOMOBJECTREQUEST.fields_by_name['custom_box'].message_type = _CUSTOMBOXDEFINITION
_DEFINECUSTOMOBJECTREQUEST.fields_by_name['custom_cube'].message_type = _CUSTOMCUBEDEFINITION
_DEFINECUSTOMOBJECTREQUEST.fields_by_name['custom_wall'].message_type = _CUSTOMWALLDEFINITION
_DEFINECUSTOMOBJECTREQUEST.oneofs_by_name['custom_object_definition'].fields.append(
  _DEFINECUSTOMOBJECTREQUEST.fields_by_name['custom_box'])
_DEFINECUSTOMOBJECTREQUEST.fields_by_name['custom_box'].containing_oneof = _DEFINECUSTOMOBJECTREQUEST.oneofs_by_name['custom_object_definition']
_DEFINECUSTOMOBJECTREQUEST.oneofs_by_name['custom_object_definition'].fields.append(
  _DEFINECUSTOMOBJECTREQUEST.fields_by_name['custom_cube'])
_DEFINECUSTOMOBJECTREQUEST.fields_by_name['custom_cube'].containing_oneof = _DEFINECUSTOMOBJECTREQUEST.oneofs_by_name['custom_object_definition']
_DEFINECUSTOMOBJECTREQUEST.oneofs_by_name['custom_object_definition'].fields.append(
  _DEFINECUSTOMOBJECTREQUEST.fields_by_name['custom_wall'])
_DEFINECUSTOMOBJECTREQUEST.fields_by_name['custom_wall'].containing_oneof = _DEFINECUSTOMOBJECTREQUEST.oneofs_by_name['custom_object_definition']
_DEFINECUSTOMOBJECTRESPONSE.fields_by_name['status'].message_type = anki__vector_dot_messaging_dot_response__status__pb2._RESPONSESTATUS
_OBJECTEVENT.fields_by_name['object_available'].message_type = _OBJECTAVAILABLE
_OBJECTEVENT.fields_by_name['object_connection_state'].message_type = _OBJECTCONNECTIONSTATE
_OBJECTEVENT.fields_by_name['object_moved'].message_type = _OBJECTMOVED
_OBJECTEVENT.fields_by_name['object_stopped_moving'].message_type = _OBJECTSTOPPEDMOVING
_OBJECTEVENT.fields_by_name['object_up_axis_changed'].message_type = _OBJECTUPAXISCHANGED
_OBJECTEVENT.fields_by_name['object_tapped'].message_type = _OBJECTTAPPED
_OBJECTEVENT.fields_by_name['robot_observed_object'].message_type = _ROBOTOBSERVEDOBJECT
_OBJECTEVENT.fields_by_name['cube_connection_lost'].message_type = _CUBECONNECTIONLOST
_OBJECTEVENT.oneofs_by_name['object_event_type'].fields.append(
  _OBJECTEVENT.fields_by_name['object_available'])
_OBJECTEVENT.fields_by_name['object_available'].containing_oneof = _OBJECTEVENT.oneofs_by_name['object_event_type']
_OBJECTEVENT.oneofs_by_name['object_event_type'].fields.append(
  _OBJECTEVENT.fields_by_name['object_connection_state'])
_OBJECTEVENT.fields_by_name['object_connection_state'].containing_oneof = _OBJECTEVENT.oneofs_by_name['object_event_type']
_OBJECTEVENT.oneofs_by_name['object_event_type'].fields.append(
  _OBJECTEVENT.fields_by_name['object_moved'])
_OBJECTEVENT.fields_by_name['object_moved'].containing_oneof = _OBJECTEVENT.oneofs_by_name['object_event_type']
_OBJECTEVENT.oneofs_by_name['object_event_type'].fields.append(
  _OBJECTEVENT.fields_by_name['object_stopped_moving'])
_OBJECTEVENT.fields_by_name['object_stopped_moving'].containing_oneof = _OBJECTEVENT.oneofs_by_name['object_event_type']
_OBJECTEVENT.oneofs_by_name['object_event_type'].fields.append(
  _OBJECTEVENT.fields_by_name['object_up_axis_changed'])
_OBJECTEVENT.fields_by_name['object_up_axis_changed'].containing_oneof = _OBJECTEVENT.oneofs_by_name['object_event_type']
_OBJECTEVENT.oneofs_by_name['object_event_type'].fields.append(
  _OBJECTEVENT.fields_by_name['object_tapped'])
_OBJECTEVENT.fields_by_name['object_tapped'].containing_oneof = _OBJECTEVENT.oneofs_by_name['object_event_type']
_OBJECTEVENT.oneofs_by_name['object_event_type'].fields.append(
  _OBJECTEVENT.fields_by_name['robot_observed_object'])
_OBJECTEVENT.fields_by_name['robot_observed_object'].containing_oneof = _OBJECTEVENT.oneofs_by_name['object_event_type']
_OBJECTEVENT.oneofs_by_name['object_event_type'].fields.append(
  _OBJECTEVENT.fields_by_name['cube_connection_lost'])
_OBJECTEVENT.fields_by_name['cube_connection_lost'].containing_oneof = _OBJECTEVENT.oneofs_by_name['object_event_type']
DESCRIPTOR.message_types_by_name['ConnectCubeRequest'] = _CONNECTCUBEREQUEST
DESCRIPTOR.message_types_by_name['ConnectCubeResponse'] = _CONNECTCUBERESPONSE
DESCRIPTOR.message_types_by_name['CubesAvailableRequest'] = _CUBESAVAILABLEREQUEST
DESCRIPTOR.message_types_by_name['CubesAvailableResponse'] = _CUBESAVAILABLERESPONSE
DESCRIPTOR.message_types_by_name['DisconnectCubeRequest'] = _DISCONNECTCUBEREQUEST
DESCRIPTOR.message_types_by_name['DisconnectCubeResponse'] = _DISCONNECTCUBERESPONSE
DESCRIPTOR.message_types_by_name['FlashCubeLightsRequest'] = _FLASHCUBELIGHTSREQUEST
DESCRIPTOR.message_types_by_name['FlashCubeLightsResponse'] = _FLASHCUBELIGHTSRESPONSE
DESCRIPTOR.message_types_by_name['ForgetPreferredCubeRequest'] = _FORGETPREFERREDCUBEREQUEST
DESCRIPTOR.message_types_by_name['ForgetPreferredCubeResponse'] = _FORGETPREFERREDCUBERESPONSE
DESCRIPTOR.message_types_by_name['SetPreferredCubeRequest'] = _SETPREFERREDCUBEREQUEST
DESCRIPTOR.message_types_by_name['SetPreferredCubeResponse'] = _SETPREFERREDCUBERESPONSE
DESCRIPTOR.message_types_by_name['SetCubeLightsRequest'] = _SETCUBELIGHTSREQUEST
DESCRIPTOR.message_types_by_name['SetCubeLightsResponse'] = _SETCUBELIGHTSRESPONSE
DESCRIPTOR.message_types_by_name['ObjectAvailable'] = _OBJECTAVAILABLE
DESCRIPTOR.message_types_by_name['ObjectConnectionState'] = _OBJECTCONNECTIONSTATE
DESCRIPTOR.message_types_by_name['ObjectMoved'] = _OBJECTMOVED
DESCRIPTOR.message_types_by_name['ObjectStoppedMoving'] = _OBJECTSTOPPEDMOVING
DESCRIPTOR.message_types_by_name['ObjectUpAxisChanged'] = _OBJECTUPAXISCHANGED
DESCRIPTOR.message_types_by_name['ObjectTapped'] = _OBJECTTAPPED
DESCRIPTOR.message_types_by_name['RobotObservedObject'] = _ROBOTOBSERVEDOBJECT
DESCRIPTOR.message_types_by_name['CubeConnectionLost'] = _CUBECONNECTIONLOST
DESCRIPTOR.message_types_by_name['DeleteCustomObjectsRequest'] = _DELETECUSTOMOBJECTSREQUEST
DESCRIPTOR.message_types_by_name['DeleteCustomObjectsResponse'] = _DELETECUSTOMOBJECTSRESPONSE
DESCRIPTOR.message_types_by_name['CreateFixedCustomObjectRequest'] = _CREATEFIXEDCUSTOMOBJECTREQUEST
DESCRIPTOR.message_types_by_name['CreateFixedCustomObjectResponse'] = _CREATEFIXEDCUSTOMOBJECTRESPONSE
DESCRIPTOR.message_types_by_name['CustomBoxDefinition'] = _CUSTOMBOXDEFINITION
DESCRIPTOR.message_types_by_name['CustomCubeDefinition'] = _CUSTOMCUBEDEFINITION
DESCRIPTOR.message_types_by_name['CustomWallDefinition'] = _CUSTOMWALLDEFINITION
DESCRIPTOR.message_types_by_name['DefineCustomObjectRequest'] = _DEFINECUSTOMOBJECTREQUEST
DESCRIPTOR.message_types_by_name['DefineCustomObjectResponse'] = _DEFINECUSTOMOBJECTRESPONSE
DESCRIPTOR.message_types_by_name['ObjectEvent'] = _OBJECTEVENT
DESCRIPTOR.enum_types_by_name['ObjectType'] = _OBJECTTYPE
DESCRIPTOR.enum_types_by_name['CustomType'] = _CUSTOMTYPE
DESCRIPTOR.enum_types_by_name['ObjectFamily'] = _OBJECTFAMILY
DESCRIPTOR.enum_types_by_name['UpAxis'] = _UPAXIS
DESCRIPTOR.enum_types_by_name['ObjectConstants'] = _OBJECTCONSTANTS
DESCRIPTOR.enum_types_by_name['CustomObjectMarker'] = _CUSTOMOBJECTMARKER
DESCRIPTOR.enum_types_by_name['CustomObjectDeletionMode'] = _CUSTOMOBJECTDELETIONMODE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

ConnectCubeRequest = _reflection.GeneratedProtocolMessageType('ConnectCubeRequest', (_message.Message,), dict(
  DESCRIPTOR = _CONNECTCUBEREQUEST,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ConnectCubeRequest)
  ))
_sym_db.RegisterMessage(ConnectCubeRequest)

ConnectCubeResponse = _reflection.GeneratedProtocolMessageType('ConnectCubeResponse', (_message.Message,), dict(
  DESCRIPTOR = _CONNECTCUBERESPONSE,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ConnectCubeResponse)
  ))
_sym_db.RegisterMessage(ConnectCubeResponse)

CubesAvailableRequest = _reflection.GeneratedProtocolMessageType('CubesAvailableRequest', (_message.Message,), dict(
  DESCRIPTOR = _CUBESAVAILABLEREQUEST,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CubesAvailableRequest)
  ))
_sym_db.RegisterMessage(CubesAvailableRequest)

CubesAvailableResponse = _reflection.GeneratedProtocolMessageType('CubesAvailableResponse', (_message.Message,), dict(
  DESCRIPTOR = _CUBESAVAILABLERESPONSE,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CubesAvailableResponse)
  ))
_sym_db.RegisterMessage(CubesAvailableResponse)

DisconnectCubeRequest = _reflection.GeneratedProtocolMessageType('DisconnectCubeRequest', (_message.Message,), dict(
  DESCRIPTOR = _DISCONNECTCUBEREQUEST,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DisconnectCubeRequest)
  ))
_sym_db.RegisterMessage(DisconnectCubeRequest)

DisconnectCubeResponse = _reflection.GeneratedProtocolMessageType('DisconnectCubeResponse', (_message.Message,), dict(
  DESCRIPTOR = _DISCONNECTCUBERESPONSE,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DisconnectCubeResponse)
  ))
_sym_db.RegisterMessage(DisconnectCubeResponse)

FlashCubeLightsRequest = _reflection.GeneratedProtocolMessageType('FlashCubeLightsRequest', (_message.Message,), dict(
  DESCRIPTOR = _FLASHCUBELIGHTSREQUEST,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.FlashCubeLightsRequest)
  ))
_sym_db.RegisterMessage(FlashCubeLightsRequest)

FlashCubeLightsResponse = _reflection.GeneratedProtocolMessageType('FlashCubeLightsResponse', (_message.Message,), dict(
  DESCRIPTOR = _FLASHCUBELIGHTSRESPONSE,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.FlashCubeLightsResponse)
  ))
_sym_db.RegisterMessage(FlashCubeLightsResponse)

ForgetPreferredCubeRequest = _reflection.GeneratedProtocolMessageType('ForgetPreferredCubeRequest', (_message.Message,), dict(
  DESCRIPTOR = _FORGETPREFERREDCUBEREQUEST,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ForgetPreferredCubeRequest)
  ))
_sym_db.RegisterMessage(ForgetPreferredCubeRequest)

ForgetPreferredCubeResponse = _reflection.GeneratedProtocolMessageType('ForgetPreferredCubeResponse', (_message.Message,), dict(
  DESCRIPTOR = _FORGETPREFERREDCUBERESPONSE,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ForgetPreferredCubeResponse)
  ))
_sym_db.RegisterMessage(ForgetPreferredCubeResponse)

SetPreferredCubeRequest = _reflection.GeneratedProtocolMessageType('SetPreferredCubeRequest', (_message.Message,), dict(
  DESCRIPTOR = _SETPREFERREDCUBEREQUEST,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SetPreferredCubeRequest)
  ))
_sym_db.RegisterMessage(SetPreferredCubeRequest)

SetPreferredCubeResponse = _reflection.GeneratedProtocolMessageType('SetPreferredCubeResponse', (_message.Message,), dict(
  DESCRIPTOR = _SETPREFERREDCUBERESPONSE,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SetPreferredCubeResponse)
  ))
_sym_db.RegisterMessage(SetPreferredCubeResponse)

SetCubeLightsRequest = _reflection.GeneratedProtocolMessageType('SetCubeLightsRequest', (_message.Message,), dict(
  DESCRIPTOR = _SETCUBELIGHTSREQUEST,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SetCubeLightsRequest)
  ))
_sym_db.RegisterMessage(SetCubeLightsRequest)

SetCubeLightsResponse = _reflection.GeneratedProtocolMessageType('SetCubeLightsResponse', (_message.Message,), dict(
  DESCRIPTOR = _SETCUBELIGHTSRESPONSE,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.SetCubeLightsResponse)
  ))
_sym_db.RegisterMessage(SetCubeLightsResponse)

ObjectAvailable = _reflection.GeneratedProtocolMessageType('ObjectAvailable', (_message.Message,), dict(
  DESCRIPTOR = _OBJECTAVAILABLE,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ObjectAvailable)
  ))
_sym_db.RegisterMessage(ObjectAvailable)

ObjectConnectionState = _reflection.GeneratedProtocolMessageType('ObjectConnectionState', (_message.Message,), dict(
  DESCRIPTOR = _OBJECTCONNECTIONSTATE,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ObjectConnectionState)
  ))
_sym_db.RegisterMessage(ObjectConnectionState)

ObjectMoved = _reflection.GeneratedProtocolMessageType('ObjectMoved', (_message.Message,), dict(
  DESCRIPTOR = _OBJECTMOVED,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ObjectMoved)
  ))
_sym_db.RegisterMessage(ObjectMoved)

ObjectStoppedMoving = _reflection.GeneratedProtocolMessageType('ObjectStoppedMoving', (_message.Message,), dict(
  DESCRIPTOR = _OBJECTSTOPPEDMOVING,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ObjectStoppedMoving)
  ))
_sym_db.RegisterMessage(ObjectStoppedMoving)

ObjectUpAxisChanged = _reflection.GeneratedProtocolMessageType('ObjectUpAxisChanged', (_message.Message,), dict(
  DESCRIPTOR = _OBJECTUPAXISCHANGED,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ObjectUpAxisChanged)
  ))
_sym_db.RegisterMessage(ObjectUpAxisChanged)

ObjectTapped = _reflection.GeneratedProtocolMessageType('ObjectTapped', (_message.Message,), dict(
  DESCRIPTOR = _OBJECTTAPPED,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ObjectTapped)
  ))
_sym_db.RegisterMessage(ObjectTapped)

RobotObservedObject = _reflection.GeneratedProtocolMessageType('RobotObservedObject', (_message.Message,), dict(
  DESCRIPTOR = _ROBOTOBSERVEDOBJECT,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.RobotObservedObject)
  ))
_sym_db.RegisterMessage(RobotObservedObject)

CubeConnectionLost = _reflection.GeneratedProtocolMessageType('CubeConnectionLost', (_message.Message,), dict(
  DESCRIPTOR = _CUBECONNECTIONLOST,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CubeConnectionLost)
  ))
_sym_db.RegisterMessage(CubeConnectionLost)

DeleteCustomObjectsRequest = _reflection.GeneratedProtocolMessageType('DeleteCustomObjectsRequest', (_message.Message,), dict(
  DESCRIPTOR = _DELETECUSTOMOBJECTSREQUEST,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DeleteCustomObjectsRequest)
  ))
_sym_db.RegisterMessage(DeleteCustomObjectsRequest)

DeleteCustomObjectsResponse = _reflection.GeneratedProtocolMessageType('DeleteCustomObjectsResponse', (_message.Message,), dict(
  DESCRIPTOR = _DELETECUSTOMOBJECTSRESPONSE,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DeleteCustomObjectsResponse)
  ))
_sym_db.RegisterMessage(DeleteCustomObjectsResponse)

CreateFixedCustomObjectRequest = _reflection.GeneratedProtocolMessageType('CreateFixedCustomObjectRequest', (_message.Message,), dict(
  DESCRIPTOR = _CREATEFIXEDCUSTOMOBJECTREQUEST,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CreateFixedCustomObjectRequest)
  ))
_sym_db.RegisterMessage(CreateFixedCustomObjectRequest)

CreateFixedCustomObjectResponse = _reflection.GeneratedProtocolMessageType('CreateFixedCustomObjectResponse', (_message.Message,), dict(
  DESCRIPTOR = _CREATEFIXEDCUSTOMOBJECTRESPONSE,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CreateFixedCustomObjectResponse)
  ))
_sym_db.RegisterMessage(CreateFixedCustomObjectResponse)

CustomBoxDefinition = _reflection.GeneratedProtocolMessageType('CustomBoxDefinition', (_message.Message,), dict(
  DESCRIPTOR = _CUSTOMBOXDEFINITION,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CustomBoxDefinition)
  ))
_sym_db.RegisterMessage(CustomBoxDefinition)

CustomCubeDefinition = _reflection.GeneratedProtocolMessageType('CustomCubeDefinition', (_message.Message,), dict(
  DESCRIPTOR = _CUSTOMCUBEDEFINITION,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CustomCubeDefinition)
  ))
_sym_db.RegisterMessage(CustomCubeDefinition)

CustomWallDefinition = _reflection.GeneratedProtocolMessageType('CustomWallDefinition', (_message.Message,), dict(
  DESCRIPTOR = _CUSTOMWALLDEFINITION,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.CustomWallDefinition)
  ))
_sym_db.RegisterMessage(CustomWallDefinition)

DefineCustomObjectRequest = _reflection.GeneratedProtocolMessageType('DefineCustomObjectRequest', (_message.Message,), dict(
  DESCRIPTOR = _DEFINECUSTOMOBJECTREQUEST,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DefineCustomObjectRequest)
  ))
_sym_db.RegisterMessage(DefineCustomObjectRequest)

DefineCustomObjectResponse = _reflection.GeneratedProtocolMessageType('DefineCustomObjectResponse', (_message.Message,), dict(
  DESCRIPTOR = _DEFINECUSTOMOBJECTRESPONSE,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.DefineCustomObjectResponse)
  ))
_sym_db.RegisterMessage(DefineCustomObjectResponse)

ObjectEvent = _reflection.GeneratedProtocolMessageType('ObjectEvent', (_message.Message,), dict(
  DESCRIPTOR = _OBJECTEVENT,
  __module__ = 'anki_vector.messaging.cube_pb2'
  # @@protoc_insertion_point(class_scope:Anki.Vector.external_interface.ObjectEvent)
  ))
_sym_db.RegisterMessage(ObjectEvent)


_CUSTOMTYPE.has_options = True
_CUSTOMTYPE._options = _descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\020\001'))
_OBJECTFAMILY.has_options = True
_OBJECTFAMILY._options = _descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\020\001'))
_CUSTOMOBJECTMARKER.has_options = True
_CUSTOMOBJECTMARKER._options = _descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\020\001'))
_ROBOTOBSERVEDOBJECT.fields_by_name['object_family'].has_options = True
_ROBOTOBSERVEDOBJECT.fields_by_name['object_family']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001'))
# @@protoc_insertion_point(module_scope)
