# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/spanner_v1/proto/spanner.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()


from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2
from google.cloud.spanner_v1.proto import (
    keys_pb2 as google_dot_cloud_dot_spanner__v1_dot_proto_dot_keys__pb2,
)
from google.cloud.spanner_v1.proto import (
    mutation_pb2 as google_dot_cloud_dot_spanner__v1_dot_proto_dot_mutation__pb2,
)
from google.cloud.spanner_v1.proto import (
    result_set_pb2 as google_dot_cloud_dot_spanner__v1_dot_proto_dot_result__set__pb2,
)
from google.cloud.spanner_v1.proto import (
    transaction_pb2 as google_dot_cloud_dot_spanner__v1_dot_proto_dot_transaction__pb2,
)
from google.cloud.spanner_v1.proto import (
    type_pb2 as google_dot_cloud_dot_spanner__v1_dot_proto_dot_type__pb2,
)


DESCRIPTOR = _descriptor.FileDescriptor(
    name="google/cloud/spanner_v1/proto/spanner.proto",
    package="google.spanner.v1",
    syntax="proto3",
    serialized_options=_b(
        "\n\025com.google.spanner.v1B\014SpannerProtoP\001Z8google.golang.org/genproto/googleapis/spanner/v1;spanner\252\002\027Google.Cloud.Spanner.V1\312\002\027Google\\Cloud\\Spanner\\V1"
    ),
    serialized_pb=_b(
        '\n+google/cloud/spanner_v1/proto/spanner.proto\x12\x11google.spanner.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\x1a(google/cloud/spanner_v1/proto/keys.proto\x1a,google/cloud/spanner_v1/proto/mutation.proto\x1a.google/cloud/spanner_v1/proto/result_set.proto\x1a/google/cloud/spanner_v1/proto/transaction.proto\x1a(google/cloud/spanner_v1/proto/type.proto"U\n\x14\x43reateSessionRequest\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12+\n\x07session\x18\x02 \x01(\x0b\x32\x1a.google.spanner.v1.Session"\xee\x01\n\x07Session\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x36\n\x06labels\x18\x02 \x03(\x0b\x32&.google.spanner.v1.Session.LabelsEntry\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12=\n\x19\x61pproximate_last_use_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"!\n\x11GetSessionRequest\x12\x0c\n\x04name\x18\x01 \x01(\t"^\n\x13ListSessionsRequest\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t"]\n\x14ListSessionsResponse\x12,\n\x08sessions\x18\x01 \x03(\x0b\x32\x1a.google.spanner.v1.Session\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"$\n\x14\x44\x65leteSessionRequest\x12\x0c\n\x04name\x18\x01 \x01(\t"\xe0\x03\n\x11\x45xecuteSqlRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x0b\n\x03sql\x18\x03 \x01(\t\x12\'\n\x06params\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\x12I\n\x0bparam_types\x18\x05 \x03(\x0b\x32\x34.google.spanner.v1.ExecuteSqlRequest.ParamTypesEntry\x12\x14\n\x0cresume_token\x18\x06 \x01(\x0c\x12\x42\n\nquery_mode\x18\x07 \x01(\x0e\x32..google.spanner.v1.ExecuteSqlRequest.QueryMode\x12\x17\n\x0fpartition_token\x18\x08 \x01(\x0c\x12\r\n\x05seqno\x18\t \x01(\x03\x1aJ\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type:\x02\x38\x01".\n\tQueryMode\x12\n\n\x06NORMAL\x10\x00\x12\x08\n\x04PLAN\x10\x01\x12\x0b\n\x07PROFILE\x10\x02"\xa8\x03\n\x16\x45xecuteBatchDmlRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12G\n\nstatements\x18\x03 \x03(\x0b\x32\x33.google.spanner.v1.ExecuteBatchDmlRequest.Statement\x12\r\n\x05seqno\x18\x04 \x01(\x03\x1a\xe7\x01\n\tStatement\x12\x0b\n\x03sql\x18\x01 \x01(\t\x12\'\n\x06params\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12X\n\x0bparam_types\x18\x03 \x03(\x0b\x32\x43.google.spanner.v1.ExecuteBatchDmlRequest.Statement.ParamTypesEntry\x1aJ\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type:\x02\x38\x01"p\n\x17\x45xecuteBatchDmlResponse\x12\x31\n\x0bresult_sets\x18\x01 \x03(\x0b\x32\x1c.google.spanner.v1.ResultSet\x12"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status"H\n\x10PartitionOptions\x12\x1c\n\x14partition_size_bytes\x18\x01 \x01(\x03\x12\x16\n\x0emax_partitions\x18\x02 \x01(\x03"\xf6\x02\n\x15PartitionQueryRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x0b\n\x03sql\x18\x03 \x01(\t\x12\'\n\x06params\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\x12M\n\x0bparam_types\x18\x05 \x03(\x0b\x32\x38.google.spanner.v1.PartitionQueryRequest.ParamTypesEntry\x12>\n\x11partition_options\x18\x06 \x01(\x0b\x32#.google.spanner.v1.PartitionOptions\x1aJ\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type:\x02\x38\x01"\xff\x01\n\x14PartitionReadRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\r\n\x05table\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\t\x12\x0f\n\x07\x63olumns\x18\x05 \x03(\t\x12*\n\x07key_set\x18\x06 \x01(\x0b\x32\x19.google.spanner.v1.KeySet\x12>\n\x11partition_options\x18\t \x01(\x0b\x32#.google.spanner.v1.PartitionOptions"$\n\tPartition\x12\x17\n\x0fpartition_token\x18\x01 \x01(\x0c"z\n\x11PartitionResponse\x12\x30\n\npartitions\x18\x01 \x03(\x0b\x32\x1c.google.spanner.v1.Partition\x12\x33\n\x0btransaction\x18\x02 \x01(\x0b\x32\x1e.google.spanner.v1.Transaction"\xf4\x01\n\x0bReadRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\r\n\x05table\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\t\x12\x0f\n\x07\x63olumns\x18\x05 \x03(\t\x12*\n\x07key_set\x18\x06 \x01(\x0b\x32\x19.google.spanner.v1.KeySet\x12\r\n\x05limit\x18\x08 \x01(\x03\x12\x14\n\x0cresume_token\x18\t \x01(\x0c\x12\x17\n\x0fpartition_token\x18\n \x01(\x0c"b\n\x17\x42\x65ginTransactionRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x36\n\x07options\x18\x02 \x01(\x0b\x32%.google.spanner.v1.TransactionOptions"\xc2\x01\n\rCommitRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x18\n\x0etransaction_id\x18\x02 \x01(\x0cH\x00\x12G\n\x16single_use_transaction\x18\x03 \x01(\x0b\x32%.google.spanner.v1.TransactionOptionsH\x00\x12.\n\tmutations\x18\x04 \x03(\x0b\x32\x1b.google.spanner.v1.MutationB\r\n\x0btransaction"F\n\x0e\x43ommitResponse\x12\x34\n\x10\x63ommit_timestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp":\n\x0fRollbackRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x16\n\x0etransaction_id\x18\x02 \x01(\x0c\x32\xc6\x12\n\x07Spanner\x12\x9b\x01\n\rCreateSession\x12\'.google.spanner.v1.CreateSessionRequest\x1a\x1a.google.spanner.v1.Session"E\x82\xd3\xe4\x93\x02?":/v1/{database=projects/*/instances/*/databases/*}/sessions:\x01*\x12\x90\x01\n\nGetSession\x12$.google.spanner.v1.GetSessionRequest\x1a\x1a.google.spanner.v1.Session"@\x82\xd3\xe4\x93\x02:\x12\x38/v1/{name=projects/*/instances/*/databases/*/sessions/*}\x12\xa3\x01\n\x0cListSessions\x12&.google.spanner.v1.ListSessionsRequest\x1a\'.google.spanner.v1.ListSessionsResponse"B\x82\xd3\xe4\x93\x02<\x12:/v1/{database=projects/*/instances/*/databases/*}/sessions\x12\x92\x01\n\rDeleteSession\x12\'.google.spanner.v1.DeleteSessionRequest\x1a\x16.google.protobuf.Empty"@\x82\xd3\xe4\x93\x02:*8/v1/{name=projects/*/instances/*/databases/*/sessions/*}\x12\xa3\x01\n\nExecuteSql\x12$.google.spanner.v1.ExecuteSqlRequest\x1a\x1c.google.spanner.v1.ResultSet"Q\x82\xd3\xe4\x93\x02K"F/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeSql:\x01*\x12\xbe\x01\n\x13\x45xecuteStreamingSql\x12$.google.spanner.v1.ExecuteSqlRequest\x1a#.google.spanner.v1.PartialResultSet"Z\x82\xd3\xe4\x93\x02T"O/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeStreamingSql:\x01*0\x01\x12\xc0\x01\n\x0f\x45xecuteBatchDml\x12).google.spanner.v1.ExecuteBatchDmlRequest\x1a*.google.spanner.v1.ExecuteBatchDmlResponse"V\x82\xd3\xe4\x93\x02P"K/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeBatchDml:\x01*\x12\x91\x01\n\x04Read\x12\x1e.google.spanner.v1.ReadRequest\x1a\x1c.google.spanner.v1.ResultSet"K\x82\xd3\xe4\x93\x02\x45"@/v1/{session=projects/*/instances/*/databases/*/sessions/*}:read:\x01*\x12\xac\x01\n\rStreamingRead\x12\x1e.google.spanner.v1.ReadRequest\x1a#.google.spanner.v1.PartialResultSet"T\x82\xd3\xe4\x93\x02N"I/v1/{session=projects/*/instances/*/databases/*/sessions/*}:streamingRead:\x01*0\x01\x12\xb7\x01\n\x10\x42\x65ginTransaction\x12*.google.spanner.v1.BeginTransactionRequest\x1a\x1e.google.spanner.v1.Transaction"W\x82\xd3\xe4\x93\x02Q"L/v1/{session=projects/*/instances/*/databases/*/sessions/*}:beginTransaction:\x01*\x12\x9c\x01\n\x06\x43ommit\x12 .google.spanner.v1.CommitRequest\x1a!.google.spanner.v1.CommitResponse"M\x82\xd3\xe4\x93\x02G"B/v1/{session=projects/*/instances/*/databases/*/sessions/*}:commit:\x01*\x12\x97\x01\n\x08Rollback\x12".google.spanner.v1.RollbackRequest\x1a\x16.google.protobuf.Empty"O\x82\xd3\xe4\x93\x02I"D/v1/{session=projects/*/instances/*/databases/*/sessions/*}:rollback:\x01*\x12\xb7\x01\n\x0ePartitionQuery\x12(.google.spanner.v1.PartitionQueryRequest\x1a$.google.spanner.v1.PartitionResponse"U\x82\xd3\xe4\x93\x02O"J/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionQuery:\x01*\x12\xb4\x01\n\rPartitionRead\x12\'.google.spanner.v1.PartitionReadRequest\x1a$.google.spanner.v1.PartitionResponse"T\x82\xd3\xe4\x93\x02N"I/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionRead:\x01*B\x95\x01\n\x15\x63om.google.spanner.v1B\x0cSpannerProtoP\x01Z8google.golang.org/genproto/googleapis/spanner/v1;spanner\xaa\x02\x17Google.Cloud.Spanner.V1\xca\x02\x17Google\\Cloud\\Spanner\\V1b\x06proto3'
    ),
    dependencies=[
        google_dot_api_dot_annotations__pb2.DESCRIPTOR,
        google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,
        google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,
        google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,
        google_dot_rpc_dot_status__pb2.DESCRIPTOR,
        google_dot_cloud_dot_spanner__v1_dot_proto_dot_keys__pb2.DESCRIPTOR,
        google_dot_cloud_dot_spanner__v1_dot_proto_dot_mutation__pb2.DESCRIPTOR,
        google_dot_cloud_dot_spanner__v1_dot_proto_dot_result__set__pb2.DESCRIPTOR,
        google_dot_cloud_dot_spanner__v1_dot_proto_dot_transaction__pb2.DESCRIPTOR,
        google_dot_cloud_dot_spanner__v1_dot_proto_dot_type__pb2.DESCRIPTOR,
    ],
)


