# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/bigtable/v2/bigtable.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
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from google.cloud.bigtable._generated import data_pb2 as google_dot_bigtable_dot_v2_dot_data__pb2
from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/bigtable/v2/bigtable.proto',
  package='google.bigtable.v2',
  syntax='proto3',
  serialized_pb=_b('\n!google/bigtable/v2/bigtable.proto\x12\x12google.bigtable.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1dgoogle/bigtable/v2/data.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x17google/rpc/status.proto\"\x92\x01\n\x0fReadRowsRequest\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12(\n\x04rows\x18\x02 \x01(\x0b\x32\x1a.google.bigtable.v2.RowSet\x12-\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x12\x12\n\nrows_limit\x18\x04 \x01(\x03\"\xf8\x02\n\x10ReadRowsResponse\x12>\n\x06\x63hunks\x18\x01 \x03(\x0b\x32..google.bigtable.v2.ReadRowsResponse.CellChunk\x12\x1c\n\x14last_scanned_row_key\x18\x02 \x01(\x0c\x1a\x85\x02\n\tCellChunk\x12\x0f\n\x07row_key\x18\x01 \x01(\x0c\x12\x31\n\x0b\x66\x61mily_name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\tqualifier\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.BytesValue\x12\x18\n\x10timestamp_micros\x18\x04 \x01(\x03\x12\x0e\n\x06labels\x18\x05 \x03(\t\x12\r\n\x05value\x18\x06 \x01(\x0c\x12\x12\n\nvalue_size\x18\x07 \x01(\x05\x12\x13\n\treset_row\x18\x08 \x01(\x08H\x00\x12\x14\n\ncommit_row\x18\t \x01(\x08H\x00\x42\x0c\n\nrow_status\"*\n\x14SampleRowKeysRequest\x12\x12\n\ntable_name\x18\x01 \x01(\t\">\n\x15SampleRowKeysResponse\x12\x0f\n\x07row_key\x18\x01 \x01(\x0c\x12\x14\n\x0coffset_bytes\x18\x02 \x01(\x03\"h\n\x10MutateRowRequest\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x0f\n\x07row_key\x18\x02 \x01(\x0c\x12/\n\tmutations\x18\x03 \x03(\x0b\x32\x1c.google.bigtable.v2.Mutation\"\x13\n\x11MutateRowResponse\"\xb0\x01\n\x11MutateRowsRequest\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12<\n\x07\x65ntries\x18\x02 \x03(\x0b\x32+.google.bigtable.v2.MutateRowsRequest.Entry\x1aI\n\x05\x45ntry\x12\x0f\n\x07row_key\x18\x01 \x01(\x0c\x12/\n\tmutations\x18\x02 \x03(\x0b\x32\x1c.google.bigtable.v2.Mutation\"\x8f\x01\n\x12MutateRowsResponse\x12=\n\x07\x65ntries\x18\x01 \x03(\x0b\x32,.google.bigtable.v2.MutateRowsResponse.Entry\x1a:\n\x05\x45ntry\x12\r\n\x05index\x18\x01 \x01(\x03\x12\"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\"\xe5\x01\n\x18\x43heckAndMutateRowRequest\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x0f\n\x07row_key\x18\x02 \x01(\x0c\x12\x37\n\x10predicate_filter\x18\x06 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x12\x34\n\x0etrue_mutations\x18\x04 \x03(\x0b\x32\x1c.google.bigtable.v2.Mutation\x12\x35\n\x0f\x66\x61lse_mutations\x18\x05 \x03(\x0b\x32\x1c.google.bigtable.v2.Mutation\"6\n\x19\x43heckAndMutateRowResponse\x12\x19\n\x11predicate_matched\x18\x01 \x01(\x08\"x\n\x19ReadModifyWriteRowRequest\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x0f\n\x07row_key\x18\x02 \x01(\x0c\x12\x36\n\x05rules\x18\x03 \x03(\x0b\x32\'.google.bigtable.v2.ReadModifyWriteRule\"B\n\x1aReadModifyWriteRowResponse\x12$\n\x03row\x18\x01 \x01(\x0b\x32\x17.google.bigtable.v2.Row2\xad\x08\n\x08\x42igtable\x12\x9d\x01\n\x08ReadRows\x12#.google.bigtable.v2.ReadRowsRequest\x1a$.google.bigtable.v2.ReadRowsResponse\"D\x82\xd3\xe4\x93\x02>\"9/v2/{table_name=projects/*/instances/*/tables/*}:readRows:\x01*0\x01\x12\xae\x01\n\rSampleRowKeys\x12(.google.bigtable.v2.SampleRowKeysRequest\x1a).google.bigtable.v2.SampleRowKeysResponse\"F\x82\xd3\xe4\x93\x02@\x12>/v2/{table_name=projects/*/instances/*/tables/*}:sampleRowKeys0\x01\x12\x9f\x01\n\tMutateRow\x12$.google.bigtable.v2.MutateRowRequest\x1a%.google.bigtable.v2.MutateRowResponse\"E\x82\xd3\xe4\x93\x02?\":/v2/{table_name=projects/*/instances/*/tables/*}:mutateRow:\x01*\x12\xa5\x01\n\nMutateRows\x12%.google.bigtable.v2.MutateRowsRequest\x1a&.google.bigtable.v2.MutateRowsResponse\"F\x82\xd3\xe4\x93\x02@\";/v2/{table_name=projects/*/instances/*/tables/*}:mutateRows:\x01*0\x01\x12\xbf\x01\n\x11\x43heckAndMutateRow\x12,.google.bigtable.v2.CheckAndMutateRowRequest\x1a-.google.bigtable.v2.CheckAndMutateRowResponse\"M\x82\xd3\xe4\x93\x02G\"B/v2/{table_name=projects/*/instances/*/tables/*}:checkAndMutateRow:\x01*\x12\xc3\x01\n\x12ReadModifyWriteRow\x12-.google.bigtable.v2.ReadModifyWriteRowRequest\x1a..google.bigtable.v2.ReadModifyWriteRowResponse\"N\x82\xd3\xe4\x93\x02H\"C/v2/{table_name=projects/*/instances/*/tables/*}:readModifyWriteRow:\x01*B)\n\x16\x63om.google.bigtable.v2B\rBigtableProtoP\x01\x62\x06proto3')
  ,
  dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_bigtable_dot_v2_dot_data__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,])
