# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: service.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
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
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='service.proto',
  package='co.treelab.api',
  syntax='proto3',
  serialized_options=None,
  serialized_pb=_b('\n\rservice.proto\x12\x0e\x63o.treelab.api\"\x0c\n\nEmptyInput\"G\n\x10WorkspacesResult\x12\x33\n\x06result\x18\x01 \x03(\x0b\x32#.co.treelab.api.WorkspaceProjection\"=\n\x0b\x43oresResult\x12.\n\x06result\x18\x01 \x03(\x0b\x32\x1e.co.treelab.api.CoreProjection\"?\n\x0cTablesResult\x12/\n\x06result\x18\x01 \x03(\x0b\x32\x1f.co.treelab.api.TableProjection\"T\n\x0fTableProjection\x12\n\n\x02id\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\'\n\x05views\x18\x05 \x03(\x0b\x32\x18.co.treelab.api.ViewData\"2\n\tTableData\x12%\n\x04rows\x18\x01 \x03(\x0b\x32\x17.co.treelab.api.RowData\"M\n\x07RowData\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05order\x18\x02 \x01(\x05\x12\'\n\x05\x63\x65lls\x18\x03 \x03(\x0b\x32\x18.co.treelab.api.CellData\"\xd1\x01\n\x08\x43\x65llData\x12\x10\n\x08\x63olumnId\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0c\n\x04text\x18\x03 \x01(\t\x12\x33\n\nforeignRow\x18\x04 \x03(\x0b\x32\x1f.co.treelab.api.ForeignRowValue\x12\x0e\n\x06number\x18\x05 \x01(\x02\x12\x14\n\x0cselectedItem\x18\x06 \x01(\t\x12\x15\n\rselectedItems\x18\x07 \x01(\t\x12\x13\n\x0b\x61ttachments\x18\x08 \x01(\t\x12\x10\n\x08\x64\x61teTime\x18\t \x01(\t\"\x8c\x01\n\x08ViewData\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12%\n\x04rows\x18\x04 \x03(\x0b\x32\x17.co.treelab.api.RowData\x12\x31\n\x07\x63olumns\x18\x05 \x03(\x0b\x32 .co.treelab.api.ColumnDefinition\"\xfd\x01\n\x10\x43olumnDefinition\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\r\n\x05order\x18\x04 \x01(\x05\x12\x12\n\nvisibility\x18\x05 \x01(\x08\x12\x16\n\x0e\x66oreignTableId\x18\x06 \x01(\t\x12\x15\n\rdefaultNumber\x18\x07 \x01(\x02\x12\x11\n\tprecision\x18\x08 \x01(\x05\x12\x0f\n\x07\x63hoices\x18\t \x01(\t\x12\x12\n\ndateFormat\x18\n \x01(\t\x12\x13\n\x0bincludeTime\x18\x0b \x01(\x08\x12\x12\n\ntimeFormat\x18\x0c \x01(\t\x12\x0e\n\x06useGMT\x18\r \x01(\x08\"1\n\x06\x43hoice\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05\x63olor\x18\x03 \x01(\t\"/\n\x13WorkspaceProjection\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"G\n\x0e\x43oreProjection\x12\n\n\x02id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\r\n\x05\x63olor\x18\x04 \x01(\t\x12\x0c\n\x04icon\x18\x05 \x01(\t\"+\n\x1a\x46oreignRowVisibleNameValue\x12\r\n\x05value\x18\x01 \x01(\t\"^\n\x0f\x46oreignRowValue\x12\n\n\x02id\x18\x01 \x01(\t\x12?\n\x0bvisibleName\x18\x02 \x03(\x0b\x32*.co.treelab.api.ForeignRowVisibleNameValue\"\'\n\nAttachment\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\"9\n\x0c\x43olumnConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\r\n\x05order\x18\x03 \x01(\x05\"8\n\x0eViewDefinition\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\"\x1f\n\rEventMetadata\x12\x0e\n\x06source\x18\x01 \x01(\t\"\x85\x03\n\x0c\x45ventPayload\x12\x11\n\teventName\x18\x01 \x01(\t\x12\x13\n\x0bworkspaceId\x18\x02 \x01(\t\x12\x0e\n\x06\x63oreId\x18\x03 \x01(\t\x12\x0f\n\x07tableId\x18\x04 \x01(\t\x12\x10\n\x08\x63olumnId\x18\x05 \x01(\t\x12\r\n\x05rowId\x18\x06 \x01(\t\x12\x10\n\x08\x63oreName\x18\x07 \x01(\t\x12\r\n\x05\x63olor\x18\x08 \x01(\t\x12\x0c\n\x04icon\x18\t \x01(\t\x12\x11\n\ttableName\x18\n \x01(\t\x12\x32\n\x0c\x63olumnConfig\x18\x0b \x01(\x0b\x32\x1c.co.treelab.api.ColumnConfig\x12,\n\x04view\x18\x0c \x01(\x0b\x32\x1e.co.treelab.api.ViewDefinition\x12\x35\n\x06\x61\x63tion\x18\r \x01(\x0b\x32%.co.treelab.api.UpdateCellActionInput\x12\x30\n\t_metadata\x18\x0e \x01(\x0b\x32\x1d.co.treelab.api.EventMetadata\"@\n\x1aWorkspaceSubscriptionInput\x12\x13\n\x0bworkspaceId\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\"1\n\x13ViewDefinitionInput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\"w\n\x0c\x41\x64\x64ViewInput\x12\x13\n\x0bworkspaceId\x18\x01 \x01(\t\x12\x0e\n\x06\x63oreId\x18\x02 \x01(\t\x12\x0f\n\x07tableId\x18\x03 \x01(\t\x12\x31\n\x04view\x18\x04 \x01(\x0b\x32#.co.treelab.api.ViewDefinitionInput\"\x7f\n\x0e\x41\x64\x64\x43olumnInput\x12\x13\n\x0bworkspaceId\x18\x01 \x01(\t\x12\x0e\n\x06\x63oreId\x18\x02 \x01(\t\x12\x0f\n\x07tableId\x18\x03 \x01(\t\x12\x37\n\x0c\x63olumnConfig\x18\x04 \x01(\x0b\x32!.co.treelab.api.ColumnConfigInput\"\xf6\x01\n\x11\x43olumnConfigInput\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05order\x18\x03 \x01(\x05\x12\x16\n\x0e\x66oreignTableId\x18\x04 \x01(\t\x12\x15\n\rdefaultNumber\x18\x05 \x01(\x02\x12\x11\n\tprecision\x18\x06 \x01(\x05\x12\'\n\x07\x63hoices\x18\t \x03(\x0b\x32\x16.co.treelab.api.Choice\x12\x12\n\ndateFormat\x18\n \x01(\t\x12\x13\n\x0bincludeTime\x18\x0b \x01(\x08\x12\x12\n\ntimeFormat\x18\x0c \x01(\t\x12\x0e\n\x06useGMT\x18\r \x01(\x08\"C\n\x0b\x41\x64\x64RowInput\x12\x13\n\x0bworkspaceId\x18\x01 \x01(\t\x12\x0e\n\x06\x63oreId\x18\x02 \x01(\t\x12\x0f\n\x07tableId\x18\x03 \x01(\t\"\xf2\x01\n\x0e\x43\x65llValueInput\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x14\n\x0c\x66oreignRowId\x18\x03 \x01(\t\x12\x0e\n\x06number\x18\x04 \x01(\x02\x12,\n\x0cselectedItem\x18\x05 \x01(\x0b\x32\x16.co.treelab.api.Choice\x12-\n\rselectedItems\x18\x06 \x03(\x0b\x32\x16.co.treelab.api.Choice\x12/\n\x0b\x61ttachments\x18\x07 \x03(\x0b\x32\x1a.co.treelab.api.Attachment\x12\x10\n\x08\x64\x61teTime\x18\x08 \x01(\t\"T\n\x15UpdateCellActionInput\x12\x0c\n\x04type\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.co.treelab.api.CellValueInput\"\x9f\x01\n\x0fUpdateCellInput\x12\x13\n\x0bworkspaceId\x18\x01 \x01(\t\x12\x0e\n\x06\x63oreId\x18\x02 \x01(\t\x12\x0f\n\x07tableId\x18\x03 \x01(\t\x12\x10\n\x08\x63olumnId\x18\x04 \x01(\t\x12\r\n\x05rowId\x18\x05 \x01(\t\x12\x35\n\x06\x61\x63tion\x18\x06 \x01(\x0b\x32%.co.treelab.api.UpdateCellActionInput\"$\n\x14\x43reateWorkspaceInput\x12\x0c\n\x04name\x18\x01 \x01(\t\"R\n\x0c\x41\x64\x64\x43oreInput\x12\x13\n\x0bworkspaceId\x18\x01 \x01(\t\x12\x10\n\x08\x63oreName\x18\x02 \x01(\t\x12\r\n\x05\x63olor\x18\x03 \x01(\t\x12\x0c\n\x04icon\x18\x04 \x01(\t\"e\n\x0fUpdateCoreInput\x12\x13\n\x0bworkspaceId\x18\x01 \x01(\t\x12\x0e\n\x06\x63oreId\x18\x02 \x01(\t\x12\x10\n\x08\x63oreName\x18\x03 \x01(\t\x12\r\n\x05\x63olor\x18\x04 \x01(\t\x12\x0c\n\x04icon\x18\x05 \x01(\t\"6\n\x0fRemoveCoreInput\x12\x13\n\x0bworkspaceId\x18\x01 \x01(\t\x12\x0e\n\x06\x63oreId\x18\x02 \x01(\t\"G\n\rAddTableInput\x12\x13\n\x0bworkspaceId\x18\x01 \x01(\t\x12\x0e\n\x06\x63oreId\x18\x02 \x01(\t\x12\x11\n\ttableName\x18\x03 \x01(\t\"E\n\rGetTableInput\x12\x13\n\x0bworkspaceId\x18\x01 \x01(\t\x12\x0e\n\x06\x63oreId\x18\x02 \x01(\t\x12\x0f\n\x07tableId\x18\x03 \x01(\t\"\x1f\n\x11GetWorkspaceInput\x12\n\n\x02id\x18\x01 \x01(\t\"3\n\x0cGetCoreInput\x12\x13\n\x0bworkspaceId\x18\x01 \x01(\t\x12\x0e\n\x06\x63oreId\x18\x02 \x01(\t\"$\n\rGetCoresInput\x12\x13\n\x0bworkspaceId\x18\x01 \x01(\t\"5\n\x0eGetTablesInput\x12\x13\n\x0bworkspaceId\x18\x01 \x01(\t\x12\x0e\n\x06\x63oreId\x18\x02 \x01(\t\"\x19\n\x0bWorkspaceId\x12\n\n\x02id\x18\x01 \x01(\t\"\x14\n\x06\x43oreId\x12\n\n\x02id\x18\x01 \x01(\t\"\x15\n\x07TableId\x12\n\n\x02id\x18\x01 \x01(\t\"\x16\n\x08\x43olumnId\x12\n\n\x02id\x18\x01 \x01(\t\"\x13\n\x05RowId\x12\n\n\x02id\x18\x01 \x01(\t\"\x14\n\x06ViewId\x12\n\n\x02id\x18\x01 \x01(\t2\xe6\t\n\x11TreeLabApiService\x12V\n\x0f\x43reateWorkspace\x12$.co.treelab.api.CreateWorkspaceInput\x1a\x1b.co.treelab.api.WorkspaceId\"\x00\x12\x41\n\x07\x41\x64\x64\x43ore\x12\x1c.co.treelab.api.AddCoreInput\x1a\x16.co.treelab.api.CoreId\"\x00\x12G\n\nUpdateCore\x12\x1f.co.treelab.api.UpdateCoreInput\x1a\x16.co.treelab.api.CoreId\"\x00\x12G\n\nRemoveCore\x12\x1f.co.treelab.api.RemoveCoreInput\x1a\x16.co.treelab.api.CoreId\"\x00\x12\x44\n\x08\x41\x64\x64Table\x12\x1d.co.treelab.api.AddTableInput\x1a\x17.co.treelab.api.TableId\"\x00\x12G\n\tAddColumn\x12\x1e.co.treelab.api.AddColumnInput\x1a\x18.co.treelab.api.ColumnId\"\x00\x12>\n\x06\x41\x64\x64Row\x12\x1b.co.treelab.api.AddRowInput\x1a\x15.co.treelab.api.RowId\"\x00\x12H\n\nUpdateCell\x12\x1f.co.treelab.api.UpdateCellInput\x1a\x17.co.treelab.api.TableId\"\x00\x12\x41\n\x07\x41\x64\x64View\x12\x1c.co.treelab.api.AddViewInput\x1a\x16.co.treelab.api.ViewId\"\x00\x12\x64\n\x14SubscribeToWorkspace\x12*.co.treelab.api.WorkspaceSubscriptionInput\x1a\x1c.co.treelab.api.EventPayload\"\x00\x30\x01\x12X\n\x0cGetWorkspace\x12!.co.treelab.api.GetWorkspaceInput\x1a#.co.treelab.api.WorkspaceProjection\"\x00\x12I\n\x07GetCore\x12\x1c.co.treelab.api.GetCoreInput\x1a\x1e.co.treelab.api.CoreProjection\"\x00\x12L\n\x08GetTable\x12\x1d.co.treelab.api.GetTableInput\x1a\x1f.co.treelab.api.TableProjection\"\x00\x12R\n\x10GetAllWorkspaces\x12\x1a.co.treelab.api.EmptyInput\x1a .co.treelab.api.WorkspacesResult\"\x00\x12K\n\x0bGetAllCores\x12\x1d.co.treelab.api.GetCoresInput\x1a\x1b.co.treelab.api.CoresResult\"\x00\x12N\n\x0cGetAllTables\x12\x1e.co.treelab.api.GetTablesInput\x1a\x1c.co.treelab.api.TablesResult\"\x00\x62\x06proto3')
)