_EXECUTESQLREQUEST_QUERYMODE = _descriptor.EnumDescriptor(
    name="QueryMode",
    full_name="google.spanner.v1.ExecuteSqlRequest.QueryMode",
    filename=None,
    file=DESCRIPTOR,
    values=[
        _descriptor.EnumValueDescriptor(
            name="NORMAL", index=0, number=0, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="PLAN", index=1, number=1, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="PROFILE", index=2, number=2, serialized_options=None, type=None
        ),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=1467,
    serialized_end=1513,
)
_sym_db.RegisterEnumDescriptor(_EXECUTESQLREQUEST_QUERYMODE)


_CREATESESSIONREQUEST = _descriptor.Descriptor(
    name="CreateSessionRequest",
    full_name="google.spanner.v1.CreateSessionRequest",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="database",
            full_name="google.spanner.v1.CreateSessionRequest.database",
            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="session",
            full_name="google.spanner.v1.CreateSessionRequest.session",
            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=440,
    serialized_end=525,
)


_SESSION_LABELSENTRY = _descriptor.Descriptor(
    name="LabelsEntry",
    full_name="google.spanner.v1.Session.LabelsEntry",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="key",
            full_name="google.spanner.v1.Session.LabelsEntry.key",
            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="google.spanner.v1.Session.LabelsEntry.value",
            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=_b("8\001"),
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=721,
    serialized_end=766,
)

_SESSION = _descriptor.Descriptor(
    name="Session",
    full_name="google.spanner.v1.Session",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="name",
            full_name="google.spanner.v1.Session.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="labels",
            full_name="google.spanner.v1.Session.labels",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="create_time",
            full_name="google.spanner.v1.Session.create_time",
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="approximate_last_use_time",
            full_name="google.spanner.v1.Session.approximate_last_use_time",
            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=[_SESSION_LABELSENTRY],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=528,
    serialized_end=766,
)


_GETSESSIONREQUEST = _descriptor.Descriptor(
    name="GetSessionRequest",
    full_name="google.spanner.v1.GetSessionRequest",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="name",
            full_name="google.spanner.v1.GetSessionRequest.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=768,
    serialized_end=801,
)


_LISTSESSIONSREQUEST = _descriptor.Descriptor(
    name="ListSessionsRequest",
    full_name="google.spanner.v1.ListSessionsRequest",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="database",
            full_name="google.spanner.v1.ListSessionsRequest.database",
            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="page_size",
            full_name="google.spanner.v1.ListSessionsRequest.page_size",
            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="page_token",
            full_name="google.spanner.v1.ListSessionsRequest.page_token",
            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="filter",
            full_name="google.spanner.v1.ListSessionsRequest.filter",
            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=803,
    serialized_end=897,
)


_LISTSESSIONSRESPONSE = _descriptor.Descriptor(
    name="ListSessionsResponse",
    full_name="google.spanner.v1.ListSessionsResponse",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="sessions",
            full_name="google.spanner.v1.ListSessionsResponse.sessions",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="next_page_token",
            full_name="google.spanner.v1.ListSessionsResponse.next_page_token",
            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=899,
    serialized_end=992,
)


_DELETESESSIONREQUEST = _descriptor.Descriptor(
    name="DeleteSessionRequest",
    full_name="google.spanner.v1.DeleteSessionRequest",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="name",
            full_name="google.spanner.v1.DeleteSessionRequest.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=994,
    serialized_end=1030,
)


_EXECUTESQLREQUEST_PARAMTYPESENTRY = _descriptor.Descriptor(
    name="ParamTypesEntry",
    full_name="google.spanner.v1.ExecuteSqlRequest.ParamTypesEntry",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="key",
            full_name="google.spanner.v1.ExecuteSqlRequest.ParamTypesEntry.key",
            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="google.spanner.v1.ExecuteSqlRequest.ParamTypesEntry.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=_b("8\001"),
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1391,
    serialized_end=1465,
)

_EXECUTESQLREQUEST = _descriptor.Descriptor(
    name="ExecuteSqlRequest",
    full_name="google.spanner.v1.ExecuteSqlRequest",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="session",
            full_name="google.spanner.v1.ExecuteSqlRequest.session",
            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="transaction",
            full_name="google.spanner.v1.ExecuteSqlRequest.transaction",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="sql",
            full_name="google.spanner.v1.ExecuteSqlRequest.sql",
            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="params",
            full_name="google.spanner.v1.ExecuteSqlRequest.params",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="param_types",
            full_name="google.spanner.v1.ExecuteSqlRequest.param_types",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="resume_token",
            full_name="google.spanner.v1.ExecuteSqlRequest.resume_token",
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="query_mode",
            full_name="google.spanner.v1.ExecuteSqlRequest.query_mode",
            index=6,
            number=7,
            type=14,
            cpp_type=8,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="partition_token",
            full_name="google.spanner.v1.ExecuteSqlRequest.partition_token",
            index=7,
            number=8,
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="seqno",
            full_name="google.spanner.v1.ExecuteSqlRequest.seqno",
            index=8,
            number=9,
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[_EXECUTESQLREQUEST_PARAMTYPESENTRY],
    enum_types=[_EXECUTESQLREQUEST_QUERYMODE],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1033,
    serialized_end=1513,
)


_EXECUTEBATCHDMLREQUEST_STATEMENT_PARAMTYPESENTRY = _descriptor.Descriptor(
    name="ParamTypesEntry",
    full_name="google.spanner.v1.ExecuteBatchDmlRequest.Statement.ParamTypesEntry",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="key",
            full_name="google.spanner.v1.ExecuteBatchDmlRequest.Statement.ParamTypesEntry.key",
            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="google.spanner.v1.ExecuteBatchDmlRequest.Statement.ParamTypesEntry.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=_b("8\001"),
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1391,
    serialized_end=1465,
)

_EXECUTEBATCHDMLREQUEST_STATEMENT = _descriptor.Descriptor(
    name="Statement",
    full_name="google.spanner.v1.ExecuteBatchDmlRequest.Statement",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="sql",
            full_name="google.spanner.v1.ExecuteBatchDmlRequest.Statement.sql",
            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="params",
            full_name="google.spanner.v1.ExecuteBatchDmlRequest.Statement.params",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="param_types",
            full_name="google.spanner.v1.ExecuteBatchDmlRequest.Statement.param_types",
            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=[_EXECUTEBATCHDMLREQUEST_STATEMENT_PARAMTYPESENTRY],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1709,
    serialized_end=1940,
)

_EXECUTEBATCHDMLREQUEST = _descriptor.Descriptor(
    name="ExecuteBatchDmlRequest",
    full_name="google.spanner.v1.ExecuteBatchDmlRequest",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="session",
            full_name="google.spanner.v1.ExecuteBatchDmlRequest.session",
            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="transaction",
            full_name="google.spanner.v1.ExecuteBatchDmlRequest.transaction",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="statements",
            full_name="google.spanner.v1.ExecuteBatchDmlRequest.statements",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="seqno",
            full_name="google.spanner.v1.ExecuteBatchDmlRequest.seqno",
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[_EXECUTEBATCHDMLREQUEST_STATEMENT],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1516,
    serialized_end=1940,
)


_EXECUTEBATCHDMLRESPONSE = _descriptor.Descriptor(
    name="ExecuteBatchDmlResponse",
    full_name="google.spanner.v1.ExecuteBatchDmlResponse",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="result_sets",
            full_name="google.spanner.v1.ExecuteBatchDmlResponse.result_sets",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="status",
            full_name="google.spanner.v1.ExecuteBatchDmlResponse.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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1942,
    serialized_end=2054,
)


_PARTITIONOPTIONS = _descriptor.Descriptor(
    name="PartitionOptions",
    full_name="google.spanner.v1.PartitionOptions",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="partition_size_bytes",
            full_name="google.spanner.v1.PartitionOptions.partition_size_bytes",
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="max_partitions",
            full_name="google.spanner.v1.PartitionOptions.max_partitions",
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=2056,
    serialized_end=2128,
)


_PARTITIONQUERYREQUEST_PARAMTYPESENTRY = _descriptor.Descriptor(
    name="ParamTypesEntry",
    full_name="google.spanner.v1.PartitionQueryRequest.ParamTypesEntry",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="key",
            full_name="google.spanner.v1.PartitionQueryRequest.ParamTypesEntry.key",
            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="google.spanner.v1.PartitionQueryRequest.ParamTypesEntry.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=_b("8\001"),
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1391,
    serialized_end=1465,
)

_PARTITIONQUERYREQUEST = _descriptor.Descriptor(
    name="PartitionQueryRequest",
    full_name="google.spanner.v1.PartitionQueryRequest",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="session",
            full_name="google.spanner.v1.PartitionQueryRequest.session",
            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="transaction",
            full_name="google.spanner.v1.PartitionQueryRequest.transaction",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="sql",
            full_name="google.spanner.v1.PartitionQueryRequest.sql",
            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="params",
            full_name="google.spanner.v1.PartitionQueryRequest.params",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="param_types",
            full_name="google.spanner.v1.PartitionQueryRequest.param_types",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="partition_options",
            full_name="google.spanner.v1.PartitionQueryRequest.partition_options",
            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=[_PARTITIONQUERYREQUEST_PARAMTYPESENTRY],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=2131,
    serialized_end=2505,
)


_PARTITIONREADREQUEST = _descriptor.Descriptor(
    name="PartitionReadRequest",
    full_name="google.spanner.v1.PartitionReadRequest",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="session",
            full_name="google.spanner.v1.PartitionReadRequest.session",
            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="transaction",
            full_name="google.spanner.v1.PartitionReadRequest.transaction",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="table",
            full_name="google.spanner.v1.PartitionReadRequest.table",
            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="index",
            full_name="google.spanner.v1.PartitionReadRequest.index",
            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="columns",
            full_name="google.spanner.v1.PartitionReadRequest.columns",
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="key_set",
            full_name="google.spanner.v1.PartitionReadRequest.key_set",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="partition_options",
            full_name="google.spanner.v1.PartitionReadRequest.partition_options",
            index=6,
            number=9,
            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=2508,
    serialized_end=2763,
)


_PARTITION = _descriptor.Descriptor(
    name="Partition",
    full_name="google.spanner.v1.Partition",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="partition_token",
            full_name="google.spanner.v1.Partition.partition_token",
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        )
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=2765,
    serialized_end=2801,
)


