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// 48// Conversion to and from a Go interface 49// 50// The standard Go "encoding/json" package has functionality to serialize 51// arbitrary types to a large degree. The Value.AsInterface, Struct.AsMap, and 52// ListValue.AsSlice methods can convert the protobuf message representation into 53// a form represented by interface{}, map[string]interface{}, and []interface{}. 54// This form can be used with other packages that operate on such data structures 55// and also directly with the standard json package. 56// 57// In order to convert the interface{}, map[string]interface{}, and []interface{} 58// forms back as Value, Struct, and ListValue messages, use the NewStruct, 59// NewList, and NewValue constructor functions. 60// 61// 62// Example usage 63// 64// Consider the following example JSON object: 65// 66// { 67// "firstName": "John", 68// "lastName": "Smith", 69// "isAlive": true, 70// "age": 27, 71// "address": { 72// "streetAddress": "21 2nd Street", 73// "city": "New York", 74// "state": "NY", 75// "postalCode": "10021-3100" 76// }, 77// "phoneNumbers": [ 78// { 79// "type": "home", 80// "number": "212 555-1234" 81// }, 82// { 83// "type": "office", 84// "number": "646 555-4567" 85// } 86// ], 87// "children": [], 88// "spouse": null 89// } 90// 91// To construct a Value message representing the above JSON object: 92// 93// m, err := structpb.NewValue(map[string]interface{}{ 94// "firstName": "John", 95// "lastName": "Smith", 96// "isAlive": true, 97// "age": 27, 98// "address": map[string]interface{}{ 99// "streetAddress": "21 2nd Street", 100// "city": "New York", 101// "state": "NY", 102// "postalCode": "10021-3100", 103// }, 104// "phoneNumbers": []interface{}{ 105// map[string]interface{}{ 106// "type": "home", 107// "number": "212 555-1234", 108// }, 109// map[string]interface{}{ 110// "type": "office", 111// "number": "646 555-4567", 112// }, 113// }, 114// "children": []interface{}{}, 115// "spouse": nil, 116// }) 117// if err != nil { 118// ... // handle error 119// } 120// ... // make use of m as a *structpb.Value 121// 122package structpb 123 124import ( 125 base64 "encoding/base64" 126 protojson "google.golang.org/protobuf/encoding/protojson" 127 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 128 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 129 math "math" 130 reflect "reflect" 131 sync "sync" 132 utf8 "unicode/utf8" 133) 134 135// `NullValue` is a singleton enumeration to represent the null value for the 136// `Value` type union. 137// 138// The JSON representation for `NullValue` is JSON `null`. 139type NullValue int32 140 141const ( 142 // Null value. 143 NullValue_NULL_VALUE NullValue = 0 144) 145 146// Enum value maps for NullValue. 147var ( 148 NullValue_name = map[int32]string{ 149 0: "NULL_VALUE", 150 } 151 NullValue_value = map[string]int32{ 152 "NULL_VALUE": 0, 153 } 154) 155 156func (x NullValue) Enum() *NullValue { 157 p := new(NullValue) 158 *p = x 159 return p 160} 161 162func (x NullValue) String() string { 163 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 164} 165 166func (NullValue) Descriptor() protoreflect.EnumDescriptor { 167 return file_google_protobuf_struct_proto_enumTypes[0].Descriptor() 168} 169 170func (NullValue) Type() protoreflect.EnumType { 171 return &file_google_protobuf_struct_proto_enumTypes[0] 172} 173 174func (x NullValue) Number() protoreflect.EnumNumber { 175 return protoreflect.EnumNumber(x) 176} 177 178// Deprecated: Use NullValue.Descriptor instead. 179func (NullValue) EnumDescriptor() ([]byte, []int) { 180 return file_google_protobuf_struct_proto_rawDescGZIP(), []int{0} 181} 182 183// `Struct` represents a structured data value, consisting of fields 184// which map to dynamically typed values. In some languages, `Struct` 185// might be supported by a native representation. For example, in 186// scripting languages like JS a struct is represented as an 187// object. The details of that representation are described together 188// with the proto support for the language. 189// 190// The JSON representation for `Struct` is JSON object. 191type Struct struct { 192 state protoimpl.MessageState 193 sizeCache protoimpl.SizeCache 194 unknownFields protoimpl.UnknownFields 195 196 // Unordered map of dynamically typed values. 197 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"` 198} 199 200// NewStruct constructs a Struct from a general-purpose Go map. 201// The map keys must be valid UTF-8. 202// The map values are converted using NewValue. 203func NewStruct(v map[string]interface{}) (*Struct, error) { 204 x := &Struct{Fields: make(map[string]*Value, len(v))} 205 for k, v := range v { 206 if !utf8.ValidString(k) { 207 return nil, protoimpl.X.NewError("invalid UTF-8 in string: %q", k) 208 } 209 var err error 210 x.Fields[k], err = NewValue(v) 211 if err != nil { 212 return nil, err 213 } 214 } 215 return x, nil 216} 217 218// AsMap converts x to a general-purpose Go map. 219// The map values are converted by calling Value.AsInterface. 220func (x *Struct) AsMap() map[string]interface{} { 221 vs := make(map[string]interface{}) 222 for k, v := range x.GetFields() { 223 vs[k] = v.AsInterface() 224 } 225 return vs 226} 227 228func (x *Struct) MarshalJSON() ([]byte, error) { 229 return protojson.Marshal(x) 230} 231 232func (x *Struct) UnmarshalJSON(b []byte) error { 233 return protojson.Unmarshal(b, x) 234} 235 236func (x *Struct) Reset() { 237 *x = Struct{} 238 if protoimpl.UnsafeEnabled { 239 mi := &file_google_protobuf_struct_proto_msgTypes[0] 240 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 241 ms.StoreMessageInfo(mi) 242 } 243} 244 245func (x *Struct) String() string { 246 return protoimpl.X.MessageStringOf(x) 247} 248 249func (*Struct) ProtoMessage() {} 250 251func (x *Struct) ProtoReflect() protoreflect.Message { 252 mi := &file_google_protobuf_struct_proto_msgTypes[0] 253 if protoimpl.UnsafeEnabled && x != nil { 254 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 255 if ms.LoadMessageInfo() == nil { 256 ms.StoreMessageInfo(mi) 257 } 258 return ms 259 } 260 return mi.MessageOf(x) 261} 262 263// Deprecated: Use Struct.ProtoReflect.Descriptor instead. 264func (*Struct) Descriptor() ([]byte, []int) { 265 return file_google_protobuf_struct_proto_rawDescGZIP(), []int{0} 266} 267 268func (x *Struct) GetFields() map[string]*Value { 269 if x != nil { 270 return x.Fields 271 } 272 return nil 273} 274 275// `Value` represents a dynamically typed value which can be either 276// null, a number, a string, a boolean, a recursive struct value, or a 277// list of values. A producer of value is expected to set one of that 278// variants, absence of any variant indicates an error. 279// 280// The JSON representation for `Value` is JSON value. 281type Value struct { 282 state protoimpl.MessageState 283 sizeCache protoimpl.SizeCache 284 unknownFields protoimpl.UnknownFields 285 286 // The kind of value. 287 // 288 // Types that are assignable to Kind: 289 // *Value_NullValue 290 // *Value_NumberValue 291 // *Value_StringValue 292 // *Value_BoolValue 293 // *Value_StructValue 294 // *Value_ListValue 295 Kind isValue_Kind `protobuf_oneof:"kind"` 296} 297 298// NewValue constructs a Value from a general-purpose Go interface. 299// 300// ╔════════════════════════╤════════════════════════════════════════════╗ 301// ║ Go type │ Conversion ║ 302// ╠════════════════════════╪════════════════════════════════════════════╣ 303// ║ nil │ stored as NullValue ║ 304// ║ bool │ stored as BoolValue ║ 305// ║ int, int32, int64 │ stored as NumberValue ║ 306// ║ uint, uint32, uint64 │ stored as NumberValue ║ 307// ║ float32, float64 │ stored as NumberValue ║ 308// ║ string │ stored as StringValue; must be valid UTF-8 ║ 309// ║ []byte │ stored as StringValue; base64-encoded ║ 310// ║ map[string]interface{} │ stored as StructValue ║ 311// ║ []interface{} │ stored as ListValue ║ 312// ╚════════════════════════╧════════════════════════════════════════════╝ 313// 314// When converting an int64 or uint64 to a NumberValue, numeric precision loss 315// is possible since they are stored as a float64. 316func NewValue(v interface{}) (*Value, error) { 317 switch v := v.(type) { 318 case nil: 319 return NewNullValue(), nil 320 case bool: 321 return NewBoolValue(v), nil 322 case int: 323 return NewNumberValue(float64(v)), nil 324 case int32: 325 return NewNumberValue(float64(v)), nil 326 case int64: 327 return NewNumberValue(float64(v)), nil 328 case uint: 329 return NewNumberValue(float64(v)), nil 330 case uint32: 331 return NewNumberValue(float64(v)), nil 332 case uint64: 333 return NewNumberValue(float64(v)), nil 334 case float32: 335 return NewNumberValue(float64(v)), nil 336 case float64: 337 return NewNumberValue(float64(v)), nil 338 case string: 339 if !utf8.ValidString(v) { 340 return nil, protoimpl.X.NewError("invalid UTF-8 in string: %q", v) 341 } 342 return NewStringValue(v), nil 343 case []byte: 344 s := base64.StdEncoding.EncodeToString(v) 345 return NewStringValue(s), nil 346 case map[string]interface{}: 347 v2, err := NewStruct(v) 348 if err != nil { 349 return nil, err 350 } 351 return NewStructValue(v2), nil 352 case []interface{}: 353 v2, err := NewList(v) 354 if err != nil { 355 return nil, err 356 } 357 return NewListValue(v2), nil 358 default: 359 return nil, protoimpl.X.NewError("invalid type: %T", v) 360 } 361} 362 363// NewNullValue constructs a new null Value. 364func NewNullValue() *Value { 365 return &Value{Kind: &Value_NullValue{NullValue: NullValue_NULL_VALUE}} 366} 367 368// NewBoolValue constructs a new boolean Value. 369func NewBoolValue(v bool) *Value { 370 return &Value{Kind: &Value_BoolValue{BoolValue: v}} 371} 372 373// NewNumberValue constructs a new number Value. 374func NewNumberValue(v float64) *Value { 375 return &Value{Kind: &Value_NumberValue{NumberValue: v}} 376} 377 378// NewStringValue constructs a new string Value. 379func NewStringValue(v string) *Value { 380 return &Value{Kind: &Value_StringValue{StringValue: v}} 381} 382 383// NewStructValue constructs a new struct Value. 384func NewStructValue(v *Struct) *Value { 385 return &Value{Kind: &Value_StructValue{StructValue: v}} 386} 387 388// NewListValue constructs a new list Value. 389func NewListValue(v *ListValue) *Value { 390 return &Value{Kind: &Value_ListValue{ListValue: v}} 391} 392 393// AsInterface converts x to a general-purpose Go interface. 394// 395// Calling Value.MarshalJSON and "encoding/json".Marshal on this output produce 396// semantically equivalent JSON (assuming no errors occur). 397// 398// Floating-point values (i.e., "NaN", "Infinity", and "-Infinity") are 399// converted as strings to remain compatible with MarshalJSON. 400func (x *Value) AsInterface() interface{} { 401 switch v := x.GetKind().(type) { 402 case *Value_NumberValue: 403 if v != nil { 404 switch { 405 case math.IsNaN(v.NumberValue): 406 return "NaN" 407 case math.IsInf(v.NumberValue, +1): 408 return "Infinity" 409 case math.IsInf(v.NumberValue, -1): 410 return "-Infinity" 411 default: 412 return v.NumberValue 413 } 414 } 415 case *Value_StringValue: 416 if v != nil { 417 return v.StringValue 418 } 419 case *Value_BoolValue: 420 if v != nil { 421 return v.BoolValue 422 } 423 case *Value_StructValue: 424 if v != nil { 425 return v.StructValue.AsMap() 426 } 427 case *Value_ListValue: 428 if v != nil { 429 return v.ListValue.AsSlice() 430 } 431 } 432 return nil 433} 434 435func (x *Value) MarshalJSON() ([]byte, error) { 436 return protojson.Marshal(x) 437} 438 439func (x *Value) UnmarshalJSON(b []byte) error { 440 return protojson.Unmarshal(b, x) 441} 442 443func (x *Value) Reset() { 444 *x = Value{} 445 if protoimpl.UnsafeEnabled { 446 mi := &file_google_protobuf_struct_proto_msgTypes[1] 447 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 448 ms.StoreMessageInfo(mi) 449 } 450} 451 452func (x *Value) String() string { 453 return protoimpl.X.MessageStringOf(x) 454} 455 456func (*Value) ProtoMessage() {} 457 458func (x *Value) ProtoReflect() protoreflect.Message { 459 mi := &file_google_protobuf_struct_proto_msgTypes[1] 460 if protoimpl.UnsafeEnabled && x != nil { 461 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 462 if ms.LoadMessageInfo() == nil { 463 ms.StoreMessageInfo(mi) 464 } 465 return ms 466 } 467 return mi.MessageOf(x) 468} 469 470// Deprecated: Use Value.ProtoReflect.Descriptor instead. 471func (*Value) Descriptor() ([]byte, []int) { 472 return file_google_protobuf_struct_proto_rawDescGZIP(), []int{1} 473} 474 475func (m *Value) GetKind() isValue_Kind { 476 if m != nil { 477 return m.Kind 478 } 479 return nil 480} 481 482func (x *Value) GetNullValue() NullValue { 483 if x, ok := x.GetKind().(*Value_NullValue); ok { 484 return x.NullValue 485 } 486 return NullValue_NULL_VALUE 487} 488 489func (x *Value) GetNumberValue() float64 { 490 if x, ok := x.GetKind().(*Value_NumberValue); ok { 491 return x.NumberValue 492 } 493 return 0 494} 495 496func (x *Value) GetStringValue() string { 497 if x, ok := x.GetKind().(*Value_StringValue); ok { 498 return x.StringValue 499 } 500 return "" 501} 502 503func (x *Value) GetBoolValue() bool { 504 if x, ok := x.GetKind().(*Value_BoolValue); ok { 505 return x.BoolValue 506 } 507 return false 508} 509 510func (x *Value) GetStructValue() *Struct { 511 if x, ok := x.GetKind().(*Value_StructValue); ok { 512 return x.StructValue 513 } 514 return nil 515} 516 517func (x *Value) GetListValue() *ListValue { 518 if x, ok := x.GetKind().(*Value_ListValue); ok { 519 return x.ListValue 520 } 521 return nil 522} 523 524type isValue_Kind interface { 525 isValue_Kind() 526} 527 528type Value_NullValue struct { 529 // Represents a null value. 530 NullValue NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"` 531} 532 533type Value_NumberValue struct { 534 // Represents a double value. 535 NumberValue float64 `protobuf:"fixed64,2,opt,name=number_value,json=numberValue,proto3,oneof"` 536} 537 538type Value_StringValue struct { 539 // Represents a string value. 540 StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"` 541} 542 543type Value_BoolValue struct { 544 // Represents a boolean value. 545 BoolValue bool `protobuf:"varint,4,opt,name=bool_value,json=boolValue,proto3,oneof"` 546} 547 548type Value_StructValue struct { 549 // Represents a structured value. 550 StructValue *Struct `protobuf:"bytes,5,opt,name=struct_value,json=structValue,proto3,oneof"` 551} 552 553type Value_ListValue struct { 554 // Represents a repeated `Value`. 555 ListValue *ListValue `protobuf:"bytes,6,opt,name=list_value,json=listValue,proto3,oneof"` 556} 557 558func (*Value_NullValue) isValue_Kind() {} 559 560func (*Value_NumberValue) isValue_Kind() {} 561 562func (*Value_StringValue) isValue_Kind() {} 563 564func (*Value_BoolValue) isValue_Kind() {} 565 566func (*Value_StructValue) isValue_Kind() {} 567 568func (*Value_ListValue) isValue_Kind() {} 569 570// `ListValue` is a wrapper around a repeated field of values. 571// 572// The JSON representation for `ListValue` is JSON array. 573type ListValue struct { 574 state protoimpl.MessageState 575 sizeCache protoimpl.SizeCache 576 unknownFields protoimpl.UnknownFields 577 578 // Repeated field of dynamically typed values. 579 Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` 580} 581 582// NewList constructs a ListValue from a general-purpose Go slice. 583// The slice elements are converted using NewValue. 584func NewList(v []interface{}) (*ListValue, error) { 585 x := &ListValue{Values: make([]*Value, len(v))} 586 for i, v := range v { 587 var err error 588 x.Values[i], err = NewValue(v) 589 if err != nil { 590 return nil, err 591 } 592 } 593 return x, nil 594} 595 596// AsSlice converts x to a general-purpose Go slice. 597// The slice elements are converted by calling Value.AsInterface. 598func (x *ListValue) AsSlice() []interface{} { 599 vs := make([]interface{}, len(x.GetValues())) 600 for i, v := range x.GetValues() { 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