_EMPTYINPUT = _descriptor.Descriptor(
  name='EmptyInput',
  full_name='co.treelab.api.EmptyInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=33,
  serialized_end=45,
)


_WORKSPACESRESULT = _descriptor.Descriptor(
  name='WorkspacesResult',
  full_name='co.treelab.api.WorkspacesResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='result', full_name='co.treelab.api.WorkspacesResult.result', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=47,
  serialized_end=118,
)


_CORESRESULT = _descriptor.Descriptor(
  name='CoresResult',
  full_name='co.treelab.api.CoresResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='result', full_name='co.treelab.api.CoresResult.result', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=120,
  serialized_end=181,
)


_TABLESRESULT = _descriptor.Descriptor(
  name='TablesResult',
  full_name='co.treelab.api.TablesResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='result', full_name='co.treelab.api.TablesResult.result', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=183,
  serialized_end=246,
)


_TABLEPROJECTION = _descriptor.Descriptor(
  name='TableProjection',
  full_name='co.treelab.api.TableProjection',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.TableProjection.id', index=0,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='name', full_name='co.treelab.api.TableProjection.name', index=1,
      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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='views', full_name='co.treelab.api.TableProjection.views', index=2,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=248,
  serialized_end=332,
)


_TABLEDATA = _descriptor.Descriptor(
  name='TableData',
  full_name='co.treelab.api.TableData',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='rows', full_name='co.treelab.api.TableData.rows', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=334,
  serialized_end=384,
)