_PARTITIONRESPONSE = _descriptor.Descriptor(
    name="PartitionResponse",
    full_name="google.spanner.v1.PartitionResponse",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="partitions",
            full_name="google.spanner.v1.PartitionResponse.partitions",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="transaction",
            full_name="google.spanner.v1.PartitionResponse.transaction",
            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=2803,
    serialized_end=2925,
)


_READREQUEST = _descriptor.Descriptor(
    name="ReadRequest",
    full_name="google.spanner.v1.ReadRequest",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="session",
            full_name="google.spanner.v1.ReadRequest.session",
            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="transaction",
            full_name="google.spanner.v1.ReadRequest.transaction",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="table",
            full_name="google.spanner.v1.ReadRequest.table",
            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="index",
            full_name="google.spanner.v1.ReadRequest.index",
            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="columns",
            full_name="google.spanner.v1.ReadRequest.columns",
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="key_set",
            full_name="google.spanner.v1.ReadRequest.key_set",
            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,
        ),
        _descriptor.FieldDescriptor(
            name="limit",
            full_name="google.spanner.v1.ReadRequest.limit",
            index=6,
            number=8,
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="resume_token",
            full_name="google.spanner.v1.ReadRequest.resume_token",
            index=7,
            number=9,
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="partition_token",
            full_name="google.spanner.v1.ReadRequest.partition_token",
            index=8,
            number=10,
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=2928,
    serialized_end=3172,
)


_BEGINTRANSACTIONREQUEST = _descriptor.Descriptor(
    name="BeginTransactionRequest",
    full_name="google.spanner.v1.BeginTransactionRequest",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="session",
            full_name="google.spanner.v1.BeginTransactionRequest.session",
            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="options",
            full_name="google.spanner.v1.BeginTransactionRequest.options",
            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=3174,
    serialized_end=3272,
)


_COMMITREQUEST = _descriptor.Descriptor(
    name="CommitRequest",
    full_name="google.spanner.v1.CommitRequest",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="session",
            full_name="google.spanner.v1.CommitRequest.session",
            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="transaction_id",
            full_name="google.spanner.v1.CommitRequest.transaction_id",
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="single_use_transaction",
            full_name="google.spanner.v1.CommitRequest.single_use_transaction",
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="mutations",
            full_name="google.spanner.v1.CommitRequest.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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[
        _descriptor.OneofDescriptor(
            name="transaction",
            full_name="google.spanner.v1.CommitRequest.transaction",
            index=0,
            containing_type=None,
            fields=[],
        )
    ],
    serialized_start=3275,
    serialized_end=3469,
)


_COMMITRESPONSE = _descriptor.Descriptor(
    name="CommitResponse",
    full_name="google.spanner.v1.CommitResponse",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="commit_timestamp",
            full_name="google.spanner.v1.CommitResponse.commit_timestamp",
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        )
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=3471,
    serialized_end=3541,
)


