# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/spanner_v1/proto/type.proto

import sys

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

# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
    name="google/cloud/spanner_v1/proto/type.proto",
    package="google.spanner.v1",
    syntax="proto3",
    serialized_options=_b(
        "\n\025com.google.spanner.v1B\tTypeProtoP\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/type.proto\x12\x11google.spanner.v1\x1a\x1cgoogle/api/annotations.proto"\x9a\x01\n\x04Type\x12)\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x1b.google.spanner.v1.TypeCode\x12\x33\n\x12\x61rray_element_type\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type\x12\x32\n\x0bstruct_type\x18\x03 \x01(\x0b\x32\x1d.google.spanner.v1.StructType"\x7f\n\nStructType\x12\x33\n\x06\x66ields\x18\x01 \x03(\x0b\x32#.google.spanner.v1.StructType.Field\x1a<\n\x05\x46ield\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x04type\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type*\x8e\x01\n\x08TypeCode\x12\x19\n\x15TYPE_CODE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x42OOL\x10\x01\x12\t\n\x05INT64\x10\x02\x12\x0b\n\x07\x46LOAT64\x10\x03\x12\r\n\tTIMESTAMP\x10\x04\x12\x08\n\x04\x44\x41TE\x10\x05\x12\n\n\x06STRING\x10\x06\x12\t\n\x05\x42YTES\x10\x07\x12\t\n\x05\x41RRAY\x10\x08\x12\n\n\x06STRUCT\x10\tB\x92\x01\n\x15\x63om.google.spanner.v1B\tTypeProtoP\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],
)

_TYPECODE = _descriptor.EnumDescriptor(
    name="TypeCode",
    full_name="google.spanner.v1.TypeCode",
    filename=None,
    file=DESCRIPTOR,
    values=[
        _descriptor.EnumValueDescriptor(
            name="TYPE_CODE_UNSPECIFIED",
            index=0,
            number=0,
            serialized_options=None,
            type=None,
        ),
        _descriptor.EnumValueDescriptor(
            name="BOOL", index=1, number=1, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="INT64", index=2, number=2, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="FLOAT64", index=3, number=3, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="TIMESTAMP", index=4, number=4, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="DATE", index=5, number=5, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="STRING", index=6, number=6, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="BYTES", index=7, number=7, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="ARRAY", index=8, number=8, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="STRUCT", index=9, number=9, serialized_options=None, type=None
        ),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=380,
    serialized_end=522,
)
_sym_db.RegisterEnumDescriptor(_TYPECODE)

TypeCode = enum_type_wrapper.EnumTypeWrapper(_TYPECODE)
TYPE_CODE_UNSPECIFIED = 0
BOOL = 1
INT64 = 2
FLOAT64 = 3
TIMESTAMP = 4
DATE = 5
STRING = 6
BYTES = 7
ARRAY = 8
STRUCT = 9


_TYPE = _descriptor.Descriptor(
    name="Type",
    full_name="google.spanner.v1.Type",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="code",
            full_name="google.spanner.v1.Type.code",
            index=0,
            number=1,
            type=14,
            cpp_type=8,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="array_element_type",
            full_name="google.spanner.v1.Type.array_element_type",
            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="struct_type",
            full_name="google.spanner.v1.Type.struct_type",
            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,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=94,
    serialized_end=248,
)


_STRUCTTYPE_FIELD = _descriptor.Descriptor(
    name="Field",
    full_name="google.spanner.v1.StructType.Field",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="name",
            full_name="google.spanner.v1.StructType.Field.name",
            index=0,
            number=1,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="type",
            full_name="google.spanner.v1.StructType.Field.type",
            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=317,
    serialized_end=377,
)

_STRUCTTYPE = _descriptor.Descriptor(
    name="StructType",
    full_name="google.spanner.v1.StructType",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="fields",
            full_name="google.spanner.v1.StructType.fields",
            index=0,
            number=1,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        )
    ],
    extensions=[],
    nested_types=[_STRUCTTYPE_FIELD],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=250,
    serialized_end=377,
)

_TYPE.fields_by_name["code"].enum_type = _TYPECODE
_TYPE.fields_by_name["array_element_type"].message_type = _TYPE
_TYPE.fields_by_name["struct_type"].message_type = _STRUCTTYPE
_STRUCTTYPE_FIELD.fields_by_name["type"].message_type = _TYPE
_STRUCTTYPE_FIELD.containing_type = _STRUCTTYPE
_STRUCTTYPE.fields_by_name["fields"].message_type = _STRUCTTYPE_FIELD
DESCRIPTOR.message_types_by_name["Type"] = _TYPE
DESCRIPTOR.message_types_by_name["StructType"] = _STRUCTTYPE
DESCRIPTOR.enum_types_by_name["TypeCode"] = _TYPECODE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Type = _reflection.GeneratedProtocolMessageType(
    "Type",
    (_message.Message,),
    dict(
        DESCRIPTOR=_TYPE,
        __module__="google.cloud.spanner_v1.proto.type_pb2",
        __doc__="""``Type`` indicates the type of a Cloud Spanner value, as might be stored
  in a table cell or returned from an SQL query.
  
  
  Attributes:
      code:
          Required. The [TypeCode][google.spanner.v1.TypeCode] for this
          type.
      array_element_type:
          If [code][google.spanner.v1.Type.code] ==
          [ARRAY][google.spanner.v1.TypeCode.ARRAY], then
          ``array_element_type`` is the type of the array elements.
      struct_type:
          If [code][google.spanner.v1.Type.code] ==
          [STRUCT][google.spanner.v1.TypeCode.STRUCT], then
          ``struct_type`` provides type information for the struct's
          fields.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.Type)
    ),
)
_sym_db.RegisterMessage(Type)

StructType = _reflection.GeneratedProtocolMessageType(
    "StructType",
    (_message.Message,),
    dict(
        Field=_reflection.GeneratedProtocolMessageType(
            "Field",
            (_message.Message,),
            dict(
                DESCRIPTOR=_STRUCTTYPE_FIELD,
                __module__="google.cloud.spanner_v1.proto.type_pb2",
                __doc__="""Message representing a single field of a struct.
    
    
    Attributes:
        name:
            The name of the field. For reads, this is the column name. For
            SQL queries, it is the column alias (e.g., ``"Word"`` in the
            query ``"SELECT 'hello' AS Word"``), or the column name (e.g.,
            ``"ColName"`` in the query ``"SELECT ColName FROM Table"``).
            Some columns might have an empty name (e.g., !"SELECT
            UPPER(ColName)"\`). Note that a query result can contain
            multiple fields with the same name.
        type:
            The type of the field.
    """,
                # @@protoc_insertion_point(class_scope:google.spanner.v1.StructType.Field)
            ),
        ),
        DESCRIPTOR=_STRUCTTYPE,
        __module__="google.cloud.spanner_v1.proto.type_pb2",
        __doc__="""``StructType`` defines the fields of a
  [STRUCT][google.spanner.v1.TypeCode.STRUCT] type.
  
  
  Attributes:
      fields:
          The list of fields that make up this struct. Order is
          significant, because values of this struct type are
          represented as lists, where the order of field values matches
          the order of fields in the
          [StructType][google.spanner.v1.StructType]. In turn, the order
          of fields matches the order of columns in a read request, or
          the order of fields in the ``SELECT`` clause of a query.
  """,
        # @@protoc_insertion_point(class_scope:google.spanner.v1.StructType)
    ),
)
_sym_db.RegisterMessage(StructType)
_sym_db.RegisterMessage(StructType.Field)


DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)