_ROWDATA = _descriptor.Descriptor(
  name='RowData',
  full_name='co.treelab.api.RowData',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.RowData.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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='order', full_name='co.treelab.api.RowData.order', index=1,
      number=2, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='cells', full_name='co.treelab.api.RowData.cells', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=386,
  serialized_end=463,
)


_CELLDATA = _descriptor.Descriptor(
  name='CellData',
  full_name='co.treelab.api.CellData',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='columnId', full_name='co.treelab.api.CellData.columnId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='type', full_name='co.treelab.api.CellData.type', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='text', full_name='co.treelab.api.CellData.text', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foreignRow', full_name='co.treelab.api.CellData.foreignRow', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='number', full_name='co.treelab.api.CellData.number', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='selectedItem', full_name='co.treelab.api.CellData.selectedItem', index=5,
      number=6, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='selectedItems', full_name='co.treelab.api.CellData.selectedItems', index=6,
      number=7, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='attachments', full_name='co.treelab.api.CellData.attachments', index=7,
      number=8, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dateTime', full_name='co.treelab.api.CellData.dateTime', index=8,
      number=9, 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=466,
  serialized_end=675,
)


_VIEWDATA = _descriptor.Descriptor(
  name='ViewData',
  full_name='co.treelab.api.ViewData',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.ViewData.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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='type', full_name='co.treelab.api.ViewData.type', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='name', full_name='co.treelab.api.ViewData.name', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='rows', full_name='co.treelab.api.ViewData.rows', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='columns', full_name='co.treelab.api.ViewData.columns', index=4,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=678,
  serialized_end=818,
)


_COLUMNDEFINITION = _descriptor.Descriptor(
  name='ColumnDefinition',
  full_name='co.treelab.api.ColumnDefinition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.ColumnDefinition.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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='type', full_name='co.treelab.api.ColumnDefinition.type', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='name', full_name='co.treelab.api.ColumnDefinition.name', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='order', full_name='co.treelab.api.ColumnDefinition.order', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='visibility', full_name='co.treelab.api.ColumnDefinition.visibility', index=4,
      number=5, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foreignTableId', full_name='co.treelab.api.ColumnDefinition.foreignTableId', index=5,
      number=6, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='defaultNumber', full_name='co.treelab.api.ColumnDefinition.defaultNumber', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='precision', full_name='co.treelab.api.ColumnDefinition.precision', index=7,
      number=8, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='choices', full_name='co.treelab.api.ColumnDefinition.choices', index=8,
      number=9, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dateFormat', full_name='co.treelab.api.ColumnDefinition.dateFormat', index=9,
      number=10, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='includeTime', full_name='co.treelab.api.ColumnDefinition.includeTime', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='timeFormat', full_name='co.treelab.api.ColumnDefinition.timeFormat', index=11,
      number=12, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='useGMT', full_name='co.treelab.api.ColumnDefinition.useGMT', index=12,
      number=13, 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=821,
  serialized_end=1074,
)


_CHOICE = _descriptor.Descriptor(
  name='Choice',
  full_name='co.treelab.api.Choice',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.Choice.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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='name', full_name='co.treelab.api.Choice.name', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='color', full_name='co.treelab.api.Choice.color', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1076,
  serialized_end=1125,
)


_WORKSPACEPROJECTION = _descriptor.Descriptor(
  name='WorkspaceProjection',
  full_name='co.treelab.api.WorkspaceProjection',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.WorkspaceProjection.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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='name', full_name='co.treelab.api.WorkspaceProjection.name', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1127,
  serialized_end=1174,
)


_COREPROJECTION = _descriptor.Descriptor(
  name='CoreProjection',
  full_name='co.treelab.api.CoreProjection',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.CoreProjection.id', index=0,
      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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='name', full_name='co.treelab.api.CoreProjection.name', index=1,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='color', full_name='co.treelab.api.CoreProjection.color', index=2,
      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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='icon', full_name='co.treelab.api.CoreProjection.icon', index=3,
      number=5, 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1176,
  serialized_end=1247,
)


_FOREIGNROWVISIBLENAMEVALUE = _descriptor.Descriptor(
  name='ForeignRowVisibleNameValue',
  full_name='co.treelab.api.ForeignRowVisibleNameValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='co.treelab.api.ForeignRowVisibleNameValue.value', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1249,
  serialized_end=1292,
)


_FOREIGNROWVALUE = _descriptor.Descriptor(
  name='ForeignRowValue',
  full_name='co.treelab.api.ForeignRowValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.ForeignRowValue.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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='visibleName', full_name='co.treelab.api.ForeignRowValue.visibleName', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1294,
  serialized_end=1388,
)


_ATTACHMENT = _descriptor.Descriptor(
  name='Attachment',
  full_name='co.treelab.api.Attachment',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='co.treelab.api.Attachment.name', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='url', full_name='co.treelab.api.Attachment.url', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1390,
  serialized_end=1429,
)