_ROLLBACKREQUEST = _descriptor.Descriptor(
    name="RollbackRequest",
    full_name="google.spanner.v1.RollbackRequest",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="session",
            full_name="google.spanner.v1.RollbackRequest.session",
            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="transaction_id",
            full_name="google.spanner.v1.RollbackRequest.transaction_id",
            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,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=3543,
    serialized_end=3601,
)

_CREATESESSIONREQUEST.fields_by_name["session"].message_type = _SESSION
_SESSION_LABELSENTRY.containing_type = _SESSION
_SESSION.fields_by_name["labels"].message_type = _SESSION_LABELSENTRY
_SESSION.fields_by_name[
    "create_time"
].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_SESSION.fields_by_name[
    "approximate_last_use_time"
].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_LISTSESSIONSRESPONSE.fields_by_name["sessions"].message_type = _SESSION
_EXECUTESQLREQUEST_PARAMTYPESENTRY.fields_by_name[
    "value"
].message_type = google_dot_cloud_dot_spanner__v1_dot_proto_dot_type__pb2._TYPE
_EXECUTESQLREQUEST_PARAMTYPESENTRY.containing_type = _EXECUTESQLREQUEST
_EXECUTESQLREQUEST.fields_by_name[
    "transaction"
].message_type = (
    google_dot_cloud_dot_spanner__v1_dot_proto_dot_transaction__pb2._TRANSACTIONSELECTOR
)
_EXECUTESQLREQUEST.fields_by_name[
    "params"
].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
_EXECUTESQLREQUEST.fields_by_name[
    "param_types"
].message_type = _EXECUTESQLREQUEST_PARAMTYPESENTRY
_EXECUTESQLREQUEST.fields_by_name["query_mode"].enum_type = _EXECUTESQLREQUEST_QUERYMODE
_EXECUTESQLREQUEST_QUERYMODE.containing_type = _EXECUTESQLREQUEST
_EXECUTEBATCHDMLREQUEST_STATEMENT_PARAMTYPESENTRY.fields_by_name[
    "value"
].message_type = google_dot_cloud_dot_spanner__v1_dot_proto_dot_type__pb2._TYPE
_EXECUTEBATCHDMLREQUEST_STATEMENT_PARAMTYPESENTRY.containing_type = (
    _EXECUTEBATCHDMLREQUEST_STATEMENT
)
_EXECUTEBATCHDMLREQUEST_STATEMENT.fields_by_name[
    "params"
].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
_EXECUTEBATCHDMLREQUEST_STATEMENT.fields_by_name[
    "param_types"
].message_type = _EXECUTEBATCHDMLREQUEST_STATEMENT_PARAMTYPESENTRY
_EXECUTEBATCHDMLREQUEST_STATEMENT.containing_type = _EXECUTEBATCHDMLREQUEST
_EXECUTEBATCHDMLREQUEST.fields_by_name[
    "transaction"
].message_type = (
    google_dot_cloud_dot_spanner__v1_dot_proto_dot_transaction__pb2._TRANSACTIONSELECTOR
)
_EXECUTEBATCHDMLREQUEST.fields_by_name[
    "statements"
].message_type = _EXECUTEBATCHDMLREQUEST_STATEMENT
_EXECUTEBATCHDMLRESPONSE.fields_by_name[
    "result_sets"
].message_type = (
    google_dot_cloud_dot_spanner__v1_dot_proto_dot_result__set__pb2._RESULTSET
)
_EXECUTEBATCHDMLRESPONSE.fields_by_name[
    "status"
].message_type = google_dot_rpc_dot_status__pb2._STATUS
_PARTITIONQUERYREQUEST_PARAMTYPESENTRY.fields_by_name[
    "value"
].message_type = google_dot_cloud_dot_spanner__v1_dot_proto_dot_type__pb2._TYPE
_PARTITIONQUERYREQUEST_PARAMTYPESENTRY.containing_type = _PARTITIONQUERYREQUEST
_PARTITIONQUERYREQUEST.fields_by_name[
    "transaction"
].message_type = (
    google_dot_cloud_dot_spanner__v1_dot_proto_dot_transaction__pb2._TRANSACTIONSELECTOR
)
_PARTITIONQUERYREQUEST.fields_by_name[
    "params"
].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
_PARTITIONQUERYREQUEST.fields_by_name[
    "param_types"
].message_type = _PARTITIONQUERYREQUEST_PARAMTYPESENTRY
_PARTITIONQUERYREQUEST.fields_by_name[
    "partition_options"
].message_type = _PARTITIONOPTIONS
_PARTITIONREADREQUEST.fields_by_name[
    "transaction"
].message_type = (
    google_dot_cloud_dot_spanner__v1_dot_proto_dot_transaction__pb2._TRANSACTIONSELECTOR
)
_PARTITIONREADREQUEST.fields_by_name[
    "key_set"
].message_type = google_dot_cloud_dot_spanner__v1_dot_proto_dot_keys__pb2._KEYSET
_PARTITIONREADREQUEST.fields_by_name[
    "partition_options"
].message_type = _PARTITIONOPTIONS
_PARTITIONRESPONSE.fields_by_name["partitions"].message_type = _PARTITION
_PARTITIONRESPONSE.fields_by_name[
    "transaction"
].message_type = (
    google_dot_cloud_dot_spanner__v1_dot_proto_dot_transaction__pb2._TRANSACTION
)
_READREQUEST.fields_by_name[
    "transaction"
].message_type = (
    google_dot_cloud_dot_spanner__v1_dot_proto_dot_transaction__pb2._TRANSACTIONSELECTOR
)
_READREQUEST.fields_by_name[
    "key_set"
].message_type = google_dot_cloud_dot_spanner__v1_dot_proto_dot_keys__pb2._KEYSET
_BEGINTRANSACTIONREQUEST.fields_by_name[
    "options"
].message_type = (
    google_dot_cloud_dot_spanner__v1_dot_proto_dot_transaction__pb2._TRANSACTIONOPTIONS
)
_COMMITREQUEST.fields_by_name[
    "single_use_transaction"
].message_type = (
    google_dot_cloud_dot_spanner__v1_dot_proto_dot_transaction__pb2._TRANSACTIONOPTIONS
)
_COMMITREQUEST.fields_by_name[
    "mutations"
].message_type = google_dot_cloud_dot_spanner__v1_dot_proto_dot_mutation__pb2._MUTATION
_COMMITREQUEST.oneofs_by_name["transaction"].fields.append(
    _COMMITREQUEST.fields_by_name["transaction_id"]
)
_COMMITREQUEST.fields_by_name[
    "transaction_id"
].containing_oneof = _COMMITREQUEST.oneofs_by_name["transaction"]
_COMMITREQUEST.oneofs_by_name["transaction"].fields.append(
    _COMMITREQUEST.fields_by_name["single_use_transaction"]
)
_COMMITREQUEST.fields_by_name[
    "single_use_transaction"
].containing_oneof = _COMMITREQUEST.oneofs_by_name["transaction"]
_COMMITRESPONSE.fields_by_name[
    "commit_timestamp"
].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
DESCRIPTOR.message_types_by_name["CreateSessionRequest"] = _CREATESESSIONREQUEST
DESCRIPTOR.message_types_by_name["Session"] = _SESSION
DESCRIPTOR.message_types_by_name["GetSessionRequest"] = _GETSESSIONREQUEST
DESCRIPTOR.message_types_by_name["ListSessionsRequest"] = _LISTSESSIONSREQUEST
DESCRIPTOR.message_types_by_name["ListSessionsResponse"] = _LISTSESSIONSRESPONSE
DESCRIPTOR.message_types_by_name["DeleteSessionRequest"] = _DELETESESSIONREQUEST
DESCRIPTOR.message_types_by_name["ExecuteSqlRequest"] = _EXECUTESQLREQUEST
DESCRIPTOR.message_types_by_name["ExecuteBatchDmlRequest"] = _EXECUTEBATCHDMLREQUEST
DESCRIPTOR.message_types_by_name["ExecuteBatchDmlResponse"] = _EXECUTEBATCHDMLRESPONSE
DESCRIPTOR.message_types_by_name["PartitionOptions"] = _PARTITIONOPTIONS
DESCRIPTOR.message_types_by_name["PartitionQueryRequest"] = _PARTITIONQUERYREQUEST
DESCRIPTOR.message_types_by_name["PartitionReadRequest"] = _PARTITIONREADREQUEST
DESCRIPTOR.message_types_by_name["Partition"] = _PARTITION
DESCRIPTOR.message_types_by_name["PartitionResponse"] = _PARTITIONRESPONSE
DESCRIPTOR.message_types_by_name["ReadRequest"] = _READREQUEST
DESCRIPTOR.message_types_by_name["BeginTransactionRequest"] = _BEGINTRANSACTIONREQUEST
DESCRIPTOR.message_types_by_name["CommitRequest"] = _COMMITREQUEST
DESCRIPTOR.message_types_by_name["CommitResponse"] = _COMMITRESPONSE
DESCRIPTOR.message_types_by_name["RollbackRequest"] = _ROLLBACKREQUEST
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

