xref: /aosp_15_r20/external/golang-protobuf/types/known/structpb/struct.pb.go (revision 1c12ee1efe575feb122dbf939ff15148a3b3e8f2)
1// Protocol Buffers - Google's data interchange format
2// Copyright 2008 Google Inc.  All rights reserved.
3// https://developers.google.com/protocol-buffers/
4//
5// Redistribution and use in source and binary forms, with or without
6// modification, are permitted provided that the following conditions are
7// met:
8//
9//     * Redistributions of source code must retain the above copyright
10// notice, this list of conditions and the following disclaimer.
11//     * Redistributions in binary form must reproduce the above
12// copyright notice, this list of conditions and the following disclaimer
13// in the documentation and/or other materials provided with the
14// distribution.
15//     * Neither the name of Google Inc. nor the names of its
16// contributors may be used to endorse or promote products derived from
17// this software without specific prior written permission.
18//
19// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31// Code generated by protoc-gen-go. DO NOT EDIT.
32// source: google/protobuf/struct.proto
33
34// Package structpb contains generated types for google/protobuf/struct.proto.
35//
36// The messages (i.e., Value, Struct, and ListValue) defined in struct.proto are
37// used to represent arbitrary JSON. The Value message represents a JSON value,
38// the Struct message represents a JSON object, and the ListValue message
39// represents a JSON array. See https://json.org for more information.
40//
41// The Value, Struct, and ListValue types have generated MarshalJSON and
42// UnmarshalJSON methods such that they serialize JSON equivalent to what the
43// messages themselves represent. Use of these types with the
44// "google.golang.org/protobuf/encoding/protojson" package
45// ensures that they will be serialized as their JSON equivalent.
46//
47// # Conversion to and from a Go interface
48//
49// The standard Go "encoding/json" package has functionality to serialize
50// arbitrary types to a large degree. The Value.AsInterface, Struct.AsMap, and
51// ListValue.AsSlice methods can convert the protobuf message representation into
52// a form represented by interface{}, map[string]interface{}, and []interface{}.
53// This form can be used with other packages that operate on such data structures
54// and also directly with the standard json package.
55//
56// In order to convert the interface{}, map[string]interface{}, and []interface{}
57// forms back as Value, Struct, and ListValue messages, use the NewStruct,
58// NewList, and NewValue constructor functions.
59//
60// # Example usage
61//
62// Consider the following example JSON object:
63//
64//	{
65//		"firstName": "John",
66//		"lastName": "Smith",
67//		"isAlive": true,
68//		"age": 27,
69//		"address": {
70//			"streetAddress": "21 2nd Street",
71//			"city": "New York",
72//			"state": "NY",
73//			"postalCode": "10021-3100"
74//		},
75//		"phoneNumbers": [
76//			{
77//				"type": "home",
78//				"number": "212 555-1234"
79//			},
80//			{
81//				"type": "office",
82//				"number": "646 555-4567"
83//			}
84//		],
85//		"children": [],
86//		"spouse": null
87//	}
88//
89// To construct a Value message representing the above JSON object:
90//
91//	m, err := structpb.NewValue(map[string]interface{}{
92//		"firstName": "John",
93//		"lastName":  "Smith",
94//		"isAlive":   true,
95//		"age":       27,
96//		"address": map[string]interface{}{
97//			"streetAddress": "21 2nd Street",
98//			"city":          "New York",
99//			"state":         "NY",
100//			"postalCode":    "10021-3100",
101//		},
102//		"phoneNumbers": []interface{}{
103//			map[string]interface{}{
104//				"type":   "home",
105//				"number": "212 555-1234",
106//			},
107//			map[string]interface{}{
108//				"type":   "office",
109//				"number": "646 555-4567",
110//			},
111//		},
112//		"children": []interface{}{},
113//		"spouse":   nil,
114//	})
115//	if err != nil {
116//		... // handle error
117//	}
118//	... // make use of m as a *structpb.Value
119package structpb
120
121import (
122	base64 "encoding/base64"
123	protojson "google.golang.org/protobuf/encoding/protojson"
124	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
125	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
126	math "math"
127	reflect "reflect"
128	sync "sync"
129	utf8 "unicode/utf8"
130)
131
132// `NullValue` is a singleton enumeration to represent the null value for the
133// `Value` type union.
134//
135//	The JSON representation for `NullValue` is JSON `null`.
136type NullValue int32
137
138const (
139	// Null value.
140	NullValue_NULL_VALUE NullValue = 0
141)
142
143// Enum value maps for NullValue.
144var (
145	NullValue_name = map[int32]string{
146		0: "NULL_VALUE",
147	}
148	NullValue_value = map[string]int32{
149		"NULL_VALUE": 0,
150	}
151)
152
153func (x NullValue) Enum() *NullValue {
154	p := new(NullValue)
155	*p = x
156	return p
157}
158
159func (x NullValue) String() string {
160	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
161}
162
163func (NullValue) Descriptor() protoreflect.EnumDescriptor {
164	return file_google_protobuf_struct_proto_enumTypes[0].Descriptor()
165}
166
167func (NullValue) Type() protoreflect.EnumType {
168	return &file_google_protobuf_struct_proto_enumTypes[0]
169}
170
171func (x NullValue) Number() protoreflect.EnumNumber {
172	return protoreflect.EnumNumber(x)
173}
174
175// Deprecated: Use NullValue.Descriptor instead.
176func (NullValue) EnumDescriptor() ([]byte, []int) {
177	return file_google_protobuf_struct_proto_rawDescGZIP(), []int{0}
178}
179
180// `Struct` represents a structured data value, consisting of fields
181// which map to dynamically typed values. In some languages, `Struct`
182// might be supported by a native representation. For example, in
183// scripting languages like JS a struct is represented as an
184// object. The details of that representation are described together
185// with the proto support for the language.
186//
187// The JSON representation for `Struct` is JSON object.
188type Struct struct {
189	state         protoimpl.MessageState
190	sizeCache     protoimpl.SizeCache
191	unknownFields protoimpl.UnknownFields
192
193	// Unordered map of dynamically typed values.
194	Fields map[string]*Value `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
195}
196
197// NewStruct constructs a Struct from a general-purpose Go map.
198// The map keys must be valid UTF-8.
199// The map values are converted using NewValue.
200func NewStruct(v map[string]interface{}) (*Struct, error) {
201	x := &Struct{Fields: make(map[string]*Value, len(v))}
202	for k, v := range v {
203		if !utf8.ValidString(k) {
204			return nil, protoimpl.X.NewError("invalid UTF-8 in string: %q", k)
205		}
206		var err error
207		x.Fields[k], err = NewValue(v)
208		if err != nil {
209			return nil, err
210		}
211	}
212	return x, nil
213}
214
215// AsMap converts x to a general-purpose Go map.
216// The map values are converted by calling Value.AsInterface.
217func (x *Struct) AsMap() map[string]interface{} {
218	f := x.GetFields()
219	vs := make(map[string]interface{}, len(f))
220	for k, v := range f {
221		vs[k] = v.AsInterface()
222	}
223	return vs
224}
225
226func (x *Struct) MarshalJSON() ([]byte, error) {
227	return protojson.Marshal(x)
228}
229
230func (x *Struct) UnmarshalJSON(b []byte) error {
231	return protojson.Unmarshal(b, x)
232}
233
234func (x *Struct) Reset() {
235	*x = Struct{}
236	if protoimpl.UnsafeEnabled {
237		mi := &file_google_protobuf_struct_proto_msgTypes[0]
238		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
239		ms.StoreMessageInfo(mi)
240	}
241}
242
243func (x *Struct) String() string {
244	return protoimpl.X.MessageStringOf(x)
245}
246
247func (*Struct) ProtoMessage() {}
248
249func (x *Struct) ProtoReflect() protoreflect.Message {
250	mi := &file_google_protobuf_struct_proto_msgTypes[0]
251	if protoimpl.UnsafeEnabled && x != nil {
252		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
253		if ms.LoadMessageInfo() == nil {
254			ms.StoreMessageInfo(mi)
255		}
256		return ms
257	}
258	return mi.MessageOf(x)
259}
260
261// Deprecated: Use Struct.ProtoReflect.Descriptor instead.
262func (*Struct) Descriptor() ([]byte, []int) {
263	return file_google_protobuf_struct_proto_rawDescGZIP(), []int{0}
264}
265
266func (x *Struct) GetFields() map[string]*Value {
267	if x != nil {
268		return x.Fields
269	}
270	return nil
271}
272
273// `Value` represents a dynamically typed value which can be either
274// null, a number, a string, a boolean, a recursive struct value, or a
275// list of values. A producer of value is expected to set one of these
276// variants. Absence of any variant indicates an error.
277//
278// The JSON representation for `Value` is JSON value.
279type Value struct {
280	state         protoimpl.MessageState
281	sizeCache     protoimpl.SizeCache
282	unknownFields protoimpl.UnknownFields
283
284	// The kind of value.
285	//
286	// Types that are assignable to Kind:
287	//
288	//	*Value_NullValue
289	//	*Value_NumberValue
290	//	*Value_StringValue
291	//	*Value_BoolValue
292	//	*Value_StructValue
293	//	*Value_ListValue
294	Kind isValue_Kind `protobuf_oneof:"kind"`
295}
296
297// NewValue constructs a Value from a general-purpose Go interface.
298//
299//	╔════════════════════════╤════════════════════════════════════════════╗
300//	║ Go type                │ Conversion                                 ║
301//	╠════════════════════════╪════════════════════════════════════════════╣
302//	║ nil                    │ stored as NullValue                        ║
303//	║ bool                   │ stored as BoolValue                        ║
304//	║ int, int32, int64      │ stored as NumberValue                      ║
305//	║ uint, uint32, uint64   │ stored as NumberValue                      ║
306//	║ float32, float64       │ stored as NumberValue                      ║
307//	║ string                 │ stored as StringValue; must be valid UTF-8 ║
308//	║ []byte                 │ stored as StringValue; base64-encoded      ║
309//	║ map[string]interface{} │ stored as StructValue                      ║
310//	║ []interface{}          │ stored as ListValue                        ║
311//	╚════════════════════════╧════════════════════════════════════════════╝
312//
313// When converting an int64 or uint64 to a NumberValue, numeric precision loss
314// is possible since they are stored as a float64.
315func NewValue(v interface{}) (*Value, error) {
316	switch v := v.(type) {
317	case nil:
318		return NewNullValue(), nil
319	case bool:
320		return NewBoolValue(v), nil
321	case int:
322		return NewNumberValue(float64(v)), nil
323	case int32:
324		return NewNumberValue(float64(v)), nil
325	case int64:
326		return NewNumberValue(float64(v)), nil
327	case uint:
328		return NewNumberValue(float64(v)), nil
329	case uint32:
330		return NewNumberValue(float64(v)), nil
331	case uint64:
332		return NewNumberValue(float64(v)), nil
333	case float32:
334		return NewNumberValue(float64(v)), nil
335	case float64:
336		return NewNumberValue(float64(v)), nil
337	case string:
338		if !utf8.ValidString(v) {
339			return nil, protoimpl.X.NewError("invalid UTF-8 in string: %q", v)
340		}
341		return NewStringValue(v), nil
342	case []byte:
343		s := base64.StdEncoding.EncodeToString(v)
344		return NewStringValue(s), nil
345	case map[string]interface{}:
346		v2, err := NewStruct(v)
347		if err != nil {
348			return nil, err
349		}
350		return NewStructValue(v2), nil
351	case []interface{}:
352		v2, err := NewList(v)
353		if err != nil {
354			return nil, err
355		}
356		return NewListValue(v2), nil
357	default:
358		return nil, protoimpl.X.NewError("invalid type: %T", v)
359	}
360}
361
362// NewNullValue constructs a new null Value.
363func NewNullValue() *Value {
364	return &Value{Kind: &Value_NullValue{NullValue: NullValue_NULL_VALUE}}
365}
366
367// NewBoolValue constructs a new boolean Value.
368func NewBoolValue(v bool) *Value {
369	return &Value{Kind: &Value_BoolValue{BoolValue: v}}
370}
371
372// NewNumberValue constructs a new number Value.
373func NewNumberValue(v float64) *Value {
374	return &Value{Kind: &Value_NumberValue{NumberValue: v}}
375}
376
377// NewStringValue constructs a new string Value.
378func NewStringValue(v string) *Value {
379	return &Value{Kind: &Value_StringValue{StringValue: v}}
380}
381
382// NewStructValue constructs a new struct Value.
383func NewStructValue(v *Struct) *Value {
384	return &Value{Kind: &Value_StructValue{StructValue: v}}
385}
386
387// NewListValue constructs a new list Value.
388func NewListValue(v *ListValue) *Value {
389	return &Value{Kind: &Value_ListValue{ListValue: v}}
390}
391
392// AsInterface converts x to a general-purpose Go interface.
393//
394// Calling Value.MarshalJSON and "encoding/json".Marshal on this output produce
395// semantically equivalent JSON (assuming no errors occur).
396//
397// Floating-point values (i.e., "NaN", "Infinity", and "-Infinity") are
398// converted as strings to remain compatible with MarshalJSON.
399func (x *Value) AsInterface() interface{} {
400	switch v := x.GetKind().(type) {
401	case *Value_NumberValue:
402		if v != nil {
403			switch {
404			case math.IsNaN(v.NumberValue):
405				return "NaN"
406			case math.IsInf(v.NumberValue, +1):
407				return "Infinity"
408			case math.IsInf(v.NumberValue, -1):
409				return "-Infinity"
410			default:
411				return v.NumberValue
412			}
413		}
414	case *Value_StringValue:
415		if v != nil {
416			return v.StringValue
417		}
418	case *Value_BoolValue:
419		if v != nil {
420			return v.BoolValue
421		}
422	case *Value_StructValue:
423		if v != nil {
424			return v.StructValue.AsMap()
425		}
426	case *Value_ListValue:
427		if v != nil {
428			return v.ListValue.AsSlice()
429		}
430	}
431	return nil
432}
433
434func (x *Value) MarshalJSON() ([]byte, error) {
435	return protojson.Marshal(x)
436}
437
438func (x *Value) UnmarshalJSON(b []byte) error {
439	return protojson.Unmarshal(b, x)
440}
441
442func (x *Value) Reset() {
443	*x = Value{}
444	if protoimpl.UnsafeEnabled {
445		mi := &file_google_protobuf_struct_proto_msgTypes[1]
446		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
447		ms.StoreMessageInfo(mi)
448	}
449}
450
451func (x *Value) String() string {
452	return protoimpl.X.MessageStringOf(x)
453}
454
455func (*Value) ProtoMessage() {}
456
457func (x *Value) ProtoReflect() protoreflect.Message {
458	mi := &file_google_protobuf_struct_proto_msgTypes[1]
459	if protoimpl.UnsafeEnabled && x != nil {
460		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
461		if ms.LoadMessageInfo() == nil {
462			ms.StoreMessageInfo(mi)
463		}
464		return ms
465	}
466	return mi.MessageOf(x)
467}
468
469// Deprecated: Use Value.ProtoReflect.Descriptor instead.
470func (*Value) Descriptor() ([]byte, []int) {
471	return file_google_protobuf_struct_proto_rawDescGZIP(), []int{1}
472}
473
474func (m *Value) GetKind() isValue_Kind {
475	if m != nil {
476		return m.Kind
477	}
478	return nil
479}
480
481func (x *Value) GetNullValue() NullValue {
482	if x, ok := x.GetKind().(*Value_NullValue); ok {
483		return x.NullValue
484	}
485	return NullValue_NULL_VALUE
486}
487
488func (x *Value) GetNumberValue() float64 {
489	if x, ok := x.GetKind().(*Value_NumberValue); ok {
490		return x.NumberValue
491	}
492	return 0
493}
494
495func (x *Value) GetStringValue() string {
496	if x, ok := x.GetKind().(*Value_StringValue); ok {
497		return x.StringValue
498	}
499	return ""
500}
501
502func (x *Value) GetBoolValue() bool {
503	if x, ok := x.GetKind().(*Value_BoolValue); ok {
504		return x.BoolValue
505	}
506	return false
507}
508
509func (x *Value) GetStructValue() *Struct {
510	if x, ok := x.GetKind().(*Value_StructValue); ok {
511		return x.StructValue
512	}
513	return nil
514}
515
516func (x *Value) GetListValue() *ListValue {
517	if x, ok := x.GetKind().(*Value_ListValue); ok {
518		return x.ListValue
519	}
520	return nil
521}
522
523type isValue_Kind interface {
524	isValue_Kind()
525}
526
527type Value_NullValue struct {
528	// Represents a null value.
529	NullValue NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"`
530}
531
532type Value_NumberValue struct {
533	// Represents a double value.
534	NumberValue float64 `protobuf:"fixed64,2,opt,name=number_value,json=numberValue,proto3,oneof"`
535}
536
537type Value_StringValue struct {
538	// Represents a string value.
539	StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"`
540}
541
542type Value_BoolValue struct {
543	// Represents a boolean value.
544	BoolValue bool `protobuf:"varint,4,opt,name=bool_value,json=boolValue,proto3,oneof"`
545}
546
547type Value_StructValue struct {
548	// Represents a structured value.
549	StructValue *Struct `protobuf:"bytes,5,opt,name=struct_value,json=structValue,proto3,oneof"`
550}
551
552type Value_ListValue struct {
553	// Represents a repeated `Value`.
554	ListValue *ListValue `protobuf:"bytes,6,opt,name=list_value,json=listValue,proto3,oneof"`
555}
556
557func (*Value_NullValue) isValue_Kind() {}
558
559func (*Value_NumberValue) isValue_Kind() {}
560
561func (*Value_StringValue) isValue_Kind() {}
562
563func (*Value_BoolValue) isValue_Kind() {}
564
565func (*Value_StructValue) isValue_Kind() {}
566
567func (*Value_ListValue) isValue_Kind() {}
568
569// `ListValue` is a wrapper around a repeated field of values.
570//
571// The JSON representation for `ListValue` is JSON array.
572type ListValue struct {
573	state         protoimpl.MessageState
574	sizeCache     protoimpl.SizeCache
575	unknownFields protoimpl.UnknownFields
576
577	// Repeated field of dynamically typed values.
578	Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
579}
580
581// NewList constructs a ListValue from a general-purpose Go slice.
582// The slice elements are converted using NewValue.
583func NewList(v []interface{}) (*ListValue, error) {
584	x := &ListValue{Values: make([]*Value, len(v))}
585	for i, v := range v {
586		var err error
587		x.Values[i], err = NewValue(v)
588		if err != nil {
589			return nil, err
590		}
591	}
592	return x, nil
593}
594
595// AsSlice converts x to a general-purpose Go slice.
596// The slice elements are converted by calling Value.AsInterface.
597func (x *ListValue) AsSlice() []interface{} {
598	vals := x.GetValues()
599	vs := make([]interface{}, len(vals))
600	for i, v := range vals {
601		vs[i] = v.AsInterface()
602	}
603	return vs
604}
605
606func (x *ListValue) MarshalJSON() ([]byte, error) {
607	return protojson.Marshal(x)
608}
609
610func (x *ListValue) UnmarshalJSON(b []byte) error {
611	return protojson.Unmarshal(b, x)
612}
613
614func (x *ListValue) Reset() {
615	*x = ListValue{}
616	if protoimpl.UnsafeEnabled {
617		mi := &file_google_protobuf_struct_proto_msgTypes[2]
618		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
619		ms.StoreMessageInfo(mi)
620	}
621}
622
623func (x *ListValue) String() string {
624	return protoimpl.X.MessageStringOf(x)
625}
626
627func (*ListValue) ProtoMessage() {}
628
629func (x *ListValue) ProtoReflect() protoreflect.Message {
630	mi := &file_google_protobuf_struct_proto_msgTypes[2]
631	if protoimpl.UnsafeEnabled && x != nil {
632		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
633		if ms.LoadMessageInfo() == nil {
634			ms.StoreMessageInfo(mi)
635		}
636		return ms
637	}
638	return mi.MessageOf(x)
639}
640
641// Deprecated: Use ListValue.ProtoReflect.Descriptor instead.
642func (*ListValue) Descriptor() ([]byte, []int) {
643	return file_google_protobuf_struct_proto_rawDescGZIP(), []int{2}
644}
645
646func (x *ListValue) GetValues() []*Value {
647	if x != nil {
648		return x.Values
649	}
650	return nil
651}
652
653var File_google_protobuf_struct_proto protoreflect.FileDescriptor
654
655var file_google_protobuf_struct_proto_rawDesc = []byte{
656	0x0a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
657	0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f,
658	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22,
659	0x98, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x66, 0x69,
660	0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f,
661	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72,
662	0x75, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
663	0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x51, 0x0a, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64,
664	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
665	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
666	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
667	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
668	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb2, 0x02, 0x0a, 0x05, 0x56,
669	0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c,
670	0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
671	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56,
672	0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75,
673	0x65, 0x12, 0x23, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75,
674	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x62, 0x65,
675	0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67,
676	0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b,
677	0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62,
678	0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48,
679	0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0c,
680	0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01,
681	0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
682	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73,
683	0x74, 0x72, 0x75, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6c, 0x69,
684	0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
685	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
686	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69,
687	0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22,
688	0x3b, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a, 0x06,
689	0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
690	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56,
691	0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2a, 0x1b, 0x0a, 0x09,
692	0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x55, 0x4c,
693	0x4c, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x00, 0x42, 0x7f, 0x0a, 0x13, 0x63, 0x6f, 0x6d,
694	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
695	0x42, 0x0b, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
696	0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f,
697	0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65,
698	0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x70, 0x62,
699	0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67,
700	0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c,
701	0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
702	0x6f, 0x33,
703}
704
705var (
706	file_google_protobuf_struct_proto_rawDescOnce sync.Once
707	file_google_protobuf_struct_proto_rawDescData = file_google_protobuf_struct_proto_rawDesc
708)
709
710func file_google_protobuf_struct_proto_rawDescGZIP() []byte {
711	file_google_protobuf_struct_proto_rawDescOnce.Do(func() {
712		file_google_protobuf_struct_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_struct_proto_rawDescData)
713	})
714	return file_google_protobuf_struct_proto_rawDescData
715}
716
717var file_google_protobuf_struct_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
718var file_google_protobuf_struct_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
719var file_google_protobuf_struct_proto_goTypes = []interface{}{
720	(NullValue)(0),    // 0: google.protobuf.NullValue
721	(*Struct)(nil),    // 1: google.protobuf.Struct
722	(*Value)(nil),     // 2: google.protobuf.Value
723	(*ListValue)(nil), // 3: google.protobuf.ListValue
724	nil,               // 4: google.protobuf.Struct.FieldsEntry
725}
726var file_google_protobuf_struct_proto_depIdxs = []int32{
727	4, // 0: google.protobuf.Struct.fields:type_name -> google.protobuf.Struct.FieldsEntry
728	0, // 1: google.protobuf.Value.null_value:type_name -> google.protobuf.NullValue
729	1, // 2: google.protobuf.Value.struct_value:type_name -> google.protobuf.Struct
730	3, // 3: google.protobuf.Value.list_value:type_name -> google.protobuf.ListValue
731	2, // 4: google.protobuf.ListValue.values:type_name -> google.protobuf.Value
732	2, // 5: google.protobuf.Struct.FieldsEntry.value:type_name -> google.protobuf.Value
733	6, // [6:6] is the sub-list for method output_type
734	6, // [6:6] is the sub-list for method input_type
735	6, // [6:6] is the sub-list for extension type_name
736	6, // [6:6] is the sub-list for extension extendee
737	0, // [0:6] is the sub-list for field type_name
738}
739
740func init() { file_google_protobuf_struct_proto_init() }
741func file_google_protobuf_struct_proto_init() {
742	if File_google_protobuf_struct_proto != nil {
743		return
744	}
745	if !protoimpl.UnsafeEnabled {
746		file_google_protobuf_struct_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
747			switch v := v.(*Struct); i {
748			case 0:
749				return &v.state
750			case 1:
751				return &v.sizeCache
752			case 2:
753				return &v.unknownFields
754			default:
755				return nil
756			}
757		}
758		file_google_protobuf_struct_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
759			switch v := v.(*Value); i {
760			case 0:
761				return &v.state
762			case 1:
763				return &v.sizeCache
764			case 2:
765				return &v.unknownFields
766			default:
767				return nil
768			}
769		}
770		file_google_protobuf_struct_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
771			switch v := v.(*ListValue); i {
772			case 0:
773				return &v.state
774			case 1:
775				return &v.sizeCache
776			case 2:
777				return &v.unknownFields
778			default:
779				return nil
780			}
781		}
782	}
783	file_google_protobuf_struct_proto_msgTypes[1].OneofWrappers = []interface{}{
784		(*Value_NullValue)(nil),
785		(*Value_NumberValue)(nil),
786		(*Value_StringValue)(nil),
787		(*Value_BoolValue)(nil),
788		(*Value_StructValue)(nil),
789		(*Value_ListValue)(nil),
790	}
791	type x struct{}
792	out := protoimpl.TypeBuilder{
793		File: protoimpl.DescBuilder{
794			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
795			RawDescriptor: file_google_protobuf_struct_proto_rawDesc,
796			NumEnums:      1,
797			NumMessages:   4,
798			NumExtensions: 0,
799			NumServices:   0,
800		},
801		GoTypes:           file_google_protobuf_struct_proto_goTypes,
802		DependencyIndexes: file_google_protobuf_struct_proto_depIdxs,
803		EnumInfos:         file_google_protobuf_struct_proto_enumTypes,
804		MessageInfos:      file_google_protobuf_struct_proto_msgTypes,
805	}.Build()
806	File_google_protobuf_struct_proto = out.File
807	file_google_protobuf_struct_proto_rawDesc = nil
808	file_google_protobuf_struct_proto_goTypes = nil
809	file_google_protobuf_struct_proto_depIdxs = nil
810}
811