_COLUMNCONFIG = _descriptor.Descriptor(
  name='ColumnConfig',
  full_name='co.treelab.api.ColumnConfig',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='co.treelab.api.ColumnConfig.name', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='type', full_name='co.treelab.api.ColumnConfig.type', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='order', full_name='co.treelab.api.ColumnConfig.order', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1431,
  serialized_end=1488,
)


_VIEWDEFINITION = _descriptor.Descriptor(
  name='ViewDefinition',
  full_name='co.treelab.api.ViewDefinition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.ViewDefinition.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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='name', full_name='co.treelab.api.ViewDefinition.name', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='type', full_name='co.treelab.api.ViewDefinition.type', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1490,
  serialized_end=1546,
)


_EVENTMETADATA = _descriptor.Descriptor(
  name='EventMetadata',
  full_name='co.treelab.api.EventMetadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='source', full_name='co.treelab.api.EventMetadata.source', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1548,
  serialized_end=1579,
)


_EVENTPAYLOAD = _descriptor.Descriptor(
  name='EventPayload',
  full_name='co.treelab.api.EventPayload',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='eventName', full_name='co.treelab.api.EventPayload.eventName', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.EventPayload.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreId', full_name='co.treelab.api.EventPayload.coreId', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='tableId', full_name='co.treelab.api.EventPayload.tableId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='columnId', full_name='co.treelab.api.EventPayload.columnId', index=4,
      number=5, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='rowId', full_name='co.treelab.api.EventPayload.rowId', index=5,
      number=6, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreName', full_name='co.treelab.api.EventPayload.coreName', index=6,
      number=7, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='color', full_name='co.treelab.api.EventPayload.color', index=7,
      number=8, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='icon', full_name='co.treelab.api.EventPayload.icon', index=8,
      number=9, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='tableName', full_name='co.treelab.api.EventPayload.tableName', index=9,
      number=10, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='columnConfig', full_name='co.treelab.api.EventPayload.columnConfig', index=10,
      number=11, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='view', full_name='co.treelab.api.EventPayload.view', index=11,
      number=12, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='action', full_name='co.treelab.api.EventPayload.action', index=12,
      number=13, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='_metadata', full_name='co.treelab.api.EventPayload._metadata', index=13,
      number=14, 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1582,
  serialized_end=1971,
)


_WORKSPACESUBSCRIPTIONINPUT = _descriptor.Descriptor(
  name='WorkspaceSubscriptionInput',
  full_name='co.treelab.api.WorkspaceSubscriptionInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.WorkspaceSubscriptionInput.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='topic', full_name='co.treelab.api.WorkspaceSubscriptionInput.topic', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1973,
  serialized_end=2037,
)


_VIEWDEFINITIONINPUT = _descriptor.Descriptor(
  name='ViewDefinitionInput',
  full_name='co.treelab.api.ViewDefinitionInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='co.treelab.api.ViewDefinitionInput.name', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='type', full_name='co.treelab.api.ViewDefinitionInput.type', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2039,
  serialized_end=2088,
)


_ADDVIEWINPUT = _descriptor.Descriptor(
  name='AddViewInput',
  full_name='co.treelab.api.AddViewInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.AddViewInput.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreId', full_name='co.treelab.api.AddViewInput.coreId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='tableId', full_name='co.treelab.api.AddViewInput.tableId', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='view', full_name='co.treelab.api.AddViewInput.view', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2090,
  serialized_end=2209,
)


_ADDCOLUMNINPUT = _descriptor.Descriptor(
  name='AddColumnInput',
  full_name='co.treelab.api.AddColumnInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.AddColumnInput.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreId', full_name='co.treelab.api.AddColumnInput.coreId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='tableId', full_name='co.treelab.api.AddColumnInput.tableId', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='columnConfig', full_name='co.treelab.api.AddColumnInput.columnConfig', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2211,
  serialized_end=2338,
)


_COLUMNCONFIGINPUT = _descriptor.Descriptor(
  name='ColumnConfigInput',
  full_name='co.treelab.api.ColumnConfigInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='type', full_name='co.treelab.api.ColumnConfigInput.type', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='name', full_name='co.treelab.api.ColumnConfigInput.name', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='order', full_name='co.treelab.api.ColumnConfigInput.order', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foreignTableId', full_name='co.treelab.api.ColumnConfigInput.foreignTableId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='defaultNumber', full_name='co.treelab.api.ColumnConfigInput.defaultNumber', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='precision', full_name='co.treelab.api.ColumnConfigInput.precision', index=5,
      number=6, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='choices', full_name='co.treelab.api.ColumnConfigInput.choices', index=6,
      number=9, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dateFormat', full_name='co.treelab.api.ColumnConfigInput.dateFormat', index=7,
      number=10, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='includeTime', full_name='co.treelab.api.ColumnConfigInput.includeTime', index=8,
      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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='timeFormat', full_name='co.treelab.api.ColumnConfigInput.timeFormat', index=9,
      number=12, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='useGMT', full_name='co.treelab.api.ColumnConfigInput.useGMT', index=10,
      number=13, 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2341,
  serialized_end=2587,
)


_ADDROWINPUT = _descriptor.Descriptor(
  name='AddRowInput',
  full_name='co.treelab.api.AddRowInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.AddRowInput.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreId', full_name='co.treelab.api.AddRowInput.coreId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='tableId', full_name='co.treelab.api.AddRowInput.tableId', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2589,
  serialized_end=2656,
)


_CELLVALUEINPUT = _descriptor.Descriptor(
  name='CellValueInput',
  full_name='co.treelab.api.CellValueInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='type', full_name='co.treelab.api.CellValueInput.type', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='text', full_name='co.treelab.api.CellValueInput.text', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foreignRowId', full_name='co.treelab.api.CellValueInput.foreignRowId', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='number', full_name='co.treelab.api.CellValueInput.number', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='selectedItem', full_name='co.treelab.api.CellValueInput.selectedItem', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='selectedItems', full_name='co.treelab.api.CellValueInput.selectedItems', index=5,
      number=6, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='attachments', full_name='co.treelab.api.CellValueInput.attachments', index=6,
      number=7, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dateTime', full_name='co.treelab.api.CellValueInput.dateTime', index=7,
      number=8, 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2659,
  serialized_end=2901,
)


_UPDATECELLACTIONINPUT = _descriptor.Descriptor(
  name='UpdateCellActionInput',
  full_name='co.treelab.api.UpdateCellActionInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='type', full_name='co.treelab.api.UpdateCellActionInput.type', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='co.treelab.api.UpdateCellActionInput.value', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2903,
  serialized_end=2987,
)