CreateSessionRequest = _reflection.GeneratedProtocolMessageType(
    "CreateSessionRequest",
    (_message.Message,),
    dict(
        DESCRIPTOR=_CREATESESSIONREQUEST,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The request for
  [CreateSession][google.spanner.v1.Spanner.CreateSession].
  
  
  Attributes:
      database:
          Required. The database in which the new session is created.
      session:
          The session to create.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.CreateSessionRequest)
    ),
)
_sym_db.RegisterMessage(CreateSessionRequest)

Session = _reflection.GeneratedProtocolMessageType(
    "Session",
    (_message.Message,),
    dict(
        LabelsEntry=_reflection.GeneratedProtocolMessageType(
            "LabelsEntry",
            (_message.Message,),
            dict(
                DESCRIPTOR=_SESSION_LABELSENTRY,
                __module__="google.cloud.spanner_v1.proto.spanner_pb2"
                # @@protoc_insertion_point(class_scope:google.spanner.v1.Session.LabelsEntry)
            ),
        ),
        DESCRIPTOR=_SESSION,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""A session in the Cloud Spanner API.
  
  
  Attributes:
      name:
          The name of the session. This is always system-assigned;
          values provided when creating a session are ignored.
      labels:
          The labels for the session.  -  Label keys must be between 1
          and 63 characters long and must conform    to the following
          regular expression: ``[a-z]([-a-z0-9]*[a-z0-9])?``. -  Label
          values must be between 0 and 63 characters long and must
          conform to the regular expression
          ``([a-z]([-a-z0-9]*[a-z0-9])?)?``. -  No more than 64 labels
          can be associated with a given session.  See
          https://goo.gl/xmQnxf for more information on and examples of
          labels.
      create_time:
          Output only. The timestamp when the session is created.
      approximate_last_use_time:
          Output only. The approximate timestamp when the session is
          last used. It is typically earlier than the actual last use
          time.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.Session)
    ),
)
_sym_db.RegisterMessage(Session)
_sym_db.RegisterMessage(Session.LabelsEntry)

GetSessionRequest = _reflection.GeneratedProtocolMessageType(
    "GetSessionRequest",
    (_message.Message,),
    dict(
        DESCRIPTOR=_GETSESSIONREQUEST,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The request for [GetSession][google.spanner.v1.Spanner.GetSession].
  
  
  Attributes:
      name:
          Required. The name of the session to retrieve.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.GetSessionRequest)
    ),
)
_sym_db.RegisterMessage(GetSessionRequest)

ListSessionsRequest = _reflection.GeneratedProtocolMessageType(
    "ListSessionsRequest",
    (_message.Message,),
    dict(
        DESCRIPTOR=_LISTSESSIONSREQUEST,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The request for [ListSessions][google.spanner.v1.Spanner.ListSessions].
  
  
  Attributes:
      database:
          Required. The database in which to list sessions.
      page_size:
          Number of sessions to be returned in the response. If 0 or
          less, defaults to the server's maximum allowed page size.
      page_token:
          If non-empty, ``page_token`` should contain a [next\_page\_tok
          en][google.spanner.v1.ListSessionsResponse.next\_page\_token]
          from a previous [ListSessionsResponse][google.spanner.v1.ListS
          essionsResponse].
      filter:
          An expression for filtering the results of the request. Filter
          rules are case insensitive. The fields eligible for filtering
          are:  -  ``labels.key`` where key is the name of a label  Some
          examples of using filters are:  -  ``labels.env:*`` --> The
          session has the label "env". -  ``labels.env:dev`` --> The
          session has the label "env" and the value    of the label
          contains the string "dev".
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.ListSessionsRequest)
    ),
)
_sym_db.RegisterMessage(ListSessionsRequest)

ListSessionsResponse = _reflection.GeneratedProtocolMessageType(
    "ListSessionsResponse",
    (_message.Message,),
    dict(
        DESCRIPTOR=_LISTSESSIONSRESPONSE,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The response for [ListSessions][google.spanner.v1.Spanner.ListSessions].
  
  
  Attributes:
      sessions:
          The list of requested sessions.
      next_page_token:
          ``next_page_token`` can be sent in a subsequent
          [ListSessions][google.spanner.v1.Spanner.ListSessions] call to
          fetch more of the matching sessions.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.ListSessionsResponse)
    ),
)
_sym_db.RegisterMessage(ListSessionsResponse)

DeleteSessionRequest = _reflection.GeneratedProtocolMessageType(
    "DeleteSessionRequest",
    (_message.Message,),
    dict(
        DESCRIPTOR=_DELETESESSIONREQUEST,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The request for
  [DeleteSession][google.spanner.v1.Spanner.DeleteSession].
  
  
  Attributes:
      name:
          Required. The name of the session to delete.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.DeleteSessionRequest)
    ),
)
_sym_db.RegisterMessage(DeleteSessionRequest)

ExecuteSqlRequest = _reflection.GeneratedProtocolMessageType(
    "ExecuteSqlRequest",
    (_message.Message,),
    dict(
        ParamTypesEntry=_reflection.GeneratedProtocolMessageType(
            "ParamTypesEntry",
            (_message.Message,),
            dict(
                DESCRIPTOR=_EXECUTESQLREQUEST_PARAMTYPESENTRY,
                __module__="google.cloud.spanner_v1.proto.spanner_pb2"
                # @@protoc_insertion_point(class_scope:google.spanner.v1.ExecuteSqlRequest.ParamTypesEntry)
            ),
        ),
        DESCRIPTOR=_EXECUTESQLREQUEST,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The request for [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] and
  [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql].
  
  
  Attributes:
      session:
          Required. The session in which the SQL query should be
          performed.
      transaction:
          The transaction to use. If none is provided, the default is a
          temporary read-only transaction with strong concurrency.  The
          transaction to use.  For queries, if none is provided, the
          default is a temporary read-only transaction with strong
          concurrency.  Standard DML statements require a ReadWrite
          transaction. Single-use transactions are not supported (to
          avoid replay). The caller must either supply an existing
          transaction ID or begin a new transaction.  Partitioned DML
          requires an existing PartitionedDml transaction ID.
      sql:
          Required. The SQL string.
      params:
          The SQL string can contain parameter placeholders. A parameter
          placeholder consists of ``'@'`` followed by the parameter
          name. Parameter names consist of any combination of letters,
          numbers, and underscores.  Parameters can appear anywhere that
          a literal value is expected. The same parameter name can be
          used more than once, for example: ``"WHERE id > @msg_id AND id
          < @msg_id + 100"``  It is an error to execute an SQL statement
          with unbound parameters.  Parameter values are specified using
          ``params``, which is a JSON object whose keys are parameter
          names, and whose values are the corresponding parameter
          values.
      param_types:
          It is not always possible for Cloud Spanner to infer the right
          SQL type from a JSON value. For example, values of type
          ``BYTES`` and values of type ``STRING`` both appear in
          [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON
          strings.  In these cases, ``param_types`` can be used to
          specify the exact SQL type for some or all of the SQL
          statement parameters. See the definition of
          [Type][google.spanner.v1.Type] for more information about SQL
          types.
      resume_token:
          If this request is resuming a previously interrupted SQL
          statement execution, ``resume_token`` should be copied from
          the last
          [PartialResultSet][google.spanner.v1.PartialResultSet] yielded
          before the interruption. Doing this enables the new SQL
          statement execution to resume where the last one left off. The
          rest of the request parameters must exactly match the request
          that yielded this token.
      query_mode:
          Used to control the amount of debugging information returned
          in [ResultSetStats][google.spanner.v1.ResultSetStats]. If [par
          tition\_token][google.spanner.v1.ExecuteSqlRequest.partition\_
          token] is set,
          [query\_mode][google.spanner.v1.ExecuteSqlRequest.query\_mode]
          can only be set to [QueryMode.NORMAL][google.spanner.v1.Execut
          eSqlRequest.QueryMode.NORMAL].
      partition_token:
          If present, results will be restricted to the specified
          partition previously created using PartitionQuery(). There
          must be an exact match for the values of fields common to this
          message and the PartitionQueryRequest message used to create
          this partition\_token.
      seqno:
          A per-transaction sequence number used to identify this
          request. This makes each request idempotent such that if the
          request is received multiple times, at most one will succeed.
          The sequence number must be monotonically increasing within
          the transaction. If a request arrives for the first time with
          an out-of-order sequence number, the transaction may be
          aborted. Replays of previously handled requests will yield the
          same response as the first execution.  Required for DML
          statements. Ignored for queries.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.ExecuteSqlRequest)
    ),
)
_sym_db.RegisterMessage(ExecuteSqlRequest)
_sym_db.RegisterMessage(ExecuteSqlRequest.ParamTypesEntry)