_sym_db.RegisterFileDescriptor(DESCRIPTOR)




_READROWSREQUEST = _descriptor.Descriptor(
  name='ReadRowsRequest',
  full_name='google.bigtable.v2.ReadRowsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='table_name', full_name='google.bigtable.v2.ReadRowsRequest.table_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,
      options=None),
    _descriptor.FieldDescriptor(
      name='rows', full_name='google.bigtable.v2.ReadRowsRequest.rows', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='filter', full_name='google.bigtable.v2.ReadRowsRequest.filter', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='rows_limit', full_name='google.bigtable.v2.ReadRowsRequest.rows_limit', index=3,
      number=4, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=176,
  serialized_end=322,
)


_READROWSRESPONSE_CELLCHUNK = _descriptor.Descriptor(
  name='CellChunk',
  full_name='google.bigtable.v2.ReadRowsResponse.CellChunk',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='row_key', full_name='google.bigtable.v2.ReadRowsResponse.CellChunk.row_key', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='family_name', full_name='google.bigtable.v2.ReadRowsResponse.CellChunk.family_name', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='qualifier', full_name='google.bigtable.v2.ReadRowsResponse.CellChunk.qualifier', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='timestamp_micros', full_name='google.bigtable.v2.ReadRowsResponse.CellChunk.timestamp_micros', index=3,
      number=4, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='labels', full_name='google.bigtable.v2.ReadRowsResponse.CellChunk.labels', index=4,
      number=5, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='value', full_name='google.bigtable.v2.ReadRowsResponse.CellChunk.value', index=5,
      number=6, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='value_size', full_name='google.bigtable.v2.ReadRowsResponse.CellChunk.value_size', index=6,
      number=7, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='reset_row', full_name='google.bigtable.v2.ReadRowsResponse.CellChunk.reset_row', index=7,
      number=8, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='commit_row', full_name='google.bigtable.v2.ReadRowsResponse.CellChunk.commit_row', index=8,
      number=9, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='row_status', full_name='google.bigtable.v2.ReadRowsResponse.CellChunk.row_status',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=440,
  serialized_end=701,
)