_UPDATECELLINPUT = _descriptor.Descriptor(
  name='UpdateCellInput',
  full_name='co.treelab.api.UpdateCellInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.UpdateCellInput.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreId', full_name='co.treelab.api.UpdateCellInput.coreId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='tableId', full_name='co.treelab.api.UpdateCellInput.tableId', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='columnId', full_name='co.treelab.api.UpdateCellInput.columnId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='rowId', full_name='co.treelab.api.UpdateCellInput.rowId', index=4,
      number=5, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='action', full_name='co.treelab.api.UpdateCellInput.action', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2990,
  serialized_end=3149,
)


_CREATEWORKSPACEINPUT = _descriptor.Descriptor(
  name='CreateWorkspaceInput',
  full_name='co.treelab.api.CreateWorkspaceInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='co.treelab.api.CreateWorkspaceInput.name', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3151,
  serialized_end=3187,
)


_ADDCOREINPUT = _descriptor.Descriptor(
  name='AddCoreInput',
  full_name='co.treelab.api.AddCoreInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.AddCoreInput.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreName', full_name='co.treelab.api.AddCoreInput.coreName', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='color', full_name='co.treelab.api.AddCoreInput.color', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='icon', full_name='co.treelab.api.AddCoreInput.icon', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3189,
  serialized_end=3271,
)


_UPDATECOREINPUT = _descriptor.Descriptor(
  name='UpdateCoreInput',
  full_name='co.treelab.api.UpdateCoreInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.UpdateCoreInput.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreId', full_name='co.treelab.api.UpdateCoreInput.coreId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreName', full_name='co.treelab.api.UpdateCoreInput.coreName', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='color', full_name='co.treelab.api.UpdateCoreInput.color', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='icon', full_name='co.treelab.api.UpdateCoreInput.icon', index=4,
      number=5, 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3273,
  serialized_end=3374,
)


_REMOVECOREINPUT = _descriptor.Descriptor(
  name='RemoveCoreInput',
  full_name='co.treelab.api.RemoveCoreInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.RemoveCoreInput.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreId', full_name='co.treelab.api.RemoveCoreInput.coreId', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3376,
  serialized_end=3430,
)


_ADDTABLEINPUT = _descriptor.Descriptor(
  name='AddTableInput',
  full_name='co.treelab.api.AddTableInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.AddTableInput.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreId', full_name='co.treelab.api.AddTableInput.coreId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='tableName', full_name='co.treelab.api.AddTableInput.tableName', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3432,
  serialized_end=3503,
)


_GETTABLEINPUT = _descriptor.Descriptor(
  name='GetTableInput',
  full_name='co.treelab.api.GetTableInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.GetTableInput.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreId', full_name='co.treelab.api.GetTableInput.coreId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='tableId', full_name='co.treelab.api.GetTableInput.tableId', index=2,
      number=3, 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3505,
  serialized_end=3574,
)


_GETWORKSPACEINPUT = _descriptor.Descriptor(
  name='GetWorkspaceInput',
  full_name='co.treelab.api.GetWorkspaceInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.GetWorkspaceInput.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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3576,
  serialized_end=3607,
)


_GETCOREINPUT = _descriptor.Descriptor(
  name='GetCoreInput',
  full_name='co.treelab.api.GetCoreInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.GetCoreInput.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreId', full_name='co.treelab.api.GetCoreInput.coreId', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3609,
  serialized_end=3660,
)


_GETCORESINPUT = _descriptor.Descriptor(
  name='GetCoresInput',
  full_name='co.treelab.api.GetCoresInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.GetCoresInput.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3662,
  serialized_end=3698,
)


_GETTABLESINPUT = _descriptor.Descriptor(
  name='GetTablesInput',
  full_name='co.treelab.api.GetTablesInput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='workspaceId', full_name='co.treelab.api.GetTablesInput.workspaceId', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='coreId', full_name='co.treelab.api.GetTablesInput.coreId', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3700,
  serialized_end=3753,
)


_WORKSPACEID = _descriptor.Descriptor(
  name='WorkspaceId',
  full_name='co.treelab.api.WorkspaceId',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.WorkspaceId.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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3755,
  serialized_end=3780,
)


_COREID = _descriptor.Descriptor(
  name='CoreId',
  full_name='co.treelab.api.CoreId',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.CoreId.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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3782,
  serialized_end=3802,
)


_TABLEID = _descriptor.Descriptor(
  name='TableId',
  full_name='co.treelab.api.TableId',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.TableId.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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3804,
  serialized_end=3825,
)


_COLUMNID = _descriptor.Descriptor(
  name='ColumnId',
  full_name='co.treelab.api.ColumnId',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.ColumnId.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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3827,
  serialized_end=3849,
)


_ROWID = _descriptor.Descriptor(
  name='RowId',
  full_name='co.treelab.api.RowId',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.RowId.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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3851,
  serialized_end=3870,
)


_VIEWID = _descriptor.Descriptor(
  name='ViewId',
  full_name='co.treelab.api.ViewId',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='co.treelab.api.ViewId.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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3872,
  serialized_end=3892,
)