ExecuteBatchDmlRequest = _reflection.GeneratedProtocolMessageType(
    "ExecuteBatchDmlRequest",
    (_message.Message,),
    dict(
        Statement=_reflection.GeneratedProtocolMessageType(
            "Statement",
            (_message.Message,),
            dict(
                ParamTypesEntry=_reflection.GeneratedProtocolMessageType(
                    "ParamTypesEntry",
                    (_message.Message,),
                    dict(
                        DESCRIPTOR=_EXECUTEBATCHDMLREQUEST_STATEMENT_PARAMTYPESENTRY,
                        __module__="google.cloud.spanner_v1.proto.spanner_pb2"
                        # @@protoc_insertion_point(class_scope:google.spanner.v1.ExecuteBatchDmlRequest.Statement.ParamTypesEntry)
                    ),
                ),
                DESCRIPTOR=_EXECUTEBATCHDMLREQUEST_STATEMENT,
                __module__="google.cloud.spanner_v1.proto.spanner_pb2",
                __doc__="""A single DML statement.
    
    
    Attributes:
        sql:
            Required. The DML string.
        params:
            The DML string can contain parameter placeholders. A parameter
            placeholder consists of ``'@'`` followed by the parameter
            name. Parameter names consist of any combination of letters,
            numbers, and underscores.  Parameters can appear anywhere that
            a literal value is expected. The same parameter name can be
            used more than once, for example: ``"WHERE id > @msg_id AND id
            < @msg_id + 100"``  It is an error to execute an SQL statement
            with unbound parameters.  Parameter values are specified using
            ``params``, which is a JSON object whose keys are parameter
            names, and whose values are the corresponding parameter
            values.
        param_types:
            It is not always possible for Cloud Spanner to infer the right
            SQL type from a JSON value. For example, values of type
            ``BYTES`` and values of type ``STRING`` both appear in [params
            ][google.spanner.v1.ExecuteBatchDmlRequest.Statement.params]
            as JSON strings.  In these cases, ``param_types`` can be used
            to specify the exact SQL type for some or all of the SQL
            statement parameters. See the definition of
            [Type][google.spanner.v1.Type] for more information about SQL
            types.
    """,
                # @@protoc_insertion_point(class_scope:google.spanner.v1.ExecuteBatchDmlRequest.Statement)
            ),
        ),
        DESCRIPTOR=_EXECUTEBATCHDMLREQUEST,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The request for
  [ExecuteBatchDml][google.spanner.v1.Spanner.ExecuteBatchDml]
  
  
  Attributes:
      session:
          Required. The session in which the DML statements should be
          performed.
      transaction:
          The transaction to use. A ReadWrite transaction is required.
          Single-use transactions are not supported (to avoid replay).
          The caller must either supply an existing transaction ID or
          begin a new transaction.
      statements:
          The list of statements to execute in this batch. Statements
          are executed serially, such that the effects of statement i
          are visible to statement i+1. Each statement must be a DML
          statement. Execution will stop at the first failed statement;
          the remaining statements will not run.  REQUIRES:
          statements\_size() > 0.
      seqno:
          A per-transaction sequence number used to identify this
          request. This is used in the same space as the seqno in
          [ExecuteSqlRequest][Spanner.ExecuteSqlRequest]. See more
          details in [ExecuteSqlRequest][Spanner.ExecuteSqlRequest].
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.ExecuteBatchDmlRequest)
    ),
)
_sym_db.RegisterMessage(ExecuteBatchDmlRequest)
_sym_db.RegisterMessage(ExecuteBatchDmlRequest.Statement)
_sym_db.RegisterMessage(ExecuteBatchDmlRequest.Statement.ParamTypesEntry)

ExecuteBatchDmlResponse = _reflection.GeneratedProtocolMessageType(
    "ExecuteBatchDmlResponse",
    (_message.Message,),
    dict(
        DESCRIPTOR=_EXECUTEBATCHDMLRESPONSE,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The response for
  [ExecuteBatchDml][google.spanner.v1.Spanner.ExecuteBatchDml]. Contains a
  list of [ResultSet][google.spanner.v1.ResultSet], one for each DML
  statement that has successfully executed. If a statement fails, the
  error is returned as part of the response payload. Clients can determine
  whether all DML statements have run successfully, or if a statement
  failed, using one of the following approaches:
  
  1. Check if 'status' field is OkStatus.
  2. Check if result\_sets\_size() equals the number of statements in
     [ExecuteBatchDmlRequest][Spanner.ExecuteBatchDmlRequest].
  
  Example 1: A request with 5 DML statements, all executed successfully.
  Result: A response with 5 ResultSets, one for each statement in the same
  order, and an OK status.
  
  Example 2: A request with 5 DML statements. The 3rd statement has a
  syntax error. Result: A response with 2 ResultSets, for the first 2
  statements that run successfully, and a syntax error (INVALID\_ARGUMENT)
  status. From result\_set\_size() client can determine that the 3rd
  statement has failed.
  
  
  Attributes:
      result_sets:
          ResultSets, one for each statement in the request that ran
          successfully, in the same order as the statements in the
          request. Each [ResultSet][google.spanner.v1.ResultSet] will
          not contain any rows. The
          [ResultSetStats][google.spanner.v1.ResultSetStats] in each
          [ResultSet][google.spanner.v1.ResultSet] will contain the
          number of rows modified by the statement.  Only the first
          ResultSet in the response contains a valid
          [ResultSetMetadata][google.spanner.v1.ResultSetMetadata].
      status:
          If all DML statements are executed successfully, status will
          be OK. Otherwise, the error status of the first failed
          statement.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.ExecuteBatchDmlResponse)
    ),
)
_sym_db.RegisterMessage(ExecuteBatchDmlResponse)

PartitionOptions = _reflection.GeneratedProtocolMessageType(
    "PartitionOptions",
    (_message.Message,),
    dict(
        DESCRIPTOR=_PARTITIONOPTIONS,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""Options for a PartitionQueryRequest and PartitionReadRequest.
  
  
  Attributes:
      partition_size_bytes:
          **Note:** This hint is currently ignored by PartitionQuery and
          PartitionRead requests.  The desired data size for each
          partition generated. The default for this option is currently
          1 GiB. This is only a hint. The actual size of each partition
          may be smaller or larger than this size request.
      max_partitions:
          **Note:** This hint is currently ignored by PartitionQuery and
          PartitionRead requests.  The desired maximum number of
          partitions to return. For example, this may be set to the
          number of workers available. The default for this option is
          currently 10,000. The maximum value is currently 200,000. This
          is only a hint. The actual number of partitions returned may
          be smaller or larger than this maximum count request.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.PartitionOptions)
    ),
)
_sym_db.RegisterMessage(PartitionOptions)