_READROWSRESPONSE = _descriptor.Descriptor(
  name='ReadRowsResponse',
  full_name='google.bigtable.v2.ReadRowsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chunks', full_name='google.bigtable.v2.ReadRowsResponse.chunks', 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='last_scanned_row_key', full_name='google.bigtable.v2.ReadRowsResponse.last_scanned_row_key', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[_READROWSRESPONSE_CELLCHUNK, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=325,
  serialized_end=701,
)


_SAMPLEROWKEYSREQUEST = _descriptor.Descriptor(
  name='SampleRowKeysRequest',
  full_name='google.bigtable.v2.SampleRowKeysRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='table_name', full_name='google.bigtable.v2.SampleRowKeysRequest.table_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,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=703,
  serialized_end=745,
)


_SAMPLEROWKEYSRESPONSE = _descriptor.Descriptor(
  name='SampleRowKeysResponse',
  full_name='google.bigtable.v2.SampleRowKeysResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='row_key', full_name='google.bigtable.v2.SampleRowKeysResponse.row_key', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='offset_bytes', full_name='google.bigtable.v2.SampleRowKeysResponse.offset_bytes', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=747,
  serialized_end=809,
)


_MUTATEROWREQUEST = _descriptor.Descriptor(
  name='MutateRowRequest',
  full_name='google.bigtable.v2.MutateRowRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='table_name', full_name='google.bigtable.v2.MutateRowRequest.table_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,
      options=None),
    _descriptor.FieldDescriptor(
      name='row_key', full_name='google.bigtable.v2.MutateRowRequest.row_key', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='mutations', full_name='google.bigtable.v2.MutateRowRequest.mutations', 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,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=811,
  serialized_end=915,
)


_MUTATEROWRESPONSE = _descriptor.Descriptor(
  name='MutateRowResponse',
  full_name='google.bigtable.v2.MutateRowResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=917,
  serialized_end=936,
)


_MUTATEROWSREQUEST_ENTRY = _descriptor.Descriptor(
  name='Entry',
  full_name='google.bigtable.v2.MutateRowsRequest.Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='row_key', full_name='google.bigtable.v2.MutateRowsRequest.Entry.row_key', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='mutations', full_name='google.bigtable.v2.MutateRowsRequest.Entry.mutations', 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,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1042,
  serialized_end=1115,
)

_MUTATEROWSREQUEST = _descriptor.Descriptor(
  name='MutateRowsRequest',
  full_name='google.bigtable.v2.MutateRowsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='table_name', full_name='google.bigtable.v2.MutateRowsRequest.table_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,
      options=None),
    _descriptor.FieldDescriptor(
      name='entries', full_name='google.bigtable.v2.MutateRowsRequest.entries', 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,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[_MUTATEROWSREQUEST_ENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=939,
  serialized_end=1115,
)


_MUTATEROWSRESPONSE_ENTRY = _descriptor.Descriptor(
  name='Entry',
  full_name='google.bigtable.v2.MutateRowsResponse.Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='index', full_name='google.bigtable.v2.MutateRowsResponse.Entry.index', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='status', full_name='google.bigtable.v2.MutateRowsResponse.Entry.status', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1203,
  serialized_end=1261,
)

_MUTATEROWSRESPONSE = _descriptor.Descriptor(
  name='MutateRowsResponse',
  full_name='google.bigtable.v2.MutateRowsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='entries', full_name='google.bigtable.v2.MutateRowsResponse.entries', 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,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[_MUTATEROWSRESPONSE_ENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1118,
  serialized_end=1261,
)


_CHECKANDMUTATEROWREQUEST = _descriptor.Descriptor(
  name='CheckAndMutateRowRequest',
  full_name='google.bigtable.v2.CheckAndMutateRowRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='table_name', full_name='google.bigtable.v2.CheckAndMutateRowRequest.table_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,
      options=None),
    _descriptor.FieldDescriptor(
      name='row_key', full_name='google.bigtable.v2.CheckAndMutateRowRequest.row_key', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='predicate_filter', full_name='google.bigtable.v2.CheckAndMutateRowRequest.predicate_filter', index=2,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='true_mutations', full_name='google.bigtable.v2.CheckAndMutateRowRequest.true_mutations', 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='false_mutations', full_name='google.bigtable.v2.CheckAndMutateRowRequest.false_mutations', 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,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1264,
  serialized_end=1493,
)


_CHECKANDMUTATEROWRESPONSE = _descriptor.Descriptor(
  name='CheckAndMutateRowResponse',
  full_name='google.bigtable.v2.CheckAndMutateRowResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='predicate_matched', full_name='google.bigtable.v2.CheckAndMutateRowResponse.predicate_matched', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1495,
  serialized_end=1549,
)


_READMODIFYWRITEROWREQUEST = _descriptor.Descriptor(
  name='ReadModifyWriteRowRequest',
  full_name='google.bigtable.v2.ReadModifyWriteRowRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='table_name', full_name='google.bigtable.v2.ReadModifyWriteRowRequest.table_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,
      options=None),
    _descriptor.FieldDescriptor(
      name='row_key', full_name='google.bigtable.v2.ReadModifyWriteRowRequest.row_key', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='rules', full_name='google.bigtable.v2.ReadModifyWriteRowRequest.rules', 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,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1551,
  serialized_end=1671,
)


_READMODIFYWRITEROWRESPONSE = _descriptor.Descriptor(
  name='ReadModifyWriteRowResponse',
  full_name='google.bigtable.v2.ReadModifyWriteRowResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='row', full_name='google.bigtable.v2.ReadModifyWriteRowResponse.row', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1673,
  serialized_end=1739,
)

_READROWSREQUEST.fields_by_name['rows'].message_type = google_dot_bigtable_dot_v2_dot_data__pb2._ROWSET
_READROWSREQUEST.fields_by_name['filter'].message_type = google_dot_bigtable_dot_v2_dot_data__pb2._ROWFILTER
_READROWSRESPONSE_CELLCHUNK.fields_by_name['family_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_READROWSRESPONSE_CELLCHUNK.fields_by_name['qualifier'].message_type = google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE
_READROWSRESPONSE_CELLCHUNK.containing_type = _READROWSRESPONSE
_READROWSRESPONSE_CELLCHUNK.oneofs_by_name['row_status'].fields.append(
  _READROWSRESPONSE_CELLCHUNK.fields_by_name['reset_row'])
_READROWSRESPONSE_CELLCHUNK.fields_by_name['reset_row'].containing_oneof = _READROWSRESPONSE_CELLCHUNK.oneofs_by_name['row_status']
_READROWSRESPONSE_CELLCHUNK.oneofs_by_name['row_status'].fields.append(
  _READROWSRESPONSE_CELLCHUNK.fields_by_name['commit_row'])
_READROWSRESPONSE_CELLCHUNK.fields_by_name['commit_row'].containing_oneof = _READROWSRESPONSE_CELLCHUNK.oneofs_by_name['row_status']
_READROWSRESPONSE.fields_by_name['chunks'].message_type = _READROWSRESPONSE_CELLCHUNK
_MUTATEROWREQUEST.fields_by_name['mutations'].message_type = google_dot_bigtable_dot_v2_dot_data__pb2._MUTATION
_MUTATEROWSREQUEST_ENTRY.fields_by_name['mutations'].message_type = google_dot_bigtable_dot_v2_dot_data__pb2._MUTATION
_MUTATEROWSREQUEST_ENTRY.containing_type = _MUTATEROWSREQUEST
_MUTATEROWSREQUEST.fields_by_name['entries'].message_type = _MUTATEROWSREQUEST_ENTRY
_MUTATEROWSRESPONSE_ENTRY.fields_by_name['status'].message_type = google_dot_rpc_dot_status__pb2._STATUS
_MUTATEROWSRESPONSE_ENTRY.containing_type = _MUTATEROWSRESPONSE
_MUTATEROWSRESPONSE.fields_by_name['entries'].message_type = _MUTATEROWSRESPONSE_ENTRY
_CHECKANDMUTATEROWREQUEST.fields_by_name['predicate_filter'].message_type = google_dot_bigtable_dot_v2_dot_data__pb2._ROWFILTER
_CHECKANDMUTATEROWREQUEST.fields_by_name['true_mutations'].message_type = google_dot_bigtable_dot_v2_dot_data__pb2._MUTATION
_CHECKANDMUTATEROWREQUEST.fields_by_name['false_mutations'].message_type = google_dot_bigtable_dot_v2_dot_data__pb2._MUTATION
_READMODIFYWRITEROWREQUEST.fields_by_name['rules'].message_type = google_dot_bigtable_dot_v2_dot_data__pb2._READMODIFYWRITERULE
_READMODIFYWRITEROWRESPONSE.fields_by_name['row'].message_type = google_dot_bigtable_dot_v2_dot_data__pb2._ROW
DESCRIPTOR.message_types_by_name['ReadRowsRequest'] = _READROWSREQUEST
DESCRIPTOR.message_types_by_name['ReadRowsResponse'] = _READROWSRESPONSE
DESCRIPTOR.message_types_by_name['SampleRowKeysRequest'] = _SAMPLEROWKEYSREQUEST
DESCRIPTOR.message_types_by_name['SampleRowKeysResponse'] = _SAMPLEROWKEYSRESPONSE
DESCRIPTOR.message_types_by_name['MutateRowRequest'] = _MUTATEROWREQUEST
DESCRIPTOR.message_types_by_name['MutateRowResponse'] = _MUTATEROWRESPONSE
DESCRIPTOR.message_types_by_name['MutateRowsRequest'] = _MUTATEROWSREQUEST
DESCRIPTOR.message_types_by_name['MutateRowsResponse'] = _MUTATEROWSRESPONSE
DESCRIPTOR.message_types_by_name['CheckAndMutateRowRequest'] = _CHECKANDMUTATEROWREQUEST
DESCRIPTOR.message_types_by_name['CheckAndMutateRowResponse'] = _CHECKANDMUTATEROWRESPONSE
DESCRIPTOR.message_types_by_name['ReadModifyWriteRowRequest'] = _READMODIFYWRITEROWREQUEST
DESCRIPTOR.message_types_by_name['ReadModifyWriteRowResponse'] = _READMODIFYWRITEROWRESPONSE

ReadRowsRequest = _reflection.GeneratedProtocolMessageType('ReadRowsRequest', (_message.Message,), dict(
  DESCRIPTOR = _READROWSREQUEST,
  __module__ = 'google.bigtable.v2.bigtable_pb2'
  # @@protoc_insertion_point(class_scope:google.bigtable.v2.ReadRowsRequest)
  ))
_sym_db.RegisterMessage(ReadRowsRequest)

ReadRowsResponse = _reflection.GeneratedProtocolMessageType('ReadRowsResponse', (_message.Message,), dict(

  CellChunk = _reflection.GeneratedProtocolMessageType('CellChunk', (_message.Message,), dict(
    DESCRIPTOR = _READROWSRESPONSE_CELLCHUNK,
    __module__ = 'google.bigtable.v2.bigtable_pb2'
    # @@protoc_insertion_point(class_scope:google.bigtable.v2.ReadRowsResponse.CellChunk)
    ))
  ,
  DESCRIPTOR = _READROWSRESPONSE,
  __module__ = 'google.bigtable.v2.bigtable_pb2'
  # @@protoc_insertion_point(class_scope:google.bigtable.v2.ReadRowsResponse)
  ))
_sym_db.RegisterMessage(ReadRowsResponse)
_sym_db.RegisterMessage(ReadRowsResponse.CellChunk)

SampleRowKeysRequest = _reflection.GeneratedProtocolMessageType('SampleRowKeysRequest', (_message.Message,), dict(
  DESCRIPTOR = _SAMPLEROWKEYSREQUEST,
  __module__ = 'google.bigtable.v2.bigtable_pb2'
  # @@protoc_insertion_point(class_scope:google.bigtable.v2.SampleRowKeysRequest)
  ))
_sym_db.RegisterMessage(SampleRowKeysRequest)

SampleRowKeysResponse = _reflection.GeneratedProtocolMessageType('SampleRowKeysResponse', (_message.Message,), dict(
  DESCRIPTOR = _SAMPLEROWKEYSRESPONSE,
  __module__ = 'google.bigtable.v2.bigtable_pb2'
  # @@protoc_insertion_point(class_scope:google.bigtable.v2.SampleRowKeysResponse)
  ))
_sym_db.RegisterMessage(SampleRowKeysResponse)

MutateRowRequest = _reflection.GeneratedProtocolMessageType('MutateRowRequest', (_message.Message,), dict(
  DESCRIPTOR = _MUTATEROWREQUEST,
  __module__ = 'google.bigtable.v2.bigtable_pb2'
  # @@protoc_insertion_point(class_scope:google.bigtable.v2.MutateRowRequest)
  ))
_sym_db.RegisterMessage(MutateRowRequest)

MutateRowResponse = _reflection.GeneratedProtocolMessageType('MutateRowResponse', (_message.Message,), dict(
  DESCRIPTOR = _MUTATEROWRESPONSE,
  __module__ = 'google.bigtable.v2.bigtable_pb2'
  # @@protoc_insertion_point(class_scope:google.bigtable.v2.MutateRowResponse)
  ))
_sym_db.RegisterMessage(MutateRowResponse)

MutateRowsRequest = _reflection.GeneratedProtocolMessageType('MutateRowsRequest', (_message.Message,), dict(

  Entry = _reflection.GeneratedProtocolMessageType('Entry', (_message.Message,), dict(
    DESCRIPTOR = _MUTATEROWSREQUEST_ENTRY,
    __module__ = 'google.bigtable.v2.bigtable_pb2'
    # @@protoc_insertion_point(class_scope:google.bigtable.v2.MutateRowsRequest.Entry)
    ))
  ,
  DESCRIPTOR = _MUTATEROWSREQUEST,
  __module__ = 'google.bigtable.v2.bigtable_pb2'
  # @@protoc_insertion_point(class_scope:google.bigtable.v2.MutateRowsRequest)
  ))
_sym_db.RegisterMessage(MutateRowsRequest)
_sym_db.RegisterMessage(MutateRowsRequest.Entry)

MutateRowsResponse = _reflection.GeneratedProtocolMessageType('MutateRowsResponse', (_message.Message,), dict(

  Entry = _reflection.GeneratedProtocolMessageType('Entry', (_message.Message,), dict(
    DESCRIPTOR = _MUTATEROWSRESPONSE_ENTRY,
    __module__ = 'google.bigtable.v2.bigtable_pb2'
    # @@protoc_insertion_point(class_scope:google.bigtable.v2.MutateRowsResponse.Entry)
    ))
  ,
  DESCRIPTOR = _MUTATEROWSRESPONSE,
  __module__ = 'google.bigtable.v2.bigtable_pb2'
  # @@protoc_insertion_point(class_scope:google.bigtable.v2.MutateRowsResponse)
  ))
_sym_db.RegisterMessage(MutateRowsResponse)
_sym_db.RegisterMessage(MutateRowsResponse.Entry)

CheckAndMutateRowRequest = _reflection.GeneratedProtocolMessageType('CheckAndMutateRowRequest', (_message.Message,), dict(
  DESCRIPTOR = _CHECKANDMUTATEROWREQUEST,
  __module__ = 'google.bigtable.v2.bigtable_pb2'
  # @@protoc_insertion_point(class_scope:google.bigtable.v2.CheckAndMutateRowRequest)
  ))
_sym_db.RegisterMessage(CheckAndMutateRowRequest)

CheckAndMutateRowResponse = _reflection.GeneratedProtocolMessageType('CheckAndMutateRowResponse', (_message.Message,), dict(
  DESCRIPTOR = _CHECKANDMUTATEROWRESPONSE,
  __module__ = 'google.bigtable.v2.bigtable_pb2'
  # @@protoc_insertion_point(class_scope:google.bigtable.v2.CheckAndMutateRowResponse)
  ))
_sym_db.RegisterMessage(CheckAndMutateRowResponse)

ReadModifyWriteRowRequest = _reflection.GeneratedProtocolMessageType('ReadModifyWriteRowRequest', (_message.Message,), dict(
  DESCRIPTOR = _READMODIFYWRITEROWREQUEST,
  __module__ = 'google.bigtable.v2.bigtable_pb2'
  # @@protoc_insertion_point(class_scope:google.bigtable.v2.ReadModifyWriteRowRequest)
  ))
_sym_db.RegisterMessage(ReadModifyWriteRowRequest)

ReadModifyWriteRowResponse = _reflection.GeneratedProtocolMessageType('ReadModifyWriteRowResponse', (_message.Message,), dict(
  DESCRIPTOR = _READMODIFYWRITEROWRESPONSE,
  __module__ = 'google.bigtable.v2.bigtable_pb2'
  # @@protoc_insertion_point(class_scope:google.bigtable.v2.ReadModifyWriteRowResponse)
  ))
_sym_db.RegisterMessage(ReadModifyWriteRowResponse)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\026com.google.bigtable.v2B\rBigtableProtoP\001'))
import grpc
from grpc.beta import implementations as beta_implementations
from grpc.beta import interfaces as beta_interfaces
from grpc.framework.common import cardinality
from grpc.framework.interfaces.face import utilities as face_utilities


class BigtableStub(object):
  """Service for reading from and writing to existing Bigtable tables.
  """

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

    Args:
      channel: A grpc.Channel.
    """
    self.ReadRows = channel.unary_stream(
        '/google.bigtable.v2.Bigtable/ReadRows',
        request_serializer=ReadRowsRequest.SerializeToString,
        response_deserializer=ReadRowsResponse.FromString,
        )
    self.SampleRowKeys = channel.unary_stream(
        '/google.bigtable.v2.Bigtable/SampleRowKeys',
        request_serializer=SampleRowKeysRequest.SerializeToString,
        response_deserializer=SampleRowKeysResponse.FromString,
        )
    self.MutateRow = channel.unary_unary(
        '/google.bigtable.v2.Bigtable/MutateRow',
        request_serializer=MutateRowRequest.SerializeToString,
        response_deserializer=MutateRowResponse.FromString,
        )
    self.MutateRows = channel.unary_stream(
        '/google.bigtable.v2.Bigtable/MutateRows',
        request_serializer=MutateRowsRequest.SerializeToString,
        response_deserializer=MutateRowsResponse.FromString,
        )
    self.CheckAndMutateRow = channel.unary_unary(
        '/google.bigtable.v2.Bigtable/CheckAndMutateRow',
        request_serializer=CheckAndMutateRowRequest.SerializeToString,
        response_deserializer=CheckAndMutateRowResponse.FromString,
        )
    self.ReadModifyWriteRow = channel.unary_unary(
        '/google.bigtable.v2.Bigtable/ReadModifyWriteRow',
        request_serializer=ReadModifyWriteRowRequest.SerializeToString,
        response_deserializer=ReadModifyWriteRowResponse.FromString,
        )


class BigtableServicer(object):
  """Service for reading from and writing to existing Bigtable tables.
  """

  def ReadRows(self, request, context):
    """Streams back the contents of all requested rows, optionally
    applying the same Reader filter to each. Depending on their size,
    rows and cells may be broken up across multiple responses, but
    atomicity of each row will still be preserved. See the
    ReadRowsResponse documentation for details.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def SampleRowKeys(self, request, context):
    """Returns a sample of row keys in the table. The returned row keys will
    delimit contiguous sections of the table of approximately equal size,
    which can be used to break up the data for distributed tasks like
    mapreduces.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def MutateRow(self, request, context):
    """Mutates a row atomically. Cells already present in the row are left
    unchanged unless explicitly changed by `mutation`.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def MutateRows(self, request, context):
    """Mutates multiple rows in a batch. Each individual row is mutated
    atomically as in MutateRow, but the entire batch is not executed
    atomically.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def CheckAndMutateRow(self, request, context):
    """Mutates a row atomically based on the output of a predicate Reader filter.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def ReadModifyWriteRow(self, request, context):
    """Modifies a row atomically. The method reads the latest existing timestamp
    and value from the specified columns and writes a new entry based on
    pre-defined read/modify/write rules. The new value for the timestamp is the
    greater of the existing timestamp or the current server time. The method
    returns the new contents of all modified cells.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')


def add_BigtableServicer_to_server(servicer, server):
  rpc_method_handlers = {
      'ReadRows': grpc.unary_stream_rpc_method_handler(
          servicer.ReadRows,
          request_deserializer=ReadRowsRequest.FromString,
          response_serializer=ReadRowsResponse.SerializeToString,
      ),
      'SampleRowKeys': grpc.unary_stream_rpc_method_handler(
          servicer.SampleRowKeys,
          request_deserializer=SampleRowKeysRequest.FromString,
          response_serializer=SampleRowKeysResponse.SerializeToString,
      ),
      'MutateRow': grpc.unary_unary_rpc_method_handler(
          servicer.MutateRow,
          request_deserializer=MutateRowRequest.FromString,
          response_serializer=MutateRowResponse.SerializeToString,
      ),
      'MutateRows': grpc.unary_stream_rpc_method_handler(
          servicer.MutateRows,
          request_deserializer=MutateRowsRequest.FromString,
          response_serializer=MutateRowsResponse.SerializeToString,
      ),
      'CheckAndMutateRow': grpc.unary_unary_rpc_method_handler(
          servicer.CheckAndMutateRow,
          request_deserializer=CheckAndMutateRowRequest.FromString,
          response_serializer=CheckAndMutateRowResponse.SerializeToString,
      ),
      'ReadModifyWriteRow': grpc.unary_unary_rpc_method_handler(
          servicer.ReadModifyWriteRow,
          request_deserializer=ReadModifyWriteRowRequest.FromString,
          response_serializer=ReadModifyWriteRowResponse.SerializeToString,
      ),
  }
  generic_handler = grpc.method_handlers_generic_handler(
      'google.bigtable.v2.Bigtable', rpc_method_handlers)
  server.add_generic_rpc_handlers((generic_handler,))


class BetaBigtableServicer(object):
  """Service for reading from and writing to existing Bigtable tables.
  """
  def ReadRows(self, request, context):
    """Streams back the contents of all requested rows, optionally
    applying the same Reader filter to each. Depending on their size,
    rows and cells may be broken up across multiple responses, but
    atomicity of each row will still be preserved. See the
    ReadRowsResponse documentation for details.
    """
    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
  def SampleRowKeys(self, request, context):
    """Returns a sample of row keys in the table. The returned row keys will
    delimit contiguous sections of the table of approximately equal size,
    which can be used to break up the data for distributed tasks like
    mapreduces.
    """
    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
  def MutateRow(self, request, context):
    """Mutates a row atomically. Cells already present in the row are left
    unchanged unless explicitly changed by `mutation`.
    """
    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
  def MutateRows(self, request, context):
    """Mutates multiple rows in a batch. Each individual row is mutated
    atomically as in MutateRow, but the entire batch is not executed
    atomically.
    """
    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
  def CheckAndMutateRow(self, request, context):
    """Mutates a row atomically based on the output of a predicate Reader filter.
    """
    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
  def ReadModifyWriteRow(self, request, context):
    """Modifies a row atomically. The method reads the latest existing timestamp
    and value from the specified columns and writes a new entry based on
    pre-defined read/modify/write rules. The new value for the timestamp is the
    greater of the existing timestamp or the current server time. The method
    returns the new contents of all modified cells.
    """
    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)


class BetaBigtableStub(object):
  """Service for reading from and writing to existing Bigtable tables.
  """
  def ReadRows(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
    """Streams back the contents of all requested rows, optionally
    applying the same Reader filter to each. Depending on their size,
    rows and cells may be broken up across multiple responses, but
    atomicity of each row will still be preserved. See the
    ReadRowsResponse documentation for details.
    """
    raise NotImplementedError()
  def SampleRowKeys(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
    """Returns a sample of row keys in the table. The returned row keys will
    delimit contiguous sections of the table of approximately equal size,
    which can be used to break up the data for distributed tasks like
    mapreduces.
    """
    raise NotImplementedError()
  def MutateRow(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
    """Mutates a row atomically. Cells already present in the row are left
    unchanged unless explicitly changed by `mutation`.
    """
    raise NotImplementedError()
  MutateRow.future = None
  def MutateRows(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
    """Mutates multiple rows in a batch. Each individual row is mutated
    atomically as in MutateRow, but the entire batch is not executed
    atomically.
    """
    raise NotImplementedError()
  def CheckAndMutateRow(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
    """Mutates a row atomically based on the output of a predicate Reader filter.
    """
    raise NotImplementedError()
  CheckAndMutateRow.future = None
  def ReadModifyWriteRow(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
    """Modifies a row atomically. The method reads the latest existing timestamp
    and value from the specified columns and writes a new entry based on
    pre-defined read/modify/write rules. The new value for the timestamp is the
    greater of the existing timestamp or the current server time. The method
    returns the new contents of all modified cells.
    """
    raise NotImplementedError()
  ReadModifyWriteRow.future = None


def beta_create_Bigtable_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
  request_deserializers = {
    ('google.bigtable.v2.Bigtable', 'CheckAndMutateRow'): CheckAndMutateRowRequest.FromString,
    ('google.bigtable.v2.Bigtable', 'MutateRow'): MutateRowRequest.FromString,
    ('google.bigtable.v2.Bigtable', 'MutateRows'): MutateRowsRequest.FromString,
    ('google.bigtable.v2.Bigtable', 'ReadModifyWriteRow'): ReadModifyWriteRowRequest.FromString,
    ('google.bigtable.v2.Bigtable', 'ReadRows'): ReadRowsRequest.FromString,
    ('google.bigtable.v2.Bigtable', 'SampleRowKeys'): SampleRowKeysRequest.FromString,
  }
  response_serializers = {
    ('google.bigtable.v2.Bigtable', 'CheckAndMutateRow'): CheckAndMutateRowResponse.SerializeToString,
    ('google.bigtable.v2.Bigtable', 'MutateRow'): MutateRowResponse.SerializeToString,
    ('google.bigtable.v2.Bigtable', 'MutateRows'): MutateRowsResponse.SerializeToString,
    ('google.bigtable.v2.Bigtable', 'ReadModifyWriteRow'): ReadModifyWriteRowResponse.SerializeToString,
    ('google.bigtable.v2.Bigtable', 'ReadRows'): ReadRowsResponse.SerializeToString,
    ('google.bigtable.v2.Bigtable', 'SampleRowKeys'): SampleRowKeysResponse.SerializeToString,
  }
  method_implementations = {
    ('google.bigtable.v2.Bigtable', 'CheckAndMutateRow'): face_utilities.unary_unary_inline(servicer.CheckAndMutateRow),
    ('google.bigtable.v2.Bigtable', 'MutateRow'): face_utilities.unary_unary_inline(servicer.MutateRow),
    ('google.bigtable.v2.Bigtable', 'MutateRows'): face_utilities.unary_stream_inline(servicer.MutateRows),
    ('google.bigtable.v2.Bigtable', 'ReadModifyWriteRow'): face_utilities.unary_unary_inline(servicer.ReadModifyWriteRow),
    ('google.bigtable.v2.Bigtable', 'ReadRows'): face_utilities.unary_stream_inline(servicer.ReadRows),
    ('google.bigtable.v2.Bigtable', 'SampleRowKeys'): face_utilities.unary_stream_inline(servicer.SampleRowKeys),
  }
  server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
  return beta_implementations.server(method_implementations, options=server_options)


def beta_create_Bigtable_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
  request_serializers = {
    ('google.bigtable.v2.Bigtable', 'CheckAndMutateRow'): CheckAndMutateRowRequest.SerializeToString,
    ('google.bigtable.v2.Bigtable', 'MutateRow'): MutateRowRequest.SerializeToString,
    ('google.bigtable.v2.Bigtable', 'MutateRows'): MutateRowsRequest.SerializeToString,
    ('google.bigtable.v2.Bigtable', 'ReadModifyWriteRow'): ReadModifyWriteRowRequest.SerializeToString,
    ('google.bigtable.v2.Bigtable', 'ReadRows'): ReadRowsRequest.SerializeToString,
    ('google.bigtable.v2.Bigtable', 'SampleRowKeys'): SampleRowKeysRequest.SerializeToString,
  }
  response_deserializers = {
    ('google.bigtable.v2.Bigtable', 'CheckAndMutateRow'): CheckAndMutateRowResponse.FromString,
    ('google.bigtable.v2.Bigtable', 'MutateRow'): MutateRowResponse.FromString,
    ('google.bigtable.v2.Bigtable', 'MutateRows'): MutateRowsResponse.FromString,
    ('google.bigtable.v2.Bigtable', 'ReadModifyWriteRow'): ReadModifyWriteRowResponse.FromString,
    ('google.bigtable.v2.Bigtable', 'ReadRows'): ReadRowsResponse.FromString,
    ('google.bigtable.v2.Bigtable', 'SampleRowKeys'): SampleRowKeysResponse.FromString,
  }
  cardinalities = {
    'CheckAndMutateRow': cardinality.Cardinality.UNARY_UNARY,
    'MutateRow': cardinality.Cardinality.UNARY_UNARY,
    'MutateRows': cardinality.Cardinality.UNARY_STREAM,
    'ReadModifyWriteRow': cardinality.Cardinality.UNARY_UNARY,
    'ReadRows': cardinality.Cardinality.UNARY_STREAM,
    'SampleRowKeys': cardinality.Cardinality.UNARY_STREAM,
  }
  stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
  return beta_implementations.dynamic_stub(channel, 'google.bigtable.v2.Bigtable', cardinalities, options=stub_options)
# @@protoc_insertion_point(module_scope)
