github.com/cloudwan/edgelq-sdk@v1.15.4/monitoring/resources/v3/common/common.pb.fieldpath.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/monitoring/proto/v3/common.proto 3 // DO NOT EDIT!!! 4 5 package common 6 7 import ( 8 "encoding/json" 9 "fmt" 10 "reflect" 11 "strings" 12 "time" 13 14 "google.golang.org/grpc/codes" 15 "google.golang.org/grpc/status" 16 "google.golang.org/protobuf/encoding/protojson" 17 "google.golang.org/protobuf/proto" 18 "google.golang.org/protobuf/reflect/protoregistry" 19 20 gotenobject "github.com/cloudwan/goten-sdk/runtime/object" 21 "github.com/cloudwan/goten-sdk/runtime/strcase" 22 ) 23 24 // proto imports 25 import ( 26 durationpb "google.golang.org/protobuf/types/known/durationpb" 27 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 28 ) 29 30 // ensure the imports are used 31 var ( 32 _ = new(json.Marshaler) 33 _ = new(fmt.Stringer) 34 _ = reflect.DeepEqual 35 _ = strings.Builder{} 36 _ = time.Second 37 38 _ = strcase.ToLowerCamel 39 _ = codes.NotFound 40 _ = status.Status{} 41 _ = protojson.UnmarshalOptions{} 42 _ = new(proto.Message) 43 _ = protoregistry.GlobalTypes 44 45 _ = new(gotenobject.FieldPath) 46 ) 47 48 // make sure we're using proto imports 49 var ( 50 _ = &durationpb.Duration{} 51 _ = ×tamppb.Timestamp{} 52 ) 53 54 // FieldPath provides implementation to handle 55 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 56 type LabelDescriptor_FieldPath interface { 57 gotenobject.FieldPath 58 Selector() LabelDescriptor_FieldPathSelector 59 Get(source *LabelDescriptor) []interface{} 60 GetSingle(source *LabelDescriptor) (interface{}, bool) 61 ClearValue(item *LabelDescriptor) 62 63 // Those methods build corresponding LabelDescriptor_FieldPathValue 64 // (or array of values) and holds passed value. Panics if injected type is incorrect. 65 WithIValue(value interface{}) LabelDescriptor_FieldPathValue 66 WithIArrayOfValues(values interface{}) LabelDescriptor_FieldPathArrayOfValues 67 WithIArrayItemValue(value interface{}) LabelDescriptor_FieldPathArrayItemValue 68 } 69 70 type LabelDescriptor_FieldPathSelector int32 71 72 const ( 73 LabelDescriptor_FieldPathSelectorKey LabelDescriptor_FieldPathSelector = 0 74 LabelDescriptor_FieldPathSelectorValueType LabelDescriptor_FieldPathSelector = 1 75 LabelDescriptor_FieldPathSelectorDescription LabelDescriptor_FieldPathSelector = 2 76 LabelDescriptor_FieldPathSelectorDefaultValue LabelDescriptor_FieldPathSelector = 3 77 LabelDescriptor_FieldPathSelectorDisabled LabelDescriptor_FieldPathSelector = 4 78 ) 79 80 func (s LabelDescriptor_FieldPathSelector) String() string { 81 switch s { 82 case LabelDescriptor_FieldPathSelectorKey: 83 return "key" 84 case LabelDescriptor_FieldPathSelectorValueType: 85 return "value_type" 86 case LabelDescriptor_FieldPathSelectorDescription: 87 return "description" 88 case LabelDescriptor_FieldPathSelectorDefaultValue: 89 return "default_value" 90 case LabelDescriptor_FieldPathSelectorDisabled: 91 return "disabled" 92 default: 93 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", s)) 94 } 95 } 96 97 func BuildLabelDescriptor_FieldPath(fp gotenobject.RawFieldPath) (LabelDescriptor_FieldPath, error) { 98 if len(fp) == 0 { 99 return nil, status.Error(codes.InvalidArgument, "empty field path for object LabelDescriptor") 100 } 101 if len(fp) == 1 { 102 switch fp[0] { 103 case "key": 104 return &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorKey}, nil 105 case "value_type", "valueType", "value-type": 106 return &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorValueType}, nil 107 case "description": 108 return &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorDescription}, nil 109 case "default_value", "defaultValue", "default-value": 110 return &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorDefaultValue}, nil 111 case "disabled": 112 return &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorDisabled}, nil 113 } 114 } 115 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object LabelDescriptor", fp) 116 } 117 118 func ParseLabelDescriptor_FieldPath(rawField string) (LabelDescriptor_FieldPath, error) { 119 fp, err := gotenobject.ParseRawFieldPath(rawField) 120 if err != nil { 121 return nil, err 122 } 123 return BuildLabelDescriptor_FieldPath(fp) 124 } 125 126 func MustParseLabelDescriptor_FieldPath(rawField string) LabelDescriptor_FieldPath { 127 fp, err := ParseLabelDescriptor_FieldPath(rawField) 128 if err != nil { 129 panic(err) 130 } 131 return fp 132 } 133 134 type LabelDescriptor_FieldTerminalPath struct { 135 selector LabelDescriptor_FieldPathSelector 136 } 137 138 var _ LabelDescriptor_FieldPath = (*LabelDescriptor_FieldTerminalPath)(nil) 139 140 func (fp *LabelDescriptor_FieldTerminalPath) Selector() LabelDescriptor_FieldPathSelector { 141 return fp.selector 142 } 143 144 // String returns path representation in proto convention 145 func (fp *LabelDescriptor_FieldTerminalPath) String() string { 146 return fp.selector.String() 147 } 148 149 // JSONString returns path representation is JSON convention 150 func (fp *LabelDescriptor_FieldTerminalPath) JSONString() string { 151 return strcase.ToLowerCamel(fp.String()) 152 } 153 154 // Get returns all values pointed by specific field from source LabelDescriptor 155 func (fp *LabelDescriptor_FieldTerminalPath) Get(source *LabelDescriptor) (values []interface{}) { 156 if source != nil { 157 switch fp.selector { 158 case LabelDescriptor_FieldPathSelectorKey: 159 values = append(values, source.Key) 160 case LabelDescriptor_FieldPathSelectorValueType: 161 values = append(values, source.ValueType) 162 case LabelDescriptor_FieldPathSelectorDescription: 163 values = append(values, source.Description) 164 case LabelDescriptor_FieldPathSelectorDefaultValue: 165 values = append(values, source.DefaultValue) 166 case LabelDescriptor_FieldPathSelectorDisabled: 167 values = append(values, source.Disabled) 168 default: 169 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 170 } 171 } 172 return 173 } 174 175 func (fp *LabelDescriptor_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 176 return fp.Get(source.(*LabelDescriptor)) 177 } 178 179 // GetSingle returns value pointed by specific field of from source LabelDescriptor 180 func (fp *LabelDescriptor_FieldTerminalPath) GetSingle(source *LabelDescriptor) (interface{}, bool) { 181 switch fp.selector { 182 case LabelDescriptor_FieldPathSelectorKey: 183 return source.GetKey(), source != nil 184 case LabelDescriptor_FieldPathSelectorValueType: 185 return source.GetValueType(), source != nil 186 case LabelDescriptor_FieldPathSelectorDescription: 187 return source.GetDescription(), source != nil 188 case LabelDescriptor_FieldPathSelectorDefaultValue: 189 return source.GetDefaultValue(), source != nil 190 case LabelDescriptor_FieldPathSelectorDisabled: 191 return source.GetDisabled(), source != nil 192 default: 193 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 194 } 195 } 196 197 func (fp *LabelDescriptor_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 198 return fp.GetSingle(source.(*LabelDescriptor)) 199 } 200 201 // GetDefault returns a default value of the field type 202 func (fp *LabelDescriptor_FieldTerminalPath) GetDefault() interface{} { 203 switch fp.selector { 204 case LabelDescriptor_FieldPathSelectorKey: 205 return "" 206 case LabelDescriptor_FieldPathSelectorValueType: 207 return LabelDescriptor_STRING 208 case LabelDescriptor_FieldPathSelectorDescription: 209 return "" 210 case LabelDescriptor_FieldPathSelectorDefaultValue: 211 return "" 212 case LabelDescriptor_FieldPathSelectorDisabled: 213 return false 214 default: 215 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 216 } 217 } 218 219 func (fp *LabelDescriptor_FieldTerminalPath) ClearValue(item *LabelDescriptor) { 220 if item != nil { 221 switch fp.selector { 222 case LabelDescriptor_FieldPathSelectorKey: 223 item.Key = "" 224 case LabelDescriptor_FieldPathSelectorValueType: 225 item.ValueType = LabelDescriptor_STRING 226 case LabelDescriptor_FieldPathSelectorDescription: 227 item.Description = "" 228 case LabelDescriptor_FieldPathSelectorDefaultValue: 229 item.DefaultValue = "" 230 case LabelDescriptor_FieldPathSelectorDisabled: 231 item.Disabled = false 232 default: 233 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 234 } 235 } 236 } 237 238 func (fp *LabelDescriptor_FieldTerminalPath) ClearValueRaw(item proto.Message) { 239 fp.ClearValue(item.(*LabelDescriptor)) 240 } 241 242 // IsLeaf - whether field path is holds simple value 243 func (fp *LabelDescriptor_FieldTerminalPath) IsLeaf() bool { 244 return fp.selector == LabelDescriptor_FieldPathSelectorKey || 245 fp.selector == LabelDescriptor_FieldPathSelectorValueType || 246 fp.selector == LabelDescriptor_FieldPathSelectorDescription || 247 fp.selector == LabelDescriptor_FieldPathSelectorDefaultValue || 248 fp.selector == LabelDescriptor_FieldPathSelectorDisabled 249 } 250 251 func (fp *LabelDescriptor_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 252 return []gotenobject.FieldPath{fp} 253 } 254 255 func (fp *LabelDescriptor_FieldTerminalPath) WithIValue(value interface{}) LabelDescriptor_FieldPathValue { 256 switch fp.selector { 257 case LabelDescriptor_FieldPathSelectorKey: 258 return &LabelDescriptor_FieldTerminalPathValue{LabelDescriptor_FieldTerminalPath: *fp, value: value.(string)} 259 case LabelDescriptor_FieldPathSelectorValueType: 260 return &LabelDescriptor_FieldTerminalPathValue{LabelDescriptor_FieldTerminalPath: *fp, value: value.(LabelDescriptor_ValueType)} 261 case LabelDescriptor_FieldPathSelectorDescription: 262 return &LabelDescriptor_FieldTerminalPathValue{LabelDescriptor_FieldTerminalPath: *fp, value: value.(string)} 263 case LabelDescriptor_FieldPathSelectorDefaultValue: 264 return &LabelDescriptor_FieldTerminalPathValue{LabelDescriptor_FieldTerminalPath: *fp, value: value.(string)} 265 case LabelDescriptor_FieldPathSelectorDisabled: 266 return &LabelDescriptor_FieldTerminalPathValue{LabelDescriptor_FieldTerminalPath: *fp, value: value.(bool)} 267 default: 268 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 269 } 270 } 271 272 func (fp *LabelDescriptor_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 273 return fp.WithIValue(value) 274 } 275 276 func (fp *LabelDescriptor_FieldTerminalPath) WithIArrayOfValues(values interface{}) LabelDescriptor_FieldPathArrayOfValues { 277 fpaov := &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp} 278 switch fp.selector { 279 case LabelDescriptor_FieldPathSelectorKey: 280 return &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp, values: values.([]string)} 281 case LabelDescriptor_FieldPathSelectorValueType: 282 return &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp, values: values.([]LabelDescriptor_ValueType)} 283 case LabelDescriptor_FieldPathSelectorDescription: 284 return &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp, values: values.([]string)} 285 case LabelDescriptor_FieldPathSelectorDefaultValue: 286 return &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp, values: values.([]string)} 287 case LabelDescriptor_FieldPathSelectorDisabled: 288 return &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp, values: values.([]bool)} 289 default: 290 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 291 } 292 return fpaov 293 } 294 295 func (fp *LabelDescriptor_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 296 return fp.WithIArrayOfValues(values) 297 } 298 299 func (fp *LabelDescriptor_FieldTerminalPath) WithIArrayItemValue(value interface{}) LabelDescriptor_FieldPathArrayItemValue { 300 switch fp.selector { 301 default: 302 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 303 } 304 } 305 306 func (fp *LabelDescriptor_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 307 return fp.WithIArrayItemValue(value) 308 } 309 310 // LabelDescriptor_FieldPathValue allows storing values for LabelDescriptor fields according to their type 311 type LabelDescriptor_FieldPathValue interface { 312 LabelDescriptor_FieldPath 313 gotenobject.FieldPathValue 314 SetTo(target **LabelDescriptor) 315 CompareWith(*LabelDescriptor) (cmp int, comparable bool) 316 } 317 318 func ParseLabelDescriptor_FieldPathValue(pathStr, valueStr string) (LabelDescriptor_FieldPathValue, error) { 319 fp, err := ParseLabelDescriptor_FieldPath(pathStr) 320 if err != nil { 321 return nil, err 322 } 323 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 324 if err != nil { 325 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelDescriptor field path value from %s: %v", valueStr, err) 326 } 327 return fpv.(LabelDescriptor_FieldPathValue), nil 328 } 329 330 func MustParseLabelDescriptor_FieldPathValue(pathStr, valueStr string) LabelDescriptor_FieldPathValue { 331 fpv, err := ParseLabelDescriptor_FieldPathValue(pathStr, valueStr) 332 if err != nil { 333 panic(err) 334 } 335 return fpv 336 } 337 338 type LabelDescriptor_FieldTerminalPathValue struct { 339 LabelDescriptor_FieldTerminalPath 340 value interface{} 341 } 342 343 var _ LabelDescriptor_FieldPathValue = (*LabelDescriptor_FieldTerminalPathValue)(nil) 344 345 // GetRawValue returns raw value stored under selected path for 'LabelDescriptor' as interface{} 346 func (fpv *LabelDescriptor_FieldTerminalPathValue) GetRawValue() interface{} { 347 return fpv.value 348 } 349 func (fpv *LabelDescriptor_FieldTerminalPathValue) AsKeyValue() (string, bool) { 350 res, ok := fpv.value.(string) 351 return res, ok 352 } 353 func (fpv *LabelDescriptor_FieldTerminalPathValue) AsValueTypeValue() (LabelDescriptor_ValueType, bool) { 354 res, ok := fpv.value.(LabelDescriptor_ValueType) 355 return res, ok 356 } 357 func (fpv *LabelDescriptor_FieldTerminalPathValue) AsDescriptionValue() (string, bool) { 358 res, ok := fpv.value.(string) 359 return res, ok 360 } 361 func (fpv *LabelDescriptor_FieldTerminalPathValue) AsDefaultValueValue() (string, bool) { 362 res, ok := fpv.value.(string) 363 return res, ok 364 } 365 func (fpv *LabelDescriptor_FieldTerminalPathValue) AsDisabledValue() (bool, bool) { 366 res, ok := fpv.value.(bool) 367 return res, ok 368 } 369 370 // SetTo stores value for selected field for object LabelDescriptor 371 func (fpv *LabelDescriptor_FieldTerminalPathValue) SetTo(target **LabelDescriptor) { 372 if *target == nil { 373 *target = new(LabelDescriptor) 374 } 375 switch fpv.selector { 376 case LabelDescriptor_FieldPathSelectorKey: 377 (*target).Key = fpv.value.(string) 378 case LabelDescriptor_FieldPathSelectorValueType: 379 (*target).ValueType = fpv.value.(LabelDescriptor_ValueType) 380 case LabelDescriptor_FieldPathSelectorDescription: 381 (*target).Description = fpv.value.(string) 382 case LabelDescriptor_FieldPathSelectorDefaultValue: 383 (*target).DefaultValue = fpv.value.(string) 384 case LabelDescriptor_FieldPathSelectorDisabled: 385 (*target).Disabled = fpv.value.(bool) 386 default: 387 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fpv.selector)) 388 } 389 } 390 391 func (fpv *LabelDescriptor_FieldTerminalPathValue) SetToRaw(target proto.Message) { 392 typedObject := target.(*LabelDescriptor) 393 fpv.SetTo(&typedObject) 394 } 395 396 // CompareWith compares value in the 'LabelDescriptor_FieldTerminalPathValue' with the value under path in 'LabelDescriptor'. 397 func (fpv *LabelDescriptor_FieldTerminalPathValue) CompareWith(source *LabelDescriptor) (int, bool) { 398 switch fpv.selector { 399 case LabelDescriptor_FieldPathSelectorKey: 400 leftValue := fpv.value.(string) 401 rightValue := source.GetKey() 402 if (leftValue) == (rightValue) { 403 return 0, true 404 } else if (leftValue) < (rightValue) { 405 return -1, true 406 } else { 407 return 1, true 408 } 409 case LabelDescriptor_FieldPathSelectorValueType: 410 leftValue := fpv.value.(LabelDescriptor_ValueType) 411 rightValue := source.GetValueType() 412 if (leftValue) == (rightValue) { 413 return 0, true 414 } else if (leftValue) < (rightValue) { 415 return -1, true 416 } else { 417 return 1, true 418 } 419 case LabelDescriptor_FieldPathSelectorDescription: 420 leftValue := fpv.value.(string) 421 rightValue := source.GetDescription() 422 if (leftValue) == (rightValue) { 423 return 0, true 424 } else if (leftValue) < (rightValue) { 425 return -1, true 426 } else { 427 return 1, true 428 } 429 case LabelDescriptor_FieldPathSelectorDefaultValue: 430 leftValue := fpv.value.(string) 431 rightValue := source.GetDefaultValue() 432 if (leftValue) == (rightValue) { 433 return 0, true 434 } else if (leftValue) < (rightValue) { 435 return -1, true 436 } else { 437 return 1, true 438 } 439 case LabelDescriptor_FieldPathSelectorDisabled: 440 leftValue := fpv.value.(bool) 441 rightValue := source.GetDisabled() 442 if (leftValue) == (rightValue) { 443 return 0, true 444 } else if !(leftValue) && (rightValue) { 445 return -1, true 446 } else { 447 return 1, true 448 } 449 default: 450 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fpv.selector)) 451 } 452 } 453 454 func (fpv *LabelDescriptor_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 455 return fpv.CompareWith(source.(*LabelDescriptor)) 456 } 457 458 // LabelDescriptor_FieldPathArrayItemValue allows storing single item in Path-specific values for LabelDescriptor according to their type 459 // Present only for array (repeated) types. 460 type LabelDescriptor_FieldPathArrayItemValue interface { 461 gotenobject.FieldPathArrayItemValue 462 LabelDescriptor_FieldPath 463 ContainsValue(*LabelDescriptor) bool 464 } 465 466 // ParseLabelDescriptor_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 467 func ParseLabelDescriptor_FieldPathArrayItemValue(pathStr, valueStr string) (LabelDescriptor_FieldPathArrayItemValue, error) { 468 fp, err := ParseLabelDescriptor_FieldPath(pathStr) 469 if err != nil { 470 return nil, err 471 } 472 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 473 if err != nil { 474 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelDescriptor field path array item value from %s: %v", valueStr, err) 475 } 476 return fpaiv.(LabelDescriptor_FieldPathArrayItemValue), nil 477 } 478 479 func MustParseLabelDescriptor_FieldPathArrayItemValue(pathStr, valueStr string) LabelDescriptor_FieldPathArrayItemValue { 480 fpaiv, err := ParseLabelDescriptor_FieldPathArrayItemValue(pathStr, valueStr) 481 if err != nil { 482 panic(err) 483 } 484 return fpaiv 485 } 486 487 type LabelDescriptor_FieldTerminalPathArrayItemValue struct { 488 LabelDescriptor_FieldTerminalPath 489 value interface{} 490 } 491 492 var _ LabelDescriptor_FieldPathArrayItemValue = (*LabelDescriptor_FieldTerminalPathArrayItemValue)(nil) 493 494 // GetRawValue returns stored element value for array in object LabelDescriptor as interface{} 495 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 496 return fpaiv.value 497 } 498 499 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) GetSingle(source *LabelDescriptor) (interface{}, bool) { 500 return nil, false 501 } 502 503 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 504 return fpaiv.GetSingle(source.(*LabelDescriptor)) 505 } 506 507 // Contains returns a boolean indicating if value that is being held is present in given 'LabelDescriptor' 508 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) ContainsValue(source *LabelDescriptor) bool { 509 slice := fpaiv.LabelDescriptor_FieldTerminalPath.Get(source) 510 for _, v := range slice { 511 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 512 if proto.Equal(asProtoMsg, v.(proto.Message)) { 513 return true 514 } 515 } else if reflect.DeepEqual(v, fpaiv.value) { 516 return true 517 } 518 } 519 return false 520 } 521 522 // LabelDescriptor_FieldPathArrayOfValues allows storing slice of values for LabelDescriptor fields according to their type 523 type LabelDescriptor_FieldPathArrayOfValues interface { 524 gotenobject.FieldPathArrayOfValues 525 LabelDescriptor_FieldPath 526 } 527 528 func ParseLabelDescriptor_FieldPathArrayOfValues(pathStr, valuesStr string) (LabelDescriptor_FieldPathArrayOfValues, error) { 529 fp, err := ParseLabelDescriptor_FieldPath(pathStr) 530 if err != nil { 531 return nil, err 532 } 533 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 534 if err != nil { 535 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelDescriptor field path array of values from %s: %v", valuesStr, err) 536 } 537 return fpaov.(LabelDescriptor_FieldPathArrayOfValues), nil 538 } 539 540 func MustParseLabelDescriptor_FieldPathArrayOfValues(pathStr, valuesStr string) LabelDescriptor_FieldPathArrayOfValues { 541 fpaov, err := ParseLabelDescriptor_FieldPathArrayOfValues(pathStr, valuesStr) 542 if err != nil { 543 panic(err) 544 } 545 return fpaov 546 } 547 548 type LabelDescriptor_FieldTerminalPathArrayOfValues struct { 549 LabelDescriptor_FieldTerminalPath 550 values interface{} 551 } 552 553 var _ LabelDescriptor_FieldPathArrayOfValues = (*LabelDescriptor_FieldTerminalPathArrayOfValues)(nil) 554 555 func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 556 switch fpaov.selector { 557 case LabelDescriptor_FieldPathSelectorKey: 558 for _, v := range fpaov.values.([]string) { 559 values = append(values, v) 560 } 561 case LabelDescriptor_FieldPathSelectorValueType: 562 for _, v := range fpaov.values.([]LabelDescriptor_ValueType) { 563 values = append(values, v) 564 } 565 case LabelDescriptor_FieldPathSelectorDescription: 566 for _, v := range fpaov.values.([]string) { 567 values = append(values, v) 568 } 569 case LabelDescriptor_FieldPathSelectorDefaultValue: 570 for _, v := range fpaov.values.([]string) { 571 values = append(values, v) 572 } 573 case LabelDescriptor_FieldPathSelectorDisabled: 574 for _, v := range fpaov.values.([]bool) { 575 values = append(values, v) 576 } 577 } 578 return 579 } 580 func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) AsKeyArrayOfValues() ([]string, bool) { 581 res, ok := fpaov.values.([]string) 582 return res, ok 583 } 584 func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) AsValueTypeArrayOfValues() ([]LabelDescriptor_ValueType, bool) { 585 res, ok := fpaov.values.([]LabelDescriptor_ValueType) 586 return res, ok 587 } 588 func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) AsDescriptionArrayOfValues() ([]string, bool) { 589 res, ok := fpaov.values.([]string) 590 return res, ok 591 } 592 func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) AsDefaultValueArrayOfValues() ([]string, bool) { 593 res, ok := fpaov.values.([]string) 594 return res, ok 595 } 596 func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) AsDisabledArrayOfValues() ([]bool, bool) { 597 res, ok := fpaov.values.([]bool) 598 return res, ok 599 } 600 601 // FieldPath provides implementation to handle 602 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 603 type LabelKeySet_FieldPath interface { 604 gotenobject.FieldPath 605 Selector() LabelKeySet_FieldPathSelector 606 Get(source *LabelKeySet) []interface{} 607 GetSingle(source *LabelKeySet) (interface{}, bool) 608 ClearValue(item *LabelKeySet) 609 610 // Those methods build corresponding LabelKeySet_FieldPathValue 611 // (or array of values) and holds passed value. Panics if injected type is incorrect. 612 WithIValue(value interface{}) LabelKeySet_FieldPathValue 613 WithIArrayOfValues(values interface{}) LabelKeySet_FieldPathArrayOfValues 614 WithIArrayItemValue(value interface{}) LabelKeySet_FieldPathArrayItemValue 615 } 616 617 type LabelKeySet_FieldPathSelector int32 618 619 const ( 620 LabelKeySet_FieldPathSelectorLabelKeys LabelKeySet_FieldPathSelector = 0 621 LabelKeySet_FieldPathSelectorWriteOnly LabelKeySet_FieldPathSelector = 1 622 ) 623 624 func (s LabelKeySet_FieldPathSelector) String() string { 625 switch s { 626 case LabelKeySet_FieldPathSelectorLabelKeys: 627 return "label_keys" 628 case LabelKeySet_FieldPathSelectorWriteOnly: 629 return "write_only" 630 default: 631 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", s)) 632 } 633 } 634 635 func BuildLabelKeySet_FieldPath(fp gotenobject.RawFieldPath) (LabelKeySet_FieldPath, error) { 636 if len(fp) == 0 { 637 return nil, status.Error(codes.InvalidArgument, "empty field path for object LabelKeySet") 638 } 639 if len(fp) == 1 { 640 switch fp[0] { 641 case "label_keys", "labelKeys", "label-keys": 642 return &LabelKeySet_FieldTerminalPath{selector: LabelKeySet_FieldPathSelectorLabelKeys}, nil 643 case "write_only", "writeOnly", "write-only": 644 return &LabelKeySet_FieldTerminalPath{selector: LabelKeySet_FieldPathSelectorWriteOnly}, nil 645 } 646 } 647 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object LabelKeySet", fp) 648 } 649 650 func ParseLabelKeySet_FieldPath(rawField string) (LabelKeySet_FieldPath, error) { 651 fp, err := gotenobject.ParseRawFieldPath(rawField) 652 if err != nil { 653 return nil, err 654 } 655 return BuildLabelKeySet_FieldPath(fp) 656 } 657 658 func MustParseLabelKeySet_FieldPath(rawField string) LabelKeySet_FieldPath { 659 fp, err := ParseLabelKeySet_FieldPath(rawField) 660 if err != nil { 661 panic(err) 662 } 663 return fp 664 } 665 666 type LabelKeySet_FieldTerminalPath struct { 667 selector LabelKeySet_FieldPathSelector 668 } 669 670 var _ LabelKeySet_FieldPath = (*LabelKeySet_FieldTerminalPath)(nil) 671 672 func (fp *LabelKeySet_FieldTerminalPath) Selector() LabelKeySet_FieldPathSelector { 673 return fp.selector 674 } 675 676 // String returns path representation in proto convention 677 func (fp *LabelKeySet_FieldTerminalPath) String() string { 678 return fp.selector.String() 679 } 680 681 // JSONString returns path representation is JSON convention 682 func (fp *LabelKeySet_FieldTerminalPath) JSONString() string { 683 return strcase.ToLowerCamel(fp.String()) 684 } 685 686 // Get returns all values pointed by specific field from source LabelKeySet 687 func (fp *LabelKeySet_FieldTerminalPath) Get(source *LabelKeySet) (values []interface{}) { 688 if source != nil { 689 switch fp.selector { 690 case LabelKeySet_FieldPathSelectorLabelKeys: 691 for _, value := range source.GetLabelKeys() { 692 values = append(values, value) 693 } 694 case LabelKeySet_FieldPathSelectorWriteOnly: 695 values = append(values, source.WriteOnly) 696 default: 697 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 698 } 699 } 700 return 701 } 702 703 func (fp *LabelKeySet_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 704 return fp.Get(source.(*LabelKeySet)) 705 } 706 707 // GetSingle returns value pointed by specific field of from source LabelKeySet 708 func (fp *LabelKeySet_FieldTerminalPath) GetSingle(source *LabelKeySet) (interface{}, bool) { 709 switch fp.selector { 710 case LabelKeySet_FieldPathSelectorLabelKeys: 711 res := source.GetLabelKeys() 712 return res, res != nil 713 case LabelKeySet_FieldPathSelectorWriteOnly: 714 return source.GetWriteOnly(), source != nil 715 default: 716 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 717 } 718 } 719 720 func (fp *LabelKeySet_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 721 return fp.GetSingle(source.(*LabelKeySet)) 722 } 723 724 // GetDefault returns a default value of the field type 725 func (fp *LabelKeySet_FieldTerminalPath) GetDefault() interface{} { 726 switch fp.selector { 727 case LabelKeySet_FieldPathSelectorLabelKeys: 728 return ([]string)(nil) 729 case LabelKeySet_FieldPathSelectorWriteOnly: 730 return false 731 default: 732 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 733 } 734 } 735 736 func (fp *LabelKeySet_FieldTerminalPath) ClearValue(item *LabelKeySet) { 737 if item != nil { 738 switch fp.selector { 739 case LabelKeySet_FieldPathSelectorLabelKeys: 740 item.LabelKeys = nil 741 case LabelKeySet_FieldPathSelectorWriteOnly: 742 item.WriteOnly = false 743 default: 744 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 745 } 746 } 747 } 748 749 func (fp *LabelKeySet_FieldTerminalPath) ClearValueRaw(item proto.Message) { 750 fp.ClearValue(item.(*LabelKeySet)) 751 } 752 753 // IsLeaf - whether field path is holds simple value 754 func (fp *LabelKeySet_FieldTerminalPath) IsLeaf() bool { 755 return fp.selector == LabelKeySet_FieldPathSelectorLabelKeys || 756 fp.selector == LabelKeySet_FieldPathSelectorWriteOnly 757 } 758 759 func (fp *LabelKeySet_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 760 return []gotenobject.FieldPath{fp} 761 } 762 763 func (fp *LabelKeySet_FieldTerminalPath) WithIValue(value interface{}) LabelKeySet_FieldPathValue { 764 switch fp.selector { 765 case LabelKeySet_FieldPathSelectorLabelKeys: 766 return &LabelKeySet_FieldTerminalPathValue{LabelKeySet_FieldTerminalPath: *fp, value: value.([]string)} 767 case LabelKeySet_FieldPathSelectorWriteOnly: 768 return &LabelKeySet_FieldTerminalPathValue{LabelKeySet_FieldTerminalPath: *fp, value: value.(bool)} 769 default: 770 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 771 } 772 } 773 774 func (fp *LabelKeySet_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 775 return fp.WithIValue(value) 776 } 777 778 func (fp *LabelKeySet_FieldTerminalPath) WithIArrayOfValues(values interface{}) LabelKeySet_FieldPathArrayOfValues { 779 fpaov := &LabelKeySet_FieldTerminalPathArrayOfValues{LabelKeySet_FieldTerminalPath: *fp} 780 switch fp.selector { 781 case LabelKeySet_FieldPathSelectorLabelKeys: 782 return &LabelKeySet_FieldTerminalPathArrayOfValues{LabelKeySet_FieldTerminalPath: *fp, values: values.([][]string)} 783 case LabelKeySet_FieldPathSelectorWriteOnly: 784 return &LabelKeySet_FieldTerminalPathArrayOfValues{LabelKeySet_FieldTerminalPath: *fp, values: values.([]bool)} 785 default: 786 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 787 } 788 return fpaov 789 } 790 791 func (fp *LabelKeySet_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 792 return fp.WithIArrayOfValues(values) 793 } 794 795 func (fp *LabelKeySet_FieldTerminalPath) WithIArrayItemValue(value interface{}) LabelKeySet_FieldPathArrayItemValue { 796 switch fp.selector { 797 case LabelKeySet_FieldPathSelectorLabelKeys: 798 return &LabelKeySet_FieldTerminalPathArrayItemValue{LabelKeySet_FieldTerminalPath: *fp, value: value.(string)} 799 default: 800 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 801 } 802 } 803 804 func (fp *LabelKeySet_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 805 return fp.WithIArrayItemValue(value) 806 } 807 808 // LabelKeySet_FieldPathValue allows storing values for LabelKeySet fields according to their type 809 type LabelKeySet_FieldPathValue interface { 810 LabelKeySet_FieldPath 811 gotenobject.FieldPathValue 812 SetTo(target **LabelKeySet) 813 CompareWith(*LabelKeySet) (cmp int, comparable bool) 814 } 815 816 func ParseLabelKeySet_FieldPathValue(pathStr, valueStr string) (LabelKeySet_FieldPathValue, error) { 817 fp, err := ParseLabelKeySet_FieldPath(pathStr) 818 if err != nil { 819 return nil, err 820 } 821 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 822 if err != nil { 823 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelKeySet field path value from %s: %v", valueStr, err) 824 } 825 return fpv.(LabelKeySet_FieldPathValue), nil 826 } 827 828 func MustParseLabelKeySet_FieldPathValue(pathStr, valueStr string) LabelKeySet_FieldPathValue { 829 fpv, err := ParseLabelKeySet_FieldPathValue(pathStr, valueStr) 830 if err != nil { 831 panic(err) 832 } 833 return fpv 834 } 835 836 type LabelKeySet_FieldTerminalPathValue struct { 837 LabelKeySet_FieldTerminalPath 838 value interface{} 839 } 840 841 var _ LabelKeySet_FieldPathValue = (*LabelKeySet_FieldTerminalPathValue)(nil) 842 843 // GetRawValue returns raw value stored under selected path for 'LabelKeySet' as interface{} 844 func (fpv *LabelKeySet_FieldTerminalPathValue) GetRawValue() interface{} { 845 return fpv.value 846 } 847 func (fpv *LabelKeySet_FieldTerminalPathValue) AsLabelKeysValue() ([]string, bool) { 848 res, ok := fpv.value.([]string) 849 return res, ok 850 } 851 func (fpv *LabelKeySet_FieldTerminalPathValue) AsWriteOnlyValue() (bool, bool) { 852 res, ok := fpv.value.(bool) 853 return res, ok 854 } 855 856 // SetTo stores value for selected field for object LabelKeySet 857 func (fpv *LabelKeySet_FieldTerminalPathValue) SetTo(target **LabelKeySet) { 858 if *target == nil { 859 *target = new(LabelKeySet) 860 } 861 switch fpv.selector { 862 case LabelKeySet_FieldPathSelectorLabelKeys: 863 (*target).LabelKeys = fpv.value.([]string) 864 case LabelKeySet_FieldPathSelectorWriteOnly: 865 (*target).WriteOnly = fpv.value.(bool) 866 default: 867 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fpv.selector)) 868 } 869 } 870 871 func (fpv *LabelKeySet_FieldTerminalPathValue) SetToRaw(target proto.Message) { 872 typedObject := target.(*LabelKeySet) 873 fpv.SetTo(&typedObject) 874 } 875 876 // CompareWith compares value in the 'LabelKeySet_FieldTerminalPathValue' with the value under path in 'LabelKeySet'. 877 func (fpv *LabelKeySet_FieldTerminalPathValue) CompareWith(source *LabelKeySet) (int, bool) { 878 switch fpv.selector { 879 case LabelKeySet_FieldPathSelectorLabelKeys: 880 return 0, false 881 case LabelKeySet_FieldPathSelectorWriteOnly: 882 leftValue := fpv.value.(bool) 883 rightValue := source.GetWriteOnly() 884 if (leftValue) == (rightValue) { 885 return 0, true 886 } else if !(leftValue) && (rightValue) { 887 return -1, true 888 } else { 889 return 1, true 890 } 891 default: 892 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fpv.selector)) 893 } 894 } 895 896 func (fpv *LabelKeySet_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 897 return fpv.CompareWith(source.(*LabelKeySet)) 898 } 899 900 // LabelKeySet_FieldPathArrayItemValue allows storing single item in Path-specific values for LabelKeySet according to their type 901 // Present only for array (repeated) types. 902 type LabelKeySet_FieldPathArrayItemValue interface { 903 gotenobject.FieldPathArrayItemValue 904 LabelKeySet_FieldPath 905 ContainsValue(*LabelKeySet) bool 906 } 907 908 // ParseLabelKeySet_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 909 func ParseLabelKeySet_FieldPathArrayItemValue(pathStr, valueStr string) (LabelKeySet_FieldPathArrayItemValue, error) { 910 fp, err := ParseLabelKeySet_FieldPath(pathStr) 911 if err != nil { 912 return nil, err 913 } 914 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 915 if err != nil { 916 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelKeySet field path array item value from %s: %v", valueStr, err) 917 } 918 return fpaiv.(LabelKeySet_FieldPathArrayItemValue), nil 919 } 920 921 func MustParseLabelKeySet_FieldPathArrayItemValue(pathStr, valueStr string) LabelKeySet_FieldPathArrayItemValue { 922 fpaiv, err := ParseLabelKeySet_FieldPathArrayItemValue(pathStr, valueStr) 923 if err != nil { 924 panic(err) 925 } 926 return fpaiv 927 } 928 929 type LabelKeySet_FieldTerminalPathArrayItemValue struct { 930 LabelKeySet_FieldTerminalPath 931 value interface{} 932 } 933 934 var _ LabelKeySet_FieldPathArrayItemValue = (*LabelKeySet_FieldTerminalPathArrayItemValue)(nil) 935 936 // GetRawValue returns stored element value for array in object LabelKeySet as interface{} 937 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 938 return fpaiv.value 939 } 940 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) AsLabelKeysItemValue() (string, bool) { 941 res, ok := fpaiv.value.(string) 942 return res, ok 943 } 944 945 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) GetSingle(source *LabelKeySet) (interface{}, bool) { 946 return nil, false 947 } 948 949 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 950 return fpaiv.GetSingle(source.(*LabelKeySet)) 951 } 952 953 // Contains returns a boolean indicating if value that is being held is present in given 'LabelKeySet' 954 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) ContainsValue(source *LabelKeySet) bool { 955 slice := fpaiv.LabelKeySet_FieldTerminalPath.Get(source) 956 for _, v := range slice { 957 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 958 if proto.Equal(asProtoMsg, v.(proto.Message)) { 959 return true 960 } 961 } else if reflect.DeepEqual(v, fpaiv.value) { 962 return true 963 } 964 } 965 return false 966 } 967 968 // LabelKeySet_FieldPathArrayOfValues allows storing slice of values for LabelKeySet fields according to their type 969 type LabelKeySet_FieldPathArrayOfValues interface { 970 gotenobject.FieldPathArrayOfValues 971 LabelKeySet_FieldPath 972 } 973 974 func ParseLabelKeySet_FieldPathArrayOfValues(pathStr, valuesStr string) (LabelKeySet_FieldPathArrayOfValues, error) { 975 fp, err := ParseLabelKeySet_FieldPath(pathStr) 976 if err != nil { 977 return nil, err 978 } 979 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 980 if err != nil { 981 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelKeySet field path array of values from %s: %v", valuesStr, err) 982 } 983 return fpaov.(LabelKeySet_FieldPathArrayOfValues), nil 984 } 985 986 func MustParseLabelKeySet_FieldPathArrayOfValues(pathStr, valuesStr string) LabelKeySet_FieldPathArrayOfValues { 987 fpaov, err := ParseLabelKeySet_FieldPathArrayOfValues(pathStr, valuesStr) 988 if err != nil { 989 panic(err) 990 } 991 return fpaov 992 } 993 994 type LabelKeySet_FieldTerminalPathArrayOfValues struct { 995 LabelKeySet_FieldTerminalPath 996 values interface{} 997 } 998 999 var _ LabelKeySet_FieldPathArrayOfValues = (*LabelKeySet_FieldTerminalPathArrayOfValues)(nil) 1000 1001 func (fpaov *LabelKeySet_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 1002 switch fpaov.selector { 1003 case LabelKeySet_FieldPathSelectorLabelKeys: 1004 for _, v := range fpaov.values.([][]string) { 1005 values = append(values, v) 1006 } 1007 case LabelKeySet_FieldPathSelectorWriteOnly: 1008 for _, v := range fpaov.values.([]bool) { 1009 values = append(values, v) 1010 } 1011 } 1012 return 1013 } 1014 func (fpaov *LabelKeySet_FieldTerminalPathArrayOfValues) AsLabelKeysArrayOfValues() ([][]string, bool) { 1015 res, ok := fpaov.values.([][]string) 1016 return res, ok 1017 } 1018 func (fpaov *LabelKeySet_FieldTerminalPathArrayOfValues) AsWriteOnlyArrayOfValues() ([]bool, bool) { 1019 res, ok := fpaov.values.([]bool) 1020 return res, ok 1021 } 1022 1023 // FieldPath provides implementation to handle 1024 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 1025 type Distribution_FieldPath interface { 1026 gotenobject.FieldPath 1027 Selector() Distribution_FieldPathSelector 1028 Get(source *Distribution) []interface{} 1029 GetSingle(source *Distribution) (interface{}, bool) 1030 ClearValue(item *Distribution) 1031 1032 // Those methods build corresponding Distribution_FieldPathValue 1033 // (or array of values) and holds passed value. Panics if injected type is incorrect. 1034 WithIValue(value interface{}) Distribution_FieldPathValue 1035 WithIArrayOfValues(values interface{}) Distribution_FieldPathArrayOfValues 1036 WithIArrayItemValue(value interface{}) Distribution_FieldPathArrayItemValue 1037 } 1038 1039 type Distribution_FieldPathSelector int32 1040 1041 const ( 1042 Distribution_FieldPathSelectorCount Distribution_FieldPathSelector = 0 1043 Distribution_FieldPathSelectorMean Distribution_FieldPathSelector = 1 1044 Distribution_FieldPathSelectorSumOfSquaredDeviation Distribution_FieldPathSelector = 2 1045 Distribution_FieldPathSelectorRange Distribution_FieldPathSelector = 3 1046 Distribution_FieldPathSelectorBucketOptions Distribution_FieldPathSelector = 4 1047 Distribution_FieldPathSelectorBucketCounts Distribution_FieldPathSelector = 5 1048 ) 1049 1050 func (s Distribution_FieldPathSelector) String() string { 1051 switch s { 1052 case Distribution_FieldPathSelectorCount: 1053 return "count" 1054 case Distribution_FieldPathSelectorMean: 1055 return "mean" 1056 case Distribution_FieldPathSelectorSumOfSquaredDeviation: 1057 return "sum_of_squared_deviation" 1058 case Distribution_FieldPathSelectorRange: 1059 return "range" 1060 case Distribution_FieldPathSelectorBucketOptions: 1061 return "bucket_options" 1062 case Distribution_FieldPathSelectorBucketCounts: 1063 return "bucket_counts" 1064 default: 1065 panic(fmt.Sprintf("Invalid selector for Distribution: %d", s)) 1066 } 1067 } 1068 1069 func BuildDistribution_FieldPath(fp gotenobject.RawFieldPath) (Distribution_FieldPath, error) { 1070 if len(fp) == 0 { 1071 return nil, status.Error(codes.InvalidArgument, "empty field path for object Distribution") 1072 } 1073 if len(fp) == 1 { 1074 switch fp[0] { 1075 case "count": 1076 return &Distribution_FieldTerminalPath{selector: Distribution_FieldPathSelectorCount}, nil 1077 case "mean": 1078 return &Distribution_FieldTerminalPath{selector: Distribution_FieldPathSelectorMean}, nil 1079 case "sum_of_squared_deviation", "sumOfSquaredDeviation", "sum-of-squared-deviation": 1080 return &Distribution_FieldTerminalPath{selector: Distribution_FieldPathSelectorSumOfSquaredDeviation}, nil 1081 case "range": 1082 return &Distribution_FieldTerminalPath{selector: Distribution_FieldPathSelectorRange}, nil 1083 case "bucket_options", "bucketOptions", "bucket-options": 1084 return &Distribution_FieldTerminalPath{selector: Distribution_FieldPathSelectorBucketOptions}, nil 1085 case "bucket_counts", "bucketCounts", "bucket-counts": 1086 return &Distribution_FieldTerminalPath{selector: Distribution_FieldPathSelectorBucketCounts}, nil 1087 } 1088 } else { 1089 switch fp[0] { 1090 case "range": 1091 if subpath, err := BuildDistributionRange_FieldPath(fp[1:]); err != nil { 1092 return nil, err 1093 } else { 1094 return &Distribution_FieldSubPath{selector: Distribution_FieldPathSelectorRange, subPath: subpath}, nil 1095 } 1096 case "bucket_options", "bucketOptions", "bucket-options": 1097 if subpath, err := BuildDistributionBucketOptions_FieldPath(fp[1:]); err != nil { 1098 return nil, err 1099 } else { 1100 return &Distribution_FieldSubPath{selector: Distribution_FieldPathSelectorBucketOptions, subPath: subpath}, nil 1101 } 1102 } 1103 } 1104 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Distribution", fp) 1105 } 1106 1107 func ParseDistribution_FieldPath(rawField string) (Distribution_FieldPath, error) { 1108 fp, err := gotenobject.ParseRawFieldPath(rawField) 1109 if err != nil { 1110 return nil, err 1111 } 1112 return BuildDistribution_FieldPath(fp) 1113 } 1114 1115 func MustParseDistribution_FieldPath(rawField string) Distribution_FieldPath { 1116 fp, err := ParseDistribution_FieldPath(rawField) 1117 if err != nil { 1118 panic(err) 1119 } 1120 return fp 1121 } 1122 1123 type Distribution_FieldTerminalPath struct { 1124 selector Distribution_FieldPathSelector 1125 } 1126 1127 var _ Distribution_FieldPath = (*Distribution_FieldTerminalPath)(nil) 1128 1129 func (fp *Distribution_FieldTerminalPath) Selector() Distribution_FieldPathSelector { 1130 return fp.selector 1131 } 1132 1133 // String returns path representation in proto convention 1134 func (fp *Distribution_FieldTerminalPath) String() string { 1135 return fp.selector.String() 1136 } 1137 1138 // JSONString returns path representation is JSON convention 1139 func (fp *Distribution_FieldTerminalPath) JSONString() string { 1140 return strcase.ToLowerCamel(fp.String()) 1141 } 1142 1143 // Get returns all values pointed by specific field from source Distribution 1144 func (fp *Distribution_FieldTerminalPath) Get(source *Distribution) (values []interface{}) { 1145 if source != nil { 1146 switch fp.selector { 1147 case Distribution_FieldPathSelectorCount: 1148 values = append(values, source.Count) 1149 case Distribution_FieldPathSelectorMean: 1150 values = append(values, source.Mean) 1151 case Distribution_FieldPathSelectorSumOfSquaredDeviation: 1152 values = append(values, source.SumOfSquaredDeviation) 1153 case Distribution_FieldPathSelectorRange: 1154 if source.Range != nil { 1155 values = append(values, source.Range) 1156 } 1157 case Distribution_FieldPathSelectorBucketOptions: 1158 if source.BucketOptions != nil { 1159 values = append(values, source.BucketOptions) 1160 } 1161 case Distribution_FieldPathSelectorBucketCounts: 1162 for _, value := range source.GetBucketCounts() { 1163 values = append(values, value) 1164 } 1165 default: 1166 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fp.selector)) 1167 } 1168 } 1169 return 1170 } 1171 1172 func (fp *Distribution_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 1173 return fp.Get(source.(*Distribution)) 1174 } 1175 1176 // GetSingle returns value pointed by specific field of from source Distribution 1177 func (fp *Distribution_FieldTerminalPath) GetSingle(source *Distribution) (interface{}, bool) { 1178 switch fp.selector { 1179 case Distribution_FieldPathSelectorCount: 1180 return source.GetCount(), source != nil 1181 case Distribution_FieldPathSelectorMean: 1182 return source.GetMean(), source != nil 1183 case Distribution_FieldPathSelectorSumOfSquaredDeviation: 1184 return source.GetSumOfSquaredDeviation(), source != nil 1185 case Distribution_FieldPathSelectorRange: 1186 res := source.GetRange() 1187 return res, res != nil 1188 case Distribution_FieldPathSelectorBucketOptions: 1189 res := source.GetBucketOptions() 1190 return res, res != nil 1191 case Distribution_FieldPathSelectorBucketCounts: 1192 res := source.GetBucketCounts() 1193 return res, res != nil 1194 default: 1195 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fp.selector)) 1196 } 1197 } 1198 1199 func (fp *Distribution_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1200 return fp.GetSingle(source.(*Distribution)) 1201 } 1202 1203 // GetDefault returns a default value of the field type 1204 func (fp *Distribution_FieldTerminalPath) GetDefault() interface{} { 1205 switch fp.selector { 1206 case Distribution_FieldPathSelectorCount: 1207 return int64(0) 1208 case Distribution_FieldPathSelectorMean: 1209 return float64(0) 1210 case Distribution_FieldPathSelectorSumOfSquaredDeviation: 1211 return float64(0) 1212 case Distribution_FieldPathSelectorRange: 1213 return (*Distribution_Range)(nil) 1214 case Distribution_FieldPathSelectorBucketOptions: 1215 return (*Distribution_BucketOptions)(nil) 1216 case Distribution_FieldPathSelectorBucketCounts: 1217 return ([]int64)(nil) 1218 default: 1219 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fp.selector)) 1220 } 1221 } 1222 1223 func (fp *Distribution_FieldTerminalPath) ClearValue(item *Distribution) { 1224 if item != nil { 1225 switch fp.selector { 1226 case Distribution_FieldPathSelectorCount: 1227 item.Count = int64(0) 1228 case Distribution_FieldPathSelectorMean: 1229 item.Mean = float64(0) 1230 case Distribution_FieldPathSelectorSumOfSquaredDeviation: 1231 item.SumOfSquaredDeviation = float64(0) 1232 case Distribution_FieldPathSelectorRange: 1233 item.Range = nil 1234 case Distribution_FieldPathSelectorBucketOptions: 1235 item.BucketOptions = nil 1236 case Distribution_FieldPathSelectorBucketCounts: 1237 item.BucketCounts = nil 1238 default: 1239 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fp.selector)) 1240 } 1241 } 1242 } 1243 1244 func (fp *Distribution_FieldTerminalPath) ClearValueRaw(item proto.Message) { 1245 fp.ClearValue(item.(*Distribution)) 1246 } 1247 1248 // IsLeaf - whether field path is holds simple value 1249 func (fp *Distribution_FieldTerminalPath) IsLeaf() bool { 1250 return fp.selector == Distribution_FieldPathSelectorCount || 1251 fp.selector == Distribution_FieldPathSelectorMean || 1252 fp.selector == Distribution_FieldPathSelectorSumOfSquaredDeviation || 1253 fp.selector == Distribution_FieldPathSelectorBucketCounts 1254 } 1255 1256 func (fp *Distribution_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1257 return []gotenobject.FieldPath{fp} 1258 } 1259 1260 func (fp *Distribution_FieldTerminalPath) WithIValue(value interface{}) Distribution_FieldPathValue { 1261 switch fp.selector { 1262 case Distribution_FieldPathSelectorCount: 1263 return &Distribution_FieldTerminalPathValue{Distribution_FieldTerminalPath: *fp, value: value.(int64)} 1264 case Distribution_FieldPathSelectorMean: 1265 return &Distribution_FieldTerminalPathValue{Distribution_FieldTerminalPath: *fp, value: value.(float64)} 1266 case Distribution_FieldPathSelectorSumOfSquaredDeviation: 1267 return &Distribution_FieldTerminalPathValue{Distribution_FieldTerminalPath: *fp, value: value.(float64)} 1268 case Distribution_FieldPathSelectorRange: 1269 return &Distribution_FieldTerminalPathValue{Distribution_FieldTerminalPath: *fp, value: value.(*Distribution_Range)} 1270 case Distribution_FieldPathSelectorBucketOptions: 1271 return &Distribution_FieldTerminalPathValue{Distribution_FieldTerminalPath: *fp, value: value.(*Distribution_BucketOptions)} 1272 case Distribution_FieldPathSelectorBucketCounts: 1273 return &Distribution_FieldTerminalPathValue{Distribution_FieldTerminalPath: *fp, value: value.([]int64)} 1274 default: 1275 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fp.selector)) 1276 } 1277 } 1278 1279 func (fp *Distribution_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1280 return fp.WithIValue(value) 1281 } 1282 1283 func (fp *Distribution_FieldTerminalPath) WithIArrayOfValues(values interface{}) Distribution_FieldPathArrayOfValues { 1284 fpaov := &Distribution_FieldTerminalPathArrayOfValues{Distribution_FieldTerminalPath: *fp} 1285 switch fp.selector { 1286 case Distribution_FieldPathSelectorCount: 1287 return &Distribution_FieldTerminalPathArrayOfValues{Distribution_FieldTerminalPath: *fp, values: values.([]int64)} 1288 case Distribution_FieldPathSelectorMean: 1289 return &Distribution_FieldTerminalPathArrayOfValues{Distribution_FieldTerminalPath: *fp, values: values.([]float64)} 1290 case Distribution_FieldPathSelectorSumOfSquaredDeviation: 1291 return &Distribution_FieldTerminalPathArrayOfValues{Distribution_FieldTerminalPath: *fp, values: values.([]float64)} 1292 case Distribution_FieldPathSelectorRange: 1293 return &Distribution_FieldTerminalPathArrayOfValues{Distribution_FieldTerminalPath: *fp, values: values.([]*Distribution_Range)} 1294 case Distribution_FieldPathSelectorBucketOptions: 1295 return &Distribution_FieldTerminalPathArrayOfValues{Distribution_FieldTerminalPath: *fp, values: values.([]*Distribution_BucketOptions)} 1296 case Distribution_FieldPathSelectorBucketCounts: 1297 return &Distribution_FieldTerminalPathArrayOfValues{Distribution_FieldTerminalPath: *fp, values: values.([][]int64)} 1298 default: 1299 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fp.selector)) 1300 } 1301 return fpaov 1302 } 1303 1304 func (fp *Distribution_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1305 return fp.WithIArrayOfValues(values) 1306 } 1307 1308 func (fp *Distribution_FieldTerminalPath) WithIArrayItemValue(value interface{}) Distribution_FieldPathArrayItemValue { 1309 switch fp.selector { 1310 case Distribution_FieldPathSelectorBucketCounts: 1311 return &Distribution_FieldTerminalPathArrayItemValue{Distribution_FieldTerminalPath: *fp, value: value.(int64)} 1312 default: 1313 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fp.selector)) 1314 } 1315 } 1316 1317 func (fp *Distribution_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1318 return fp.WithIArrayItemValue(value) 1319 } 1320 1321 type Distribution_FieldSubPath struct { 1322 selector Distribution_FieldPathSelector 1323 subPath gotenobject.FieldPath 1324 } 1325 1326 var _ Distribution_FieldPath = (*Distribution_FieldSubPath)(nil) 1327 1328 func (fps *Distribution_FieldSubPath) Selector() Distribution_FieldPathSelector { 1329 return fps.selector 1330 } 1331 func (fps *Distribution_FieldSubPath) AsRangeSubPath() (DistributionRange_FieldPath, bool) { 1332 res, ok := fps.subPath.(DistributionRange_FieldPath) 1333 return res, ok 1334 } 1335 func (fps *Distribution_FieldSubPath) AsBucketOptionsSubPath() (DistributionBucketOptions_FieldPath, bool) { 1336 res, ok := fps.subPath.(DistributionBucketOptions_FieldPath) 1337 return res, ok 1338 } 1339 1340 // String returns path representation in proto convention 1341 func (fps *Distribution_FieldSubPath) String() string { 1342 return fps.selector.String() + "." + fps.subPath.String() 1343 } 1344 1345 // JSONString returns path representation is JSON convention 1346 func (fps *Distribution_FieldSubPath) JSONString() string { 1347 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 1348 } 1349 1350 // Get returns all values pointed by selected field from source Distribution 1351 func (fps *Distribution_FieldSubPath) Get(source *Distribution) (values []interface{}) { 1352 switch fps.selector { 1353 case Distribution_FieldPathSelectorRange: 1354 values = append(values, fps.subPath.GetRaw(source.GetRange())...) 1355 case Distribution_FieldPathSelectorBucketOptions: 1356 values = append(values, fps.subPath.GetRaw(source.GetBucketOptions())...) 1357 default: 1358 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fps.selector)) 1359 } 1360 return 1361 } 1362 1363 func (fps *Distribution_FieldSubPath) GetRaw(source proto.Message) []interface{} { 1364 return fps.Get(source.(*Distribution)) 1365 } 1366 1367 // GetSingle returns value of selected field from source Distribution 1368 func (fps *Distribution_FieldSubPath) GetSingle(source *Distribution) (interface{}, bool) { 1369 switch fps.selector { 1370 case Distribution_FieldPathSelectorRange: 1371 if source.GetRange() == nil { 1372 return nil, false 1373 } 1374 return fps.subPath.GetSingleRaw(source.GetRange()) 1375 case Distribution_FieldPathSelectorBucketOptions: 1376 if source.GetBucketOptions() == nil { 1377 return nil, false 1378 } 1379 return fps.subPath.GetSingleRaw(source.GetBucketOptions()) 1380 default: 1381 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fps.selector)) 1382 } 1383 } 1384 1385 func (fps *Distribution_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1386 return fps.GetSingle(source.(*Distribution)) 1387 } 1388 1389 // GetDefault returns a default value of the field type 1390 func (fps *Distribution_FieldSubPath) GetDefault() interface{} { 1391 return fps.subPath.GetDefault() 1392 } 1393 1394 func (fps *Distribution_FieldSubPath) ClearValue(item *Distribution) { 1395 if item != nil { 1396 switch fps.selector { 1397 case Distribution_FieldPathSelectorRange: 1398 fps.subPath.ClearValueRaw(item.Range) 1399 case Distribution_FieldPathSelectorBucketOptions: 1400 fps.subPath.ClearValueRaw(item.BucketOptions) 1401 default: 1402 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fps.selector)) 1403 } 1404 } 1405 } 1406 1407 func (fps *Distribution_FieldSubPath) ClearValueRaw(item proto.Message) { 1408 fps.ClearValue(item.(*Distribution)) 1409 } 1410 1411 // IsLeaf - whether field path is holds simple value 1412 func (fps *Distribution_FieldSubPath) IsLeaf() bool { 1413 return fps.subPath.IsLeaf() 1414 } 1415 1416 func (fps *Distribution_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1417 iPaths := []gotenobject.FieldPath{&Distribution_FieldTerminalPath{selector: fps.selector}} 1418 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 1419 return iPaths 1420 } 1421 1422 func (fps *Distribution_FieldSubPath) WithIValue(value interface{}) Distribution_FieldPathValue { 1423 return &Distribution_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 1424 } 1425 1426 func (fps *Distribution_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1427 return fps.WithIValue(value) 1428 } 1429 1430 func (fps *Distribution_FieldSubPath) WithIArrayOfValues(values interface{}) Distribution_FieldPathArrayOfValues { 1431 return &Distribution_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 1432 } 1433 1434 func (fps *Distribution_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1435 return fps.WithIArrayOfValues(values) 1436 } 1437 1438 func (fps *Distribution_FieldSubPath) WithIArrayItemValue(value interface{}) Distribution_FieldPathArrayItemValue { 1439 return &Distribution_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 1440 } 1441 1442 func (fps *Distribution_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1443 return fps.WithIArrayItemValue(value) 1444 } 1445 1446 // Distribution_FieldPathValue allows storing values for Distribution fields according to their type 1447 type Distribution_FieldPathValue interface { 1448 Distribution_FieldPath 1449 gotenobject.FieldPathValue 1450 SetTo(target **Distribution) 1451 CompareWith(*Distribution) (cmp int, comparable bool) 1452 } 1453 1454 func ParseDistribution_FieldPathValue(pathStr, valueStr string) (Distribution_FieldPathValue, error) { 1455 fp, err := ParseDistribution_FieldPath(pathStr) 1456 if err != nil { 1457 return nil, err 1458 } 1459 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 1460 if err != nil { 1461 return nil, status.Errorf(codes.InvalidArgument, "error parsing Distribution field path value from %s: %v", valueStr, err) 1462 } 1463 return fpv.(Distribution_FieldPathValue), nil 1464 } 1465 1466 func MustParseDistribution_FieldPathValue(pathStr, valueStr string) Distribution_FieldPathValue { 1467 fpv, err := ParseDistribution_FieldPathValue(pathStr, valueStr) 1468 if err != nil { 1469 panic(err) 1470 } 1471 return fpv 1472 } 1473 1474 type Distribution_FieldTerminalPathValue struct { 1475 Distribution_FieldTerminalPath 1476 value interface{} 1477 } 1478 1479 var _ Distribution_FieldPathValue = (*Distribution_FieldTerminalPathValue)(nil) 1480 1481 // GetRawValue returns raw value stored under selected path for 'Distribution' as interface{} 1482 func (fpv *Distribution_FieldTerminalPathValue) GetRawValue() interface{} { 1483 return fpv.value 1484 } 1485 func (fpv *Distribution_FieldTerminalPathValue) AsCountValue() (int64, bool) { 1486 res, ok := fpv.value.(int64) 1487 return res, ok 1488 } 1489 func (fpv *Distribution_FieldTerminalPathValue) AsMeanValue() (float64, bool) { 1490 res, ok := fpv.value.(float64) 1491 return res, ok 1492 } 1493 func (fpv *Distribution_FieldTerminalPathValue) AsSumOfSquaredDeviationValue() (float64, bool) { 1494 res, ok := fpv.value.(float64) 1495 return res, ok 1496 } 1497 func (fpv *Distribution_FieldTerminalPathValue) AsRangeValue() (*Distribution_Range, bool) { 1498 res, ok := fpv.value.(*Distribution_Range) 1499 return res, ok 1500 } 1501 func (fpv *Distribution_FieldTerminalPathValue) AsBucketOptionsValue() (*Distribution_BucketOptions, bool) { 1502 res, ok := fpv.value.(*Distribution_BucketOptions) 1503 return res, ok 1504 } 1505 func (fpv *Distribution_FieldTerminalPathValue) AsBucketCountsValue() ([]int64, bool) { 1506 res, ok := fpv.value.([]int64) 1507 return res, ok 1508 } 1509 1510 // SetTo stores value for selected field for object Distribution 1511 func (fpv *Distribution_FieldTerminalPathValue) SetTo(target **Distribution) { 1512 if *target == nil { 1513 *target = new(Distribution) 1514 } 1515 switch fpv.selector { 1516 case Distribution_FieldPathSelectorCount: 1517 (*target).Count = fpv.value.(int64) 1518 case Distribution_FieldPathSelectorMean: 1519 (*target).Mean = fpv.value.(float64) 1520 case Distribution_FieldPathSelectorSumOfSquaredDeviation: 1521 (*target).SumOfSquaredDeviation = fpv.value.(float64) 1522 case Distribution_FieldPathSelectorRange: 1523 (*target).Range = fpv.value.(*Distribution_Range) 1524 case Distribution_FieldPathSelectorBucketOptions: 1525 (*target).BucketOptions = fpv.value.(*Distribution_BucketOptions) 1526 case Distribution_FieldPathSelectorBucketCounts: 1527 (*target).BucketCounts = fpv.value.([]int64) 1528 default: 1529 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fpv.selector)) 1530 } 1531 } 1532 1533 func (fpv *Distribution_FieldTerminalPathValue) SetToRaw(target proto.Message) { 1534 typedObject := target.(*Distribution) 1535 fpv.SetTo(&typedObject) 1536 } 1537 1538 // CompareWith compares value in the 'Distribution_FieldTerminalPathValue' with the value under path in 'Distribution'. 1539 func (fpv *Distribution_FieldTerminalPathValue) CompareWith(source *Distribution) (int, bool) { 1540 switch fpv.selector { 1541 case Distribution_FieldPathSelectorCount: 1542 leftValue := fpv.value.(int64) 1543 rightValue := source.GetCount() 1544 if (leftValue) == (rightValue) { 1545 return 0, true 1546 } else if (leftValue) < (rightValue) { 1547 return -1, true 1548 } else { 1549 return 1, true 1550 } 1551 case Distribution_FieldPathSelectorMean: 1552 leftValue := fpv.value.(float64) 1553 rightValue := source.GetMean() 1554 if (leftValue) == (rightValue) { 1555 return 0, true 1556 } else if (leftValue) < (rightValue) { 1557 return -1, true 1558 } else { 1559 return 1, true 1560 } 1561 case Distribution_FieldPathSelectorSumOfSquaredDeviation: 1562 leftValue := fpv.value.(float64) 1563 rightValue := source.GetSumOfSquaredDeviation() 1564 if (leftValue) == (rightValue) { 1565 return 0, true 1566 } else if (leftValue) < (rightValue) { 1567 return -1, true 1568 } else { 1569 return 1, true 1570 } 1571 case Distribution_FieldPathSelectorRange: 1572 return 0, false 1573 case Distribution_FieldPathSelectorBucketOptions: 1574 return 0, false 1575 case Distribution_FieldPathSelectorBucketCounts: 1576 return 0, false 1577 default: 1578 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fpv.selector)) 1579 } 1580 } 1581 1582 func (fpv *Distribution_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 1583 return fpv.CompareWith(source.(*Distribution)) 1584 } 1585 1586 type Distribution_FieldSubPathValue struct { 1587 Distribution_FieldPath 1588 subPathValue gotenobject.FieldPathValue 1589 } 1590 1591 var _ Distribution_FieldPathValue = (*Distribution_FieldSubPathValue)(nil) 1592 1593 func (fpvs *Distribution_FieldSubPathValue) AsRangePathValue() (DistributionRange_FieldPathValue, bool) { 1594 res, ok := fpvs.subPathValue.(DistributionRange_FieldPathValue) 1595 return res, ok 1596 } 1597 func (fpvs *Distribution_FieldSubPathValue) AsBucketOptionsPathValue() (DistributionBucketOptions_FieldPathValue, bool) { 1598 res, ok := fpvs.subPathValue.(DistributionBucketOptions_FieldPathValue) 1599 return res, ok 1600 } 1601 1602 func (fpvs *Distribution_FieldSubPathValue) SetTo(target **Distribution) { 1603 if *target == nil { 1604 *target = new(Distribution) 1605 } 1606 switch fpvs.Selector() { 1607 case Distribution_FieldPathSelectorRange: 1608 fpvs.subPathValue.(DistributionRange_FieldPathValue).SetTo(&(*target).Range) 1609 case Distribution_FieldPathSelectorBucketOptions: 1610 fpvs.subPathValue.(DistributionBucketOptions_FieldPathValue).SetTo(&(*target).BucketOptions) 1611 default: 1612 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fpvs.Selector())) 1613 } 1614 } 1615 1616 func (fpvs *Distribution_FieldSubPathValue) SetToRaw(target proto.Message) { 1617 typedObject := target.(*Distribution) 1618 fpvs.SetTo(&typedObject) 1619 } 1620 1621 func (fpvs *Distribution_FieldSubPathValue) GetRawValue() interface{} { 1622 return fpvs.subPathValue.GetRawValue() 1623 } 1624 1625 func (fpvs *Distribution_FieldSubPathValue) CompareWith(source *Distribution) (int, bool) { 1626 switch fpvs.Selector() { 1627 case Distribution_FieldPathSelectorRange: 1628 return fpvs.subPathValue.(DistributionRange_FieldPathValue).CompareWith(source.GetRange()) 1629 case Distribution_FieldPathSelectorBucketOptions: 1630 return fpvs.subPathValue.(DistributionBucketOptions_FieldPathValue).CompareWith(source.GetBucketOptions()) 1631 default: 1632 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fpvs.Selector())) 1633 } 1634 } 1635 1636 func (fpvs *Distribution_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 1637 return fpvs.CompareWith(source.(*Distribution)) 1638 } 1639 1640 // Distribution_FieldPathArrayItemValue allows storing single item in Path-specific values for Distribution according to their type 1641 // Present only for array (repeated) types. 1642 type Distribution_FieldPathArrayItemValue interface { 1643 gotenobject.FieldPathArrayItemValue 1644 Distribution_FieldPath 1645 ContainsValue(*Distribution) bool 1646 } 1647 1648 // ParseDistribution_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 1649 func ParseDistribution_FieldPathArrayItemValue(pathStr, valueStr string) (Distribution_FieldPathArrayItemValue, error) { 1650 fp, err := ParseDistribution_FieldPath(pathStr) 1651 if err != nil { 1652 return nil, err 1653 } 1654 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 1655 if err != nil { 1656 return nil, status.Errorf(codes.InvalidArgument, "error parsing Distribution field path array item value from %s: %v", valueStr, err) 1657 } 1658 return fpaiv.(Distribution_FieldPathArrayItemValue), nil 1659 } 1660 1661 func MustParseDistribution_FieldPathArrayItemValue(pathStr, valueStr string) Distribution_FieldPathArrayItemValue { 1662 fpaiv, err := ParseDistribution_FieldPathArrayItemValue(pathStr, valueStr) 1663 if err != nil { 1664 panic(err) 1665 } 1666 return fpaiv 1667 } 1668 1669 type Distribution_FieldTerminalPathArrayItemValue struct { 1670 Distribution_FieldTerminalPath 1671 value interface{} 1672 } 1673 1674 var _ Distribution_FieldPathArrayItemValue = (*Distribution_FieldTerminalPathArrayItemValue)(nil) 1675 1676 // GetRawValue returns stored element value for array in object Distribution as interface{} 1677 func (fpaiv *Distribution_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 1678 return fpaiv.value 1679 } 1680 func (fpaiv *Distribution_FieldTerminalPathArrayItemValue) AsBucketCountsItemValue() (int64, bool) { 1681 res, ok := fpaiv.value.(int64) 1682 return res, ok 1683 } 1684 1685 func (fpaiv *Distribution_FieldTerminalPathArrayItemValue) GetSingle(source *Distribution) (interface{}, bool) { 1686 return nil, false 1687 } 1688 1689 func (fpaiv *Distribution_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 1690 return fpaiv.GetSingle(source.(*Distribution)) 1691 } 1692 1693 // Contains returns a boolean indicating if value that is being held is present in given 'Distribution' 1694 func (fpaiv *Distribution_FieldTerminalPathArrayItemValue) ContainsValue(source *Distribution) bool { 1695 slice := fpaiv.Distribution_FieldTerminalPath.Get(source) 1696 for _, v := range slice { 1697 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 1698 if proto.Equal(asProtoMsg, v.(proto.Message)) { 1699 return true 1700 } 1701 } else if reflect.DeepEqual(v, fpaiv.value) { 1702 return true 1703 } 1704 } 1705 return false 1706 } 1707 1708 type Distribution_FieldSubPathArrayItemValue struct { 1709 Distribution_FieldPath 1710 subPathItemValue gotenobject.FieldPathArrayItemValue 1711 } 1712 1713 // GetRawValue returns stored array item value 1714 func (fpaivs *Distribution_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 1715 return fpaivs.subPathItemValue.GetRawItemValue() 1716 } 1717 func (fpaivs *Distribution_FieldSubPathArrayItemValue) AsRangePathItemValue() (DistributionRange_FieldPathArrayItemValue, bool) { 1718 res, ok := fpaivs.subPathItemValue.(DistributionRange_FieldPathArrayItemValue) 1719 return res, ok 1720 } 1721 func (fpaivs *Distribution_FieldSubPathArrayItemValue) AsBucketOptionsPathItemValue() (DistributionBucketOptions_FieldPathArrayItemValue, bool) { 1722 res, ok := fpaivs.subPathItemValue.(DistributionBucketOptions_FieldPathArrayItemValue) 1723 return res, ok 1724 } 1725 1726 // Contains returns a boolean indicating if value that is being held is present in given 'Distribution' 1727 func (fpaivs *Distribution_FieldSubPathArrayItemValue) ContainsValue(source *Distribution) bool { 1728 switch fpaivs.Selector() { 1729 case Distribution_FieldPathSelectorRange: 1730 return fpaivs.subPathItemValue.(DistributionRange_FieldPathArrayItemValue).ContainsValue(source.GetRange()) 1731 case Distribution_FieldPathSelectorBucketOptions: 1732 return fpaivs.subPathItemValue.(DistributionBucketOptions_FieldPathArrayItemValue).ContainsValue(source.GetBucketOptions()) 1733 default: 1734 panic(fmt.Sprintf("Invalid selector for Distribution: %d", fpaivs.Selector())) 1735 } 1736 } 1737 1738 // Distribution_FieldPathArrayOfValues allows storing slice of values for Distribution fields according to their type 1739 type Distribution_FieldPathArrayOfValues interface { 1740 gotenobject.FieldPathArrayOfValues 1741 Distribution_FieldPath 1742 } 1743 1744 func ParseDistribution_FieldPathArrayOfValues(pathStr, valuesStr string) (Distribution_FieldPathArrayOfValues, error) { 1745 fp, err := ParseDistribution_FieldPath(pathStr) 1746 if err != nil { 1747 return nil, err 1748 } 1749 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 1750 if err != nil { 1751 return nil, status.Errorf(codes.InvalidArgument, "error parsing Distribution field path array of values from %s: %v", valuesStr, err) 1752 } 1753 return fpaov.(Distribution_FieldPathArrayOfValues), nil 1754 } 1755 1756 func MustParseDistribution_FieldPathArrayOfValues(pathStr, valuesStr string) Distribution_FieldPathArrayOfValues { 1757 fpaov, err := ParseDistribution_FieldPathArrayOfValues(pathStr, valuesStr) 1758 if err != nil { 1759 panic(err) 1760 } 1761 return fpaov 1762 } 1763 1764 type Distribution_FieldTerminalPathArrayOfValues struct { 1765 Distribution_FieldTerminalPath 1766 values interface{} 1767 } 1768 1769 var _ Distribution_FieldPathArrayOfValues = (*Distribution_FieldTerminalPathArrayOfValues)(nil) 1770 1771 func (fpaov *Distribution_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 1772 switch fpaov.selector { 1773 case Distribution_FieldPathSelectorCount: 1774 for _, v := range fpaov.values.([]int64) { 1775 values = append(values, v) 1776 } 1777 case Distribution_FieldPathSelectorMean: 1778 for _, v := range fpaov.values.([]float64) { 1779 values = append(values, v) 1780 } 1781 case Distribution_FieldPathSelectorSumOfSquaredDeviation: 1782 for _, v := range fpaov.values.([]float64) { 1783 values = append(values, v) 1784 } 1785 case Distribution_FieldPathSelectorRange: 1786 for _, v := range fpaov.values.([]*Distribution_Range) { 1787 values = append(values, v) 1788 } 1789 case Distribution_FieldPathSelectorBucketOptions: 1790 for _, v := range fpaov.values.([]*Distribution_BucketOptions) { 1791 values = append(values, v) 1792 } 1793 case Distribution_FieldPathSelectorBucketCounts: 1794 for _, v := range fpaov.values.([][]int64) { 1795 values = append(values, v) 1796 } 1797 } 1798 return 1799 } 1800 func (fpaov *Distribution_FieldTerminalPathArrayOfValues) AsCountArrayOfValues() ([]int64, bool) { 1801 res, ok := fpaov.values.([]int64) 1802 return res, ok 1803 } 1804 func (fpaov *Distribution_FieldTerminalPathArrayOfValues) AsMeanArrayOfValues() ([]float64, bool) { 1805 res, ok := fpaov.values.([]float64) 1806 return res, ok 1807 } 1808 func (fpaov *Distribution_FieldTerminalPathArrayOfValues) AsSumOfSquaredDeviationArrayOfValues() ([]float64, bool) { 1809 res, ok := fpaov.values.([]float64) 1810 return res, ok 1811 } 1812 func (fpaov *Distribution_FieldTerminalPathArrayOfValues) AsRangeArrayOfValues() ([]*Distribution_Range, bool) { 1813 res, ok := fpaov.values.([]*Distribution_Range) 1814 return res, ok 1815 } 1816 func (fpaov *Distribution_FieldTerminalPathArrayOfValues) AsBucketOptionsArrayOfValues() ([]*Distribution_BucketOptions, bool) { 1817 res, ok := fpaov.values.([]*Distribution_BucketOptions) 1818 return res, ok 1819 } 1820 func (fpaov *Distribution_FieldTerminalPathArrayOfValues) AsBucketCountsArrayOfValues() ([][]int64, bool) { 1821 res, ok := fpaov.values.([][]int64) 1822 return res, ok 1823 } 1824 1825 type Distribution_FieldSubPathArrayOfValues struct { 1826 Distribution_FieldPath 1827 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 1828 } 1829 1830 var _ Distribution_FieldPathArrayOfValues = (*Distribution_FieldSubPathArrayOfValues)(nil) 1831 1832 func (fpsaov *Distribution_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 1833 return fpsaov.subPathArrayOfValues.GetRawValues() 1834 } 1835 func (fpsaov *Distribution_FieldSubPathArrayOfValues) AsRangePathArrayOfValues() (DistributionRange_FieldPathArrayOfValues, bool) { 1836 res, ok := fpsaov.subPathArrayOfValues.(DistributionRange_FieldPathArrayOfValues) 1837 return res, ok 1838 } 1839 func (fpsaov *Distribution_FieldSubPathArrayOfValues) AsBucketOptionsPathArrayOfValues() (DistributionBucketOptions_FieldPathArrayOfValues, bool) { 1840 res, ok := fpsaov.subPathArrayOfValues.(DistributionBucketOptions_FieldPathArrayOfValues) 1841 return res, ok 1842 } 1843 1844 // FieldPath provides implementation to handle 1845 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 1846 type DistributionRange_FieldPath interface { 1847 gotenobject.FieldPath 1848 Selector() DistributionRange_FieldPathSelector 1849 Get(source *Distribution_Range) []interface{} 1850 GetSingle(source *Distribution_Range) (interface{}, bool) 1851 ClearValue(item *Distribution_Range) 1852 1853 // Those methods build corresponding DistributionRange_FieldPathValue 1854 // (or array of values) and holds passed value. Panics if injected type is incorrect. 1855 WithIValue(value interface{}) DistributionRange_FieldPathValue 1856 WithIArrayOfValues(values interface{}) DistributionRange_FieldPathArrayOfValues 1857 WithIArrayItemValue(value interface{}) DistributionRange_FieldPathArrayItemValue 1858 } 1859 1860 type DistributionRange_FieldPathSelector int32 1861 1862 const ( 1863 DistributionRange_FieldPathSelectorMin DistributionRange_FieldPathSelector = 0 1864 DistributionRange_FieldPathSelectorMax DistributionRange_FieldPathSelector = 1 1865 ) 1866 1867 func (s DistributionRange_FieldPathSelector) String() string { 1868 switch s { 1869 case DistributionRange_FieldPathSelectorMin: 1870 return "min" 1871 case DistributionRange_FieldPathSelectorMax: 1872 return "max" 1873 default: 1874 panic(fmt.Sprintf("Invalid selector for Distribution_Range: %d", s)) 1875 } 1876 } 1877 1878 func BuildDistributionRange_FieldPath(fp gotenobject.RawFieldPath) (DistributionRange_FieldPath, error) { 1879 if len(fp) == 0 { 1880 return nil, status.Error(codes.InvalidArgument, "empty field path for object Distribution_Range") 1881 } 1882 if len(fp) == 1 { 1883 switch fp[0] { 1884 case "min": 1885 return &DistributionRange_FieldTerminalPath{selector: DistributionRange_FieldPathSelectorMin}, nil 1886 case "max": 1887 return &DistributionRange_FieldTerminalPath{selector: DistributionRange_FieldPathSelectorMax}, nil 1888 } 1889 } 1890 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Distribution_Range", fp) 1891 } 1892 1893 func ParseDistributionRange_FieldPath(rawField string) (DistributionRange_FieldPath, error) { 1894 fp, err := gotenobject.ParseRawFieldPath(rawField) 1895 if err != nil { 1896 return nil, err 1897 } 1898 return BuildDistributionRange_FieldPath(fp) 1899 } 1900 1901 func MustParseDistributionRange_FieldPath(rawField string) DistributionRange_FieldPath { 1902 fp, err := ParseDistributionRange_FieldPath(rawField) 1903 if err != nil { 1904 panic(err) 1905 } 1906 return fp 1907 } 1908 1909 type DistributionRange_FieldTerminalPath struct { 1910 selector DistributionRange_FieldPathSelector 1911 } 1912 1913 var _ DistributionRange_FieldPath = (*DistributionRange_FieldTerminalPath)(nil) 1914 1915 func (fp *DistributionRange_FieldTerminalPath) Selector() DistributionRange_FieldPathSelector { 1916 return fp.selector 1917 } 1918 1919 // String returns path representation in proto convention 1920 func (fp *DistributionRange_FieldTerminalPath) String() string { 1921 return fp.selector.String() 1922 } 1923 1924 // JSONString returns path representation is JSON convention 1925 func (fp *DistributionRange_FieldTerminalPath) JSONString() string { 1926 return strcase.ToLowerCamel(fp.String()) 1927 } 1928 1929 // Get returns all values pointed by specific field from source Distribution_Range 1930 func (fp *DistributionRange_FieldTerminalPath) Get(source *Distribution_Range) (values []interface{}) { 1931 if source != nil { 1932 switch fp.selector { 1933 case DistributionRange_FieldPathSelectorMin: 1934 values = append(values, source.Min) 1935 case DistributionRange_FieldPathSelectorMax: 1936 values = append(values, source.Max) 1937 default: 1938 panic(fmt.Sprintf("Invalid selector for Distribution_Range: %d", fp.selector)) 1939 } 1940 } 1941 return 1942 } 1943 1944 func (fp *DistributionRange_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 1945 return fp.Get(source.(*Distribution_Range)) 1946 } 1947 1948 // GetSingle returns value pointed by specific field of from source Distribution_Range 1949 func (fp *DistributionRange_FieldTerminalPath) GetSingle(source *Distribution_Range) (interface{}, bool) { 1950 switch fp.selector { 1951 case DistributionRange_FieldPathSelectorMin: 1952 return source.GetMin(), source != nil 1953 case DistributionRange_FieldPathSelectorMax: 1954 return source.GetMax(), source != nil 1955 default: 1956 panic(fmt.Sprintf("Invalid selector for Distribution_Range: %d", fp.selector)) 1957 } 1958 } 1959 1960 func (fp *DistributionRange_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1961 return fp.GetSingle(source.(*Distribution_Range)) 1962 } 1963 1964 // GetDefault returns a default value of the field type 1965 func (fp *DistributionRange_FieldTerminalPath) GetDefault() interface{} { 1966 switch fp.selector { 1967 case DistributionRange_FieldPathSelectorMin: 1968 return float64(0) 1969 case DistributionRange_FieldPathSelectorMax: 1970 return float64(0) 1971 default: 1972 panic(fmt.Sprintf("Invalid selector for Distribution_Range: %d", fp.selector)) 1973 } 1974 } 1975 1976 func (fp *DistributionRange_FieldTerminalPath) ClearValue(item *Distribution_Range) { 1977 if item != nil { 1978 switch fp.selector { 1979 case DistributionRange_FieldPathSelectorMin: 1980 item.Min = float64(0) 1981 case DistributionRange_FieldPathSelectorMax: 1982 item.Max = float64(0) 1983 default: 1984 panic(fmt.Sprintf("Invalid selector for Distribution_Range: %d", fp.selector)) 1985 } 1986 } 1987 } 1988 1989 func (fp *DistributionRange_FieldTerminalPath) ClearValueRaw(item proto.Message) { 1990 fp.ClearValue(item.(*Distribution_Range)) 1991 } 1992 1993 // IsLeaf - whether field path is holds simple value 1994 func (fp *DistributionRange_FieldTerminalPath) IsLeaf() bool { 1995 return fp.selector == DistributionRange_FieldPathSelectorMin || 1996 fp.selector == DistributionRange_FieldPathSelectorMax 1997 } 1998 1999 func (fp *DistributionRange_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2000 return []gotenobject.FieldPath{fp} 2001 } 2002 2003 func (fp *DistributionRange_FieldTerminalPath) WithIValue(value interface{}) DistributionRange_FieldPathValue { 2004 switch fp.selector { 2005 case DistributionRange_FieldPathSelectorMin: 2006 return &DistributionRange_FieldTerminalPathValue{DistributionRange_FieldTerminalPath: *fp, value: value.(float64)} 2007 case DistributionRange_FieldPathSelectorMax: 2008 return &DistributionRange_FieldTerminalPathValue{DistributionRange_FieldTerminalPath: *fp, value: value.(float64)} 2009 default: 2010 panic(fmt.Sprintf("Invalid selector for Distribution_Range: %d", fp.selector)) 2011 } 2012 } 2013 2014 func (fp *DistributionRange_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 2015 return fp.WithIValue(value) 2016 } 2017 2018 func (fp *DistributionRange_FieldTerminalPath) WithIArrayOfValues(values interface{}) DistributionRange_FieldPathArrayOfValues { 2019 fpaov := &DistributionRange_FieldTerminalPathArrayOfValues{DistributionRange_FieldTerminalPath: *fp} 2020 switch fp.selector { 2021 case DistributionRange_FieldPathSelectorMin: 2022 return &DistributionRange_FieldTerminalPathArrayOfValues{DistributionRange_FieldTerminalPath: *fp, values: values.([]float64)} 2023 case DistributionRange_FieldPathSelectorMax: 2024 return &DistributionRange_FieldTerminalPathArrayOfValues{DistributionRange_FieldTerminalPath: *fp, values: values.([]float64)} 2025 default: 2026 panic(fmt.Sprintf("Invalid selector for Distribution_Range: %d", fp.selector)) 2027 } 2028 return fpaov 2029 } 2030 2031 func (fp *DistributionRange_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 2032 return fp.WithIArrayOfValues(values) 2033 } 2034 2035 func (fp *DistributionRange_FieldTerminalPath) WithIArrayItemValue(value interface{}) DistributionRange_FieldPathArrayItemValue { 2036 switch fp.selector { 2037 default: 2038 panic(fmt.Sprintf("Invalid selector for Distribution_Range: %d", fp.selector)) 2039 } 2040 } 2041 2042 func (fp *DistributionRange_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 2043 return fp.WithIArrayItemValue(value) 2044 } 2045 2046 // DistributionRange_FieldPathValue allows storing values for Range fields according to their type 2047 type DistributionRange_FieldPathValue interface { 2048 DistributionRange_FieldPath 2049 gotenobject.FieldPathValue 2050 SetTo(target **Distribution_Range) 2051 CompareWith(*Distribution_Range) (cmp int, comparable bool) 2052 } 2053 2054 func ParseDistributionRange_FieldPathValue(pathStr, valueStr string) (DistributionRange_FieldPathValue, error) { 2055 fp, err := ParseDistributionRange_FieldPath(pathStr) 2056 if err != nil { 2057 return nil, err 2058 } 2059 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 2060 if err != nil { 2061 return nil, status.Errorf(codes.InvalidArgument, "error parsing Range field path value from %s: %v", valueStr, err) 2062 } 2063 return fpv.(DistributionRange_FieldPathValue), nil 2064 } 2065 2066 func MustParseDistributionRange_FieldPathValue(pathStr, valueStr string) DistributionRange_FieldPathValue { 2067 fpv, err := ParseDistributionRange_FieldPathValue(pathStr, valueStr) 2068 if err != nil { 2069 panic(err) 2070 } 2071 return fpv 2072 } 2073 2074 type DistributionRange_FieldTerminalPathValue struct { 2075 DistributionRange_FieldTerminalPath 2076 value interface{} 2077 } 2078 2079 var _ DistributionRange_FieldPathValue = (*DistributionRange_FieldTerminalPathValue)(nil) 2080 2081 // GetRawValue returns raw value stored under selected path for 'Range' as interface{} 2082 func (fpv *DistributionRange_FieldTerminalPathValue) GetRawValue() interface{} { 2083 return fpv.value 2084 } 2085 func (fpv *DistributionRange_FieldTerminalPathValue) AsMinValue() (float64, bool) { 2086 res, ok := fpv.value.(float64) 2087 return res, ok 2088 } 2089 func (fpv *DistributionRange_FieldTerminalPathValue) AsMaxValue() (float64, bool) { 2090 res, ok := fpv.value.(float64) 2091 return res, ok 2092 } 2093 2094 // SetTo stores value for selected field for object Range 2095 func (fpv *DistributionRange_FieldTerminalPathValue) SetTo(target **Distribution_Range) { 2096 if *target == nil { 2097 *target = new(Distribution_Range) 2098 } 2099 switch fpv.selector { 2100 case DistributionRange_FieldPathSelectorMin: 2101 (*target).Min = fpv.value.(float64) 2102 case DistributionRange_FieldPathSelectorMax: 2103 (*target).Max = fpv.value.(float64) 2104 default: 2105 panic(fmt.Sprintf("Invalid selector for Distribution_Range: %d", fpv.selector)) 2106 } 2107 } 2108 2109 func (fpv *DistributionRange_FieldTerminalPathValue) SetToRaw(target proto.Message) { 2110 typedObject := target.(*Distribution_Range) 2111 fpv.SetTo(&typedObject) 2112 } 2113 2114 // CompareWith compares value in the 'DistributionRange_FieldTerminalPathValue' with the value under path in 'Distribution_Range'. 2115 func (fpv *DistributionRange_FieldTerminalPathValue) CompareWith(source *Distribution_Range) (int, bool) { 2116 switch fpv.selector { 2117 case DistributionRange_FieldPathSelectorMin: 2118 leftValue := fpv.value.(float64) 2119 rightValue := source.GetMin() 2120 if (leftValue) == (rightValue) { 2121 return 0, true 2122 } else if (leftValue) < (rightValue) { 2123 return -1, true 2124 } else { 2125 return 1, true 2126 } 2127 case DistributionRange_FieldPathSelectorMax: 2128 leftValue := fpv.value.(float64) 2129 rightValue := source.GetMax() 2130 if (leftValue) == (rightValue) { 2131 return 0, true 2132 } else if (leftValue) < (rightValue) { 2133 return -1, true 2134 } else { 2135 return 1, true 2136 } 2137 default: 2138 panic(fmt.Sprintf("Invalid selector for Distribution_Range: %d", fpv.selector)) 2139 } 2140 } 2141 2142 func (fpv *DistributionRange_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2143 return fpv.CompareWith(source.(*Distribution_Range)) 2144 } 2145 2146 // DistributionRange_FieldPathArrayItemValue allows storing single item in Path-specific values for Range according to their type 2147 // Present only for array (repeated) types. 2148 type DistributionRange_FieldPathArrayItemValue interface { 2149 gotenobject.FieldPathArrayItemValue 2150 DistributionRange_FieldPath 2151 ContainsValue(*Distribution_Range) bool 2152 } 2153 2154 // ParseDistributionRange_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 2155 func ParseDistributionRange_FieldPathArrayItemValue(pathStr, valueStr string) (DistributionRange_FieldPathArrayItemValue, error) { 2156 fp, err := ParseDistributionRange_FieldPath(pathStr) 2157 if err != nil { 2158 return nil, err 2159 } 2160 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 2161 if err != nil { 2162 return nil, status.Errorf(codes.InvalidArgument, "error parsing Range field path array item value from %s: %v", valueStr, err) 2163 } 2164 return fpaiv.(DistributionRange_FieldPathArrayItemValue), nil 2165 } 2166 2167 func MustParseDistributionRange_FieldPathArrayItemValue(pathStr, valueStr string) DistributionRange_FieldPathArrayItemValue { 2168 fpaiv, err := ParseDistributionRange_FieldPathArrayItemValue(pathStr, valueStr) 2169 if err != nil { 2170 panic(err) 2171 } 2172 return fpaiv 2173 } 2174 2175 type DistributionRange_FieldTerminalPathArrayItemValue struct { 2176 DistributionRange_FieldTerminalPath 2177 value interface{} 2178 } 2179 2180 var _ DistributionRange_FieldPathArrayItemValue = (*DistributionRange_FieldTerminalPathArrayItemValue)(nil) 2181 2182 // GetRawValue returns stored element value for array in object Distribution_Range as interface{} 2183 func (fpaiv *DistributionRange_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 2184 return fpaiv.value 2185 } 2186 2187 func (fpaiv *DistributionRange_FieldTerminalPathArrayItemValue) GetSingle(source *Distribution_Range) (interface{}, bool) { 2188 return nil, false 2189 } 2190 2191 func (fpaiv *DistributionRange_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 2192 return fpaiv.GetSingle(source.(*Distribution_Range)) 2193 } 2194 2195 // Contains returns a boolean indicating if value that is being held is present in given 'Range' 2196 func (fpaiv *DistributionRange_FieldTerminalPathArrayItemValue) ContainsValue(source *Distribution_Range) bool { 2197 slice := fpaiv.DistributionRange_FieldTerminalPath.Get(source) 2198 for _, v := range slice { 2199 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 2200 if proto.Equal(asProtoMsg, v.(proto.Message)) { 2201 return true 2202 } 2203 } else if reflect.DeepEqual(v, fpaiv.value) { 2204 return true 2205 } 2206 } 2207 return false 2208 } 2209 2210 // DistributionRange_FieldPathArrayOfValues allows storing slice of values for Range fields according to their type 2211 type DistributionRange_FieldPathArrayOfValues interface { 2212 gotenobject.FieldPathArrayOfValues 2213 DistributionRange_FieldPath 2214 } 2215 2216 func ParseDistributionRange_FieldPathArrayOfValues(pathStr, valuesStr string) (DistributionRange_FieldPathArrayOfValues, error) { 2217 fp, err := ParseDistributionRange_FieldPath(pathStr) 2218 if err != nil { 2219 return nil, err 2220 } 2221 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 2222 if err != nil { 2223 return nil, status.Errorf(codes.InvalidArgument, "error parsing Range field path array of values from %s: %v", valuesStr, err) 2224 } 2225 return fpaov.(DistributionRange_FieldPathArrayOfValues), nil 2226 } 2227 2228 func MustParseDistributionRange_FieldPathArrayOfValues(pathStr, valuesStr string) DistributionRange_FieldPathArrayOfValues { 2229 fpaov, err := ParseDistributionRange_FieldPathArrayOfValues(pathStr, valuesStr) 2230 if err != nil { 2231 panic(err) 2232 } 2233 return fpaov 2234 } 2235 2236 type DistributionRange_FieldTerminalPathArrayOfValues struct { 2237 DistributionRange_FieldTerminalPath 2238 values interface{} 2239 } 2240 2241 var _ DistributionRange_FieldPathArrayOfValues = (*DistributionRange_FieldTerminalPathArrayOfValues)(nil) 2242 2243 func (fpaov *DistributionRange_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 2244 switch fpaov.selector { 2245 case DistributionRange_FieldPathSelectorMin: 2246 for _, v := range fpaov.values.([]float64) { 2247 values = append(values, v) 2248 } 2249 case DistributionRange_FieldPathSelectorMax: 2250 for _, v := range fpaov.values.([]float64) { 2251 values = append(values, v) 2252 } 2253 } 2254 return 2255 } 2256 func (fpaov *DistributionRange_FieldTerminalPathArrayOfValues) AsMinArrayOfValues() ([]float64, bool) { 2257 res, ok := fpaov.values.([]float64) 2258 return res, ok 2259 } 2260 func (fpaov *DistributionRange_FieldTerminalPathArrayOfValues) AsMaxArrayOfValues() ([]float64, bool) { 2261 res, ok := fpaov.values.([]float64) 2262 return res, ok 2263 } 2264 2265 // FieldPath provides implementation to handle 2266 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 2267 type DistributionBucketOptions_FieldPath interface { 2268 gotenobject.FieldPath 2269 Selector() DistributionBucketOptions_FieldPathSelector 2270 Get(source *Distribution_BucketOptions) []interface{} 2271 GetSingle(source *Distribution_BucketOptions) (interface{}, bool) 2272 ClearValue(item *Distribution_BucketOptions) 2273 2274 // Those methods build corresponding DistributionBucketOptions_FieldPathValue 2275 // (or array of values) and holds passed value. Panics if injected type is incorrect. 2276 WithIValue(value interface{}) DistributionBucketOptions_FieldPathValue 2277 WithIArrayOfValues(values interface{}) DistributionBucketOptions_FieldPathArrayOfValues 2278 WithIArrayItemValue(value interface{}) DistributionBucketOptions_FieldPathArrayItemValue 2279 } 2280 2281 type DistributionBucketOptions_FieldPathSelector int32 2282 2283 const ( 2284 DistributionBucketOptions_FieldPathSelectorLinearBuckets DistributionBucketOptions_FieldPathSelector = 0 2285 DistributionBucketOptions_FieldPathSelectorExponentialBuckets DistributionBucketOptions_FieldPathSelector = 1 2286 DistributionBucketOptions_FieldPathSelectorExplicitBuckets DistributionBucketOptions_FieldPathSelector = 2 2287 DistributionBucketOptions_FieldPathSelectorDynamicBuckets DistributionBucketOptions_FieldPathSelector = 3 2288 ) 2289 2290 func (s DistributionBucketOptions_FieldPathSelector) String() string { 2291 switch s { 2292 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2293 return "linear_buckets" 2294 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2295 return "exponential_buckets" 2296 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2297 return "explicit_buckets" 2298 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2299 return "dynamic_buckets" 2300 default: 2301 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", s)) 2302 } 2303 } 2304 2305 func BuildDistributionBucketOptions_FieldPath(fp gotenobject.RawFieldPath) (DistributionBucketOptions_FieldPath, error) { 2306 if len(fp) == 0 { 2307 return nil, status.Error(codes.InvalidArgument, "empty field path for object Distribution_BucketOptions") 2308 } 2309 if len(fp) == 1 { 2310 switch fp[0] { 2311 case "linear_buckets", "linearBuckets", "linear-buckets": 2312 return &DistributionBucketOptions_FieldTerminalPath{selector: DistributionBucketOptions_FieldPathSelectorLinearBuckets}, nil 2313 case "exponential_buckets", "exponentialBuckets", "exponential-buckets": 2314 return &DistributionBucketOptions_FieldTerminalPath{selector: DistributionBucketOptions_FieldPathSelectorExponentialBuckets}, nil 2315 case "explicit_buckets", "explicitBuckets", "explicit-buckets": 2316 return &DistributionBucketOptions_FieldTerminalPath{selector: DistributionBucketOptions_FieldPathSelectorExplicitBuckets}, nil 2317 case "dynamic_buckets", "dynamicBuckets", "dynamic-buckets": 2318 return &DistributionBucketOptions_FieldTerminalPath{selector: DistributionBucketOptions_FieldPathSelectorDynamicBuckets}, nil 2319 } 2320 } else { 2321 switch fp[0] { 2322 case "linear_buckets", "linearBuckets", "linear-buckets": 2323 if subpath, err := BuildDistributionBucketOptionsLinear_FieldPath(fp[1:]); err != nil { 2324 return nil, err 2325 } else { 2326 return &DistributionBucketOptions_FieldSubPath{selector: DistributionBucketOptions_FieldPathSelectorLinearBuckets, subPath: subpath}, nil 2327 } 2328 case "exponential_buckets", "exponentialBuckets", "exponential-buckets": 2329 if subpath, err := BuildDistributionBucketOptionsExponential_FieldPath(fp[1:]); err != nil { 2330 return nil, err 2331 } else { 2332 return &DistributionBucketOptions_FieldSubPath{selector: DistributionBucketOptions_FieldPathSelectorExponentialBuckets, subPath: subpath}, nil 2333 } 2334 case "explicit_buckets", "explicitBuckets", "explicit-buckets": 2335 if subpath, err := BuildDistributionBucketOptionsExplicit_FieldPath(fp[1:]); err != nil { 2336 return nil, err 2337 } else { 2338 return &DistributionBucketOptions_FieldSubPath{selector: DistributionBucketOptions_FieldPathSelectorExplicitBuckets, subPath: subpath}, nil 2339 } 2340 case "dynamic_buckets", "dynamicBuckets", "dynamic-buckets": 2341 if subpath, err := BuildDistributionBucketOptionsDynamic_FieldPath(fp[1:]); err != nil { 2342 return nil, err 2343 } else { 2344 return &DistributionBucketOptions_FieldSubPath{selector: DistributionBucketOptions_FieldPathSelectorDynamicBuckets, subPath: subpath}, nil 2345 } 2346 } 2347 } 2348 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Distribution_BucketOptions", fp) 2349 } 2350 2351 func ParseDistributionBucketOptions_FieldPath(rawField string) (DistributionBucketOptions_FieldPath, error) { 2352 fp, err := gotenobject.ParseRawFieldPath(rawField) 2353 if err != nil { 2354 return nil, err 2355 } 2356 return BuildDistributionBucketOptions_FieldPath(fp) 2357 } 2358 2359 func MustParseDistributionBucketOptions_FieldPath(rawField string) DistributionBucketOptions_FieldPath { 2360 fp, err := ParseDistributionBucketOptions_FieldPath(rawField) 2361 if err != nil { 2362 panic(err) 2363 } 2364 return fp 2365 } 2366 2367 type DistributionBucketOptions_FieldTerminalPath struct { 2368 selector DistributionBucketOptions_FieldPathSelector 2369 } 2370 2371 var _ DistributionBucketOptions_FieldPath = (*DistributionBucketOptions_FieldTerminalPath)(nil) 2372 2373 func (fp *DistributionBucketOptions_FieldTerminalPath) Selector() DistributionBucketOptions_FieldPathSelector { 2374 return fp.selector 2375 } 2376 2377 // String returns path representation in proto convention 2378 func (fp *DistributionBucketOptions_FieldTerminalPath) String() string { 2379 return fp.selector.String() 2380 } 2381 2382 // JSONString returns path representation is JSON convention 2383 func (fp *DistributionBucketOptions_FieldTerminalPath) JSONString() string { 2384 return strcase.ToLowerCamel(fp.String()) 2385 } 2386 2387 // Get returns all values pointed by specific field from source Distribution_BucketOptions 2388 func (fp *DistributionBucketOptions_FieldTerminalPath) Get(source *Distribution_BucketOptions) (values []interface{}) { 2389 if source != nil { 2390 switch fp.selector { 2391 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2392 if source, ok := source.Options.(*Distribution_BucketOptions_LinearBuckets); ok && source != nil { 2393 if source.LinearBuckets != nil { 2394 values = append(values, source.LinearBuckets) 2395 } 2396 } 2397 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2398 if source, ok := source.Options.(*Distribution_BucketOptions_ExponentialBuckets); ok && source != nil { 2399 if source.ExponentialBuckets != nil { 2400 values = append(values, source.ExponentialBuckets) 2401 } 2402 } 2403 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2404 if source, ok := source.Options.(*Distribution_BucketOptions_ExplicitBuckets); ok && source != nil { 2405 if source.ExplicitBuckets != nil { 2406 values = append(values, source.ExplicitBuckets) 2407 } 2408 } 2409 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2410 if source, ok := source.Options.(*Distribution_BucketOptions_DynamicBuckets); ok && source != nil { 2411 if source.DynamicBuckets != nil { 2412 values = append(values, source.DynamicBuckets) 2413 } 2414 } 2415 default: 2416 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fp.selector)) 2417 } 2418 } 2419 return 2420 } 2421 2422 func (fp *DistributionBucketOptions_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 2423 return fp.Get(source.(*Distribution_BucketOptions)) 2424 } 2425 2426 // GetSingle returns value pointed by specific field of from source Distribution_BucketOptions 2427 func (fp *DistributionBucketOptions_FieldTerminalPath) GetSingle(source *Distribution_BucketOptions) (interface{}, bool) { 2428 switch fp.selector { 2429 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2430 // if object nil or oneof not active, return "default" type with false flag. 2431 if source == nil { 2432 return source.GetLinearBuckets(), false 2433 } 2434 _, oneOfSelected := source.Options.(*Distribution_BucketOptions_LinearBuckets) 2435 if !oneOfSelected { 2436 return source.GetLinearBuckets(), false // to return "type" information 2437 } 2438 res := source.GetLinearBuckets() 2439 return res, res != nil 2440 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2441 // if object nil or oneof not active, return "default" type with false flag. 2442 if source == nil { 2443 return source.GetExponentialBuckets(), false 2444 } 2445 _, oneOfSelected := source.Options.(*Distribution_BucketOptions_ExponentialBuckets) 2446 if !oneOfSelected { 2447 return source.GetExponentialBuckets(), false // to return "type" information 2448 } 2449 res := source.GetExponentialBuckets() 2450 return res, res != nil 2451 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2452 // if object nil or oneof not active, return "default" type with false flag. 2453 if source == nil { 2454 return source.GetExplicitBuckets(), false 2455 } 2456 _, oneOfSelected := source.Options.(*Distribution_BucketOptions_ExplicitBuckets) 2457 if !oneOfSelected { 2458 return source.GetExplicitBuckets(), false // to return "type" information 2459 } 2460 res := source.GetExplicitBuckets() 2461 return res, res != nil 2462 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2463 // if object nil or oneof not active, return "default" type with false flag. 2464 if source == nil { 2465 return source.GetDynamicBuckets(), false 2466 } 2467 _, oneOfSelected := source.Options.(*Distribution_BucketOptions_DynamicBuckets) 2468 if !oneOfSelected { 2469 return source.GetDynamicBuckets(), false // to return "type" information 2470 } 2471 res := source.GetDynamicBuckets() 2472 return res, res != nil 2473 default: 2474 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fp.selector)) 2475 } 2476 } 2477 2478 func (fp *DistributionBucketOptions_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 2479 return fp.GetSingle(source.(*Distribution_BucketOptions)) 2480 } 2481 2482 // GetDefault returns a default value of the field type 2483 func (fp *DistributionBucketOptions_FieldTerminalPath) GetDefault() interface{} { 2484 switch fp.selector { 2485 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2486 return (*Distribution_BucketOptions_Linear)(nil) 2487 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2488 return (*Distribution_BucketOptions_Exponential)(nil) 2489 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2490 return (*Distribution_BucketOptions_Explicit)(nil) 2491 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2492 return (*Distribution_BucketOptions_Dynamic)(nil) 2493 default: 2494 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fp.selector)) 2495 } 2496 } 2497 2498 func (fp *DistributionBucketOptions_FieldTerminalPath) ClearValue(item *Distribution_BucketOptions) { 2499 if item != nil { 2500 switch fp.selector { 2501 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2502 if item, ok := item.Options.(*Distribution_BucketOptions_LinearBuckets); ok { 2503 item.LinearBuckets = nil 2504 } 2505 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2506 if item, ok := item.Options.(*Distribution_BucketOptions_ExponentialBuckets); ok { 2507 item.ExponentialBuckets = nil 2508 } 2509 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2510 if item, ok := item.Options.(*Distribution_BucketOptions_ExplicitBuckets); ok { 2511 item.ExplicitBuckets = nil 2512 } 2513 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2514 if item, ok := item.Options.(*Distribution_BucketOptions_DynamicBuckets); ok { 2515 item.DynamicBuckets = nil 2516 } 2517 default: 2518 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fp.selector)) 2519 } 2520 } 2521 } 2522 2523 func (fp *DistributionBucketOptions_FieldTerminalPath) ClearValueRaw(item proto.Message) { 2524 fp.ClearValue(item.(*Distribution_BucketOptions)) 2525 } 2526 2527 // IsLeaf - whether field path is holds simple value 2528 func (fp *DistributionBucketOptions_FieldTerminalPath) IsLeaf() bool { 2529 return false 2530 } 2531 2532 func (fp *DistributionBucketOptions_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2533 return []gotenobject.FieldPath{fp} 2534 } 2535 2536 func (fp *DistributionBucketOptions_FieldTerminalPath) WithIValue(value interface{}) DistributionBucketOptions_FieldPathValue { 2537 switch fp.selector { 2538 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2539 return &DistributionBucketOptions_FieldTerminalPathValue{DistributionBucketOptions_FieldTerminalPath: *fp, value: value.(*Distribution_BucketOptions_Linear)} 2540 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2541 return &DistributionBucketOptions_FieldTerminalPathValue{DistributionBucketOptions_FieldTerminalPath: *fp, value: value.(*Distribution_BucketOptions_Exponential)} 2542 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2543 return &DistributionBucketOptions_FieldTerminalPathValue{DistributionBucketOptions_FieldTerminalPath: *fp, value: value.(*Distribution_BucketOptions_Explicit)} 2544 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2545 return &DistributionBucketOptions_FieldTerminalPathValue{DistributionBucketOptions_FieldTerminalPath: *fp, value: value.(*Distribution_BucketOptions_Dynamic)} 2546 default: 2547 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fp.selector)) 2548 } 2549 } 2550 2551 func (fp *DistributionBucketOptions_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 2552 return fp.WithIValue(value) 2553 } 2554 2555 func (fp *DistributionBucketOptions_FieldTerminalPath) WithIArrayOfValues(values interface{}) DistributionBucketOptions_FieldPathArrayOfValues { 2556 fpaov := &DistributionBucketOptions_FieldTerminalPathArrayOfValues{DistributionBucketOptions_FieldTerminalPath: *fp} 2557 switch fp.selector { 2558 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2559 return &DistributionBucketOptions_FieldTerminalPathArrayOfValues{DistributionBucketOptions_FieldTerminalPath: *fp, values: values.([]*Distribution_BucketOptions_Linear)} 2560 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2561 return &DistributionBucketOptions_FieldTerminalPathArrayOfValues{DistributionBucketOptions_FieldTerminalPath: *fp, values: values.([]*Distribution_BucketOptions_Exponential)} 2562 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2563 return &DistributionBucketOptions_FieldTerminalPathArrayOfValues{DistributionBucketOptions_FieldTerminalPath: *fp, values: values.([]*Distribution_BucketOptions_Explicit)} 2564 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2565 return &DistributionBucketOptions_FieldTerminalPathArrayOfValues{DistributionBucketOptions_FieldTerminalPath: *fp, values: values.([]*Distribution_BucketOptions_Dynamic)} 2566 default: 2567 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fp.selector)) 2568 } 2569 return fpaov 2570 } 2571 2572 func (fp *DistributionBucketOptions_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 2573 return fp.WithIArrayOfValues(values) 2574 } 2575 2576 func (fp *DistributionBucketOptions_FieldTerminalPath) WithIArrayItemValue(value interface{}) DistributionBucketOptions_FieldPathArrayItemValue { 2577 switch fp.selector { 2578 default: 2579 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fp.selector)) 2580 } 2581 } 2582 2583 func (fp *DistributionBucketOptions_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 2584 return fp.WithIArrayItemValue(value) 2585 } 2586 2587 type DistributionBucketOptions_FieldSubPath struct { 2588 selector DistributionBucketOptions_FieldPathSelector 2589 subPath gotenobject.FieldPath 2590 } 2591 2592 var _ DistributionBucketOptions_FieldPath = (*DistributionBucketOptions_FieldSubPath)(nil) 2593 2594 func (fps *DistributionBucketOptions_FieldSubPath) Selector() DistributionBucketOptions_FieldPathSelector { 2595 return fps.selector 2596 } 2597 func (fps *DistributionBucketOptions_FieldSubPath) AsLinearBucketsSubPath() (DistributionBucketOptionsLinear_FieldPath, bool) { 2598 res, ok := fps.subPath.(DistributionBucketOptionsLinear_FieldPath) 2599 return res, ok 2600 } 2601 func (fps *DistributionBucketOptions_FieldSubPath) AsExponentialBucketsSubPath() (DistributionBucketOptionsExponential_FieldPath, bool) { 2602 res, ok := fps.subPath.(DistributionBucketOptionsExponential_FieldPath) 2603 return res, ok 2604 } 2605 func (fps *DistributionBucketOptions_FieldSubPath) AsExplicitBucketsSubPath() (DistributionBucketOptionsExplicit_FieldPath, bool) { 2606 res, ok := fps.subPath.(DistributionBucketOptionsExplicit_FieldPath) 2607 return res, ok 2608 } 2609 func (fps *DistributionBucketOptions_FieldSubPath) AsDynamicBucketsSubPath() (DistributionBucketOptionsDynamic_FieldPath, bool) { 2610 res, ok := fps.subPath.(DistributionBucketOptionsDynamic_FieldPath) 2611 return res, ok 2612 } 2613 2614 // String returns path representation in proto convention 2615 func (fps *DistributionBucketOptions_FieldSubPath) String() string { 2616 return fps.selector.String() + "." + fps.subPath.String() 2617 } 2618 2619 // JSONString returns path representation is JSON convention 2620 func (fps *DistributionBucketOptions_FieldSubPath) JSONString() string { 2621 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 2622 } 2623 2624 // Get returns all values pointed by selected field from source Distribution_BucketOptions 2625 func (fps *DistributionBucketOptions_FieldSubPath) Get(source *Distribution_BucketOptions) (values []interface{}) { 2626 switch fps.selector { 2627 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2628 values = append(values, fps.subPath.GetRaw(source.GetLinearBuckets())...) 2629 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2630 values = append(values, fps.subPath.GetRaw(source.GetExponentialBuckets())...) 2631 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2632 values = append(values, fps.subPath.GetRaw(source.GetExplicitBuckets())...) 2633 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2634 values = append(values, fps.subPath.GetRaw(source.GetDynamicBuckets())...) 2635 default: 2636 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fps.selector)) 2637 } 2638 return 2639 } 2640 2641 func (fps *DistributionBucketOptions_FieldSubPath) GetRaw(source proto.Message) []interface{} { 2642 return fps.Get(source.(*Distribution_BucketOptions)) 2643 } 2644 2645 // GetSingle returns value of selected field from source Distribution_BucketOptions 2646 func (fps *DistributionBucketOptions_FieldSubPath) GetSingle(source *Distribution_BucketOptions) (interface{}, bool) { 2647 switch fps.selector { 2648 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2649 if source.GetLinearBuckets() == nil { 2650 return nil, false 2651 } 2652 return fps.subPath.GetSingleRaw(source.GetLinearBuckets()) 2653 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2654 if source.GetExponentialBuckets() == nil { 2655 return nil, false 2656 } 2657 return fps.subPath.GetSingleRaw(source.GetExponentialBuckets()) 2658 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2659 if source.GetExplicitBuckets() == nil { 2660 return nil, false 2661 } 2662 return fps.subPath.GetSingleRaw(source.GetExplicitBuckets()) 2663 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2664 if source.GetDynamicBuckets() == nil { 2665 return nil, false 2666 } 2667 return fps.subPath.GetSingleRaw(source.GetDynamicBuckets()) 2668 default: 2669 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fps.selector)) 2670 } 2671 } 2672 2673 func (fps *DistributionBucketOptions_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 2674 return fps.GetSingle(source.(*Distribution_BucketOptions)) 2675 } 2676 2677 // GetDefault returns a default value of the field type 2678 func (fps *DistributionBucketOptions_FieldSubPath) GetDefault() interface{} { 2679 return fps.subPath.GetDefault() 2680 } 2681 2682 func (fps *DistributionBucketOptions_FieldSubPath) ClearValue(item *Distribution_BucketOptions) { 2683 if item != nil { 2684 switch fps.selector { 2685 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2686 if item.Options != nil { 2687 if item, ok := item.Options.(*Distribution_BucketOptions_LinearBuckets); ok { 2688 fps.subPath.ClearValueRaw(item.LinearBuckets) 2689 } 2690 } 2691 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2692 if item.Options != nil { 2693 if item, ok := item.Options.(*Distribution_BucketOptions_ExponentialBuckets); ok { 2694 fps.subPath.ClearValueRaw(item.ExponentialBuckets) 2695 } 2696 } 2697 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2698 if item.Options != nil { 2699 if item, ok := item.Options.(*Distribution_BucketOptions_ExplicitBuckets); ok { 2700 fps.subPath.ClearValueRaw(item.ExplicitBuckets) 2701 } 2702 } 2703 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2704 if item.Options != nil { 2705 if item, ok := item.Options.(*Distribution_BucketOptions_DynamicBuckets); ok { 2706 fps.subPath.ClearValueRaw(item.DynamicBuckets) 2707 } 2708 } 2709 default: 2710 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fps.selector)) 2711 } 2712 } 2713 } 2714 2715 func (fps *DistributionBucketOptions_FieldSubPath) ClearValueRaw(item proto.Message) { 2716 fps.ClearValue(item.(*Distribution_BucketOptions)) 2717 } 2718 2719 // IsLeaf - whether field path is holds simple value 2720 func (fps *DistributionBucketOptions_FieldSubPath) IsLeaf() bool { 2721 return fps.subPath.IsLeaf() 2722 } 2723 2724 func (fps *DistributionBucketOptions_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2725 iPaths := []gotenobject.FieldPath{&DistributionBucketOptions_FieldTerminalPath{selector: fps.selector}} 2726 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 2727 return iPaths 2728 } 2729 2730 func (fps *DistributionBucketOptions_FieldSubPath) WithIValue(value interface{}) DistributionBucketOptions_FieldPathValue { 2731 return &DistributionBucketOptions_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 2732 } 2733 2734 func (fps *DistributionBucketOptions_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 2735 return fps.WithIValue(value) 2736 } 2737 2738 func (fps *DistributionBucketOptions_FieldSubPath) WithIArrayOfValues(values interface{}) DistributionBucketOptions_FieldPathArrayOfValues { 2739 return &DistributionBucketOptions_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 2740 } 2741 2742 func (fps *DistributionBucketOptions_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 2743 return fps.WithIArrayOfValues(values) 2744 } 2745 2746 func (fps *DistributionBucketOptions_FieldSubPath) WithIArrayItemValue(value interface{}) DistributionBucketOptions_FieldPathArrayItemValue { 2747 return &DistributionBucketOptions_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 2748 } 2749 2750 func (fps *DistributionBucketOptions_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 2751 return fps.WithIArrayItemValue(value) 2752 } 2753 2754 // DistributionBucketOptions_FieldPathValue allows storing values for BucketOptions fields according to their type 2755 type DistributionBucketOptions_FieldPathValue interface { 2756 DistributionBucketOptions_FieldPath 2757 gotenobject.FieldPathValue 2758 SetTo(target **Distribution_BucketOptions) 2759 CompareWith(*Distribution_BucketOptions) (cmp int, comparable bool) 2760 } 2761 2762 func ParseDistributionBucketOptions_FieldPathValue(pathStr, valueStr string) (DistributionBucketOptions_FieldPathValue, error) { 2763 fp, err := ParseDistributionBucketOptions_FieldPath(pathStr) 2764 if err != nil { 2765 return nil, err 2766 } 2767 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 2768 if err != nil { 2769 return nil, status.Errorf(codes.InvalidArgument, "error parsing BucketOptions field path value from %s: %v", valueStr, err) 2770 } 2771 return fpv.(DistributionBucketOptions_FieldPathValue), nil 2772 } 2773 2774 func MustParseDistributionBucketOptions_FieldPathValue(pathStr, valueStr string) DistributionBucketOptions_FieldPathValue { 2775 fpv, err := ParseDistributionBucketOptions_FieldPathValue(pathStr, valueStr) 2776 if err != nil { 2777 panic(err) 2778 } 2779 return fpv 2780 } 2781 2782 type DistributionBucketOptions_FieldTerminalPathValue struct { 2783 DistributionBucketOptions_FieldTerminalPath 2784 value interface{} 2785 } 2786 2787 var _ DistributionBucketOptions_FieldPathValue = (*DistributionBucketOptions_FieldTerminalPathValue)(nil) 2788 2789 // GetRawValue returns raw value stored under selected path for 'BucketOptions' as interface{} 2790 func (fpv *DistributionBucketOptions_FieldTerminalPathValue) GetRawValue() interface{} { 2791 return fpv.value 2792 } 2793 func (fpv *DistributionBucketOptions_FieldTerminalPathValue) AsLinearBucketsValue() (*Distribution_BucketOptions_Linear, bool) { 2794 res, ok := fpv.value.(*Distribution_BucketOptions_Linear) 2795 return res, ok 2796 } 2797 func (fpv *DistributionBucketOptions_FieldTerminalPathValue) AsExponentialBucketsValue() (*Distribution_BucketOptions_Exponential, bool) { 2798 res, ok := fpv.value.(*Distribution_BucketOptions_Exponential) 2799 return res, ok 2800 } 2801 func (fpv *DistributionBucketOptions_FieldTerminalPathValue) AsExplicitBucketsValue() (*Distribution_BucketOptions_Explicit, bool) { 2802 res, ok := fpv.value.(*Distribution_BucketOptions_Explicit) 2803 return res, ok 2804 } 2805 func (fpv *DistributionBucketOptions_FieldTerminalPathValue) AsDynamicBucketsValue() (*Distribution_BucketOptions_Dynamic, bool) { 2806 res, ok := fpv.value.(*Distribution_BucketOptions_Dynamic) 2807 return res, ok 2808 } 2809 2810 // SetTo stores value for selected field for object BucketOptions 2811 func (fpv *DistributionBucketOptions_FieldTerminalPathValue) SetTo(target **Distribution_BucketOptions) { 2812 if *target == nil { 2813 *target = new(Distribution_BucketOptions) 2814 } 2815 switch fpv.selector { 2816 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2817 if _, ok := (*target).Options.(*Distribution_BucketOptions_LinearBuckets); !ok { 2818 (*target).Options = &Distribution_BucketOptions_LinearBuckets{} 2819 } 2820 (*target).Options.(*Distribution_BucketOptions_LinearBuckets).LinearBuckets = fpv.value.(*Distribution_BucketOptions_Linear) 2821 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2822 if _, ok := (*target).Options.(*Distribution_BucketOptions_ExponentialBuckets); !ok { 2823 (*target).Options = &Distribution_BucketOptions_ExponentialBuckets{} 2824 } 2825 (*target).Options.(*Distribution_BucketOptions_ExponentialBuckets).ExponentialBuckets = fpv.value.(*Distribution_BucketOptions_Exponential) 2826 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2827 if _, ok := (*target).Options.(*Distribution_BucketOptions_ExplicitBuckets); !ok { 2828 (*target).Options = &Distribution_BucketOptions_ExplicitBuckets{} 2829 } 2830 (*target).Options.(*Distribution_BucketOptions_ExplicitBuckets).ExplicitBuckets = fpv.value.(*Distribution_BucketOptions_Explicit) 2831 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2832 if _, ok := (*target).Options.(*Distribution_BucketOptions_DynamicBuckets); !ok { 2833 (*target).Options = &Distribution_BucketOptions_DynamicBuckets{} 2834 } 2835 (*target).Options.(*Distribution_BucketOptions_DynamicBuckets).DynamicBuckets = fpv.value.(*Distribution_BucketOptions_Dynamic) 2836 default: 2837 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fpv.selector)) 2838 } 2839 } 2840 2841 func (fpv *DistributionBucketOptions_FieldTerminalPathValue) SetToRaw(target proto.Message) { 2842 typedObject := target.(*Distribution_BucketOptions) 2843 fpv.SetTo(&typedObject) 2844 } 2845 2846 // CompareWith compares value in the 'DistributionBucketOptions_FieldTerminalPathValue' with the value under path in 'Distribution_BucketOptions'. 2847 func (fpv *DistributionBucketOptions_FieldTerminalPathValue) CompareWith(source *Distribution_BucketOptions) (int, bool) { 2848 switch fpv.selector { 2849 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2850 return 0, false 2851 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2852 return 0, false 2853 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2854 return 0, false 2855 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2856 return 0, false 2857 default: 2858 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fpv.selector)) 2859 } 2860 } 2861 2862 func (fpv *DistributionBucketOptions_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2863 return fpv.CompareWith(source.(*Distribution_BucketOptions)) 2864 } 2865 2866 type DistributionBucketOptions_FieldSubPathValue struct { 2867 DistributionBucketOptions_FieldPath 2868 subPathValue gotenobject.FieldPathValue 2869 } 2870 2871 var _ DistributionBucketOptions_FieldPathValue = (*DistributionBucketOptions_FieldSubPathValue)(nil) 2872 2873 func (fpvs *DistributionBucketOptions_FieldSubPathValue) AsLinearBucketsPathValue() (DistributionBucketOptionsLinear_FieldPathValue, bool) { 2874 res, ok := fpvs.subPathValue.(DistributionBucketOptionsLinear_FieldPathValue) 2875 return res, ok 2876 } 2877 func (fpvs *DistributionBucketOptions_FieldSubPathValue) AsExponentialBucketsPathValue() (DistributionBucketOptionsExponential_FieldPathValue, bool) { 2878 res, ok := fpvs.subPathValue.(DistributionBucketOptionsExponential_FieldPathValue) 2879 return res, ok 2880 } 2881 func (fpvs *DistributionBucketOptions_FieldSubPathValue) AsExplicitBucketsPathValue() (DistributionBucketOptionsExplicit_FieldPathValue, bool) { 2882 res, ok := fpvs.subPathValue.(DistributionBucketOptionsExplicit_FieldPathValue) 2883 return res, ok 2884 } 2885 func (fpvs *DistributionBucketOptions_FieldSubPathValue) AsDynamicBucketsPathValue() (DistributionBucketOptionsDynamic_FieldPathValue, bool) { 2886 res, ok := fpvs.subPathValue.(DistributionBucketOptionsDynamic_FieldPathValue) 2887 return res, ok 2888 } 2889 2890 func (fpvs *DistributionBucketOptions_FieldSubPathValue) SetTo(target **Distribution_BucketOptions) { 2891 if *target == nil { 2892 *target = new(Distribution_BucketOptions) 2893 } 2894 switch fpvs.Selector() { 2895 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2896 if _, ok := (*target).Options.(*Distribution_BucketOptions_LinearBuckets); !ok { 2897 (*target).Options = &Distribution_BucketOptions_LinearBuckets{} 2898 } 2899 fpvs.subPathValue.(DistributionBucketOptionsLinear_FieldPathValue).SetTo(&(*target).Options.(*Distribution_BucketOptions_LinearBuckets).LinearBuckets) 2900 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2901 if _, ok := (*target).Options.(*Distribution_BucketOptions_ExponentialBuckets); !ok { 2902 (*target).Options = &Distribution_BucketOptions_ExponentialBuckets{} 2903 } 2904 fpvs.subPathValue.(DistributionBucketOptionsExponential_FieldPathValue).SetTo(&(*target).Options.(*Distribution_BucketOptions_ExponentialBuckets).ExponentialBuckets) 2905 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2906 if _, ok := (*target).Options.(*Distribution_BucketOptions_ExplicitBuckets); !ok { 2907 (*target).Options = &Distribution_BucketOptions_ExplicitBuckets{} 2908 } 2909 fpvs.subPathValue.(DistributionBucketOptionsExplicit_FieldPathValue).SetTo(&(*target).Options.(*Distribution_BucketOptions_ExplicitBuckets).ExplicitBuckets) 2910 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2911 if _, ok := (*target).Options.(*Distribution_BucketOptions_DynamicBuckets); !ok { 2912 (*target).Options = &Distribution_BucketOptions_DynamicBuckets{} 2913 } 2914 fpvs.subPathValue.(DistributionBucketOptionsDynamic_FieldPathValue).SetTo(&(*target).Options.(*Distribution_BucketOptions_DynamicBuckets).DynamicBuckets) 2915 default: 2916 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fpvs.Selector())) 2917 } 2918 } 2919 2920 func (fpvs *DistributionBucketOptions_FieldSubPathValue) SetToRaw(target proto.Message) { 2921 typedObject := target.(*Distribution_BucketOptions) 2922 fpvs.SetTo(&typedObject) 2923 } 2924 2925 func (fpvs *DistributionBucketOptions_FieldSubPathValue) GetRawValue() interface{} { 2926 return fpvs.subPathValue.GetRawValue() 2927 } 2928 2929 func (fpvs *DistributionBucketOptions_FieldSubPathValue) CompareWith(source *Distribution_BucketOptions) (int, bool) { 2930 switch fpvs.Selector() { 2931 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 2932 return fpvs.subPathValue.(DistributionBucketOptionsLinear_FieldPathValue).CompareWith(source.GetLinearBuckets()) 2933 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 2934 return fpvs.subPathValue.(DistributionBucketOptionsExponential_FieldPathValue).CompareWith(source.GetExponentialBuckets()) 2935 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 2936 return fpvs.subPathValue.(DistributionBucketOptionsExplicit_FieldPathValue).CompareWith(source.GetExplicitBuckets()) 2937 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 2938 return fpvs.subPathValue.(DistributionBucketOptionsDynamic_FieldPathValue).CompareWith(source.GetDynamicBuckets()) 2939 default: 2940 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fpvs.Selector())) 2941 } 2942 } 2943 2944 func (fpvs *DistributionBucketOptions_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2945 return fpvs.CompareWith(source.(*Distribution_BucketOptions)) 2946 } 2947 2948 // DistributionBucketOptions_FieldPathArrayItemValue allows storing single item in Path-specific values for BucketOptions according to their type 2949 // Present only for array (repeated) types. 2950 type DistributionBucketOptions_FieldPathArrayItemValue interface { 2951 gotenobject.FieldPathArrayItemValue 2952 DistributionBucketOptions_FieldPath 2953 ContainsValue(*Distribution_BucketOptions) bool 2954 } 2955 2956 // ParseDistributionBucketOptions_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 2957 func ParseDistributionBucketOptions_FieldPathArrayItemValue(pathStr, valueStr string) (DistributionBucketOptions_FieldPathArrayItemValue, error) { 2958 fp, err := ParseDistributionBucketOptions_FieldPath(pathStr) 2959 if err != nil { 2960 return nil, err 2961 } 2962 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 2963 if err != nil { 2964 return nil, status.Errorf(codes.InvalidArgument, "error parsing BucketOptions field path array item value from %s: %v", valueStr, err) 2965 } 2966 return fpaiv.(DistributionBucketOptions_FieldPathArrayItemValue), nil 2967 } 2968 2969 func MustParseDistributionBucketOptions_FieldPathArrayItemValue(pathStr, valueStr string) DistributionBucketOptions_FieldPathArrayItemValue { 2970 fpaiv, err := ParseDistributionBucketOptions_FieldPathArrayItemValue(pathStr, valueStr) 2971 if err != nil { 2972 panic(err) 2973 } 2974 return fpaiv 2975 } 2976 2977 type DistributionBucketOptions_FieldTerminalPathArrayItemValue struct { 2978 DistributionBucketOptions_FieldTerminalPath 2979 value interface{} 2980 } 2981 2982 var _ DistributionBucketOptions_FieldPathArrayItemValue = (*DistributionBucketOptions_FieldTerminalPathArrayItemValue)(nil) 2983 2984 // GetRawValue returns stored element value for array in object Distribution_BucketOptions as interface{} 2985 func (fpaiv *DistributionBucketOptions_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 2986 return fpaiv.value 2987 } 2988 2989 func (fpaiv *DistributionBucketOptions_FieldTerminalPathArrayItemValue) GetSingle(source *Distribution_BucketOptions) (interface{}, bool) { 2990 return nil, false 2991 } 2992 2993 func (fpaiv *DistributionBucketOptions_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 2994 return fpaiv.GetSingle(source.(*Distribution_BucketOptions)) 2995 } 2996 2997 // Contains returns a boolean indicating if value that is being held is present in given 'BucketOptions' 2998 func (fpaiv *DistributionBucketOptions_FieldTerminalPathArrayItemValue) ContainsValue(source *Distribution_BucketOptions) bool { 2999 slice := fpaiv.DistributionBucketOptions_FieldTerminalPath.Get(source) 3000 for _, v := range slice { 3001 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 3002 if proto.Equal(asProtoMsg, v.(proto.Message)) { 3003 return true 3004 } 3005 } else if reflect.DeepEqual(v, fpaiv.value) { 3006 return true 3007 } 3008 } 3009 return false 3010 } 3011 3012 type DistributionBucketOptions_FieldSubPathArrayItemValue struct { 3013 DistributionBucketOptions_FieldPath 3014 subPathItemValue gotenobject.FieldPathArrayItemValue 3015 } 3016 3017 // GetRawValue returns stored array item value 3018 func (fpaivs *DistributionBucketOptions_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 3019 return fpaivs.subPathItemValue.GetRawItemValue() 3020 } 3021 func (fpaivs *DistributionBucketOptions_FieldSubPathArrayItemValue) AsLinearBucketsPathItemValue() (DistributionBucketOptionsLinear_FieldPathArrayItemValue, bool) { 3022 res, ok := fpaivs.subPathItemValue.(DistributionBucketOptionsLinear_FieldPathArrayItemValue) 3023 return res, ok 3024 } 3025 func (fpaivs *DistributionBucketOptions_FieldSubPathArrayItemValue) AsExponentialBucketsPathItemValue() (DistributionBucketOptionsExponential_FieldPathArrayItemValue, bool) { 3026 res, ok := fpaivs.subPathItemValue.(DistributionBucketOptionsExponential_FieldPathArrayItemValue) 3027 return res, ok 3028 } 3029 func (fpaivs *DistributionBucketOptions_FieldSubPathArrayItemValue) AsExplicitBucketsPathItemValue() (DistributionBucketOptionsExplicit_FieldPathArrayItemValue, bool) { 3030 res, ok := fpaivs.subPathItemValue.(DistributionBucketOptionsExplicit_FieldPathArrayItemValue) 3031 return res, ok 3032 } 3033 func (fpaivs *DistributionBucketOptions_FieldSubPathArrayItemValue) AsDynamicBucketsPathItemValue() (DistributionBucketOptionsDynamic_FieldPathArrayItemValue, bool) { 3034 res, ok := fpaivs.subPathItemValue.(DistributionBucketOptionsDynamic_FieldPathArrayItemValue) 3035 return res, ok 3036 } 3037 3038 // Contains returns a boolean indicating if value that is being held is present in given 'BucketOptions' 3039 func (fpaivs *DistributionBucketOptions_FieldSubPathArrayItemValue) ContainsValue(source *Distribution_BucketOptions) bool { 3040 switch fpaivs.Selector() { 3041 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 3042 return fpaivs.subPathItemValue.(DistributionBucketOptionsLinear_FieldPathArrayItemValue).ContainsValue(source.GetLinearBuckets()) 3043 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 3044 return fpaivs.subPathItemValue.(DistributionBucketOptionsExponential_FieldPathArrayItemValue).ContainsValue(source.GetExponentialBuckets()) 3045 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 3046 return fpaivs.subPathItemValue.(DistributionBucketOptionsExplicit_FieldPathArrayItemValue).ContainsValue(source.GetExplicitBuckets()) 3047 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 3048 return fpaivs.subPathItemValue.(DistributionBucketOptionsDynamic_FieldPathArrayItemValue).ContainsValue(source.GetDynamicBuckets()) 3049 default: 3050 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions: %d", fpaivs.Selector())) 3051 } 3052 } 3053 3054 // DistributionBucketOptions_FieldPathArrayOfValues allows storing slice of values for BucketOptions fields according to their type 3055 type DistributionBucketOptions_FieldPathArrayOfValues interface { 3056 gotenobject.FieldPathArrayOfValues 3057 DistributionBucketOptions_FieldPath 3058 } 3059 3060 func ParseDistributionBucketOptions_FieldPathArrayOfValues(pathStr, valuesStr string) (DistributionBucketOptions_FieldPathArrayOfValues, error) { 3061 fp, err := ParseDistributionBucketOptions_FieldPath(pathStr) 3062 if err != nil { 3063 return nil, err 3064 } 3065 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 3066 if err != nil { 3067 return nil, status.Errorf(codes.InvalidArgument, "error parsing BucketOptions field path array of values from %s: %v", valuesStr, err) 3068 } 3069 return fpaov.(DistributionBucketOptions_FieldPathArrayOfValues), nil 3070 } 3071 3072 func MustParseDistributionBucketOptions_FieldPathArrayOfValues(pathStr, valuesStr string) DistributionBucketOptions_FieldPathArrayOfValues { 3073 fpaov, err := ParseDistributionBucketOptions_FieldPathArrayOfValues(pathStr, valuesStr) 3074 if err != nil { 3075 panic(err) 3076 } 3077 return fpaov 3078 } 3079 3080 type DistributionBucketOptions_FieldTerminalPathArrayOfValues struct { 3081 DistributionBucketOptions_FieldTerminalPath 3082 values interface{} 3083 } 3084 3085 var _ DistributionBucketOptions_FieldPathArrayOfValues = (*DistributionBucketOptions_FieldTerminalPathArrayOfValues)(nil) 3086 3087 func (fpaov *DistributionBucketOptions_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 3088 switch fpaov.selector { 3089 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 3090 for _, v := range fpaov.values.([]*Distribution_BucketOptions_Linear) { 3091 values = append(values, v) 3092 } 3093 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 3094 for _, v := range fpaov.values.([]*Distribution_BucketOptions_Exponential) { 3095 values = append(values, v) 3096 } 3097 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 3098 for _, v := range fpaov.values.([]*Distribution_BucketOptions_Explicit) { 3099 values = append(values, v) 3100 } 3101 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 3102 for _, v := range fpaov.values.([]*Distribution_BucketOptions_Dynamic) { 3103 values = append(values, v) 3104 } 3105 } 3106 return 3107 } 3108 func (fpaov *DistributionBucketOptions_FieldTerminalPathArrayOfValues) AsLinearBucketsArrayOfValues() ([]*Distribution_BucketOptions_Linear, bool) { 3109 res, ok := fpaov.values.([]*Distribution_BucketOptions_Linear) 3110 return res, ok 3111 } 3112 func (fpaov *DistributionBucketOptions_FieldTerminalPathArrayOfValues) AsExponentialBucketsArrayOfValues() ([]*Distribution_BucketOptions_Exponential, bool) { 3113 res, ok := fpaov.values.([]*Distribution_BucketOptions_Exponential) 3114 return res, ok 3115 } 3116 func (fpaov *DistributionBucketOptions_FieldTerminalPathArrayOfValues) AsExplicitBucketsArrayOfValues() ([]*Distribution_BucketOptions_Explicit, bool) { 3117 res, ok := fpaov.values.([]*Distribution_BucketOptions_Explicit) 3118 return res, ok 3119 } 3120 func (fpaov *DistributionBucketOptions_FieldTerminalPathArrayOfValues) AsDynamicBucketsArrayOfValues() ([]*Distribution_BucketOptions_Dynamic, bool) { 3121 res, ok := fpaov.values.([]*Distribution_BucketOptions_Dynamic) 3122 return res, ok 3123 } 3124 3125 type DistributionBucketOptions_FieldSubPathArrayOfValues struct { 3126 DistributionBucketOptions_FieldPath 3127 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 3128 } 3129 3130 var _ DistributionBucketOptions_FieldPathArrayOfValues = (*DistributionBucketOptions_FieldSubPathArrayOfValues)(nil) 3131 3132 func (fpsaov *DistributionBucketOptions_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 3133 return fpsaov.subPathArrayOfValues.GetRawValues() 3134 } 3135 func (fpsaov *DistributionBucketOptions_FieldSubPathArrayOfValues) AsLinearBucketsPathArrayOfValues() (DistributionBucketOptionsLinear_FieldPathArrayOfValues, bool) { 3136 res, ok := fpsaov.subPathArrayOfValues.(DistributionBucketOptionsLinear_FieldPathArrayOfValues) 3137 return res, ok 3138 } 3139 func (fpsaov *DistributionBucketOptions_FieldSubPathArrayOfValues) AsExponentialBucketsPathArrayOfValues() (DistributionBucketOptionsExponential_FieldPathArrayOfValues, bool) { 3140 res, ok := fpsaov.subPathArrayOfValues.(DistributionBucketOptionsExponential_FieldPathArrayOfValues) 3141 return res, ok 3142 } 3143 func (fpsaov *DistributionBucketOptions_FieldSubPathArrayOfValues) AsExplicitBucketsPathArrayOfValues() (DistributionBucketOptionsExplicit_FieldPathArrayOfValues, bool) { 3144 res, ok := fpsaov.subPathArrayOfValues.(DistributionBucketOptionsExplicit_FieldPathArrayOfValues) 3145 return res, ok 3146 } 3147 func (fpsaov *DistributionBucketOptions_FieldSubPathArrayOfValues) AsDynamicBucketsPathArrayOfValues() (DistributionBucketOptionsDynamic_FieldPathArrayOfValues, bool) { 3148 res, ok := fpsaov.subPathArrayOfValues.(DistributionBucketOptionsDynamic_FieldPathArrayOfValues) 3149 return res, ok 3150 } 3151 3152 // FieldPath provides implementation to handle 3153 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 3154 type DistributionBucketOptionsLinear_FieldPath interface { 3155 gotenobject.FieldPath 3156 Selector() DistributionBucketOptionsLinear_FieldPathSelector 3157 Get(source *Distribution_BucketOptions_Linear) []interface{} 3158 GetSingle(source *Distribution_BucketOptions_Linear) (interface{}, bool) 3159 ClearValue(item *Distribution_BucketOptions_Linear) 3160 3161 // Those methods build corresponding DistributionBucketOptionsLinear_FieldPathValue 3162 // (or array of values) and holds passed value. Panics if injected type is incorrect. 3163 WithIValue(value interface{}) DistributionBucketOptionsLinear_FieldPathValue 3164 WithIArrayOfValues(values interface{}) DistributionBucketOptionsLinear_FieldPathArrayOfValues 3165 WithIArrayItemValue(value interface{}) DistributionBucketOptionsLinear_FieldPathArrayItemValue 3166 } 3167 3168 type DistributionBucketOptionsLinear_FieldPathSelector int32 3169 3170 const ( 3171 DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets DistributionBucketOptionsLinear_FieldPathSelector = 0 3172 DistributionBucketOptionsLinear_FieldPathSelectorWidth DistributionBucketOptionsLinear_FieldPathSelector = 1 3173 DistributionBucketOptionsLinear_FieldPathSelectorOffset DistributionBucketOptionsLinear_FieldPathSelector = 2 3174 ) 3175 3176 func (s DistributionBucketOptionsLinear_FieldPathSelector) String() string { 3177 switch s { 3178 case DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets: 3179 return "num_finite_buckets" 3180 case DistributionBucketOptionsLinear_FieldPathSelectorWidth: 3181 return "width" 3182 case DistributionBucketOptionsLinear_FieldPathSelectorOffset: 3183 return "offset" 3184 default: 3185 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Linear: %d", s)) 3186 } 3187 } 3188 3189 func BuildDistributionBucketOptionsLinear_FieldPath(fp gotenobject.RawFieldPath) (DistributionBucketOptionsLinear_FieldPath, error) { 3190 if len(fp) == 0 { 3191 return nil, status.Error(codes.InvalidArgument, "empty field path for object Distribution_BucketOptions_Linear") 3192 } 3193 if len(fp) == 1 { 3194 switch fp[0] { 3195 case "num_finite_buckets", "numFiniteBuckets", "num-finite-buckets": 3196 return &DistributionBucketOptionsLinear_FieldTerminalPath{selector: DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets}, nil 3197 case "width": 3198 return &DistributionBucketOptionsLinear_FieldTerminalPath{selector: DistributionBucketOptionsLinear_FieldPathSelectorWidth}, nil 3199 case "offset": 3200 return &DistributionBucketOptionsLinear_FieldTerminalPath{selector: DistributionBucketOptionsLinear_FieldPathSelectorOffset}, nil 3201 } 3202 } 3203 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Distribution_BucketOptions_Linear", fp) 3204 } 3205 3206 func ParseDistributionBucketOptionsLinear_FieldPath(rawField string) (DistributionBucketOptionsLinear_FieldPath, error) { 3207 fp, err := gotenobject.ParseRawFieldPath(rawField) 3208 if err != nil { 3209 return nil, err 3210 } 3211 return BuildDistributionBucketOptionsLinear_FieldPath(fp) 3212 } 3213 3214 func MustParseDistributionBucketOptionsLinear_FieldPath(rawField string) DistributionBucketOptionsLinear_FieldPath { 3215 fp, err := ParseDistributionBucketOptionsLinear_FieldPath(rawField) 3216 if err != nil { 3217 panic(err) 3218 } 3219 return fp 3220 } 3221 3222 type DistributionBucketOptionsLinear_FieldTerminalPath struct { 3223 selector DistributionBucketOptionsLinear_FieldPathSelector 3224 } 3225 3226 var _ DistributionBucketOptionsLinear_FieldPath = (*DistributionBucketOptionsLinear_FieldTerminalPath)(nil) 3227 3228 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) Selector() DistributionBucketOptionsLinear_FieldPathSelector { 3229 return fp.selector 3230 } 3231 3232 // String returns path representation in proto convention 3233 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) String() string { 3234 return fp.selector.String() 3235 } 3236 3237 // JSONString returns path representation is JSON convention 3238 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) JSONString() string { 3239 return strcase.ToLowerCamel(fp.String()) 3240 } 3241 3242 // Get returns all values pointed by specific field from source Distribution_BucketOptions_Linear 3243 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) Get(source *Distribution_BucketOptions_Linear) (values []interface{}) { 3244 if source != nil { 3245 switch fp.selector { 3246 case DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets: 3247 values = append(values, source.NumFiniteBuckets) 3248 case DistributionBucketOptionsLinear_FieldPathSelectorWidth: 3249 values = append(values, source.Width) 3250 case DistributionBucketOptionsLinear_FieldPathSelectorOffset: 3251 values = append(values, source.Offset) 3252 default: 3253 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Linear: %d", fp.selector)) 3254 } 3255 } 3256 return 3257 } 3258 3259 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 3260 return fp.Get(source.(*Distribution_BucketOptions_Linear)) 3261 } 3262 3263 // GetSingle returns value pointed by specific field of from source Distribution_BucketOptions_Linear 3264 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) GetSingle(source *Distribution_BucketOptions_Linear) (interface{}, bool) { 3265 switch fp.selector { 3266 case DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets: 3267 return source.GetNumFiniteBuckets(), source != nil 3268 case DistributionBucketOptionsLinear_FieldPathSelectorWidth: 3269 return source.GetWidth(), source != nil 3270 case DistributionBucketOptionsLinear_FieldPathSelectorOffset: 3271 return source.GetOffset(), source != nil 3272 default: 3273 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Linear: %d", fp.selector)) 3274 } 3275 } 3276 3277 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 3278 return fp.GetSingle(source.(*Distribution_BucketOptions_Linear)) 3279 } 3280 3281 // GetDefault returns a default value of the field type 3282 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) GetDefault() interface{} { 3283 switch fp.selector { 3284 case DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets: 3285 return int32(0) 3286 case DistributionBucketOptionsLinear_FieldPathSelectorWidth: 3287 return float64(0) 3288 case DistributionBucketOptionsLinear_FieldPathSelectorOffset: 3289 return float64(0) 3290 default: 3291 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Linear: %d", fp.selector)) 3292 } 3293 } 3294 3295 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) ClearValue(item *Distribution_BucketOptions_Linear) { 3296 if item != nil { 3297 switch fp.selector { 3298 case DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets: 3299 item.NumFiniteBuckets = int32(0) 3300 case DistributionBucketOptionsLinear_FieldPathSelectorWidth: 3301 item.Width = float64(0) 3302 case DistributionBucketOptionsLinear_FieldPathSelectorOffset: 3303 item.Offset = float64(0) 3304 default: 3305 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Linear: %d", fp.selector)) 3306 } 3307 } 3308 } 3309 3310 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) ClearValueRaw(item proto.Message) { 3311 fp.ClearValue(item.(*Distribution_BucketOptions_Linear)) 3312 } 3313 3314 // IsLeaf - whether field path is holds simple value 3315 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) IsLeaf() bool { 3316 return fp.selector == DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets || 3317 fp.selector == DistributionBucketOptionsLinear_FieldPathSelectorWidth || 3318 fp.selector == DistributionBucketOptionsLinear_FieldPathSelectorOffset 3319 } 3320 3321 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 3322 return []gotenobject.FieldPath{fp} 3323 } 3324 3325 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) WithIValue(value interface{}) DistributionBucketOptionsLinear_FieldPathValue { 3326 switch fp.selector { 3327 case DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets: 3328 return &DistributionBucketOptionsLinear_FieldTerminalPathValue{DistributionBucketOptionsLinear_FieldTerminalPath: *fp, value: value.(int32)} 3329 case DistributionBucketOptionsLinear_FieldPathSelectorWidth: 3330 return &DistributionBucketOptionsLinear_FieldTerminalPathValue{DistributionBucketOptionsLinear_FieldTerminalPath: *fp, value: value.(float64)} 3331 case DistributionBucketOptionsLinear_FieldPathSelectorOffset: 3332 return &DistributionBucketOptionsLinear_FieldTerminalPathValue{DistributionBucketOptionsLinear_FieldTerminalPath: *fp, value: value.(float64)} 3333 default: 3334 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Linear: %d", fp.selector)) 3335 } 3336 } 3337 3338 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 3339 return fp.WithIValue(value) 3340 } 3341 3342 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) WithIArrayOfValues(values interface{}) DistributionBucketOptionsLinear_FieldPathArrayOfValues { 3343 fpaov := &DistributionBucketOptionsLinear_FieldTerminalPathArrayOfValues{DistributionBucketOptionsLinear_FieldTerminalPath: *fp} 3344 switch fp.selector { 3345 case DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets: 3346 return &DistributionBucketOptionsLinear_FieldTerminalPathArrayOfValues{DistributionBucketOptionsLinear_FieldTerminalPath: *fp, values: values.([]int32)} 3347 case DistributionBucketOptionsLinear_FieldPathSelectorWidth: 3348 return &DistributionBucketOptionsLinear_FieldTerminalPathArrayOfValues{DistributionBucketOptionsLinear_FieldTerminalPath: *fp, values: values.([]float64)} 3349 case DistributionBucketOptionsLinear_FieldPathSelectorOffset: 3350 return &DistributionBucketOptionsLinear_FieldTerminalPathArrayOfValues{DistributionBucketOptionsLinear_FieldTerminalPath: *fp, values: values.([]float64)} 3351 default: 3352 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Linear: %d", fp.selector)) 3353 } 3354 return fpaov 3355 } 3356 3357 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 3358 return fp.WithIArrayOfValues(values) 3359 } 3360 3361 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) WithIArrayItemValue(value interface{}) DistributionBucketOptionsLinear_FieldPathArrayItemValue { 3362 switch fp.selector { 3363 default: 3364 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Linear: %d", fp.selector)) 3365 } 3366 } 3367 3368 func (fp *DistributionBucketOptionsLinear_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 3369 return fp.WithIArrayItemValue(value) 3370 } 3371 3372 // DistributionBucketOptionsLinear_FieldPathValue allows storing values for Linear fields according to their type 3373 type DistributionBucketOptionsLinear_FieldPathValue interface { 3374 DistributionBucketOptionsLinear_FieldPath 3375 gotenobject.FieldPathValue 3376 SetTo(target **Distribution_BucketOptions_Linear) 3377 CompareWith(*Distribution_BucketOptions_Linear) (cmp int, comparable bool) 3378 } 3379 3380 func ParseDistributionBucketOptionsLinear_FieldPathValue(pathStr, valueStr string) (DistributionBucketOptionsLinear_FieldPathValue, error) { 3381 fp, err := ParseDistributionBucketOptionsLinear_FieldPath(pathStr) 3382 if err != nil { 3383 return nil, err 3384 } 3385 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 3386 if err != nil { 3387 return nil, status.Errorf(codes.InvalidArgument, "error parsing Linear field path value from %s: %v", valueStr, err) 3388 } 3389 return fpv.(DistributionBucketOptionsLinear_FieldPathValue), nil 3390 } 3391 3392 func MustParseDistributionBucketOptionsLinear_FieldPathValue(pathStr, valueStr string) DistributionBucketOptionsLinear_FieldPathValue { 3393 fpv, err := ParseDistributionBucketOptionsLinear_FieldPathValue(pathStr, valueStr) 3394 if err != nil { 3395 panic(err) 3396 } 3397 return fpv 3398 } 3399 3400 type DistributionBucketOptionsLinear_FieldTerminalPathValue struct { 3401 DistributionBucketOptionsLinear_FieldTerminalPath 3402 value interface{} 3403 } 3404 3405 var _ DistributionBucketOptionsLinear_FieldPathValue = (*DistributionBucketOptionsLinear_FieldTerminalPathValue)(nil) 3406 3407 // GetRawValue returns raw value stored under selected path for 'Linear' as interface{} 3408 func (fpv *DistributionBucketOptionsLinear_FieldTerminalPathValue) GetRawValue() interface{} { 3409 return fpv.value 3410 } 3411 func (fpv *DistributionBucketOptionsLinear_FieldTerminalPathValue) AsNumFiniteBucketsValue() (int32, bool) { 3412 res, ok := fpv.value.(int32) 3413 return res, ok 3414 } 3415 func (fpv *DistributionBucketOptionsLinear_FieldTerminalPathValue) AsWidthValue() (float64, bool) { 3416 res, ok := fpv.value.(float64) 3417 return res, ok 3418 } 3419 func (fpv *DistributionBucketOptionsLinear_FieldTerminalPathValue) AsOffsetValue() (float64, bool) { 3420 res, ok := fpv.value.(float64) 3421 return res, ok 3422 } 3423 3424 // SetTo stores value for selected field for object Linear 3425 func (fpv *DistributionBucketOptionsLinear_FieldTerminalPathValue) SetTo(target **Distribution_BucketOptions_Linear) { 3426 if *target == nil { 3427 *target = new(Distribution_BucketOptions_Linear) 3428 } 3429 switch fpv.selector { 3430 case DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets: 3431 (*target).NumFiniteBuckets = fpv.value.(int32) 3432 case DistributionBucketOptionsLinear_FieldPathSelectorWidth: 3433 (*target).Width = fpv.value.(float64) 3434 case DistributionBucketOptionsLinear_FieldPathSelectorOffset: 3435 (*target).Offset = fpv.value.(float64) 3436 default: 3437 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Linear: %d", fpv.selector)) 3438 } 3439 } 3440 3441 func (fpv *DistributionBucketOptionsLinear_FieldTerminalPathValue) SetToRaw(target proto.Message) { 3442 typedObject := target.(*Distribution_BucketOptions_Linear) 3443 fpv.SetTo(&typedObject) 3444 } 3445 3446 // CompareWith compares value in the 'DistributionBucketOptionsLinear_FieldTerminalPathValue' with the value under path in 'Distribution_BucketOptions_Linear'. 3447 func (fpv *DistributionBucketOptionsLinear_FieldTerminalPathValue) CompareWith(source *Distribution_BucketOptions_Linear) (int, bool) { 3448 switch fpv.selector { 3449 case DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets: 3450 leftValue := fpv.value.(int32) 3451 rightValue := source.GetNumFiniteBuckets() 3452 if (leftValue) == (rightValue) { 3453 return 0, true 3454 } else if (leftValue) < (rightValue) { 3455 return -1, true 3456 } else { 3457 return 1, true 3458 } 3459 case DistributionBucketOptionsLinear_FieldPathSelectorWidth: 3460 leftValue := fpv.value.(float64) 3461 rightValue := source.GetWidth() 3462 if (leftValue) == (rightValue) { 3463 return 0, true 3464 } else if (leftValue) < (rightValue) { 3465 return -1, true 3466 } else { 3467 return 1, true 3468 } 3469 case DistributionBucketOptionsLinear_FieldPathSelectorOffset: 3470 leftValue := fpv.value.(float64) 3471 rightValue := source.GetOffset() 3472 if (leftValue) == (rightValue) { 3473 return 0, true 3474 } else if (leftValue) < (rightValue) { 3475 return -1, true 3476 } else { 3477 return 1, true 3478 } 3479 default: 3480 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Linear: %d", fpv.selector)) 3481 } 3482 } 3483 3484 func (fpv *DistributionBucketOptionsLinear_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 3485 return fpv.CompareWith(source.(*Distribution_BucketOptions_Linear)) 3486 } 3487 3488 // DistributionBucketOptionsLinear_FieldPathArrayItemValue allows storing single item in Path-specific values for Linear according to their type 3489 // Present only for array (repeated) types. 3490 type DistributionBucketOptionsLinear_FieldPathArrayItemValue interface { 3491 gotenobject.FieldPathArrayItemValue 3492 DistributionBucketOptionsLinear_FieldPath 3493 ContainsValue(*Distribution_BucketOptions_Linear) bool 3494 } 3495 3496 // ParseDistributionBucketOptionsLinear_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 3497 func ParseDistributionBucketOptionsLinear_FieldPathArrayItemValue(pathStr, valueStr string) (DistributionBucketOptionsLinear_FieldPathArrayItemValue, error) { 3498 fp, err := ParseDistributionBucketOptionsLinear_FieldPath(pathStr) 3499 if err != nil { 3500 return nil, err 3501 } 3502 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 3503 if err != nil { 3504 return nil, status.Errorf(codes.InvalidArgument, "error parsing Linear field path array item value from %s: %v", valueStr, err) 3505 } 3506 return fpaiv.(DistributionBucketOptionsLinear_FieldPathArrayItemValue), nil 3507 } 3508 3509 func MustParseDistributionBucketOptionsLinear_FieldPathArrayItemValue(pathStr, valueStr string) DistributionBucketOptionsLinear_FieldPathArrayItemValue { 3510 fpaiv, err := ParseDistributionBucketOptionsLinear_FieldPathArrayItemValue(pathStr, valueStr) 3511 if err != nil { 3512 panic(err) 3513 } 3514 return fpaiv 3515 } 3516 3517 type DistributionBucketOptionsLinear_FieldTerminalPathArrayItemValue struct { 3518 DistributionBucketOptionsLinear_FieldTerminalPath 3519 value interface{} 3520 } 3521 3522 var _ DistributionBucketOptionsLinear_FieldPathArrayItemValue = (*DistributionBucketOptionsLinear_FieldTerminalPathArrayItemValue)(nil) 3523 3524 // GetRawValue returns stored element value for array in object Distribution_BucketOptions_Linear as interface{} 3525 func (fpaiv *DistributionBucketOptionsLinear_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 3526 return fpaiv.value 3527 } 3528 3529 func (fpaiv *DistributionBucketOptionsLinear_FieldTerminalPathArrayItemValue) GetSingle(source *Distribution_BucketOptions_Linear) (interface{}, bool) { 3530 return nil, false 3531 } 3532 3533 func (fpaiv *DistributionBucketOptionsLinear_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 3534 return fpaiv.GetSingle(source.(*Distribution_BucketOptions_Linear)) 3535 } 3536 3537 // Contains returns a boolean indicating if value that is being held is present in given 'Linear' 3538 func (fpaiv *DistributionBucketOptionsLinear_FieldTerminalPathArrayItemValue) ContainsValue(source *Distribution_BucketOptions_Linear) bool { 3539 slice := fpaiv.DistributionBucketOptionsLinear_FieldTerminalPath.Get(source) 3540 for _, v := range slice { 3541 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 3542 if proto.Equal(asProtoMsg, v.(proto.Message)) { 3543 return true 3544 } 3545 } else if reflect.DeepEqual(v, fpaiv.value) { 3546 return true 3547 } 3548 } 3549 return false 3550 } 3551 3552 // DistributionBucketOptionsLinear_FieldPathArrayOfValues allows storing slice of values for Linear fields according to their type 3553 type DistributionBucketOptionsLinear_FieldPathArrayOfValues interface { 3554 gotenobject.FieldPathArrayOfValues 3555 DistributionBucketOptionsLinear_FieldPath 3556 } 3557 3558 func ParseDistributionBucketOptionsLinear_FieldPathArrayOfValues(pathStr, valuesStr string) (DistributionBucketOptionsLinear_FieldPathArrayOfValues, error) { 3559 fp, err := ParseDistributionBucketOptionsLinear_FieldPath(pathStr) 3560 if err != nil { 3561 return nil, err 3562 } 3563 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 3564 if err != nil { 3565 return nil, status.Errorf(codes.InvalidArgument, "error parsing Linear field path array of values from %s: %v", valuesStr, err) 3566 } 3567 return fpaov.(DistributionBucketOptionsLinear_FieldPathArrayOfValues), nil 3568 } 3569 3570 func MustParseDistributionBucketOptionsLinear_FieldPathArrayOfValues(pathStr, valuesStr string) DistributionBucketOptionsLinear_FieldPathArrayOfValues { 3571 fpaov, err := ParseDistributionBucketOptionsLinear_FieldPathArrayOfValues(pathStr, valuesStr) 3572 if err != nil { 3573 panic(err) 3574 } 3575 return fpaov 3576 } 3577 3578 type DistributionBucketOptionsLinear_FieldTerminalPathArrayOfValues struct { 3579 DistributionBucketOptionsLinear_FieldTerminalPath 3580 values interface{} 3581 } 3582 3583 var _ DistributionBucketOptionsLinear_FieldPathArrayOfValues = (*DistributionBucketOptionsLinear_FieldTerminalPathArrayOfValues)(nil) 3584 3585 func (fpaov *DistributionBucketOptionsLinear_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 3586 switch fpaov.selector { 3587 case DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets: 3588 for _, v := range fpaov.values.([]int32) { 3589 values = append(values, v) 3590 } 3591 case DistributionBucketOptionsLinear_FieldPathSelectorWidth: 3592 for _, v := range fpaov.values.([]float64) { 3593 values = append(values, v) 3594 } 3595 case DistributionBucketOptionsLinear_FieldPathSelectorOffset: 3596 for _, v := range fpaov.values.([]float64) { 3597 values = append(values, v) 3598 } 3599 } 3600 return 3601 } 3602 func (fpaov *DistributionBucketOptionsLinear_FieldTerminalPathArrayOfValues) AsNumFiniteBucketsArrayOfValues() ([]int32, bool) { 3603 res, ok := fpaov.values.([]int32) 3604 return res, ok 3605 } 3606 func (fpaov *DistributionBucketOptionsLinear_FieldTerminalPathArrayOfValues) AsWidthArrayOfValues() ([]float64, bool) { 3607 res, ok := fpaov.values.([]float64) 3608 return res, ok 3609 } 3610 func (fpaov *DistributionBucketOptionsLinear_FieldTerminalPathArrayOfValues) AsOffsetArrayOfValues() ([]float64, bool) { 3611 res, ok := fpaov.values.([]float64) 3612 return res, ok 3613 } 3614 3615 // FieldPath provides implementation to handle 3616 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 3617 type DistributionBucketOptionsExponential_FieldPath interface { 3618 gotenobject.FieldPath 3619 Selector() DistributionBucketOptionsExponential_FieldPathSelector 3620 Get(source *Distribution_BucketOptions_Exponential) []interface{} 3621 GetSingle(source *Distribution_BucketOptions_Exponential) (interface{}, bool) 3622 ClearValue(item *Distribution_BucketOptions_Exponential) 3623 3624 // Those methods build corresponding DistributionBucketOptionsExponential_FieldPathValue 3625 // (or array of values) and holds passed value. Panics if injected type is incorrect. 3626 WithIValue(value interface{}) DistributionBucketOptionsExponential_FieldPathValue 3627 WithIArrayOfValues(values interface{}) DistributionBucketOptionsExponential_FieldPathArrayOfValues 3628 WithIArrayItemValue(value interface{}) DistributionBucketOptionsExponential_FieldPathArrayItemValue 3629 } 3630 3631 type DistributionBucketOptionsExponential_FieldPathSelector int32 3632 3633 const ( 3634 DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets DistributionBucketOptionsExponential_FieldPathSelector = 0 3635 DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor DistributionBucketOptionsExponential_FieldPathSelector = 1 3636 DistributionBucketOptionsExponential_FieldPathSelectorScale DistributionBucketOptionsExponential_FieldPathSelector = 2 3637 ) 3638 3639 func (s DistributionBucketOptionsExponential_FieldPathSelector) String() string { 3640 switch s { 3641 case DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets: 3642 return "num_finite_buckets" 3643 case DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor: 3644 return "growth_factor" 3645 case DistributionBucketOptionsExponential_FieldPathSelectorScale: 3646 return "scale" 3647 default: 3648 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Exponential: %d", s)) 3649 } 3650 } 3651 3652 func BuildDistributionBucketOptionsExponential_FieldPath(fp gotenobject.RawFieldPath) (DistributionBucketOptionsExponential_FieldPath, error) { 3653 if len(fp) == 0 { 3654 return nil, status.Error(codes.InvalidArgument, "empty field path for object Distribution_BucketOptions_Exponential") 3655 } 3656 if len(fp) == 1 { 3657 switch fp[0] { 3658 case "num_finite_buckets", "numFiniteBuckets", "num-finite-buckets": 3659 return &DistributionBucketOptionsExponential_FieldTerminalPath{selector: DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets}, nil 3660 case "growth_factor", "growthFactor", "growth-factor": 3661 return &DistributionBucketOptionsExponential_FieldTerminalPath{selector: DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor}, nil 3662 case "scale": 3663 return &DistributionBucketOptionsExponential_FieldTerminalPath{selector: DistributionBucketOptionsExponential_FieldPathSelectorScale}, nil 3664 } 3665 } 3666 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Distribution_BucketOptions_Exponential", fp) 3667 } 3668 3669 func ParseDistributionBucketOptionsExponential_FieldPath(rawField string) (DistributionBucketOptionsExponential_FieldPath, error) { 3670 fp, err := gotenobject.ParseRawFieldPath(rawField) 3671 if err != nil { 3672 return nil, err 3673 } 3674 return BuildDistributionBucketOptionsExponential_FieldPath(fp) 3675 } 3676 3677 func MustParseDistributionBucketOptionsExponential_FieldPath(rawField string) DistributionBucketOptionsExponential_FieldPath { 3678 fp, err := ParseDistributionBucketOptionsExponential_FieldPath(rawField) 3679 if err != nil { 3680 panic(err) 3681 } 3682 return fp 3683 } 3684 3685 type DistributionBucketOptionsExponential_FieldTerminalPath struct { 3686 selector DistributionBucketOptionsExponential_FieldPathSelector 3687 } 3688 3689 var _ DistributionBucketOptionsExponential_FieldPath = (*DistributionBucketOptionsExponential_FieldTerminalPath)(nil) 3690 3691 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) Selector() DistributionBucketOptionsExponential_FieldPathSelector { 3692 return fp.selector 3693 } 3694 3695 // String returns path representation in proto convention 3696 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) String() string { 3697 return fp.selector.String() 3698 } 3699 3700 // JSONString returns path representation is JSON convention 3701 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) JSONString() string { 3702 return strcase.ToLowerCamel(fp.String()) 3703 } 3704 3705 // Get returns all values pointed by specific field from source Distribution_BucketOptions_Exponential 3706 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) Get(source *Distribution_BucketOptions_Exponential) (values []interface{}) { 3707 if source != nil { 3708 switch fp.selector { 3709 case DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets: 3710 values = append(values, source.NumFiniteBuckets) 3711 case DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor: 3712 values = append(values, source.GrowthFactor) 3713 case DistributionBucketOptionsExponential_FieldPathSelectorScale: 3714 values = append(values, source.Scale) 3715 default: 3716 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Exponential: %d", fp.selector)) 3717 } 3718 } 3719 return 3720 } 3721 3722 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 3723 return fp.Get(source.(*Distribution_BucketOptions_Exponential)) 3724 } 3725 3726 // GetSingle returns value pointed by specific field of from source Distribution_BucketOptions_Exponential 3727 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) GetSingle(source *Distribution_BucketOptions_Exponential) (interface{}, bool) { 3728 switch fp.selector { 3729 case DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets: 3730 return source.GetNumFiniteBuckets(), source != nil 3731 case DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor: 3732 return source.GetGrowthFactor(), source != nil 3733 case DistributionBucketOptionsExponential_FieldPathSelectorScale: 3734 return source.GetScale(), source != nil 3735 default: 3736 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Exponential: %d", fp.selector)) 3737 } 3738 } 3739 3740 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 3741 return fp.GetSingle(source.(*Distribution_BucketOptions_Exponential)) 3742 } 3743 3744 // GetDefault returns a default value of the field type 3745 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) GetDefault() interface{} { 3746 switch fp.selector { 3747 case DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets: 3748 return int32(0) 3749 case DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor: 3750 return float64(0) 3751 case DistributionBucketOptionsExponential_FieldPathSelectorScale: 3752 return float64(0) 3753 default: 3754 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Exponential: %d", fp.selector)) 3755 } 3756 } 3757 3758 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) ClearValue(item *Distribution_BucketOptions_Exponential) { 3759 if item != nil { 3760 switch fp.selector { 3761 case DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets: 3762 item.NumFiniteBuckets = int32(0) 3763 case DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor: 3764 item.GrowthFactor = float64(0) 3765 case DistributionBucketOptionsExponential_FieldPathSelectorScale: 3766 item.Scale = float64(0) 3767 default: 3768 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Exponential: %d", fp.selector)) 3769 } 3770 } 3771 } 3772 3773 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) ClearValueRaw(item proto.Message) { 3774 fp.ClearValue(item.(*Distribution_BucketOptions_Exponential)) 3775 } 3776 3777 // IsLeaf - whether field path is holds simple value 3778 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) IsLeaf() bool { 3779 return fp.selector == DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets || 3780 fp.selector == DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor || 3781 fp.selector == DistributionBucketOptionsExponential_FieldPathSelectorScale 3782 } 3783 3784 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 3785 return []gotenobject.FieldPath{fp} 3786 } 3787 3788 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) WithIValue(value interface{}) DistributionBucketOptionsExponential_FieldPathValue { 3789 switch fp.selector { 3790 case DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets: 3791 return &DistributionBucketOptionsExponential_FieldTerminalPathValue{DistributionBucketOptionsExponential_FieldTerminalPath: *fp, value: value.(int32)} 3792 case DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor: 3793 return &DistributionBucketOptionsExponential_FieldTerminalPathValue{DistributionBucketOptionsExponential_FieldTerminalPath: *fp, value: value.(float64)} 3794 case DistributionBucketOptionsExponential_FieldPathSelectorScale: 3795 return &DistributionBucketOptionsExponential_FieldTerminalPathValue{DistributionBucketOptionsExponential_FieldTerminalPath: *fp, value: value.(float64)} 3796 default: 3797 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Exponential: %d", fp.selector)) 3798 } 3799 } 3800 3801 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 3802 return fp.WithIValue(value) 3803 } 3804 3805 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) WithIArrayOfValues(values interface{}) DistributionBucketOptionsExponential_FieldPathArrayOfValues { 3806 fpaov := &DistributionBucketOptionsExponential_FieldTerminalPathArrayOfValues{DistributionBucketOptionsExponential_FieldTerminalPath: *fp} 3807 switch fp.selector { 3808 case DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets: 3809 return &DistributionBucketOptionsExponential_FieldTerminalPathArrayOfValues{DistributionBucketOptionsExponential_FieldTerminalPath: *fp, values: values.([]int32)} 3810 case DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor: 3811 return &DistributionBucketOptionsExponential_FieldTerminalPathArrayOfValues{DistributionBucketOptionsExponential_FieldTerminalPath: *fp, values: values.([]float64)} 3812 case DistributionBucketOptionsExponential_FieldPathSelectorScale: 3813 return &DistributionBucketOptionsExponential_FieldTerminalPathArrayOfValues{DistributionBucketOptionsExponential_FieldTerminalPath: *fp, values: values.([]float64)} 3814 default: 3815 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Exponential: %d", fp.selector)) 3816 } 3817 return fpaov 3818 } 3819 3820 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 3821 return fp.WithIArrayOfValues(values) 3822 } 3823 3824 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) WithIArrayItemValue(value interface{}) DistributionBucketOptionsExponential_FieldPathArrayItemValue { 3825 switch fp.selector { 3826 default: 3827 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Exponential: %d", fp.selector)) 3828 } 3829 } 3830 3831 func (fp *DistributionBucketOptionsExponential_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 3832 return fp.WithIArrayItemValue(value) 3833 } 3834 3835 // DistributionBucketOptionsExponential_FieldPathValue allows storing values for Exponential fields according to their type 3836 type DistributionBucketOptionsExponential_FieldPathValue interface { 3837 DistributionBucketOptionsExponential_FieldPath 3838 gotenobject.FieldPathValue 3839 SetTo(target **Distribution_BucketOptions_Exponential) 3840 CompareWith(*Distribution_BucketOptions_Exponential) (cmp int, comparable bool) 3841 } 3842 3843 func ParseDistributionBucketOptionsExponential_FieldPathValue(pathStr, valueStr string) (DistributionBucketOptionsExponential_FieldPathValue, error) { 3844 fp, err := ParseDistributionBucketOptionsExponential_FieldPath(pathStr) 3845 if err != nil { 3846 return nil, err 3847 } 3848 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 3849 if err != nil { 3850 return nil, status.Errorf(codes.InvalidArgument, "error parsing Exponential field path value from %s: %v", valueStr, err) 3851 } 3852 return fpv.(DistributionBucketOptionsExponential_FieldPathValue), nil 3853 } 3854 3855 func MustParseDistributionBucketOptionsExponential_FieldPathValue(pathStr, valueStr string) DistributionBucketOptionsExponential_FieldPathValue { 3856 fpv, err := ParseDistributionBucketOptionsExponential_FieldPathValue(pathStr, valueStr) 3857 if err != nil { 3858 panic(err) 3859 } 3860 return fpv 3861 } 3862 3863 type DistributionBucketOptionsExponential_FieldTerminalPathValue struct { 3864 DistributionBucketOptionsExponential_FieldTerminalPath 3865 value interface{} 3866 } 3867 3868 var _ DistributionBucketOptionsExponential_FieldPathValue = (*DistributionBucketOptionsExponential_FieldTerminalPathValue)(nil) 3869 3870 // GetRawValue returns raw value stored under selected path for 'Exponential' as interface{} 3871 func (fpv *DistributionBucketOptionsExponential_FieldTerminalPathValue) GetRawValue() interface{} { 3872 return fpv.value 3873 } 3874 func (fpv *DistributionBucketOptionsExponential_FieldTerminalPathValue) AsNumFiniteBucketsValue() (int32, bool) { 3875 res, ok := fpv.value.(int32) 3876 return res, ok 3877 } 3878 func (fpv *DistributionBucketOptionsExponential_FieldTerminalPathValue) AsGrowthFactorValue() (float64, bool) { 3879 res, ok := fpv.value.(float64) 3880 return res, ok 3881 } 3882 func (fpv *DistributionBucketOptionsExponential_FieldTerminalPathValue) AsScaleValue() (float64, bool) { 3883 res, ok := fpv.value.(float64) 3884 return res, ok 3885 } 3886 3887 // SetTo stores value for selected field for object Exponential 3888 func (fpv *DistributionBucketOptionsExponential_FieldTerminalPathValue) SetTo(target **Distribution_BucketOptions_Exponential) { 3889 if *target == nil { 3890 *target = new(Distribution_BucketOptions_Exponential) 3891 } 3892 switch fpv.selector { 3893 case DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets: 3894 (*target).NumFiniteBuckets = fpv.value.(int32) 3895 case DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor: 3896 (*target).GrowthFactor = fpv.value.(float64) 3897 case DistributionBucketOptionsExponential_FieldPathSelectorScale: 3898 (*target).Scale = fpv.value.(float64) 3899 default: 3900 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Exponential: %d", fpv.selector)) 3901 } 3902 } 3903 3904 func (fpv *DistributionBucketOptionsExponential_FieldTerminalPathValue) SetToRaw(target proto.Message) { 3905 typedObject := target.(*Distribution_BucketOptions_Exponential) 3906 fpv.SetTo(&typedObject) 3907 } 3908 3909 // CompareWith compares value in the 'DistributionBucketOptionsExponential_FieldTerminalPathValue' with the value under path in 'Distribution_BucketOptions_Exponential'. 3910 func (fpv *DistributionBucketOptionsExponential_FieldTerminalPathValue) CompareWith(source *Distribution_BucketOptions_Exponential) (int, bool) { 3911 switch fpv.selector { 3912 case DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets: 3913 leftValue := fpv.value.(int32) 3914 rightValue := source.GetNumFiniteBuckets() 3915 if (leftValue) == (rightValue) { 3916 return 0, true 3917 } else if (leftValue) < (rightValue) { 3918 return -1, true 3919 } else { 3920 return 1, true 3921 } 3922 case DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor: 3923 leftValue := fpv.value.(float64) 3924 rightValue := source.GetGrowthFactor() 3925 if (leftValue) == (rightValue) { 3926 return 0, true 3927 } else if (leftValue) < (rightValue) { 3928 return -1, true 3929 } else { 3930 return 1, true 3931 } 3932 case DistributionBucketOptionsExponential_FieldPathSelectorScale: 3933 leftValue := fpv.value.(float64) 3934 rightValue := source.GetScale() 3935 if (leftValue) == (rightValue) { 3936 return 0, true 3937 } else if (leftValue) < (rightValue) { 3938 return -1, true 3939 } else { 3940 return 1, true 3941 } 3942 default: 3943 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Exponential: %d", fpv.selector)) 3944 } 3945 } 3946 3947 func (fpv *DistributionBucketOptionsExponential_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 3948 return fpv.CompareWith(source.(*Distribution_BucketOptions_Exponential)) 3949 } 3950 3951 // DistributionBucketOptionsExponential_FieldPathArrayItemValue allows storing single item in Path-specific values for Exponential according to their type 3952 // Present only for array (repeated) types. 3953 type DistributionBucketOptionsExponential_FieldPathArrayItemValue interface { 3954 gotenobject.FieldPathArrayItemValue 3955 DistributionBucketOptionsExponential_FieldPath 3956 ContainsValue(*Distribution_BucketOptions_Exponential) bool 3957 } 3958 3959 // ParseDistributionBucketOptionsExponential_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 3960 func ParseDistributionBucketOptionsExponential_FieldPathArrayItemValue(pathStr, valueStr string) (DistributionBucketOptionsExponential_FieldPathArrayItemValue, error) { 3961 fp, err := ParseDistributionBucketOptionsExponential_FieldPath(pathStr) 3962 if err != nil { 3963 return nil, err 3964 } 3965 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 3966 if err != nil { 3967 return nil, status.Errorf(codes.InvalidArgument, "error parsing Exponential field path array item value from %s: %v", valueStr, err) 3968 } 3969 return fpaiv.(DistributionBucketOptionsExponential_FieldPathArrayItemValue), nil 3970 } 3971 3972 func MustParseDistributionBucketOptionsExponential_FieldPathArrayItemValue(pathStr, valueStr string) DistributionBucketOptionsExponential_FieldPathArrayItemValue { 3973 fpaiv, err := ParseDistributionBucketOptionsExponential_FieldPathArrayItemValue(pathStr, valueStr) 3974 if err != nil { 3975 panic(err) 3976 } 3977 return fpaiv 3978 } 3979 3980 type DistributionBucketOptionsExponential_FieldTerminalPathArrayItemValue struct { 3981 DistributionBucketOptionsExponential_FieldTerminalPath 3982 value interface{} 3983 } 3984 3985 var _ DistributionBucketOptionsExponential_FieldPathArrayItemValue = (*DistributionBucketOptionsExponential_FieldTerminalPathArrayItemValue)(nil) 3986 3987 // GetRawValue returns stored element value for array in object Distribution_BucketOptions_Exponential as interface{} 3988 func (fpaiv *DistributionBucketOptionsExponential_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 3989 return fpaiv.value 3990 } 3991 3992 func (fpaiv *DistributionBucketOptionsExponential_FieldTerminalPathArrayItemValue) GetSingle(source *Distribution_BucketOptions_Exponential) (interface{}, bool) { 3993 return nil, false 3994 } 3995 3996 func (fpaiv *DistributionBucketOptionsExponential_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 3997 return fpaiv.GetSingle(source.(*Distribution_BucketOptions_Exponential)) 3998 } 3999 4000 // Contains returns a boolean indicating if value that is being held is present in given 'Exponential' 4001 func (fpaiv *DistributionBucketOptionsExponential_FieldTerminalPathArrayItemValue) ContainsValue(source *Distribution_BucketOptions_Exponential) bool { 4002 slice := fpaiv.DistributionBucketOptionsExponential_FieldTerminalPath.Get(source) 4003 for _, v := range slice { 4004 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 4005 if proto.Equal(asProtoMsg, v.(proto.Message)) { 4006 return true 4007 } 4008 } else if reflect.DeepEqual(v, fpaiv.value) { 4009 return true 4010 } 4011 } 4012 return false 4013 } 4014 4015 // DistributionBucketOptionsExponential_FieldPathArrayOfValues allows storing slice of values for Exponential fields according to their type 4016 type DistributionBucketOptionsExponential_FieldPathArrayOfValues interface { 4017 gotenobject.FieldPathArrayOfValues 4018 DistributionBucketOptionsExponential_FieldPath 4019 } 4020 4021 func ParseDistributionBucketOptionsExponential_FieldPathArrayOfValues(pathStr, valuesStr string) (DistributionBucketOptionsExponential_FieldPathArrayOfValues, error) { 4022 fp, err := ParseDistributionBucketOptionsExponential_FieldPath(pathStr) 4023 if err != nil { 4024 return nil, err 4025 } 4026 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 4027 if err != nil { 4028 return nil, status.Errorf(codes.InvalidArgument, "error parsing Exponential field path array of values from %s: %v", valuesStr, err) 4029 } 4030 return fpaov.(DistributionBucketOptionsExponential_FieldPathArrayOfValues), nil 4031 } 4032 4033 func MustParseDistributionBucketOptionsExponential_FieldPathArrayOfValues(pathStr, valuesStr string) DistributionBucketOptionsExponential_FieldPathArrayOfValues { 4034 fpaov, err := ParseDistributionBucketOptionsExponential_FieldPathArrayOfValues(pathStr, valuesStr) 4035 if err != nil { 4036 panic(err) 4037 } 4038 return fpaov 4039 } 4040 4041 type DistributionBucketOptionsExponential_FieldTerminalPathArrayOfValues struct { 4042 DistributionBucketOptionsExponential_FieldTerminalPath 4043 values interface{} 4044 } 4045 4046 var _ DistributionBucketOptionsExponential_FieldPathArrayOfValues = (*DistributionBucketOptionsExponential_FieldTerminalPathArrayOfValues)(nil) 4047 4048 func (fpaov *DistributionBucketOptionsExponential_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 4049 switch fpaov.selector { 4050 case DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets: 4051 for _, v := range fpaov.values.([]int32) { 4052 values = append(values, v) 4053 } 4054 case DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor: 4055 for _, v := range fpaov.values.([]float64) { 4056 values = append(values, v) 4057 } 4058 case DistributionBucketOptionsExponential_FieldPathSelectorScale: 4059 for _, v := range fpaov.values.([]float64) { 4060 values = append(values, v) 4061 } 4062 } 4063 return 4064 } 4065 func (fpaov *DistributionBucketOptionsExponential_FieldTerminalPathArrayOfValues) AsNumFiniteBucketsArrayOfValues() ([]int32, bool) { 4066 res, ok := fpaov.values.([]int32) 4067 return res, ok 4068 } 4069 func (fpaov *DistributionBucketOptionsExponential_FieldTerminalPathArrayOfValues) AsGrowthFactorArrayOfValues() ([]float64, bool) { 4070 res, ok := fpaov.values.([]float64) 4071 return res, ok 4072 } 4073 func (fpaov *DistributionBucketOptionsExponential_FieldTerminalPathArrayOfValues) AsScaleArrayOfValues() ([]float64, bool) { 4074 res, ok := fpaov.values.([]float64) 4075 return res, ok 4076 } 4077 4078 // FieldPath provides implementation to handle 4079 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 4080 type DistributionBucketOptionsExplicit_FieldPath interface { 4081 gotenobject.FieldPath 4082 Selector() DistributionBucketOptionsExplicit_FieldPathSelector 4083 Get(source *Distribution_BucketOptions_Explicit) []interface{} 4084 GetSingle(source *Distribution_BucketOptions_Explicit) (interface{}, bool) 4085 ClearValue(item *Distribution_BucketOptions_Explicit) 4086 4087 // Those methods build corresponding DistributionBucketOptionsExplicit_FieldPathValue 4088 // (or array of values) and holds passed value. Panics if injected type is incorrect. 4089 WithIValue(value interface{}) DistributionBucketOptionsExplicit_FieldPathValue 4090 WithIArrayOfValues(values interface{}) DistributionBucketOptionsExplicit_FieldPathArrayOfValues 4091 WithIArrayItemValue(value interface{}) DistributionBucketOptionsExplicit_FieldPathArrayItemValue 4092 } 4093 4094 type DistributionBucketOptionsExplicit_FieldPathSelector int32 4095 4096 const ( 4097 DistributionBucketOptionsExplicit_FieldPathSelectorBounds DistributionBucketOptionsExplicit_FieldPathSelector = 0 4098 ) 4099 4100 func (s DistributionBucketOptionsExplicit_FieldPathSelector) String() string { 4101 switch s { 4102 case DistributionBucketOptionsExplicit_FieldPathSelectorBounds: 4103 return "bounds" 4104 default: 4105 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Explicit: %d", s)) 4106 } 4107 } 4108 4109 func BuildDistributionBucketOptionsExplicit_FieldPath(fp gotenobject.RawFieldPath) (DistributionBucketOptionsExplicit_FieldPath, error) { 4110 if len(fp) == 0 { 4111 return nil, status.Error(codes.InvalidArgument, "empty field path for object Distribution_BucketOptions_Explicit") 4112 } 4113 if len(fp) == 1 { 4114 switch fp[0] { 4115 case "bounds": 4116 return &DistributionBucketOptionsExplicit_FieldTerminalPath{selector: DistributionBucketOptionsExplicit_FieldPathSelectorBounds}, nil 4117 } 4118 } 4119 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Distribution_BucketOptions_Explicit", fp) 4120 } 4121 4122 func ParseDistributionBucketOptionsExplicit_FieldPath(rawField string) (DistributionBucketOptionsExplicit_FieldPath, error) { 4123 fp, err := gotenobject.ParseRawFieldPath(rawField) 4124 if err != nil { 4125 return nil, err 4126 } 4127 return BuildDistributionBucketOptionsExplicit_FieldPath(fp) 4128 } 4129 4130 func MustParseDistributionBucketOptionsExplicit_FieldPath(rawField string) DistributionBucketOptionsExplicit_FieldPath { 4131 fp, err := ParseDistributionBucketOptionsExplicit_FieldPath(rawField) 4132 if err != nil { 4133 panic(err) 4134 } 4135 return fp 4136 } 4137 4138 type DistributionBucketOptionsExplicit_FieldTerminalPath struct { 4139 selector DistributionBucketOptionsExplicit_FieldPathSelector 4140 } 4141 4142 var _ DistributionBucketOptionsExplicit_FieldPath = (*DistributionBucketOptionsExplicit_FieldTerminalPath)(nil) 4143 4144 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) Selector() DistributionBucketOptionsExplicit_FieldPathSelector { 4145 return fp.selector 4146 } 4147 4148 // String returns path representation in proto convention 4149 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) String() string { 4150 return fp.selector.String() 4151 } 4152 4153 // JSONString returns path representation is JSON convention 4154 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) JSONString() string { 4155 return strcase.ToLowerCamel(fp.String()) 4156 } 4157 4158 // Get returns all values pointed by specific field from source Distribution_BucketOptions_Explicit 4159 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) Get(source *Distribution_BucketOptions_Explicit) (values []interface{}) { 4160 if source != nil { 4161 switch fp.selector { 4162 case DistributionBucketOptionsExplicit_FieldPathSelectorBounds: 4163 for _, value := range source.GetBounds() { 4164 values = append(values, value) 4165 } 4166 default: 4167 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Explicit: %d", fp.selector)) 4168 } 4169 } 4170 return 4171 } 4172 4173 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 4174 return fp.Get(source.(*Distribution_BucketOptions_Explicit)) 4175 } 4176 4177 // GetSingle returns value pointed by specific field of from source Distribution_BucketOptions_Explicit 4178 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) GetSingle(source *Distribution_BucketOptions_Explicit) (interface{}, bool) { 4179 switch fp.selector { 4180 case DistributionBucketOptionsExplicit_FieldPathSelectorBounds: 4181 res := source.GetBounds() 4182 return res, res != nil 4183 default: 4184 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Explicit: %d", fp.selector)) 4185 } 4186 } 4187 4188 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 4189 return fp.GetSingle(source.(*Distribution_BucketOptions_Explicit)) 4190 } 4191 4192 // GetDefault returns a default value of the field type 4193 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) GetDefault() interface{} { 4194 switch fp.selector { 4195 case DistributionBucketOptionsExplicit_FieldPathSelectorBounds: 4196 return ([]float64)(nil) 4197 default: 4198 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Explicit: %d", fp.selector)) 4199 } 4200 } 4201 4202 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) ClearValue(item *Distribution_BucketOptions_Explicit) { 4203 if item != nil { 4204 switch fp.selector { 4205 case DistributionBucketOptionsExplicit_FieldPathSelectorBounds: 4206 item.Bounds = nil 4207 default: 4208 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Explicit: %d", fp.selector)) 4209 } 4210 } 4211 } 4212 4213 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) ClearValueRaw(item proto.Message) { 4214 fp.ClearValue(item.(*Distribution_BucketOptions_Explicit)) 4215 } 4216 4217 // IsLeaf - whether field path is holds simple value 4218 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) IsLeaf() bool { 4219 return fp.selector == DistributionBucketOptionsExplicit_FieldPathSelectorBounds 4220 } 4221 4222 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 4223 return []gotenobject.FieldPath{fp} 4224 } 4225 4226 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) WithIValue(value interface{}) DistributionBucketOptionsExplicit_FieldPathValue { 4227 switch fp.selector { 4228 case DistributionBucketOptionsExplicit_FieldPathSelectorBounds: 4229 return &DistributionBucketOptionsExplicit_FieldTerminalPathValue{DistributionBucketOptionsExplicit_FieldTerminalPath: *fp, value: value.([]float64)} 4230 default: 4231 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Explicit: %d", fp.selector)) 4232 } 4233 } 4234 4235 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 4236 return fp.WithIValue(value) 4237 } 4238 4239 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) WithIArrayOfValues(values interface{}) DistributionBucketOptionsExplicit_FieldPathArrayOfValues { 4240 fpaov := &DistributionBucketOptionsExplicit_FieldTerminalPathArrayOfValues{DistributionBucketOptionsExplicit_FieldTerminalPath: *fp} 4241 switch fp.selector { 4242 case DistributionBucketOptionsExplicit_FieldPathSelectorBounds: 4243 return &DistributionBucketOptionsExplicit_FieldTerminalPathArrayOfValues{DistributionBucketOptionsExplicit_FieldTerminalPath: *fp, values: values.([][]float64)} 4244 default: 4245 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Explicit: %d", fp.selector)) 4246 } 4247 return fpaov 4248 } 4249 4250 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 4251 return fp.WithIArrayOfValues(values) 4252 } 4253 4254 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) WithIArrayItemValue(value interface{}) DistributionBucketOptionsExplicit_FieldPathArrayItemValue { 4255 switch fp.selector { 4256 case DistributionBucketOptionsExplicit_FieldPathSelectorBounds: 4257 return &DistributionBucketOptionsExplicit_FieldTerminalPathArrayItemValue{DistributionBucketOptionsExplicit_FieldTerminalPath: *fp, value: value.(float64)} 4258 default: 4259 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Explicit: %d", fp.selector)) 4260 } 4261 } 4262 4263 func (fp *DistributionBucketOptionsExplicit_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 4264 return fp.WithIArrayItemValue(value) 4265 } 4266 4267 // DistributionBucketOptionsExplicit_FieldPathValue allows storing values for Explicit fields according to their type 4268 type DistributionBucketOptionsExplicit_FieldPathValue interface { 4269 DistributionBucketOptionsExplicit_FieldPath 4270 gotenobject.FieldPathValue 4271 SetTo(target **Distribution_BucketOptions_Explicit) 4272 CompareWith(*Distribution_BucketOptions_Explicit) (cmp int, comparable bool) 4273 } 4274 4275 func ParseDistributionBucketOptionsExplicit_FieldPathValue(pathStr, valueStr string) (DistributionBucketOptionsExplicit_FieldPathValue, error) { 4276 fp, err := ParseDistributionBucketOptionsExplicit_FieldPath(pathStr) 4277 if err != nil { 4278 return nil, err 4279 } 4280 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 4281 if err != nil { 4282 return nil, status.Errorf(codes.InvalidArgument, "error parsing Explicit field path value from %s: %v", valueStr, err) 4283 } 4284 return fpv.(DistributionBucketOptionsExplicit_FieldPathValue), nil 4285 } 4286 4287 func MustParseDistributionBucketOptionsExplicit_FieldPathValue(pathStr, valueStr string) DistributionBucketOptionsExplicit_FieldPathValue { 4288 fpv, err := ParseDistributionBucketOptionsExplicit_FieldPathValue(pathStr, valueStr) 4289 if err != nil { 4290 panic(err) 4291 } 4292 return fpv 4293 } 4294 4295 type DistributionBucketOptionsExplicit_FieldTerminalPathValue struct { 4296 DistributionBucketOptionsExplicit_FieldTerminalPath 4297 value interface{} 4298 } 4299 4300 var _ DistributionBucketOptionsExplicit_FieldPathValue = (*DistributionBucketOptionsExplicit_FieldTerminalPathValue)(nil) 4301 4302 // GetRawValue returns raw value stored under selected path for 'Explicit' as interface{} 4303 func (fpv *DistributionBucketOptionsExplicit_FieldTerminalPathValue) GetRawValue() interface{} { 4304 return fpv.value 4305 } 4306 func (fpv *DistributionBucketOptionsExplicit_FieldTerminalPathValue) AsBoundsValue() ([]float64, bool) { 4307 res, ok := fpv.value.([]float64) 4308 return res, ok 4309 } 4310 4311 // SetTo stores value for selected field for object Explicit 4312 func (fpv *DistributionBucketOptionsExplicit_FieldTerminalPathValue) SetTo(target **Distribution_BucketOptions_Explicit) { 4313 if *target == nil { 4314 *target = new(Distribution_BucketOptions_Explicit) 4315 } 4316 switch fpv.selector { 4317 case DistributionBucketOptionsExplicit_FieldPathSelectorBounds: 4318 (*target).Bounds = fpv.value.([]float64) 4319 default: 4320 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Explicit: %d", fpv.selector)) 4321 } 4322 } 4323 4324 func (fpv *DistributionBucketOptionsExplicit_FieldTerminalPathValue) SetToRaw(target proto.Message) { 4325 typedObject := target.(*Distribution_BucketOptions_Explicit) 4326 fpv.SetTo(&typedObject) 4327 } 4328 4329 // CompareWith compares value in the 'DistributionBucketOptionsExplicit_FieldTerminalPathValue' with the value under path in 'Distribution_BucketOptions_Explicit'. 4330 func (fpv *DistributionBucketOptionsExplicit_FieldTerminalPathValue) CompareWith(source *Distribution_BucketOptions_Explicit) (int, bool) { 4331 switch fpv.selector { 4332 case DistributionBucketOptionsExplicit_FieldPathSelectorBounds: 4333 return 0, false 4334 default: 4335 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Explicit: %d", fpv.selector)) 4336 } 4337 } 4338 4339 func (fpv *DistributionBucketOptionsExplicit_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 4340 return fpv.CompareWith(source.(*Distribution_BucketOptions_Explicit)) 4341 } 4342 4343 // DistributionBucketOptionsExplicit_FieldPathArrayItemValue allows storing single item in Path-specific values for Explicit according to their type 4344 // Present only for array (repeated) types. 4345 type DistributionBucketOptionsExplicit_FieldPathArrayItemValue interface { 4346 gotenobject.FieldPathArrayItemValue 4347 DistributionBucketOptionsExplicit_FieldPath 4348 ContainsValue(*Distribution_BucketOptions_Explicit) bool 4349 } 4350 4351 // ParseDistributionBucketOptionsExplicit_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 4352 func ParseDistributionBucketOptionsExplicit_FieldPathArrayItemValue(pathStr, valueStr string) (DistributionBucketOptionsExplicit_FieldPathArrayItemValue, error) { 4353 fp, err := ParseDistributionBucketOptionsExplicit_FieldPath(pathStr) 4354 if err != nil { 4355 return nil, err 4356 } 4357 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 4358 if err != nil { 4359 return nil, status.Errorf(codes.InvalidArgument, "error parsing Explicit field path array item value from %s: %v", valueStr, err) 4360 } 4361 return fpaiv.(DistributionBucketOptionsExplicit_FieldPathArrayItemValue), nil 4362 } 4363 4364 func MustParseDistributionBucketOptionsExplicit_FieldPathArrayItemValue(pathStr, valueStr string) DistributionBucketOptionsExplicit_FieldPathArrayItemValue { 4365 fpaiv, err := ParseDistributionBucketOptionsExplicit_FieldPathArrayItemValue(pathStr, valueStr) 4366 if err != nil { 4367 panic(err) 4368 } 4369 return fpaiv 4370 } 4371 4372 type DistributionBucketOptionsExplicit_FieldTerminalPathArrayItemValue struct { 4373 DistributionBucketOptionsExplicit_FieldTerminalPath 4374 value interface{} 4375 } 4376 4377 var _ DistributionBucketOptionsExplicit_FieldPathArrayItemValue = (*DistributionBucketOptionsExplicit_FieldTerminalPathArrayItemValue)(nil) 4378 4379 // GetRawValue returns stored element value for array in object Distribution_BucketOptions_Explicit as interface{} 4380 func (fpaiv *DistributionBucketOptionsExplicit_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 4381 return fpaiv.value 4382 } 4383 func (fpaiv *DistributionBucketOptionsExplicit_FieldTerminalPathArrayItemValue) AsBoundsItemValue() (float64, bool) { 4384 res, ok := fpaiv.value.(float64) 4385 return res, ok 4386 } 4387 4388 func (fpaiv *DistributionBucketOptionsExplicit_FieldTerminalPathArrayItemValue) GetSingle(source *Distribution_BucketOptions_Explicit) (interface{}, bool) { 4389 return nil, false 4390 } 4391 4392 func (fpaiv *DistributionBucketOptionsExplicit_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 4393 return fpaiv.GetSingle(source.(*Distribution_BucketOptions_Explicit)) 4394 } 4395 4396 // Contains returns a boolean indicating if value that is being held is present in given 'Explicit' 4397 func (fpaiv *DistributionBucketOptionsExplicit_FieldTerminalPathArrayItemValue) ContainsValue(source *Distribution_BucketOptions_Explicit) bool { 4398 slice := fpaiv.DistributionBucketOptionsExplicit_FieldTerminalPath.Get(source) 4399 for _, v := range slice { 4400 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 4401 if proto.Equal(asProtoMsg, v.(proto.Message)) { 4402 return true 4403 } 4404 } else if reflect.DeepEqual(v, fpaiv.value) { 4405 return true 4406 } 4407 } 4408 return false 4409 } 4410 4411 // DistributionBucketOptionsExplicit_FieldPathArrayOfValues allows storing slice of values for Explicit fields according to their type 4412 type DistributionBucketOptionsExplicit_FieldPathArrayOfValues interface { 4413 gotenobject.FieldPathArrayOfValues 4414 DistributionBucketOptionsExplicit_FieldPath 4415 } 4416 4417 func ParseDistributionBucketOptionsExplicit_FieldPathArrayOfValues(pathStr, valuesStr string) (DistributionBucketOptionsExplicit_FieldPathArrayOfValues, error) { 4418 fp, err := ParseDistributionBucketOptionsExplicit_FieldPath(pathStr) 4419 if err != nil { 4420 return nil, err 4421 } 4422 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 4423 if err != nil { 4424 return nil, status.Errorf(codes.InvalidArgument, "error parsing Explicit field path array of values from %s: %v", valuesStr, err) 4425 } 4426 return fpaov.(DistributionBucketOptionsExplicit_FieldPathArrayOfValues), nil 4427 } 4428 4429 func MustParseDistributionBucketOptionsExplicit_FieldPathArrayOfValues(pathStr, valuesStr string) DistributionBucketOptionsExplicit_FieldPathArrayOfValues { 4430 fpaov, err := ParseDistributionBucketOptionsExplicit_FieldPathArrayOfValues(pathStr, valuesStr) 4431 if err != nil { 4432 panic(err) 4433 } 4434 return fpaov 4435 } 4436 4437 type DistributionBucketOptionsExplicit_FieldTerminalPathArrayOfValues struct { 4438 DistributionBucketOptionsExplicit_FieldTerminalPath 4439 values interface{} 4440 } 4441 4442 var _ DistributionBucketOptionsExplicit_FieldPathArrayOfValues = (*DistributionBucketOptionsExplicit_FieldTerminalPathArrayOfValues)(nil) 4443 4444 func (fpaov *DistributionBucketOptionsExplicit_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 4445 switch fpaov.selector { 4446 case DistributionBucketOptionsExplicit_FieldPathSelectorBounds: 4447 for _, v := range fpaov.values.([][]float64) { 4448 values = append(values, v) 4449 } 4450 } 4451 return 4452 } 4453 func (fpaov *DistributionBucketOptionsExplicit_FieldTerminalPathArrayOfValues) AsBoundsArrayOfValues() ([][]float64, bool) { 4454 res, ok := fpaov.values.([][]float64) 4455 return res, ok 4456 } 4457 4458 // FieldPath provides implementation to handle 4459 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 4460 type DistributionBucketOptionsDynamic_FieldPath interface { 4461 gotenobject.FieldPath 4462 Selector() DistributionBucketOptionsDynamic_FieldPathSelector 4463 Get(source *Distribution_BucketOptions_Dynamic) []interface{} 4464 GetSingle(source *Distribution_BucketOptions_Dynamic) (interface{}, bool) 4465 ClearValue(item *Distribution_BucketOptions_Dynamic) 4466 4467 // Those methods build corresponding DistributionBucketOptionsDynamic_FieldPathValue 4468 // (or array of values) and holds passed value. Panics if injected type is incorrect. 4469 WithIValue(value interface{}) DistributionBucketOptionsDynamic_FieldPathValue 4470 WithIArrayOfValues(values interface{}) DistributionBucketOptionsDynamic_FieldPathArrayOfValues 4471 WithIArrayItemValue(value interface{}) DistributionBucketOptionsDynamic_FieldPathArrayItemValue 4472 } 4473 4474 type DistributionBucketOptionsDynamic_FieldPathSelector int32 4475 4476 const ( 4477 DistributionBucketOptionsDynamic_FieldPathSelectorCompression DistributionBucketOptionsDynamic_FieldPathSelector = 0 4478 DistributionBucketOptionsDynamic_FieldPathSelectorMeans DistributionBucketOptionsDynamic_FieldPathSelector = 1 4479 ) 4480 4481 func (s DistributionBucketOptionsDynamic_FieldPathSelector) String() string { 4482 switch s { 4483 case DistributionBucketOptionsDynamic_FieldPathSelectorCompression: 4484 return "compression" 4485 case DistributionBucketOptionsDynamic_FieldPathSelectorMeans: 4486 return "means" 4487 default: 4488 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Dynamic: %d", s)) 4489 } 4490 } 4491 4492 func BuildDistributionBucketOptionsDynamic_FieldPath(fp gotenobject.RawFieldPath) (DistributionBucketOptionsDynamic_FieldPath, error) { 4493 if len(fp) == 0 { 4494 return nil, status.Error(codes.InvalidArgument, "empty field path for object Distribution_BucketOptions_Dynamic") 4495 } 4496 if len(fp) == 1 { 4497 switch fp[0] { 4498 case "compression": 4499 return &DistributionBucketOptionsDynamic_FieldTerminalPath{selector: DistributionBucketOptionsDynamic_FieldPathSelectorCompression}, nil 4500 case "means": 4501 return &DistributionBucketOptionsDynamic_FieldTerminalPath{selector: DistributionBucketOptionsDynamic_FieldPathSelectorMeans}, nil 4502 } 4503 } 4504 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Distribution_BucketOptions_Dynamic", fp) 4505 } 4506 4507 func ParseDistributionBucketOptionsDynamic_FieldPath(rawField string) (DistributionBucketOptionsDynamic_FieldPath, error) { 4508 fp, err := gotenobject.ParseRawFieldPath(rawField) 4509 if err != nil { 4510 return nil, err 4511 } 4512 return BuildDistributionBucketOptionsDynamic_FieldPath(fp) 4513 } 4514 4515 func MustParseDistributionBucketOptionsDynamic_FieldPath(rawField string) DistributionBucketOptionsDynamic_FieldPath { 4516 fp, err := ParseDistributionBucketOptionsDynamic_FieldPath(rawField) 4517 if err != nil { 4518 panic(err) 4519 } 4520 return fp 4521 } 4522 4523 type DistributionBucketOptionsDynamic_FieldTerminalPath struct { 4524 selector DistributionBucketOptionsDynamic_FieldPathSelector 4525 } 4526 4527 var _ DistributionBucketOptionsDynamic_FieldPath = (*DistributionBucketOptionsDynamic_FieldTerminalPath)(nil) 4528 4529 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) Selector() DistributionBucketOptionsDynamic_FieldPathSelector { 4530 return fp.selector 4531 } 4532 4533 // String returns path representation in proto convention 4534 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) String() string { 4535 return fp.selector.String() 4536 } 4537 4538 // JSONString returns path representation is JSON convention 4539 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) JSONString() string { 4540 return strcase.ToLowerCamel(fp.String()) 4541 } 4542 4543 // Get returns all values pointed by specific field from source Distribution_BucketOptions_Dynamic 4544 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) Get(source *Distribution_BucketOptions_Dynamic) (values []interface{}) { 4545 if source != nil { 4546 switch fp.selector { 4547 case DistributionBucketOptionsDynamic_FieldPathSelectorCompression: 4548 values = append(values, source.Compression) 4549 case DistributionBucketOptionsDynamic_FieldPathSelectorMeans: 4550 for _, value := range source.GetMeans() { 4551 values = append(values, value) 4552 } 4553 default: 4554 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Dynamic: %d", fp.selector)) 4555 } 4556 } 4557 return 4558 } 4559 4560 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 4561 return fp.Get(source.(*Distribution_BucketOptions_Dynamic)) 4562 } 4563 4564 // GetSingle returns value pointed by specific field of from source Distribution_BucketOptions_Dynamic 4565 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) GetSingle(source *Distribution_BucketOptions_Dynamic) (interface{}, bool) { 4566 switch fp.selector { 4567 case DistributionBucketOptionsDynamic_FieldPathSelectorCompression: 4568 return source.GetCompression(), source != nil 4569 case DistributionBucketOptionsDynamic_FieldPathSelectorMeans: 4570 res := source.GetMeans() 4571 return res, res != nil 4572 default: 4573 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Dynamic: %d", fp.selector)) 4574 } 4575 } 4576 4577 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 4578 return fp.GetSingle(source.(*Distribution_BucketOptions_Dynamic)) 4579 } 4580 4581 // GetDefault returns a default value of the field type 4582 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) GetDefault() interface{} { 4583 switch fp.selector { 4584 case DistributionBucketOptionsDynamic_FieldPathSelectorCompression: 4585 return float64(0) 4586 case DistributionBucketOptionsDynamic_FieldPathSelectorMeans: 4587 return ([]float64)(nil) 4588 default: 4589 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Dynamic: %d", fp.selector)) 4590 } 4591 } 4592 4593 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) ClearValue(item *Distribution_BucketOptions_Dynamic) { 4594 if item != nil { 4595 switch fp.selector { 4596 case DistributionBucketOptionsDynamic_FieldPathSelectorCompression: 4597 item.Compression = float64(0) 4598 case DistributionBucketOptionsDynamic_FieldPathSelectorMeans: 4599 item.Means = nil 4600 default: 4601 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Dynamic: %d", fp.selector)) 4602 } 4603 } 4604 } 4605 4606 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) ClearValueRaw(item proto.Message) { 4607 fp.ClearValue(item.(*Distribution_BucketOptions_Dynamic)) 4608 } 4609 4610 // IsLeaf - whether field path is holds simple value 4611 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) IsLeaf() bool { 4612 return fp.selector == DistributionBucketOptionsDynamic_FieldPathSelectorCompression || 4613 fp.selector == DistributionBucketOptionsDynamic_FieldPathSelectorMeans 4614 } 4615 4616 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 4617 return []gotenobject.FieldPath{fp} 4618 } 4619 4620 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) WithIValue(value interface{}) DistributionBucketOptionsDynamic_FieldPathValue { 4621 switch fp.selector { 4622 case DistributionBucketOptionsDynamic_FieldPathSelectorCompression: 4623 return &DistributionBucketOptionsDynamic_FieldTerminalPathValue{DistributionBucketOptionsDynamic_FieldTerminalPath: *fp, value: value.(float64)} 4624 case DistributionBucketOptionsDynamic_FieldPathSelectorMeans: 4625 return &DistributionBucketOptionsDynamic_FieldTerminalPathValue{DistributionBucketOptionsDynamic_FieldTerminalPath: *fp, value: value.([]float64)} 4626 default: 4627 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Dynamic: %d", fp.selector)) 4628 } 4629 } 4630 4631 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 4632 return fp.WithIValue(value) 4633 } 4634 4635 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) WithIArrayOfValues(values interface{}) DistributionBucketOptionsDynamic_FieldPathArrayOfValues { 4636 fpaov := &DistributionBucketOptionsDynamic_FieldTerminalPathArrayOfValues{DistributionBucketOptionsDynamic_FieldTerminalPath: *fp} 4637 switch fp.selector { 4638 case DistributionBucketOptionsDynamic_FieldPathSelectorCompression: 4639 return &DistributionBucketOptionsDynamic_FieldTerminalPathArrayOfValues{DistributionBucketOptionsDynamic_FieldTerminalPath: *fp, values: values.([]float64)} 4640 case DistributionBucketOptionsDynamic_FieldPathSelectorMeans: 4641 return &DistributionBucketOptionsDynamic_FieldTerminalPathArrayOfValues{DistributionBucketOptionsDynamic_FieldTerminalPath: *fp, values: values.([][]float64)} 4642 default: 4643 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Dynamic: %d", fp.selector)) 4644 } 4645 return fpaov 4646 } 4647 4648 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 4649 return fp.WithIArrayOfValues(values) 4650 } 4651 4652 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) WithIArrayItemValue(value interface{}) DistributionBucketOptionsDynamic_FieldPathArrayItemValue { 4653 switch fp.selector { 4654 case DistributionBucketOptionsDynamic_FieldPathSelectorMeans: 4655 return &DistributionBucketOptionsDynamic_FieldTerminalPathArrayItemValue{DistributionBucketOptionsDynamic_FieldTerminalPath: *fp, value: value.(float64)} 4656 default: 4657 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Dynamic: %d", fp.selector)) 4658 } 4659 } 4660 4661 func (fp *DistributionBucketOptionsDynamic_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 4662 return fp.WithIArrayItemValue(value) 4663 } 4664 4665 // DistributionBucketOptionsDynamic_FieldPathValue allows storing values for Dynamic fields according to their type 4666 type DistributionBucketOptionsDynamic_FieldPathValue interface { 4667 DistributionBucketOptionsDynamic_FieldPath 4668 gotenobject.FieldPathValue 4669 SetTo(target **Distribution_BucketOptions_Dynamic) 4670 CompareWith(*Distribution_BucketOptions_Dynamic) (cmp int, comparable bool) 4671 } 4672 4673 func ParseDistributionBucketOptionsDynamic_FieldPathValue(pathStr, valueStr string) (DistributionBucketOptionsDynamic_FieldPathValue, error) { 4674 fp, err := ParseDistributionBucketOptionsDynamic_FieldPath(pathStr) 4675 if err != nil { 4676 return nil, err 4677 } 4678 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 4679 if err != nil { 4680 return nil, status.Errorf(codes.InvalidArgument, "error parsing Dynamic field path value from %s: %v", valueStr, err) 4681 } 4682 return fpv.(DistributionBucketOptionsDynamic_FieldPathValue), nil 4683 } 4684 4685 func MustParseDistributionBucketOptionsDynamic_FieldPathValue(pathStr, valueStr string) DistributionBucketOptionsDynamic_FieldPathValue { 4686 fpv, err := ParseDistributionBucketOptionsDynamic_FieldPathValue(pathStr, valueStr) 4687 if err != nil { 4688 panic(err) 4689 } 4690 return fpv 4691 } 4692 4693 type DistributionBucketOptionsDynamic_FieldTerminalPathValue struct { 4694 DistributionBucketOptionsDynamic_FieldTerminalPath 4695 value interface{} 4696 } 4697 4698 var _ DistributionBucketOptionsDynamic_FieldPathValue = (*DistributionBucketOptionsDynamic_FieldTerminalPathValue)(nil) 4699 4700 // GetRawValue returns raw value stored under selected path for 'Dynamic' as interface{} 4701 func (fpv *DistributionBucketOptionsDynamic_FieldTerminalPathValue) GetRawValue() interface{} { 4702 return fpv.value 4703 } 4704 func (fpv *DistributionBucketOptionsDynamic_FieldTerminalPathValue) AsCompressionValue() (float64, bool) { 4705 res, ok := fpv.value.(float64) 4706 return res, ok 4707 } 4708 func (fpv *DistributionBucketOptionsDynamic_FieldTerminalPathValue) AsMeansValue() ([]float64, bool) { 4709 res, ok := fpv.value.([]float64) 4710 return res, ok 4711 } 4712 4713 // SetTo stores value for selected field for object Dynamic 4714 func (fpv *DistributionBucketOptionsDynamic_FieldTerminalPathValue) SetTo(target **Distribution_BucketOptions_Dynamic) { 4715 if *target == nil { 4716 *target = new(Distribution_BucketOptions_Dynamic) 4717 } 4718 switch fpv.selector { 4719 case DistributionBucketOptionsDynamic_FieldPathSelectorCompression: 4720 (*target).Compression = fpv.value.(float64) 4721 case DistributionBucketOptionsDynamic_FieldPathSelectorMeans: 4722 (*target).Means = fpv.value.([]float64) 4723 default: 4724 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Dynamic: %d", fpv.selector)) 4725 } 4726 } 4727 4728 func (fpv *DistributionBucketOptionsDynamic_FieldTerminalPathValue) SetToRaw(target proto.Message) { 4729 typedObject := target.(*Distribution_BucketOptions_Dynamic) 4730 fpv.SetTo(&typedObject) 4731 } 4732 4733 // CompareWith compares value in the 'DistributionBucketOptionsDynamic_FieldTerminalPathValue' with the value under path in 'Distribution_BucketOptions_Dynamic'. 4734 func (fpv *DistributionBucketOptionsDynamic_FieldTerminalPathValue) CompareWith(source *Distribution_BucketOptions_Dynamic) (int, bool) { 4735 switch fpv.selector { 4736 case DistributionBucketOptionsDynamic_FieldPathSelectorCompression: 4737 leftValue := fpv.value.(float64) 4738 rightValue := source.GetCompression() 4739 if (leftValue) == (rightValue) { 4740 return 0, true 4741 } else if (leftValue) < (rightValue) { 4742 return -1, true 4743 } else { 4744 return 1, true 4745 } 4746 case DistributionBucketOptionsDynamic_FieldPathSelectorMeans: 4747 return 0, false 4748 default: 4749 panic(fmt.Sprintf("Invalid selector for Distribution_BucketOptions_Dynamic: %d", fpv.selector)) 4750 } 4751 } 4752 4753 func (fpv *DistributionBucketOptionsDynamic_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 4754 return fpv.CompareWith(source.(*Distribution_BucketOptions_Dynamic)) 4755 } 4756 4757 // DistributionBucketOptionsDynamic_FieldPathArrayItemValue allows storing single item in Path-specific values for Dynamic according to their type 4758 // Present only for array (repeated) types. 4759 type DistributionBucketOptionsDynamic_FieldPathArrayItemValue interface { 4760 gotenobject.FieldPathArrayItemValue 4761 DistributionBucketOptionsDynamic_FieldPath 4762 ContainsValue(*Distribution_BucketOptions_Dynamic) bool 4763 } 4764 4765 // ParseDistributionBucketOptionsDynamic_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 4766 func ParseDistributionBucketOptionsDynamic_FieldPathArrayItemValue(pathStr, valueStr string) (DistributionBucketOptionsDynamic_FieldPathArrayItemValue, error) { 4767 fp, err := ParseDistributionBucketOptionsDynamic_FieldPath(pathStr) 4768 if err != nil { 4769 return nil, err 4770 } 4771 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 4772 if err != nil { 4773 return nil, status.Errorf(codes.InvalidArgument, "error parsing Dynamic field path array item value from %s: %v", valueStr, err) 4774 } 4775 return fpaiv.(DistributionBucketOptionsDynamic_FieldPathArrayItemValue), nil 4776 } 4777 4778 func MustParseDistributionBucketOptionsDynamic_FieldPathArrayItemValue(pathStr, valueStr string) DistributionBucketOptionsDynamic_FieldPathArrayItemValue { 4779 fpaiv, err := ParseDistributionBucketOptionsDynamic_FieldPathArrayItemValue(pathStr, valueStr) 4780 if err != nil { 4781 panic(err) 4782 } 4783 return fpaiv 4784 } 4785 4786 type DistributionBucketOptionsDynamic_FieldTerminalPathArrayItemValue struct { 4787 DistributionBucketOptionsDynamic_FieldTerminalPath 4788 value interface{} 4789 } 4790 4791 var _ DistributionBucketOptionsDynamic_FieldPathArrayItemValue = (*DistributionBucketOptionsDynamic_FieldTerminalPathArrayItemValue)(nil) 4792 4793 // GetRawValue returns stored element value for array in object Distribution_BucketOptions_Dynamic as interface{} 4794 func (fpaiv *DistributionBucketOptionsDynamic_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 4795 return fpaiv.value 4796 } 4797 func (fpaiv *DistributionBucketOptionsDynamic_FieldTerminalPathArrayItemValue) AsMeansItemValue() (float64, bool) { 4798 res, ok := fpaiv.value.(float64) 4799 return res, ok 4800 } 4801 4802 func (fpaiv *DistributionBucketOptionsDynamic_FieldTerminalPathArrayItemValue) GetSingle(source *Distribution_BucketOptions_Dynamic) (interface{}, bool) { 4803 return nil, false 4804 } 4805 4806 func (fpaiv *DistributionBucketOptionsDynamic_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 4807 return fpaiv.GetSingle(source.(*Distribution_BucketOptions_Dynamic)) 4808 } 4809 4810 // Contains returns a boolean indicating if value that is being held is present in given 'Dynamic' 4811 func (fpaiv *DistributionBucketOptionsDynamic_FieldTerminalPathArrayItemValue) ContainsValue(source *Distribution_BucketOptions_Dynamic) bool { 4812 slice := fpaiv.DistributionBucketOptionsDynamic_FieldTerminalPath.Get(source) 4813 for _, v := range slice { 4814 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 4815 if proto.Equal(asProtoMsg, v.(proto.Message)) { 4816 return true 4817 } 4818 } else if reflect.DeepEqual(v, fpaiv.value) { 4819 return true 4820 } 4821 } 4822 return false 4823 } 4824 4825 // DistributionBucketOptionsDynamic_FieldPathArrayOfValues allows storing slice of values for Dynamic fields according to their type 4826 type DistributionBucketOptionsDynamic_FieldPathArrayOfValues interface { 4827 gotenobject.FieldPathArrayOfValues 4828 DistributionBucketOptionsDynamic_FieldPath 4829 } 4830 4831 func ParseDistributionBucketOptionsDynamic_FieldPathArrayOfValues(pathStr, valuesStr string) (DistributionBucketOptionsDynamic_FieldPathArrayOfValues, error) { 4832 fp, err := ParseDistributionBucketOptionsDynamic_FieldPath(pathStr) 4833 if err != nil { 4834 return nil, err 4835 } 4836 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 4837 if err != nil { 4838 return nil, status.Errorf(codes.InvalidArgument, "error parsing Dynamic field path array of values from %s: %v", valuesStr, err) 4839 } 4840 return fpaov.(DistributionBucketOptionsDynamic_FieldPathArrayOfValues), nil 4841 } 4842 4843 func MustParseDistributionBucketOptionsDynamic_FieldPathArrayOfValues(pathStr, valuesStr string) DistributionBucketOptionsDynamic_FieldPathArrayOfValues { 4844 fpaov, err := ParseDistributionBucketOptionsDynamic_FieldPathArrayOfValues(pathStr, valuesStr) 4845 if err != nil { 4846 panic(err) 4847 } 4848 return fpaov 4849 } 4850 4851 type DistributionBucketOptionsDynamic_FieldTerminalPathArrayOfValues struct { 4852 DistributionBucketOptionsDynamic_FieldTerminalPath 4853 values interface{} 4854 } 4855 4856 var _ DistributionBucketOptionsDynamic_FieldPathArrayOfValues = (*DistributionBucketOptionsDynamic_FieldTerminalPathArrayOfValues)(nil) 4857 4858 func (fpaov *DistributionBucketOptionsDynamic_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 4859 switch fpaov.selector { 4860 case DistributionBucketOptionsDynamic_FieldPathSelectorCompression: 4861 for _, v := range fpaov.values.([]float64) { 4862 values = append(values, v) 4863 } 4864 case DistributionBucketOptionsDynamic_FieldPathSelectorMeans: 4865 for _, v := range fpaov.values.([][]float64) { 4866 values = append(values, v) 4867 } 4868 } 4869 return 4870 } 4871 func (fpaov *DistributionBucketOptionsDynamic_FieldTerminalPathArrayOfValues) AsCompressionArrayOfValues() ([]float64, bool) { 4872 res, ok := fpaov.values.([]float64) 4873 return res, ok 4874 } 4875 func (fpaov *DistributionBucketOptionsDynamic_FieldTerminalPathArrayOfValues) AsMeansArrayOfValues() ([][]float64, bool) { 4876 res, ok := fpaov.values.([][]float64) 4877 return res, ok 4878 } 4879 4880 // FieldPath provides implementation to handle 4881 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 4882 type TypedValue_FieldPath interface { 4883 gotenobject.FieldPath 4884 Selector() TypedValue_FieldPathSelector 4885 Get(source *TypedValue) []interface{} 4886 GetSingle(source *TypedValue) (interface{}, bool) 4887 ClearValue(item *TypedValue) 4888 4889 // Those methods build corresponding TypedValue_FieldPathValue 4890 // (or array of values) and holds passed value. Panics if injected type is incorrect. 4891 WithIValue(value interface{}) TypedValue_FieldPathValue 4892 WithIArrayOfValues(values interface{}) TypedValue_FieldPathArrayOfValues 4893 WithIArrayItemValue(value interface{}) TypedValue_FieldPathArrayItemValue 4894 } 4895 4896 type TypedValue_FieldPathSelector int32 4897 4898 const ( 4899 TypedValue_FieldPathSelectorBoolValue TypedValue_FieldPathSelector = 0 4900 TypedValue_FieldPathSelectorInt64Value TypedValue_FieldPathSelector = 1 4901 TypedValue_FieldPathSelectorDoubleValue TypedValue_FieldPathSelector = 2 4902 TypedValue_FieldPathSelectorStringValue TypedValue_FieldPathSelector = 3 4903 TypedValue_FieldPathSelectorDistributionValue TypedValue_FieldPathSelector = 4 4904 ) 4905 4906 func (s TypedValue_FieldPathSelector) String() string { 4907 switch s { 4908 case TypedValue_FieldPathSelectorBoolValue: 4909 return "bool_value" 4910 case TypedValue_FieldPathSelectorInt64Value: 4911 return "int64_value" 4912 case TypedValue_FieldPathSelectorDoubleValue: 4913 return "double_value" 4914 case TypedValue_FieldPathSelectorStringValue: 4915 return "string_value" 4916 case TypedValue_FieldPathSelectorDistributionValue: 4917 return "distribution_value" 4918 default: 4919 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", s)) 4920 } 4921 } 4922 4923 func BuildTypedValue_FieldPath(fp gotenobject.RawFieldPath) (TypedValue_FieldPath, error) { 4924 if len(fp) == 0 { 4925 return nil, status.Error(codes.InvalidArgument, "empty field path for object TypedValue") 4926 } 4927 if len(fp) == 1 { 4928 switch fp[0] { 4929 case "bool_value", "boolValue", "bool-value": 4930 return &TypedValue_FieldTerminalPath{selector: TypedValue_FieldPathSelectorBoolValue}, nil 4931 case "int64_value", "int64Value", "int64-value": 4932 return &TypedValue_FieldTerminalPath{selector: TypedValue_FieldPathSelectorInt64Value}, nil 4933 case "double_value", "doubleValue", "double-value": 4934 return &TypedValue_FieldTerminalPath{selector: TypedValue_FieldPathSelectorDoubleValue}, nil 4935 case "string_value", "stringValue", "string-value": 4936 return &TypedValue_FieldTerminalPath{selector: TypedValue_FieldPathSelectorStringValue}, nil 4937 case "distribution_value", "distributionValue", "distribution-value": 4938 return &TypedValue_FieldTerminalPath{selector: TypedValue_FieldPathSelectorDistributionValue}, nil 4939 } 4940 } else { 4941 switch fp[0] { 4942 case "distribution_value", "distributionValue", "distribution-value": 4943 if subpath, err := BuildDistribution_FieldPath(fp[1:]); err != nil { 4944 return nil, err 4945 } else { 4946 return &TypedValue_FieldSubPath{selector: TypedValue_FieldPathSelectorDistributionValue, subPath: subpath}, nil 4947 } 4948 } 4949 } 4950 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object TypedValue", fp) 4951 } 4952 4953 func ParseTypedValue_FieldPath(rawField string) (TypedValue_FieldPath, error) { 4954 fp, err := gotenobject.ParseRawFieldPath(rawField) 4955 if err != nil { 4956 return nil, err 4957 } 4958 return BuildTypedValue_FieldPath(fp) 4959 } 4960 4961 func MustParseTypedValue_FieldPath(rawField string) TypedValue_FieldPath { 4962 fp, err := ParseTypedValue_FieldPath(rawField) 4963 if err != nil { 4964 panic(err) 4965 } 4966 return fp 4967 } 4968 4969 type TypedValue_FieldTerminalPath struct { 4970 selector TypedValue_FieldPathSelector 4971 } 4972 4973 var _ TypedValue_FieldPath = (*TypedValue_FieldTerminalPath)(nil) 4974 4975 func (fp *TypedValue_FieldTerminalPath) Selector() TypedValue_FieldPathSelector { 4976 return fp.selector 4977 } 4978 4979 // String returns path representation in proto convention 4980 func (fp *TypedValue_FieldTerminalPath) String() string { 4981 return fp.selector.String() 4982 } 4983 4984 // JSONString returns path representation is JSON convention 4985 func (fp *TypedValue_FieldTerminalPath) JSONString() string { 4986 return strcase.ToLowerCamel(fp.String()) 4987 } 4988 4989 // Get returns all values pointed by specific field from source TypedValue 4990 func (fp *TypedValue_FieldTerminalPath) Get(source *TypedValue) (values []interface{}) { 4991 if source != nil { 4992 switch fp.selector { 4993 case TypedValue_FieldPathSelectorBoolValue: 4994 if source, ok := source.Value.(*TypedValue_BoolValue); ok && source != nil { 4995 values = append(values, source.BoolValue) 4996 } 4997 case TypedValue_FieldPathSelectorInt64Value: 4998 if source, ok := source.Value.(*TypedValue_Int64Value); ok && source != nil { 4999 values = append(values, source.Int64Value) 5000 } 5001 case TypedValue_FieldPathSelectorDoubleValue: 5002 if source, ok := source.Value.(*TypedValue_DoubleValue); ok && source != nil { 5003 values = append(values, source.DoubleValue) 5004 } 5005 case TypedValue_FieldPathSelectorStringValue: 5006 if source, ok := source.Value.(*TypedValue_StringValue); ok && source != nil { 5007 values = append(values, source.StringValue) 5008 } 5009 case TypedValue_FieldPathSelectorDistributionValue: 5010 if source, ok := source.Value.(*TypedValue_DistributionValue); ok && source != nil { 5011 if source.DistributionValue != nil { 5012 values = append(values, source.DistributionValue) 5013 } 5014 } 5015 default: 5016 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fp.selector)) 5017 } 5018 } 5019 return 5020 } 5021 5022 func (fp *TypedValue_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 5023 return fp.Get(source.(*TypedValue)) 5024 } 5025 5026 // GetSingle returns value pointed by specific field of from source TypedValue 5027 func (fp *TypedValue_FieldTerminalPath) GetSingle(source *TypedValue) (interface{}, bool) { 5028 switch fp.selector { 5029 case TypedValue_FieldPathSelectorBoolValue: 5030 // if object nil or oneof not active, return "default" type with false flag. 5031 if source == nil { 5032 return source.GetBoolValue(), false 5033 } 5034 _, oneOfSelected := source.Value.(*TypedValue_BoolValue) 5035 if !oneOfSelected { 5036 return source.GetBoolValue(), false // to return "type" information 5037 } 5038 return source.GetBoolValue(), source != nil 5039 case TypedValue_FieldPathSelectorInt64Value: 5040 // if object nil or oneof not active, return "default" type with false flag. 5041 if source == nil { 5042 return source.GetInt64Value(), false 5043 } 5044 _, oneOfSelected := source.Value.(*TypedValue_Int64Value) 5045 if !oneOfSelected { 5046 return source.GetInt64Value(), false // to return "type" information 5047 } 5048 return source.GetInt64Value(), source != nil 5049 case TypedValue_FieldPathSelectorDoubleValue: 5050 // if object nil or oneof not active, return "default" type with false flag. 5051 if source == nil { 5052 return source.GetDoubleValue(), false 5053 } 5054 _, oneOfSelected := source.Value.(*TypedValue_DoubleValue) 5055 if !oneOfSelected { 5056 return source.GetDoubleValue(), false // to return "type" information 5057 } 5058 return source.GetDoubleValue(), source != nil 5059 case TypedValue_FieldPathSelectorStringValue: 5060 // if object nil or oneof not active, return "default" type with false flag. 5061 if source == nil { 5062 return source.GetStringValue(), false 5063 } 5064 _, oneOfSelected := source.Value.(*TypedValue_StringValue) 5065 if !oneOfSelected { 5066 return source.GetStringValue(), false // to return "type" information 5067 } 5068 return source.GetStringValue(), source != nil 5069 case TypedValue_FieldPathSelectorDistributionValue: 5070 // if object nil or oneof not active, return "default" type with false flag. 5071 if source == nil { 5072 return source.GetDistributionValue(), false 5073 } 5074 _, oneOfSelected := source.Value.(*TypedValue_DistributionValue) 5075 if !oneOfSelected { 5076 return source.GetDistributionValue(), false // to return "type" information 5077 } 5078 res := source.GetDistributionValue() 5079 return res, res != nil 5080 default: 5081 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fp.selector)) 5082 } 5083 } 5084 5085 func (fp *TypedValue_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 5086 return fp.GetSingle(source.(*TypedValue)) 5087 } 5088 5089 // GetDefault returns a default value of the field type 5090 func (fp *TypedValue_FieldTerminalPath) GetDefault() interface{} { 5091 switch fp.selector { 5092 case TypedValue_FieldPathSelectorBoolValue: 5093 return false 5094 case TypedValue_FieldPathSelectorInt64Value: 5095 return int64(0) 5096 case TypedValue_FieldPathSelectorDoubleValue: 5097 return float64(0) 5098 case TypedValue_FieldPathSelectorStringValue: 5099 return "" 5100 case TypedValue_FieldPathSelectorDistributionValue: 5101 return (*Distribution)(nil) 5102 default: 5103 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fp.selector)) 5104 } 5105 } 5106 5107 func (fp *TypedValue_FieldTerminalPath) ClearValue(item *TypedValue) { 5108 if item != nil { 5109 switch fp.selector { 5110 case TypedValue_FieldPathSelectorBoolValue: 5111 if item, ok := item.Value.(*TypedValue_BoolValue); ok { 5112 item.BoolValue = false 5113 } 5114 case TypedValue_FieldPathSelectorInt64Value: 5115 if item, ok := item.Value.(*TypedValue_Int64Value); ok { 5116 item.Int64Value = int64(0) 5117 } 5118 case TypedValue_FieldPathSelectorDoubleValue: 5119 if item, ok := item.Value.(*TypedValue_DoubleValue); ok { 5120 item.DoubleValue = float64(0) 5121 } 5122 case TypedValue_FieldPathSelectorStringValue: 5123 if item, ok := item.Value.(*TypedValue_StringValue); ok { 5124 item.StringValue = "" 5125 } 5126 case TypedValue_FieldPathSelectorDistributionValue: 5127 if item, ok := item.Value.(*TypedValue_DistributionValue); ok { 5128 item.DistributionValue = nil 5129 } 5130 default: 5131 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fp.selector)) 5132 } 5133 } 5134 } 5135 5136 func (fp *TypedValue_FieldTerminalPath) ClearValueRaw(item proto.Message) { 5137 fp.ClearValue(item.(*TypedValue)) 5138 } 5139 5140 // IsLeaf - whether field path is holds simple value 5141 func (fp *TypedValue_FieldTerminalPath) IsLeaf() bool { 5142 return fp.selector == TypedValue_FieldPathSelectorBoolValue || 5143 fp.selector == TypedValue_FieldPathSelectorInt64Value || 5144 fp.selector == TypedValue_FieldPathSelectorDoubleValue || 5145 fp.selector == TypedValue_FieldPathSelectorStringValue 5146 } 5147 5148 func (fp *TypedValue_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 5149 return []gotenobject.FieldPath{fp} 5150 } 5151 5152 func (fp *TypedValue_FieldTerminalPath) WithIValue(value interface{}) TypedValue_FieldPathValue { 5153 switch fp.selector { 5154 case TypedValue_FieldPathSelectorBoolValue: 5155 return &TypedValue_FieldTerminalPathValue{TypedValue_FieldTerminalPath: *fp, value: value.(bool)} 5156 case TypedValue_FieldPathSelectorInt64Value: 5157 return &TypedValue_FieldTerminalPathValue{TypedValue_FieldTerminalPath: *fp, value: value.(int64)} 5158 case TypedValue_FieldPathSelectorDoubleValue: 5159 return &TypedValue_FieldTerminalPathValue{TypedValue_FieldTerminalPath: *fp, value: value.(float64)} 5160 case TypedValue_FieldPathSelectorStringValue: 5161 return &TypedValue_FieldTerminalPathValue{TypedValue_FieldTerminalPath: *fp, value: value.(string)} 5162 case TypedValue_FieldPathSelectorDistributionValue: 5163 return &TypedValue_FieldTerminalPathValue{TypedValue_FieldTerminalPath: *fp, value: value.(*Distribution)} 5164 default: 5165 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fp.selector)) 5166 } 5167 } 5168 5169 func (fp *TypedValue_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 5170 return fp.WithIValue(value) 5171 } 5172 5173 func (fp *TypedValue_FieldTerminalPath) WithIArrayOfValues(values interface{}) TypedValue_FieldPathArrayOfValues { 5174 fpaov := &TypedValue_FieldTerminalPathArrayOfValues{TypedValue_FieldTerminalPath: *fp} 5175 switch fp.selector { 5176 case TypedValue_FieldPathSelectorBoolValue: 5177 return &TypedValue_FieldTerminalPathArrayOfValues{TypedValue_FieldTerminalPath: *fp, values: values.([]bool)} 5178 case TypedValue_FieldPathSelectorInt64Value: 5179 return &TypedValue_FieldTerminalPathArrayOfValues{TypedValue_FieldTerminalPath: *fp, values: values.([]int64)} 5180 case TypedValue_FieldPathSelectorDoubleValue: 5181 return &TypedValue_FieldTerminalPathArrayOfValues{TypedValue_FieldTerminalPath: *fp, values: values.([]float64)} 5182 case TypedValue_FieldPathSelectorStringValue: 5183 return &TypedValue_FieldTerminalPathArrayOfValues{TypedValue_FieldTerminalPath: *fp, values: values.([]string)} 5184 case TypedValue_FieldPathSelectorDistributionValue: 5185 return &TypedValue_FieldTerminalPathArrayOfValues{TypedValue_FieldTerminalPath: *fp, values: values.([]*Distribution)} 5186 default: 5187 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fp.selector)) 5188 } 5189 return fpaov 5190 } 5191 5192 func (fp *TypedValue_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 5193 return fp.WithIArrayOfValues(values) 5194 } 5195 5196 func (fp *TypedValue_FieldTerminalPath) WithIArrayItemValue(value interface{}) TypedValue_FieldPathArrayItemValue { 5197 switch fp.selector { 5198 default: 5199 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fp.selector)) 5200 } 5201 } 5202 5203 func (fp *TypedValue_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 5204 return fp.WithIArrayItemValue(value) 5205 } 5206 5207 type TypedValue_FieldSubPath struct { 5208 selector TypedValue_FieldPathSelector 5209 subPath gotenobject.FieldPath 5210 } 5211 5212 var _ TypedValue_FieldPath = (*TypedValue_FieldSubPath)(nil) 5213 5214 func (fps *TypedValue_FieldSubPath) Selector() TypedValue_FieldPathSelector { 5215 return fps.selector 5216 } 5217 func (fps *TypedValue_FieldSubPath) AsDistributionValueSubPath() (Distribution_FieldPath, bool) { 5218 res, ok := fps.subPath.(Distribution_FieldPath) 5219 return res, ok 5220 } 5221 5222 // String returns path representation in proto convention 5223 func (fps *TypedValue_FieldSubPath) String() string { 5224 return fps.selector.String() + "." + fps.subPath.String() 5225 } 5226 5227 // JSONString returns path representation is JSON convention 5228 func (fps *TypedValue_FieldSubPath) JSONString() string { 5229 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 5230 } 5231 5232 // Get returns all values pointed by selected field from source TypedValue 5233 func (fps *TypedValue_FieldSubPath) Get(source *TypedValue) (values []interface{}) { 5234 switch fps.selector { 5235 case TypedValue_FieldPathSelectorDistributionValue: 5236 values = append(values, fps.subPath.GetRaw(source.GetDistributionValue())...) 5237 default: 5238 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fps.selector)) 5239 } 5240 return 5241 } 5242 5243 func (fps *TypedValue_FieldSubPath) GetRaw(source proto.Message) []interface{} { 5244 return fps.Get(source.(*TypedValue)) 5245 } 5246 5247 // GetSingle returns value of selected field from source TypedValue 5248 func (fps *TypedValue_FieldSubPath) GetSingle(source *TypedValue) (interface{}, bool) { 5249 switch fps.selector { 5250 case TypedValue_FieldPathSelectorDistributionValue: 5251 if source.GetDistributionValue() == nil { 5252 return nil, false 5253 } 5254 return fps.subPath.GetSingleRaw(source.GetDistributionValue()) 5255 default: 5256 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fps.selector)) 5257 } 5258 } 5259 5260 func (fps *TypedValue_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 5261 return fps.GetSingle(source.(*TypedValue)) 5262 } 5263 5264 // GetDefault returns a default value of the field type 5265 func (fps *TypedValue_FieldSubPath) GetDefault() interface{} { 5266 return fps.subPath.GetDefault() 5267 } 5268 5269 func (fps *TypedValue_FieldSubPath) ClearValue(item *TypedValue) { 5270 if item != nil { 5271 switch fps.selector { 5272 case TypedValue_FieldPathSelectorDistributionValue: 5273 if item.Value != nil { 5274 if item, ok := item.Value.(*TypedValue_DistributionValue); ok { 5275 fps.subPath.ClearValueRaw(item.DistributionValue) 5276 } 5277 } 5278 default: 5279 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fps.selector)) 5280 } 5281 } 5282 } 5283 5284 func (fps *TypedValue_FieldSubPath) ClearValueRaw(item proto.Message) { 5285 fps.ClearValue(item.(*TypedValue)) 5286 } 5287 5288 // IsLeaf - whether field path is holds simple value 5289 func (fps *TypedValue_FieldSubPath) IsLeaf() bool { 5290 return fps.subPath.IsLeaf() 5291 } 5292 5293 func (fps *TypedValue_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 5294 iPaths := []gotenobject.FieldPath{&TypedValue_FieldTerminalPath{selector: fps.selector}} 5295 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 5296 return iPaths 5297 } 5298 5299 func (fps *TypedValue_FieldSubPath) WithIValue(value interface{}) TypedValue_FieldPathValue { 5300 return &TypedValue_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 5301 } 5302 5303 func (fps *TypedValue_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 5304 return fps.WithIValue(value) 5305 } 5306 5307 func (fps *TypedValue_FieldSubPath) WithIArrayOfValues(values interface{}) TypedValue_FieldPathArrayOfValues { 5308 return &TypedValue_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 5309 } 5310 5311 func (fps *TypedValue_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 5312 return fps.WithIArrayOfValues(values) 5313 } 5314 5315 func (fps *TypedValue_FieldSubPath) WithIArrayItemValue(value interface{}) TypedValue_FieldPathArrayItemValue { 5316 return &TypedValue_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 5317 } 5318 5319 func (fps *TypedValue_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 5320 return fps.WithIArrayItemValue(value) 5321 } 5322 5323 // TypedValue_FieldPathValue allows storing values for TypedValue fields according to their type 5324 type TypedValue_FieldPathValue interface { 5325 TypedValue_FieldPath 5326 gotenobject.FieldPathValue 5327 SetTo(target **TypedValue) 5328 CompareWith(*TypedValue) (cmp int, comparable bool) 5329 } 5330 5331 func ParseTypedValue_FieldPathValue(pathStr, valueStr string) (TypedValue_FieldPathValue, error) { 5332 fp, err := ParseTypedValue_FieldPath(pathStr) 5333 if err != nil { 5334 return nil, err 5335 } 5336 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 5337 if err != nil { 5338 return nil, status.Errorf(codes.InvalidArgument, "error parsing TypedValue field path value from %s: %v", valueStr, err) 5339 } 5340 return fpv.(TypedValue_FieldPathValue), nil 5341 } 5342 5343 func MustParseTypedValue_FieldPathValue(pathStr, valueStr string) TypedValue_FieldPathValue { 5344 fpv, err := ParseTypedValue_FieldPathValue(pathStr, valueStr) 5345 if err != nil { 5346 panic(err) 5347 } 5348 return fpv 5349 } 5350 5351 type TypedValue_FieldTerminalPathValue struct { 5352 TypedValue_FieldTerminalPath 5353 value interface{} 5354 } 5355 5356 var _ TypedValue_FieldPathValue = (*TypedValue_FieldTerminalPathValue)(nil) 5357 5358 // GetRawValue returns raw value stored under selected path for 'TypedValue' as interface{} 5359 func (fpv *TypedValue_FieldTerminalPathValue) GetRawValue() interface{} { 5360 return fpv.value 5361 } 5362 func (fpv *TypedValue_FieldTerminalPathValue) AsBoolValueValue() (bool, bool) { 5363 res, ok := fpv.value.(bool) 5364 return res, ok 5365 } 5366 func (fpv *TypedValue_FieldTerminalPathValue) AsInt64ValueValue() (int64, bool) { 5367 res, ok := fpv.value.(int64) 5368 return res, ok 5369 } 5370 func (fpv *TypedValue_FieldTerminalPathValue) AsDoubleValueValue() (float64, bool) { 5371 res, ok := fpv.value.(float64) 5372 return res, ok 5373 } 5374 func (fpv *TypedValue_FieldTerminalPathValue) AsStringValueValue() (string, bool) { 5375 res, ok := fpv.value.(string) 5376 return res, ok 5377 } 5378 func (fpv *TypedValue_FieldTerminalPathValue) AsDistributionValueValue() (*Distribution, bool) { 5379 res, ok := fpv.value.(*Distribution) 5380 return res, ok 5381 } 5382 5383 // SetTo stores value for selected field for object TypedValue 5384 func (fpv *TypedValue_FieldTerminalPathValue) SetTo(target **TypedValue) { 5385 if *target == nil { 5386 *target = new(TypedValue) 5387 } 5388 switch fpv.selector { 5389 case TypedValue_FieldPathSelectorBoolValue: 5390 if _, ok := (*target).Value.(*TypedValue_BoolValue); !ok { 5391 (*target).Value = &TypedValue_BoolValue{} 5392 } 5393 (*target).Value.(*TypedValue_BoolValue).BoolValue = fpv.value.(bool) 5394 case TypedValue_FieldPathSelectorInt64Value: 5395 if _, ok := (*target).Value.(*TypedValue_Int64Value); !ok { 5396 (*target).Value = &TypedValue_Int64Value{} 5397 } 5398 (*target).Value.(*TypedValue_Int64Value).Int64Value = fpv.value.(int64) 5399 case TypedValue_FieldPathSelectorDoubleValue: 5400 if _, ok := (*target).Value.(*TypedValue_DoubleValue); !ok { 5401 (*target).Value = &TypedValue_DoubleValue{} 5402 } 5403 (*target).Value.(*TypedValue_DoubleValue).DoubleValue = fpv.value.(float64) 5404 case TypedValue_FieldPathSelectorStringValue: 5405 if _, ok := (*target).Value.(*TypedValue_StringValue); !ok { 5406 (*target).Value = &TypedValue_StringValue{} 5407 } 5408 (*target).Value.(*TypedValue_StringValue).StringValue = fpv.value.(string) 5409 case TypedValue_FieldPathSelectorDistributionValue: 5410 if _, ok := (*target).Value.(*TypedValue_DistributionValue); !ok { 5411 (*target).Value = &TypedValue_DistributionValue{} 5412 } 5413 (*target).Value.(*TypedValue_DistributionValue).DistributionValue = fpv.value.(*Distribution) 5414 default: 5415 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fpv.selector)) 5416 } 5417 } 5418 5419 func (fpv *TypedValue_FieldTerminalPathValue) SetToRaw(target proto.Message) { 5420 typedObject := target.(*TypedValue) 5421 fpv.SetTo(&typedObject) 5422 } 5423 5424 // CompareWith compares value in the 'TypedValue_FieldTerminalPathValue' with the value under path in 'TypedValue'. 5425 func (fpv *TypedValue_FieldTerminalPathValue) CompareWith(source *TypedValue) (int, bool) { 5426 switch fpv.selector { 5427 case TypedValue_FieldPathSelectorBoolValue: 5428 leftValue := fpv.value.(bool) 5429 rightValue := source.GetBoolValue() 5430 if (leftValue) == (rightValue) { 5431 return 0, true 5432 } else if !(leftValue) && (rightValue) { 5433 return -1, true 5434 } else { 5435 return 1, true 5436 } 5437 case TypedValue_FieldPathSelectorInt64Value: 5438 leftValue := fpv.value.(int64) 5439 rightValue := source.GetInt64Value() 5440 if (leftValue) == (rightValue) { 5441 return 0, true 5442 } else if (leftValue) < (rightValue) { 5443 return -1, true 5444 } else { 5445 return 1, true 5446 } 5447 case TypedValue_FieldPathSelectorDoubleValue: 5448 leftValue := fpv.value.(float64) 5449 rightValue := source.GetDoubleValue() 5450 if (leftValue) == (rightValue) { 5451 return 0, true 5452 } else if (leftValue) < (rightValue) { 5453 return -1, true 5454 } else { 5455 return 1, true 5456 } 5457 case TypedValue_FieldPathSelectorStringValue: 5458 leftValue := fpv.value.(string) 5459 rightValue := source.GetStringValue() 5460 if (leftValue) == (rightValue) { 5461 return 0, true 5462 } else if (leftValue) < (rightValue) { 5463 return -1, true 5464 } else { 5465 return 1, true 5466 } 5467 case TypedValue_FieldPathSelectorDistributionValue: 5468 return 0, false 5469 default: 5470 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fpv.selector)) 5471 } 5472 } 5473 5474 func (fpv *TypedValue_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 5475 return fpv.CompareWith(source.(*TypedValue)) 5476 } 5477 5478 type TypedValue_FieldSubPathValue struct { 5479 TypedValue_FieldPath 5480 subPathValue gotenobject.FieldPathValue 5481 } 5482 5483 var _ TypedValue_FieldPathValue = (*TypedValue_FieldSubPathValue)(nil) 5484 5485 func (fpvs *TypedValue_FieldSubPathValue) AsDistributionValuePathValue() (Distribution_FieldPathValue, bool) { 5486 res, ok := fpvs.subPathValue.(Distribution_FieldPathValue) 5487 return res, ok 5488 } 5489 5490 func (fpvs *TypedValue_FieldSubPathValue) SetTo(target **TypedValue) { 5491 if *target == nil { 5492 *target = new(TypedValue) 5493 } 5494 switch fpvs.Selector() { 5495 case TypedValue_FieldPathSelectorDistributionValue: 5496 if _, ok := (*target).Value.(*TypedValue_DistributionValue); !ok { 5497 (*target).Value = &TypedValue_DistributionValue{} 5498 } 5499 fpvs.subPathValue.(Distribution_FieldPathValue).SetTo(&(*target).Value.(*TypedValue_DistributionValue).DistributionValue) 5500 default: 5501 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fpvs.Selector())) 5502 } 5503 } 5504 5505 func (fpvs *TypedValue_FieldSubPathValue) SetToRaw(target proto.Message) { 5506 typedObject := target.(*TypedValue) 5507 fpvs.SetTo(&typedObject) 5508 } 5509 5510 func (fpvs *TypedValue_FieldSubPathValue) GetRawValue() interface{} { 5511 return fpvs.subPathValue.GetRawValue() 5512 } 5513 5514 func (fpvs *TypedValue_FieldSubPathValue) CompareWith(source *TypedValue) (int, bool) { 5515 switch fpvs.Selector() { 5516 case TypedValue_FieldPathSelectorDistributionValue: 5517 return fpvs.subPathValue.(Distribution_FieldPathValue).CompareWith(source.GetDistributionValue()) 5518 default: 5519 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fpvs.Selector())) 5520 } 5521 } 5522 5523 func (fpvs *TypedValue_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 5524 return fpvs.CompareWith(source.(*TypedValue)) 5525 } 5526 5527 // TypedValue_FieldPathArrayItemValue allows storing single item in Path-specific values for TypedValue according to their type 5528 // Present only for array (repeated) types. 5529 type TypedValue_FieldPathArrayItemValue interface { 5530 gotenobject.FieldPathArrayItemValue 5531 TypedValue_FieldPath 5532 ContainsValue(*TypedValue) bool 5533 } 5534 5535 // ParseTypedValue_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 5536 func ParseTypedValue_FieldPathArrayItemValue(pathStr, valueStr string) (TypedValue_FieldPathArrayItemValue, error) { 5537 fp, err := ParseTypedValue_FieldPath(pathStr) 5538 if err != nil { 5539 return nil, err 5540 } 5541 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 5542 if err != nil { 5543 return nil, status.Errorf(codes.InvalidArgument, "error parsing TypedValue field path array item value from %s: %v", valueStr, err) 5544 } 5545 return fpaiv.(TypedValue_FieldPathArrayItemValue), nil 5546 } 5547 5548 func MustParseTypedValue_FieldPathArrayItemValue(pathStr, valueStr string) TypedValue_FieldPathArrayItemValue { 5549 fpaiv, err := ParseTypedValue_FieldPathArrayItemValue(pathStr, valueStr) 5550 if err != nil { 5551 panic(err) 5552 } 5553 return fpaiv 5554 } 5555 5556 type TypedValue_FieldTerminalPathArrayItemValue struct { 5557 TypedValue_FieldTerminalPath 5558 value interface{} 5559 } 5560 5561 var _ TypedValue_FieldPathArrayItemValue = (*TypedValue_FieldTerminalPathArrayItemValue)(nil) 5562 5563 // GetRawValue returns stored element value for array in object TypedValue as interface{} 5564 func (fpaiv *TypedValue_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 5565 return fpaiv.value 5566 } 5567 5568 func (fpaiv *TypedValue_FieldTerminalPathArrayItemValue) GetSingle(source *TypedValue) (interface{}, bool) { 5569 return nil, false 5570 } 5571 5572 func (fpaiv *TypedValue_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 5573 return fpaiv.GetSingle(source.(*TypedValue)) 5574 } 5575 5576 // Contains returns a boolean indicating if value that is being held is present in given 'TypedValue' 5577 func (fpaiv *TypedValue_FieldTerminalPathArrayItemValue) ContainsValue(source *TypedValue) bool { 5578 slice := fpaiv.TypedValue_FieldTerminalPath.Get(source) 5579 for _, v := range slice { 5580 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 5581 if proto.Equal(asProtoMsg, v.(proto.Message)) { 5582 return true 5583 } 5584 } else if reflect.DeepEqual(v, fpaiv.value) { 5585 return true 5586 } 5587 } 5588 return false 5589 } 5590 5591 type TypedValue_FieldSubPathArrayItemValue struct { 5592 TypedValue_FieldPath 5593 subPathItemValue gotenobject.FieldPathArrayItemValue 5594 } 5595 5596 // GetRawValue returns stored array item value 5597 func (fpaivs *TypedValue_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 5598 return fpaivs.subPathItemValue.GetRawItemValue() 5599 } 5600 func (fpaivs *TypedValue_FieldSubPathArrayItemValue) AsDistributionValuePathItemValue() (Distribution_FieldPathArrayItemValue, bool) { 5601 res, ok := fpaivs.subPathItemValue.(Distribution_FieldPathArrayItemValue) 5602 return res, ok 5603 } 5604 5605 // Contains returns a boolean indicating if value that is being held is present in given 'TypedValue' 5606 func (fpaivs *TypedValue_FieldSubPathArrayItemValue) ContainsValue(source *TypedValue) bool { 5607 switch fpaivs.Selector() { 5608 case TypedValue_FieldPathSelectorDistributionValue: 5609 return fpaivs.subPathItemValue.(Distribution_FieldPathArrayItemValue).ContainsValue(source.GetDistributionValue()) 5610 default: 5611 panic(fmt.Sprintf("Invalid selector for TypedValue: %d", fpaivs.Selector())) 5612 } 5613 } 5614 5615 // TypedValue_FieldPathArrayOfValues allows storing slice of values for TypedValue fields according to their type 5616 type TypedValue_FieldPathArrayOfValues interface { 5617 gotenobject.FieldPathArrayOfValues 5618 TypedValue_FieldPath 5619 } 5620 5621 func ParseTypedValue_FieldPathArrayOfValues(pathStr, valuesStr string) (TypedValue_FieldPathArrayOfValues, error) { 5622 fp, err := ParseTypedValue_FieldPath(pathStr) 5623 if err != nil { 5624 return nil, err 5625 } 5626 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 5627 if err != nil { 5628 return nil, status.Errorf(codes.InvalidArgument, "error parsing TypedValue field path array of values from %s: %v", valuesStr, err) 5629 } 5630 return fpaov.(TypedValue_FieldPathArrayOfValues), nil 5631 } 5632 5633 func MustParseTypedValue_FieldPathArrayOfValues(pathStr, valuesStr string) TypedValue_FieldPathArrayOfValues { 5634 fpaov, err := ParseTypedValue_FieldPathArrayOfValues(pathStr, valuesStr) 5635 if err != nil { 5636 panic(err) 5637 } 5638 return fpaov 5639 } 5640 5641 type TypedValue_FieldTerminalPathArrayOfValues struct { 5642 TypedValue_FieldTerminalPath 5643 values interface{} 5644 } 5645 5646 var _ TypedValue_FieldPathArrayOfValues = (*TypedValue_FieldTerminalPathArrayOfValues)(nil) 5647 5648 func (fpaov *TypedValue_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 5649 switch fpaov.selector { 5650 case TypedValue_FieldPathSelectorBoolValue: 5651 for _, v := range fpaov.values.([]bool) { 5652 values = append(values, v) 5653 } 5654 case TypedValue_FieldPathSelectorInt64Value: 5655 for _, v := range fpaov.values.([]int64) { 5656 values = append(values, v) 5657 } 5658 case TypedValue_FieldPathSelectorDoubleValue: 5659 for _, v := range fpaov.values.([]float64) { 5660 values = append(values, v) 5661 } 5662 case TypedValue_FieldPathSelectorStringValue: 5663 for _, v := range fpaov.values.([]string) { 5664 values = append(values, v) 5665 } 5666 case TypedValue_FieldPathSelectorDistributionValue: 5667 for _, v := range fpaov.values.([]*Distribution) { 5668 values = append(values, v) 5669 } 5670 } 5671 return 5672 } 5673 func (fpaov *TypedValue_FieldTerminalPathArrayOfValues) AsBoolValueArrayOfValues() ([]bool, bool) { 5674 res, ok := fpaov.values.([]bool) 5675 return res, ok 5676 } 5677 func (fpaov *TypedValue_FieldTerminalPathArrayOfValues) AsInt64ValueArrayOfValues() ([]int64, bool) { 5678 res, ok := fpaov.values.([]int64) 5679 return res, ok 5680 } 5681 func (fpaov *TypedValue_FieldTerminalPathArrayOfValues) AsDoubleValueArrayOfValues() ([]float64, bool) { 5682 res, ok := fpaov.values.([]float64) 5683 return res, ok 5684 } 5685 func (fpaov *TypedValue_FieldTerminalPathArrayOfValues) AsStringValueArrayOfValues() ([]string, bool) { 5686 res, ok := fpaov.values.([]string) 5687 return res, ok 5688 } 5689 func (fpaov *TypedValue_FieldTerminalPathArrayOfValues) AsDistributionValueArrayOfValues() ([]*Distribution, bool) { 5690 res, ok := fpaov.values.([]*Distribution) 5691 return res, ok 5692 } 5693 5694 type TypedValue_FieldSubPathArrayOfValues struct { 5695 TypedValue_FieldPath 5696 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 5697 } 5698 5699 var _ TypedValue_FieldPathArrayOfValues = (*TypedValue_FieldSubPathArrayOfValues)(nil) 5700 5701 func (fpsaov *TypedValue_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 5702 return fpsaov.subPathArrayOfValues.GetRawValues() 5703 } 5704 func (fpsaov *TypedValue_FieldSubPathArrayOfValues) AsDistributionValuePathArrayOfValues() (Distribution_FieldPathArrayOfValues, bool) { 5705 res, ok := fpsaov.subPathArrayOfValues.(Distribution_FieldPathArrayOfValues) 5706 return res, ok 5707 } 5708 5709 // FieldPath provides implementation to handle 5710 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 5711 type TimeInterval_FieldPath interface { 5712 gotenobject.FieldPath 5713 Selector() TimeInterval_FieldPathSelector 5714 Get(source *TimeInterval) []interface{} 5715 GetSingle(source *TimeInterval) (interface{}, bool) 5716 ClearValue(item *TimeInterval) 5717 5718 // Those methods build corresponding TimeInterval_FieldPathValue 5719 // (or array of values) and holds passed value. Panics if injected type is incorrect. 5720 WithIValue(value interface{}) TimeInterval_FieldPathValue 5721 WithIArrayOfValues(values interface{}) TimeInterval_FieldPathArrayOfValues 5722 WithIArrayItemValue(value interface{}) TimeInterval_FieldPathArrayItemValue 5723 } 5724 5725 type TimeInterval_FieldPathSelector int32 5726 5727 const ( 5728 TimeInterval_FieldPathSelectorEndTime TimeInterval_FieldPathSelector = 0 5729 TimeInterval_FieldPathSelectorStartTime TimeInterval_FieldPathSelector = 1 5730 ) 5731 5732 func (s TimeInterval_FieldPathSelector) String() string { 5733 switch s { 5734 case TimeInterval_FieldPathSelectorEndTime: 5735 return "end_time" 5736 case TimeInterval_FieldPathSelectorStartTime: 5737 return "start_time" 5738 default: 5739 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", s)) 5740 } 5741 } 5742 5743 func BuildTimeInterval_FieldPath(fp gotenobject.RawFieldPath) (TimeInterval_FieldPath, error) { 5744 if len(fp) == 0 { 5745 return nil, status.Error(codes.InvalidArgument, "empty field path for object TimeInterval") 5746 } 5747 if len(fp) == 1 { 5748 switch fp[0] { 5749 case "end_time", "endTime", "end-time": 5750 return &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorEndTime}, nil 5751 case "start_time", "startTime", "start-time": 5752 return &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorStartTime}, nil 5753 } 5754 } 5755 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object TimeInterval", fp) 5756 } 5757 5758 func ParseTimeInterval_FieldPath(rawField string) (TimeInterval_FieldPath, error) { 5759 fp, err := gotenobject.ParseRawFieldPath(rawField) 5760 if err != nil { 5761 return nil, err 5762 } 5763 return BuildTimeInterval_FieldPath(fp) 5764 } 5765 5766 func MustParseTimeInterval_FieldPath(rawField string) TimeInterval_FieldPath { 5767 fp, err := ParseTimeInterval_FieldPath(rawField) 5768 if err != nil { 5769 panic(err) 5770 } 5771 return fp 5772 } 5773 5774 type TimeInterval_FieldTerminalPath struct { 5775 selector TimeInterval_FieldPathSelector 5776 } 5777 5778 var _ TimeInterval_FieldPath = (*TimeInterval_FieldTerminalPath)(nil) 5779 5780 func (fp *TimeInterval_FieldTerminalPath) Selector() TimeInterval_FieldPathSelector { 5781 return fp.selector 5782 } 5783 5784 // String returns path representation in proto convention 5785 func (fp *TimeInterval_FieldTerminalPath) String() string { 5786 return fp.selector.String() 5787 } 5788 5789 // JSONString returns path representation is JSON convention 5790 func (fp *TimeInterval_FieldTerminalPath) JSONString() string { 5791 return strcase.ToLowerCamel(fp.String()) 5792 } 5793 5794 // Get returns all values pointed by specific field from source TimeInterval 5795 func (fp *TimeInterval_FieldTerminalPath) Get(source *TimeInterval) (values []interface{}) { 5796 if source != nil { 5797 switch fp.selector { 5798 case TimeInterval_FieldPathSelectorEndTime: 5799 if source.EndTime != nil { 5800 values = append(values, source.EndTime) 5801 } 5802 case TimeInterval_FieldPathSelectorStartTime: 5803 if source.StartTime != nil { 5804 values = append(values, source.StartTime) 5805 } 5806 default: 5807 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 5808 } 5809 } 5810 return 5811 } 5812 5813 func (fp *TimeInterval_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 5814 return fp.Get(source.(*TimeInterval)) 5815 } 5816 5817 // GetSingle returns value pointed by specific field of from source TimeInterval 5818 func (fp *TimeInterval_FieldTerminalPath) GetSingle(source *TimeInterval) (interface{}, bool) { 5819 switch fp.selector { 5820 case TimeInterval_FieldPathSelectorEndTime: 5821 res := source.GetEndTime() 5822 return res, res != nil 5823 case TimeInterval_FieldPathSelectorStartTime: 5824 res := source.GetStartTime() 5825 return res, res != nil 5826 default: 5827 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 5828 } 5829 } 5830 5831 func (fp *TimeInterval_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 5832 return fp.GetSingle(source.(*TimeInterval)) 5833 } 5834 5835 // GetDefault returns a default value of the field type 5836 func (fp *TimeInterval_FieldTerminalPath) GetDefault() interface{} { 5837 switch fp.selector { 5838 case TimeInterval_FieldPathSelectorEndTime: 5839 return (*timestamppb.Timestamp)(nil) 5840 case TimeInterval_FieldPathSelectorStartTime: 5841 return (*timestamppb.Timestamp)(nil) 5842 default: 5843 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 5844 } 5845 } 5846 5847 func (fp *TimeInterval_FieldTerminalPath) ClearValue(item *TimeInterval) { 5848 if item != nil { 5849 switch fp.selector { 5850 case TimeInterval_FieldPathSelectorEndTime: 5851 item.EndTime = nil 5852 case TimeInterval_FieldPathSelectorStartTime: 5853 item.StartTime = nil 5854 default: 5855 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 5856 } 5857 } 5858 } 5859 5860 func (fp *TimeInterval_FieldTerminalPath) ClearValueRaw(item proto.Message) { 5861 fp.ClearValue(item.(*TimeInterval)) 5862 } 5863 5864 // IsLeaf - whether field path is holds simple value 5865 func (fp *TimeInterval_FieldTerminalPath) IsLeaf() bool { 5866 return fp.selector == TimeInterval_FieldPathSelectorEndTime || 5867 fp.selector == TimeInterval_FieldPathSelectorStartTime 5868 } 5869 5870 func (fp *TimeInterval_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 5871 return []gotenobject.FieldPath{fp} 5872 } 5873 5874 func (fp *TimeInterval_FieldTerminalPath) WithIValue(value interface{}) TimeInterval_FieldPathValue { 5875 switch fp.selector { 5876 case TimeInterval_FieldPathSelectorEndTime: 5877 return &TimeInterval_FieldTerminalPathValue{TimeInterval_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)} 5878 case TimeInterval_FieldPathSelectorStartTime: 5879 return &TimeInterval_FieldTerminalPathValue{TimeInterval_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)} 5880 default: 5881 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 5882 } 5883 } 5884 5885 func (fp *TimeInterval_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 5886 return fp.WithIValue(value) 5887 } 5888 5889 func (fp *TimeInterval_FieldTerminalPath) WithIArrayOfValues(values interface{}) TimeInterval_FieldPathArrayOfValues { 5890 fpaov := &TimeInterval_FieldTerminalPathArrayOfValues{TimeInterval_FieldTerminalPath: *fp} 5891 switch fp.selector { 5892 case TimeInterval_FieldPathSelectorEndTime: 5893 return &TimeInterval_FieldTerminalPathArrayOfValues{TimeInterval_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)} 5894 case TimeInterval_FieldPathSelectorStartTime: 5895 return &TimeInterval_FieldTerminalPathArrayOfValues{TimeInterval_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)} 5896 default: 5897 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 5898 } 5899 return fpaov 5900 } 5901 5902 func (fp *TimeInterval_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 5903 return fp.WithIArrayOfValues(values) 5904 } 5905 5906 func (fp *TimeInterval_FieldTerminalPath) WithIArrayItemValue(value interface{}) TimeInterval_FieldPathArrayItemValue { 5907 switch fp.selector { 5908 default: 5909 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 5910 } 5911 } 5912 5913 func (fp *TimeInterval_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 5914 return fp.WithIArrayItemValue(value) 5915 } 5916 5917 // TimeInterval_FieldPathValue allows storing values for TimeInterval fields according to their type 5918 type TimeInterval_FieldPathValue interface { 5919 TimeInterval_FieldPath 5920 gotenobject.FieldPathValue 5921 SetTo(target **TimeInterval) 5922 CompareWith(*TimeInterval) (cmp int, comparable bool) 5923 } 5924 5925 func ParseTimeInterval_FieldPathValue(pathStr, valueStr string) (TimeInterval_FieldPathValue, error) { 5926 fp, err := ParseTimeInterval_FieldPath(pathStr) 5927 if err != nil { 5928 return nil, err 5929 } 5930 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 5931 if err != nil { 5932 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeInterval field path value from %s: %v", valueStr, err) 5933 } 5934 return fpv.(TimeInterval_FieldPathValue), nil 5935 } 5936 5937 func MustParseTimeInterval_FieldPathValue(pathStr, valueStr string) TimeInterval_FieldPathValue { 5938 fpv, err := ParseTimeInterval_FieldPathValue(pathStr, valueStr) 5939 if err != nil { 5940 panic(err) 5941 } 5942 return fpv 5943 } 5944 5945 type TimeInterval_FieldTerminalPathValue struct { 5946 TimeInterval_FieldTerminalPath 5947 value interface{} 5948 } 5949 5950 var _ TimeInterval_FieldPathValue = (*TimeInterval_FieldTerminalPathValue)(nil) 5951 5952 // GetRawValue returns raw value stored under selected path for 'TimeInterval' as interface{} 5953 func (fpv *TimeInterval_FieldTerminalPathValue) GetRawValue() interface{} { 5954 return fpv.value 5955 } 5956 func (fpv *TimeInterval_FieldTerminalPathValue) AsEndTimeValue() (*timestamppb.Timestamp, bool) { 5957 res, ok := fpv.value.(*timestamppb.Timestamp) 5958 return res, ok 5959 } 5960 func (fpv *TimeInterval_FieldTerminalPathValue) AsStartTimeValue() (*timestamppb.Timestamp, bool) { 5961 res, ok := fpv.value.(*timestamppb.Timestamp) 5962 return res, ok 5963 } 5964 5965 // SetTo stores value for selected field for object TimeInterval 5966 func (fpv *TimeInterval_FieldTerminalPathValue) SetTo(target **TimeInterval) { 5967 if *target == nil { 5968 *target = new(TimeInterval) 5969 } 5970 switch fpv.selector { 5971 case TimeInterval_FieldPathSelectorEndTime: 5972 (*target).EndTime = fpv.value.(*timestamppb.Timestamp) 5973 case TimeInterval_FieldPathSelectorStartTime: 5974 (*target).StartTime = fpv.value.(*timestamppb.Timestamp) 5975 default: 5976 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fpv.selector)) 5977 } 5978 } 5979 5980 func (fpv *TimeInterval_FieldTerminalPathValue) SetToRaw(target proto.Message) { 5981 typedObject := target.(*TimeInterval) 5982 fpv.SetTo(&typedObject) 5983 } 5984 5985 // CompareWith compares value in the 'TimeInterval_FieldTerminalPathValue' with the value under path in 'TimeInterval'. 5986 func (fpv *TimeInterval_FieldTerminalPathValue) CompareWith(source *TimeInterval) (int, bool) { 5987 switch fpv.selector { 5988 case TimeInterval_FieldPathSelectorEndTime: 5989 leftValue := fpv.value.(*timestamppb.Timestamp) 5990 rightValue := source.GetEndTime() 5991 if leftValue == nil { 5992 if rightValue != nil { 5993 return -1, true 5994 } 5995 return 0, true 5996 } 5997 if rightValue == nil { 5998 return 1, true 5999 } 6000 if leftValue.AsTime().Equal(rightValue.AsTime()) { 6001 return 0, true 6002 } else if leftValue.AsTime().Before(rightValue.AsTime()) { 6003 return -1, true 6004 } else { 6005 return 1, true 6006 } 6007 case TimeInterval_FieldPathSelectorStartTime: 6008 leftValue := fpv.value.(*timestamppb.Timestamp) 6009 rightValue := source.GetStartTime() 6010 if leftValue == nil { 6011 if rightValue != nil { 6012 return -1, true 6013 } 6014 return 0, true 6015 } 6016 if rightValue == nil { 6017 return 1, true 6018 } 6019 if leftValue.AsTime().Equal(rightValue.AsTime()) { 6020 return 0, true 6021 } else if leftValue.AsTime().Before(rightValue.AsTime()) { 6022 return -1, true 6023 } else { 6024 return 1, true 6025 } 6026 default: 6027 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fpv.selector)) 6028 } 6029 } 6030 6031 func (fpv *TimeInterval_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 6032 return fpv.CompareWith(source.(*TimeInterval)) 6033 } 6034 6035 // TimeInterval_FieldPathArrayItemValue allows storing single item in Path-specific values for TimeInterval according to their type 6036 // Present only for array (repeated) types. 6037 type TimeInterval_FieldPathArrayItemValue interface { 6038 gotenobject.FieldPathArrayItemValue 6039 TimeInterval_FieldPath 6040 ContainsValue(*TimeInterval) bool 6041 } 6042 6043 // ParseTimeInterval_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 6044 func ParseTimeInterval_FieldPathArrayItemValue(pathStr, valueStr string) (TimeInterval_FieldPathArrayItemValue, error) { 6045 fp, err := ParseTimeInterval_FieldPath(pathStr) 6046 if err != nil { 6047 return nil, err 6048 } 6049 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 6050 if err != nil { 6051 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeInterval field path array item value from %s: %v", valueStr, err) 6052 } 6053 return fpaiv.(TimeInterval_FieldPathArrayItemValue), nil 6054 } 6055 6056 func MustParseTimeInterval_FieldPathArrayItemValue(pathStr, valueStr string) TimeInterval_FieldPathArrayItemValue { 6057 fpaiv, err := ParseTimeInterval_FieldPathArrayItemValue(pathStr, valueStr) 6058 if err != nil { 6059 panic(err) 6060 } 6061 return fpaiv 6062 } 6063 6064 type TimeInterval_FieldTerminalPathArrayItemValue struct { 6065 TimeInterval_FieldTerminalPath 6066 value interface{} 6067 } 6068 6069 var _ TimeInterval_FieldPathArrayItemValue = (*TimeInterval_FieldTerminalPathArrayItemValue)(nil) 6070 6071 // GetRawValue returns stored element value for array in object TimeInterval as interface{} 6072 func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 6073 return fpaiv.value 6074 } 6075 6076 func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) GetSingle(source *TimeInterval) (interface{}, bool) { 6077 return nil, false 6078 } 6079 6080 func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 6081 return fpaiv.GetSingle(source.(*TimeInterval)) 6082 } 6083 6084 // Contains returns a boolean indicating if value that is being held is present in given 'TimeInterval' 6085 func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) ContainsValue(source *TimeInterval) bool { 6086 slice := fpaiv.TimeInterval_FieldTerminalPath.Get(source) 6087 for _, v := range slice { 6088 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 6089 if proto.Equal(asProtoMsg, v.(proto.Message)) { 6090 return true 6091 } 6092 } else if reflect.DeepEqual(v, fpaiv.value) { 6093 return true 6094 } 6095 } 6096 return false 6097 } 6098 6099 // TimeInterval_FieldPathArrayOfValues allows storing slice of values for TimeInterval fields according to their type 6100 type TimeInterval_FieldPathArrayOfValues interface { 6101 gotenobject.FieldPathArrayOfValues 6102 TimeInterval_FieldPath 6103 } 6104 6105 func ParseTimeInterval_FieldPathArrayOfValues(pathStr, valuesStr string) (TimeInterval_FieldPathArrayOfValues, error) { 6106 fp, err := ParseTimeInterval_FieldPath(pathStr) 6107 if err != nil { 6108 return nil, err 6109 } 6110 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 6111 if err != nil { 6112 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeInterval field path array of values from %s: %v", valuesStr, err) 6113 } 6114 return fpaov.(TimeInterval_FieldPathArrayOfValues), nil 6115 } 6116 6117 func MustParseTimeInterval_FieldPathArrayOfValues(pathStr, valuesStr string) TimeInterval_FieldPathArrayOfValues { 6118 fpaov, err := ParseTimeInterval_FieldPathArrayOfValues(pathStr, valuesStr) 6119 if err != nil { 6120 panic(err) 6121 } 6122 return fpaov 6123 } 6124 6125 type TimeInterval_FieldTerminalPathArrayOfValues struct { 6126 TimeInterval_FieldTerminalPath 6127 values interface{} 6128 } 6129 6130 var _ TimeInterval_FieldPathArrayOfValues = (*TimeInterval_FieldTerminalPathArrayOfValues)(nil) 6131 6132 func (fpaov *TimeInterval_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 6133 switch fpaov.selector { 6134 case TimeInterval_FieldPathSelectorEndTime: 6135 for _, v := range fpaov.values.([]*timestamppb.Timestamp) { 6136 values = append(values, v) 6137 } 6138 case TimeInterval_FieldPathSelectorStartTime: 6139 for _, v := range fpaov.values.([]*timestamppb.Timestamp) { 6140 values = append(values, v) 6141 } 6142 } 6143 return 6144 } 6145 func (fpaov *TimeInterval_FieldTerminalPathArrayOfValues) AsEndTimeArrayOfValues() ([]*timestamppb.Timestamp, bool) { 6146 res, ok := fpaov.values.([]*timestamppb.Timestamp) 6147 return res, ok 6148 } 6149 func (fpaov *TimeInterval_FieldTerminalPathArrayOfValues) AsStartTimeArrayOfValues() ([]*timestamppb.Timestamp, bool) { 6150 res, ok := fpaov.values.([]*timestamppb.Timestamp) 6151 return res, ok 6152 } 6153 6154 // FieldPath provides implementation to handle 6155 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 6156 type TimeRange_FieldPath interface { 6157 gotenobject.FieldPath 6158 Selector() TimeRange_FieldPathSelector 6159 Get(source *TimeRange) []interface{} 6160 GetSingle(source *TimeRange) (interface{}, bool) 6161 ClearValue(item *TimeRange) 6162 6163 // Those methods build corresponding TimeRange_FieldPathValue 6164 // (or array of values) and holds passed value. Panics if injected type is incorrect. 6165 WithIValue(value interface{}) TimeRange_FieldPathValue 6166 WithIArrayOfValues(values interface{}) TimeRange_FieldPathArrayOfValues 6167 WithIArrayItemValue(value interface{}) TimeRange_FieldPathArrayItemValue 6168 } 6169 6170 type TimeRange_FieldPathSelector int32 6171 6172 const ( 6173 TimeRange_FieldPathSelectorStartTime TimeRange_FieldPathSelector = 0 6174 TimeRange_FieldPathSelectorEndTime TimeRange_FieldPathSelector = 1 6175 ) 6176 6177 func (s TimeRange_FieldPathSelector) String() string { 6178 switch s { 6179 case TimeRange_FieldPathSelectorStartTime: 6180 return "start_time" 6181 case TimeRange_FieldPathSelectorEndTime: 6182 return "end_time" 6183 default: 6184 panic(fmt.Sprintf("Invalid selector for TimeRange: %d", s)) 6185 } 6186 } 6187 6188 func BuildTimeRange_FieldPath(fp gotenobject.RawFieldPath) (TimeRange_FieldPath, error) { 6189 if len(fp) == 0 { 6190 return nil, status.Error(codes.InvalidArgument, "empty field path for object TimeRange") 6191 } 6192 if len(fp) == 1 { 6193 switch fp[0] { 6194 case "start_time", "startTime", "start-time": 6195 return &TimeRange_FieldTerminalPath{selector: TimeRange_FieldPathSelectorStartTime}, nil 6196 case "end_time", "endTime", "end-time": 6197 return &TimeRange_FieldTerminalPath{selector: TimeRange_FieldPathSelectorEndTime}, nil 6198 } 6199 } 6200 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object TimeRange", fp) 6201 } 6202 6203 func ParseTimeRange_FieldPath(rawField string) (TimeRange_FieldPath, error) { 6204 fp, err := gotenobject.ParseRawFieldPath(rawField) 6205 if err != nil { 6206 return nil, err 6207 } 6208 return BuildTimeRange_FieldPath(fp) 6209 } 6210 6211 func MustParseTimeRange_FieldPath(rawField string) TimeRange_FieldPath { 6212 fp, err := ParseTimeRange_FieldPath(rawField) 6213 if err != nil { 6214 panic(err) 6215 } 6216 return fp 6217 } 6218 6219 type TimeRange_FieldTerminalPath struct { 6220 selector TimeRange_FieldPathSelector 6221 } 6222 6223 var _ TimeRange_FieldPath = (*TimeRange_FieldTerminalPath)(nil) 6224 6225 func (fp *TimeRange_FieldTerminalPath) Selector() TimeRange_FieldPathSelector { 6226 return fp.selector 6227 } 6228 6229 // String returns path representation in proto convention 6230 func (fp *TimeRange_FieldTerminalPath) String() string { 6231 return fp.selector.String() 6232 } 6233 6234 // JSONString returns path representation is JSON convention 6235 func (fp *TimeRange_FieldTerminalPath) JSONString() string { 6236 return strcase.ToLowerCamel(fp.String()) 6237 } 6238 6239 // Get returns all values pointed by specific field from source TimeRange 6240 func (fp *TimeRange_FieldTerminalPath) Get(source *TimeRange) (values []interface{}) { 6241 if source != nil { 6242 switch fp.selector { 6243 case TimeRange_FieldPathSelectorStartTime: 6244 if source.StartTime != nil { 6245 values = append(values, source.StartTime) 6246 } 6247 case TimeRange_FieldPathSelectorEndTime: 6248 if source.EndTime != nil { 6249 values = append(values, source.EndTime) 6250 } 6251 default: 6252 panic(fmt.Sprintf("Invalid selector for TimeRange: %d", fp.selector)) 6253 } 6254 } 6255 return 6256 } 6257 6258 func (fp *TimeRange_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 6259 return fp.Get(source.(*TimeRange)) 6260 } 6261 6262 // GetSingle returns value pointed by specific field of from source TimeRange 6263 func (fp *TimeRange_FieldTerminalPath) GetSingle(source *TimeRange) (interface{}, bool) { 6264 switch fp.selector { 6265 case TimeRange_FieldPathSelectorStartTime: 6266 res := source.GetStartTime() 6267 return res, res != nil 6268 case TimeRange_FieldPathSelectorEndTime: 6269 res := source.GetEndTime() 6270 return res, res != nil 6271 default: 6272 panic(fmt.Sprintf("Invalid selector for TimeRange: %d", fp.selector)) 6273 } 6274 } 6275 6276 func (fp *TimeRange_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 6277 return fp.GetSingle(source.(*TimeRange)) 6278 } 6279 6280 // GetDefault returns a default value of the field type 6281 func (fp *TimeRange_FieldTerminalPath) GetDefault() interface{} { 6282 switch fp.selector { 6283 case TimeRange_FieldPathSelectorStartTime: 6284 return (*timestamppb.Timestamp)(nil) 6285 case TimeRange_FieldPathSelectorEndTime: 6286 return (*timestamppb.Timestamp)(nil) 6287 default: 6288 panic(fmt.Sprintf("Invalid selector for TimeRange: %d", fp.selector)) 6289 } 6290 } 6291 6292 func (fp *TimeRange_FieldTerminalPath) ClearValue(item *TimeRange) { 6293 if item != nil { 6294 switch fp.selector { 6295 case TimeRange_FieldPathSelectorStartTime: 6296 item.StartTime = nil 6297 case TimeRange_FieldPathSelectorEndTime: 6298 item.EndTime = nil 6299 default: 6300 panic(fmt.Sprintf("Invalid selector for TimeRange: %d", fp.selector)) 6301 } 6302 } 6303 } 6304 6305 func (fp *TimeRange_FieldTerminalPath) ClearValueRaw(item proto.Message) { 6306 fp.ClearValue(item.(*TimeRange)) 6307 } 6308 6309 // IsLeaf - whether field path is holds simple value 6310 func (fp *TimeRange_FieldTerminalPath) IsLeaf() bool { 6311 return fp.selector == TimeRange_FieldPathSelectorStartTime || 6312 fp.selector == TimeRange_FieldPathSelectorEndTime 6313 } 6314 6315 func (fp *TimeRange_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 6316 return []gotenobject.FieldPath{fp} 6317 } 6318 6319 func (fp *TimeRange_FieldTerminalPath) WithIValue(value interface{}) TimeRange_FieldPathValue { 6320 switch fp.selector { 6321 case TimeRange_FieldPathSelectorStartTime: 6322 return &TimeRange_FieldTerminalPathValue{TimeRange_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)} 6323 case TimeRange_FieldPathSelectorEndTime: 6324 return &TimeRange_FieldTerminalPathValue{TimeRange_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)} 6325 default: 6326 panic(fmt.Sprintf("Invalid selector for TimeRange: %d", fp.selector)) 6327 } 6328 } 6329 6330 func (fp *TimeRange_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 6331 return fp.WithIValue(value) 6332 } 6333 6334 func (fp *TimeRange_FieldTerminalPath) WithIArrayOfValues(values interface{}) TimeRange_FieldPathArrayOfValues { 6335 fpaov := &TimeRange_FieldTerminalPathArrayOfValues{TimeRange_FieldTerminalPath: *fp} 6336 switch fp.selector { 6337 case TimeRange_FieldPathSelectorStartTime: 6338 return &TimeRange_FieldTerminalPathArrayOfValues{TimeRange_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)} 6339 case TimeRange_FieldPathSelectorEndTime: 6340 return &TimeRange_FieldTerminalPathArrayOfValues{TimeRange_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)} 6341 default: 6342 panic(fmt.Sprintf("Invalid selector for TimeRange: %d", fp.selector)) 6343 } 6344 return fpaov 6345 } 6346 6347 func (fp *TimeRange_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 6348 return fp.WithIArrayOfValues(values) 6349 } 6350 6351 func (fp *TimeRange_FieldTerminalPath) WithIArrayItemValue(value interface{}) TimeRange_FieldPathArrayItemValue { 6352 switch fp.selector { 6353 default: 6354 panic(fmt.Sprintf("Invalid selector for TimeRange: %d", fp.selector)) 6355 } 6356 } 6357 6358 func (fp *TimeRange_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 6359 return fp.WithIArrayItemValue(value) 6360 } 6361 6362 // TimeRange_FieldPathValue allows storing values for TimeRange fields according to their type 6363 type TimeRange_FieldPathValue interface { 6364 TimeRange_FieldPath 6365 gotenobject.FieldPathValue 6366 SetTo(target **TimeRange) 6367 CompareWith(*TimeRange) (cmp int, comparable bool) 6368 } 6369 6370 func ParseTimeRange_FieldPathValue(pathStr, valueStr string) (TimeRange_FieldPathValue, error) { 6371 fp, err := ParseTimeRange_FieldPath(pathStr) 6372 if err != nil { 6373 return nil, err 6374 } 6375 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 6376 if err != nil { 6377 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeRange field path value from %s: %v", valueStr, err) 6378 } 6379 return fpv.(TimeRange_FieldPathValue), nil 6380 } 6381 6382 func MustParseTimeRange_FieldPathValue(pathStr, valueStr string) TimeRange_FieldPathValue { 6383 fpv, err := ParseTimeRange_FieldPathValue(pathStr, valueStr) 6384 if err != nil { 6385 panic(err) 6386 } 6387 return fpv 6388 } 6389 6390 type TimeRange_FieldTerminalPathValue struct { 6391 TimeRange_FieldTerminalPath 6392 value interface{} 6393 } 6394 6395 var _ TimeRange_FieldPathValue = (*TimeRange_FieldTerminalPathValue)(nil) 6396 6397 // GetRawValue returns raw value stored under selected path for 'TimeRange' as interface{} 6398 func (fpv *TimeRange_FieldTerminalPathValue) GetRawValue() interface{} { 6399 return fpv.value 6400 } 6401 func (fpv *TimeRange_FieldTerminalPathValue) AsStartTimeValue() (*timestamppb.Timestamp, bool) { 6402 res, ok := fpv.value.(*timestamppb.Timestamp) 6403 return res, ok 6404 } 6405 func (fpv *TimeRange_FieldTerminalPathValue) AsEndTimeValue() (*timestamppb.Timestamp, bool) { 6406 res, ok := fpv.value.(*timestamppb.Timestamp) 6407 return res, ok 6408 } 6409 6410 // SetTo stores value for selected field for object TimeRange 6411 func (fpv *TimeRange_FieldTerminalPathValue) SetTo(target **TimeRange) { 6412 if *target == nil { 6413 *target = new(TimeRange) 6414 } 6415 switch fpv.selector { 6416 case TimeRange_FieldPathSelectorStartTime: 6417 (*target).StartTime = fpv.value.(*timestamppb.Timestamp) 6418 case TimeRange_FieldPathSelectorEndTime: 6419 (*target).EndTime = fpv.value.(*timestamppb.Timestamp) 6420 default: 6421 panic(fmt.Sprintf("Invalid selector for TimeRange: %d", fpv.selector)) 6422 } 6423 } 6424 6425 func (fpv *TimeRange_FieldTerminalPathValue) SetToRaw(target proto.Message) { 6426 typedObject := target.(*TimeRange) 6427 fpv.SetTo(&typedObject) 6428 } 6429 6430 // CompareWith compares value in the 'TimeRange_FieldTerminalPathValue' with the value under path in 'TimeRange'. 6431 func (fpv *TimeRange_FieldTerminalPathValue) CompareWith(source *TimeRange) (int, bool) { 6432 switch fpv.selector { 6433 case TimeRange_FieldPathSelectorStartTime: 6434 leftValue := fpv.value.(*timestamppb.Timestamp) 6435 rightValue := source.GetStartTime() 6436 if leftValue == nil { 6437 if rightValue != nil { 6438 return -1, true 6439 } 6440 return 0, true 6441 } 6442 if rightValue == nil { 6443 return 1, true 6444 } 6445 if leftValue.AsTime().Equal(rightValue.AsTime()) { 6446 return 0, true 6447 } else if leftValue.AsTime().Before(rightValue.AsTime()) { 6448 return -1, true 6449 } else { 6450 return 1, true 6451 } 6452 case TimeRange_FieldPathSelectorEndTime: 6453 leftValue := fpv.value.(*timestamppb.Timestamp) 6454 rightValue := source.GetEndTime() 6455 if leftValue == nil { 6456 if rightValue != nil { 6457 return -1, true 6458 } 6459 return 0, true 6460 } 6461 if rightValue == nil { 6462 return 1, true 6463 } 6464 if leftValue.AsTime().Equal(rightValue.AsTime()) { 6465 return 0, true 6466 } else if leftValue.AsTime().Before(rightValue.AsTime()) { 6467 return -1, true 6468 } else { 6469 return 1, true 6470 } 6471 default: 6472 panic(fmt.Sprintf("Invalid selector for TimeRange: %d", fpv.selector)) 6473 } 6474 } 6475 6476 func (fpv *TimeRange_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 6477 return fpv.CompareWith(source.(*TimeRange)) 6478 } 6479 6480 // TimeRange_FieldPathArrayItemValue allows storing single item in Path-specific values for TimeRange according to their type 6481 // Present only for array (repeated) types. 6482 type TimeRange_FieldPathArrayItemValue interface { 6483 gotenobject.FieldPathArrayItemValue 6484 TimeRange_FieldPath 6485 ContainsValue(*TimeRange) bool 6486 } 6487 6488 // ParseTimeRange_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 6489 func ParseTimeRange_FieldPathArrayItemValue(pathStr, valueStr string) (TimeRange_FieldPathArrayItemValue, error) { 6490 fp, err := ParseTimeRange_FieldPath(pathStr) 6491 if err != nil { 6492 return nil, err 6493 } 6494 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 6495 if err != nil { 6496 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeRange field path array item value from %s: %v", valueStr, err) 6497 } 6498 return fpaiv.(TimeRange_FieldPathArrayItemValue), nil 6499 } 6500 6501 func MustParseTimeRange_FieldPathArrayItemValue(pathStr, valueStr string) TimeRange_FieldPathArrayItemValue { 6502 fpaiv, err := ParseTimeRange_FieldPathArrayItemValue(pathStr, valueStr) 6503 if err != nil { 6504 panic(err) 6505 } 6506 return fpaiv 6507 } 6508 6509 type TimeRange_FieldTerminalPathArrayItemValue struct { 6510 TimeRange_FieldTerminalPath 6511 value interface{} 6512 } 6513 6514 var _ TimeRange_FieldPathArrayItemValue = (*TimeRange_FieldTerminalPathArrayItemValue)(nil) 6515 6516 // GetRawValue returns stored element value for array in object TimeRange as interface{} 6517 func (fpaiv *TimeRange_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 6518 return fpaiv.value 6519 } 6520 6521 func (fpaiv *TimeRange_FieldTerminalPathArrayItemValue) GetSingle(source *TimeRange) (interface{}, bool) { 6522 return nil, false 6523 } 6524 6525 func (fpaiv *TimeRange_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 6526 return fpaiv.GetSingle(source.(*TimeRange)) 6527 } 6528 6529 // Contains returns a boolean indicating if value that is being held is present in given 'TimeRange' 6530 func (fpaiv *TimeRange_FieldTerminalPathArrayItemValue) ContainsValue(source *TimeRange) bool { 6531 slice := fpaiv.TimeRange_FieldTerminalPath.Get(source) 6532 for _, v := range slice { 6533 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 6534 if proto.Equal(asProtoMsg, v.(proto.Message)) { 6535 return true 6536 } 6537 } else if reflect.DeepEqual(v, fpaiv.value) { 6538 return true 6539 } 6540 } 6541 return false 6542 } 6543 6544 // TimeRange_FieldPathArrayOfValues allows storing slice of values for TimeRange fields according to their type 6545 type TimeRange_FieldPathArrayOfValues interface { 6546 gotenobject.FieldPathArrayOfValues 6547 TimeRange_FieldPath 6548 } 6549 6550 func ParseTimeRange_FieldPathArrayOfValues(pathStr, valuesStr string) (TimeRange_FieldPathArrayOfValues, error) { 6551 fp, err := ParseTimeRange_FieldPath(pathStr) 6552 if err != nil { 6553 return nil, err 6554 } 6555 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 6556 if err != nil { 6557 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeRange field path array of values from %s: %v", valuesStr, err) 6558 } 6559 return fpaov.(TimeRange_FieldPathArrayOfValues), nil 6560 } 6561 6562 func MustParseTimeRange_FieldPathArrayOfValues(pathStr, valuesStr string) TimeRange_FieldPathArrayOfValues { 6563 fpaov, err := ParseTimeRange_FieldPathArrayOfValues(pathStr, valuesStr) 6564 if err != nil { 6565 panic(err) 6566 } 6567 return fpaov 6568 } 6569 6570 type TimeRange_FieldTerminalPathArrayOfValues struct { 6571 TimeRange_FieldTerminalPath 6572 values interface{} 6573 } 6574 6575 var _ TimeRange_FieldPathArrayOfValues = (*TimeRange_FieldTerminalPathArrayOfValues)(nil) 6576 6577 func (fpaov *TimeRange_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 6578 switch fpaov.selector { 6579 case TimeRange_FieldPathSelectorStartTime: 6580 for _, v := range fpaov.values.([]*timestamppb.Timestamp) { 6581 values = append(values, v) 6582 } 6583 case TimeRange_FieldPathSelectorEndTime: 6584 for _, v := range fpaov.values.([]*timestamppb.Timestamp) { 6585 values = append(values, v) 6586 } 6587 } 6588 return 6589 } 6590 func (fpaov *TimeRange_FieldTerminalPathArrayOfValues) AsStartTimeArrayOfValues() ([]*timestamppb.Timestamp, bool) { 6591 res, ok := fpaov.values.([]*timestamppb.Timestamp) 6592 return res, ok 6593 } 6594 func (fpaov *TimeRange_FieldTerminalPathArrayOfValues) AsEndTimeArrayOfValues() ([]*timestamppb.Timestamp, bool) { 6595 res, ok := fpaov.values.([]*timestamppb.Timestamp) 6596 return res, ok 6597 } 6598 6599 // FieldPath provides implementation to handle 6600 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 6601 type Aggregation_FieldPath interface { 6602 gotenobject.FieldPath 6603 Selector() Aggregation_FieldPathSelector 6604 Get(source *Aggregation) []interface{} 6605 GetSingle(source *Aggregation) (interface{}, bool) 6606 ClearValue(item *Aggregation) 6607 6608 // Those methods build corresponding Aggregation_FieldPathValue 6609 // (or array of values) and holds passed value. Panics if injected type is incorrect. 6610 WithIValue(value interface{}) Aggregation_FieldPathValue 6611 WithIArrayOfValues(values interface{}) Aggregation_FieldPathArrayOfValues 6612 WithIArrayItemValue(value interface{}) Aggregation_FieldPathArrayItemValue 6613 } 6614 6615 type Aggregation_FieldPathSelector int32 6616 6617 const ( 6618 Aggregation_FieldPathSelectorAlignmentPeriod Aggregation_FieldPathSelector = 0 6619 Aggregation_FieldPathSelectorPerSeriesAligner Aggregation_FieldPathSelector = 1 6620 Aggregation_FieldPathSelectorCrossSeriesReducer Aggregation_FieldPathSelector = 2 6621 Aggregation_FieldPathSelectorGroupByFields Aggregation_FieldPathSelector = 3 6622 ) 6623 6624 func (s Aggregation_FieldPathSelector) String() string { 6625 switch s { 6626 case Aggregation_FieldPathSelectorAlignmentPeriod: 6627 return "alignment_period" 6628 case Aggregation_FieldPathSelectorPerSeriesAligner: 6629 return "per_series_aligner" 6630 case Aggregation_FieldPathSelectorCrossSeriesReducer: 6631 return "cross_series_reducer" 6632 case Aggregation_FieldPathSelectorGroupByFields: 6633 return "group_by_fields" 6634 default: 6635 panic(fmt.Sprintf("Invalid selector for Aggregation: %d", s)) 6636 } 6637 } 6638 6639 func BuildAggregation_FieldPath(fp gotenobject.RawFieldPath) (Aggregation_FieldPath, error) { 6640 if len(fp) == 0 { 6641 return nil, status.Error(codes.InvalidArgument, "empty field path for object Aggregation") 6642 } 6643 if len(fp) == 1 { 6644 switch fp[0] { 6645 case "alignment_period", "alignmentPeriod", "alignment-period": 6646 return &Aggregation_FieldTerminalPath{selector: Aggregation_FieldPathSelectorAlignmentPeriod}, nil 6647 case "per_series_aligner", "perSeriesAligner", "per-series-aligner": 6648 return &Aggregation_FieldTerminalPath{selector: Aggregation_FieldPathSelectorPerSeriesAligner}, nil 6649 case "cross_series_reducer", "crossSeriesReducer", "cross-series-reducer": 6650 return &Aggregation_FieldTerminalPath{selector: Aggregation_FieldPathSelectorCrossSeriesReducer}, nil 6651 case "group_by_fields", "groupByFields", "group-by-fields": 6652 return &Aggregation_FieldTerminalPath{selector: Aggregation_FieldPathSelectorGroupByFields}, nil 6653 } 6654 } 6655 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Aggregation", fp) 6656 } 6657 6658 func ParseAggregation_FieldPath(rawField string) (Aggregation_FieldPath, error) { 6659 fp, err := gotenobject.ParseRawFieldPath(rawField) 6660 if err != nil { 6661 return nil, err 6662 } 6663 return BuildAggregation_FieldPath(fp) 6664 } 6665 6666 func MustParseAggregation_FieldPath(rawField string) Aggregation_FieldPath { 6667 fp, err := ParseAggregation_FieldPath(rawField) 6668 if err != nil { 6669 panic(err) 6670 } 6671 return fp 6672 } 6673 6674 type Aggregation_FieldTerminalPath struct { 6675 selector Aggregation_FieldPathSelector 6676 } 6677 6678 var _ Aggregation_FieldPath = (*Aggregation_FieldTerminalPath)(nil) 6679 6680 func (fp *Aggregation_FieldTerminalPath) Selector() Aggregation_FieldPathSelector { 6681 return fp.selector 6682 } 6683 6684 // String returns path representation in proto convention 6685 func (fp *Aggregation_FieldTerminalPath) String() string { 6686 return fp.selector.String() 6687 } 6688 6689 // JSONString returns path representation is JSON convention 6690 func (fp *Aggregation_FieldTerminalPath) JSONString() string { 6691 return strcase.ToLowerCamel(fp.String()) 6692 } 6693 6694 // Get returns all values pointed by specific field from source Aggregation 6695 func (fp *Aggregation_FieldTerminalPath) Get(source *Aggregation) (values []interface{}) { 6696 if source != nil { 6697 switch fp.selector { 6698 case Aggregation_FieldPathSelectorAlignmentPeriod: 6699 if source.AlignmentPeriod != nil { 6700 values = append(values, source.AlignmentPeriod) 6701 } 6702 case Aggregation_FieldPathSelectorPerSeriesAligner: 6703 values = append(values, source.PerSeriesAligner) 6704 case Aggregation_FieldPathSelectorCrossSeriesReducer: 6705 values = append(values, source.CrossSeriesReducer) 6706 case Aggregation_FieldPathSelectorGroupByFields: 6707 for _, value := range source.GetGroupByFields() { 6708 values = append(values, value) 6709 } 6710 default: 6711 panic(fmt.Sprintf("Invalid selector for Aggregation: %d", fp.selector)) 6712 } 6713 } 6714 return 6715 } 6716 6717 func (fp *Aggregation_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 6718 return fp.Get(source.(*Aggregation)) 6719 } 6720 6721 // GetSingle returns value pointed by specific field of from source Aggregation 6722 func (fp *Aggregation_FieldTerminalPath) GetSingle(source *Aggregation) (interface{}, bool) { 6723 switch fp.selector { 6724 case Aggregation_FieldPathSelectorAlignmentPeriod: 6725 res := source.GetAlignmentPeriod() 6726 return res, res != nil 6727 case Aggregation_FieldPathSelectorPerSeriesAligner: 6728 return source.GetPerSeriesAligner(), source != nil 6729 case Aggregation_FieldPathSelectorCrossSeriesReducer: 6730 return source.GetCrossSeriesReducer(), source != nil 6731 case Aggregation_FieldPathSelectorGroupByFields: 6732 res := source.GetGroupByFields() 6733 return res, res != nil 6734 default: 6735 panic(fmt.Sprintf("Invalid selector for Aggregation: %d", fp.selector)) 6736 } 6737 } 6738 6739 func (fp *Aggregation_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 6740 return fp.GetSingle(source.(*Aggregation)) 6741 } 6742 6743 // GetDefault returns a default value of the field type 6744 func (fp *Aggregation_FieldTerminalPath) GetDefault() interface{} { 6745 switch fp.selector { 6746 case Aggregation_FieldPathSelectorAlignmentPeriod: 6747 return (*durationpb.Duration)(nil) 6748 case Aggregation_FieldPathSelectorPerSeriesAligner: 6749 return Aggregation_ALIGN_NONE 6750 case Aggregation_FieldPathSelectorCrossSeriesReducer: 6751 return Aggregation_REDUCE_NONE 6752 case Aggregation_FieldPathSelectorGroupByFields: 6753 return ([]string)(nil) 6754 default: 6755 panic(fmt.Sprintf("Invalid selector for Aggregation: %d", fp.selector)) 6756 } 6757 } 6758 6759 func (fp *Aggregation_FieldTerminalPath) ClearValue(item *Aggregation) { 6760 if item != nil { 6761 switch fp.selector { 6762 case Aggregation_FieldPathSelectorAlignmentPeriod: 6763 item.AlignmentPeriod = nil 6764 case Aggregation_FieldPathSelectorPerSeriesAligner: 6765 item.PerSeriesAligner = Aggregation_ALIGN_NONE 6766 case Aggregation_FieldPathSelectorCrossSeriesReducer: 6767 item.CrossSeriesReducer = Aggregation_REDUCE_NONE 6768 case Aggregation_FieldPathSelectorGroupByFields: 6769 item.GroupByFields = nil 6770 default: 6771 panic(fmt.Sprintf("Invalid selector for Aggregation: %d", fp.selector)) 6772 } 6773 } 6774 } 6775 6776 func (fp *Aggregation_FieldTerminalPath) ClearValueRaw(item proto.Message) { 6777 fp.ClearValue(item.(*Aggregation)) 6778 } 6779 6780 // IsLeaf - whether field path is holds simple value 6781 func (fp *Aggregation_FieldTerminalPath) IsLeaf() bool { 6782 return fp.selector == Aggregation_FieldPathSelectorAlignmentPeriod || 6783 fp.selector == Aggregation_FieldPathSelectorPerSeriesAligner || 6784 fp.selector == Aggregation_FieldPathSelectorCrossSeriesReducer || 6785 fp.selector == Aggregation_FieldPathSelectorGroupByFields 6786 } 6787 6788 func (fp *Aggregation_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 6789 return []gotenobject.FieldPath{fp} 6790 } 6791 6792 func (fp *Aggregation_FieldTerminalPath) WithIValue(value interface{}) Aggregation_FieldPathValue { 6793 switch fp.selector { 6794 case Aggregation_FieldPathSelectorAlignmentPeriod: 6795 return &Aggregation_FieldTerminalPathValue{Aggregation_FieldTerminalPath: *fp, value: value.(*durationpb.Duration)} 6796 case Aggregation_FieldPathSelectorPerSeriesAligner: 6797 return &Aggregation_FieldTerminalPathValue{Aggregation_FieldTerminalPath: *fp, value: value.(Aggregation_Aligner)} 6798 case Aggregation_FieldPathSelectorCrossSeriesReducer: 6799 return &Aggregation_FieldTerminalPathValue{Aggregation_FieldTerminalPath: *fp, value: value.(Aggregation_Reducer)} 6800 case Aggregation_FieldPathSelectorGroupByFields: 6801 return &Aggregation_FieldTerminalPathValue{Aggregation_FieldTerminalPath: *fp, value: value.([]string)} 6802 default: 6803 panic(fmt.Sprintf("Invalid selector for Aggregation: %d", fp.selector)) 6804 } 6805 } 6806 6807 func (fp *Aggregation_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 6808 return fp.WithIValue(value) 6809 } 6810 6811 func (fp *Aggregation_FieldTerminalPath) WithIArrayOfValues(values interface{}) Aggregation_FieldPathArrayOfValues { 6812 fpaov := &Aggregation_FieldTerminalPathArrayOfValues{Aggregation_FieldTerminalPath: *fp} 6813 switch fp.selector { 6814 case Aggregation_FieldPathSelectorAlignmentPeriod: 6815 return &Aggregation_FieldTerminalPathArrayOfValues{Aggregation_FieldTerminalPath: *fp, values: values.([]*durationpb.Duration)} 6816 case Aggregation_FieldPathSelectorPerSeriesAligner: 6817 return &Aggregation_FieldTerminalPathArrayOfValues{Aggregation_FieldTerminalPath: *fp, values: values.([]Aggregation_Aligner)} 6818 case Aggregation_FieldPathSelectorCrossSeriesReducer: 6819 return &Aggregation_FieldTerminalPathArrayOfValues{Aggregation_FieldTerminalPath: *fp, values: values.([]Aggregation_Reducer)} 6820 case Aggregation_FieldPathSelectorGroupByFields: 6821 return &Aggregation_FieldTerminalPathArrayOfValues{Aggregation_FieldTerminalPath: *fp, values: values.([][]string)} 6822 default: 6823 panic(fmt.Sprintf("Invalid selector for Aggregation: %d", fp.selector)) 6824 } 6825 return fpaov 6826 } 6827 6828 func (fp *Aggregation_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 6829 return fp.WithIArrayOfValues(values) 6830 } 6831 6832 func (fp *Aggregation_FieldTerminalPath) WithIArrayItemValue(value interface{}) Aggregation_FieldPathArrayItemValue { 6833 switch fp.selector { 6834 case Aggregation_FieldPathSelectorGroupByFields: 6835 return &Aggregation_FieldTerminalPathArrayItemValue{Aggregation_FieldTerminalPath: *fp, value: value.(string)} 6836 default: 6837 panic(fmt.Sprintf("Invalid selector for Aggregation: %d", fp.selector)) 6838 } 6839 } 6840 6841 func (fp *Aggregation_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 6842 return fp.WithIArrayItemValue(value) 6843 } 6844 6845 // Aggregation_FieldPathValue allows storing values for Aggregation fields according to their type 6846 type Aggregation_FieldPathValue interface { 6847 Aggregation_FieldPath 6848 gotenobject.FieldPathValue 6849 SetTo(target **Aggregation) 6850 CompareWith(*Aggregation) (cmp int, comparable bool) 6851 } 6852 6853 func ParseAggregation_FieldPathValue(pathStr, valueStr string) (Aggregation_FieldPathValue, error) { 6854 fp, err := ParseAggregation_FieldPath(pathStr) 6855 if err != nil { 6856 return nil, err 6857 } 6858 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 6859 if err != nil { 6860 return nil, status.Errorf(codes.InvalidArgument, "error parsing Aggregation field path value from %s: %v", valueStr, err) 6861 } 6862 return fpv.(Aggregation_FieldPathValue), nil 6863 } 6864 6865 func MustParseAggregation_FieldPathValue(pathStr, valueStr string) Aggregation_FieldPathValue { 6866 fpv, err := ParseAggregation_FieldPathValue(pathStr, valueStr) 6867 if err != nil { 6868 panic(err) 6869 } 6870 return fpv 6871 } 6872 6873 type Aggregation_FieldTerminalPathValue struct { 6874 Aggregation_FieldTerminalPath 6875 value interface{} 6876 } 6877 6878 var _ Aggregation_FieldPathValue = (*Aggregation_FieldTerminalPathValue)(nil) 6879 6880 // GetRawValue returns raw value stored under selected path for 'Aggregation' as interface{} 6881 func (fpv *Aggregation_FieldTerminalPathValue) GetRawValue() interface{} { 6882 return fpv.value 6883 } 6884 func (fpv *Aggregation_FieldTerminalPathValue) AsAlignmentPeriodValue() (*durationpb.Duration, bool) { 6885 res, ok := fpv.value.(*durationpb.Duration) 6886 return res, ok 6887 } 6888 func (fpv *Aggregation_FieldTerminalPathValue) AsPerSeriesAlignerValue() (Aggregation_Aligner, bool) { 6889 res, ok := fpv.value.(Aggregation_Aligner) 6890 return res, ok 6891 } 6892 func (fpv *Aggregation_FieldTerminalPathValue) AsCrossSeriesReducerValue() (Aggregation_Reducer, bool) { 6893 res, ok := fpv.value.(Aggregation_Reducer) 6894 return res, ok 6895 } 6896 func (fpv *Aggregation_FieldTerminalPathValue) AsGroupByFieldsValue() ([]string, bool) { 6897 res, ok := fpv.value.([]string) 6898 return res, ok 6899 } 6900 6901 // SetTo stores value for selected field for object Aggregation 6902 func (fpv *Aggregation_FieldTerminalPathValue) SetTo(target **Aggregation) { 6903 if *target == nil { 6904 *target = new(Aggregation) 6905 } 6906 switch fpv.selector { 6907 case Aggregation_FieldPathSelectorAlignmentPeriod: 6908 (*target).AlignmentPeriod = fpv.value.(*durationpb.Duration) 6909 case Aggregation_FieldPathSelectorPerSeriesAligner: 6910 (*target).PerSeriesAligner = fpv.value.(Aggregation_Aligner) 6911 case Aggregation_FieldPathSelectorCrossSeriesReducer: 6912 (*target).CrossSeriesReducer = fpv.value.(Aggregation_Reducer) 6913 case Aggregation_FieldPathSelectorGroupByFields: 6914 (*target).GroupByFields = fpv.value.([]string) 6915 default: 6916 panic(fmt.Sprintf("Invalid selector for Aggregation: %d", fpv.selector)) 6917 } 6918 } 6919 6920 func (fpv *Aggregation_FieldTerminalPathValue) SetToRaw(target proto.Message) { 6921 typedObject := target.(*Aggregation) 6922 fpv.SetTo(&typedObject) 6923 } 6924 6925 // CompareWith compares value in the 'Aggregation_FieldTerminalPathValue' with the value under path in 'Aggregation'. 6926 func (fpv *Aggregation_FieldTerminalPathValue) CompareWith(source *Aggregation) (int, bool) { 6927 switch fpv.selector { 6928 case Aggregation_FieldPathSelectorAlignmentPeriod: 6929 leftValue := fpv.value.(*durationpb.Duration) 6930 rightValue := source.GetAlignmentPeriod() 6931 if leftValue == nil { 6932 if rightValue != nil { 6933 return -1, true 6934 } 6935 return 0, true 6936 } 6937 if rightValue == nil { 6938 return 1, true 6939 } 6940 if leftValue.AsDuration() == rightValue.AsDuration() { 6941 return 0, true 6942 } else if leftValue.AsDuration() < rightValue.AsDuration() { 6943 return -1, true 6944 } else { 6945 return 1, true 6946 } 6947 case Aggregation_FieldPathSelectorPerSeriesAligner: 6948 leftValue := fpv.value.(Aggregation_Aligner) 6949 rightValue := source.GetPerSeriesAligner() 6950 if (leftValue) == (rightValue) { 6951 return 0, true 6952 } else if (leftValue) < (rightValue) { 6953 return -1, true 6954 } else { 6955 return 1, true 6956 } 6957 case Aggregation_FieldPathSelectorCrossSeriesReducer: 6958 leftValue := fpv.value.(Aggregation_Reducer) 6959 rightValue := source.GetCrossSeriesReducer() 6960 if (leftValue) == (rightValue) { 6961 return 0, true 6962 } else if (leftValue) < (rightValue) { 6963 return -1, true 6964 } else { 6965 return 1, true 6966 } 6967 case Aggregation_FieldPathSelectorGroupByFields: 6968 return 0, false 6969 default: 6970 panic(fmt.Sprintf("Invalid selector for Aggregation: %d", fpv.selector)) 6971 } 6972 } 6973 6974 func (fpv *Aggregation_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 6975 return fpv.CompareWith(source.(*Aggregation)) 6976 } 6977 6978 // Aggregation_FieldPathArrayItemValue allows storing single item in Path-specific values for Aggregation according to their type 6979 // Present only for array (repeated) types. 6980 type Aggregation_FieldPathArrayItemValue interface { 6981 gotenobject.FieldPathArrayItemValue 6982 Aggregation_FieldPath 6983 ContainsValue(*Aggregation) bool 6984 } 6985 6986 // ParseAggregation_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 6987 func ParseAggregation_FieldPathArrayItemValue(pathStr, valueStr string) (Aggregation_FieldPathArrayItemValue, error) { 6988 fp, err := ParseAggregation_FieldPath(pathStr) 6989 if err != nil { 6990 return nil, err 6991 } 6992 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 6993 if err != nil { 6994 return nil, status.Errorf(codes.InvalidArgument, "error parsing Aggregation field path array item value from %s: %v", valueStr, err) 6995 } 6996 return fpaiv.(Aggregation_FieldPathArrayItemValue), nil 6997 } 6998 6999 func MustParseAggregation_FieldPathArrayItemValue(pathStr, valueStr string) Aggregation_FieldPathArrayItemValue { 7000 fpaiv, err := ParseAggregation_FieldPathArrayItemValue(pathStr, valueStr) 7001 if err != nil { 7002 panic(err) 7003 } 7004 return fpaiv 7005 } 7006 7007 type Aggregation_FieldTerminalPathArrayItemValue struct { 7008 Aggregation_FieldTerminalPath 7009 value interface{} 7010 } 7011 7012 var _ Aggregation_FieldPathArrayItemValue = (*Aggregation_FieldTerminalPathArrayItemValue)(nil) 7013 7014 // GetRawValue returns stored element value for array in object Aggregation as interface{} 7015 func (fpaiv *Aggregation_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 7016 return fpaiv.value 7017 } 7018 func (fpaiv *Aggregation_FieldTerminalPathArrayItemValue) AsGroupByFieldsItemValue() (string, bool) { 7019 res, ok := fpaiv.value.(string) 7020 return res, ok 7021 } 7022 7023 func (fpaiv *Aggregation_FieldTerminalPathArrayItemValue) GetSingle(source *Aggregation) (interface{}, bool) { 7024 return nil, false 7025 } 7026 7027 func (fpaiv *Aggregation_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 7028 return fpaiv.GetSingle(source.(*Aggregation)) 7029 } 7030 7031 // Contains returns a boolean indicating if value that is being held is present in given 'Aggregation' 7032 func (fpaiv *Aggregation_FieldTerminalPathArrayItemValue) ContainsValue(source *Aggregation) bool { 7033 slice := fpaiv.Aggregation_FieldTerminalPath.Get(source) 7034 for _, v := range slice { 7035 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 7036 if proto.Equal(asProtoMsg, v.(proto.Message)) { 7037 return true 7038 } 7039 } else if reflect.DeepEqual(v, fpaiv.value) { 7040 return true 7041 } 7042 } 7043 return false 7044 } 7045 7046 // Aggregation_FieldPathArrayOfValues allows storing slice of values for Aggregation fields according to their type 7047 type Aggregation_FieldPathArrayOfValues interface { 7048 gotenobject.FieldPathArrayOfValues 7049 Aggregation_FieldPath 7050 } 7051 7052 func ParseAggregation_FieldPathArrayOfValues(pathStr, valuesStr string) (Aggregation_FieldPathArrayOfValues, error) { 7053 fp, err := ParseAggregation_FieldPath(pathStr) 7054 if err != nil { 7055 return nil, err 7056 } 7057 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 7058 if err != nil { 7059 return nil, status.Errorf(codes.InvalidArgument, "error parsing Aggregation field path array of values from %s: %v", valuesStr, err) 7060 } 7061 return fpaov.(Aggregation_FieldPathArrayOfValues), nil 7062 } 7063 7064 func MustParseAggregation_FieldPathArrayOfValues(pathStr, valuesStr string) Aggregation_FieldPathArrayOfValues { 7065 fpaov, err := ParseAggregation_FieldPathArrayOfValues(pathStr, valuesStr) 7066 if err != nil { 7067 panic(err) 7068 } 7069 return fpaov 7070 } 7071 7072 type Aggregation_FieldTerminalPathArrayOfValues struct { 7073 Aggregation_FieldTerminalPath 7074 values interface{} 7075 } 7076 7077 var _ Aggregation_FieldPathArrayOfValues = (*Aggregation_FieldTerminalPathArrayOfValues)(nil) 7078 7079 func (fpaov *Aggregation_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 7080 switch fpaov.selector { 7081 case Aggregation_FieldPathSelectorAlignmentPeriod: 7082 for _, v := range fpaov.values.([]*durationpb.Duration) { 7083 values = append(values, v) 7084 } 7085 case Aggregation_FieldPathSelectorPerSeriesAligner: 7086 for _, v := range fpaov.values.([]Aggregation_Aligner) { 7087 values = append(values, v) 7088 } 7089 case Aggregation_FieldPathSelectorCrossSeriesReducer: 7090 for _, v := range fpaov.values.([]Aggregation_Reducer) { 7091 values = append(values, v) 7092 } 7093 case Aggregation_FieldPathSelectorGroupByFields: 7094 for _, v := range fpaov.values.([][]string) { 7095 values = append(values, v) 7096 } 7097 } 7098 return 7099 } 7100 func (fpaov *Aggregation_FieldTerminalPathArrayOfValues) AsAlignmentPeriodArrayOfValues() ([]*durationpb.Duration, bool) { 7101 res, ok := fpaov.values.([]*durationpb.Duration) 7102 return res, ok 7103 } 7104 func (fpaov *Aggregation_FieldTerminalPathArrayOfValues) AsPerSeriesAlignerArrayOfValues() ([]Aggregation_Aligner, bool) { 7105 res, ok := fpaov.values.([]Aggregation_Aligner) 7106 return res, ok 7107 } 7108 func (fpaov *Aggregation_FieldTerminalPathArrayOfValues) AsCrossSeriesReducerArrayOfValues() ([]Aggregation_Reducer, bool) { 7109 res, ok := fpaov.values.([]Aggregation_Reducer) 7110 return res, ok 7111 } 7112 func (fpaov *Aggregation_FieldTerminalPathArrayOfValues) AsGroupByFieldsArrayOfValues() ([][]string, bool) { 7113 res, ok := fpaov.values.([][]string) 7114 return res, ok 7115 } 7116 7117 // FieldPath provides implementation to handle 7118 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 7119 type Pagination_FieldPath interface { 7120 gotenobject.FieldPath 7121 Selector() Pagination_FieldPathSelector 7122 Get(source *Pagination) []interface{} 7123 GetSingle(source *Pagination) (interface{}, bool) 7124 ClearValue(item *Pagination) 7125 7126 // Those methods build corresponding Pagination_FieldPathValue 7127 // (or array of values) and holds passed value. Panics if injected type is incorrect. 7128 WithIValue(value interface{}) Pagination_FieldPathValue 7129 WithIArrayOfValues(values interface{}) Pagination_FieldPathArrayOfValues 7130 WithIArrayItemValue(value interface{}) Pagination_FieldPathArrayItemValue 7131 } 7132 7133 type Pagination_FieldPathSelector int32 7134 7135 const ( 7136 Pagination_FieldPathSelectorView Pagination_FieldPathSelector = 0 7137 Pagination_FieldPathSelectorFunction Pagination_FieldPathSelector = 1 7138 Pagination_FieldPathSelectorAlignmentPeriod Pagination_FieldPathSelector = 2 7139 Pagination_FieldPathSelectorLimit Pagination_FieldPathSelector = 3 7140 Pagination_FieldPathSelectorOffset Pagination_FieldPathSelector = 4 7141 ) 7142 7143 func (s Pagination_FieldPathSelector) String() string { 7144 switch s { 7145 case Pagination_FieldPathSelectorView: 7146 return "view" 7147 case Pagination_FieldPathSelectorFunction: 7148 return "function" 7149 case Pagination_FieldPathSelectorAlignmentPeriod: 7150 return "alignment_period" 7151 case Pagination_FieldPathSelectorLimit: 7152 return "limit" 7153 case Pagination_FieldPathSelectorOffset: 7154 return "offset" 7155 default: 7156 panic(fmt.Sprintf("Invalid selector for Pagination: %d", s)) 7157 } 7158 } 7159 7160 func BuildPagination_FieldPath(fp gotenobject.RawFieldPath) (Pagination_FieldPath, error) { 7161 if len(fp) == 0 { 7162 return nil, status.Error(codes.InvalidArgument, "empty field path for object Pagination") 7163 } 7164 if len(fp) == 1 { 7165 switch fp[0] { 7166 case "view": 7167 return &Pagination_FieldTerminalPath{selector: Pagination_FieldPathSelectorView}, nil 7168 case "function": 7169 return &Pagination_FieldTerminalPath{selector: Pagination_FieldPathSelectorFunction}, nil 7170 case "alignment_period", "alignmentPeriod", "alignment-period": 7171 return &Pagination_FieldTerminalPath{selector: Pagination_FieldPathSelectorAlignmentPeriod}, nil 7172 case "limit": 7173 return &Pagination_FieldTerminalPath{selector: Pagination_FieldPathSelectorLimit}, nil 7174 case "offset": 7175 return &Pagination_FieldTerminalPath{selector: Pagination_FieldPathSelectorOffset}, nil 7176 } 7177 } 7178 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Pagination", fp) 7179 } 7180 7181 func ParsePagination_FieldPath(rawField string) (Pagination_FieldPath, error) { 7182 fp, err := gotenobject.ParseRawFieldPath(rawField) 7183 if err != nil { 7184 return nil, err 7185 } 7186 return BuildPagination_FieldPath(fp) 7187 } 7188 7189 func MustParsePagination_FieldPath(rawField string) Pagination_FieldPath { 7190 fp, err := ParsePagination_FieldPath(rawField) 7191 if err != nil { 7192 panic(err) 7193 } 7194 return fp 7195 } 7196 7197 type Pagination_FieldTerminalPath struct { 7198 selector Pagination_FieldPathSelector 7199 } 7200 7201 var _ Pagination_FieldPath = (*Pagination_FieldTerminalPath)(nil) 7202 7203 func (fp *Pagination_FieldTerminalPath) Selector() Pagination_FieldPathSelector { 7204 return fp.selector 7205 } 7206 7207 // String returns path representation in proto convention 7208 func (fp *Pagination_FieldTerminalPath) String() string { 7209 return fp.selector.String() 7210 } 7211 7212 // JSONString returns path representation is JSON convention 7213 func (fp *Pagination_FieldTerminalPath) JSONString() string { 7214 return strcase.ToLowerCamel(fp.String()) 7215 } 7216 7217 // Get returns all values pointed by specific field from source Pagination 7218 func (fp *Pagination_FieldTerminalPath) Get(source *Pagination) (values []interface{}) { 7219 if source != nil { 7220 switch fp.selector { 7221 case Pagination_FieldPathSelectorView: 7222 values = append(values, source.View) 7223 case Pagination_FieldPathSelectorFunction: 7224 values = append(values, source.Function) 7225 case Pagination_FieldPathSelectorAlignmentPeriod: 7226 if source.AlignmentPeriod != nil { 7227 values = append(values, source.AlignmentPeriod) 7228 } 7229 case Pagination_FieldPathSelectorLimit: 7230 values = append(values, source.Limit) 7231 case Pagination_FieldPathSelectorOffset: 7232 values = append(values, source.Offset) 7233 default: 7234 panic(fmt.Sprintf("Invalid selector for Pagination: %d", fp.selector)) 7235 } 7236 } 7237 return 7238 } 7239 7240 func (fp *Pagination_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 7241 return fp.Get(source.(*Pagination)) 7242 } 7243 7244 // GetSingle returns value pointed by specific field of from source Pagination 7245 func (fp *Pagination_FieldTerminalPath) GetSingle(source *Pagination) (interface{}, bool) { 7246 switch fp.selector { 7247 case Pagination_FieldPathSelectorView: 7248 return source.GetView(), source != nil 7249 case Pagination_FieldPathSelectorFunction: 7250 return source.GetFunction(), source != nil 7251 case Pagination_FieldPathSelectorAlignmentPeriod: 7252 res := source.GetAlignmentPeriod() 7253 return res, res != nil 7254 case Pagination_FieldPathSelectorLimit: 7255 return source.GetLimit(), source != nil 7256 case Pagination_FieldPathSelectorOffset: 7257 return source.GetOffset(), source != nil 7258 default: 7259 panic(fmt.Sprintf("Invalid selector for Pagination: %d", fp.selector)) 7260 } 7261 } 7262 7263 func (fp *Pagination_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 7264 return fp.GetSingle(source.(*Pagination)) 7265 } 7266 7267 // GetDefault returns a default value of the field type 7268 func (fp *Pagination_FieldTerminalPath) GetDefault() interface{} { 7269 switch fp.selector { 7270 case Pagination_FieldPathSelectorView: 7271 return "" 7272 case Pagination_FieldPathSelectorFunction: 7273 return "" 7274 case Pagination_FieldPathSelectorAlignmentPeriod: 7275 return (*durationpb.Duration)(nil) 7276 case Pagination_FieldPathSelectorLimit: 7277 return int32(0) 7278 case Pagination_FieldPathSelectorOffset: 7279 return int32(0) 7280 default: 7281 panic(fmt.Sprintf("Invalid selector for Pagination: %d", fp.selector)) 7282 } 7283 } 7284 7285 func (fp *Pagination_FieldTerminalPath) ClearValue(item *Pagination) { 7286 if item != nil { 7287 switch fp.selector { 7288 case Pagination_FieldPathSelectorView: 7289 item.View = "" 7290 case Pagination_FieldPathSelectorFunction: 7291 item.Function = "" 7292 case Pagination_FieldPathSelectorAlignmentPeriod: 7293 item.AlignmentPeriod = nil 7294 case Pagination_FieldPathSelectorLimit: 7295 item.Limit = int32(0) 7296 case Pagination_FieldPathSelectorOffset: 7297 item.Offset = int32(0) 7298 default: 7299 panic(fmt.Sprintf("Invalid selector for Pagination: %d", fp.selector)) 7300 } 7301 } 7302 } 7303 7304 func (fp *Pagination_FieldTerminalPath) ClearValueRaw(item proto.Message) { 7305 fp.ClearValue(item.(*Pagination)) 7306 } 7307 7308 // IsLeaf - whether field path is holds simple value 7309 func (fp *Pagination_FieldTerminalPath) IsLeaf() bool { 7310 return fp.selector == Pagination_FieldPathSelectorView || 7311 fp.selector == Pagination_FieldPathSelectorFunction || 7312 fp.selector == Pagination_FieldPathSelectorAlignmentPeriod || 7313 fp.selector == Pagination_FieldPathSelectorLimit || 7314 fp.selector == Pagination_FieldPathSelectorOffset 7315 } 7316 7317 func (fp *Pagination_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 7318 return []gotenobject.FieldPath{fp} 7319 } 7320 7321 func (fp *Pagination_FieldTerminalPath) WithIValue(value interface{}) Pagination_FieldPathValue { 7322 switch fp.selector { 7323 case Pagination_FieldPathSelectorView: 7324 return &Pagination_FieldTerminalPathValue{Pagination_FieldTerminalPath: *fp, value: value.(string)} 7325 case Pagination_FieldPathSelectorFunction: 7326 return &Pagination_FieldTerminalPathValue{Pagination_FieldTerminalPath: *fp, value: value.(string)} 7327 case Pagination_FieldPathSelectorAlignmentPeriod: 7328 return &Pagination_FieldTerminalPathValue{Pagination_FieldTerminalPath: *fp, value: value.(*durationpb.Duration)} 7329 case Pagination_FieldPathSelectorLimit: 7330 return &Pagination_FieldTerminalPathValue{Pagination_FieldTerminalPath: *fp, value: value.(int32)} 7331 case Pagination_FieldPathSelectorOffset: 7332 return &Pagination_FieldTerminalPathValue{Pagination_FieldTerminalPath: *fp, value: value.(int32)} 7333 default: 7334 panic(fmt.Sprintf("Invalid selector for Pagination: %d", fp.selector)) 7335 } 7336 } 7337 7338 func (fp *Pagination_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 7339 return fp.WithIValue(value) 7340 } 7341 7342 func (fp *Pagination_FieldTerminalPath) WithIArrayOfValues(values interface{}) Pagination_FieldPathArrayOfValues { 7343 fpaov := &Pagination_FieldTerminalPathArrayOfValues{Pagination_FieldTerminalPath: *fp} 7344 switch fp.selector { 7345 case Pagination_FieldPathSelectorView: 7346 return &Pagination_FieldTerminalPathArrayOfValues{Pagination_FieldTerminalPath: *fp, values: values.([]string)} 7347 case Pagination_FieldPathSelectorFunction: 7348 return &Pagination_FieldTerminalPathArrayOfValues{Pagination_FieldTerminalPath: *fp, values: values.([]string)} 7349 case Pagination_FieldPathSelectorAlignmentPeriod: 7350 return &Pagination_FieldTerminalPathArrayOfValues{Pagination_FieldTerminalPath: *fp, values: values.([]*durationpb.Duration)} 7351 case Pagination_FieldPathSelectorLimit: 7352 return &Pagination_FieldTerminalPathArrayOfValues{Pagination_FieldTerminalPath: *fp, values: values.([]int32)} 7353 case Pagination_FieldPathSelectorOffset: 7354 return &Pagination_FieldTerminalPathArrayOfValues{Pagination_FieldTerminalPath: *fp, values: values.([]int32)} 7355 default: 7356 panic(fmt.Sprintf("Invalid selector for Pagination: %d", fp.selector)) 7357 } 7358 return fpaov 7359 } 7360 7361 func (fp *Pagination_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 7362 return fp.WithIArrayOfValues(values) 7363 } 7364 7365 func (fp *Pagination_FieldTerminalPath) WithIArrayItemValue(value interface{}) Pagination_FieldPathArrayItemValue { 7366 switch fp.selector { 7367 default: 7368 panic(fmt.Sprintf("Invalid selector for Pagination: %d", fp.selector)) 7369 } 7370 } 7371 7372 func (fp *Pagination_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 7373 return fp.WithIArrayItemValue(value) 7374 } 7375 7376 // Pagination_FieldPathValue allows storing values for Pagination fields according to their type 7377 type Pagination_FieldPathValue interface { 7378 Pagination_FieldPath 7379 gotenobject.FieldPathValue 7380 SetTo(target **Pagination) 7381 CompareWith(*Pagination) (cmp int, comparable bool) 7382 } 7383 7384 func ParsePagination_FieldPathValue(pathStr, valueStr string) (Pagination_FieldPathValue, error) { 7385 fp, err := ParsePagination_FieldPath(pathStr) 7386 if err != nil { 7387 return nil, err 7388 } 7389 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 7390 if err != nil { 7391 return nil, status.Errorf(codes.InvalidArgument, "error parsing Pagination field path value from %s: %v", valueStr, err) 7392 } 7393 return fpv.(Pagination_FieldPathValue), nil 7394 } 7395 7396 func MustParsePagination_FieldPathValue(pathStr, valueStr string) Pagination_FieldPathValue { 7397 fpv, err := ParsePagination_FieldPathValue(pathStr, valueStr) 7398 if err != nil { 7399 panic(err) 7400 } 7401 return fpv 7402 } 7403 7404 type Pagination_FieldTerminalPathValue struct { 7405 Pagination_FieldTerminalPath 7406 value interface{} 7407 } 7408 7409 var _ Pagination_FieldPathValue = (*Pagination_FieldTerminalPathValue)(nil) 7410 7411 // GetRawValue returns raw value stored under selected path for 'Pagination' as interface{} 7412 func (fpv *Pagination_FieldTerminalPathValue) GetRawValue() interface{} { 7413 return fpv.value 7414 } 7415 func (fpv *Pagination_FieldTerminalPathValue) AsViewValue() (string, bool) { 7416 res, ok := fpv.value.(string) 7417 return res, ok 7418 } 7419 func (fpv *Pagination_FieldTerminalPathValue) AsFunctionValue() (string, bool) { 7420 res, ok := fpv.value.(string) 7421 return res, ok 7422 } 7423 func (fpv *Pagination_FieldTerminalPathValue) AsAlignmentPeriodValue() (*durationpb.Duration, bool) { 7424 res, ok := fpv.value.(*durationpb.Duration) 7425 return res, ok 7426 } 7427 func (fpv *Pagination_FieldTerminalPathValue) AsLimitValue() (int32, bool) { 7428 res, ok := fpv.value.(int32) 7429 return res, ok 7430 } 7431 func (fpv *Pagination_FieldTerminalPathValue) AsOffsetValue() (int32, bool) { 7432 res, ok := fpv.value.(int32) 7433 return res, ok 7434 } 7435 7436 // SetTo stores value for selected field for object Pagination 7437 func (fpv *Pagination_FieldTerminalPathValue) SetTo(target **Pagination) { 7438 if *target == nil { 7439 *target = new(Pagination) 7440 } 7441 switch fpv.selector { 7442 case Pagination_FieldPathSelectorView: 7443 (*target).View = fpv.value.(string) 7444 case Pagination_FieldPathSelectorFunction: 7445 (*target).Function = fpv.value.(string) 7446 case Pagination_FieldPathSelectorAlignmentPeriod: 7447 (*target).AlignmentPeriod = fpv.value.(*durationpb.Duration) 7448 case Pagination_FieldPathSelectorLimit: 7449 (*target).Limit = fpv.value.(int32) 7450 case Pagination_FieldPathSelectorOffset: 7451 (*target).Offset = fpv.value.(int32) 7452 default: 7453 panic(fmt.Sprintf("Invalid selector for Pagination: %d", fpv.selector)) 7454 } 7455 } 7456 7457 func (fpv *Pagination_FieldTerminalPathValue) SetToRaw(target proto.Message) { 7458 typedObject := target.(*Pagination) 7459 fpv.SetTo(&typedObject) 7460 } 7461 7462 // CompareWith compares value in the 'Pagination_FieldTerminalPathValue' with the value under path in 'Pagination'. 7463 func (fpv *Pagination_FieldTerminalPathValue) CompareWith(source *Pagination) (int, bool) { 7464 switch fpv.selector { 7465 case Pagination_FieldPathSelectorView: 7466 leftValue := fpv.value.(string) 7467 rightValue := source.GetView() 7468 if (leftValue) == (rightValue) { 7469 return 0, true 7470 } else if (leftValue) < (rightValue) { 7471 return -1, true 7472 } else { 7473 return 1, true 7474 } 7475 case Pagination_FieldPathSelectorFunction: 7476 leftValue := fpv.value.(string) 7477 rightValue := source.GetFunction() 7478 if (leftValue) == (rightValue) { 7479 return 0, true 7480 } else if (leftValue) < (rightValue) { 7481 return -1, true 7482 } else { 7483 return 1, true 7484 } 7485 case Pagination_FieldPathSelectorAlignmentPeriod: 7486 leftValue := fpv.value.(*durationpb.Duration) 7487 rightValue := source.GetAlignmentPeriod() 7488 if leftValue == nil { 7489 if rightValue != nil { 7490 return -1, true 7491 } 7492 return 0, true 7493 } 7494 if rightValue == nil { 7495 return 1, true 7496 } 7497 if leftValue.AsDuration() == rightValue.AsDuration() { 7498 return 0, true 7499 } else if leftValue.AsDuration() < rightValue.AsDuration() { 7500 return -1, true 7501 } else { 7502 return 1, true 7503 } 7504 case Pagination_FieldPathSelectorLimit: 7505 leftValue := fpv.value.(int32) 7506 rightValue := source.GetLimit() 7507 if (leftValue) == (rightValue) { 7508 return 0, true 7509 } else if (leftValue) < (rightValue) { 7510 return -1, true 7511 } else { 7512 return 1, true 7513 } 7514 case Pagination_FieldPathSelectorOffset: 7515 leftValue := fpv.value.(int32) 7516 rightValue := source.GetOffset() 7517 if (leftValue) == (rightValue) { 7518 return 0, true 7519 } else if (leftValue) < (rightValue) { 7520 return -1, true 7521 } else { 7522 return 1, true 7523 } 7524 default: 7525 panic(fmt.Sprintf("Invalid selector for Pagination: %d", fpv.selector)) 7526 } 7527 } 7528 7529 func (fpv *Pagination_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 7530 return fpv.CompareWith(source.(*Pagination)) 7531 } 7532 7533 // Pagination_FieldPathArrayItemValue allows storing single item in Path-specific values for Pagination according to their type 7534 // Present only for array (repeated) types. 7535 type Pagination_FieldPathArrayItemValue interface { 7536 gotenobject.FieldPathArrayItemValue 7537 Pagination_FieldPath 7538 ContainsValue(*Pagination) bool 7539 } 7540 7541 // ParsePagination_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 7542 func ParsePagination_FieldPathArrayItemValue(pathStr, valueStr string) (Pagination_FieldPathArrayItemValue, error) { 7543 fp, err := ParsePagination_FieldPath(pathStr) 7544 if err != nil { 7545 return nil, err 7546 } 7547 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 7548 if err != nil { 7549 return nil, status.Errorf(codes.InvalidArgument, "error parsing Pagination field path array item value from %s: %v", valueStr, err) 7550 } 7551 return fpaiv.(Pagination_FieldPathArrayItemValue), nil 7552 } 7553 7554 func MustParsePagination_FieldPathArrayItemValue(pathStr, valueStr string) Pagination_FieldPathArrayItemValue { 7555 fpaiv, err := ParsePagination_FieldPathArrayItemValue(pathStr, valueStr) 7556 if err != nil { 7557 panic(err) 7558 } 7559 return fpaiv 7560 } 7561 7562 type Pagination_FieldTerminalPathArrayItemValue struct { 7563 Pagination_FieldTerminalPath 7564 value interface{} 7565 } 7566 7567 var _ Pagination_FieldPathArrayItemValue = (*Pagination_FieldTerminalPathArrayItemValue)(nil) 7568 7569 // GetRawValue returns stored element value for array in object Pagination as interface{} 7570 func (fpaiv *Pagination_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 7571 return fpaiv.value 7572 } 7573 7574 func (fpaiv *Pagination_FieldTerminalPathArrayItemValue) GetSingle(source *Pagination) (interface{}, bool) { 7575 return nil, false 7576 } 7577 7578 func (fpaiv *Pagination_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 7579 return fpaiv.GetSingle(source.(*Pagination)) 7580 } 7581 7582 // Contains returns a boolean indicating if value that is being held is present in given 'Pagination' 7583 func (fpaiv *Pagination_FieldTerminalPathArrayItemValue) ContainsValue(source *Pagination) bool { 7584 slice := fpaiv.Pagination_FieldTerminalPath.Get(source) 7585 for _, v := range slice { 7586 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 7587 if proto.Equal(asProtoMsg, v.(proto.Message)) { 7588 return true 7589 } 7590 } else if reflect.DeepEqual(v, fpaiv.value) { 7591 return true 7592 } 7593 } 7594 return false 7595 } 7596 7597 // Pagination_FieldPathArrayOfValues allows storing slice of values for Pagination fields according to their type 7598 type Pagination_FieldPathArrayOfValues interface { 7599 gotenobject.FieldPathArrayOfValues 7600 Pagination_FieldPath 7601 } 7602 7603 func ParsePagination_FieldPathArrayOfValues(pathStr, valuesStr string) (Pagination_FieldPathArrayOfValues, error) { 7604 fp, err := ParsePagination_FieldPath(pathStr) 7605 if err != nil { 7606 return nil, err 7607 } 7608 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 7609 if err != nil { 7610 return nil, status.Errorf(codes.InvalidArgument, "error parsing Pagination field path array of values from %s: %v", valuesStr, err) 7611 } 7612 return fpaov.(Pagination_FieldPathArrayOfValues), nil 7613 } 7614 7615 func MustParsePagination_FieldPathArrayOfValues(pathStr, valuesStr string) Pagination_FieldPathArrayOfValues { 7616 fpaov, err := ParsePagination_FieldPathArrayOfValues(pathStr, valuesStr) 7617 if err != nil { 7618 panic(err) 7619 } 7620 return fpaov 7621 } 7622 7623 type Pagination_FieldTerminalPathArrayOfValues struct { 7624 Pagination_FieldTerminalPath 7625 values interface{} 7626 } 7627 7628 var _ Pagination_FieldPathArrayOfValues = (*Pagination_FieldTerminalPathArrayOfValues)(nil) 7629 7630 func (fpaov *Pagination_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 7631 switch fpaov.selector { 7632 case Pagination_FieldPathSelectorView: 7633 for _, v := range fpaov.values.([]string) { 7634 values = append(values, v) 7635 } 7636 case Pagination_FieldPathSelectorFunction: 7637 for _, v := range fpaov.values.([]string) { 7638 values = append(values, v) 7639 } 7640 case Pagination_FieldPathSelectorAlignmentPeriod: 7641 for _, v := range fpaov.values.([]*durationpb.Duration) { 7642 values = append(values, v) 7643 } 7644 case Pagination_FieldPathSelectorLimit: 7645 for _, v := range fpaov.values.([]int32) { 7646 values = append(values, v) 7647 } 7648 case Pagination_FieldPathSelectorOffset: 7649 for _, v := range fpaov.values.([]int32) { 7650 values = append(values, v) 7651 } 7652 } 7653 return 7654 } 7655 func (fpaov *Pagination_FieldTerminalPathArrayOfValues) AsViewArrayOfValues() ([]string, bool) { 7656 res, ok := fpaov.values.([]string) 7657 return res, ok 7658 } 7659 func (fpaov *Pagination_FieldTerminalPathArrayOfValues) AsFunctionArrayOfValues() ([]string, bool) { 7660 res, ok := fpaov.values.([]string) 7661 return res, ok 7662 } 7663 func (fpaov *Pagination_FieldTerminalPathArrayOfValues) AsAlignmentPeriodArrayOfValues() ([]*durationpb.Duration, bool) { 7664 res, ok := fpaov.values.([]*durationpb.Duration) 7665 return res, ok 7666 } 7667 func (fpaov *Pagination_FieldTerminalPathArrayOfValues) AsLimitArrayOfValues() ([]int32, bool) { 7668 res, ok := fpaov.values.([]int32) 7669 return res, ok 7670 } 7671 func (fpaov *Pagination_FieldTerminalPathArrayOfValues) AsOffsetArrayOfValues() ([]int32, bool) { 7672 res, ok := fpaov.values.([]int32) 7673 return res, ok 7674 } 7675 7676 // FieldPath provides implementation to handle 7677 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 7678 type Metric_FieldPath interface { 7679 gotenobject.FieldPath 7680 Selector() Metric_FieldPathSelector 7681 Get(source *Metric) []interface{} 7682 GetSingle(source *Metric) (interface{}, bool) 7683 ClearValue(item *Metric) 7684 7685 // Those methods build corresponding Metric_FieldPathValue 7686 // (or array of values) and holds passed value. Panics if injected type is incorrect. 7687 WithIValue(value interface{}) Metric_FieldPathValue 7688 WithIArrayOfValues(values interface{}) Metric_FieldPathArrayOfValues 7689 WithIArrayItemValue(value interface{}) Metric_FieldPathArrayItemValue 7690 } 7691 7692 type Metric_FieldPathSelector int32 7693 7694 const ( 7695 Metric_FieldPathSelectorType Metric_FieldPathSelector = 0 7696 Metric_FieldPathSelectorLabels Metric_FieldPathSelector = 1 7697 Metric_FieldPathSelectorReducedLabels Metric_FieldPathSelector = 2 7698 ) 7699 7700 func (s Metric_FieldPathSelector) String() string { 7701 switch s { 7702 case Metric_FieldPathSelectorType: 7703 return "type" 7704 case Metric_FieldPathSelectorLabels: 7705 return "labels" 7706 case Metric_FieldPathSelectorReducedLabels: 7707 return "reduced_labels" 7708 default: 7709 panic(fmt.Sprintf("Invalid selector for Metric: %d", s)) 7710 } 7711 } 7712 7713 func BuildMetric_FieldPath(fp gotenobject.RawFieldPath) (Metric_FieldPath, error) { 7714 if len(fp) == 0 { 7715 return nil, status.Error(codes.InvalidArgument, "empty field path for object Metric") 7716 } 7717 if len(fp) == 1 { 7718 switch fp[0] { 7719 case "type": 7720 return &Metric_FieldTerminalPath{selector: Metric_FieldPathSelectorType}, nil 7721 case "labels": 7722 return &Metric_FieldTerminalPath{selector: Metric_FieldPathSelectorLabels}, nil 7723 case "reduced_labels", "reducedLabels", "reduced-labels": 7724 return &Metric_FieldTerminalPath{selector: Metric_FieldPathSelectorReducedLabels}, nil 7725 } 7726 } else { 7727 switch fp[0] { 7728 case "labels": 7729 if len(fp) > 2 { 7730 return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object Metric)", fp) 7731 } 7732 return &Metric_FieldPathMap{selector: Metric_FieldPathSelectorLabels, key: fp[1]}, nil 7733 } 7734 } 7735 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Metric", fp) 7736 } 7737 7738 func ParseMetric_FieldPath(rawField string) (Metric_FieldPath, error) { 7739 fp, err := gotenobject.ParseRawFieldPath(rawField) 7740 if err != nil { 7741 return nil, err 7742 } 7743 return BuildMetric_FieldPath(fp) 7744 } 7745 7746 func MustParseMetric_FieldPath(rawField string) Metric_FieldPath { 7747 fp, err := ParseMetric_FieldPath(rawField) 7748 if err != nil { 7749 panic(err) 7750 } 7751 return fp 7752 } 7753 7754 type Metric_FieldTerminalPath struct { 7755 selector Metric_FieldPathSelector 7756 } 7757 7758 var _ Metric_FieldPath = (*Metric_FieldTerminalPath)(nil) 7759 7760 func (fp *Metric_FieldTerminalPath) Selector() Metric_FieldPathSelector { 7761 return fp.selector 7762 } 7763 7764 // String returns path representation in proto convention 7765 func (fp *Metric_FieldTerminalPath) String() string { 7766 return fp.selector.String() 7767 } 7768 7769 // JSONString returns path representation is JSON convention 7770 func (fp *Metric_FieldTerminalPath) JSONString() string { 7771 return strcase.ToLowerCamel(fp.String()) 7772 } 7773 7774 // Get returns all values pointed by specific field from source Metric 7775 func (fp *Metric_FieldTerminalPath) Get(source *Metric) (values []interface{}) { 7776 if source != nil { 7777 switch fp.selector { 7778 case Metric_FieldPathSelectorType: 7779 values = append(values, source.Type) 7780 case Metric_FieldPathSelectorLabels: 7781 values = append(values, source.Labels) 7782 case Metric_FieldPathSelectorReducedLabels: 7783 for _, value := range source.GetReducedLabels() { 7784 values = append(values, value) 7785 } 7786 default: 7787 panic(fmt.Sprintf("Invalid selector for Metric: %d", fp.selector)) 7788 } 7789 } 7790 return 7791 } 7792 7793 func (fp *Metric_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 7794 return fp.Get(source.(*Metric)) 7795 } 7796 7797 // GetSingle returns value pointed by specific field of from source Metric 7798 func (fp *Metric_FieldTerminalPath) GetSingle(source *Metric) (interface{}, bool) { 7799 switch fp.selector { 7800 case Metric_FieldPathSelectorType: 7801 return source.GetType(), source != nil 7802 case Metric_FieldPathSelectorLabels: 7803 res := source.GetLabels() 7804 return res, res != nil 7805 case Metric_FieldPathSelectorReducedLabels: 7806 res := source.GetReducedLabels() 7807 return res, res != nil 7808 default: 7809 panic(fmt.Sprintf("Invalid selector for Metric: %d", fp.selector)) 7810 } 7811 } 7812 7813 func (fp *Metric_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 7814 return fp.GetSingle(source.(*Metric)) 7815 } 7816 7817 // GetDefault returns a default value of the field type 7818 func (fp *Metric_FieldTerminalPath) GetDefault() interface{} { 7819 switch fp.selector { 7820 case Metric_FieldPathSelectorType: 7821 return "" 7822 case Metric_FieldPathSelectorLabels: 7823 return (map[string]string)(nil) 7824 case Metric_FieldPathSelectorReducedLabels: 7825 return ([]string)(nil) 7826 default: 7827 panic(fmt.Sprintf("Invalid selector for Metric: %d", fp.selector)) 7828 } 7829 } 7830 7831 func (fp *Metric_FieldTerminalPath) ClearValue(item *Metric) { 7832 if item != nil { 7833 switch fp.selector { 7834 case Metric_FieldPathSelectorType: 7835 item.Type = "" 7836 case Metric_FieldPathSelectorLabels: 7837 item.Labels = nil 7838 case Metric_FieldPathSelectorReducedLabels: 7839 item.ReducedLabels = nil 7840 default: 7841 panic(fmt.Sprintf("Invalid selector for Metric: %d", fp.selector)) 7842 } 7843 } 7844 } 7845 7846 func (fp *Metric_FieldTerminalPath) ClearValueRaw(item proto.Message) { 7847 fp.ClearValue(item.(*Metric)) 7848 } 7849 7850 // IsLeaf - whether field path is holds simple value 7851 func (fp *Metric_FieldTerminalPath) IsLeaf() bool { 7852 return fp.selector == Metric_FieldPathSelectorType || 7853 fp.selector == Metric_FieldPathSelectorLabels || 7854 fp.selector == Metric_FieldPathSelectorReducedLabels 7855 } 7856 7857 func (fp *Metric_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 7858 return []gotenobject.FieldPath{fp} 7859 } 7860 7861 func (fp *Metric_FieldTerminalPath) WithIValue(value interface{}) Metric_FieldPathValue { 7862 switch fp.selector { 7863 case Metric_FieldPathSelectorType: 7864 return &Metric_FieldTerminalPathValue{Metric_FieldTerminalPath: *fp, value: value.(string)} 7865 case Metric_FieldPathSelectorLabels: 7866 return &Metric_FieldTerminalPathValue{Metric_FieldTerminalPath: *fp, value: value.(map[string]string)} 7867 case Metric_FieldPathSelectorReducedLabels: 7868 return &Metric_FieldTerminalPathValue{Metric_FieldTerminalPath: *fp, value: value.([]string)} 7869 default: 7870 panic(fmt.Sprintf("Invalid selector for Metric: %d", fp.selector)) 7871 } 7872 } 7873 7874 func (fp *Metric_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 7875 return fp.WithIValue(value) 7876 } 7877 7878 func (fp *Metric_FieldTerminalPath) WithIArrayOfValues(values interface{}) Metric_FieldPathArrayOfValues { 7879 fpaov := &Metric_FieldTerminalPathArrayOfValues{Metric_FieldTerminalPath: *fp} 7880 switch fp.selector { 7881 case Metric_FieldPathSelectorType: 7882 return &Metric_FieldTerminalPathArrayOfValues{Metric_FieldTerminalPath: *fp, values: values.([]string)} 7883 case Metric_FieldPathSelectorLabels: 7884 return &Metric_FieldTerminalPathArrayOfValues{Metric_FieldTerminalPath: *fp, values: values.([]map[string]string)} 7885 case Metric_FieldPathSelectorReducedLabels: 7886 return &Metric_FieldTerminalPathArrayOfValues{Metric_FieldTerminalPath: *fp, values: values.([][]string)} 7887 default: 7888 panic(fmt.Sprintf("Invalid selector for Metric: %d", fp.selector)) 7889 } 7890 return fpaov 7891 } 7892 7893 func (fp *Metric_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 7894 return fp.WithIArrayOfValues(values) 7895 } 7896 7897 func (fp *Metric_FieldTerminalPath) WithIArrayItemValue(value interface{}) Metric_FieldPathArrayItemValue { 7898 switch fp.selector { 7899 case Metric_FieldPathSelectorReducedLabels: 7900 return &Metric_FieldTerminalPathArrayItemValue{Metric_FieldTerminalPath: *fp, value: value.(string)} 7901 default: 7902 panic(fmt.Sprintf("Invalid selector for Metric: %d", fp.selector)) 7903 } 7904 } 7905 7906 func (fp *Metric_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 7907 return fp.WithIArrayItemValue(value) 7908 } 7909 7910 // FieldPath for map type with additional Key information 7911 type Metric_FieldPathMap struct { 7912 key string 7913 selector Metric_FieldPathSelector 7914 } 7915 7916 var _ Metric_FieldPath = (*Metric_FieldPathMap)(nil) 7917 7918 func (fpm *Metric_FieldPathMap) Selector() Metric_FieldPathSelector { 7919 return fpm.selector 7920 } 7921 7922 func (fpm *Metric_FieldPathMap) Key() string { 7923 return fpm.key 7924 } 7925 7926 // String returns path representation in proto convention 7927 func (fpm *Metric_FieldPathMap) String() string { 7928 return fpm.selector.String() + "." + fpm.key 7929 } 7930 7931 // JSONString returns path representation is JSON convention. Note that map keys are not transformed 7932 func (fpm *Metric_FieldPathMap) JSONString() string { 7933 return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key 7934 } 7935 7936 // Get returns all values pointed by selected field map key from source Metric 7937 func (fpm *Metric_FieldPathMap) Get(source *Metric) (values []interface{}) { 7938 switch fpm.selector { 7939 case Metric_FieldPathSelectorLabels: 7940 if value, ok := source.GetLabels()[fpm.key]; ok { 7941 values = append(values, value) 7942 } 7943 default: 7944 panic(fmt.Sprintf("Invalid selector for Metric: %d", fpm.selector)) 7945 } 7946 return 7947 } 7948 7949 func (fpm *Metric_FieldPathMap) GetRaw(source proto.Message) []interface{} { 7950 return fpm.Get(source.(*Metric)) 7951 } 7952 7953 // GetSingle returns value by selected field map key from source Metric 7954 func (fpm *Metric_FieldPathMap) GetSingle(source *Metric) (interface{}, bool) { 7955 switch fpm.selector { 7956 case Metric_FieldPathSelectorLabels: 7957 res, ok := source.GetLabels()[fpm.key] 7958 return res, ok 7959 default: 7960 panic(fmt.Sprintf("Invalid selector for Metric: %d", fpm.selector)) 7961 } 7962 } 7963 7964 func (fpm *Metric_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) { 7965 return fpm.GetSingle(source.(*Metric)) 7966 } 7967 7968 // GetDefault returns a default value of the field type 7969 func (fpm *Metric_FieldPathMap) GetDefault() interface{} { 7970 switch fpm.selector { 7971 case Metric_FieldPathSelectorLabels: 7972 var v string 7973 return v 7974 default: 7975 panic(fmt.Sprintf("Invalid selector for Metric: %d", fpm.selector)) 7976 } 7977 } 7978 7979 func (fpm *Metric_FieldPathMap) ClearValue(item *Metric) { 7980 if item != nil { 7981 switch fpm.selector { 7982 case Metric_FieldPathSelectorLabels: 7983 delete(item.Labels, fpm.key) 7984 default: 7985 panic(fmt.Sprintf("Invalid selector for Metric: %d", fpm.selector)) 7986 } 7987 } 7988 } 7989 7990 func (fpm *Metric_FieldPathMap) ClearValueRaw(item proto.Message) { 7991 fpm.ClearValue(item.(*Metric)) 7992 } 7993 7994 // IsLeaf - whether field path is holds simple value 7995 func (fpm *Metric_FieldPathMap) IsLeaf() bool { 7996 switch fpm.selector { 7997 case Metric_FieldPathSelectorLabels: 7998 return true 7999 default: 8000 panic(fmt.Sprintf("Invalid selector for Metric: %d", fpm.selector)) 8001 } 8002 } 8003 8004 func (fpm *Metric_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 8005 return []gotenobject.FieldPath{fpm} 8006 } 8007 8008 func (fpm *Metric_FieldPathMap) WithIValue(value interface{}) Metric_FieldPathValue { 8009 switch fpm.selector { 8010 case Metric_FieldPathSelectorLabels: 8011 return &Metric_FieldPathMapValue{Metric_FieldPathMap: *fpm, value: value.(string)} 8012 default: 8013 panic(fmt.Sprintf("Invalid selector for Metric: %d", fpm.selector)) 8014 } 8015 } 8016 8017 func (fpm *Metric_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 8018 return fpm.WithIValue(value) 8019 } 8020 8021 func (fpm *Metric_FieldPathMap) WithIArrayOfValues(values interface{}) Metric_FieldPathArrayOfValues { 8022 switch fpm.selector { 8023 case Metric_FieldPathSelectorLabels: 8024 return &Metric_FieldPathMapArrayOfValues{Metric_FieldPathMap: *fpm, values: values.([]string)} 8025 default: 8026 panic(fmt.Sprintf("Invalid selector for Metric: %d", fpm.selector)) 8027 } 8028 } 8029 8030 func (fpm *Metric_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 8031 return fpm.WithIArrayOfValues(values) 8032 } 8033 8034 func (fpm *Metric_FieldPathMap) WithIArrayItemValue(value interface{}) Metric_FieldPathArrayItemValue { 8035 panic("Cannot create array item value from map fieldpath") 8036 } 8037 8038 func (fpm *Metric_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 8039 return fpm.WithIArrayItemValue(value) 8040 } 8041 8042 // Metric_FieldPathValue allows storing values for Metric fields according to their type 8043 type Metric_FieldPathValue interface { 8044 Metric_FieldPath 8045 gotenobject.FieldPathValue 8046 SetTo(target **Metric) 8047 CompareWith(*Metric) (cmp int, comparable bool) 8048 } 8049 8050 func ParseMetric_FieldPathValue(pathStr, valueStr string) (Metric_FieldPathValue, error) { 8051 fp, err := ParseMetric_FieldPath(pathStr) 8052 if err != nil { 8053 return nil, err 8054 } 8055 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 8056 if err != nil { 8057 return nil, status.Errorf(codes.InvalidArgument, "error parsing Metric field path value from %s: %v", valueStr, err) 8058 } 8059 return fpv.(Metric_FieldPathValue), nil 8060 } 8061 8062 func MustParseMetric_FieldPathValue(pathStr, valueStr string) Metric_FieldPathValue { 8063 fpv, err := ParseMetric_FieldPathValue(pathStr, valueStr) 8064 if err != nil { 8065 panic(err) 8066 } 8067 return fpv 8068 } 8069 8070 type Metric_FieldTerminalPathValue struct { 8071 Metric_FieldTerminalPath 8072 value interface{} 8073 } 8074 8075 var _ Metric_FieldPathValue = (*Metric_FieldTerminalPathValue)(nil) 8076 8077 // GetRawValue returns raw value stored under selected path for 'Metric' as interface{} 8078 func (fpv *Metric_FieldTerminalPathValue) GetRawValue() interface{} { 8079 return fpv.value 8080 } 8081 func (fpv *Metric_FieldTerminalPathValue) AsTypeValue() (string, bool) { 8082 res, ok := fpv.value.(string) 8083 return res, ok 8084 } 8085 func (fpv *Metric_FieldTerminalPathValue) AsLabelsValue() (map[string]string, bool) { 8086 res, ok := fpv.value.(map[string]string) 8087 return res, ok 8088 } 8089 func (fpv *Metric_FieldTerminalPathValue) AsReducedLabelsValue() ([]string, bool) { 8090 res, ok := fpv.value.([]string) 8091 return res, ok 8092 } 8093 8094 // SetTo stores value for selected field for object Metric 8095 func (fpv *Metric_FieldTerminalPathValue) SetTo(target **Metric) { 8096 if *target == nil { 8097 *target = new(Metric) 8098 } 8099 switch fpv.selector { 8100 case Metric_FieldPathSelectorType: 8101 (*target).Type = fpv.value.(string) 8102 case Metric_FieldPathSelectorLabels: 8103 (*target).Labels = fpv.value.(map[string]string) 8104 case Metric_FieldPathSelectorReducedLabels: 8105 (*target).ReducedLabels = fpv.value.([]string) 8106 default: 8107 panic(fmt.Sprintf("Invalid selector for Metric: %d", fpv.selector)) 8108 } 8109 } 8110 8111 func (fpv *Metric_FieldTerminalPathValue) SetToRaw(target proto.Message) { 8112 typedObject := target.(*Metric) 8113 fpv.SetTo(&typedObject) 8114 } 8115 8116 // CompareWith compares value in the 'Metric_FieldTerminalPathValue' with the value under path in 'Metric'. 8117 func (fpv *Metric_FieldTerminalPathValue) CompareWith(source *Metric) (int, bool) { 8118 switch fpv.selector { 8119 case Metric_FieldPathSelectorType: 8120 leftValue := fpv.value.(string) 8121 rightValue := source.GetType() 8122 if (leftValue) == (rightValue) { 8123 return 0, true 8124 } else if (leftValue) < (rightValue) { 8125 return -1, true 8126 } else { 8127 return 1, true 8128 } 8129 case Metric_FieldPathSelectorLabels: 8130 return 0, false 8131 case Metric_FieldPathSelectorReducedLabels: 8132 return 0, false 8133 default: 8134 panic(fmt.Sprintf("Invalid selector for Metric: %d", fpv.selector)) 8135 } 8136 } 8137 8138 func (fpv *Metric_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 8139 return fpv.CompareWith(source.(*Metric)) 8140 } 8141 8142 type Metric_FieldPathMapValue struct { 8143 Metric_FieldPathMap 8144 value interface{} 8145 } 8146 8147 var _ Metric_FieldPathValue = (*Metric_FieldPathMapValue)(nil) 8148 8149 // GetValue returns value stored under selected field in Metric as interface{} 8150 func (fpmv *Metric_FieldPathMapValue) GetRawValue() interface{} { 8151 return fpmv.value 8152 } 8153 func (fpmv *Metric_FieldPathMapValue) AsLabelsElementValue() (string, bool) { 8154 res, ok := fpmv.value.(string) 8155 return res, ok 8156 } 8157 8158 // SetTo stores value for selected field in Metric 8159 func (fpmv *Metric_FieldPathMapValue) SetTo(target **Metric) { 8160 if *target == nil { 8161 *target = new(Metric) 8162 } 8163 switch fpmv.selector { 8164 case Metric_FieldPathSelectorLabels: 8165 if (*target).Labels == nil { 8166 (*target).Labels = make(map[string]string) 8167 } 8168 (*target).Labels[fpmv.key] = fpmv.value.(string) 8169 default: 8170 panic(fmt.Sprintf("Invalid selector for Metric: %d", fpmv.selector)) 8171 } 8172 } 8173 8174 func (fpmv *Metric_FieldPathMapValue) SetToRaw(target proto.Message) { 8175 typedObject := target.(*Metric) 8176 fpmv.SetTo(&typedObject) 8177 } 8178 8179 // CompareWith compares value in the 'Metric_FieldPathMapValue' with the value under path in 'Metric'. 8180 func (fpmv *Metric_FieldPathMapValue) CompareWith(source *Metric) (int, bool) { 8181 switch fpmv.selector { 8182 case Metric_FieldPathSelectorLabels: 8183 leftValue := fpmv.value.(string) 8184 rightValue := source.GetLabels()[fpmv.key] 8185 if (leftValue) == (rightValue) { 8186 return 0, true 8187 } else if (leftValue) < (rightValue) { 8188 return -1, true 8189 } else { 8190 return 1, true 8191 } 8192 default: 8193 panic(fmt.Sprintf("Invalid selector for Metric: %d", fpmv.selector)) 8194 } 8195 } 8196 8197 func (fpmv *Metric_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) { 8198 return fpmv.CompareWith(source.(*Metric)) 8199 } 8200 8201 // Metric_FieldPathArrayItemValue allows storing single item in Path-specific values for Metric according to their type 8202 // Present only for array (repeated) types. 8203 type Metric_FieldPathArrayItemValue interface { 8204 gotenobject.FieldPathArrayItemValue 8205 Metric_FieldPath 8206 ContainsValue(*Metric) bool 8207 } 8208 8209 // ParseMetric_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 8210 func ParseMetric_FieldPathArrayItemValue(pathStr, valueStr string) (Metric_FieldPathArrayItemValue, error) { 8211 fp, err := ParseMetric_FieldPath(pathStr) 8212 if err != nil { 8213 return nil, err 8214 } 8215 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 8216 if err != nil { 8217 return nil, status.Errorf(codes.InvalidArgument, "error parsing Metric field path array item value from %s: %v", valueStr, err) 8218 } 8219 return fpaiv.(Metric_FieldPathArrayItemValue), nil 8220 } 8221 8222 func MustParseMetric_FieldPathArrayItemValue(pathStr, valueStr string) Metric_FieldPathArrayItemValue { 8223 fpaiv, err := ParseMetric_FieldPathArrayItemValue(pathStr, valueStr) 8224 if err != nil { 8225 panic(err) 8226 } 8227 return fpaiv 8228 } 8229 8230 type Metric_FieldTerminalPathArrayItemValue struct { 8231 Metric_FieldTerminalPath 8232 value interface{} 8233 } 8234 8235 var _ Metric_FieldPathArrayItemValue = (*Metric_FieldTerminalPathArrayItemValue)(nil) 8236 8237 // GetRawValue returns stored element value for array in object Metric as interface{} 8238 func (fpaiv *Metric_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 8239 return fpaiv.value 8240 } 8241 func (fpaiv *Metric_FieldTerminalPathArrayItemValue) AsReducedLabelsItemValue() (string, bool) { 8242 res, ok := fpaiv.value.(string) 8243 return res, ok 8244 } 8245 8246 func (fpaiv *Metric_FieldTerminalPathArrayItemValue) GetSingle(source *Metric) (interface{}, bool) { 8247 return nil, false 8248 } 8249 8250 func (fpaiv *Metric_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 8251 return fpaiv.GetSingle(source.(*Metric)) 8252 } 8253 8254 // Contains returns a boolean indicating if value that is being held is present in given 'Metric' 8255 func (fpaiv *Metric_FieldTerminalPathArrayItemValue) ContainsValue(source *Metric) bool { 8256 slice := fpaiv.Metric_FieldTerminalPath.Get(source) 8257 for _, v := range slice { 8258 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 8259 if proto.Equal(asProtoMsg, v.(proto.Message)) { 8260 return true 8261 } 8262 } else if reflect.DeepEqual(v, fpaiv.value) { 8263 return true 8264 } 8265 } 8266 return false 8267 } 8268 8269 // Metric_FieldPathArrayOfValues allows storing slice of values for Metric fields according to their type 8270 type Metric_FieldPathArrayOfValues interface { 8271 gotenobject.FieldPathArrayOfValues 8272 Metric_FieldPath 8273 } 8274 8275 func ParseMetric_FieldPathArrayOfValues(pathStr, valuesStr string) (Metric_FieldPathArrayOfValues, error) { 8276 fp, err := ParseMetric_FieldPath(pathStr) 8277 if err != nil { 8278 return nil, err 8279 } 8280 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 8281 if err != nil { 8282 return nil, status.Errorf(codes.InvalidArgument, "error parsing Metric field path array of values from %s: %v", valuesStr, err) 8283 } 8284 return fpaov.(Metric_FieldPathArrayOfValues), nil 8285 } 8286 8287 func MustParseMetric_FieldPathArrayOfValues(pathStr, valuesStr string) Metric_FieldPathArrayOfValues { 8288 fpaov, err := ParseMetric_FieldPathArrayOfValues(pathStr, valuesStr) 8289 if err != nil { 8290 panic(err) 8291 } 8292 return fpaov 8293 } 8294 8295 type Metric_FieldTerminalPathArrayOfValues struct { 8296 Metric_FieldTerminalPath 8297 values interface{} 8298 } 8299 8300 var _ Metric_FieldPathArrayOfValues = (*Metric_FieldTerminalPathArrayOfValues)(nil) 8301 8302 func (fpaov *Metric_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 8303 switch fpaov.selector { 8304 case Metric_FieldPathSelectorType: 8305 for _, v := range fpaov.values.([]string) { 8306 values = append(values, v) 8307 } 8308 case Metric_FieldPathSelectorLabels: 8309 for _, v := range fpaov.values.([]map[string]string) { 8310 values = append(values, v) 8311 } 8312 case Metric_FieldPathSelectorReducedLabels: 8313 for _, v := range fpaov.values.([][]string) { 8314 values = append(values, v) 8315 } 8316 } 8317 return 8318 } 8319 func (fpaov *Metric_FieldTerminalPathArrayOfValues) AsTypeArrayOfValues() ([]string, bool) { 8320 res, ok := fpaov.values.([]string) 8321 return res, ok 8322 } 8323 func (fpaov *Metric_FieldTerminalPathArrayOfValues) AsLabelsArrayOfValues() ([]map[string]string, bool) { 8324 res, ok := fpaov.values.([]map[string]string) 8325 return res, ok 8326 } 8327 func (fpaov *Metric_FieldTerminalPathArrayOfValues) AsReducedLabelsArrayOfValues() ([][]string, bool) { 8328 res, ok := fpaov.values.([][]string) 8329 return res, ok 8330 } 8331 8332 type Metric_FieldPathMapArrayOfValues struct { 8333 Metric_FieldPathMap 8334 values interface{} 8335 } 8336 8337 var _ Metric_FieldPathArrayOfValues = (*Metric_FieldPathMapArrayOfValues)(nil) 8338 8339 func (fpmaov *Metric_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) { 8340 switch fpmaov.selector { 8341 case Metric_FieldPathSelectorLabels: 8342 for _, v := range fpmaov.values.([]string) { 8343 values = append(values, v) 8344 } 8345 } 8346 return 8347 } 8348 func (fpmaov *Metric_FieldPathMapArrayOfValues) AsLabelsArrayOfElementValues() ([]string, bool) { 8349 res, ok := fpmaov.values.([]string) 8350 return res, ok 8351 } 8352 8353 // FieldPath provides implementation to handle 8354 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 8355 type MonitoredResource_FieldPath interface { 8356 gotenobject.FieldPath 8357 Selector() MonitoredResource_FieldPathSelector 8358 Get(source *MonitoredResource) []interface{} 8359 GetSingle(source *MonitoredResource) (interface{}, bool) 8360 ClearValue(item *MonitoredResource) 8361 8362 // Those methods build corresponding MonitoredResource_FieldPathValue 8363 // (or array of values) and holds passed value. Panics if injected type is incorrect. 8364 WithIValue(value interface{}) MonitoredResource_FieldPathValue 8365 WithIArrayOfValues(values interface{}) MonitoredResource_FieldPathArrayOfValues 8366 WithIArrayItemValue(value interface{}) MonitoredResource_FieldPathArrayItemValue 8367 } 8368 8369 type MonitoredResource_FieldPathSelector int32 8370 8371 const ( 8372 MonitoredResource_FieldPathSelectorType MonitoredResource_FieldPathSelector = 0 8373 MonitoredResource_FieldPathSelectorLabels MonitoredResource_FieldPathSelector = 1 8374 MonitoredResource_FieldPathSelectorReducedLabels MonitoredResource_FieldPathSelector = 2 8375 ) 8376 8377 func (s MonitoredResource_FieldPathSelector) String() string { 8378 switch s { 8379 case MonitoredResource_FieldPathSelectorType: 8380 return "type" 8381 case MonitoredResource_FieldPathSelectorLabels: 8382 return "labels" 8383 case MonitoredResource_FieldPathSelectorReducedLabels: 8384 return "reduced_labels" 8385 default: 8386 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", s)) 8387 } 8388 } 8389 8390 func BuildMonitoredResource_FieldPath(fp gotenobject.RawFieldPath) (MonitoredResource_FieldPath, error) { 8391 if len(fp) == 0 { 8392 return nil, status.Error(codes.InvalidArgument, "empty field path for object MonitoredResource") 8393 } 8394 if len(fp) == 1 { 8395 switch fp[0] { 8396 case "type": 8397 return &MonitoredResource_FieldTerminalPath{selector: MonitoredResource_FieldPathSelectorType}, nil 8398 case "labels": 8399 return &MonitoredResource_FieldTerminalPath{selector: MonitoredResource_FieldPathSelectorLabels}, nil 8400 case "reduced_labels", "reducedLabels", "reduced-labels": 8401 return &MonitoredResource_FieldTerminalPath{selector: MonitoredResource_FieldPathSelectorReducedLabels}, nil 8402 } 8403 } else { 8404 switch fp[0] { 8405 case "labels": 8406 if len(fp) > 2 { 8407 return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object MonitoredResource)", fp) 8408 } 8409 return &MonitoredResource_FieldPathMap{selector: MonitoredResource_FieldPathSelectorLabels, key: fp[1]}, nil 8410 } 8411 } 8412 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object MonitoredResource", fp) 8413 } 8414 8415 func ParseMonitoredResource_FieldPath(rawField string) (MonitoredResource_FieldPath, error) { 8416 fp, err := gotenobject.ParseRawFieldPath(rawField) 8417 if err != nil { 8418 return nil, err 8419 } 8420 return BuildMonitoredResource_FieldPath(fp) 8421 } 8422 8423 func MustParseMonitoredResource_FieldPath(rawField string) MonitoredResource_FieldPath { 8424 fp, err := ParseMonitoredResource_FieldPath(rawField) 8425 if err != nil { 8426 panic(err) 8427 } 8428 return fp 8429 } 8430 8431 type MonitoredResource_FieldTerminalPath struct { 8432 selector MonitoredResource_FieldPathSelector 8433 } 8434 8435 var _ MonitoredResource_FieldPath = (*MonitoredResource_FieldTerminalPath)(nil) 8436 8437 func (fp *MonitoredResource_FieldTerminalPath) Selector() MonitoredResource_FieldPathSelector { 8438 return fp.selector 8439 } 8440 8441 // String returns path representation in proto convention 8442 func (fp *MonitoredResource_FieldTerminalPath) String() string { 8443 return fp.selector.String() 8444 } 8445 8446 // JSONString returns path representation is JSON convention 8447 func (fp *MonitoredResource_FieldTerminalPath) JSONString() string { 8448 return strcase.ToLowerCamel(fp.String()) 8449 } 8450 8451 // Get returns all values pointed by specific field from source MonitoredResource 8452 func (fp *MonitoredResource_FieldTerminalPath) Get(source *MonitoredResource) (values []interface{}) { 8453 if source != nil { 8454 switch fp.selector { 8455 case MonitoredResource_FieldPathSelectorType: 8456 values = append(values, source.Type) 8457 case MonitoredResource_FieldPathSelectorLabels: 8458 values = append(values, source.Labels) 8459 case MonitoredResource_FieldPathSelectorReducedLabels: 8460 for _, value := range source.GetReducedLabels() { 8461 values = append(values, value) 8462 } 8463 default: 8464 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fp.selector)) 8465 } 8466 } 8467 return 8468 } 8469 8470 func (fp *MonitoredResource_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 8471 return fp.Get(source.(*MonitoredResource)) 8472 } 8473 8474 // GetSingle returns value pointed by specific field of from source MonitoredResource 8475 func (fp *MonitoredResource_FieldTerminalPath) GetSingle(source *MonitoredResource) (interface{}, bool) { 8476 switch fp.selector { 8477 case MonitoredResource_FieldPathSelectorType: 8478 return source.GetType(), source != nil 8479 case MonitoredResource_FieldPathSelectorLabels: 8480 res := source.GetLabels() 8481 return res, res != nil 8482 case MonitoredResource_FieldPathSelectorReducedLabels: 8483 res := source.GetReducedLabels() 8484 return res, res != nil 8485 default: 8486 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fp.selector)) 8487 } 8488 } 8489 8490 func (fp *MonitoredResource_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 8491 return fp.GetSingle(source.(*MonitoredResource)) 8492 } 8493 8494 // GetDefault returns a default value of the field type 8495 func (fp *MonitoredResource_FieldTerminalPath) GetDefault() interface{} { 8496 switch fp.selector { 8497 case MonitoredResource_FieldPathSelectorType: 8498 return "" 8499 case MonitoredResource_FieldPathSelectorLabels: 8500 return (map[string]string)(nil) 8501 case MonitoredResource_FieldPathSelectorReducedLabels: 8502 return ([]string)(nil) 8503 default: 8504 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fp.selector)) 8505 } 8506 } 8507 8508 func (fp *MonitoredResource_FieldTerminalPath) ClearValue(item *MonitoredResource) { 8509 if item != nil { 8510 switch fp.selector { 8511 case MonitoredResource_FieldPathSelectorType: 8512 item.Type = "" 8513 case MonitoredResource_FieldPathSelectorLabels: 8514 item.Labels = nil 8515 case MonitoredResource_FieldPathSelectorReducedLabels: 8516 item.ReducedLabels = nil 8517 default: 8518 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fp.selector)) 8519 } 8520 } 8521 } 8522 8523 func (fp *MonitoredResource_FieldTerminalPath) ClearValueRaw(item proto.Message) { 8524 fp.ClearValue(item.(*MonitoredResource)) 8525 } 8526 8527 // IsLeaf - whether field path is holds simple value 8528 func (fp *MonitoredResource_FieldTerminalPath) IsLeaf() bool { 8529 return fp.selector == MonitoredResource_FieldPathSelectorType || 8530 fp.selector == MonitoredResource_FieldPathSelectorLabels || 8531 fp.selector == MonitoredResource_FieldPathSelectorReducedLabels 8532 } 8533 8534 func (fp *MonitoredResource_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 8535 return []gotenobject.FieldPath{fp} 8536 } 8537 8538 func (fp *MonitoredResource_FieldTerminalPath) WithIValue(value interface{}) MonitoredResource_FieldPathValue { 8539 switch fp.selector { 8540 case MonitoredResource_FieldPathSelectorType: 8541 return &MonitoredResource_FieldTerminalPathValue{MonitoredResource_FieldTerminalPath: *fp, value: value.(string)} 8542 case MonitoredResource_FieldPathSelectorLabels: 8543 return &MonitoredResource_FieldTerminalPathValue{MonitoredResource_FieldTerminalPath: *fp, value: value.(map[string]string)} 8544 case MonitoredResource_FieldPathSelectorReducedLabels: 8545 return &MonitoredResource_FieldTerminalPathValue{MonitoredResource_FieldTerminalPath: *fp, value: value.([]string)} 8546 default: 8547 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fp.selector)) 8548 } 8549 } 8550 8551 func (fp *MonitoredResource_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 8552 return fp.WithIValue(value) 8553 } 8554 8555 func (fp *MonitoredResource_FieldTerminalPath) WithIArrayOfValues(values interface{}) MonitoredResource_FieldPathArrayOfValues { 8556 fpaov := &MonitoredResource_FieldTerminalPathArrayOfValues{MonitoredResource_FieldTerminalPath: *fp} 8557 switch fp.selector { 8558 case MonitoredResource_FieldPathSelectorType: 8559 return &MonitoredResource_FieldTerminalPathArrayOfValues{MonitoredResource_FieldTerminalPath: *fp, values: values.([]string)} 8560 case MonitoredResource_FieldPathSelectorLabels: 8561 return &MonitoredResource_FieldTerminalPathArrayOfValues{MonitoredResource_FieldTerminalPath: *fp, values: values.([]map[string]string)} 8562 case MonitoredResource_FieldPathSelectorReducedLabels: 8563 return &MonitoredResource_FieldTerminalPathArrayOfValues{MonitoredResource_FieldTerminalPath: *fp, values: values.([][]string)} 8564 default: 8565 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fp.selector)) 8566 } 8567 return fpaov 8568 } 8569 8570 func (fp *MonitoredResource_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 8571 return fp.WithIArrayOfValues(values) 8572 } 8573 8574 func (fp *MonitoredResource_FieldTerminalPath) WithIArrayItemValue(value interface{}) MonitoredResource_FieldPathArrayItemValue { 8575 switch fp.selector { 8576 case MonitoredResource_FieldPathSelectorReducedLabels: 8577 return &MonitoredResource_FieldTerminalPathArrayItemValue{MonitoredResource_FieldTerminalPath: *fp, value: value.(string)} 8578 default: 8579 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fp.selector)) 8580 } 8581 } 8582 8583 func (fp *MonitoredResource_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 8584 return fp.WithIArrayItemValue(value) 8585 } 8586 8587 // FieldPath for map type with additional Key information 8588 type MonitoredResource_FieldPathMap struct { 8589 key string 8590 selector MonitoredResource_FieldPathSelector 8591 } 8592 8593 var _ MonitoredResource_FieldPath = (*MonitoredResource_FieldPathMap)(nil) 8594 8595 func (fpm *MonitoredResource_FieldPathMap) Selector() MonitoredResource_FieldPathSelector { 8596 return fpm.selector 8597 } 8598 8599 func (fpm *MonitoredResource_FieldPathMap) Key() string { 8600 return fpm.key 8601 } 8602 8603 // String returns path representation in proto convention 8604 func (fpm *MonitoredResource_FieldPathMap) String() string { 8605 return fpm.selector.String() + "." + fpm.key 8606 } 8607 8608 // JSONString returns path representation is JSON convention. Note that map keys are not transformed 8609 func (fpm *MonitoredResource_FieldPathMap) JSONString() string { 8610 return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key 8611 } 8612 8613 // Get returns all values pointed by selected field map key from source MonitoredResource 8614 func (fpm *MonitoredResource_FieldPathMap) Get(source *MonitoredResource) (values []interface{}) { 8615 switch fpm.selector { 8616 case MonitoredResource_FieldPathSelectorLabels: 8617 if value, ok := source.GetLabels()[fpm.key]; ok { 8618 values = append(values, value) 8619 } 8620 default: 8621 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fpm.selector)) 8622 } 8623 return 8624 } 8625 8626 func (fpm *MonitoredResource_FieldPathMap) GetRaw(source proto.Message) []interface{} { 8627 return fpm.Get(source.(*MonitoredResource)) 8628 } 8629 8630 // GetSingle returns value by selected field map key from source MonitoredResource 8631 func (fpm *MonitoredResource_FieldPathMap) GetSingle(source *MonitoredResource) (interface{}, bool) { 8632 switch fpm.selector { 8633 case MonitoredResource_FieldPathSelectorLabels: 8634 res, ok := source.GetLabels()[fpm.key] 8635 return res, ok 8636 default: 8637 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fpm.selector)) 8638 } 8639 } 8640 8641 func (fpm *MonitoredResource_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) { 8642 return fpm.GetSingle(source.(*MonitoredResource)) 8643 } 8644 8645 // GetDefault returns a default value of the field type 8646 func (fpm *MonitoredResource_FieldPathMap) GetDefault() interface{} { 8647 switch fpm.selector { 8648 case MonitoredResource_FieldPathSelectorLabels: 8649 var v string 8650 return v 8651 default: 8652 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fpm.selector)) 8653 } 8654 } 8655 8656 func (fpm *MonitoredResource_FieldPathMap) ClearValue(item *MonitoredResource) { 8657 if item != nil { 8658 switch fpm.selector { 8659 case MonitoredResource_FieldPathSelectorLabels: 8660 delete(item.Labels, fpm.key) 8661 default: 8662 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fpm.selector)) 8663 } 8664 } 8665 } 8666 8667 func (fpm *MonitoredResource_FieldPathMap) ClearValueRaw(item proto.Message) { 8668 fpm.ClearValue(item.(*MonitoredResource)) 8669 } 8670 8671 // IsLeaf - whether field path is holds simple value 8672 func (fpm *MonitoredResource_FieldPathMap) IsLeaf() bool { 8673 switch fpm.selector { 8674 case MonitoredResource_FieldPathSelectorLabels: 8675 return true 8676 default: 8677 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fpm.selector)) 8678 } 8679 } 8680 8681 func (fpm *MonitoredResource_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 8682 return []gotenobject.FieldPath{fpm} 8683 } 8684 8685 func (fpm *MonitoredResource_FieldPathMap) WithIValue(value interface{}) MonitoredResource_FieldPathValue { 8686 switch fpm.selector { 8687 case MonitoredResource_FieldPathSelectorLabels: 8688 return &MonitoredResource_FieldPathMapValue{MonitoredResource_FieldPathMap: *fpm, value: value.(string)} 8689 default: 8690 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fpm.selector)) 8691 } 8692 } 8693 8694 func (fpm *MonitoredResource_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 8695 return fpm.WithIValue(value) 8696 } 8697 8698 func (fpm *MonitoredResource_FieldPathMap) WithIArrayOfValues(values interface{}) MonitoredResource_FieldPathArrayOfValues { 8699 switch fpm.selector { 8700 case MonitoredResource_FieldPathSelectorLabels: 8701 return &MonitoredResource_FieldPathMapArrayOfValues{MonitoredResource_FieldPathMap: *fpm, values: values.([]string)} 8702 default: 8703 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fpm.selector)) 8704 } 8705 } 8706 8707 func (fpm *MonitoredResource_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 8708 return fpm.WithIArrayOfValues(values) 8709 } 8710 8711 func (fpm *MonitoredResource_FieldPathMap) WithIArrayItemValue(value interface{}) MonitoredResource_FieldPathArrayItemValue { 8712 panic("Cannot create array item value from map fieldpath") 8713 } 8714 8715 func (fpm *MonitoredResource_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 8716 return fpm.WithIArrayItemValue(value) 8717 } 8718 8719 // MonitoredResource_FieldPathValue allows storing values for MonitoredResource fields according to their type 8720 type MonitoredResource_FieldPathValue interface { 8721 MonitoredResource_FieldPath 8722 gotenobject.FieldPathValue 8723 SetTo(target **MonitoredResource) 8724 CompareWith(*MonitoredResource) (cmp int, comparable bool) 8725 } 8726 8727 func ParseMonitoredResource_FieldPathValue(pathStr, valueStr string) (MonitoredResource_FieldPathValue, error) { 8728 fp, err := ParseMonitoredResource_FieldPath(pathStr) 8729 if err != nil { 8730 return nil, err 8731 } 8732 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 8733 if err != nil { 8734 return nil, status.Errorf(codes.InvalidArgument, "error parsing MonitoredResource field path value from %s: %v", valueStr, err) 8735 } 8736 return fpv.(MonitoredResource_FieldPathValue), nil 8737 } 8738 8739 func MustParseMonitoredResource_FieldPathValue(pathStr, valueStr string) MonitoredResource_FieldPathValue { 8740 fpv, err := ParseMonitoredResource_FieldPathValue(pathStr, valueStr) 8741 if err != nil { 8742 panic(err) 8743 } 8744 return fpv 8745 } 8746 8747 type MonitoredResource_FieldTerminalPathValue struct { 8748 MonitoredResource_FieldTerminalPath 8749 value interface{} 8750 } 8751 8752 var _ MonitoredResource_FieldPathValue = (*MonitoredResource_FieldTerminalPathValue)(nil) 8753 8754 // GetRawValue returns raw value stored under selected path for 'MonitoredResource' as interface{} 8755 func (fpv *MonitoredResource_FieldTerminalPathValue) GetRawValue() interface{} { 8756 return fpv.value 8757 } 8758 func (fpv *MonitoredResource_FieldTerminalPathValue) AsTypeValue() (string, bool) { 8759 res, ok := fpv.value.(string) 8760 return res, ok 8761 } 8762 func (fpv *MonitoredResource_FieldTerminalPathValue) AsLabelsValue() (map[string]string, bool) { 8763 res, ok := fpv.value.(map[string]string) 8764 return res, ok 8765 } 8766 func (fpv *MonitoredResource_FieldTerminalPathValue) AsReducedLabelsValue() ([]string, bool) { 8767 res, ok := fpv.value.([]string) 8768 return res, ok 8769 } 8770 8771 // SetTo stores value for selected field for object MonitoredResource 8772 func (fpv *MonitoredResource_FieldTerminalPathValue) SetTo(target **MonitoredResource) { 8773 if *target == nil { 8774 *target = new(MonitoredResource) 8775 } 8776 switch fpv.selector { 8777 case MonitoredResource_FieldPathSelectorType: 8778 (*target).Type = fpv.value.(string) 8779 case MonitoredResource_FieldPathSelectorLabels: 8780 (*target).Labels = fpv.value.(map[string]string) 8781 case MonitoredResource_FieldPathSelectorReducedLabels: 8782 (*target).ReducedLabels = fpv.value.([]string) 8783 default: 8784 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fpv.selector)) 8785 } 8786 } 8787 8788 func (fpv *MonitoredResource_FieldTerminalPathValue) SetToRaw(target proto.Message) { 8789 typedObject := target.(*MonitoredResource) 8790 fpv.SetTo(&typedObject) 8791 } 8792 8793 // CompareWith compares value in the 'MonitoredResource_FieldTerminalPathValue' with the value under path in 'MonitoredResource'. 8794 func (fpv *MonitoredResource_FieldTerminalPathValue) CompareWith(source *MonitoredResource) (int, bool) { 8795 switch fpv.selector { 8796 case MonitoredResource_FieldPathSelectorType: 8797 leftValue := fpv.value.(string) 8798 rightValue := source.GetType() 8799 if (leftValue) == (rightValue) { 8800 return 0, true 8801 } else if (leftValue) < (rightValue) { 8802 return -1, true 8803 } else { 8804 return 1, true 8805 } 8806 case MonitoredResource_FieldPathSelectorLabels: 8807 return 0, false 8808 case MonitoredResource_FieldPathSelectorReducedLabels: 8809 return 0, false 8810 default: 8811 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fpv.selector)) 8812 } 8813 } 8814 8815 func (fpv *MonitoredResource_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 8816 return fpv.CompareWith(source.(*MonitoredResource)) 8817 } 8818 8819 type MonitoredResource_FieldPathMapValue struct { 8820 MonitoredResource_FieldPathMap 8821 value interface{} 8822 } 8823 8824 var _ MonitoredResource_FieldPathValue = (*MonitoredResource_FieldPathMapValue)(nil) 8825 8826 // GetValue returns value stored under selected field in MonitoredResource as interface{} 8827 func (fpmv *MonitoredResource_FieldPathMapValue) GetRawValue() interface{} { 8828 return fpmv.value 8829 } 8830 func (fpmv *MonitoredResource_FieldPathMapValue) AsLabelsElementValue() (string, bool) { 8831 res, ok := fpmv.value.(string) 8832 return res, ok 8833 } 8834 8835 // SetTo stores value for selected field in MonitoredResource 8836 func (fpmv *MonitoredResource_FieldPathMapValue) SetTo(target **MonitoredResource) { 8837 if *target == nil { 8838 *target = new(MonitoredResource) 8839 } 8840 switch fpmv.selector { 8841 case MonitoredResource_FieldPathSelectorLabels: 8842 if (*target).Labels == nil { 8843 (*target).Labels = make(map[string]string) 8844 } 8845 (*target).Labels[fpmv.key] = fpmv.value.(string) 8846 default: 8847 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fpmv.selector)) 8848 } 8849 } 8850 8851 func (fpmv *MonitoredResource_FieldPathMapValue) SetToRaw(target proto.Message) { 8852 typedObject := target.(*MonitoredResource) 8853 fpmv.SetTo(&typedObject) 8854 } 8855 8856 // CompareWith compares value in the 'MonitoredResource_FieldPathMapValue' with the value under path in 'MonitoredResource'. 8857 func (fpmv *MonitoredResource_FieldPathMapValue) CompareWith(source *MonitoredResource) (int, bool) { 8858 switch fpmv.selector { 8859 case MonitoredResource_FieldPathSelectorLabels: 8860 leftValue := fpmv.value.(string) 8861 rightValue := source.GetLabels()[fpmv.key] 8862 if (leftValue) == (rightValue) { 8863 return 0, true 8864 } else if (leftValue) < (rightValue) { 8865 return -1, true 8866 } else { 8867 return 1, true 8868 } 8869 default: 8870 panic(fmt.Sprintf("Invalid selector for MonitoredResource: %d", fpmv.selector)) 8871 } 8872 } 8873 8874 func (fpmv *MonitoredResource_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) { 8875 return fpmv.CompareWith(source.(*MonitoredResource)) 8876 } 8877 8878 // MonitoredResource_FieldPathArrayItemValue allows storing single item in Path-specific values for MonitoredResource according to their type 8879 // Present only for array (repeated) types. 8880 type MonitoredResource_FieldPathArrayItemValue interface { 8881 gotenobject.FieldPathArrayItemValue 8882 MonitoredResource_FieldPath 8883 ContainsValue(*MonitoredResource) bool 8884 } 8885 8886 // ParseMonitoredResource_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 8887 func ParseMonitoredResource_FieldPathArrayItemValue(pathStr, valueStr string) (MonitoredResource_FieldPathArrayItemValue, error) { 8888 fp, err := ParseMonitoredResource_FieldPath(pathStr) 8889 if err != nil { 8890 return nil, err 8891 } 8892 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 8893 if err != nil { 8894 return nil, status.Errorf(codes.InvalidArgument, "error parsing MonitoredResource field path array item value from %s: %v", valueStr, err) 8895 } 8896 return fpaiv.(MonitoredResource_FieldPathArrayItemValue), nil 8897 } 8898 8899 func MustParseMonitoredResource_FieldPathArrayItemValue(pathStr, valueStr string) MonitoredResource_FieldPathArrayItemValue { 8900 fpaiv, err := ParseMonitoredResource_FieldPathArrayItemValue(pathStr, valueStr) 8901 if err != nil { 8902 panic(err) 8903 } 8904 return fpaiv 8905 } 8906 8907 type MonitoredResource_FieldTerminalPathArrayItemValue struct { 8908 MonitoredResource_FieldTerminalPath 8909 value interface{} 8910 } 8911 8912 var _ MonitoredResource_FieldPathArrayItemValue = (*MonitoredResource_FieldTerminalPathArrayItemValue)(nil) 8913 8914 // GetRawValue returns stored element value for array in object MonitoredResource as interface{} 8915 func (fpaiv *MonitoredResource_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 8916 return fpaiv.value 8917 } 8918 func (fpaiv *MonitoredResource_FieldTerminalPathArrayItemValue) AsReducedLabelsItemValue() (string, bool) { 8919 res, ok := fpaiv.value.(string) 8920 return res, ok 8921 } 8922 8923 func (fpaiv *MonitoredResource_FieldTerminalPathArrayItemValue) GetSingle(source *MonitoredResource) (interface{}, bool) { 8924 return nil, false 8925 } 8926 8927 func (fpaiv *MonitoredResource_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 8928 return fpaiv.GetSingle(source.(*MonitoredResource)) 8929 } 8930 8931 // Contains returns a boolean indicating if value that is being held is present in given 'MonitoredResource' 8932 func (fpaiv *MonitoredResource_FieldTerminalPathArrayItemValue) ContainsValue(source *MonitoredResource) bool { 8933 slice := fpaiv.MonitoredResource_FieldTerminalPath.Get(source) 8934 for _, v := range slice { 8935 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 8936 if proto.Equal(asProtoMsg, v.(proto.Message)) { 8937 return true 8938 } 8939 } else if reflect.DeepEqual(v, fpaiv.value) { 8940 return true 8941 } 8942 } 8943 return false 8944 } 8945 8946 // MonitoredResource_FieldPathArrayOfValues allows storing slice of values for MonitoredResource fields according to their type 8947 type MonitoredResource_FieldPathArrayOfValues interface { 8948 gotenobject.FieldPathArrayOfValues 8949 MonitoredResource_FieldPath 8950 } 8951 8952 func ParseMonitoredResource_FieldPathArrayOfValues(pathStr, valuesStr string) (MonitoredResource_FieldPathArrayOfValues, error) { 8953 fp, err := ParseMonitoredResource_FieldPath(pathStr) 8954 if err != nil { 8955 return nil, err 8956 } 8957 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 8958 if err != nil { 8959 return nil, status.Errorf(codes.InvalidArgument, "error parsing MonitoredResource field path array of values from %s: %v", valuesStr, err) 8960 } 8961 return fpaov.(MonitoredResource_FieldPathArrayOfValues), nil 8962 } 8963 8964 func MustParseMonitoredResource_FieldPathArrayOfValues(pathStr, valuesStr string) MonitoredResource_FieldPathArrayOfValues { 8965 fpaov, err := ParseMonitoredResource_FieldPathArrayOfValues(pathStr, valuesStr) 8966 if err != nil { 8967 panic(err) 8968 } 8969 return fpaov 8970 } 8971 8972 type MonitoredResource_FieldTerminalPathArrayOfValues struct { 8973 MonitoredResource_FieldTerminalPath 8974 values interface{} 8975 } 8976 8977 var _ MonitoredResource_FieldPathArrayOfValues = (*MonitoredResource_FieldTerminalPathArrayOfValues)(nil) 8978 8979 func (fpaov *MonitoredResource_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 8980 switch fpaov.selector { 8981 case MonitoredResource_FieldPathSelectorType: 8982 for _, v := range fpaov.values.([]string) { 8983 values = append(values, v) 8984 } 8985 case MonitoredResource_FieldPathSelectorLabels: 8986 for _, v := range fpaov.values.([]map[string]string) { 8987 values = append(values, v) 8988 } 8989 case MonitoredResource_FieldPathSelectorReducedLabels: 8990 for _, v := range fpaov.values.([][]string) { 8991 values = append(values, v) 8992 } 8993 } 8994 return 8995 } 8996 func (fpaov *MonitoredResource_FieldTerminalPathArrayOfValues) AsTypeArrayOfValues() ([]string, bool) { 8997 res, ok := fpaov.values.([]string) 8998 return res, ok 8999 } 9000 func (fpaov *MonitoredResource_FieldTerminalPathArrayOfValues) AsLabelsArrayOfValues() ([]map[string]string, bool) { 9001 res, ok := fpaov.values.([]map[string]string) 9002 return res, ok 9003 } 9004 func (fpaov *MonitoredResource_FieldTerminalPathArrayOfValues) AsReducedLabelsArrayOfValues() ([][]string, bool) { 9005 res, ok := fpaov.values.([][]string) 9006 return res, ok 9007 } 9008 9009 type MonitoredResource_FieldPathMapArrayOfValues struct { 9010 MonitoredResource_FieldPathMap 9011 values interface{} 9012 } 9013 9014 var _ MonitoredResource_FieldPathArrayOfValues = (*MonitoredResource_FieldPathMapArrayOfValues)(nil) 9015 9016 func (fpmaov *MonitoredResource_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) { 9017 switch fpmaov.selector { 9018 case MonitoredResource_FieldPathSelectorLabels: 9019 for _, v := range fpmaov.values.([]string) { 9020 values = append(values, v) 9021 } 9022 } 9023 return 9024 } 9025 func (fpmaov *MonitoredResource_FieldPathMapArrayOfValues) AsLabelsArrayOfElementValues() ([]string, bool) { 9026 res, ok := fpmaov.values.([]string) 9027 return res, ok 9028 } 9029 9030 // FieldPath provides implementation to handle 9031 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 9032 type Strings_FieldPath interface { 9033 gotenobject.FieldPath 9034 Selector() Strings_FieldPathSelector 9035 Get(source *Strings) []interface{} 9036 GetSingle(source *Strings) (interface{}, bool) 9037 ClearValue(item *Strings) 9038 9039 // Those methods build corresponding Strings_FieldPathValue 9040 // (or array of values) and holds passed value. Panics if injected type is incorrect. 9041 WithIValue(value interface{}) Strings_FieldPathValue 9042 WithIArrayOfValues(values interface{}) Strings_FieldPathArrayOfValues 9043 WithIArrayItemValue(value interface{}) Strings_FieldPathArrayItemValue 9044 } 9045 9046 type Strings_FieldPathSelector int32 9047 9048 const ( 9049 Strings_FieldPathSelectorValues Strings_FieldPathSelector = 0 9050 ) 9051 9052 func (s Strings_FieldPathSelector) String() string { 9053 switch s { 9054 case Strings_FieldPathSelectorValues: 9055 return "values" 9056 default: 9057 panic(fmt.Sprintf("Invalid selector for Strings: %d", s)) 9058 } 9059 } 9060 9061 func BuildStrings_FieldPath(fp gotenobject.RawFieldPath) (Strings_FieldPath, error) { 9062 if len(fp) == 0 { 9063 return nil, status.Error(codes.InvalidArgument, "empty field path for object Strings") 9064 } 9065 if len(fp) == 1 { 9066 switch fp[0] { 9067 case "values": 9068 return &Strings_FieldTerminalPath{selector: Strings_FieldPathSelectorValues}, nil 9069 } 9070 } 9071 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Strings", fp) 9072 } 9073 9074 func ParseStrings_FieldPath(rawField string) (Strings_FieldPath, error) { 9075 fp, err := gotenobject.ParseRawFieldPath(rawField) 9076 if err != nil { 9077 return nil, err 9078 } 9079 return BuildStrings_FieldPath(fp) 9080 } 9081 9082 func MustParseStrings_FieldPath(rawField string) Strings_FieldPath { 9083 fp, err := ParseStrings_FieldPath(rawField) 9084 if err != nil { 9085 panic(err) 9086 } 9087 return fp 9088 } 9089 9090 type Strings_FieldTerminalPath struct { 9091 selector Strings_FieldPathSelector 9092 } 9093 9094 var _ Strings_FieldPath = (*Strings_FieldTerminalPath)(nil) 9095 9096 func (fp *Strings_FieldTerminalPath) Selector() Strings_FieldPathSelector { 9097 return fp.selector 9098 } 9099 9100 // String returns path representation in proto convention 9101 func (fp *Strings_FieldTerminalPath) String() string { 9102 return fp.selector.String() 9103 } 9104 9105 // JSONString returns path representation is JSON convention 9106 func (fp *Strings_FieldTerminalPath) JSONString() string { 9107 return strcase.ToLowerCamel(fp.String()) 9108 } 9109 9110 // Get returns all values pointed by specific field from source Strings 9111 func (fp *Strings_FieldTerminalPath) Get(source *Strings) (values []interface{}) { 9112 if source != nil { 9113 switch fp.selector { 9114 case Strings_FieldPathSelectorValues: 9115 for _, value := range source.GetValues() { 9116 values = append(values, value) 9117 } 9118 default: 9119 panic(fmt.Sprintf("Invalid selector for Strings: %d", fp.selector)) 9120 } 9121 } 9122 return 9123 } 9124 9125 func (fp *Strings_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 9126 return fp.Get(source.(*Strings)) 9127 } 9128 9129 // GetSingle returns value pointed by specific field of from source Strings 9130 func (fp *Strings_FieldTerminalPath) GetSingle(source *Strings) (interface{}, bool) { 9131 switch fp.selector { 9132 case Strings_FieldPathSelectorValues: 9133 res := source.GetValues() 9134 return res, res != nil 9135 default: 9136 panic(fmt.Sprintf("Invalid selector for Strings: %d", fp.selector)) 9137 } 9138 } 9139 9140 func (fp *Strings_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 9141 return fp.GetSingle(source.(*Strings)) 9142 } 9143 9144 // GetDefault returns a default value of the field type 9145 func (fp *Strings_FieldTerminalPath) GetDefault() interface{} { 9146 switch fp.selector { 9147 case Strings_FieldPathSelectorValues: 9148 return ([]string)(nil) 9149 default: 9150 panic(fmt.Sprintf("Invalid selector for Strings: %d", fp.selector)) 9151 } 9152 } 9153 9154 func (fp *Strings_FieldTerminalPath) ClearValue(item *Strings) { 9155 if item != nil { 9156 switch fp.selector { 9157 case Strings_FieldPathSelectorValues: 9158 item.Values = nil 9159 default: 9160 panic(fmt.Sprintf("Invalid selector for Strings: %d", fp.selector)) 9161 } 9162 } 9163 } 9164 9165 func (fp *Strings_FieldTerminalPath) ClearValueRaw(item proto.Message) { 9166 fp.ClearValue(item.(*Strings)) 9167 } 9168 9169 // IsLeaf - whether field path is holds simple value 9170 func (fp *Strings_FieldTerminalPath) IsLeaf() bool { 9171 return fp.selector == Strings_FieldPathSelectorValues 9172 } 9173 9174 func (fp *Strings_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 9175 return []gotenobject.FieldPath{fp} 9176 } 9177 9178 func (fp *Strings_FieldTerminalPath) WithIValue(value interface{}) Strings_FieldPathValue { 9179 switch fp.selector { 9180 case Strings_FieldPathSelectorValues: 9181 return &Strings_FieldTerminalPathValue{Strings_FieldTerminalPath: *fp, value: value.([]string)} 9182 default: 9183 panic(fmt.Sprintf("Invalid selector for Strings: %d", fp.selector)) 9184 } 9185 } 9186 9187 func (fp *Strings_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 9188 return fp.WithIValue(value) 9189 } 9190 9191 func (fp *Strings_FieldTerminalPath) WithIArrayOfValues(values interface{}) Strings_FieldPathArrayOfValues { 9192 fpaov := &Strings_FieldTerminalPathArrayOfValues{Strings_FieldTerminalPath: *fp} 9193 switch fp.selector { 9194 case Strings_FieldPathSelectorValues: 9195 return &Strings_FieldTerminalPathArrayOfValues{Strings_FieldTerminalPath: *fp, values: values.([][]string)} 9196 default: 9197 panic(fmt.Sprintf("Invalid selector for Strings: %d", fp.selector)) 9198 } 9199 return fpaov 9200 } 9201 9202 func (fp *Strings_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 9203 return fp.WithIArrayOfValues(values) 9204 } 9205 9206 func (fp *Strings_FieldTerminalPath) WithIArrayItemValue(value interface{}) Strings_FieldPathArrayItemValue { 9207 switch fp.selector { 9208 case Strings_FieldPathSelectorValues: 9209 return &Strings_FieldTerminalPathArrayItemValue{Strings_FieldTerminalPath: *fp, value: value.(string)} 9210 default: 9211 panic(fmt.Sprintf("Invalid selector for Strings: %d", fp.selector)) 9212 } 9213 } 9214 9215 func (fp *Strings_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 9216 return fp.WithIArrayItemValue(value) 9217 } 9218 9219 // Strings_FieldPathValue allows storing values for Strings fields according to their type 9220 type Strings_FieldPathValue interface { 9221 Strings_FieldPath 9222 gotenobject.FieldPathValue 9223 SetTo(target **Strings) 9224 CompareWith(*Strings) (cmp int, comparable bool) 9225 } 9226 9227 func ParseStrings_FieldPathValue(pathStr, valueStr string) (Strings_FieldPathValue, error) { 9228 fp, err := ParseStrings_FieldPath(pathStr) 9229 if err != nil { 9230 return nil, err 9231 } 9232 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 9233 if err != nil { 9234 return nil, status.Errorf(codes.InvalidArgument, "error parsing Strings field path value from %s: %v", valueStr, err) 9235 } 9236 return fpv.(Strings_FieldPathValue), nil 9237 } 9238 9239 func MustParseStrings_FieldPathValue(pathStr, valueStr string) Strings_FieldPathValue { 9240 fpv, err := ParseStrings_FieldPathValue(pathStr, valueStr) 9241 if err != nil { 9242 panic(err) 9243 } 9244 return fpv 9245 } 9246 9247 type Strings_FieldTerminalPathValue struct { 9248 Strings_FieldTerminalPath 9249 value interface{} 9250 } 9251 9252 var _ Strings_FieldPathValue = (*Strings_FieldTerminalPathValue)(nil) 9253 9254 // GetRawValue returns raw value stored under selected path for 'Strings' as interface{} 9255 func (fpv *Strings_FieldTerminalPathValue) GetRawValue() interface{} { 9256 return fpv.value 9257 } 9258 func (fpv *Strings_FieldTerminalPathValue) AsValuesValue() ([]string, bool) { 9259 res, ok := fpv.value.([]string) 9260 return res, ok 9261 } 9262 9263 // SetTo stores value for selected field for object Strings 9264 func (fpv *Strings_FieldTerminalPathValue) SetTo(target **Strings) { 9265 if *target == nil { 9266 *target = new(Strings) 9267 } 9268 switch fpv.selector { 9269 case Strings_FieldPathSelectorValues: 9270 (*target).Values = fpv.value.([]string) 9271 default: 9272 panic(fmt.Sprintf("Invalid selector for Strings: %d", fpv.selector)) 9273 } 9274 } 9275 9276 func (fpv *Strings_FieldTerminalPathValue) SetToRaw(target proto.Message) { 9277 typedObject := target.(*Strings) 9278 fpv.SetTo(&typedObject) 9279 } 9280 9281 // CompareWith compares value in the 'Strings_FieldTerminalPathValue' with the value under path in 'Strings'. 9282 func (fpv *Strings_FieldTerminalPathValue) CompareWith(source *Strings) (int, bool) { 9283 switch fpv.selector { 9284 case Strings_FieldPathSelectorValues: 9285 return 0, false 9286 default: 9287 panic(fmt.Sprintf("Invalid selector for Strings: %d", fpv.selector)) 9288 } 9289 } 9290 9291 func (fpv *Strings_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 9292 return fpv.CompareWith(source.(*Strings)) 9293 } 9294 9295 // Strings_FieldPathArrayItemValue allows storing single item in Path-specific values for Strings according to their type 9296 // Present only for array (repeated) types. 9297 type Strings_FieldPathArrayItemValue interface { 9298 gotenobject.FieldPathArrayItemValue 9299 Strings_FieldPath 9300 ContainsValue(*Strings) bool 9301 } 9302 9303 // ParseStrings_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 9304 func ParseStrings_FieldPathArrayItemValue(pathStr, valueStr string) (Strings_FieldPathArrayItemValue, error) { 9305 fp, err := ParseStrings_FieldPath(pathStr) 9306 if err != nil { 9307 return nil, err 9308 } 9309 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 9310 if err != nil { 9311 return nil, status.Errorf(codes.InvalidArgument, "error parsing Strings field path array item value from %s: %v", valueStr, err) 9312 } 9313 return fpaiv.(Strings_FieldPathArrayItemValue), nil 9314 } 9315 9316 func MustParseStrings_FieldPathArrayItemValue(pathStr, valueStr string) Strings_FieldPathArrayItemValue { 9317 fpaiv, err := ParseStrings_FieldPathArrayItemValue(pathStr, valueStr) 9318 if err != nil { 9319 panic(err) 9320 } 9321 return fpaiv 9322 } 9323 9324 type Strings_FieldTerminalPathArrayItemValue struct { 9325 Strings_FieldTerminalPath 9326 value interface{} 9327 } 9328 9329 var _ Strings_FieldPathArrayItemValue = (*Strings_FieldTerminalPathArrayItemValue)(nil) 9330 9331 // GetRawValue returns stored element value for array in object Strings as interface{} 9332 func (fpaiv *Strings_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 9333 return fpaiv.value 9334 } 9335 func (fpaiv *Strings_FieldTerminalPathArrayItemValue) AsValuesItemValue() (string, bool) { 9336 res, ok := fpaiv.value.(string) 9337 return res, ok 9338 } 9339 9340 func (fpaiv *Strings_FieldTerminalPathArrayItemValue) GetSingle(source *Strings) (interface{}, bool) { 9341 return nil, false 9342 } 9343 9344 func (fpaiv *Strings_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 9345 return fpaiv.GetSingle(source.(*Strings)) 9346 } 9347 9348 // Contains returns a boolean indicating if value that is being held is present in given 'Strings' 9349 func (fpaiv *Strings_FieldTerminalPathArrayItemValue) ContainsValue(source *Strings) bool { 9350 slice := fpaiv.Strings_FieldTerminalPath.Get(source) 9351 for _, v := range slice { 9352 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 9353 if proto.Equal(asProtoMsg, v.(proto.Message)) { 9354 return true 9355 } 9356 } else if reflect.DeepEqual(v, fpaiv.value) { 9357 return true 9358 } 9359 } 9360 return false 9361 } 9362 9363 // Strings_FieldPathArrayOfValues allows storing slice of values for Strings fields according to their type 9364 type Strings_FieldPathArrayOfValues interface { 9365 gotenobject.FieldPathArrayOfValues 9366 Strings_FieldPath 9367 } 9368 9369 func ParseStrings_FieldPathArrayOfValues(pathStr, valuesStr string) (Strings_FieldPathArrayOfValues, error) { 9370 fp, err := ParseStrings_FieldPath(pathStr) 9371 if err != nil { 9372 return nil, err 9373 } 9374 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 9375 if err != nil { 9376 return nil, status.Errorf(codes.InvalidArgument, "error parsing Strings field path array of values from %s: %v", valuesStr, err) 9377 } 9378 return fpaov.(Strings_FieldPathArrayOfValues), nil 9379 } 9380 9381 func MustParseStrings_FieldPathArrayOfValues(pathStr, valuesStr string) Strings_FieldPathArrayOfValues { 9382 fpaov, err := ParseStrings_FieldPathArrayOfValues(pathStr, valuesStr) 9383 if err != nil { 9384 panic(err) 9385 } 9386 return fpaov 9387 } 9388 9389 type Strings_FieldTerminalPathArrayOfValues struct { 9390 Strings_FieldTerminalPath 9391 values interface{} 9392 } 9393 9394 var _ Strings_FieldPathArrayOfValues = (*Strings_FieldTerminalPathArrayOfValues)(nil) 9395 9396 func (fpaov *Strings_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 9397 switch fpaov.selector { 9398 case Strings_FieldPathSelectorValues: 9399 for _, v := range fpaov.values.([][]string) { 9400 values = append(values, v) 9401 } 9402 } 9403 return 9404 } 9405 func (fpaov *Strings_FieldTerminalPathArrayOfValues) AsValuesArrayOfValues() ([][]string, bool) { 9406 res, ok := fpaov.values.([][]string) 9407 return res, ok 9408 } 9409 9410 // FieldPath provides implementation to handle 9411 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 9412 type MonitoredResourceSelector_FieldPath interface { 9413 gotenobject.FieldPath 9414 Selector() MonitoredResourceSelector_FieldPathSelector 9415 Get(source *MonitoredResourceSelector) []interface{} 9416 GetSingle(source *MonitoredResourceSelector) (interface{}, bool) 9417 ClearValue(item *MonitoredResourceSelector) 9418 9419 // Those methods build corresponding MonitoredResourceSelector_FieldPathValue 9420 // (or array of values) and holds passed value. Panics if injected type is incorrect. 9421 WithIValue(value interface{}) MonitoredResourceSelector_FieldPathValue 9422 WithIArrayOfValues(values interface{}) MonitoredResourceSelector_FieldPathArrayOfValues 9423 WithIArrayItemValue(value interface{}) MonitoredResourceSelector_FieldPathArrayItemValue 9424 } 9425 9426 type MonitoredResourceSelector_FieldPathSelector int32 9427 9428 const ( 9429 MonitoredResourceSelector_FieldPathSelectorTypes MonitoredResourceSelector_FieldPathSelector = 0 9430 MonitoredResourceSelector_FieldPathSelectorLabels MonitoredResourceSelector_FieldPathSelector = 1 9431 ) 9432 9433 func (s MonitoredResourceSelector_FieldPathSelector) String() string { 9434 switch s { 9435 case MonitoredResourceSelector_FieldPathSelectorTypes: 9436 return "types" 9437 case MonitoredResourceSelector_FieldPathSelectorLabels: 9438 return "labels" 9439 default: 9440 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", s)) 9441 } 9442 } 9443 9444 func BuildMonitoredResourceSelector_FieldPath(fp gotenobject.RawFieldPath) (MonitoredResourceSelector_FieldPath, error) { 9445 if len(fp) == 0 { 9446 return nil, status.Error(codes.InvalidArgument, "empty field path for object MonitoredResourceSelector") 9447 } 9448 if len(fp) == 1 { 9449 switch fp[0] { 9450 case "types": 9451 return &MonitoredResourceSelector_FieldTerminalPath{selector: MonitoredResourceSelector_FieldPathSelectorTypes}, nil 9452 case "labels": 9453 return &MonitoredResourceSelector_FieldTerminalPath{selector: MonitoredResourceSelector_FieldPathSelectorLabels}, nil 9454 } 9455 } else { 9456 switch fp[0] { 9457 case "labels": 9458 if len(fp) > 2 { 9459 return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object MonitoredResourceSelector)", fp) 9460 } 9461 return &MonitoredResourceSelector_FieldPathMap{selector: MonitoredResourceSelector_FieldPathSelectorLabels, key: fp[1]}, nil 9462 } 9463 } 9464 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object MonitoredResourceSelector", fp) 9465 } 9466 9467 func ParseMonitoredResourceSelector_FieldPath(rawField string) (MonitoredResourceSelector_FieldPath, error) { 9468 fp, err := gotenobject.ParseRawFieldPath(rawField) 9469 if err != nil { 9470 return nil, err 9471 } 9472 return BuildMonitoredResourceSelector_FieldPath(fp) 9473 } 9474 9475 func MustParseMonitoredResourceSelector_FieldPath(rawField string) MonitoredResourceSelector_FieldPath { 9476 fp, err := ParseMonitoredResourceSelector_FieldPath(rawField) 9477 if err != nil { 9478 panic(err) 9479 } 9480 return fp 9481 } 9482 9483 type MonitoredResourceSelector_FieldTerminalPath struct { 9484 selector MonitoredResourceSelector_FieldPathSelector 9485 } 9486 9487 var _ MonitoredResourceSelector_FieldPath = (*MonitoredResourceSelector_FieldTerminalPath)(nil) 9488 9489 func (fp *MonitoredResourceSelector_FieldTerminalPath) Selector() MonitoredResourceSelector_FieldPathSelector { 9490 return fp.selector 9491 } 9492 9493 // String returns path representation in proto convention 9494 func (fp *MonitoredResourceSelector_FieldTerminalPath) String() string { 9495 return fp.selector.String() 9496 } 9497 9498 // JSONString returns path representation is JSON convention 9499 func (fp *MonitoredResourceSelector_FieldTerminalPath) JSONString() string { 9500 return strcase.ToLowerCamel(fp.String()) 9501 } 9502 9503 // Get returns all values pointed by specific field from source MonitoredResourceSelector 9504 func (fp *MonitoredResourceSelector_FieldTerminalPath) Get(source *MonitoredResourceSelector) (values []interface{}) { 9505 if source != nil { 9506 switch fp.selector { 9507 case MonitoredResourceSelector_FieldPathSelectorTypes: 9508 for _, value := range source.GetTypes() { 9509 values = append(values, value) 9510 } 9511 case MonitoredResourceSelector_FieldPathSelectorLabels: 9512 if source.Labels != nil { 9513 values = append(values, source.Labels) 9514 } 9515 default: 9516 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fp.selector)) 9517 } 9518 } 9519 return 9520 } 9521 9522 func (fp *MonitoredResourceSelector_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 9523 return fp.Get(source.(*MonitoredResourceSelector)) 9524 } 9525 9526 // GetSingle returns value pointed by specific field of from source MonitoredResourceSelector 9527 func (fp *MonitoredResourceSelector_FieldTerminalPath) GetSingle(source *MonitoredResourceSelector) (interface{}, bool) { 9528 switch fp.selector { 9529 case MonitoredResourceSelector_FieldPathSelectorTypes: 9530 res := source.GetTypes() 9531 return res, res != nil 9532 case MonitoredResourceSelector_FieldPathSelectorLabels: 9533 res := source.GetLabels() 9534 return res, res != nil 9535 default: 9536 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fp.selector)) 9537 } 9538 } 9539 9540 func (fp *MonitoredResourceSelector_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 9541 return fp.GetSingle(source.(*MonitoredResourceSelector)) 9542 } 9543 9544 // GetDefault returns a default value of the field type 9545 func (fp *MonitoredResourceSelector_FieldTerminalPath) GetDefault() interface{} { 9546 switch fp.selector { 9547 case MonitoredResourceSelector_FieldPathSelectorTypes: 9548 return ([]string)(nil) 9549 case MonitoredResourceSelector_FieldPathSelectorLabels: 9550 return (map[string]*Strings)(nil) 9551 default: 9552 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fp.selector)) 9553 } 9554 } 9555 9556 func (fp *MonitoredResourceSelector_FieldTerminalPath) ClearValue(item *MonitoredResourceSelector) { 9557 if item != nil { 9558 switch fp.selector { 9559 case MonitoredResourceSelector_FieldPathSelectorTypes: 9560 item.Types = nil 9561 case MonitoredResourceSelector_FieldPathSelectorLabels: 9562 item.Labels = nil 9563 default: 9564 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fp.selector)) 9565 } 9566 } 9567 } 9568 9569 func (fp *MonitoredResourceSelector_FieldTerminalPath) ClearValueRaw(item proto.Message) { 9570 fp.ClearValue(item.(*MonitoredResourceSelector)) 9571 } 9572 9573 // IsLeaf - whether field path is holds simple value 9574 func (fp *MonitoredResourceSelector_FieldTerminalPath) IsLeaf() bool { 9575 return fp.selector == MonitoredResourceSelector_FieldPathSelectorTypes 9576 } 9577 9578 func (fp *MonitoredResourceSelector_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 9579 return []gotenobject.FieldPath{fp} 9580 } 9581 9582 func (fp *MonitoredResourceSelector_FieldTerminalPath) WithIValue(value interface{}) MonitoredResourceSelector_FieldPathValue { 9583 switch fp.selector { 9584 case MonitoredResourceSelector_FieldPathSelectorTypes: 9585 return &MonitoredResourceSelector_FieldTerminalPathValue{MonitoredResourceSelector_FieldTerminalPath: *fp, value: value.([]string)} 9586 case MonitoredResourceSelector_FieldPathSelectorLabels: 9587 return &MonitoredResourceSelector_FieldTerminalPathValue{MonitoredResourceSelector_FieldTerminalPath: *fp, value: value.(map[string]*Strings)} 9588 default: 9589 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fp.selector)) 9590 } 9591 } 9592 9593 func (fp *MonitoredResourceSelector_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 9594 return fp.WithIValue(value) 9595 } 9596 9597 func (fp *MonitoredResourceSelector_FieldTerminalPath) WithIArrayOfValues(values interface{}) MonitoredResourceSelector_FieldPathArrayOfValues { 9598 fpaov := &MonitoredResourceSelector_FieldTerminalPathArrayOfValues{MonitoredResourceSelector_FieldTerminalPath: *fp} 9599 switch fp.selector { 9600 case MonitoredResourceSelector_FieldPathSelectorTypes: 9601 return &MonitoredResourceSelector_FieldTerminalPathArrayOfValues{MonitoredResourceSelector_FieldTerminalPath: *fp, values: values.([][]string)} 9602 case MonitoredResourceSelector_FieldPathSelectorLabels: 9603 return &MonitoredResourceSelector_FieldTerminalPathArrayOfValues{MonitoredResourceSelector_FieldTerminalPath: *fp, values: values.([]map[string]*Strings)} 9604 default: 9605 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fp.selector)) 9606 } 9607 return fpaov 9608 } 9609 9610 func (fp *MonitoredResourceSelector_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 9611 return fp.WithIArrayOfValues(values) 9612 } 9613 9614 func (fp *MonitoredResourceSelector_FieldTerminalPath) WithIArrayItemValue(value interface{}) MonitoredResourceSelector_FieldPathArrayItemValue { 9615 switch fp.selector { 9616 case MonitoredResourceSelector_FieldPathSelectorTypes: 9617 return &MonitoredResourceSelector_FieldTerminalPathArrayItemValue{MonitoredResourceSelector_FieldTerminalPath: *fp, value: value.(string)} 9618 default: 9619 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fp.selector)) 9620 } 9621 } 9622 9623 func (fp *MonitoredResourceSelector_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 9624 return fp.WithIArrayItemValue(value) 9625 } 9626 9627 // FieldPath for map type with additional Key information 9628 type MonitoredResourceSelector_FieldPathMap struct { 9629 key string 9630 selector MonitoredResourceSelector_FieldPathSelector 9631 } 9632 9633 var _ MonitoredResourceSelector_FieldPath = (*MonitoredResourceSelector_FieldPathMap)(nil) 9634 9635 func (fpm *MonitoredResourceSelector_FieldPathMap) Selector() MonitoredResourceSelector_FieldPathSelector { 9636 return fpm.selector 9637 } 9638 9639 func (fpm *MonitoredResourceSelector_FieldPathMap) Key() string { 9640 return fpm.key 9641 } 9642 9643 // String returns path representation in proto convention 9644 func (fpm *MonitoredResourceSelector_FieldPathMap) String() string { 9645 return fpm.selector.String() + "." + fpm.key 9646 } 9647 9648 // JSONString returns path representation is JSON convention. Note that map keys are not transformed 9649 func (fpm *MonitoredResourceSelector_FieldPathMap) JSONString() string { 9650 return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key 9651 } 9652 9653 // Get returns all values pointed by selected field map key from source MonitoredResourceSelector 9654 func (fpm *MonitoredResourceSelector_FieldPathMap) Get(source *MonitoredResourceSelector) (values []interface{}) { 9655 switch fpm.selector { 9656 case MonitoredResourceSelector_FieldPathSelectorLabels: 9657 if value, ok := source.GetLabels()[fpm.key]; ok { 9658 values = append(values, value) 9659 } 9660 default: 9661 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fpm.selector)) 9662 } 9663 return 9664 } 9665 9666 func (fpm *MonitoredResourceSelector_FieldPathMap) GetRaw(source proto.Message) []interface{} { 9667 return fpm.Get(source.(*MonitoredResourceSelector)) 9668 } 9669 9670 // GetSingle returns value by selected field map key from source MonitoredResourceSelector 9671 func (fpm *MonitoredResourceSelector_FieldPathMap) GetSingle(source *MonitoredResourceSelector) (interface{}, bool) { 9672 switch fpm.selector { 9673 case MonitoredResourceSelector_FieldPathSelectorLabels: 9674 res, ok := source.GetLabels()[fpm.key] 9675 return res, ok 9676 default: 9677 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fpm.selector)) 9678 } 9679 } 9680 9681 func (fpm *MonitoredResourceSelector_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) { 9682 return fpm.GetSingle(source.(*MonitoredResourceSelector)) 9683 } 9684 9685 // GetDefault returns a default value of the field type 9686 func (fpm *MonitoredResourceSelector_FieldPathMap) GetDefault() interface{} { 9687 switch fpm.selector { 9688 case MonitoredResourceSelector_FieldPathSelectorLabels: 9689 var v *Strings 9690 return v 9691 default: 9692 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fpm.selector)) 9693 } 9694 } 9695 9696 func (fpm *MonitoredResourceSelector_FieldPathMap) ClearValue(item *MonitoredResourceSelector) { 9697 if item != nil { 9698 switch fpm.selector { 9699 case MonitoredResourceSelector_FieldPathSelectorLabels: 9700 delete(item.Labels, fpm.key) 9701 default: 9702 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fpm.selector)) 9703 } 9704 } 9705 } 9706 9707 func (fpm *MonitoredResourceSelector_FieldPathMap) ClearValueRaw(item proto.Message) { 9708 fpm.ClearValue(item.(*MonitoredResourceSelector)) 9709 } 9710 9711 // IsLeaf - whether field path is holds simple value 9712 func (fpm *MonitoredResourceSelector_FieldPathMap) IsLeaf() bool { 9713 switch fpm.selector { 9714 case MonitoredResourceSelector_FieldPathSelectorLabels: 9715 return false 9716 default: 9717 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fpm.selector)) 9718 } 9719 } 9720 9721 func (fpm *MonitoredResourceSelector_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 9722 return []gotenobject.FieldPath{fpm} 9723 } 9724 9725 func (fpm *MonitoredResourceSelector_FieldPathMap) WithIValue(value interface{}) MonitoredResourceSelector_FieldPathValue { 9726 switch fpm.selector { 9727 case MonitoredResourceSelector_FieldPathSelectorLabels: 9728 return &MonitoredResourceSelector_FieldPathMapValue{MonitoredResourceSelector_FieldPathMap: *fpm, value: value.(*Strings)} 9729 default: 9730 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fpm.selector)) 9731 } 9732 } 9733 9734 func (fpm *MonitoredResourceSelector_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 9735 return fpm.WithIValue(value) 9736 } 9737 9738 func (fpm *MonitoredResourceSelector_FieldPathMap) WithIArrayOfValues(values interface{}) MonitoredResourceSelector_FieldPathArrayOfValues { 9739 switch fpm.selector { 9740 case MonitoredResourceSelector_FieldPathSelectorLabels: 9741 return &MonitoredResourceSelector_FieldPathMapArrayOfValues{MonitoredResourceSelector_FieldPathMap: *fpm, values: values.([]*Strings)} 9742 default: 9743 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fpm.selector)) 9744 } 9745 } 9746 9747 func (fpm *MonitoredResourceSelector_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 9748 return fpm.WithIArrayOfValues(values) 9749 } 9750 9751 func (fpm *MonitoredResourceSelector_FieldPathMap) WithIArrayItemValue(value interface{}) MonitoredResourceSelector_FieldPathArrayItemValue { 9752 panic("Cannot create array item value from map fieldpath") 9753 } 9754 9755 func (fpm *MonitoredResourceSelector_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 9756 return fpm.WithIArrayItemValue(value) 9757 } 9758 9759 // MonitoredResourceSelector_FieldPathValue allows storing values for MonitoredResourceSelector fields according to their type 9760 type MonitoredResourceSelector_FieldPathValue interface { 9761 MonitoredResourceSelector_FieldPath 9762 gotenobject.FieldPathValue 9763 SetTo(target **MonitoredResourceSelector) 9764 CompareWith(*MonitoredResourceSelector) (cmp int, comparable bool) 9765 } 9766 9767 func ParseMonitoredResourceSelector_FieldPathValue(pathStr, valueStr string) (MonitoredResourceSelector_FieldPathValue, error) { 9768 fp, err := ParseMonitoredResourceSelector_FieldPath(pathStr) 9769 if err != nil { 9770 return nil, err 9771 } 9772 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 9773 if err != nil { 9774 return nil, status.Errorf(codes.InvalidArgument, "error parsing MonitoredResourceSelector field path value from %s: %v", valueStr, err) 9775 } 9776 return fpv.(MonitoredResourceSelector_FieldPathValue), nil 9777 } 9778 9779 func MustParseMonitoredResourceSelector_FieldPathValue(pathStr, valueStr string) MonitoredResourceSelector_FieldPathValue { 9780 fpv, err := ParseMonitoredResourceSelector_FieldPathValue(pathStr, valueStr) 9781 if err != nil { 9782 panic(err) 9783 } 9784 return fpv 9785 } 9786 9787 type MonitoredResourceSelector_FieldTerminalPathValue struct { 9788 MonitoredResourceSelector_FieldTerminalPath 9789 value interface{} 9790 } 9791 9792 var _ MonitoredResourceSelector_FieldPathValue = (*MonitoredResourceSelector_FieldTerminalPathValue)(nil) 9793 9794 // GetRawValue returns raw value stored under selected path for 'MonitoredResourceSelector' as interface{} 9795 func (fpv *MonitoredResourceSelector_FieldTerminalPathValue) GetRawValue() interface{} { 9796 return fpv.value 9797 } 9798 func (fpv *MonitoredResourceSelector_FieldTerminalPathValue) AsTypesValue() ([]string, bool) { 9799 res, ok := fpv.value.([]string) 9800 return res, ok 9801 } 9802 func (fpv *MonitoredResourceSelector_FieldTerminalPathValue) AsLabelsValue() (map[string]*Strings, bool) { 9803 res, ok := fpv.value.(map[string]*Strings) 9804 return res, ok 9805 } 9806 9807 // SetTo stores value for selected field for object MonitoredResourceSelector 9808 func (fpv *MonitoredResourceSelector_FieldTerminalPathValue) SetTo(target **MonitoredResourceSelector) { 9809 if *target == nil { 9810 *target = new(MonitoredResourceSelector) 9811 } 9812 switch fpv.selector { 9813 case MonitoredResourceSelector_FieldPathSelectorTypes: 9814 (*target).Types = fpv.value.([]string) 9815 case MonitoredResourceSelector_FieldPathSelectorLabels: 9816 (*target).Labels = fpv.value.(map[string]*Strings) 9817 default: 9818 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fpv.selector)) 9819 } 9820 } 9821 9822 func (fpv *MonitoredResourceSelector_FieldTerminalPathValue) SetToRaw(target proto.Message) { 9823 typedObject := target.(*MonitoredResourceSelector) 9824 fpv.SetTo(&typedObject) 9825 } 9826 9827 // CompareWith compares value in the 'MonitoredResourceSelector_FieldTerminalPathValue' with the value under path in 'MonitoredResourceSelector'. 9828 func (fpv *MonitoredResourceSelector_FieldTerminalPathValue) CompareWith(source *MonitoredResourceSelector) (int, bool) { 9829 switch fpv.selector { 9830 case MonitoredResourceSelector_FieldPathSelectorTypes: 9831 return 0, false 9832 case MonitoredResourceSelector_FieldPathSelectorLabels: 9833 return 0, false 9834 default: 9835 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fpv.selector)) 9836 } 9837 } 9838 9839 func (fpv *MonitoredResourceSelector_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 9840 return fpv.CompareWith(source.(*MonitoredResourceSelector)) 9841 } 9842 9843 type MonitoredResourceSelector_FieldPathMapValue struct { 9844 MonitoredResourceSelector_FieldPathMap 9845 value interface{} 9846 } 9847 9848 var _ MonitoredResourceSelector_FieldPathValue = (*MonitoredResourceSelector_FieldPathMapValue)(nil) 9849 9850 // GetValue returns value stored under selected field in MonitoredResourceSelector as interface{} 9851 func (fpmv *MonitoredResourceSelector_FieldPathMapValue) GetRawValue() interface{} { 9852 return fpmv.value 9853 } 9854 func (fpmv *MonitoredResourceSelector_FieldPathMapValue) AsLabelsElementValue() (*Strings, bool) { 9855 res, ok := fpmv.value.(*Strings) 9856 return res, ok 9857 } 9858 9859 // SetTo stores value for selected field in MonitoredResourceSelector 9860 func (fpmv *MonitoredResourceSelector_FieldPathMapValue) SetTo(target **MonitoredResourceSelector) { 9861 if *target == nil { 9862 *target = new(MonitoredResourceSelector) 9863 } 9864 switch fpmv.selector { 9865 case MonitoredResourceSelector_FieldPathSelectorLabels: 9866 if (*target).Labels == nil { 9867 (*target).Labels = make(map[string]*Strings) 9868 } 9869 (*target).Labels[fpmv.key] = fpmv.value.(*Strings) 9870 default: 9871 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fpmv.selector)) 9872 } 9873 } 9874 9875 func (fpmv *MonitoredResourceSelector_FieldPathMapValue) SetToRaw(target proto.Message) { 9876 typedObject := target.(*MonitoredResourceSelector) 9877 fpmv.SetTo(&typedObject) 9878 } 9879 9880 // CompareWith compares value in the 'MonitoredResourceSelector_FieldPathMapValue' with the value under path in 'MonitoredResourceSelector'. 9881 func (fpmv *MonitoredResourceSelector_FieldPathMapValue) CompareWith(source *MonitoredResourceSelector) (int, bool) { 9882 switch fpmv.selector { 9883 case MonitoredResourceSelector_FieldPathSelectorLabels: 9884 return 0, false 9885 default: 9886 panic(fmt.Sprintf("Invalid selector for MonitoredResourceSelector: %d", fpmv.selector)) 9887 } 9888 } 9889 9890 func (fpmv *MonitoredResourceSelector_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) { 9891 return fpmv.CompareWith(source.(*MonitoredResourceSelector)) 9892 } 9893 9894 // MonitoredResourceSelector_FieldPathArrayItemValue allows storing single item in Path-specific values for MonitoredResourceSelector according to their type 9895 // Present only for array (repeated) types. 9896 type MonitoredResourceSelector_FieldPathArrayItemValue interface { 9897 gotenobject.FieldPathArrayItemValue 9898 MonitoredResourceSelector_FieldPath 9899 ContainsValue(*MonitoredResourceSelector) bool 9900 } 9901 9902 // ParseMonitoredResourceSelector_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 9903 func ParseMonitoredResourceSelector_FieldPathArrayItemValue(pathStr, valueStr string) (MonitoredResourceSelector_FieldPathArrayItemValue, error) { 9904 fp, err := ParseMonitoredResourceSelector_FieldPath(pathStr) 9905 if err != nil { 9906 return nil, err 9907 } 9908 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 9909 if err != nil { 9910 return nil, status.Errorf(codes.InvalidArgument, "error parsing MonitoredResourceSelector field path array item value from %s: %v", valueStr, err) 9911 } 9912 return fpaiv.(MonitoredResourceSelector_FieldPathArrayItemValue), nil 9913 } 9914 9915 func MustParseMonitoredResourceSelector_FieldPathArrayItemValue(pathStr, valueStr string) MonitoredResourceSelector_FieldPathArrayItemValue { 9916 fpaiv, err := ParseMonitoredResourceSelector_FieldPathArrayItemValue(pathStr, valueStr) 9917 if err != nil { 9918 panic(err) 9919 } 9920 return fpaiv 9921 } 9922 9923 type MonitoredResourceSelector_FieldTerminalPathArrayItemValue struct { 9924 MonitoredResourceSelector_FieldTerminalPath 9925 value interface{} 9926 } 9927 9928 var _ MonitoredResourceSelector_FieldPathArrayItemValue = (*MonitoredResourceSelector_FieldTerminalPathArrayItemValue)(nil) 9929 9930 // GetRawValue returns stored element value for array in object MonitoredResourceSelector as interface{} 9931 func (fpaiv *MonitoredResourceSelector_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 9932 return fpaiv.value 9933 } 9934 func (fpaiv *MonitoredResourceSelector_FieldTerminalPathArrayItemValue) AsTypesItemValue() (string, bool) { 9935 res, ok := fpaiv.value.(string) 9936 return res, ok 9937 } 9938 9939 func (fpaiv *MonitoredResourceSelector_FieldTerminalPathArrayItemValue) GetSingle(source *MonitoredResourceSelector) (interface{}, bool) { 9940 return nil, false 9941 } 9942 9943 func (fpaiv *MonitoredResourceSelector_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 9944 return fpaiv.GetSingle(source.(*MonitoredResourceSelector)) 9945 } 9946 9947 // Contains returns a boolean indicating if value that is being held is present in given 'MonitoredResourceSelector' 9948 func (fpaiv *MonitoredResourceSelector_FieldTerminalPathArrayItemValue) ContainsValue(source *MonitoredResourceSelector) bool { 9949 slice := fpaiv.MonitoredResourceSelector_FieldTerminalPath.Get(source) 9950 for _, v := range slice { 9951 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 9952 if proto.Equal(asProtoMsg, v.(proto.Message)) { 9953 return true 9954 } 9955 } else if reflect.DeepEqual(v, fpaiv.value) { 9956 return true 9957 } 9958 } 9959 return false 9960 } 9961 9962 // MonitoredResourceSelector_FieldPathArrayOfValues allows storing slice of values for MonitoredResourceSelector fields according to their type 9963 type MonitoredResourceSelector_FieldPathArrayOfValues interface { 9964 gotenobject.FieldPathArrayOfValues 9965 MonitoredResourceSelector_FieldPath 9966 } 9967 9968 func ParseMonitoredResourceSelector_FieldPathArrayOfValues(pathStr, valuesStr string) (MonitoredResourceSelector_FieldPathArrayOfValues, error) { 9969 fp, err := ParseMonitoredResourceSelector_FieldPath(pathStr) 9970 if err != nil { 9971 return nil, err 9972 } 9973 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 9974 if err != nil { 9975 return nil, status.Errorf(codes.InvalidArgument, "error parsing MonitoredResourceSelector field path array of values from %s: %v", valuesStr, err) 9976 } 9977 return fpaov.(MonitoredResourceSelector_FieldPathArrayOfValues), nil 9978 } 9979 9980 func MustParseMonitoredResourceSelector_FieldPathArrayOfValues(pathStr, valuesStr string) MonitoredResourceSelector_FieldPathArrayOfValues { 9981 fpaov, err := ParseMonitoredResourceSelector_FieldPathArrayOfValues(pathStr, valuesStr) 9982 if err != nil { 9983 panic(err) 9984 } 9985 return fpaov 9986 } 9987 9988 type MonitoredResourceSelector_FieldTerminalPathArrayOfValues struct { 9989 MonitoredResourceSelector_FieldTerminalPath 9990 values interface{} 9991 } 9992 9993 var _ MonitoredResourceSelector_FieldPathArrayOfValues = (*MonitoredResourceSelector_FieldTerminalPathArrayOfValues)(nil) 9994 9995 func (fpaov *MonitoredResourceSelector_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 9996 switch fpaov.selector { 9997 case MonitoredResourceSelector_FieldPathSelectorTypes: 9998 for _, v := range fpaov.values.([][]string) { 9999 values = append(values, v) 10000 } 10001 case MonitoredResourceSelector_FieldPathSelectorLabels: 10002 for _, v := range fpaov.values.([]map[string]*Strings) { 10003 values = append(values, v) 10004 } 10005 } 10006 return 10007 } 10008 func (fpaov *MonitoredResourceSelector_FieldTerminalPathArrayOfValues) AsTypesArrayOfValues() ([][]string, bool) { 10009 res, ok := fpaov.values.([][]string) 10010 return res, ok 10011 } 10012 func (fpaov *MonitoredResourceSelector_FieldTerminalPathArrayOfValues) AsLabelsArrayOfValues() ([]map[string]*Strings, bool) { 10013 res, ok := fpaov.values.([]map[string]*Strings) 10014 return res, ok 10015 } 10016 10017 type MonitoredResourceSelector_FieldPathMapArrayOfValues struct { 10018 MonitoredResourceSelector_FieldPathMap 10019 values interface{} 10020 } 10021 10022 var _ MonitoredResourceSelector_FieldPathArrayOfValues = (*MonitoredResourceSelector_FieldPathMapArrayOfValues)(nil) 10023 10024 func (fpmaov *MonitoredResourceSelector_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) { 10025 switch fpmaov.selector { 10026 case MonitoredResourceSelector_FieldPathSelectorLabels: 10027 for _, v := range fpmaov.values.([]*Strings) { 10028 values = append(values, v) 10029 } 10030 } 10031 return 10032 } 10033 func (fpmaov *MonitoredResourceSelector_FieldPathMapArrayOfValues) AsLabelsArrayOfElementValues() ([]*Strings, bool) { 10034 res, ok := fpmaov.values.([]*Strings) 10035 return res, ok 10036 } 10037 10038 // FieldPath provides implementation to handle 10039 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 10040 type MetricSelector_FieldPath interface { 10041 gotenobject.FieldPath 10042 Selector() MetricSelector_FieldPathSelector 10043 Get(source *MetricSelector) []interface{} 10044 GetSingle(source *MetricSelector) (interface{}, bool) 10045 ClearValue(item *MetricSelector) 10046 10047 // Those methods build corresponding MetricSelector_FieldPathValue 10048 // (or array of values) and holds passed value. Panics if injected type is incorrect. 10049 WithIValue(value interface{}) MetricSelector_FieldPathValue 10050 WithIArrayOfValues(values interface{}) MetricSelector_FieldPathArrayOfValues 10051 WithIArrayItemValue(value interface{}) MetricSelector_FieldPathArrayItemValue 10052 } 10053 10054 type MetricSelector_FieldPathSelector int32 10055 10056 const ( 10057 MetricSelector_FieldPathSelectorTypes MetricSelector_FieldPathSelector = 0 10058 MetricSelector_FieldPathSelectorLabels MetricSelector_FieldPathSelector = 1 10059 ) 10060 10061 func (s MetricSelector_FieldPathSelector) String() string { 10062 switch s { 10063 case MetricSelector_FieldPathSelectorTypes: 10064 return "types" 10065 case MetricSelector_FieldPathSelectorLabels: 10066 return "labels" 10067 default: 10068 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", s)) 10069 } 10070 } 10071 10072 func BuildMetricSelector_FieldPath(fp gotenobject.RawFieldPath) (MetricSelector_FieldPath, error) { 10073 if len(fp) == 0 { 10074 return nil, status.Error(codes.InvalidArgument, "empty field path for object MetricSelector") 10075 } 10076 if len(fp) == 1 { 10077 switch fp[0] { 10078 case "types": 10079 return &MetricSelector_FieldTerminalPath{selector: MetricSelector_FieldPathSelectorTypes}, nil 10080 case "labels": 10081 return &MetricSelector_FieldTerminalPath{selector: MetricSelector_FieldPathSelectorLabels}, nil 10082 } 10083 } else { 10084 switch fp[0] { 10085 case "labels": 10086 if len(fp) > 2 { 10087 return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object MetricSelector)", fp) 10088 } 10089 return &MetricSelector_FieldPathMap{selector: MetricSelector_FieldPathSelectorLabels, key: fp[1]}, nil 10090 } 10091 } 10092 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object MetricSelector", fp) 10093 } 10094 10095 func ParseMetricSelector_FieldPath(rawField string) (MetricSelector_FieldPath, error) { 10096 fp, err := gotenobject.ParseRawFieldPath(rawField) 10097 if err != nil { 10098 return nil, err 10099 } 10100 return BuildMetricSelector_FieldPath(fp) 10101 } 10102 10103 func MustParseMetricSelector_FieldPath(rawField string) MetricSelector_FieldPath { 10104 fp, err := ParseMetricSelector_FieldPath(rawField) 10105 if err != nil { 10106 panic(err) 10107 } 10108 return fp 10109 } 10110 10111 type MetricSelector_FieldTerminalPath struct { 10112 selector MetricSelector_FieldPathSelector 10113 } 10114 10115 var _ MetricSelector_FieldPath = (*MetricSelector_FieldTerminalPath)(nil) 10116 10117 func (fp *MetricSelector_FieldTerminalPath) Selector() MetricSelector_FieldPathSelector { 10118 return fp.selector 10119 } 10120 10121 // String returns path representation in proto convention 10122 func (fp *MetricSelector_FieldTerminalPath) String() string { 10123 return fp.selector.String() 10124 } 10125 10126 // JSONString returns path representation is JSON convention 10127 func (fp *MetricSelector_FieldTerminalPath) JSONString() string { 10128 return strcase.ToLowerCamel(fp.String()) 10129 } 10130 10131 // Get returns all values pointed by specific field from source MetricSelector 10132 func (fp *MetricSelector_FieldTerminalPath) Get(source *MetricSelector) (values []interface{}) { 10133 if source != nil { 10134 switch fp.selector { 10135 case MetricSelector_FieldPathSelectorTypes: 10136 for _, value := range source.GetTypes() { 10137 values = append(values, value) 10138 } 10139 case MetricSelector_FieldPathSelectorLabels: 10140 if source.Labels != nil { 10141 values = append(values, source.Labels) 10142 } 10143 default: 10144 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fp.selector)) 10145 } 10146 } 10147 return 10148 } 10149 10150 func (fp *MetricSelector_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 10151 return fp.Get(source.(*MetricSelector)) 10152 } 10153 10154 // GetSingle returns value pointed by specific field of from source MetricSelector 10155 func (fp *MetricSelector_FieldTerminalPath) GetSingle(source *MetricSelector) (interface{}, bool) { 10156 switch fp.selector { 10157 case MetricSelector_FieldPathSelectorTypes: 10158 res := source.GetTypes() 10159 return res, res != nil 10160 case MetricSelector_FieldPathSelectorLabels: 10161 res := source.GetLabels() 10162 return res, res != nil 10163 default: 10164 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fp.selector)) 10165 } 10166 } 10167 10168 func (fp *MetricSelector_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 10169 return fp.GetSingle(source.(*MetricSelector)) 10170 } 10171 10172 // GetDefault returns a default value of the field type 10173 func (fp *MetricSelector_FieldTerminalPath) GetDefault() interface{} { 10174 switch fp.selector { 10175 case MetricSelector_FieldPathSelectorTypes: 10176 return ([]string)(nil) 10177 case MetricSelector_FieldPathSelectorLabels: 10178 return (map[string]*Strings)(nil) 10179 default: 10180 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fp.selector)) 10181 } 10182 } 10183 10184 func (fp *MetricSelector_FieldTerminalPath) ClearValue(item *MetricSelector) { 10185 if item != nil { 10186 switch fp.selector { 10187 case MetricSelector_FieldPathSelectorTypes: 10188 item.Types = nil 10189 case MetricSelector_FieldPathSelectorLabels: 10190 item.Labels = nil 10191 default: 10192 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fp.selector)) 10193 } 10194 } 10195 } 10196 10197 func (fp *MetricSelector_FieldTerminalPath) ClearValueRaw(item proto.Message) { 10198 fp.ClearValue(item.(*MetricSelector)) 10199 } 10200 10201 // IsLeaf - whether field path is holds simple value 10202 func (fp *MetricSelector_FieldTerminalPath) IsLeaf() bool { 10203 return fp.selector == MetricSelector_FieldPathSelectorTypes 10204 } 10205 10206 func (fp *MetricSelector_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 10207 return []gotenobject.FieldPath{fp} 10208 } 10209 10210 func (fp *MetricSelector_FieldTerminalPath) WithIValue(value interface{}) MetricSelector_FieldPathValue { 10211 switch fp.selector { 10212 case MetricSelector_FieldPathSelectorTypes: 10213 return &MetricSelector_FieldTerminalPathValue{MetricSelector_FieldTerminalPath: *fp, value: value.([]string)} 10214 case MetricSelector_FieldPathSelectorLabels: 10215 return &MetricSelector_FieldTerminalPathValue{MetricSelector_FieldTerminalPath: *fp, value: value.(map[string]*Strings)} 10216 default: 10217 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fp.selector)) 10218 } 10219 } 10220 10221 func (fp *MetricSelector_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 10222 return fp.WithIValue(value) 10223 } 10224 10225 func (fp *MetricSelector_FieldTerminalPath) WithIArrayOfValues(values interface{}) MetricSelector_FieldPathArrayOfValues { 10226 fpaov := &MetricSelector_FieldTerminalPathArrayOfValues{MetricSelector_FieldTerminalPath: *fp} 10227 switch fp.selector { 10228 case MetricSelector_FieldPathSelectorTypes: 10229 return &MetricSelector_FieldTerminalPathArrayOfValues{MetricSelector_FieldTerminalPath: *fp, values: values.([][]string)} 10230 case MetricSelector_FieldPathSelectorLabels: 10231 return &MetricSelector_FieldTerminalPathArrayOfValues{MetricSelector_FieldTerminalPath: *fp, values: values.([]map[string]*Strings)} 10232 default: 10233 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fp.selector)) 10234 } 10235 return fpaov 10236 } 10237 10238 func (fp *MetricSelector_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 10239 return fp.WithIArrayOfValues(values) 10240 } 10241 10242 func (fp *MetricSelector_FieldTerminalPath) WithIArrayItemValue(value interface{}) MetricSelector_FieldPathArrayItemValue { 10243 switch fp.selector { 10244 case MetricSelector_FieldPathSelectorTypes: 10245 return &MetricSelector_FieldTerminalPathArrayItemValue{MetricSelector_FieldTerminalPath: *fp, value: value.(string)} 10246 default: 10247 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fp.selector)) 10248 } 10249 } 10250 10251 func (fp *MetricSelector_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 10252 return fp.WithIArrayItemValue(value) 10253 } 10254 10255 // FieldPath for map type with additional Key information 10256 type MetricSelector_FieldPathMap struct { 10257 key string 10258 selector MetricSelector_FieldPathSelector 10259 } 10260 10261 var _ MetricSelector_FieldPath = (*MetricSelector_FieldPathMap)(nil) 10262 10263 func (fpm *MetricSelector_FieldPathMap) Selector() MetricSelector_FieldPathSelector { 10264 return fpm.selector 10265 } 10266 10267 func (fpm *MetricSelector_FieldPathMap) Key() string { 10268 return fpm.key 10269 } 10270 10271 // String returns path representation in proto convention 10272 func (fpm *MetricSelector_FieldPathMap) String() string { 10273 return fpm.selector.String() + "." + fpm.key 10274 } 10275 10276 // JSONString returns path representation is JSON convention. Note that map keys are not transformed 10277 func (fpm *MetricSelector_FieldPathMap) JSONString() string { 10278 return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key 10279 } 10280 10281 // Get returns all values pointed by selected field map key from source MetricSelector 10282 func (fpm *MetricSelector_FieldPathMap) Get(source *MetricSelector) (values []interface{}) { 10283 switch fpm.selector { 10284 case MetricSelector_FieldPathSelectorLabels: 10285 if value, ok := source.GetLabels()[fpm.key]; ok { 10286 values = append(values, value) 10287 } 10288 default: 10289 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fpm.selector)) 10290 } 10291 return 10292 } 10293 10294 func (fpm *MetricSelector_FieldPathMap) GetRaw(source proto.Message) []interface{} { 10295 return fpm.Get(source.(*MetricSelector)) 10296 } 10297 10298 // GetSingle returns value by selected field map key from source MetricSelector 10299 func (fpm *MetricSelector_FieldPathMap) GetSingle(source *MetricSelector) (interface{}, bool) { 10300 switch fpm.selector { 10301 case MetricSelector_FieldPathSelectorLabels: 10302 res, ok := source.GetLabels()[fpm.key] 10303 return res, ok 10304 default: 10305 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fpm.selector)) 10306 } 10307 } 10308 10309 func (fpm *MetricSelector_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) { 10310 return fpm.GetSingle(source.(*MetricSelector)) 10311 } 10312 10313 // GetDefault returns a default value of the field type 10314 func (fpm *MetricSelector_FieldPathMap) GetDefault() interface{} { 10315 switch fpm.selector { 10316 case MetricSelector_FieldPathSelectorLabels: 10317 var v *Strings 10318 return v 10319 default: 10320 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fpm.selector)) 10321 } 10322 } 10323 10324 func (fpm *MetricSelector_FieldPathMap) ClearValue(item *MetricSelector) { 10325 if item != nil { 10326 switch fpm.selector { 10327 case MetricSelector_FieldPathSelectorLabels: 10328 delete(item.Labels, fpm.key) 10329 default: 10330 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fpm.selector)) 10331 } 10332 } 10333 } 10334 10335 func (fpm *MetricSelector_FieldPathMap) ClearValueRaw(item proto.Message) { 10336 fpm.ClearValue(item.(*MetricSelector)) 10337 } 10338 10339 // IsLeaf - whether field path is holds simple value 10340 func (fpm *MetricSelector_FieldPathMap) IsLeaf() bool { 10341 switch fpm.selector { 10342 case MetricSelector_FieldPathSelectorLabels: 10343 return false 10344 default: 10345 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fpm.selector)) 10346 } 10347 } 10348 10349 func (fpm *MetricSelector_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 10350 return []gotenobject.FieldPath{fpm} 10351 } 10352 10353 func (fpm *MetricSelector_FieldPathMap) WithIValue(value interface{}) MetricSelector_FieldPathValue { 10354 switch fpm.selector { 10355 case MetricSelector_FieldPathSelectorLabels: 10356 return &MetricSelector_FieldPathMapValue{MetricSelector_FieldPathMap: *fpm, value: value.(*Strings)} 10357 default: 10358 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fpm.selector)) 10359 } 10360 } 10361 10362 func (fpm *MetricSelector_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 10363 return fpm.WithIValue(value) 10364 } 10365 10366 func (fpm *MetricSelector_FieldPathMap) WithIArrayOfValues(values interface{}) MetricSelector_FieldPathArrayOfValues { 10367 switch fpm.selector { 10368 case MetricSelector_FieldPathSelectorLabels: 10369 return &MetricSelector_FieldPathMapArrayOfValues{MetricSelector_FieldPathMap: *fpm, values: values.([]*Strings)} 10370 default: 10371 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fpm.selector)) 10372 } 10373 } 10374 10375 func (fpm *MetricSelector_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 10376 return fpm.WithIArrayOfValues(values) 10377 } 10378 10379 func (fpm *MetricSelector_FieldPathMap) WithIArrayItemValue(value interface{}) MetricSelector_FieldPathArrayItemValue { 10380 panic("Cannot create array item value from map fieldpath") 10381 } 10382 10383 func (fpm *MetricSelector_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 10384 return fpm.WithIArrayItemValue(value) 10385 } 10386 10387 // MetricSelector_FieldPathValue allows storing values for MetricSelector fields according to their type 10388 type MetricSelector_FieldPathValue interface { 10389 MetricSelector_FieldPath 10390 gotenobject.FieldPathValue 10391 SetTo(target **MetricSelector) 10392 CompareWith(*MetricSelector) (cmp int, comparable bool) 10393 } 10394 10395 func ParseMetricSelector_FieldPathValue(pathStr, valueStr string) (MetricSelector_FieldPathValue, error) { 10396 fp, err := ParseMetricSelector_FieldPath(pathStr) 10397 if err != nil { 10398 return nil, err 10399 } 10400 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 10401 if err != nil { 10402 return nil, status.Errorf(codes.InvalidArgument, "error parsing MetricSelector field path value from %s: %v", valueStr, err) 10403 } 10404 return fpv.(MetricSelector_FieldPathValue), nil 10405 } 10406 10407 func MustParseMetricSelector_FieldPathValue(pathStr, valueStr string) MetricSelector_FieldPathValue { 10408 fpv, err := ParseMetricSelector_FieldPathValue(pathStr, valueStr) 10409 if err != nil { 10410 panic(err) 10411 } 10412 return fpv 10413 } 10414 10415 type MetricSelector_FieldTerminalPathValue struct { 10416 MetricSelector_FieldTerminalPath 10417 value interface{} 10418 } 10419 10420 var _ MetricSelector_FieldPathValue = (*MetricSelector_FieldTerminalPathValue)(nil) 10421 10422 // GetRawValue returns raw value stored under selected path for 'MetricSelector' as interface{} 10423 func (fpv *MetricSelector_FieldTerminalPathValue) GetRawValue() interface{} { 10424 return fpv.value 10425 } 10426 func (fpv *MetricSelector_FieldTerminalPathValue) AsTypesValue() ([]string, bool) { 10427 res, ok := fpv.value.([]string) 10428 return res, ok 10429 } 10430 func (fpv *MetricSelector_FieldTerminalPathValue) AsLabelsValue() (map[string]*Strings, bool) { 10431 res, ok := fpv.value.(map[string]*Strings) 10432 return res, ok 10433 } 10434 10435 // SetTo stores value for selected field for object MetricSelector 10436 func (fpv *MetricSelector_FieldTerminalPathValue) SetTo(target **MetricSelector) { 10437 if *target == nil { 10438 *target = new(MetricSelector) 10439 } 10440 switch fpv.selector { 10441 case MetricSelector_FieldPathSelectorTypes: 10442 (*target).Types = fpv.value.([]string) 10443 case MetricSelector_FieldPathSelectorLabels: 10444 (*target).Labels = fpv.value.(map[string]*Strings) 10445 default: 10446 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fpv.selector)) 10447 } 10448 } 10449 10450 func (fpv *MetricSelector_FieldTerminalPathValue) SetToRaw(target proto.Message) { 10451 typedObject := target.(*MetricSelector) 10452 fpv.SetTo(&typedObject) 10453 } 10454 10455 // CompareWith compares value in the 'MetricSelector_FieldTerminalPathValue' with the value under path in 'MetricSelector'. 10456 func (fpv *MetricSelector_FieldTerminalPathValue) CompareWith(source *MetricSelector) (int, bool) { 10457 switch fpv.selector { 10458 case MetricSelector_FieldPathSelectorTypes: 10459 return 0, false 10460 case MetricSelector_FieldPathSelectorLabels: 10461 return 0, false 10462 default: 10463 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fpv.selector)) 10464 } 10465 } 10466 10467 func (fpv *MetricSelector_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 10468 return fpv.CompareWith(source.(*MetricSelector)) 10469 } 10470 10471 type MetricSelector_FieldPathMapValue struct { 10472 MetricSelector_FieldPathMap 10473 value interface{} 10474 } 10475 10476 var _ MetricSelector_FieldPathValue = (*MetricSelector_FieldPathMapValue)(nil) 10477 10478 // GetValue returns value stored under selected field in MetricSelector as interface{} 10479 func (fpmv *MetricSelector_FieldPathMapValue) GetRawValue() interface{} { 10480 return fpmv.value 10481 } 10482 func (fpmv *MetricSelector_FieldPathMapValue) AsLabelsElementValue() (*Strings, bool) { 10483 res, ok := fpmv.value.(*Strings) 10484 return res, ok 10485 } 10486 10487 // SetTo stores value for selected field in MetricSelector 10488 func (fpmv *MetricSelector_FieldPathMapValue) SetTo(target **MetricSelector) { 10489 if *target == nil { 10490 *target = new(MetricSelector) 10491 } 10492 switch fpmv.selector { 10493 case MetricSelector_FieldPathSelectorLabels: 10494 if (*target).Labels == nil { 10495 (*target).Labels = make(map[string]*Strings) 10496 } 10497 (*target).Labels[fpmv.key] = fpmv.value.(*Strings) 10498 default: 10499 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fpmv.selector)) 10500 } 10501 } 10502 10503 func (fpmv *MetricSelector_FieldPathMapValue) SetToRaw(target proto.Message) { 10504 typedObject := target.(*MetricSelector) 10505 fpmv.SetTo(&typedObject) 10506 } 10507 10508 // CompareWith compares value in the 'MetricSelector_FieldPathMapValue' with the value under path in 'MetricSelector'. 10509 func (fpmv *MetricSelector_FieldPathMapValue) CompareWith(source *MetricSelector) (int, bool) { 10510 switch fpmv.selector { 10511 case MetricSelector_FieldPathSelectorLabels: 10512 return 0, false 10513 default: 10514 panic(fmt.Sprintf("Invalid selector for MetricSelector: %d", fpmv.selector)) 10515 } 10516 } 10517 10518 func (fpmv *MetricSelector_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) { 10519 return fpmv.CompareWith(source.(*MetricSelector)) 10520 } 10521 10522 // MetricSelector_FieldPathArrayItemValue allows storing single item in Path-specific values for MetricSelector according to their type 10523 // Present only for array (repeated) types. 10524 type MetricSelector_FieldPathArrayItemValue interface { 10525 gotenobject.FieldPathArrayItemValue 10526 MetricSelector_FieldPath 10527 ContainsValue(*MetricSelector) bool 10528 } 10529 10530 // ParseMetricSelector_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 10531 func ParseMetricSelector_FieldPathArrayItemValue(pathStr, valueStr string) (MetricSelector_FieldPathArrayItemValue, error) { 10532 fp, err := ParseMetricSelector_FieldPath(pathStr) 10533 if err != nil { 10534 return nil, err 10535 } 10536 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 10537 if err != nil { 10538 return nil, status.Errorf(codes.InvalidArgument, "error parsing MetricSelector field path array item value from %s: %v", valueStr, err) 10539 } 10540 return fpaiv.(MetricSelector_FieldPathArrayItemValue), nil 10541 } 10542 10543 func MustParseMetricSelector_FieldPathArrayItemValue(pathStr, valueStr string) MetricSelector_FieldPathArrayItemValue { 10544 fpaiv, err := ParseMetricSelector_FieldPathArrayItemValue(pathStr, valueStr) 10545 if err != nil { 10546 panic(err) 10547 } 10548 return fpaiv 10549 } 10550 10551 type MetricSelector_FieldTerminalPathArrayItemValue struct { 10552 MetricSelector_FieldTerminalPath 10553 value interface{} 10554 } 10555 10556 var _ MetricSelector_FieldPathArrayItemValue = (*MetricSelector_FieldTerminalPathArrayItemValue)(nil) 10557 10558 // GetRawValue returns stored element value for array in object MetricSelector as interface{} 10559 func (fpaiv *MetricSelector_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 10560 return fpaiv.value 10561 } 10562 func (fpaiv *MetricSelector_FieldTerminalPathArrayItemValue) AsTypesItemValue() (string, bool) { 10563 res, ok := fpaiv.value.(string) 10564 return res, ok 10565 } 10566 10567 func (fpaiv *MetricSelector_FieldTerminalPathArrayItemValue) GetSingle(source *MetricSelector) (interface{}, bool) { 10568 return nil, false 10569 } 10570 10571 func (fpaiv *MetricSelector_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 10572 return fpaiv.GetSingle(source.(*MetricSelector)) 10573 } 10574 10575 // Contains returns a boolean indicating if value that is being held is present in given 'MetricSelector' 10576 func (fpaiv *MetricSelector_FieldTerminalPathArrayItemValue) ContainsValue(source *MetricSelector) bool { 10577 slice := fpaiv.MetricSelector_FieldTerminalPath.Get(source) 10578 for _, v := range slice { 10579 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 10580 if proto.Equal(asProtoMsg, v.(proto.Message)) { 10581 return true 10582 } 10583 } else if reflect.DeepEqual(v, fpaiv.value) { 10584 return true 10585 } 10586 } 10587 return false 10588 } 10589 10590 // MetricSelector_FieldPathArrayOfValues allows storing slice of values for MetricSelector fields according to their type 10591 type MetricSelector_FieldPathArrayOfValues interface { 10592 gotenobject.FieldPathArrayOfValues 10593 MetricSelector_FieldPath 10594 } 10595 10596 func ParseMetricSelector_FieldPathArrayOfValues(pathStr, valuesStr string) (MetricSelector_FieldPathArrayOfValues, error) { 10597 fp, err := ParseMetricSelector_FieldPath(pathStr) 10598 if err != nil { 10599 return nil, err 10600 } 10601 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 10602 if err != nil { 10603 return nil, status.Errorf(codes.InvalidArgument, "error parsing MetricSelector field path array of values from %s: %v", valuesStr, err) 10604 } 10605 return fpaov.(MetricSelector_FieldPathArrayOfValues), nil 10606 } 10607 10608 func MustParseMetricSelector_FieldPathArrayOfValues(pathStr, valuesStr string) MetricSelector_FieldPathArrayOfValues { 10609 fpaov, err := ParseMetricSelector_FieldPathArrayOfValues(pathStr, valuesStr) 10610 if err != nil { 10611 panic(err) 10612 } 10613 return fpaov 10614 } 10615 10616 type MetricSelector_FieldTerminalPathArrayOfValues struct { 10617 MetricSelector_FieldTerminalPath 10618 values interface{} 10619 } 10620 10621 var _ MetricSelector_FieldPathArrayOfValues = (*MetricSelector_FieldTerminalPathArrayOfValues)(nil) 10622 10623 func (fpaov *MetricSelector_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 10624 switch fpaov.selector { 10625 case MetricSelector_FieldPathSelectorTypes: 10626 for _, v := range fpaov.values.([][]string) { 10627 values = append(values, v) 10628 } 10629 case MetricSelector_FieldPathSelectorLabels: 10630 for _, v := range fpaov.values.([]map[string]*Strings) { 10631 values = append(values, v) 10632 } 10633 } 10634 return 10635 } 10636 func (fpaov *MetricSelector_FieldTerminalPathArrayOfValues) AsTypesArrayOfValues() ([][]string, bool) { 10637 res, ok := fpaov.values.([][]string) 10638 return res, ok 10639 } 10640 func (fpaov *MetricSelector_FieldTerminalPathArrayOfValues) AsLabelsArrayOfValues() ([]map[string]*Strings, bool) { 10641 res, ok := fpaov.values.([]map[string]*Strings) 10642 return res, ok 10643 } 10644 10645 type MetricSelector_FieldPathMapArrayOfValues struct { 10646 MetricSelector_FieldPathMap 10647 values interface{} 10648 } 10649 10650 var _ MetricSelector_FieldPathArrayOfValues = (*MetricSelector_FieldPathMapArrayOfValues)(nil) 10651 10652 func (fpmaov *MetricSelector_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) { 10653 switch fpmaov.selector { 10654 case MetricSelector_FieldPathSelectorLabels: 10655 for _, v := range fpmaov.values.([]*Strings) { 10656 values = append(values, v) 10657 } 10658 } 10659 return 10660 } 10661 func (fpmaov *MetricSelector_FieldPathMapArrayOfValues) AsLabelsArrayOfElementValues() ([]*Strings, bool) { 10662 res, ok := fpmaov.values.([]*Strings) 10663 return res, ok 10664 } 10665 10666 // FieldPath provides implementation to handle 10667 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 10668 type TimeSeriesSelector_FieldPath interface { 10669 gotenobject.FieldPath 10670 Selector() TimeSeriesSelector_FieldPathSelector 10671 Get(source *TimeSeriesSelector) []interface{} 10672 GetSingle(source *TimeSeriesSelector) (interface{}, bool) 10673 ClearValue(item *TimeSeriesSelector) 10674 10675 // Those methods build corresponding TimeSeriesSelector_FieldPathValue 10676 // (or array of values) and holds passed value. Panics if injected type is incorrect. 10677 WithIValue(value interface{}) TimeSeriesSelector_FieldPathValue 10678 WithIArrayOfValues(values interface{}) TimeSeriesSelector_FieldPathArrayOfValues 10679 WithIArrayItemValue(value interface{}) TimeSeriesSelector_FieldPathArrayItemValue 10680 } 10681 10682 type TimeSeriesSelector_FieldPathSelector int32 10683 10684 const ( 10685 TimeSeriesSelector_FieldPathSelectorMetric TimeSeriesSelector_FieldPathSelector = 0 10686 TimeSeriesSelector_FieldPathSelectorResource TimeSeriesSelector_FieldPathSelector = 1 10687 ) 10688 10689 func (s TimeSeriesSelector_FieldPathSelector) String() string { 10690 switch s { 10691 case TimeSeriesSelector_FieldPathSelectorMetric: 10692 return "metric" 10693 case TimeSeriesSelector_FieldPathSelectorResource: 10694 return "resource" 10695 default: 10696 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", s)) 10697 } 10698 } 10699 10700 func BuildTimeSeriesSelector_FieldPath(fp gotenobject.RawFieldPath) (TimeSeriesSelector_FieldPath, error) { 10701 if len(fp) == 0 { 10702 return nil, status.Error(codes.InvalidArgument, "empty field path for object TimeSeriesSelector") 10703 } 10704 if len(fp) == 1 { 10705 switch fp[0] { 10706 case "metric": 10707 return &TimeSeriesSelector_FieldTerminalPath{selector: TimeSeriesSelector_FieldPathSelectorMetric}, nil 10708 case "resource": 10709 return &TimeSeriesSelector_FieldTerminalPath{selector: TimeSeriesSelector_FieldPathSelectorResource}, nil 10710 } 10711 } else { 10712 switch fp[0] { 10713 case "metric": 10714 if subpath, err := BuildMetricSelector_FieldPath(fp[1:]); err != nil { 10715 return nil, err 10716 } else { 10717 return &TimeSeriesSelector_FieldSubPath{selector: TimeSeriesSelector_FieldPathSelectorMetric, subPath: subpath}, nil 10718 } 10719 case "resource": 10720 if subpath, err := BuildMonitoredResourceSelector_FieldPath(fp[1:]); err != nil { 10721 return nil, err 10722 } else { 10723 return &TimeSeriesSelector_FieldSubPath{selector: TimeSeriesSelector_FieldPathSelectorResource, subPath: subpath}, nil 10724 } 10725 } 10726 } 10727 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object TimeSeriesSelector", fp) 10728 } 10729 10730 func ParseTimeSeriesSelector_FieldPath(rawField string) (TimeSeriesSelector_FieldPath, error) { 10731 fp, err := gotenobject.ParseRawFieldPath(rawField) 10732 if err != nil { 10733 return nil, err 10734 } 10735 return BuildTimeSeriesSelector_FieldPath(fp) 10736 } 10737 10738 func MustParseTimeSeriesSelector_FieldPath(rawField string) TimeSeriesSelector_FieldPath { 10739 fp, err := ParseTimeSeriesSelector_FieldPath(rawField) 10740 if err != nil { 10741 panic(err) 10742 } 10743 return fp 10744 } 10745 10746 type TimeSeriesSelector_FieldTerminalPath struct { 10747 selector TimeSeriesSelector_FieldPathSelector 10748 } 10749 10750 var _ TimeSeriesSelector_FieldPath = (*TimeSeriesSelector_FieldTerminalPath)(nil) 10751 10752 func (fp *TimeSeriesSelector_FieldTerminalPath) Selector() TimeSeriesSelector_FieldPathSelector { 10753 return fp.selector 10754 } 10755 10756 // String returns path representation in proto convention 10757 func (fp *TimeSeriesSelector_FieldTerminalPath) String() string { 10758 return fp.selector.String() 10759 } 10760 10761 // JSONString returns path representation is JSON convention 10762 func (fp *TimeSeriesSelector_FieldTerminalPath) JSONString() string { 10763 return strcase.ToLowerCamel(fp.String()) 10764 } 10765 10766 // Get returns all values pointed by specific field from source TimeSeriesSelector 10767 func (fp *TimeSeriesSelector_FieldTerminalPath) Get(source *TimeSeriesSelector) (values []interface{}) { 10768 if source != nil { 10769 switch fp.selector { 10770 case TimeSeriesSelector_FieldPathSelectorMetric: 10771 if source.Metric != nil { 10772 values = append(values, source.Metric) 10773 } 10774 case TimeSeriesSelector_FieldPathSelectorResource: 10775 if source.Resource != nil { 10776 values = append(values, source.Resource) 10777 } 10778 default: 10779 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fp.selector)) 10780 } 10781 } 10782 return 10783 } 10784 10785 func (fp *TimeSeriesSelector_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 10786 return fp.Get(source.(*TimeSeriesSelector)) 10787 } 10788 10789 // GetSingle returns value pointed by specific field of from source TimeSeriesSelector 10790 func (fp *TimeSeriesSelector_FieldTerminalPath) GetSingle(source *TimeSeriesSelector) (interface{}, bool) { 10791 switch fp.selector { 10792 case TimeSeriesSelector_FieldPathSelectorMetric: 10793 res := source.GetMetric() 10794 return res, res != nil 10795 case TimeSeriesSelector_FieldPathSelectorResource: 10796 res := source.GetResource() 10797 return res, res != nil 10798 default: 10799 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fp.selector)) 10800 } 10801 } 10802 10803 func (fp *TimeSeriesSelector_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 10804 return fp.GetSingle(source.(*TimeSeriesSelector)) 10805 } 10806 10807 // GetDefault returns a default value of the field type 10808 func (fp *TimeSeriesSelector_FieldTerminalPath) GetDefault() interface{} { 10809 switch fp.selector { 10810 case TimeSeriesSelector_FieldPathSelectorMetric: 10811 return (*MetricSelector)(nil) 10812 case TimeSeriesSelector_FieldPathSelectorResource: 10813 return (*MonitoredResourceSelector)(nil) 10814 default: 10815 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fp.selector)) 10816 } 10817 } 10818 10819 func (fp *TimeSeriesSelector_FieldTerminalPath) ClearValue(item *TimeSeriesSelector) { 10820 if item != nil { 10821 switch fp.selector { 10822 case TimeSeriesSelector_FieldPathSelectorMetric: 10823 item.Metric = nil 10824 case TimeSeriesSelector_FieldPathSelectorResource: 10825 item.Resource = nil 10826 default: 10827 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fp.selector)) 10828 } 10829 } 10830 } 10831 10832 func (fp *TimeSeriesSelector_FieldTerminalPath) ClearValueRaw(item proto.Message) { 10833 fp.ClearValue(item.(*TimeSeriesSelector)) 10834 } 10835 10836 // IsLeaf - whether field path is holds simple value 10837 func (fp *TimeSeriesSelector_FieldTerminalPath) IsLeaf() bool { 10838 return false 10839 } 10840 10841 func (fp *TimeSeriesSelector_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 10842 return []gotenobject.FieldPath{fp} 10843 } 10844 10845 func (fp *TimeSeriesSelector_FieldTerminalPath) WithIValue(value interface{}) TimeSeriesSelector_FieldPathValue { 10846 switch fp.selector { 10847 case TimeSeriesSelector_FieldPathSelectorMetric: 10848 return &TimeSeriesSelector_FieldTerminalPathValue{TimeSeriesSelector_FieldTerminalPath: *fp, value: value.(*MetricSelector)} 10849 case TimeSeriesSelector_FieldPathSelectorResource: 10850 return &TimeSeriesSelector_FieldTerminalPathValue{TimeSeriesSelector_FieldTerminalPath: *fp, value: value.(*MonitoredResourceSelector)} 10851 default: 10852 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fp.selector)) 10853 } 10854 } 10855 10856 func (fp *TimeSeriesSelector_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 10857 return fp.WithIValue(value) 10858 } 10859 10860 func (fp *TimeSeriesSelector_FieldTerminalPath) WithIArrayOfValues(values interface{}) TimeSeriesSelector_FieldPathArrayOfValues { 10861 fpaov := &TimeSeriesSelector_FieldTerminalPathArrayOfValues{TimeSeriesSelector_FieldTerminalPath: *fp} 10862 switch fp.selector { 10863 case TimeSeriesSelector_FieldPathSelectorMetric: 10864 return &TimeSeriesSelector_FieldTerminalPathArrayOfValues{TimeSeriesSelector_FieldTerminalPath: *fp, values: values.([]*MetricSelector)} 10865 case TimeSeriesSelector_FieldPathSelectorResource: 10866 return &TimeSeriesSelector_FieldTerminalPathArrayOfValues{TimeSeriesSelector_FieldTerminalPath: *fp, values: values.([]*MonitoredResourceSelector)} 10867 default: 10868 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fp.selector)) 10869 } 10870 return fpaov 10871 } 10872 10873 func (fp *TimeSeriesSelector_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 10874 return fp.WithIArrayOfValues(values) 10875 } 10876 10877 func (fp *TimeSeriesSelector_FieldTerminalPath) WithIArrayItemValue(value interface{}) TimeSeriesSelector_FieldPathArrayItemValue { 10878 switch fp.selector { 10879 default: 10880 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fp.selector)) 10881 } 10882 } 10883 10884 func (fp *TimeSeriesSelector_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 10885 return fp.WithIArrayItemValue(value) 10886 } 10887 10888 type TimeSeriesSelector_FieldSubPath struct { 10889 selector TimeSeriesSelector_FieldPathSelector 10890 subPath gotenobject.FieldPath 10891 } 10892 10893 var _ TimeSeriesSelector_FieldPath = (*TimeSeriesSelector_FieldSubPath)(nil) 10894 10895 func (fps *TimeSeriesSelector_FieldSubPath) Selector() TimeSeriesSelector_FieldPathSelector { 10896 return fps.selector 10897 } 10898 func (fps *TimeSeriesSelector_FieldSubPath) AsMetricSubPath() (MetricSelector_FieldPath, bool) { 10899 res, ok := fps.subPath.(MetricSelector_FieldPath) 10900 return res, ok 10901 } 10902 func (fps *TimeSeriesSelector_FieldSubPath) AsResourceSubPath() (MonitoredResourceSelector_FieldPath, bool) { 10903 res, ok := fps.subPath.(MonitoredResourceSelector_FieldPath) 10904 return res, ok 10905 } 10906 10907 // String returns path representation in proto convention 10908 func (fps *TimeSeriesSelector_FieldSubPath) String() string { 10909 return fps.selector.String() + "." + fps.subPath.String() 10910 } 10911 10912 // JSONString returns path representation is JSON convention 10913 func (fps *TimeSeriesSelector_FieldSubPath) JSONString() string { 10914 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 10915 } 10916 10917 // Get returns all values pointed by selected field from source TimeSeriesSelector 10918 func (fps *TimeSeriesSelector_FieldSubPath) Get(source *TimeSeriesSelector) (values []interface{}) { 10919 switch fps.selector { 10920 case TimeSeriesSelector_FieldPathSelectorMetric: 10921 values = append(values, fps.subPath.GetRaw(source.GetMetric())...) 10922 case TimeSeriesSelector_FieldPathSelectorResource: 10923 values = append(values, fps.subPath.GetRaw(source.GetResource())...) 10924 default: 10925 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fps.selector)) 10926 } 10927 return 10928 } 10929 10930 func (fps *TimeSeriesSelector_FieldSubPath) GetRaw(source proto.Message) []interface{} { 10931 return fps.Get(source.(*TimeSeriesSelector)) 10932 } 10933 10934 // GetSingle returns value of selected field from source TimeSeriesSelector 10935 func (fps *TimeSeriesSelector_FieldSubPath) GetSingle(source *TimeSeriesSelector) (interface{}, bool) { 10936 switch fps.selector { 10937 case TimeSeriesSelector_FieldPathSelectorMetric: 10938 if source.GetMetric() == nil { 10939 return nil, false 10940 } 10941 return fps.subPath.GetSingleRaw(source.GetMetric()) 10942 case TimeSeriesSelector_FieldPathSelectorResource: 10943 if source.GetResource() == nil { 10944 return nil, false 10945 } 10946 return fps.subPath.GetSingleRaw(source.GetResource()) 10947 default: 10948 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fps.selector)) 10949 } 10950 } 10951 10952 func (fps *TimeSeriesSelector_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 10953 return fps.GetSingle(source.(*TimeSeriesSelector)) 10954 } 10955 10956 // GetDefault returns a default value of the field type 10957 func (fps *TimeSeriesSelector_FieldSubPath) GetDefault() interface{} { 10958 return fps.subPath.GetDefault() 10959 } 10960 10961 func (fps *TimeSeriesSelector_FieldSubPath) ClearValue(item *TimeSeriesSelector) { 10962 if item != nil { 10963 switch fps.selector { 10964 case TimeSeriesSelector_FieldPathSelectorMetric: 10965 fps.subPath.ClearValueRaw(item.Metric) 10966 case TimeSeriesSelector_FieldPathSelectorResource: 10967 fps.subPath.ClearValueRaw(item.Resource) 10968 default: 10969 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fps.selector)) 10970 } 10971 } 10972 } 10973 10974 func (fps *TimeSeriesSelector_FieldSubPath) ClearValueRaw(item proto.Message) { 10975 fps.ClearValue(item.(*TimeSeriesSelector)) 10976 } 10977 10978 // IsLeaf - whether field path is holds simple value 10979 func (fps *TimeSeriesSelector_FieldSubPath) IsLeaf() bool { 10980 return fps.subPath.IsLeaf() 10981 } 10982 10983 func (fps *TimeSeriesSelector_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 10984 iPaths := []gotenobject.FieldPath{&TimeSeriesSelector_FieldTerminalPath{selector: fps.selector}} 10985 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 10986 return iPaths 10987 } 10988 10989 func (fps *TimeSeriesSelector_FieldSubPath) WithIValue(value interface{}) TimeSeriesSelector_FieldPathValue { 10990 return &TimeSeriesSelector_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 10991 } 10992 10993 func (fps *TimeSeriesSelector_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 10994 return fps.WithIValue(value) 10995 } 10996 10997 func (fps *TimeSeriesSelector_FieldSubPath) WithIArrayOfValues(values interface{}) TimeSeriesSelector_FieldPathArrayOfValues { 10998 return &TimeSeriesSelector_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 10999 } 11000 11001 func (fps *TimeSeriesSelector_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 11002 return fps.WithIArrayOfValues(values) 11003 } 11004 11005 func (fps *TimeSeriesSelector_FieldSubPath) WithIArrayItemValue(value interface{}) TimeSeriesSelector_FieldPathArrayItemValue { 11006 return &TimeSeriesSelector_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 11007 } 11008 11009 func (fps *TimeSeriesSelector_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 11010 return fps.WithIArrayItemValue(value) 11011 } 11012 11013 // TimeSeriesSelector_FieldPathValue allows storing values for TimeSeriesSelector fields according to their type 11014 type TimeSeriesSelector_FieldPathValue interface { 11015 TimeSeriesSelector_FieldPath 11016 gotenobject.FieldPathValue 11017 SetTo(target **TimeSeriesSelector) 11018 CompareWith(*TimeSeriesSelector) (cmp int, comparable bool) 11019 } 11020 11021 func ParseTimeSeriesSelector_FieldPathValue(pathStr, valueStr string) (TimeSeriesSelector_FieldPathValue, error) { 11022 fp, err := ParseTimeSeriesSelector_FieldPath(pathStr) 11023 if err != nil { 11024 return nil, err 11025 } 11026 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 11027 if err != nil { 11028 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeSeriesSelector field path value from %s: %v", valueStr, err) 11029 } 11030 return fpv.(TimeSeriesSelector_FieldPathValue), nil 11031 } 11032 11033 func MustParseTimeSeriesSelector_FieldPathValue(pathStr, valueStr string) TimeSeriesSelector_FieldPathValue { 11034 fpv, err := ParseTimeSeriesSelector_FieldPathValue(pathStr, valueStr) 11035 if err != nil { 11036 panic(err) 11037 } 11038 return fpv 11039 } 11040 11041 type TimeSeriesSelector_FieldTerminalPathValue struct { 11042 TimeSeriesSelector_FieldTerminalPath 11043 value interface{} 11044 } 11045 11046 var _ TimeSeriesSelector_FieldPathValue = (*TimeSeriesSelector_FieldTerminalPathValue)(nil) 11047 11048 // GetRawValue returns raw value stored under selected path for 'TimeSeriesSelector' as interface{} 11049 func (fpv *TimeSeriesSelector_FieldTerminalPathValue) GetRawValue() interface{} { 11050 return fpv.value 11051 } 11052 func (fpv *TimeSeriesSelector_FieldTerminalPathValue) AsMetricValue() (*MetricSelector, bool) { 11053 res, ok := fpv.value.(*MetricSelector) 11054 return res, ok 11055 } 11056 func (fpv *TimeSeriesSelector_FieldTerminalPathValue) AsResourceValue() (*MonitoredResourceSelector, bool) { 11057 res, ok := fpv.value.(*MonitoredResourceSelector) 11058 return res, ok 11059 } 11060 11061 // SetTo stores value for selected field for object TimeSeriesSelector 11062 func (fpv *TimeSeriesSelector_FieldTerminalPathValue) SetTo(target **TimeSeriesSelector) { 11063 if *target == nil { 11064 *target = new(TimeSeriesSelector) 11065 } 11066 switch fpv.selector { 11067 case TimeSeriesSelector_FieldPathSelectorMetric: 11068 (*target).Metric = fpv.value.(*MetricSelector) 11069 case TimeSeriesSelector_FieldPathSelectorResource: 11070 (*target).Resource = fpv.value.(*MonitoredResourceSelector) 11071 default: 11072 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fpv.selector)) 11073 } 11074 } 11075 11076 func (fpv *TimeSeriesSelector_FieldTerminalPathValue) SetToRaw(target proto.Message) { 11077 typedObject := target.(*TimeSeriesSelector) 11078 fpv.SetTo(&typedObject) 11079 } 11080 11081 // CompareWith compares value in the 'TimeSeriesSelector_FieldTerminalPathValue' with the value under path in 'TimeSeriesSelector'. 11082 func (fpv *TimeSeriesSelector_FieldTerminalPathValue) CompareWith(source *TimeSeriesSelector) (int, bool) { 11083 switch fpv.selector { 11084 case TimeSeriesSelector_FieldPathSelectorMetric: 11085 return 0, false 11086 case TimeSeriesSelector_FieldPathSelectorResource: 11087 return 0, false 11088 default: 11089 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fpv.selector)) 11090 } 11091 } 11092 11093 func (fpv *TimeSeriesSelector_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 11094 return fpv.CompareWith(source.(*TimeSeriesSelector)) 11095 } 11096 11097 type TimeSeriesSelector_FieldSubPathValue struct { 11098 TimeSeriesSelector_FieldPath 11099 subPathValue gotenobject.FieldPathValue 11100 } 11101 11102 var _ TimeSeriesSelector_FieldPathValue = (*TimeSeriesSelector_FieldSubPathValue)(nil) 11103 11104 func (fpvs *TimeSeriesSelector_FieldSubPathValue) AsMetricPathValue() (MetricSelector_FieldPathValue, bool) { 11105 res, ok := fpvs.subPathValue.(MetricSelector_FieldPathValue) 11106 return res, ok 11107 } 11108 func (fpvs *TimeSeriesSelector_FieldSubPathValue) AsResourcePathValue() (MonitoredResourceSelector_FieldPathValue, bool) { 11109 res, ok := fpvs.subPathValue.(MonitoredResourceSelector_FieldPathValue) 11110 return res, ok 11111 } 11112 11113 func (fpvs *TimeSeriesSelector_FieldSubPathValue) SetTo(target **TimeSeriesSelector) { 11114 if *target == nil { 11115 *target = new(TimeSeriesSelector) 11116 } 11117 switch fpvs.Selector() { 11118 case TimeSeriesSelector_FieldPathSelectorMetric: 11119 fpvs.subPathValue.(MetricSelector_FieldPathValue).SetTo(&(*target).Metric) 11120 case TimeSeriesSelector_FieldPathSelectorResource: 11121 fpvs.subPathValue.(MonitoredResourceSelector_FieldPathValue).SetTo(&(*target).Resource) 11122 default: 11123 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fpvs.Selector())) 11124 } 11125 } 11126 11127 func (fpvs *TimeSeriesSelector_FieldSubPathValue) SetToRaw(target proto.Message) { 11128 typedObject := target.(*TimeSeriesSelector) 11129 fpvs.SetTo(&typedObject) 11130 } 11131 11132 func (fpvs *TimeSeriesSelector_FieldSubPathValue) GetRawValue() interface{} { 11133 return fpvs.subPathValue.GetRawValue() 11134 } 11135 11136 func (fpvs *TimeSeriesSelector_FieldSubPathValue) CompareWith(source *TimeSeriesSelector) (int, bool) { 11137 switch fpvs.Selector() { 11138 case TimeSeriesSelector_FieldPathSelectorMetric: 11139 return fpvs.subPathValue.(MetricSelector_FieldPathValue).CompareWith(source.GetMetric()) 11140 case TimeSeriesSelector_FieldPathSelectorResource: 11141 return fpvs.subPathValue.(MonitoredResourceSelector_FieldPathValue).CompareWith(source.GetResource()) 11142 default: 11143 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fpvs.Selector())) 11144 } 11145 } 11146 11147 func (fpvs *TimeSeriesSelector_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 11148 return fpvs.CompareWith(source.(*TimeSeriesSelector)) 11149 } 11150 11151 // TimeSeriesSelector_FieldPathArrayItemValue allows storing single item in Path-specific values for TimeSeriesSelector according to their type 11152 // Present only for array (repeated) types. 11153 type TimeSeriesSelector_FieldPathArrayItemValue interface { 11154 gotenobject.FieldPathArrayItemValue 11155 TimeSeriesSelector_FieldPath 11156 ContainsValue(*TimeSeriesSelector) bool 11157 } 11158 11159 // ParseTimeSeriesSelector_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 11160 func ParseTimeSeriesSelector_FieldPathArrayItemValue(pathStr, valueStr string) (TimeSeriesSelector_FieldPathArrayItemValue, error) { 11161 fp, err := ParseTimeSeriesSelector_FieldPath(pathStr) 11162 if err != nil { 11163 return nil, err 11164 } 11165 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 11166 if err != nil { 11167 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeSeriesSelector field path array item value from %s: %v", valueStr, err) 11168 } 11169 return fpaiv.(TimeSeriesSelector_FieldPathArrayItemValue), nil 11170 } 11171 11172 func MustParseTimeSeriesSelector_FieldPathArrayItemValue(pathStr, valueStr string) TimeSeriesSelector_FieldPathArrayItemValue { 11173 fpaiv, err := ParseTimeSeriesSelector_FieldPathArrayItemValue(pathStr, valueStr) 11174 if err != nil { 11175 panic(err) 11176 } 11177 return fpaiv 11178 } 11179 11180 type TimeSeriesSelector_FieldTerminalPathArrayItemValue struct { 11181 TimeSeriesSelector_FieldTerminalPath 11182 value interface{} 11183 } 11184 11185 var _ TimeSeriesSelector_FieldPathArrayItemValue = (*TimeSeriesSelector_FieldTerminalPathArrayItemValue)(nil) 11186 11187 // GetRawValue returns stored element value for array in object TimeSeriesSelector as interface{} 11188 func (fpaiv *TimeSeriesSelector_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 11189 return fpaiv.value 11190 } 11191 11192 func (fpaiv *TimeSeriesSelector_FieldTerminalPathArrayItemValue) GetSingle(source *TimeSeriesSelector) (interface{}, bool) { 11193 return nil, false 11194 } 11195 11196 func (fpaiv *TimeSeriesSelector_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 11197 return fpaiv.GetSingle(source.(*TimeSeriesSelector)) 11198 } 11199 11200 // Contains returns a boolean indicating if value that is being held is present in given 'TimeSeriesSelector' 11201 func (fpaiv *TimeSeriesSelector_FieldTerminalPathArrayItemValue) ContainsValue(source *TimeSeriesSelector) bool { 11202 slice := fpaiv.TimeSeriesSelector_FieldTerminalPath.Get(source) 11203 for _, v := range slice { 11204 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 11205 if proto.Equal(asProtoMsg, v.(proto.Message)) { 11206 return true 11207 } 11208 } else if reflect.DeepEqual(v, fpaiv.value) { 11209 return true 11210 } 11211 } 11212 return false 11213 } 11214 11215 type TimeSeriesSelector_FieldSubPathArrayItemValue struct { 11216 TimeSeriesSelector_FieldPath 11217 subPathItemValue gotenobject.FieldPathArrayItemValue 11218 } 11219 11220 // GetRawValue returns stored array item value 11221 func (fpaivs *TimeSeriesSelector_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 11222 return fpaivs.subPathItemValue.GetRawItemValue() 11223 } 11224 func (fpaivs *TimeSeriesSelector_FieldSubPathArrayItemValue) AsMetricPathItemValue() (MetricSelector_FieldPathArrayItemValue, bool) { 11225 res, ok := fpaivs.subPathItemValue.(MetricSelector_FieldPathArrayItemValue) 11226 return res, ok 11227 } 11228 func (fpaivs *TimeSeriesSelector_FieldSubPathArrayItemValue) AsResourcePathItemValue() (MonitoredResourceSelector_FieldPathArrayItemValue, bool) { 11229 res, ok := fpaivs.subPathItemValue.(MonitoredResourceSelector_FieldPathArrayItemValue) 11230 return res, ok 11231 } 11232 11233 // Contains returns a boolean indicating if value that is being held is present in given 'TimeSeriesSelector' 11234 func (fpaivs *TimeSeriesSelector_FieldSubPathArrayItemValue) ContainsValue(source *TimeSeriesSelector) bool { 11235 switch fpaivs.Selector() { 11236 case TimeSeriesSelector_FieldPathSelectorMetric: 11237 return fpaivs.subPathItemValue.(MetricSelector_FieldPathArrayItemValue).ContainsValue(source.GetMetric()) 11238 case TimeSeriesSelector_FieldPathSelectorResource: 11239 return fpaivs.subPathItemValue.(MonitoredResourceSelector_FieldPathArrayItemValue).ContainsValue(source.GetResource()) 11240 default: 11241 panic(fmt.Sprintf("Invalid selector for TimeSeriesSelector: %d", fpaivs.Selector())) 11242 } 11243 } 11244 11245 // TimeSeriesSelector_FieldPathArrayOfValues allows storing slice of values for TimeSeriesSelector fields according to their type 11246 type TimeSeriesSelector_FieldPathArrayOfValues interface { 11247 gotenobject.FieldPathArrayOfValues 11248 TimeSeriesSelector_FieldPath 11249 } 11250 11251 func ParseTimeSeriesSelector_FieldPathArrayOfValues(pathStr, valuesStr string) (TimeSeriesSelector_FieldPathArrayOfValues, error) { 11252 fp, err := ParseTimeSeriesSelector_FieldPath(pathStr) 11253 if err != nil { 11254 return nil, err 11255 } 11256 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 11257 if err != nil { 11258 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeSeriesSelector field path array of values from %s: %v", valuesStr, err) 11259 } 11260 return fpaov.(TimeSeriesSelector_FieldPathArrayOfValues), nil 11261 } 11262 11263 func MustParseTimeSeriesSelector_FieldPathArrayOfValues(pathStr, valuesStr string) TimeSeriesSelector_FieldPathArrayOfValues { 11264 fpaov, err := ParseTimeSeriesSelector_FieldPathArrayOfValues(pathStr, valuesStr) 11265 if err != nil { 11266 panic(err) 11267 } 11268 return fpaov 11269 } 11270 11271 type TimeSeriesSelector_FieldTerminalPathArrayOfValues struct { 11272 TimeSeriesSelector_FieldTerminalPath 11273 values interface{} 11274 } 11275 11276 var _ TimeSeriesSelector_FieldPathArrayOfValues = (*TimeSeriesSelector_FieldTerminalPathArrayOfValues)(nil) 11277 11278 func (fpaov *TimeSeriesSelector_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 11279 switch fpaov.selector { 11280 case TimeSeriesSelector_FieldPathSelectorMetric: 11281 for _, v := range fpaov.values.([]*MetricSelector) { 11282 values = append(values, v) 11283 } 11284 case TimeSeriesSelector_FieldPathSelectorResource: 11285 for _, v := range fpaov.values.([]*MonitoredResourceSelector) { 11286 values = append(values, v) 11287 } 11288 } 11289 return 11290 } 11291 func (fpaov *TimeSeriesSelector_FieldTerminalPathArrayOfValues) AsMetricArrayOfValues() ([]*MetricSelector, bool) { 11292 res, ok := fpaov.values.([]*MetricSelector) 11293 return res, ok 11294 } 11295 func (fpaov *TimeSeriesSelector_FieldTerminalPathArrayOfValues) AsResourceArrayOfValues() ([]*MonitoredResourceSelector, bool) { 11296 res, ok := fpaov.values.([]*MonitoredResourceSelector) 11297 return res, ok 11298 } 11299 11300 type TimeSeriesSelector_FieldSubPathArrayOfValues struct { 11301 TimeSeriesSelector_FieldPath 11302 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 11303 } 11304 11305 var _ TimeSeriesSelector_FieldPathArrayOfValues = (*TimeSeriesSelector_FieldSubPathArrayOfValues)(nil) 11306 11307 func (fpsaov *TimeSeriesSelector_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 11308 return fpsaov.subPathArrayOfValues.GetRawValues() 11309 } 11310 func (fpsaov *TimeSeriesSelector_FieldSubPathArrayOfValues) AsMetricPathArrayOfValues() (MetricSelector_FieldPathArrayOfValues, bool) { 11311 res, ok := fpsaov.subPathArrayOfValues.(MetricSelector_FieldPathArrayOfValues) 11312 return res, ok 11313 } 11314 func (fpsaov *TimeSeriesSelector_FieldSubPathArrayOfValues) AsResourcePathArrayOfValues() (MonitoredResourceSelector_FieldPathArrayOfValues, bool) { 11315 res, ok := fpsaov.subPathArrayOfValues.(MonitoredResourceSelector_FieldPathArrayOfValues) 11316 return res, ok 11317 }