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