PartitionQueryRequest = _reflection.GeneratedProtocolMessageType(
    "PartitionQueryRequest",
    (_message.Message,),
    dict(
        ParamTypesEntry=_reflection.GeneratedProtocolMessageType(
            "ParamTypesEntry",
            (_message.Message,),
            dict(
                DESCRIPTOR=_PARTITIONQUERYREQUEST_PARAMTYPESENTRY,
                __module__="google.cloud.spanner_v1.proto.spanner_pb2"
                # @@protoc_insertion_point(class_scope:google.spanner.v1.PartitionQueryRequest.ParamTypesEntry)
            ),
        ),
        DESCRIPTOR=_PARTITIONQUERYREQUEST,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The request for
  [PartitionQuery][google.spanner.v1.Spanner.PartitionQuery]
  
  
  Attributes:
      session:
          Required. The session used to create the partitions.
      transaction:
          Read only snapshot transactions are supported, read/write and
          single use transactions are not.
      sql:
          The query request to generate partitions for. The request will
          fail if the query is not root partitionable. The query plan of
          a root partitionable query has a single distributed union
          operator. A distributed union operator conceptually divides
          one or more tables into multiple splits, remotely evaluates a
          subquery independently on each split, and then unions all
          results.  This must not contain DML commands, such as INSERT,
          UPDATE, or DELETE. Use [ExecuteStreamingSql][google.spanner.v1
          .Spanner.ExecuteStreamingSql] with a PartitionedDml
          transaction for large, partition-friendly DML operations.
      params:
          The SQL query string can contain parameter placeholders. A
          parameter placeholder consists of ``'@'`` followed by the
          parameter name. Parameter names consist of any combination of
          letters, numbers, and underscores.  Parameters can appear
          anywhere that a literal value is expected. The same parameter
          name can be used more than once, for example: ``"WHERE id >
          @msg_id AND id < @msg_id + 100"``  It is an error to execute
          an SQL query with unbound parameters.  Parameter values are
          specified using ``params``, which is a JSON object whose keys
          are parameter names, and whose values are the corresponding
          parameter values.
      param_types:
          It is not always possible for Cloud Spanner to infer the right
          SQL type from a JSON value. For example, values of type
          ``BYTES`` and values of type ``STRING`` both appear in
          [params][google.spanner.v1.PartitionQueryRequest.params] as
          JSON strings.  In these cases, ``param_types`` can be used to
          specify the exact SQL type for some or all of the SQL query
          parameters. See the definition of
          [Type][google.spanner.v1.Type] for more information about SQL
          types.
      partition_options:
          Additional options that affect how many partitions are
          created.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.PartitionQueryRequest)
    ),
)
_sym_db.RegisterMessage(PartitionQueryRequest)
_sym_db.RegisterMessage(PartitionQueryRequest.ParamTypesEntry)

PartitionReadRequest = _reflection.GeneratedProtocolMessageType(
    "PartitionReadRequest",
    (_message.Message,),
    dict(
        DESCRIPTOR=_PARTITIONREADREQUEST,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The request for [PartitionRead][google.spanner.v1.Spanner.PartitionRead]
  
  
  Attributes:
      session:
          Required. The session used to create the partitions.
      transaction:
          Read only snapshot transactions are supported, read/write and
          single use transactions are not.
      table:
          Required. The name of the table in the database to be read.
      index:
          If non-empty, the name of an index on
          [table][google.spanner.v1.PartitionReadRequest.table]. This
          index is used instead of the table primary key when
          interpreting
          [key\_set][google.spanner.v1.PartitionReadRequest.key\_set]
          and sorting result rows. See
          [key\_set][google.spanner.v1.PartitionReadRequest.key\_set]
          for further information.
      columns:
          The columns of
          [table][google.spanner.v1.PartitionReadRequest.table] to be
          returned for each row matching this request.
      key_set:
          Required. ``key_set`` identifies the rows to be yielded.
          ``key_set`` names the primary keys of the rows in
          [table][google.spanner.v1.PartitionReadRequest.table] to be
          yielded, unless
          [index][google.spanner.v1.PartitionReadRequest.index] is
          present. If
          [index][google.spanner.v1.PartitionReadRequest.index] is
          present, then
          [key\_set][google.spanner.v1.PartitionReadRequest.key\_set]
          instead names index keys in
          [index][google.spanner.v1.PartitionReadRequest.index].  It is
          not an error for the ``key_set`` to name rows that do not
          exist in the database. Read yields nothing for nonexistent
          rows.
      partition_options:
          Additional options that affect how many partitions are
          created.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.PartitionReadRequest)
    ),
)
_sym_db.RegisterMessage(PartitionReadRequest)

Partition = _reflection.GeneratedProtocolMessageType(
    "Partition",
    (_message.Message,),
    dict(
        DESCRIPTOR=_PARTITION,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""Information returned for each partition returned in a PartitionResponse.
  
  
  Attributes:
      partition_token:
          This token can be passed to Read, StreamingRead, ExecuteSql,
          or ExecuteStreamingSql requests to restrict the results to
          those identified by this partition token.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.Partition)
    ),
)
_sym_db.RegisterMessage(Partition)

PartitionResponse = _reflection.GeneratedProtocolMessageType(
    "PartitionResponse",
    (_message.Message,),
    dict(
        DESCRIPTOR=_PARTITIONRESPONSE,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The response for
  [PartitionQuery][google.spanner.v1.Spanner.PartitionQuery] or
  [PartitionRead][google.spanner.v1.Spanner.PartitionRead]
  
  
  Attributes:
      partitions:
          Partitions created by this request.
      transaction:
          Transaction created by this request.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.PartitionResponse)
    ),
)
_sym_db.RegisterMessage(PartitionResponse)

ReadRequest = _reflection.GeneratedProtocolMessageType(
    "ReadRequest",
    (_message.Message,),
    dict(
        DESCRIPTOR=_READREQUEST,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The request for [Read][google.spanner.v1.Spanner.Read] and
  [StreamingRead][google.spanner.v1.Spanner.StreamingRead].
  
  
  Attributes:
      session:
          Required. The session in which the read should be performed.
      transaction:
          The transaction to use. If none is provided, the default is a
          temporary read-only transaction with strong concurrency.
      table:
          Required. The name of the table in the database to be read.
      index:
          If non-empty, the name of an index on
          [table][google.spanner.v1.ReadRequest.table]. This index is
          used instead of the table primary key when interpreting
          [key\_set][google.spanner.v1.ReadRequest.key\_set] and sorting
          result rows. See
          [key\_set][google.spanner.v1.ReadRequest.key\_set] for further
          information.
      columns:
          The columns of [table][google.spanner.v1.ReadRequest.table] to
          be returned for each row matching this request.
      key_set:
          Required. ``key_set`` identifies the rows to be yielded.
          ``key_set`` names the primary keys of the rows in
          [table][google.spanner.v1.ReadRequest.table] to be yielded,
          unless [index][google.spanner.v1.ReadRequest.index] is
          present. If [index][google.spanner.v1.ReadRequest.index] is
          present, then
          [key\_set][google.spanner.v1.ReadRequest.key\_set] instead
          names index keys in
          [index][google.spanner.v1.ReadRequest.index].  If the [partiti
          on\_token][google.spanner.v1.ReadRequest.partition\_token]
          field is empty, rows are yielded in table primary key order
          (if [index][google.spanner.v1.ReadRequest.index] is empty) or
          index key order (if
          [index][google.spanner.v1.ReadRequest.index] is non-empty). If
          the [partition\_token][google.spanner.v1.ReadRequest.partition
          \_token] field is not empty, rows will be yielded in an
          unspecified order.  It is not an error for the ``key_set`` to
          name rows that do not exist in the database. Read yields
          nothing for nonexistent rows.
      limit:
          If greater than zero, only the first ``limit`` rows are
          yielded. If ``limit`` is zero, the default is no limit. A
          limit cannot be specified if ``partition_token`` is set.
      resume_token:
          If this request is resuming a previously interrupted read,
          ``resume_token`` should be copied from the last
          [PartialResultSet][google.spanner.v1.PartialResultSet] yielded
          before the interruption. Doing this enables the new read to
          resume where the last read left off. The rest of the request
          parameters must exactly match the request that yielded this
          token.
      partition_token:
          If present, results will be restricted to the specified
          partition previously created using PartitionRead(). There must
          be an exact match for the values of fields common to this
          message and the PartitionReadRequest message used to create
          this partition\_token.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.ReadRequest)
    ),
)
_sym_db.RegisterMessage(ReadRequest)

BeginTransactionRequest = _reflection.GeneratedProtocolMessageType(
    "BeginTransactionRequest",
    (_message.Message,),
    dict(
        DESCRIPTOR=_BEGINTRANSACTIONREQUEST,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The request for
  [BeginTransaction][google.spanner.v1.Spanner.BeginTransaction].
  
  
  Attributes:
      session:
          Required. The session in which the transaction runs.
      options:
          Required. Options for the new transaction.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.BeginTransactionRequest)
    ),
)
_sym_db.RegisterMessage(BeginTransactionRequest)

CommitRequest = _reflection.GeneratedProtocolMessageType(
    "CommitRequest",
    (_message.Message,),
    dict(
        DESCRIPTOR=_COMMITREQUEST,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The request for [Commit][google.spanner.v1.Spanner.Commit].
  
  
  Attributes:
      session:
          Required. The session in which the transaction to be committed
          is running.
      transaction:
          Required. The transaction in which to commit.
      transaction_id:
          Commit a previously-started transaction.
      single_use_transaction:
          Execute mutations in a temporary transaction. Note that unlike
          commit of a previously-started transaction, commit with a
          temporary transaction is non-idempotent. That is, if the
          ``CommitRequest`` is sent to Cloud Spanner more than once (for
          instance, due to retries in the application, or in the
          transport library), it is possible that the mutations are
          executed more than once. If this is undesirable, use
          [BeginTransaction][google.spanner.v1.Spanner.BeginTransaction]
          and [Commit][google.spanner.v1.Spanner.Commit] instead.
      mutations:
          The mutations to be executed when this transaction commits.
          All mutations are applied atomically, in the order they appear
          in this list.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.CommitRequest)
    ),
)
_sym_db.RegisterMessage(CommitRequest)

