1// Copyright 2020 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Code generated by protoc-gen-go. DO NOT EDIT.
16// versions:
17// 	protoc-gen-go v1.25.0
18// 	protoc        v3.13.0
19// source: google/spanner/v1/type.proto
20
21package spanner
22
23import (
24	reflect "reflect"
25	sync "sync"
26
27	proto "github.com/golang/protobuf/proto"
28	_ "google.golang.org/genproto/googleapis/api/annotations"
29	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
30	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
31)
32
33const (
34	// Verify that this generated code is sufficiently up-to-date.
35	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
36	// Verify that runtime/protoimpl is sufficiently up-to-date.
37	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
38)
39
40// This is a compile-time assertion that a sufficiently up-to-date version
41// of the legacy proto package is being used.
42const _ = proto.ProtoPackageIsVersion4
43
44// `TypeCode` is used as part of [Type][google.spanner.v1.Type] to
45// indicate the type of a Cloud Spanner value.
46//
47// Each legal value of a type can be encoded to or decoded from a JSON
48// value, using the encodings described below. All Cloud Spanner values can
49// be `null`, regardless of type; `null`s are always encoded as a JSON
50// `null`.
51type TypeCode int32
52
53const (
54	// Not specified.
55	TypeCode_TYPE_CODE_UNSPECIFIED TypeCode = 0
56	// Encoded as JSON `true` or `false`.
57	TypeCode_BOOL TypeCode = 1
58	// Encoded as `string`, in decimal format.
59	TypeCode_INT64 TypeCode = 2
60	// Encoded as `number`, or the strings `"NaN"`, `"Infinity"`, or
61	// `"-Infinity"`.
62	TypeCode_FLOAT64 TypeCode = 3
63	// Encoded as `string` in RFC 3339 timestamp format. The time zone
64	// must be present, and must be `"Z"`.
65	//
66	// If the schema has the column option
67	// `allow_commit_timestamp=true`, the placeholder string
68	// `"spanner.commit_timestamp()"` can be used to instruct the system
69	// to insert the commit timestamp associated with the transaction
70	// commit.
71	TypeCode_TIMESTAMP TypeCode = 4
72	// Encoded as `string` in RFC 3339 date format.
73	TypeCode_DATE TypeCode = 5
74	// Encoded as `string`.
75	TypeCode_STRING TypeCode = 6
76	// Encoded as a base64-encoded `string`, as described in RFC 4648,
77	// section 4.
78	TypeCode_BYTES TypeCode = 7
79	// Encoded as `list`, where the list elements are represented
80	// according to
81	// [array_element_type][google.spanner.v1.Type.array_element_type].
82	TypeCode_ARRAY TypeCode = 8
83	// Encoded as `list`, where list element `i` is represented according
84	// to [struct_type.fields[i]][google.spanner.v1.StructType.fields].
85	TypeCode_STRUCT TypeCode = 9
86	// Encoded as `string`, in decimal format or scientific notation format.
87	// <br>Decimal format:
88	// <br>`[+-]Digits[.[Digits]]` or
89	// <br>`[+-][Digits].Digits`
90	//
91	// Scientific notation:
92	// <br>`[+-]Digits[.[Digits]][ExponentIndicator[+-]Digits]` or
93	// <br>`[+-][Digits].Digits[ExponentIndicator[+-]Digits]`
94	// <br>(ExponentIndicator is `"e"` or `"E"`)
95	TypeCode_NUMERIC TypeCode = 10
96)
97
98// Enum value maps for TypeCode.
99var (
100	TypeCode_name = map[int32]string{
101		0:  "TYPE_CODE_UNSPECIFIED",
102		1:  "BOOL",
103		2:  "INT64",
104		3:  "FLOAT64",
105		4:  "TIMESTAMP",
106		5:  "DATE",
107		6:  "STRING",
108		7:  "BYTES",
109		8:  "ARRAY",
110		9:  "STRUCT",
111		10: "NUMERIC",
112	}
113	TypeCode_value = map[string]int32{
114		"TYPE_CODE_UNSPECIFIED": 0,
115		"BOOL":                  1,
116		"INT64":                 2,
117		"FLOAT64":               3,
118		"TIMESTAMP":             4,
119		"DATE":                  5,
120		"STRING":                6,
121		"BYTES":                 7,
122		"ARRAY":                 8,
123		"STRUCT":                9,
124		"NUMERIC":               10,
125	}
126)
127
128func (x TypeCode) Enum() *TypeCode {
129	p := new(TypeCode)
130	*p = x
131	return p
132}
133
134func (x TypeCode) String() string {
135	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
136}
137
138func (TypeCode) Descriptor() protoreflect.EnumDescriptor {
139	return file_google_spanner_v1_type_proto_enumTypes[0].Descriptor()
140}
141
142func (TypeCode) Type() protoreflect.EnumType {
143	return &file_google_spanner_v1_type_proto_enumTypes[0]
144}
145
146func (x TypeCode) Number() protoreflect.EnumNumber {
147	return protoreflect.EnumNumber(x)
148}
149
150// Deprecated: Use TypeCode.Descriptor instead.
151func (TypeCode) EnumDescriptor() ([]byte, []int) {
152	return file_google_spanner_v1_type_proto_rawDescGZIP(), []int{0}
153}
154
155// `Type` indicates the type of a Cloud Spanner value, as might be stored in a
156// table cell or returned from an SQL query.
157type Type struct {
158	state         protoimpl.MessageState
159	sizeCache     protoimpl.SizeCache
160	unknownFields protoimpl.UnknownFields
161
162	// Required. The [TypeCode][google.spanner.v1.TypeCode] for this type.
163	Code TypeCode `protobuf:"varint,1,opt,name=code,proto3,enum=google.spanner.v1.TypeCode" json:"code,omitempty"`
164	// If [code][google.spanner.v1.Type.code] == [ARRAY][google.spanner.v1.TypeCode.ARRAY], then `array_element_type`
165	// is the type of the array elements.
166	ArrayElementType *Type `protobuf:"bytes,2,opt,name=array_element_type,json=arrayElementType,proto3" json:"array_element_type,omitempty"`
167	// If [code][google.spanner.v1.Type.code] == [STRUCT][google.spanner.v1.TypeCode.STRUCT], then `struct_type`
168	// provides type information for the struct's fields.
169	StructType *StructType `protobuf:"bytes,3,opt,name=struct_type,json=structType,proto3" json:"struct_type,omitempty"`
170}
171
172func (x *Type) Reset() {
173	*x = Type{}
174	if protoimpl.UnsafeEnabled {
175		mi := &file_google_spanner_v1_type_proto_msgTypes[0]
176		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
177		ms.StoreMessageInfo(mi)
178	}
179}
180
181func (x *Type) String() string {
182	return protoimpl.X.MessageStringOf(x)
183}
184
185func (*Type) ProtoMessage() {}
186
187func (x *Type) ProtoReflect() protoreflect.Message {
188	mi := &file_google_spanner_v1_type_proto_msgTypes[0]
189	if protoimpl.UnsafeEnabled && x != nil {
190		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
191		if ms.LoadMessageInfo() == nil {
192			ms.StoreMessageInfo(mi)
193		}
194		return ms
195	}
196	return mi.MessageOf(x)
197}
198
199// Deprecated: Use Type.ProtoReflect.Descriptor instead.
200func (*Type) Descriptor() ([]byte, []int) {
201	return file_google_spanner_v1_type_proto_rawDescGZIP(), []int{0}
202}
203
204func (x *Type) GetCode() TypeCode {
205	if x != nil {
206		return x.Code
207	}
208	return TypeCode_TYPE_CODE_UNSPECIFIED
209}
210
211func (x *Type) GetArrayElementType() *Type {
212	if x != nil {
213		return x.ArrayElementType
214	}
215	return nil
216}
217
218func (x *Type) GetStructType() *StructType {
219	if x != nil {
220		return x.StructType
221	}
222	return nil
223}
224
225// `StructType` defines the fields of a [STRUCT][google.spanner.v1.TypeCode.STRUCT] type.
226type StructType struct {
227	state         protoimpl.MessageState
228	sizeCache     protoimpl.SizeCache
229	unknownFields protoimpl.UnknownFields
230
231	// The list of fields that make up this struct. Order is
232	// significant, because values of this struct type are represented as
233	// lists, where the order of field values matches the order of
234	// fields in the [StructType][google.spanner.v1.StructType]. In turn, the order of fields
235	// matches the order of columns in a read request, or the order of
236	// fields in the `SELECT` clause of a query.
237	Fields []*StructType_Field `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"`
238}
239
240func (x *StructType) Reset() {
241	*x = StructType{}
242	if protoimpl.UnsafeEnabled {
243		mi := &file_google_spanner_v1_type_proto_msgTypes[1]
244		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
245		ms.StoreMessageInfo(mi)
246	}
247}
248
249func (x *StructType) String() string {
250	return protoimpl.X.MessageStringOf(x)
251}
252
253func (*StructType) ProtoMessage() {}
254
255func (x *StructType) ProtoReflect() protoreflect.Message {
256	mi := &file_google_spanner_v1_type_proto_msgTypes[1]
257	if protoimpl.UnsafeEnabled && x != nil {
258		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
259		if ms.LoadMessageInfo() == nil {
260			ms.StoreMessageInfo(mi)
261		}
262		return ms
263	}
264	return mi.MessageOf(x)
265}
266
267// Deprecated: Use StructType.ProtoReflect.Descriptor instead.
268func (*StructType) Descriptor() ([]byte, []int) {
269	return file_google_spanner_v1_type_proto_rawDescGZIP(), []int{1}
270}
271
272func (x *StructType) GetFields() []*StructType_Field {
273	if x != nil {
274		return x.Fields
275	}
276	return nil
277}
278
279// Message representing a single field of a struct.
280type StructType_Field struct {
281	state         protoimpl.MessageState
282	sizeCache     protoimpl.SizeCache
283	unknownFields protoimpl.UnknownFields
284
285	// The name of the field. For reads, this is the column name. For
286	// SQL queries, it is the column alias (e.g., `"Word"` in the
287	// query `"SELECT 'hello' AS Word"`), or the column name (e.g.,
288	// `"ColName"` in the query `"SELECT ColName FROM Table"`). Some
289	// columns might have an empty name (e.g., !"SELECT
290	// UPPER(ColName)"`). Note that a query result can contain
291	// multiple fields with the same name.
292	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
293	// The type of the field.
294	Type *Type `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
295}
296
297func (x *StructType_Field) Reset() {
298	*x = StructType_Field{}
299	if protoimpl.UnsafeEnabled {
300		mi := &file_google_spanner_v1_type_proto_msgTypes[2]
301		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
302		ms.StoreMessageInfo(mi)
303	}
304}
305
306func (x *StructType_Field) String() string {
307	return protoimpl.X.MessageStringOf(x)
308}
309
310func (*StructType_Field) ProtoMessage() {}
311
312func (x *StructType_Field) ProtoReflect() protoreflect.Message {
313	mi := &file_google_spanner_v1_type_proto_msgTypes[2]
314	if protoimpl.UnsafeEnabled && x != nil {
315		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
316		if ms.LoadMessageInfo() == nil {
317			ms.StoreMessageInfo(mi)
318		}
319		return ms
320	}
321	return mi.MessageOf(x)
322}
323
324// Deprecated: Use StructType_Field.ProtoReflect.Descriptor instead.
325func (*StructType_Field) Descriptor() ([]byte, []int) {
326	return file_google_spanner_v1_type_proto_rawDescGZIP(), []int{1, 0}
327}
328
329func (x *StructType_Field) GetName() string {
330	if x != nil {
331		return x.Name
332	}
333	return ""
334}
335
336func (x *StructType_Field) GetType() *Type {
337	if x != nil {
338		return x.Type
339	}
340	return nil
341}
342
343var File_google_spanner_v1_type_proto protoreflect.FileDescriptor
344
345var file_google_spanner_v1_type_proto_rawDesc = []byte{
346	0x0a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72,
347	0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11,
348	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x2e, 0x76,
349	0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69,
350	0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f,
351	0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61,
352	0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
353	0x22, 0xc3, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x63, 0x6f, 0x64,
354	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
355	0x2e, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65,
356	0x43, 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
357	0x45, 0x0a, 0x12, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
358	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f,
359	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e,
360	0x54, 0x79, 0x70, 0x65, 0x52, 0x10, 0x61, 0x72, 0x72, 0x61, 0x79, 0x45, 0x6c, 0x65, 0x6d, 0x65,
361	0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74,
362	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f,
363	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e,
364	0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x75,
365	0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x75, 0x63,
366	0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18,
367	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73,
368	0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74,
369	0x54, 0x79, 0x70, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c,
370	0x64, 0x73, 0x1a, 0x48, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
371	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
372	0x2b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
373	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x2e, 0x76,
374	0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x2a, 0x9b, 0x01, 0x0a,
375	0x08, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x59, 0x50,
376	0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
377	0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x01, 0x12, 0x09,
378	0x0a, 0x05, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x4c, 0x4f,
379	0x41, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54,
380	0x41, 0x4d, 0x50, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x41, 0x54, 0x45, 0x10, 0x05, 0x12,
381	0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x42,
382	0x59, 0x54, 0x45, 0x53, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x52, 0x52, 0x41, 0x59, 0x10,
383	0x08, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x10, 0x09, 0x12, 0x0b, 0x0a,
384	0x07, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x0a, 0x42, 0xaf, 0x01, 0x0a, 0x15, 0x63,
385	0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65,
386	0x72, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
387	0x01, 0x5a, 0x38, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67,
388	0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f,
389	0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72,
390	0x2f, 0x76, 0x31, 0x3b, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0xaa, 0x02, 0x17, 0x47, 0x6f,
391	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x6e,
392	0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43,
393	0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x53, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xea,
394	0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a,
395	0x3a, 0x53, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72,
396	0x6f, 0x74, 0x6f, 0x33,
397}
398
399var (
400	file_google_spanner_v1_type_proto_rawDescOnce sync.Once
401	file_google_spanner_v1_type_proto_rawDescData = file_google_spanner_v1_type_proto_rawDesc
402)
403
404func file_google_spanner_v1_type_proto_rawDescGZIP() []byte {
405	file_google_spanner_v1_type_proto_rawDescOnce.Do(func() {
406		file_google_spanner_v1_type_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_spanner_v1_type_proto_rawDescData)
407	})
408	return file_google_spanner_v1_type_proto_rawDescData
409}
410
411var file_google_spanner_v1_type_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
412var file_google_spanner_v1_type_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
413var file_google_spanner_v1_type_proto_goTypes = []interface{}{
414	(TypeCode)(0),            // 0: google.spanner.v1.TypeCode
415	(*Type)(nil),             // 1: google.spanner.v1.Type
416	(*StructType)(nil),       // 2: google.spanner.v1.StructType
417	(*StructType_Field)(nil), // 3: google.spanner.v1.StructType.Field
418}
419var file_google_spanner_v1_type_proto_depIdxs = []int32{
420	0, // 0: google.spanner.v1.Type.code:type_name -> google.spanner.v1.TypeCode
421	1, // 1: google.spanner.v1.Type.array_element_type:type_name -> google.spanner.v1.Type
422	2, // 2: google.spanner.v1.Type.struct_type:type_name -> google.spanner.v1.StructType
423	3, // 3: google.spanner.v1.StructType.fields:type_name -> google.spanner.v1.StructType.Field
424	1, // 4: google.spanner.v1.StructType.Field.type:type_name -> google.spanner.v1.Type
425	5, // [5:5] is the sub-list for method output_type
426	5, // [5:5] is the sub-list for method input_type
427	5, // [5:5] is the sub-list for extension type_name
428	5, // [5:5] is the sub-list for extension extendee
429	0, // [0:5] is the sub-list for field type_name
430}
431
432func init() { file_google_spanner_v1_type_proto_init() }
433func file_google_spanner_v1_type_proto_init() {
434	if File_google_spanner_v1_type_proto != nil {
435		return
436	}
437	if !protoimpl.UnsafeEnabled {
438		file_google_spanner_v1_type_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
439			switch v := v.(*Type); i {
440			case 0:
441				return &v.state
442			case 1:
443				return &v.sizeCache
444			case 2:
445				return &v.unknownFields
446			default:
447				return nil
448			}
449		}
450		file_google_spanner_v1_type_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
451			switch v := v.(*StructType); i {
452			case 0:
453				return &v.state
454			case 1:
455				return &v.sizeCache
456			case 2:
457				return &v.unknownFields
458			default:
459				return nil
460			}
461		}
462		file_google_spanner_v1_type_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
463			switch v := v.(*StructType_Field); i {
464			case 0:
465				return &v.state
466			case 1:
467				return &v.sizeCache
468			case 2:
469				return &v.unknownFields
470			default:
471				return nil
472			}
473		}
474	}
475	type x struct{}
476	out := protoimpl.TypeBuilder{
477		File: protoimpl.DescBuilder{
478			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
479			RawDescriptor: file_google_spanner_v1_type_proto_rawDesc,
480			NumEnums:      1,
481			NumMessages:   3,
482			NumExtensions: 0,
483			NumServices:   0,
484		},
485		GoTypes:           file_google_spanner_v1_type_proto_goTypes,
486		DependencyIndexes: file_google_spanner_v1_type_proto_depIdxs,
487		EnumInfos:         file_google_spanner_v1_type_proto_enumTypes,
488		MessageInfos:      file_google_spanner_v1_type_proto_msgTypes,
489	}.Build()
490	File_google_spanner_v1_type_proto = out.File
491	file_google_spanner_v1_type_proto_rawDesc = nil
492	file_google_spanner_v1_type_proto_goTypes = nil
493	file_google_spanner_v1_type_proto_depIdxs = nil
494}
495