_WORKSPACESRESULT.fields_by_name['result'].message_type = _WORKSPACEPROJECTION
_CORESRESULT.fields_by_name['result'].message_type = _COREPROJECTION
_TABLESRESULT.fields_by_name['result'].message_type = _TABLEPROJECTION
_TABLEPROJECTION.fields_by_name['views'].message_type = _VIEWDATA
_TABLEDATA.fields_by_name['rows'].message_type = _ROWDATA
_ROWDATA.fields_by_name['cells'].message_type = _CELLDATA
_CELLDATA.fields_by_name['foreignRow'].message_type = _FOREIGNROWVALUE
_VIEWDATA.fields_by_name['rows'].message_type = _ROWDATA
_VIEWDATA.fields_by_name['columns'].message_type = _COLUMNDEFINITION
_FOREIGNROWVALUE.fields_by_name['visibleName'].message_type = _FOREIGNROWVISIBLENAMEVALUE
_EVENTPAYLOAD.fields_by_name['columnConfig'].message_type = _COLUMNCONFIG
_EVENTPAYLOAD.fields_by_name['view'].message_type = _VIEWDEFINITION
_EVENTPAYLOAD.fields_by_name['action'].message_type = _UPDATECELLACTIONINPUT
_EVENTPAYLOAD.fields_by_name['_metadata'].message_type = _EVENTMETADATA
_ADDVIEWINPUT.fields_by_name['view'].message_type = _VIEWDEFINITIONINPUT
_ADDCOLUMNINPUT.fields_by_name['columnConfig'].message_type = _COLUMNCONFIGINPUT
_COLUMNCONFIGINPUT.fields_by_name['choices'].message_type = _CHOICE
_CELLVALUEINPUT.fields_by_name['selectedItem'].message_type = _CHOICE
_CELLVALUEINPUT.fields_by_name['selectedItems'].message_type = _CHOICE
_CELLVALUEINPUT.fields_by_name['attachments'].message_type = _ATTACHMENT
_UPDATECELLACTIONINPUT.fields_by_name['value'].message_type = _CELLVALUEINPUT
_UPDATECELLINPUT.fields_by_name['action'].message_type = _UPDATECELLACTIONINPUT
DESCRIPTOR.message_types_by_name['EmptyInput'] = _EMPTYINPUT
DESCRIPTOR.message_types_by_name['WorkspacesResult'] = _WORKSPACESRESULT
DESCRIPTOR.message_types_by_name['CoresResult'] = _CORESRESULT
DESCRIPTOR.message_types_by_name['TablesResult'] = _TABLESRESULT
DESCRIPTOR.message_types_by_name['TableProjection'] = _TABLEPROJECTION
DESCRIPTOR.message_types_by_name['TableData'] = _TABLEDATA
DESCRIPTOR.message_types_by_name['RowData'] = _ROWDATA
DESCRIPTOR.message_types_by_name['CellData'] = _CELLDATA
DESCRIPTOR.message_types_by_name['ViewData'] = _VIEWDATA
DESCRIPTOR.message_types_by_name['ColumnDefinition'] = _COLUMNDEFINITION
DESCRIPTOR.message_types_by_name['Choice'] = _CHOICE
DESCRIPTOR.message_types_by_name['WorkspaceProjection'] = _WORKSPACEPROJECTION
DESCRIPTOR.message_types_by_name['CoreProjection'] = _COREPROJECTION
DESCRIPTOR.message_types_by_name['ForeignRowVisibleNameValue'] = _FOREIGNROWVISIBLENAMEVALUE
DESCRIPTOR.message_types_by_name['ForeignRowValue'] = _FOREIGNROWVALUE
DESCRIPTOR.message_types_by_name['Attachment'] = _ATTACHMENT
DESCRIPTOR.message_types_by_name['ColumnConfig'] = _COLUMNCONFIG
DESCRIPTOR.message_types_by_name['ViewDefinition'] = _VIEWDEFINITION
DESCRIPTOR.message_types_by_name['EventMetadata'] = _EVENTMETADATA
DESCRIPTOR.message_types_by_name['EventPayload'] = _EVENTPAYLOAD
DESCRIPTOR.message_types_by_name['WorkspaceSubscriptionInput'] = _WORKSPACESUBSCRIPTIONINPUT
DESCRIPTOR.message_types_by_name['ViewDefinitionInput'] = _VIEWDEFINITIONINPUT
DESCRIPTOR.message_types_by_name['AddViewInput'] = _ADDVIEWINPUT
DESCRIPTOR.message_types_by_name['AddColumnInput'] = _ADDCOLUMNINPUT
DESCRIPTOR.message_types_by_name['ColumnConfigInput'] = _COLUMNCONFIGINPUT
DESCRIPTOR.message_types_by_name['AddRowInput'] = _ADDROWINPUT
DESCRIPTOR.message_types_by_name['CellValueInput'] = _CELLVALUEINPUT
DESCRIPTOR.message_types_by_name['UpdateCellActionInput'] = _UPDATECELLACTIONINPUT
DESCRIPTOR.message_types_by_name['UpdateCellInput'] = _UPDATECELLINPUT
DESCRIPTOR.message_types_by_name['CreateWorkspaceInput'] = _CREATEWORKSPACEINPUT
DESCRIPTOR.message_types_by_name['AddCoreInput'] = _ADDCOREINPUT
DESCRIPTOR.message_types_by_name['UpdateCoreInput'] = _UPDATECOREINPUT
DESCRIPTOR.message_types_by_name['RemoveCoreInput'] = _REMOVECOREINPUT
DESCRIPTOR.message_types_by_name['AddTableInput'] = _ADDTABLEINPUT
DESCRIPTOR.message_types_by_name['GetTableInput'] = _GETTABLEINPUT
DESCRIPTOR.message_types_by_name['GetWorkspaceInput'] = _GETWORKSPACEINPUT
DESCRIPTOR.message_types_by_name['GetCoreInput'] = _GETCOREINPUT
DESCRIPTOR.message_types_by_name['GetCoresInput'] = _GETCORESINPUT
DESCRIPTOR.message_types_by_name['GetTablesInput'] = _GETTABLESINPUT
DESCRIPTOR.message_types_by_name['WorkspaceId'] = _WORKSPACEID
DESCRIPTOR.message_types_by_name['CoreId'] = _COREID
DESCRIPTOR.message_types_by_name['TableId'] = _TABLEID
DESCRIPTOR.message_types_by_name['ColumnId'] = _COLUMNID
DESCRIPTOR.message_types_by_name['RowId'] = _ROWID
DESCRIPTOR.message_types_by_name['ViewId'] = _VIEWID
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

EmptyInput = _reflection.GeneratedProtocolMessageType('EmptyInput', (_message.Message,), dict(
  DESCRIPTOR = _EMPTYINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.EmptyInput)
  ))
_sym_db.RegisterMessage(EmptyInput)

WorkspacesResult = _reflection.GeneratedProtocolMessageType('WorkspacesResult', (_message.Message,), dict(
  DESCRIPTOR = _WORKSPACESRESULT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.WorkspacesResult)
  ))
_sym_db.RegisterMessage(WorkspacesResult)

CoresResult = _reflection.GeneratedProtocolMessageType('CoresResult', (_message.Message,), dict(
  DESCRIPTOR = _CORESRESULT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.CoresResult)
  ))
_sym_db.RegisterMessage(CoresResult)

TablesResult = _reflection.GeneratedProtocolMessageType('TablesResult', (_message.Message,), dict(
  DESCRIPTOR = _TABLESRESULT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.TablesResult)
  ))
_sym_db.RegisterMessage(TablesResult)

TableProjection = _reflection.GeneratedProtocolMessageType('TableProjection', (_message.Message,), dict(
  DESCRIPTOR = _TABLEPROJECTION,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.TableProjection)
  ))
_sym_db.RegisterMessage(TableProjection)

TableData = _reflection.GeneratedProtocolMessageType('TableData', (_message.Message,), dict(
  DESCRIPTOR = _TABLEDATA,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.TableData)
  ))
_sym_db.RegisterMessage(TableData)

RowData = _reflection.GeneratedProtocolMessageType('RowData', (_message.Message,), dict(
  DESCRIPTOR = _ROWDATA,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.RowData)
  ))
_sym_db.RegisterMessage(RowData)

CellData = _reflection.GeneratedProtocolMessageType('CellData', (_message.Message,), dict(
  DESCRIPTOR = _CELLDATA,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.CellData)
  ))
_sym_db.RegisterMessage(CellData)

ViewData = _reflection.GeneratedProtocolMessageType('ViewData', (_message.Message,), dict(
  DESCRIPTOR = _VIEWDATA,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.ViewData)
  ))
_sym_db.RegisterMessage(ViewData)

