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