CommitResponse = _reflection.GeneratedProtocolMessageType(
    "CommitResponse",
    (_message.Message,),
    dict(
        DESCRIPTOR=_COMMITRESPONSE,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The response for [Commit][google.spanner.v1.Spanner.Commit].
  
  
  Attributes:
      commit_timestamp:
          The Cloud Spanner timestamp at which the transaction
          committed.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.CommitResponse)
    ),
)
_sym_db.RegisterMessage(CommitResponse)

RollbackRequest = _reflection.GeneratedProtocolMessageType(
    "RollbackRequest",
    (_message.Message,),
    dict(
        DESCRIPTOR=_ROLLBACKREQUEST,
        __module__="google.cloud.spanner_v1.proto.spanner_pb2",
        __doc__="""The request for [Rollback][google.spanner.v1.Spanner.Rollback].
  
  
  Attributes:
      session:
          Required. The session in which the transaction to roll back is
          running.
      transaction_id:
          Required. The transaction to roll back.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.RollbackRequest)
    ),
)
_sym_db.RegisterMessage(RollbackRequest)


DESCRIPTOR._options = None
_SESSION_LABELSENTRY._options = None
_EXECUTESQLREQUEST_PARAMTYPESENTRY._options = None
_EXECUTEBATCHDMLREQUEST_STATEMENT_PARAMTYPESENTRY._options = None
_PARTITIONQUERYREQUEST_PARAMTYPESENTRY._options = None

_SPANNER = _descriptor.ServiceDescriptor(
    name="Spanner",
    full_name="google.spanner.v1.Spanner",
    file=DESCRIPTOR,
    index=0,
    serialized_options=None,
    serialized_start=3604,
    serialized_end=5978,
    methods=[
        _descriptor.MethodDescriptor(
            name="CreateSession",
            full_name="google.spanner.v1.Spanner.CreateSession",
            index=0,
            containing_service=None,
            input_type=_CREATESESSIONREQUEST,
            output_type=_SESSION,
            serialized_options=_b(
                '\202\323\344\223\002?":/v1/{database=projects/*/instances/*/databases/*}/sessions:\001*'
            ),
        ),
        _descriptor.MethodDescriptor(
            name="GetSession",
            full_name="google.spanner.v1.Spanner.GetSession",
            index=1,
            containing_service=None,
            input_type=_GETSESSIONREQUEST,
            output_type=_SESSION,
            serialized_options=_b(
                "\202\323\344\223\002:\0228/v1/{name=projects/*/instances/*/databases/*/sessions/*}"
            ),
        ),
        _descriptor.MethodDescriptor(
            name="ListSessions",
            full_name="google.spanner.v1.Spanner.ListSessions",
            index=2,
            containing_service=None,
            input_type=_LISTSESSIONSREQUEST,
            output_type=_LISTSESSIONSRESPONSE,
            serialized_options=_b(
                "\202\323\344\223\002<\022:/v1/{database=projects/*/instances/*/databases/*}/sessions"
            ),
        ),
        _descriptor.MethodDescriptor(
            name="DeleteSession",
            full_name="google.spanner.v1.Spanner.DeleteSession",
            index=3,
            containing_service=None,
            input_type=_DELETESESSIONREQUEST,
            output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
            serialized_options=_b(
                "\202\323\344\223\002:*8/v1/{name=projects/*/instances/*/databases/*/sessions/*}"
            ),
        ),
        _descriptor.MethodDescriptor(
            name="ExecuteSql",
            full_name="google.spanner.v1.Spanner.ExecuteSql",
            index=4,
            containing_service=None,
            input_type=_EXECUTESQLREQUEST,
            output_type=google_dot_cloud_dot_spanner__v1_dot_proto_dot_result__set__pb2._RESULTSET,
            serialized_options=_b(
                '\202\323\344\223\002K"F/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeSql:\001*'
            ),
        ),
        _descriptor.MethodDescriptor(
            name="ExecuteStreamingSql",
            full_name="google.spanner.v1.Spanner.ExecuteStreamingSql",
            index=5,
            containing_service=None,
            input_type=_EXECUTESQLREQUEST,
            output_type=google_dot_cloud_dot_spanner__v1_dot_proto_dot_result__set__pb2._PARTIALRESULTSET,
            serialized_options=_b(
                '\202\323\344\223\002T"O/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeStreamingSql:\001*'
            ),
        ),
        _descriptor.MethodDescriptor(
            name="ExecuteBatchDml",
            full_name="google.spanner.v1.Spanner.ExecuteBatchDml",
            index=6,
            containing_service=None,
            input_type=_EXECUTEBATCHDMLREQUEST,
            output_type=_EXECUTEBATCHDMLRESPONSE,
            serialized_options=_b(
                '\202\323\344\223\002P"K/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeBatchDml:\001*'
            ),
        ),
        _descriptor.MethodDescriptor(
            name="Read",
            full_name="google.spanner.v1.Spanner.Read",
            index=7,
            containing_service=None,
            input_type=_READREQUEST,
            output_type=google_dot_cloud_dot_spanner__v1_dot_proto_dot_result__set__pb2._RESULTSET,
            serialized_options=_b(
                '\202\323\344\223\002E"@/v1/{session=projects/*/instances/*/databases/*/sessions/*}:read:\001*'
            ),
        ),
        _descriptor.MethodDescriptor(
            name="StreamingRead",
            full_name="google.spanner.v1.Spanner.StreamingRead",
            index=8,
            containing_service=None,
            input_type=_READREQUEST,
            output_type=google_dot_cloud_dot_spanner__v1_dot_proto_dot_result__set__pb2._PARTIALRESULTSET,
            serialized_options=_b(
                '\202\323\344\223\002N"I/v1/{session=projects/*/instances/*/databases/*/sessions/*}:streamingRead:\001*'
            ),
        ),
        _descriptor.MethodDescriptor(
            name="BeginTransaction",
            full_name="google.spanner.v1.Spanner.BeginTransaction",
            index=9,
            containing_service=None,
            input_type=_BEGINTRANSACTIONREQUEST,
            output_type=google_dot_cloud_dot_spanner__v1_dot_proto_dot_transaction__pb2._TRANSACTION,
            serialized_options=_b(
                '\202\323\344\223\002Q"L/v1/{session=projects/*/instances/*/databases/*/sessions/*}:beginTransaction:\001*'
            ),
        ),
        _descriptor.MethodDescriptor(
            name="Commit",
            full_name="google.spanner.v1.Spanner.Commit",
            index=10,
            containing_service=None,
            input_type=_COMMITREQUEST,
            output_type=_COMMITRESPONSE,
            serialized_options=_b(
                '\202\323\344\223\002G"B/v1/{session=projects/*/instances/*/databases/*/sessions/*}:commit:\001*'
            ),
        ),
        _descriptor.MethodDescriptor(
            name="Rollback",
            full_name="google.spanner.v1.Spanner.Rollback",
            index=11,
            containing_service=None,
            input_type=_ROLLBACKREQUEST,
            output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
            serialized_options=_b(
                '\202\323\344\223\002I"D/v1/{session=projects/*/instances/*/databases/*/sessions/*}:rollback:\001*'
            ),
        ),
        _descriptor.MethodDescriptor(
            name="PartitionQuery",
            full_name="google.spanner.v1.Spanner.PartitionQuery",
            index=12,
            containing_service=None,
            input_type=_PARTITIONQUERYREQUEST,
            output_type=_PARTITIONRESPONSE,
            serialized_options=_b(
                '\202\323\344\223\002O"J/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionQuery:\001*'
            ),
        ),
        _descriptor.MethodDescriptor(
            name="PartitionRead",
            full_name="google.spanner.v1.Spanner.PartitionRead",
            index=13,
            containing_service=None,
            input_type=_PARTITIONREADREQUEST,
            output_type=_PARTITIONRESPONSE,
            serialized_options=_b(
                '\202\323\344\223\002N"I/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionRead:\001*'
            ),
        ),
    ],
)
_sym_db.RegisterServiceDescriptor(_SPANNER)

DESCRIPTOR.services_by_name["Spanner"] = _SPANNER

# @@protoc_insertion_point(module_scope)