ColumnDefinition = _reflection.GeneratedProtocolMessageType('ColumnDefinition', (_message.Message,), dict(
  DESCRIPTOR = _COLUMNDEFINITION,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.ColumnDefinition)
  ))
_sym_db.RegisterMessage(ColumnDefinition)

Choice = _reflection.GeneratedProtocolMessageType('Choice', (_message.Message,), dict(
  DESCRIPTOR = _CHOICE,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.Choice)
  ))
_sym_db.RegisterMessage(Choice)

WorkspaceProjection = _reflection.GeneratedProtocolMessageType('WorkspaceProjection', (_message.Message,), dict(
  DESCRIPTOR = _WORKSPACEPROJECTION,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.WorkspaceProjection)
  ))
_sym_db.RegisterMessage(WorkspaceProjection)

CoreProjection = _reflection.GeneratedProtocolMessageType('CoreProjection', (_message.Message,), dict(
  DESCRIPTOR = _COREPROJECTION,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.CoreProjection)
  ))
_sym_db.RegisterMessage(CoreProjection)

ForeignRowVisibleNameValue = _reflection.GeneratedProtocolMessageType('ForeignRowVisibleNameValue', (_message.Message,), dict(
  DESCRIPTOR = _FOREIGNROWVISIBLENAMEVALUE,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.ForeignRowVisibleNameValue)
  ))
_sym_db.RegisterMessage(ForeignRowVisibleNameValue)

ForeignRowValue = _reflection.GeneratedProtocolMessageType('ForeignRowValue', (_message.Message,), dict(
  DESCRIPTOR = _FOREIGNROWVALUE,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.ForeignRowValue)
  ))
_sym_db.RegisterMessage(ForeignRowValue)

Attachment = _reflection.GeneratedProtocolMessageType('Attachment', (_message.Message,), dict(
  DESCRIPTOR = _ATTACHMENT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.Attachment)
  ))
_sym_db.RegisterMessage(Attachment)

ColumnConfig = _reflection.GeneratedProtocolMessageType('ColumnConfig', (_message.Message,), dict(
  DESCRIPTOR = _COLUMNCONFIG,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.ColumnConfig)
  ))
_sym_db.RegisterMessage(ColumnConfig)

ViewDefinition = _reflection.GeneratedProtocolMessageType('ViewDefinition', (_message.Message,), dict(
  DESCRIPTOR = _VIEWDEFINITION,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.ViewDefinition)
  ))
_sym_db.RegisterMessage(ViewDefinition)

EventMetadata = _reflection.GeneratedProtocolMessageType('EventMetadata', (_message.Message,), dict(
  DESCRIPTOR = _EVENTMETADATA,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.EventMetadata)
  ))
_sym_db.RegisterMessage(EventMetadata)

EventPayload = _reflection.GeneratedProtocolMessageType('EventPayload', (_message.Message,), dict(
  DESCRIPTOR = _EVENTPAYLOAD,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.EventPayload)
  ))
_sym_db.RegisterMessage(EventPayload)

WorkspaceSubscriptionInput = _reflection.GeneratedProtocolMessageType('WorkspaceSubscriptionInput', (_message.Message,), dict(
  DESCRIPTOR = _WORKSPACESUBSCRIPTIONINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.WorkspaceSubscriptionInput)
  ))
_sym_db.RegisterMessage(WorkspaceSubscriptionInput)

ViewDefinitionInput = _reflection.GeneratedProtocolMessageType('ViewDefinitionInput', (_message.Message,), dict(
  DESCRIPTOR = _VIEWDEFINITIONINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.ViewDefinitionInput)
  ))
_sym_db.RegisterMessage(ViewDefinitionInput)

AddViewInput = _reflection.GeneratedProtocolMessageType('AddViewInput', (_message.Message,), dict(
  DESCRIPTOR = _ADDVIEWINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.AddViewInput)
  ))
_sym_db.RegisterMessage(AddViewInput)

AddColumnInput = _reflection.GeneratedProtocolMessageType('AddColumnInput', (_message.Message,), dict(
  DESCRIPTOR = _ADDCOLUMNINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.AddColumnInput)
  ))
_sym_db.RegisterMessage(AddColumnInput)

ColumnConfigInput = _reflection.GeneratedProtocolMessageType('ColumnConfigInput', (_message.Message,), dict(
  DESCRIPTOR = _COLUMNCONFIGINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.ColumnConfigInput)
  ))
_sym_db.RegisterMessage(ColumnConfigInput)

AddRowInput = _reflection.GeneratedProtocolMessageType('AddRowInput', (_message.Message,), dict(
  DESCRIPTOR = _ADDROWINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.AddRowInput)
  ))
_sym_db.RegisterMessage(AddRowInput)

CellValueInput = _reflection.GeneratedProtocolMessageType('CellValueInput', (_message.Message,), dict(
  DESCRIPTOR = _CELLVALUEINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.CellValueInput)
  ))
_sym_db.RegisterMessage(CellValueInput)

UpdateCellActionInput = _reflection.GeneratedProtocolMessageType('UpdateCellActionInput', (_message.Message,), dict(
  DESCRIPTOR = _UPDATECELLACTIONINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.UpdateCellActionInput)
  ))
_sym_db.RegisterMessage(UpdateCellActionInput)

UpdateCellInput = _reflection.GeneratedProtocolMessageType('UpdateCellInput', (_message.Message,), dict(
  DESCRIPTOR = _UPDATECELLINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.UpdateCellInput)
  ))
_sym_db.RegisterMessage(UpdateCellInput)

CreateWorkspaceInput = _reflection.GeneratedProtocolMessageType('CreateWorkspaceInput', (_message.Message,), dict(
  DESCRIPTOR = _CREATEWORKSPACEINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.CreateWorkspaceInput)
  ))
_sym_db.RegisterMessage(CreateWorkspaceInput)

AddCoreInput = _reflection.GeneratedProtocolMessageType('AddCoreInput', (_message.Message,), dict(
  DESCRIPTOR = _ADDCOREINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.AddCoreInput)
  ))
_sym_db.RegisterMessage(AddCoreInput)

UpdateCoreInput = _reflection.GeneratedProtocolMessageType('UpdateCoreInput', (_message.Message,), dict(
  DESCRIPTOR = _UPDATECOREINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.UpdateCoreInput)
  ))
_sym_db.RegisterMessage(UpdateCoreInput)

RemoveCoreInput = _reflection.GeneratedProtocolMessageType('RemoveCoreInput', (_message.Message,), dict(
  DESCRIPTOR = _REMOVECOREINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.RemoveCoreInput)
  ))
_sym_db.RegisterMessage(RemoveCoreInput)

AddTableInput = _reflection.GeneratedProtocolMessageType('AddTableInput', (_message.Message,), dict(
  DESCRIPTOR = _ADDTABLEINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.AddTableInput)
  ))
_sym_db.RegisterMessage(AddTableInput)

GetTableInput = _reflection.GeneratedProtocolMessageType('GetTableInput', (_message.Message,), dict(
  DESCRIPTOR = _GETTABLEINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.GetTableInput)
  ))
_sym_db.RegisterMessage(GetTableInput)

GetWorkspaceInput = _reflection.GeneratedProtocolMessageType('GetWorkspaceInput', (_message.Message,), dict(
  DESCRIPTOR = _GETWORKSPACEINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.GetWorkspaceInput)
  ))
_sym_db.RegisterMessage(GetWorkspaceInput)

GetCoreInput = _reflection.GeneratedProtocolMessageType('GetCoreInput', (_message.Message,), dict(
  DESCRIPTOR = _GETCOREINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.GetCoreInput)
  ))
_sym_db.RegisterMessage(GetCoreInput)

GetCoresInput = _reflection.GeneratedProtocolMessageType('GetCoresInput', (_message.Message,), dict(
  DESCRIPTOR = _GETCORESINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.GetCoresInput)
  ))
_sym_db.RegisterMessage(GetCoresInput)

GetTablesInput = _reflection.GeneratedProtocolMessageType('GetTablesInput', (_message.Message,), dict(
  DESCRIPTOR = _GETTABLESINPUT,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.GetTablesInput)
  ))
_sym_db.RegisterMessage(GetTablesInput)

WorkspaceId = _reflection.GeneratedProtocolMessageType('WorkspaceId', (_message.Message,), dict(
  DESCRIPTOR = _WORKSPACEID,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.WorkspaceId)
  ))
_sym_db.RegisterMessage(WorkspaceId)

CoreId = _reflection.GeneratedProtocolMessageType('CoreId', (_message.Message,), dict(
  DESCRIPTOR = _COREID,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.CoreId)
  ))
_sym_db.RegisterMessage(CoreId)

TableId = _reflection.GeneratedProtocolMessageType('TableId', (_message.Message,), dict(
  DESCRIPTOR = _TABLEID,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.TableId)
  ))
_sym_db.RegisterMessage(TableId)

ColumnId = _reflection.GeneratedProtocolMessageType('ColumnId', (_message.Message,), dict(
  DESCRIPTOR = _COLUMNID,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.ColumnId)
  ))
_sym_db.RegisterMessage(ColumnId)

RowId = _reflection.GeneratedProtocolMessageType('RowId', (_message.Message,), dict(
  DESCRIPTOR = _ROWID,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.RowId)
  ))
_sym_db.RegisterMessage(RowId)

ViewId = _reflection.GeneratedProtocolMessageType('ViewId', (_message.Message,), dict(
  DESCRIPTOR = _VIEWID,
  __module__ = 'service_pb2'
  # @@protoc_insertion_point(class_scope:co.treelab.api.ViewId)
  ))
_sym_db.RegisterMessage(ViewId)



_TREELABAPISERVICE = _descriptor.ServiceDescriptor(
  name='TreeLabApiService',
  full_name='co.treelab.api.TreeLabApiService',
  file=DESCRIPTOR,
  index=0,
  serialized_options=None,
  serialized_start=3895,
  serialized_end=5149,
  methods=[
  _descriptor.MethodDescriptor(
    name='CreateWorkspace',
    full_name='co.treelab.api.TreeLabApiService.CreateWorkspace',
    index=0,
    containing_service=None,
    input_type=_CREATEWORKSPACEINPUT,
    output_type=_WORKSPACEID,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='AddCore',
    full_name='co.treelab.api.TreeLabApiService.AddCore',
    index=1,
    containing_service=None,
    input_type=_ADDCOREINPUT,
    output_type=_COREID,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='UpdateCore',
    full_name='co.treelab.api.TreeLabApiService.UpdateCore',
    index=2,
    containing_service=None,
    input_type=_UPDATECOREINPUT,
    output_type=_COREID,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='RemoveCore',
    full_name='co.treelab.api.TreeLabApiService.RemoveCore',
    index=3,
    containing_service=None,
    input_type=_REMOVECOREINPUT,
    output_type=_COREID,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='AddTable',
    full_name='co.treelab.api.TreeLabApiService.AddTable',
    index=4,
    containing_service=None,
    input_type=_ADDTABLEINPUT,
    output_type=_TABLEID,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='AddColumn',
    full_name='co.treelab.api.TreeLabApiService.AddColumn',
    index=5,
    containing_service=None,
    input_type=_ADDCOLUMNINPUT,
    output_type=_COLUMNID,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='AddRow',
    full_name='co.treelab.api.TreeLabApiService.AddRow',
    index=6,
    containing_service=None,
    input_type=_ADDROWINPUT,
    output_type=_ROWID,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='UpdateCell',
    full_name='co.treelab.api.TreeLabApiService.UpdateCell',
    index=7,
    containing_service=None,
    input_type=_UPDATECELLINPUT,
    output_type=_TABLEID,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='AddView',
    full_name='co.treelab.api.TreeLabApiService.AddView',
    index=8,
    containing_service=None,
    input_type=_ADDVIEWINPUT,
    output_type=_VIEWID,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='SubscribeToWorkspace',
    full_name='co.treelab.api.TreeLabApiService.SubscribeToWorkspace',
    index=9,
    containing_service=None,
    input_type=_WORKSPACESUBSCRIPTIONINPUT,
    output_type=_EVENTPAYLOAD,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetWorkspace',
    full_name='co.treelab.api.TreeLabApiService.GetWorkspace',
    index=10,
    containing_service=None,
    input_type=_GETWORKSPACEINPUT,
    output_type=_WORKSPACEPROJECTION,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetCore',
    full_name='co.treelab.api.TreeLabApiService.GetCore',
    index=11,
    containing_service=None,
    input_type=_GETCOREINPUT,
    output_type=_COREPROJECTION,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetTable',
    full_name='co.treelab.api.TreeLabApiService.GetTable',
    index=12,
    containing_service=None,
    input_type=_GETTABLEINPUT,
    output_type=_TABLEPROJECTION,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetAllWorkspaces',
    full_name='co.treelab.api.TreeLabApiService.GetAllWorkspaces',
    index=13,
    containing_service=None,
    input_type=_EMPTYINPUT,
    output_type=_WORKSPACESRESULT,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetAllCores',
    full_name='co.treelab.api.TreeLabApiService.GetAllCores',
    index=14,
    containing_service=None,
    input_type=_GETCORESINPUT,
    output_type=_CORESRESULT,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetAllTables',
    full_name='co.treelab.api.TreeLabApiService.GetAllTables',
    index=15,
    containing_service=None,
    input_type=_GETTABLESINPUT,
    output_type=_TABLESRESULT,
    serialized_options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_TREELABAPISERVICE)

DESCRIPTOR.services_by_name['TreeLabApiService'] = _TREELABAPISERVICE

# @@protoc_insertion_point(module_scope)
