github.com/cloudwan/edgelq-sdk@v1.15.4/monitoring/resources/v4/alert/alert.pb.fieldpath.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/monitoring/proto/v4/alert.proto 3 // DO NOT EDIT!!! 4 5 package alert 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 alerting_condition "github.com/cloudwan/edgelq-sdk/monitoring/resources/v4/alerting_condition" 27 common "github.com/cloudwan/edgelq-sdk/monitoring/resources/v4/common" 28 meta "github.com/cloudwan/goten-sdk/types/meta" 29 ) 30 31 // ensure the imports are used 32 var ( 33 _ = new(json.Marshaler) 34 _ = new(fmt.Stringer) 35 _ = reflect.DeepEqual 36 _ = strings.Builder{} 37 _ = time.Second 38 39 _ = strcase.ToLowerCamel 40 _ = codes.NotFound 41 _ = status.Status{} 42 _ = protojson.UnmarshalOptions{} 43 _ = new(proto.Message) 44 _ = protoregistry.GlobalTypes 45 46 _ = new(gotenobject.FieldPath) 47 ) 48 49 // make sure we're using proto imports 50 var ( 51 _ = &alerting_condition.AlertingCondition{} 52 _ = &common.LabelDescriptor{} 53 _ = &meta.Meta{} 54 ) 55 56 // FieldPath provides implementation to handle 57 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 58 type Alert_FieldPath interface { 59 gotenobject.FieldPath 60 Selector() Alert_FieldPathSelector 61 Get(source *Alert) []interface{} 62 GetSingle(source *Alert) (interface{}, bool) 63 ClearValue(item *Alert) 64 65 // Those methods build corresponding Alert_FieldPathValue 66 // (or array of values) and holds passed value. Panics if injected type is incorrect. 67 WithIValue(value interface{}) Alert_FieldPathValue 68 WithIArrayOfValues(values interface{}) Alert_FieldPathArrayOfValues 69 WithIArrayItemValue(value interface{}) Alert_FieldPathArrayItemValue 70 } 71 72 type Alert_FieldPathSelector int32 73 74 const ( 75 Alert_FieldPathSelectorName Alert_FieldPathSelector = 0 76 Alert_FieldPathSelectorMetadata Alert_FieldPathSelector = 1 77 Alert_FieldPathSelectorDisplayName Alert_FieldPathSelector = 2 78 Alert_FieldPathSelectorInfo Alert_FieldPathSelector = 3 79 Alert_FieldPathSelectorState Alert_FieldPathSelector = 4 80 ) 81 82 func (s Alert_FieldPathSelector) String() string { 83 switch s { 84 case Alert_FieldPathSelectorName: 85 return "name" 86 case Alert_FieldPathSelectorMetadata: 87 return "metadata" 88 case Alert_FieldPathSelectorDisplayName: 89 return "display_name" 90 case Alert_FieldPathSelectorInfo: 91 return "info" 92 case Alert_FieldPathSelectorState: 93 return "state" 94 default: 95 panic(fmt.Sprintf("Invalid selector for Alert: %d", s)) 96 } 97 } 98 99 func BuildAlert_FieldPath(fp gotenobject.RawFieldPath) (Alert_FieldPath, error) { 100 if len(fp) == 0 { 101 return nil, status.Error(codes.InvalidArgument, "empty field path for object Alert") 102 } 103 if len(fp) == 1 { 104 switch fp[0] { 105 case "name": 106 return &Alert_FieldTerminalPath{selector: Alert_FieldPathSelectorName}, nil 107 case "metadata": 108 return &Alert_FieldTerminalPath{selector: Alert_FieldPathSelectorMetadata}, nil 109 case "display_name", "displayName", "display-name": 110 return &Alert_FieldTerminalPath{selector: Alert_FieldPathSelectorDisplayName}, nil 111 case "info": 112 return &Alert_FieldTerminalPath{selector: Alert_FieldPathSelectorInfo}, nil 113 case "state": 114 return &Alert_FieldTerminalPath{selector: Alert_FieldPathSelectorState}, nil 115 } 116 } else { 117 switch fp[0] { 118 case "metadata": 119 if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil { 120 return nil, err 121 } else { 122 return &Alert_FieldSubPath{selector: Alert_FieldPathSelectorMetadata, subPath: subpath}, nil 123 } 124 case "info": 125 if subpath, err := BuildAlertInfo_FieldPath(fp[1:]); err != nil { 126 return nil, err 127 } else { 128 return &Alert_FieldSubPath{selector: Alert_FieldPathSelectorInfo, subPath: subpath}, nil 129 } 130 case "state": 131 if subpath, err := BuildAlertState_FieldPath(fp[1:]); err != nil { 132 return nil, err 133 } else { 134 return &Alert_FieldSubPath{selector: Alert_FieldPathSelectorState, subPath: subpath}, nil 135 } 136 } 137 } 138 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Alert", fp) 139 } 140 141 func ParseAlert_FieldPath(rawField string) (Alert_FieldPath, error) { 142 fp, err := gotenobject.ParseRawFieldPath(rawField) 143 if err != nil { 144 return nil, err 145 } 146 return BuildAlert_FieldPath(fp) 147 } 148 149 func MustParseAlert_FieldPath(rawField string) Alert_FieldPath { 150 fp, err := ParseAlert_FieldPath(rawField) 151 if err != nil { 152 panic(err) 153 } 154 return fp 155 } 156 157 type Alert_FieldTerminalPath struct { 158 selector Alert_FieldPathSelector 159 } 160 161 var _ Alert_FieldPath = (*Alert_FieldTerminalPath)(nil) 162 163 func (fp *Alert_FieldTerminalPath) Selector() Alert_FieldPathSelector { 164 return fp.selector 165 } 166 167 // String returns path representation in proto convention 168 func (fp *Alert_FieldTerminalPath) String() string { 169 return fp.selector.String() 170 } 171 172 // JSONString returns path representation is JSON convention 173 func (fp *Alert_FieldTerminalPath) JSONString() string { 174 return strcase.ToLowerCamel(fp.String()) 175 } 176 177 // Get returns all values pointed by specific field from source Alert 178 func (fp *Alert_FieldTerminalPath) Get(source *Alert) (values []interface{}) { 179 if source != nil { 180 switch fp.selector { 181 case Alert_FieldPathSelectorName: 182 if source.Name != nil { 183 values = append(values, source.Name) 184 } 185 case Alert_FieldPathSelectorMetadata: 186 if source.Metadata != nil { 187 values = append(values, source.Metadata) 188 } 189 case Alert_FieldPathSelectorDisplayName: 190 values = append(values, source.DisplayName) 191 case Alert_FieldPathSelectorInfo: 192 if source.Info != nil { 193 values = append(values, source.Info) 194 } 195 case Alert_FieldPathSelectorState: 196 if source.State != nil { 197 values = append(values, source.State) 198 } 199 default: 200 panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector)) 201 } 202 } 203 return 204 } 205 206 func (fp *Alert_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 207 return fp.Get(source.(*Alert)) 208 } 209 210 // GetSingle returns value pointed by specific field of from source Alert 211 func (fp *Alert_FieldTerminalPath) GetSingle(source *Alert) (interface{}, bool) { 212 switch fp.selector { 213 case Alert_FieldPathSelectorName: 214 res := source.GetName() 215 return res, res != nil 216 case Alert_FieldPathSelectorMetadata: 217 res := source.GetMetadata() 218 return res, res != nil 219 case Alert_FieldPathSelectorDisplayName: 220 return source.GetDisplayName(), source != nil 221 case Alert_FieldPathSelectorInfo: 222 res := source.GetInfo() 223 return res, res != nil 224 case Alert_FieldPathSelectorState: 225 res := source.GetState() 226 return res, res != nil 227 default: 228 panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector)) 229 } 230 } 231 232 func (fp *Alert_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 233 return fp.GetSingle(source.(*Alert)) 234 } 235 236 // GetDefault returns a default value of the field type 237 func (fp *Alert_FieldTerminalPath) GetDefault() interface{} { 238 switch fp.selector { 239 case Alert_FieldPathSelectorName: 240 return (*Name)(nil) 241 case Alert_FieldPathSelectorMetadata: 242 return (*meta.Meta)(nil) 243 case Alert_FieldPathSelectorDisplayName: 244 return "" 245 case Alert_FieldPathSelectorInfo: 246 return (*Alert_Info)(nil) 247 case Alert_FieldPathSelectorState: 248 return (*Alert_State)(nil) 249 default: 250 panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector)) 251 } 252 } 253 254 func (fp *Alert_FieldTerminalPath) ClearValue(item *Alert) { 255 if item != nil { 256 switch fp.selector { 257 case Alert_FieldPathSelectorName: 258 item.Name = nil 259 case Alert_FieldPathSelectorMetadata: 260 item.Metadata = nil 261 case Alert_FieldPathSelectorDisplayName: 262 item.DisplayName = "" 263 case Alert_FieldPathSelectorInfo: 264 item.Info = nil 265 case Alert_FieldPathSelectorState: 266 item.State = nil 267 default: 268 panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector)) 269 } 270 } 271 } 272 273 func (fp *Alert_FieldTerminalPath) ClearValueRaw(item proto.Message) { 274 fp.ClearValue(item.(*Alert)) 275 } 276 277 // IsLeaf - whether field path is holds simple value 278 func (fp *Alert_FieldTerminalPath) IsLeaf() bool { 279 return fp.selector == Alert_FieldPathSelectorName || 280 fp.selector == Alert_FieldPathSelectorDisplayName 281 } 282 283 func (fp *Alert_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 284 return []gotenobject.FieldPath{fp} 285 } 286 287 func (fp *Alert_FieldTerminalPath) WithIValue(value interface{}) Alert_FieldPathValue { 288 switch fp.selector { 289 case Alert_FieldPathSelectorName: 290 return &Alert_FieldTerminalPathValue{Alert_FieldTerminalPath: *fp, value: value.(*Name)} 291 case Alert_FieldPathSelectorMetadata: 292 return &Alert_FieldTerminalPathValue{Alert_FieldTerminalPath: *fp, value: value.(*meta.Meta)} 293 case Alert_FieldPathSelectorDisplayName: 294 return &Alert_FieldTerminalPathValue{Alert_FieldTerminalPath: *fp, value: value.(string)} 295 case Alert_FieldPathSelectorInfo: 296 return &Alert_FieldTerminalPathValue{Alert_FieldTerminalPath: *fp, value: value.(*Alert_Info)} 297 case Alert_FieldPathSelectorState: 298 return &Alert_FieldTerminalPathValue{Alert_FieldTerminalPath: *fp, value: value.(*Alert_State)} 299 default: 300 panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector)) 301 } 302 } 303 304 func (fp *Alert_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 305 return fp.WithIValue(value) 306 } 307 308 func (fp *Alert_FieldTerminalPath) WithIArrayOfValues(values interface{}) Alert_FieldPathArrayOfValues { 309 fpaov := &Alert_FieldTerminalPathArrayOfValues{Alert_FieldTerminalPath: *fp} 310 switch fp.selector { 311 case Alert_FieldPathSelectorName: 312 return &Alert_FieldTerminalPathArrayOfValues{Alert_FieldTerminalPath: *fp, values: values.([]*Name)} 313 case Alert_FieldPathSelectorMetadata: 314 return &Alert_FieldTerminalPathArrayOfValues{Alert_FieldTerminalPath: *fp, values: values.([]*meta.Meta)} 315 case Alert_FieldPathSelectorDisplayName: 316 return &Alert_FieldTerminalPathArrayOfValues{Alert_FieldTerminalPath: *fp, values: values.([]string)} 317 case Alert_FieldPathSelectorInfo: 318 return &Alert_FieldTerminalPathArrayOfValues{Alert_FieldTerminalPath: *fp, values: values.([]*Alert_Info)} 319 case Alert_FieldPathSelectorState: 320 return &Alert_FieldTerminalPathArrayOfValues{Alert_FieldTerminalPath: *fp, values: values.([]*Alert_State)} 321 default: 322 panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector)) 323 } 324 return fpaov 325 } 326 327 func (fp *Alert_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 328 return fp.WithIArrayOfValues(values) 329 } 330 331 func (fp *Alert_FieldTerminalPath) WithIArrayItemValue(value interface{}) Alert_FieldPathArrayItemValue { 332 switch fp.selector { 333 default: 334 panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector)) 335 } 336 } 337 338 func (fp *Alert_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 339 return fp.WithIArrayItemValue(value) 340 } 341 342 type Alert_FieldSubPath struct { 343 selector Alert_FieldPathSelector 344 subPath gotenobject.FieldPath 345 } 346 347 var _ Alert_FieldPath = (*Alert_FieldSubPath)(nil) 348 349 func (fps *Alert_FieldSubPath) Selector() Alert_FieldPathSelector { 350 return fps.selector 351 } 352 func (fps *Alert_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) { 353 res, ok := fps.subPath.(meta.Meta_FieldPath) 354 return res, ok 355 } 356 func (fps *Alert_FieldSubPath) AsInfoSubPath() (AlertInfo_FieldPath, bool) { 357 res, ok := fps.subPath.(AlertInfo_FieldPath) 358 return res, ok 359 } 360 func (fps *Alert_FieldSubPath) AsStateSubPath() (AlertState_FieldPath, bool) { 361 res, ok := fps.subPath.(AlertState_FieldPath) 362 return res, ok 363 } 364 365 // String returns path representation in proto convention 366 func (fps *Alert_FieldSubPath) String() string { 367 return fps.selector.String() + "." + fps.subPath.String() 368 } 369 370 // JSONString returns path representation is JSON convention 371 func (fps *Alert_FieldSubPath) JSONString() string { 372 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 373 } 374 375 // Get returns all values pointed by selected field from source Alert 376 func (fps *Alert_FieldSubPath) Get(source *Alert) (values []interface{}) { 377 switch fps.selector { 378 case Alert_FieldPathSelectorMetadata: 379 values = append(values, fps.subPath.GetRaw(source.GetMetadata())...) 380 case Alert_FieldPathSelectorInfo: 381 values = append(values, fps.subPath.GetRaw(source.GetInfo())...) 382 case Alert_FieldPathSelectorState: 383 values = append(values, fps.subPath.GetRaw(source.GetState())...) 384 default: 385 panic(fmt.Sprintf("Invalid selector for Alert: %d", fps.selector)) 386 } 387 return 388 } 389 390 func (fps *Alert_FieldSubPath) GetRaw(source proto.Message) []interface{} { 391 return fps.Get(source.(*Alert)) 392 } 393 394 // GetSingle returns value of selected field from source Alert 395 func (fps *Alert_FieldSubPath) GetSingle(source *Alert) (interface{}, bool) { 396 switch fps.selector { 397 case Alert_FieldPathSelectorMetadata: 398 if source.GetMetadata() == nil { 399 return nil, false 400 } 401 return fps.subPath.GetSingleRaw(source.GetMetadata()) 402 case Alert_FieldPathSelectorInfo: 403 if source.GetInfo() == nil { 404 return nil, false 405 } 406 return fps.subPath.GetSingleRaw(source.GetInfo()) 407 case Alert_FieldPathSelectorState: 408 if source.GetState() == nil { 409 return nil, false 410 } 411 return fps.subPath.GetSingleRaw(source.GetState()) 412 default: 413 panic(fmt.Sprintf("Invalid selector for Alert: %d", fps.selector)) 414 } 415 } 416 417 func (fps *Alert_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 418 return fps.GetSingle(source.(*Alert)) 419 } 420 421 // GetDefault returns a default value of the field type 422 func (fps *Alert_FieldSubPath) GetDefault() interface{} { 423 return fps.subPath.GetDefault() 424 } 425 426 func (fps *Alert_FieldSubPath) ClearValue(item *Alert) { 427 if item != nil { 428 switch fps.selector { 429 case Alert_FieldPathSelectorMetadata: 430 fps.subPath.ClearValueRaw(item.Metadata) 431 case Alert_FieldPathSelectorInfo: 432 fps.subPath.ClearValueRaw(item.Info) 433 case Alert_FieldPathSelectorState: 434 fps.subPath.ClearValueRaw(item.State) 435 default: 436 panic(fmt.Sprintf("Invalid selector for Alert: %d", fps.selector)) 437 } 438 } 439 } 440 441 func (fps *Alert_FieldSubPath) ClearValueRaw(item proto.Message) { 442 fps.ClearValue(item.(*Alert)) 443 } 444 445 // IsLeaf - whether field path is holds simple value 446 func (fps *Alert_FieldSubPath) IsLeaf() bool { 447 return fps.subPath.IsLeaf() 448 } 449 450 func (fps *Alert_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 451 iPaths := []gotenobject.FieldPath{&Alert_FieldTerminalPath{selector: fps.selector}} 452 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 453 return iPaths 454 } 455 456 func (fps *Alert_FieldSubPath) WithIValue(value interface{}) Alert_FieldPathValue { 457 return &Alert_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 458 } 459 460 func (fps *Alert_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 461 return fps.WithIValue(value) 462 } 463 464 func (fps *Alert_FieldSubPath) WithIArrayOfValues(values interface{}) Alert_FieldPathArrayOfValues { 465 return &Alert_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 466 } 467 468 func (fps *Alert_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 469 return fps.WithIArrayOfValues(values) 470 } 471 472 func (fps *Alert_FieldSubPath) WithIArrayItemValue(value interface{}) Alert_FieldPathArrayItemValue { 473 return &Alert_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 474 } 475 476 func (fps *Alert_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 477 return fps.WithIArrayItemValue(value) 478 } 479 480 // Alert_FieldPathValue allows storing values for Alert fields according to their type 481 type Alert_FieldPathValue interface { 482 Alert_FieldPath 483 gotenobject.FieldPathValue 484 SetTo(target **Alert) 485 CompareWith(*Alert) (cmp int, comparable bool) 486 } 487 488 func ParseAlert_FieldPathValue(pathStr, valueStr string) (Alert_FieldPathValue, error) { 489 fp, err := ParseAlert_FieldPath(pathStr) 490 if err != nil { 491 return nil, err 492 } 493 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 494 if err != nil { 495 return nil, status.Errorf(codes.InvalidArgument, "error parsing Alert field path value from %s: %v", valueStr, err) 496 } 497 return fpv.(Alert_FieldPathValue), nil 498 } 499 500 func MustParseAlert_FieldPathValue(pathStr, valueStr string) Alert_FieldPathValue { 501 fpv, err := ParseAlert_FieldPathValue(pathStr, valueStr) 502 if err != nil { 503 panic(err) 504 } 505 return fpv 506 } 507 508 type Alert_FieldTerminalPathValue struct { 509 Alert_FieldTerminalPath 510 value interface{} 511 } 512 513 var _ Alert_FieldPathValue = (*Alert_FieldTerminalPathValue)(nil) 514 515 // GetRawValue returns raw value stored under selected path for 'Alert' as interface{} 516 func (fpv *Alert_FieldTerminalPathValue) GetRawValue() interface{} { 517 return fpv.value 518 } 519 func (fpv *Alert_FieldTerminalPathValue) AsNameValue() (*Name, bool) { 520 res, ok := fpv.value.(*Name) 521 return res, ok 522 } 523 func (fpv *Alert_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) { 524 res, ok := fpv.value.(*meta.Meta) 525 return res, ok 526 } 527 func (fpv *Alert_FieldTerminalPathValue) AsDisplayNameValue() (string, bool) { 528 res, ok := fpv.value.(string) 529 return res, ok 530 } 531 func (fpv *Alert_FieldTerminalPathValue) AsInfoValue() (*Alert_Info, bool) { 532 res, ok := fpv.value.(*Alert_Info) 533 return res, ok 534 } 535 func (fpv *Alert_FieldTerminalPathValue) AsStateValue() (*Alert_State, bool) { 536 res, ok := fpv.value.(*Alert_State) 537 return res, ok 538 } 539 540 // SetTo stores value for selected field for object Alert 541 func (fpv *Alert_FieldTerminalPathValue) SetTo(target **Alert) { 542 if *target == nil { 543 *target = new(Alert) 544 } 545 switch fpv.selector { 546 case Alert_FieldPathSelectorName: 547 (*target).Name = fpv.value.(*Name) 548 case Alert_FieldPathSelectorMetadata: 549 (*target).Metadata = fpv.value.(*meta.Meta) 550 case Alert_FieldPathSelectorDisplayName: 551 (*target).DisplayName = fpv.value.(string) 552 case Alert_FieldPathSelectorInfo: 553 (*target).Info = fpv.value.(*Alert_Info) 554 case Alert_FieldPathSelectorState: 555 (*target).State = fpv.value.(*Alert_State) 556 default: 557 panic(fmt.Sprintf("Invalid selector for Alert: %d", fpv.selector)) 558 } 559 } 560 561 func (fpv *Alert_FieldTerminalPathValue) SetToRaw(target proto.Message) { 562 typedObject := target.(*Alert) 563 fpv.SetTo(&typedObject) 564 } 565 566 // CompareWith compares value in the 'Alert_FieldTerminalPathValue' with the value under path in 'Alert'. 567 func (fpv *Alert_FieldTerminalPathValue) CompareWith(source *Alert) (int, bool) { 568 switch fpv.selector { 569 case Alert_FieldPathSelectorName: 570 leftValue := fpv.value.(*Name) 571 rightValue := source.GetName() 572 if leftValue == nil { 573 if rightValue != nil { 574 return -1, true 575 } 576 return 0, true 577 } 578 if rightValue == nil { 579 return 1, true 580 } 581 if leftValue.String() == rightValue.String() { 582 return 0, true 583 } else if leftValue.String() < rightValue.String() { 584 return -1, true 585 } else { 586 return 1, true 587 } 588 case Alert_FieldPathSelectorMetadata: 589 return 0, false 590 case Alert_FieldPathSelectorDisplayName: 591 leftValue := fpv.value.(string) 592 rightValue := source.GetDisplayName() 593 if (leftValue) == (rightValue) { 594 return 0, true 595 } else if (leftValue) < (rightValue) { 596 return -1, true 597 } else { 598 return 1, true 599 } 600 case Alert_FieldPathSelectorInfo: 601 return 0, false 602 case Alert_FieldPathSelectorState: 603 return 0, false 604 default: 605 panic(fmt.Sprintf("Invalid selector for Alert: %d", fpv.selector)) 606 } 607 } 608 609 func (fpv *Alert_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 610 return fpv.CompareWith(source.(*Alert)) 611 } 612 613 type Alert_FieldSubPathValue struct { 614 Alert_FieldPath 615 subPathValue gotenobject.FieldPathValue 616 } 617 618 var _ Alert_FieldPathValue = (*Alert_FieldSubPathValue)(nil) 619 620 func (fpvs *Alert_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) { 621 res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue) 622 return res, ok 623 } 624 func (fpvs *Alert_FieldSubPathValue) AsInfoPathValue() (AlertInfo_FieldPathValue, bool) { 625 res, ok := fpvs.subPathValue.(AlertInfo_FieldPathValue) 626 return res, ok 627 } 628 func (fpvs *Alert_FieldSubPathValue) AsStatePathValue() (AlertState_FieldPathValue, bool) { 629 res, ok := fpvs.subPathValue.(AlertState_FieldPathValue) 630 return res, ok 631 } 632 633 func (fpvs *Alert_FieldSubPathValue) SetTo(target **Alert) { 634 if *target == nil { 635 *target = new(Alert) 636 } 637 switch fpvs.Selector() { 638 case Alert_FieldPathSelectorMetadata: 639 fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata) 640 case Alert_FieldPathSelectorInfo: 641 fpvs.subPathValue.(AlertInfo_FieldPathValue).SetTo(&(*target).Info) 642 case Alert_FieldPathSelectorState: 643 fpvs.subPathValue.(AlertState_FieldPathValue).SetTo(&(*target).State) 644 default: 645 panic(fmt.Sprintf("Invalid selector for Alert: %d", fpvs.Selector())) 646 } 647 } 648 649 func (fpvs *Alert_FieldSubPathValue) SetToRaw(target proto.Message) { 650 typedObject := target.(*Alert) 651 fpvs.SetTo(&typedObject) 652 } 653 654 func (fpvs *Alert_FieldSubPathValue) GetRawValue() interface{} { 655 return fpvs.subPathValue.GetRawValue() 656 } 657 658 func (fpvs *Alert_FieldSubPathValue) CompareWith(source *Alert) (int, bool) { 659 switch fpvs.Selector() { 660 case Alert_FieldPathSelectorMetadata: 661 return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata()) 662 case Alert_FieldPathSelectorInfo: 663 return fpvs.subPathValue.(AlertInfo_FieldPathValue).CompareWith(source.GetInfo()) 664 case Alert_FieldPathSelectorState: 665 return fpvs.subPathValue.(AlertState_FieldPathValue).CompareWith(source.GetState()) 666 default: 667 panic(fmt.Sprintf("Invalid selector for Alert: %d", fpvs.Selector())) 668 } 669 } 670 671 func (fpvs *Alert_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 672 return fpvs.CompareWith(source.(*Alert)) 673 } 674 675 // Alert_FieldPathArrayItemValue allows storing single item in Path-specific values for Alert according to their type 676 // Present only for array (repeated) types. 677 type Alert_FieldPathArrayItemValue interface { 678 gotenobject.FieldPathArrayItemValue 679 Alert_FieldPath 680 ContainsValue(*Alert) bool 681 } 682 683 // ParseAlert_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 684 func ParseAlert_FieldPathArrayItemValue(pathStr, valueStr string) (Alert_FieldPathArrayItemValue, error) { 685 fp, err := ParseAlert_FieldPath(pathStr) 686 if err != nil { 687 return nil, err 688 } 689 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 690 if err != nil { 691 return nil, status.Errorf(codes.InvalidArgument, "error parsing Alert field path array item value from %s: %v", valueStr, err) 692 } 693 return fpaiv.(Alert_FieldPathArrayItemValue), nil 694 } 695 696 func MustParseAlert_FieldPathArrayItemValue(pathStr, valueStr string) Alert_FieldPathArrayItemValue { 697 fpaiv, err := ParseAlert_FieldPathArrayItemValue(pathStr, valueStr) 698 if err != nil { 699 panic(err) 700 } 701 return fpaiv 702 } 703 704 type Alert_FieldTerminalPathArrayItemValue struct { 705 Alert_FieldTerminalPath 706 value interface{} 707 } 708 709 var _ Alert_FieldPathArrayItemValue = (*Alert_FieldTerminalPathArrayItemValue)(nil) 710 711 // GetRawValue returns stored element value for array in object Alert as interface{} 712 func (fpaiv *Alert_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 713 return fpaiv.value 714 } 715 716 func (fpaiv *Alert_FieldTerminalPathArrayItemValue) GetSingle(source *Alert) (interface{}, bool) { 717 return nil, false 718 } 719 720 func (fpaiv *Alert_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 721 return fpaiv.GetSingle(source.(*Alert)) 722 } 723 724 // Contains returns a boolean indicating if value that is being held is present in given 'Alert' 725 func (fpaiv *Alert_FieldTerminalPathArrayItemValue) ContainsValue(source *Alert) bool { 726 slice := fpaiv.Alert_FieldTerminalPath.Get(source) 727 for _, v := range slice { 728 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 729 if proto.Equal(asProtoMsg, v.(proto.Message)) { 730 return true 731 } 732 } else if reflect.DeepEqual(v, fpaiv.value) { 733 return true 734 } 735 } 736 return false 737 } 738 739 type Alert_FieldSubPathArrayItemValue struct { 740 Alert_FieldPath 741 subPathItemValue gotenobject.FieldPathArrayItemValue 742 } 743 744 // GetRawValue returns stored array item value 745 func (fpaivs *Alert_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 746 return fpaivs.subPathItemValue.GetRawItemValue() 747 } 748 func (fpaivs *Alert_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) { 749 res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue) 750 return res, ok 751 } 752 func (fpaivs *Alert_FieldSubPathArrayItemValue) AsInfoPathItemValue() (AlertInfo_FieldPathArrayItemValue, bool) { 753 res, ok := fpaivs.subPathItemValue.(AlertInfo_FieldPathArrayItemValue) 754 return res, ok 755 } 756 func (fpaivs *Alert_FieldSubPathArrayItemValue) AsStatePathItemValue() (AlertState_FieldPathArrayItemValue, bool) { 757 res, ok := fpaivs.subPathItemValue.(AlertState_FieldPathArrayItemValue) 758 return res, ok 759 } 760 761 // Contains returns a boolean indicating if value that is being held is present in given 'Alert' 762 func (fpaivs *Alert_FieldSubPathArrayItemValue) ContainsValue(source *Alert) bool { 763 switch fpaivs.Selector() { 764 case Alert_FieldPathSelectorMetadata: 765 return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata()) 766 case Alert_FieldPathSelectorInfo: 767 return fpaivs.subPathItemValue.(AlertInfo_FieldPathArrayItemValue).ContainsValue(source.GetInfo()) 768 case Alert_FieldPathSelectorState: 769 return fpaivs.subPathItemValue.(AlertState_FieldPathArrayItemValue).ContainsValue(source.GetState()) 770 default: 771 panic(fmt.Sprintf("Invalid selector for Alert: %d", fpaivs.Selector())) 772 } 773 } 774 775 // Alert_FieldPathArrayOfValues allows storing slice of values for Alert fields according to their type 776 type Alert_FieldPathArrayOfValues interface { 777 gotenobject.FieldPathArrayOfValues 778 Alert_FieldPath 779 } 780 781 func ParseAlert_FieldPathArrayOfValues(pathStr, valuesStr string) (Alert_FieldPathArrayOfValues, error) { 782 fp, err := ParseAlert_FieldPath(pathStr) 783 if err != nil { 784 return nil, err 785 } 786 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 787 if err != nil { 788 return nil, status.Errorf(codes.InvalidArgument, "error parsing Alert field path array of values from %s: %v", valuesStr, err) 789 } 790 return fpaov.(Alert_FieldPathArrayOfValues), nil 791 } 792 793 func MustParseAlert_FieldPathArrayOfValues(pathStr, valuesStr string) Alert_FieldPathArrayOfValues { 794 fpaov, err := ParseAlert_FieldPathArrayOfValues(pathStr, valuesStr) 795 if err != nil { 796 panic(err) 797 } 798 return fpaov 799 } 800 801 type Alert_FieldTerminalPathArrayOfValues struct { 802 Alert_FieldTerminalPath 803 values interface{} 804 } 805 806 var _ Alert_FieldPathArrayOfValues = (*Alert_FieldTerminalPathArrayOfValues)(nil) 807 808 func (fpaov *Alert_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 809 switch fpaov.selector { 810 case Alert_FieldPathSelectorName: 811 for _, v := range fpaov.values.([]*Name) { 812 values = append(values, v) 813 } 814 case Alert_FieldPathSelectorMetadata: 815 for _, v := range fpaov.values.([]*meta.Meta) { 816 values = append(values, v) 817 } 818 case Alert_FieldPathSelectorDisplayName: 819 for _, v := range fpaov.values.([]string) { 820 values = append(values, v) 821 } 822 case Alert_FieldPathSelectorInfo: 823 for _, v := range fpaov.values.([]*Alert_Info) { 824 values = append(values, v) 825 } 826 case Alert_FieldPathSelectorState: 827 for _, v := range fpaov.values.([]*Alert_State) { 828 values = append(values, v) 829 } 830 } 831 return 832 } 833 func (fpaov *Alert_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) { 834 res, ok := fpaov.values.([]*Name) 835 return res, ok 836 } 837 func (fpaov *Alert_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) { 838 res, ok := fpaov.values.([]*meta.Meta) 839 return res, ok 840 } 841 func (fpaov *Alert_FieldTerminalPathArrayOfValues) AsDisplayNameArrayOfValues() ([]string, bool) { 842 res, ok := fpaov.values.([]string) 843 return res, ok 844 } 845 func (fpaov *Alert_FieldTerminalPathArrayOfValues) AsInfoArrayOfValues() ([]*Alert_Info, bool) { 846 res, ok := fpaov.values.([]*Alert_Info) 847 return res, ok 848 } 849 func (fpaov *Alert_FieldTerminalPathArrayOfValues) AsStateArrayOfValues() ([]*Alert_State, bool) { 850 res, ok := fpaov.values.([]*Alert_State) 851 return res, ok 852 } 853 854 type Alert_FieldSubPathArrayOfValues struct { 855 Alert_FieldPath 856 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 857 } 858 859 var _ Alert_FieldPathArrayOfValues = (*Alert_FieldSubPathArrayOfValues)(nil) 860 861 func (fpsaov *Alert_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 862 return fpsaov.subPathArrayOfValues.GetRawValues() 863 } 864 func (fpsaov *Alert_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) { 865 res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues) 866 return res, ok 867 } 868 func (fpsaov *Alert_FieldSubPathArrayOfValues) AsInfoPathArrayOfValues() (AlertInfo_FieldPathArrayOfValues, bool) { 869 res, ok := fpsaov.subPathArrayOfValues.(AlertInfo_FieldPathArrayOfValues) 870 return res, ok 871 } 872 func (fpsaov *Alert_FieldSubPathArrayOfValues) AsStatePathArrayOfValues() (AlertState_FieldPathArrayOfValues, bool) { 873 res, ok := fpsaov.subPathArrayOfValues.(AlertState_FieldPathArrayOfValues) 874 return res, ok 875 } 876 877 // FieldPath provides implementation to handle 878 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 879 type AlertInfo_FieldPath interface { 880 gotenobject.FieldPath 881 Selector() AlertInfo_FieldPathSelector 882 Get(source *Alert_Info) []interface{} 883 GetSingle(source *Alert_Info) (interface{}, bool) 884 ClearValue(item *Alert_Info) 885 886 // Those methods build corresponding AlertInfo_FieldPathValue 887 // (or array of values) and holds passed value. Panics if injected type is incorrect. 888 WithIValue(value interface{}) AlertInfo_FieldPathValue 889 WithIArrayOfValues(values interface{}) AlertInfo_FieldPathArrayOfValues 890 WithIArrayItemValue(value interface{}) AlertInfo_FieldPathArrayItemValue 891 } 892 893 type AlertInfo_FieldPathSelector int32 894 895 const ( 896 AlertInfo_FieldPathSelectorTimeSerie AlertInfo_FieldPathSelector = 0 897 AlertInfo_FieldPathSelectorObservedValues AlertInfo_FieldPathSelector = 1 898 ) 899 900 func (s AlertInfo_FieldPathSelector) String() string { 901 switch s { 902 case AlertInfo_FieldPathSelectorTimeSerie: 903 return "time_serie" 904 case AlertInfo_FieldPathSelectorObservedValues: 905 return "observed_values" 906 default: 907 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", s)) 908 } 909 } 910 911 func BuildAlertInfo_FieldPath(fp gotenobject.RawFieldPath) (AlertInfo_FieldPath, error) { 912 if len(fp) == 0 { 913 return nil, status.Error(codes.InvalidArgument, "empty field path for object Alert_Info") 914 } 915 if len(fp) == 1 { 916 switch fp[0] { 917 case "time_serie", "timeSerie", "time-serie": 918 return &AlertInfo_FieldTerminalPath{selector: AlertInfo_FieldPathSelectorTimeSerie}, nil 919 case "observed_values", "observedValues", "observed-values": 920 return &AlertInfo_FieldTerminalPath{selector: AlertInfo_FieldPathSelectorObservedValues}, nil 921 } 922 } else { 923 switch fp[0] { 924 case "time_serie", "timeSerie", "time-serie": 925 if subpath, err := BuildAlertInfoTimeSerie_FieldPath(fp[1:]); err != nil { 926 return nil, err 927 } else { 928 return &AlertInfo_FieldSubPath{selector: AlertInfo_FieldPathSelectorTimeSerie, subPath: subpath}, nil 929 } 930 case "observed_values", "observedValues", "observed-values": 931 if subpath, err := BuildAlertInfoObservedValues_FieldPath(fp[1:]); err != nil { 932 return nil, err 933 } else { 934 return &AlertInfo_FieldSubPath{selector: AlertInfo_FieldPathSelectorObservedValues, subPath: subpath}, nil 935 } 936 } 937 } 938 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Alert_Info", fp) 939 } 940 941 func ParseAlertInfo_FieldPath(rawField string) (AlertInfo_FieldPath, error) { 942 fp, err := gotenobject.ParseRawFieldPath(rawField) 943 if err != nil { 944 return nil, err 945 } 946 return BuildAlertInfo_FieldPath(fp) 947 } 948 949 func MustParseAlertInfo_FieldPath(rawField string) AlertInfo_FieldPath { 950 fp, err := ParseAlertInfo_FieldPath(rawField) 951 if err != nil { 952 panic(err) 953 } 954 return fp 955 } 956 957 type AlertInfo_FieldTerminalPath struct { 958 selector AlertInfo_FieldPathSelector 959 } 960 961 var _ AlertInfo_FieldPath = (*AlertInfo_FieldTerminalPath)(nil) 962 963 func (fp *AlertInfo_FieldTerminalPath) Selector() AlertInfo_FieldPathSelector { 964 return fp.selector 965 } 966 967 // String returns path representation in proto convention 968 func (fp *AlertInfo_FieldTerminalPath) String() string { 969 return fp.selector.String() 970 } 971 972 // JSONString returns path representation is JSON convention 973 func (fp *AlertInfo_FieldTerminalPath) JSONString() string { 974 return strcase.ToLowerCamel(fp.String()) 975 } 976 977 // Get returns all values pointed by specific field from source Alert_Info 978 func (fp *AlertInfo_FieldTerminalPath) Get(source *Alert_Info) (values []interface{}) { 979 if source != nil { 980 switch fp.selector { 981 case AlertInfo_FieldPathSelectorTimeSerie: 982 if source.TimeSerie != nil { 983 values = append(values, source.TimeSerie) 984 } 985 case AlertInfo_FieldPathSelectorObservedValues: 986 if source.ObservedValues != nil { 987 values = append(values, source.ObservedValues) 988 } 989 default: 990 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector)) 991 } 992 } 993 return 994 } 995 996 func (fp *AlertInfo_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 997 return fp.Get(source.(*Alert_Info)) 998 } 999 1000 // GetSingle returns value pointed by specific field of from source Alert_Info 1001 func (fp *AlertInfo_FieldTerminalPath) GetSingle(source *Alert_Info) (interface{}, bool) { 1002 switch fp.selector { 1003 case AlertInfo_FieldPathSelectorTimeSerie: 1004 res := source.GetTimeSerie() 1005 return res, res != nil 1006 case AlertInfo_FieldPathSelectorObservedValues: 1007 res := source.GetObservedValues() 1008 return res, res != nil 1009 default: 1010 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector)) 1011 } 1012 } 1013 1014 func (fp *AlertInfo_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1015 return fp.GetSingle(source.(*Alert_Info)) 1016 } 1017 1018 // GetDefault returns a default value of the field type 1019 func (fp *AlertInfo_FieldTerminalPath) GetDefault() interface{} { 1020 switch fp.selector { 1021 case AlertInfo_FieldPathSelectorTimeSerie: 1022 return (*Alert_Info_TimeSerie)(nil) 1023 case AlertInfo_FieldPathSelectorObservedValues: 1024 return (*Alert_Info_ObservedValues)(nil) 1025 default: 1026 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector)) 1027 } 1028 } 1029 1030 func (fp *AlertInfo_FieldTerminalPath) ClearValue(item *Alert_Info) { 1031 if item != nil { 1032 switch fp.selector { 1033 case AlertInfo_FieldPathSelectorTimeSerie: 1034 item.TimeSerie = nil 1035 case AlertInfo_FieldPathSelectorObservedValues: 1036 item.ObservedValues = nil 1037 default: 1038 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector)) 1039 } 1040 } 1041 } 1042 1043 func (fp *AlertInfo_FieldTerminalPath) ClearValueRaw(item proto.Message) { 1044 fp.ClearValue(item.(*Alert_Info)) 1045 } 1046 1047 // IsLeaf - whether field path is holds simple value 1048 func (fp *AlertInfo_FieldTerminalPath) IsLeaf() bool { 1049 return false 1050 } 1051 1052 func (fp *AlertInfo_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1053 return []gotenobject.FieldPath{fp} 1054 } 1055 1056 func (fp *AlertInfo_FieldTerminalPath) WithIValue(value interface{}) AlertInfo_FieldPathValue { 1057 switch fp.selector { 1058 case AlertInfo_FieldPathSelectorTimeSerie: 1059 return &AlertInfo_FieldTerminalPathValue{AlertInfo_FieldTerminalPath: *fp, value: value.(*Alert_Info_TimeSerie)} 1060 case AlertInfo_FieldPathSelectorObservedValues: 1061 return &AlertInfo_FieldTerminalPathValue{AlertInfo_FieldTerminalPath: *fp, value: value.(*Alert_Info_ObservedValues)} 1062 default: 1063 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector)) 1064 } 1065 } 1066 1067 func (fp *AlertInfo_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1068 return fp.WithIValue(value) 1069 } 1070 1071 func (fp *AlertInfo_FieldTerminalPath) WithIArrayOfValues(values interface{}) AlertInfo_FieldPathArrayOfValues { 1072 fpaov := &AlertInfo_FieldTerminalPathArrayOfValues{AlertInfo_FieldTerminalPath: *fp} 1073 switch fp.selector { 1074 case AlertInfo_FieldPathSelectorTimeSerie: 1075 return &AlertInfo_FieldTerminalPathArrayOfValues{AlertInfo_FieldTerminalPath: *fp, values: values.([]*Alert_Info_TimeSerie)} 1076 case AlertInfo_FieldPathSelectorObservedValues: 1077 return &AlertInfo_FieldTerminalPathArrayOfValues{AlertInfo_FieldTerminalPath: *fp, values: values.([]*Alert_Info_ObservedValues)} 1078 default: 1079 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector)) 1080 } 1081 return fpaov 1082 } 1083 1084 func (fp *AlertInfo_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1085 return fp.WithIArrayOfValues(values) 1086 } 1087 1088 func (fp *AlertInfo_FieldTerminalPath) WithIArrayItemValue(value interface{}) AlertInfo_FieldPathArrayItemValue { 1089 switch fp.selector { 1090 default: 1091 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector)) 1092 } 1093 } 1094 1095 func (fp *AlertInfo_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1096 return fp.WithIArrayItemValue(value) 1097 } 1098 1099 type AlertInfo_FieldSubPath struct { 1100 selector AlertInfo_FieldPathSelector 1101 subPath gotenobject.FieldPath 1102 } 1103 1104 var _ AlertInfo_FieldPath = (*AlertInfo_FieldSubPath)(nil) 1105 1106 func (fps *AlertInfo_FieldSubPath) Selector() AlertInfo_FieldPathSelector { 1107 return fps.selector 1108 } 1109 func (fps *AlertInfo_FieldSubPath) AsTimeSerieSubPath() (AlertInfoTimeSerie_FieldPath, bool) { 1110 res, ok := fps.subPath.(AlertInfoTimeSerie_FieldPath) 1111 return res, ok 1112 } 1113 func (fps *AlertInfo_FieldSubPath) AsObservedValuesSubPath() (AlertInfoObservedValues_FieldPath, bool) { 1114 res, ok := fps.subPath.(AlertInfoObservedValues_FieldPath) 1115 return res, ok 1116 } 1117 1118 // String returns path representation in proto convention 1119 func (fps *AlertInfo_FieldSubPath) String() string { 1120 return fps.selector.String() + "." + fps.subPath.String() 1121 } 1122 1123 // JSONString returns path representation is JSON convention 1124 func (fps *AlertInfo_FieldSubPath) JSONString() string { 1125 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 1126 } 1127 1128 // Get returns all values pointed by selected field from source Alert_Info 1129 func (fps *AlertInfo_FieldSubPath) Get(source *Alert_Info) (values []interface{}) { 1130 switch fps.selector { 1131 case AlertInfo_FieldPathSelectorTimeSerie: 1132 values = append(values, fps.subPath.GetRaw(source.GetTimeSerie())...) 1133 case AlertInfo_FieldPathSelectorObservedValues: 1134 values = append(values, fps.subPath.GetRaw(source.GetObservedValues())...) 1135 default: 1136 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fps.selector)) 1137 } 1138 return 1139 } 1140 1141 func (fps *AlertInfo_FieldSubPath) GetRaw(source proto.Message) []interface{} { 1142 return fps.Get(source.(*Alert_Info)) 1143 } 1144 1145 // GetSingle returns value of selected field from source Alert_Info 1146 func (fps *AlertInfo_FieldSubPath) GetSingle(source *Alert_Info) (interface{}, bool) { 1147 switch fps.selector { 1148 case AlertInfo_FieldPathSelectorTimeSerie: 1149 if source.GetTimeSerie() == nil { 1150 return nil, false 1151 } 1152 return fps.subPath.GetSingleRaw(source.GetTimeSerie()) 1153 case AlertInfo_FieldPathSelectorObservedValues: 1154 if source.GetObservedValues() == nil { 1155 return nil, false 1156 } 1157 return fps.subPath.GetSingleRaw(source.GetObservedValues()) 1158 default: 1159 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fps.selector)) 1160 } 1161 } 1162 1163 func (fps *AlertInfo_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1164 return fps.GetSingle(source.(*Alert_Info)) 1165 } 1166 1167 // GetDefault returns a default value of the field type 1168 func (fps *AlertInfo_FieldSubPath) GetDefault() interface{} { 1169 return fps.subPath.GetDefault() 1170 } 1171 1172 func (fps *AlertInfo_FieldSubPath) ClearValue(item *Alert_Info) { 1173 if item != nil { 1174 switch fps.selector { 1175 case AlertInfo_FieldPathSelectorTimeSerie: 1176 fps.subPath.ClearValueRaw(item.TimeSerie) 1177 case AlertInfo_FieldPathSelectorObservedValues: 1178 fps.subPath.ClearValueRaw(item.ObservedValues) 1179 default: 1180 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fps.selector)) 1181 } 1182 } 1183 } 1184 1185 func (fps *AlertInfo_FieldSubPath) ClearValueRaw(item proto.Message) { 1186 fps.ClearValue(item.(*Alert_Info)) 1187 } 1188 1189 // IsLeaf - whether field path is holds simple value 1190 func (fps *AlertInfo_FieldSubPath) IsLeaf() bool { 1191 return fps.subPath.IsLeaf() 1192 } 1193 1194 func (fps *AlertInfo_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1195 iPaths := []gotenobject.FieldPath{&AlertInfo_FieldTerminalPath{selector: fps.selector}} 1196 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 1197 return iPaths 1198 } 1199 1200 func (fps *AlertInfo_FieldSubPath) WithIValue(value interface{}) AlertInfo_FieldPathValue { 1201 return &AlertInfo_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 1202 } 1203 1204 func (fps *AlertInfo_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1205 return fps.WithIValue(value) 1206 } 1207 1208 func (fps *AlertInfo_FieldSubPath) WithIArrayOfValues(values interface{}) AlertInfo_FieldPathArrayOfValues { 1209 return &AlertInfo_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 1210 } 1211 1212 func (fps *AlertInfo_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1213 return fps.WithIArrayOfValues(values) 1214 } 1215 1216 func (fps *AlertInfo_FieldSubPath) WithIArrayItemValue(value interface{}) AlertInfo_FieldPathArrayItemValue { 1217 return &AlertInfo_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 1218 } 1219 1220 func (fps *AlertInfo_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1221 return fps.WithIArrayItemValue(value) 1222 } 1223 1224 // AlertInfo_FieldPathValue allows storing values for Info fields according to their type 1225 type AlertInfo_FieldPathValue interface { 1226 AlertInfo_FieldPath 1227 gotenobject.FieldPathValue 1228 SetTo(target **Alert_Info) 1229 CompareWith(*Alert_Info) (cmp int, comparable bool) 1230 } 1231 1232 func ParseAlertInfo_FieldPathValue(pathStr, valueStr string) (AlertInfo_FieldPathValue, error) { 1233 fp, err := ParseAlertInfo_FieldPath(pathStr) 1234 if err != nil { 1235 return nil, err 1236 } 1237 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 1238 if err != nil { 1239 return nil, status.Errorf(codes.InvalidArgument, "error parsing Info field path value from %s: %v", valueStr, err) 1240 } 1241 return fpv.(AlertInfo_FieldPathValue), nil 1242 } 1243 1244 func MustParseAlertInfo_FieldPathValue(pathStr, valueStr string) AlertInfo_FieldPathValue { 1245 fpv, err := ParseAlertInfo_FieldPathValue(pathStr, valueStr) 1246 if err != nil { 1247 panic(err) 1248 } 1249 return fpv 1250 } 1251 1252 type AlertInfo_FieldTerminalPathValue struct { 1253 AlertInfo_FieldTerminalPath 1254 value interface{} 1255 } 1256 1257 var _ AlertInfo_FieldPathValue = (*AlertInfo_FieldTerminalPathValue)(nil) 1258 1259 // GetRawValue returns raw value stored under selected path for 'Info' as interface{} 1260 func (fpv *AlertInfo_FieldTerminalPathValue) GetRawValue() interface{} { 1261 return fpv.value 1262 } 1263 func (fpv *AlertInfo_FieldTerminalPathValue) AsTimeSerieValue() (*Alert_Info_TimeSerie, bool) { 1264 res, ok := fpv.value.(*Alert_Info_TimeSerie) 1265 return res, ok 1266 } 1267 func (fpv *AlertInfo_FieldTerminalPathValue) AsObservedValuesValue() (*Alert_Info_ObservedValues, bool) { 1268 res, ok := fpv.value.(*Alert_Info_ObservedValues) 1269 return res, ok 1270 } 1271 1272 // SetTo stores value for selected field for object Info 1273 func (fpv *AlertInfo_FieldTerminalPathValue) SetTo(target **Alert_Info) { 1274 if *target == nil { 1275 *target = new(Alert_Info) 1276 } 1277 switch fpv.selector { 1278 case AlertInfo_FieldPathSelectorTimeSerie: 1279 (*target).TimeSerie = fpv.value.(*Alert_Info_TimeSerie) 1280 case AlertInfo_FieldPathSelectorObservedValues: 1281 (*target).ObservedValues = fpv.value.(*Alert_Info_ObservedValues) 1282 default: 1283 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fpv.selector)) 1284 } 1285 } 1286 1287 func (fpv *AlertInfo_FieldTerminalPathValue) SetToRaw(target proto.Message) { 1288 typedObject := target.(*Alert_Info) 1289 fpv.SetTo(&typedObject) 1290 } 1291 1292 // CompareWith compares value in the 'AlertInfo_FieldTerminalPathValue' with the value under path in 'Alert_Info'. 1293 func (fpv *AlertInfo_FieldTerminalPathValue) CompareWith(source *Alert_Info) (int, bool) { 1294 switch fpv.selector { 1295 case AlertInfo_FieldPathSelectorTimeSerie: 1296 return 0, false 1297 case AlertInfo_FieldPathSelectorObservedValues: 1298 return 0, false 1299 default: 1300 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fpv.selector)) 1301 } 1302 } 1303 1304 func (fpv *AlertInfo_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 1305 return fpv.CompareWith(source.(*Alert_Info)) 1306 } 1307 1308 type AlertInfo_FieldSubPathValue struct { 1309 AlertInfo_FieldPath 1310 subPathValue gotenobject.FieldPathValue 1311 } 1312 1313 var _ AlertInfo_FieldPathValue = (*AlertInfo_FieldSubPathValue)(nil) 1314 1315 func (fpvs *AlertInfo_FieldSubPathValue) AsTimeSeriePathValue() (AlertInfoTimeSerie_FieldPathValue, bool) { 1316 res, ok := fpvs.subPathValue.(AlertInfoTimeSerie_FieldPathValue) 1317 return res, ok 1318 } 1319 func (fpvs *AlertInfo_FieldSubPathValue) AsObservedValuesPathValue() (AlertInfoObservedValues_FieldPathValue, bool) { 1320 res, ok := fpvs.subPathValue.(AlertInfoObservedValues_FieldPathValue) 1321 return res, ok 1322 } 1323 1324 func (fpvs *AlertInfo_FieldSubPathValue) SetTo(target **Alert_Info) { 1325 if *target == nil { 1326 *target = new(Alert_Info) 1327 } 1328 switch fpvs.Selector() { 1329 case AlertInfo_FieldPathSelectorTimeSerie: 1330 fpvs.subPathValue.(AlertInfoTimeSerie_FieldPathValue).SetTo(&(*target).TimeSerie) 1331 case AlertInfo_FieldPathSelectorObservedValues: 1332 fpvs.subPathValue.(AlertInfoObservedValues_FieldPathValue).SetTo(&(*target).ObservedValues) 1333 default: 1334 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fpvs.Selector())) 1335 } 1336 } 1337 1338 func (fpvs *AlertInfo_FieldSubPathValue) SetToRaw(target proto.Message) { 1339 typedObject := target.(*Alert_Info) 1340 fpvs.SetTo(&typedObject) 1341 } 1342 1343 func (fpvs *AlertInfo_FieldSubPathValue) GetRawValue() interface{} { 1344 return fpvs.subPathValue.GetRawValue() 1345 } 1346 1347 func (fpvs *AlertInfo_FieldSubPathValue) CompareWith(source *Alert_Info) (int, bool) { 1348 switch fpvs.Selector() { 1349 case AlertInfo_FieldPathSelectorTimeSerie: 1350 return fpvs.subPathValue.(AlertInfoTimeSerie_FieldPathValue).CompareWith(source.GetTimeSerie()) 1351 case AlertInfo_FieldPathSelectorObservedValues: 1352 return fpvs.subPathValue.(AlertInfoObservedValues_FieldPathValue).CompareWith(source.GetObservedValues()) 1353 default: 1354 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fpvs.Selector())) 1355 } 1356 } 1357 1358 func (fpvs *AlertInfo_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 1359 return fpvs.CompareWith(source.(*Alert_Info)) 1360 } 1361 1362 // AlertInfo_FieldPathArrayItemValue allows storing single item in Path-specific values for Info according to their type 1363 // Present only for array (repeated) types. 1364 type AlertInfo_FieldPathArrayItemValue interface { 1365 gotenobject.FieldPathArrayItemValue 1366 AlertInfo_FieldPath 1367 ContainsValue(*Alert_Info) bool 1368 } 1369 1370 // ParseAlertInfo_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 1371 func ParseAlertInfo_FieldPathArrayItemValue(pathStr, valueStr string) (AlertInfo_FieldPathArrayItemValue, error) { 1372 fp, err := ParseAlertInfo_FieldPath(pathStr) 1373 if err != nil { 1374 return nil, err 1375 } 1376 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 1377 if err != nil { 1378 return nil, status.Errorf(codes.InvalidArgument, "error parsing Info field path array item value from %s: %v", valueStr, err) 1379 } 1380 return fpaiv.(AlertInfo_FieldPathArrayItemValue), nil 1381 } 1382 1383 func MustParseAlertInfo_FieldPathArrayItemValue(pathStr, valueStr string) AlertInfo_FieldPathArrayItemValue { 1384 fpaiv, err := ParseAlertInfo_FieldPathArrayItemValue(pathStr, valueStr) 1385 if err != nil { 1386 panic(err) 1387 } 1388 return fpaiv 1389 } 1390 1391 type AlertInfo_FieldTerminalPathArrayItemValue struct { 1392 AlertInfo_FieldTerminalPath 1393 value interface{} 1394 } 1395 1396 var _ AlertInfo_FieldPathArrayItemValue = (*AlertInfo_FieldTerminalPathArrayItemValue)(nil) 1397 1398 // GetRawValue returns stored element value for array in object Alert_Info as interface{} 1399 func (fpaiv *AlertInfo_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 1400 return fpaiv.value 1401 } 1402 1403 func (fpaiv *AlertInfo_FieldTerminalPathArrayItemValue) GetSingle(source *Alert_Info) (interface{}, bool) { 1404 return nil, false 1405 } 1406 1407 func (fpaiv *AlertInfo_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 1408 return fpaiv.GetSingle(source.(*Alert_Info)) 1409 } 1410 1411 // Contains returns a boolean indicating if value that is being held is present in given 'Info' 1412 func (fpaiv *AlertInfo_FieldTerminalPathArrayItemValue) ContainsValue(source *Alert_Info) bool { 1413 slice := fpaiv.AlertInfo_FieldTerminalPath.Get(source) 1414 for _, v := range slice { 1415 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 1416 if proto.Equal(asProtoMsg, v.(proto.Message)) { 1417 return true 1418 } 1419 } else if reflect.DeepEqual(v, fpaiv.value) { 1420 return true 1421 } 1422 } 1423 return false 1424 } 1425 1426 type AlertInfo_FieldSubPathArrayItemValue struct { 1427 AlertInfo_FieldPath 1428 subPathItemValue gotenobject.FieldPathArrayItemValue 1429 } 1430 1431 // GetRawValue returns stored array item value 1432 func (fpaivs *AlertInfo_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 1433 return fpaivs.subPathItemValue.GetRawItemValue() 1434 } 1435 func (fpaivs *AlertInfo_FieldSubPathArrayItemValue) AsTimeSeriePathItemValue() (AlertInfoTimeSerie_FieldPathArrayItemValue, bool) { 1436 res, ok := fpaivs.subPathItemValue.(AlertInfoTimeSerie_FieldPathArrayItemValue) 1437 return res, ok 1438 } 1439 func (fpaivs *AlertInfo_FieldSubPathArrayItemValue) AsObservedValuesPathItemValue() (AlertInfoObservedValues_FieldPathArrayItemValue, bool) { 1440 res, ok := fpaivs.subPathItemValue.(AlertInfoObservedValues_FieldPathArrayItemValue) 1441 return res, ok 1442 } 1443 1444 // Contains returns a boolean indicating if value that is being held is present in given 'Info' 1445 func (fpaivs *AlertInfo_FieldSubPathArrayItemValue) ContainsValue(source *Alert_Info) bool { 1446 switch fpaivs.Selector() { 1447 case AlertInfo_FieldPathSelectorTimeSerie: 1448 return fpaivs.subPathItemValue.(AlertInfoTimeSerie_FieldPathArrayItemValue).ContainsValue(source.GetTimeSerie()) 1449 case AlertInfo_FieldPathSelectorObservedValues: 1450 return fpaivs.subPathItemValue.(AlertInfoObservedValues_FieldPathArrayItemValue).ContainsValue(source.GetObservedValues()) 1451 default: 1452 panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fpaivs.Selector())) 1453 } 1454 } 1455 1456 // AlertInfo_FieldPathArrayOfValues allows storing slice of values for Info fields according to their type 1457 type AlertInfo_FieldPathArrayOfValues interface { 1458 gotenobject.FieldPathArrayOfValues 1459 AlertInfo_FieldPath 1460 } 1461 1462 func ParseAlertInfo_FieldPathArrayOfValues(pathStr, valuesStr string) (AlertInfo_FieldPathArrayOfValues, error) { 1463 fp, err := ParseAlertInfo_FieldPath(pathStr) 1464 if err != nil { 1465 return nil, err 1466 } 1467 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 1468 if err != nil { 1469 return nil, status.Errorf(codes.InvalidArgument, "error parsing Info field path array of values from %s: %v", valuesStr, err) 1470 } 1471 return fpaov.(AlertInfo_FieldPathArrayOfValues), nil 1472 } 1473 1474 func MustParseAlertInfo_FieldPathArrayOfValues(pathStr, valuesStr string) AlertInfo_FieldPathArrayOfValues { 1475 fpaov, err := ParseAlertInfo_FieldPathArrayOfValues(pathStr, valuesStr) 1476 if err != nil { 1477 panic(err) 1478 } 1479 return fpaov 1480 } 1481 1482 type AlertInfo_FieldTerminalPathArrayOfValues struct { 1483 AlertInfo_FieldTerminalPath 1484 values interface{} 1485 } 1486 1487 var _ AlertInfo_FieldPathArrayOfValues = (*AlertInfo_FieldTerminalPathArrayOfValues)(nil) 1488 1489 func (fpaov *AlertInfo_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 1490 switch fpaov.selector { 1491 case AlertInfo_FieldPathSelectorTimeSerie: 1492 for _, v := range fpaov.values.([]*Alert_Info_TimeSerie) { 1493 values = append(values, v) 1494 } 1495 case AlertInfo_FieldPathSelectorObservedValues: 1496 for _, v := range fpaov.values.([]*Alert_Info_ObservedValues) { 1497 values = append(values, v) 1498 } 1499 } 1500 return 1501 } 1502 func (fpaov *AlertInfo_FieldTerminalPathArrayOfValues) AsTimeSerieArrayOfValues() ([]*Alert_Info_TimeSerie, bool) { 1503 res, ok := fpaov.values.([]*Alert_Info_TimeSerie) 1504 return res, ok 1505 } 1506 func (fpaov *AlertInfo_FieldTerminalPathArrayOfValues) AsObservedValuesArrayOfValues() ([]*Alert_Info_ObservedValues, bool) { 1507 res, ok := fpaov.values.([]*Alert_Info_ObservedValues) 1508 return res, ok 1509 } 1510 1511 type AlertInfo_FieldSubPathArrayOfValues struct { 1512 AlertInfo_FieldPath 1513 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 1514 } 1515 1516 var _ AlertInfo_FieldPathArrayOfValues = (*AlertInfo_FieldSubPathArrayOfValues)(nil) 1517 1518 func (fpsaov *AlertInfo_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 1519 return fpsaov.subPathArrayOfValues.GetRawValues() 1520 } 1521 func (fpsaov *AlertInfo_FieldSubPathArrayOfValues) AsTimeSeriePathArrayOfValues() (AlertInfoTimeSerie_FieldPathArrayOfValues, bool) { 1522 res, ok := fpsaov.subPathArrayOfValues.(AlertInfoTimeSerie_FieldPathArrayOfValues) 1523 return res, ok 1524 } 1525 func (fpsaov *AlertInfo_FieldSubPathArrayOfValues) AsObservedValuesPathArrayOfValues() (AlertInfoObservedValues_FieldPathArrayOfValues, bool) { 1526 res, ok := fpsaov.subPathArrayOfValues.(AlertInfoObservedValues_FieldPathArrayOfValues) 1527 return res, ok 1528 } 1529 1530 // FieldPath provides implementation to handle 1531 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 1532 type AlertState_FieldPath interface { 1533 gotenobject.FieldPath 1534 Selector() AlertState_FieldPathSelector 1535 Get(source *Alert_State) []interface{} 1536 GetSingle(source *Alert_State) (interface{}, bool) 1537 ClearValue(item *Alert_State) 1538 1539 // Those methods build corresponding AlertState_FieldPathValue 1540 // (or array of values) and holds passed value. Panics if injected type is incorrect. 1541 WithIValue(value interface{}) AlertState_FieldPathValue 1542 WithIArrayOfValues(values interface{}) AlertState_FieldPathArrayOfValues 1543 WithIArrayItemValue(value interface{}) AlertState_FieldPathArrayItemValue 1544 } 1545 1546 type AlertState_FieldPathSelector int32 1547 1548 const ( 1549 AlertState_FieldPathSelectorIsFiring AlertState_FieldPathSelector = 0 1550 AlertState_FieldPathSelectorIsAcknowledged AlertState_FieldPathSelector = 1 1551 AlertState_FieldPathSelectorIsSilenced AlertState_FieldPathSelector = 2 1552 AlertState_FieldPathSelectorLifetime AlertState_FieldPathSelector = 3 1553 AlertState_FieldPathSelectorNeedsNotification AlertState_FieldPathSelector = 4 1554 AlertState_FieldPathSelectorNotificationCreated AlertState_FieldPathSelector = 5 1555 AlertState_FieldPathSelectorLifecycleCompleted AlertState_FieldPathSelector = 6 1556 ) 1557 1558 func (s AlertState_FieldPathSelector) String() string { 1559 switch s { 1560 case AlertState_FieldPathSelectorIsFiring: 1561 return "is_firing" 1562 case AlertState_FieldPathSelectorIsAcknowledged: 1563 return "is_acknowledged" 1564 case AlertState_FieldPathSelectorIsSilenced: 1565 return "is_silenced" 1566 case AlertState_FieldPathSelectorLifetime: 1567 return "lifetime" 1568 case AlertState_FieldPathSelectorNeedsNotification: 1569 return "needs_notification" 1570 case AlertState_FieldPathSelectorNotificationCreated: 1571 return "notification_created" 1572 case AlertState_FieldPathSelectorLifecycleCompleted: 1573 return "lifecycle_completed" 1574 default: 1575 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", s)) 1576 } 1577 } 1578 1579 func BuildAlertState_FieldPath(fp gotenobject.RawFieldPath) (AlertState_FieldPath, error) { 1580 if len(fp) == 0 { 1581 return nil, status.Error(codes.InvalidArgument, "empty field path for object Alert_State") 1582 } 1583 if len(fp) == 1 { 1584 switch fp[0] { 1585 case "is_firing", "isFiring", "is-firing": 1586 return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorIsFiring}, nil 1587 case "is_acknowledged", "isAcknowledged", "is-acknowledged": 1588 return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorIsAcknowledged}, nil 1589 case "is_silenced", "isSilenced", "is-silenced": 1590 return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorIsSilenced}, nil 1591 case "lifetime": 1592 return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorLifetime}, nil 1593 case "needs_notification", "needsNotification", "needs-notification": 1594 return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorNeedsNotification}, nil 1595 case "notification_created", "notificationCreated", "notification-created": 1596 return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorNotificationCreated}, nil 1597 case "lifecycle_completed", "lifecycleCompleted", "lifecycle-completed": 1598 return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorLifecycleCompleted}, nil 1599 } 1600 } else { 1601 switch fp[0] { 1602 case "lifetime": 1603 if subpath, err := common.BuildTimeRange_FieldPath(fp[1:]); err != nil { 1604 return nil, err 1605 } else { 1606 return &AlertState_FieldSubPath{selector: AlertState_FieldPathSelectorLifetime, subPath: subpath}, nil 1607 } 1608 } 1609 } 1610 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Alert_State", fp) 1611 } 1612 1613 func ParseAlertState_FieldPath(rawField string) (AlertState_FieldPath, error) { 1614 fp, err := gotenobject.ParseRawFieldPath(rawField) 1615 if err != nil { 1616 return nil, err 1617 } 1618 return BuildAlertState_FieldPath(fp) 1619 } 1620 1621 func MustParseAlertState_FieldPath(rawField string) AlertState_FieldPath { 1622 fp, err := ParseAlertState_FieldPath(rawField) 1623 if err != nil { 1624 panic(err) 1625 } 1626 return fp 1627 } 1628 1629 type AlertState_FieldTerminalPath struct { 1630 selector AlertState_FieldPathSelector 1631 } 1632 1633 var _ AlertState_FieldPath = (*AlertState_FieldTerminalPath)(nil) 1634 1635 func (fp *AlertState_FieldTerminalPath) Selector() AlertState_FieldPathSelector { 1636 return fp.selector 1637 } 1638 1639 // String returns path representation in proto convention 1640 func (fp *AlertState_FieldTerminalPath) String() string { 1641 return fp.selector.String() 1642 } 1643 1644 // JSONString returns path representation is JSON convention 1645 func (fp *AlertState_FieldTerminalPath) JSONString() string { 1646 return strcase.ToLowerCamel(fp.String()) 1647 } 1648 1649 // Get returns all values pointed by specific field from source Alert_State 1650 func (fp *AlertState_FieldTerminalPath) Get(source *Alert_State) (values []interface{}) { 1651 if source != nil { 1652 switch fp.selector { 1653 case AlertState_FieldPathSelectorIsFiring: 1654 values = append(values, source.IsFiring) 1655 case AlertState_FieldPathSelectorIsAcknowledged: 1656 values = append(values, source.IsAcknowledged) 1657 case AlertState_FieldPathSelectorIsSilenced: 1658 values = append(values, source.IsSilenced) 1659 case AlertState_FieldPathSelectorLifetime: 1660 if source.Lifetime != nil { 1661 values = append(values, source.Lifetime) 1662 } 1663 case AlertState_FieldPathSelectorNeedsNotification: 1664 values = append(values, source.NeedsNotification) 1665 case AlertState_FieldPathSelectorNotificationCreated: 1666 values = append(values, source.NotificationCreated) 1667 case AlertState_FieldPathSelectorLifecycleCompleted: 1668 values = append(values, source.LifecycleCompleted) 1669 default: 1670 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector)) 1671 } 1672 } 1673 return 1674 } 1675 1676 func (fp *AlertState_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 1677 return fp.Get(source.(*Alert_State)) 1678 } 1679 1680 // GetSingle returns value pointed by specific field of from source Alert_State 1681 func (fp *AlertState_FieldTerminalPath) GetSingle(source *Alert_State) (interface{}, bool) { 1682 switch fp.selector { 1683 case AlertState_FieldPathSelectorIsFiring: 1684 return source.GetIsFiring(), source != nil 1685 case AlertState_FieldPathSelectorIsAcknowledged: 1686 return source.GetIsAcknowledged(), source != nil 1687 case AlertState_FieldPathSelectorIsSilenced: 1688 return source.GetIsSilenced(), source != nil 1689 case AlertState_FieldPathSelectorLifetime: 1690 res := source.GetLifetime() 1691 return res, res != nil 1692 case AlertState_FieldPathSelectorNeedsNotification: 1693 return source.GetNeedsNotification(), source != nil 1694 case AlertState_FieldPathSelectorNotificationCreated: 1695 return source.GetNotificationCreated(), source != nil 1696 case AlertState_FieldPathSelectorLifecycleCompleted: 1697 return source.GetLifecycleCompleted(), source != nil 1698 default: 1699 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector)) 1700 } 1701 } 1702 1703 func (fp *AlertState_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1704 return fp.GetSingle(source.(*Alert_State)) 1705 } 1706 1707 // GetDefault returns a default value of the field type 1708 func (fp *AlertState_FieldTerminalPath) GetDefault() interface{} { 1709 switch fp.selector { 1710 case AlertState_FieldPathSelectorIsFiring: 1711 return false 1712 case AlertState_FieldPathSelectorIsAcknowledged: 1713 return false 1714 case AlertState_FieldPathSelectorIsSilenced: 1715 return false 1716 case AlertState_FieldPathSelectorLifetime: 1717 return (*common.TimeRange)(nil) 1718 case AlertState_FieldPathSelectorNeedsNotification: 1719 return false 1720 case AlertState_FieldPathSelectorNotificationCreated: 1721 return false 1722 case AlertState_FieldPathSelectorLifecycleCompleted: 1723 return false 1724 default: 1725 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector)) 1726 } 1727 } 1728 1729 func (fp *AlertState_FieldTerminalPath) ClearValue(item *Alert_State) { 1730 if item != nil { 1731 switch fp.selector { 1732 case AlertState_FieldPathSelectorIsFiring: 1733 item.IsFiring = false 1734 case AlertState_FieldPathSelectorIsAcknowledged: 1735 item.IsAcknowledged = false 1736 case AlertState_FieldPathSelectorIsSilenced: 1737 item.IsSilenced = false 1738 case AlertState_FieldPathSelectorLifetime: 1739 item.Lifetime = nil 1740 case AlertState_FieldPathSelectorNeedsNotification: 1741 item.NeedsNotification = false 1742 case AlertState_FieldPathSelectorNotificationCreated: 1743 item.NotificationCreated = false 1744 case AlertState_FieldPathSelectorLifecycleCompleted: 1745 item.LifecycleCompleted = false 1746 default: 1747 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector)) 1748 } 1749 } 1750 } 1751 1752 func (fp *AlertState_FieldTerminalPath) ClearValueRaw(item proto.Message) { 1753 fp.ClearValue(item.(*Alert_State)) 1754 } 1755 1756 // IsLeaf - whether field path is holds simple value 1757 func (fp *AlertState_FieldTerminalPath) IsLeaf() bool { 1758 return fp.selector == AlertState_FieldPathSelectorIsFiring || 1759 fp.selector == AlertState_FieldPathSelectorIsAcknowledged || 1760 fp.selector == AlertState_FieldPathSelectorIsSilenced || 1761 fp.selector == AlertState_FieldPathSelectorNeedsNotification || 1762 fp.selector == AlertState_FieldPathSelectorNotificationCreated || 1763 fp.selector == AlertState_FieldPathSelectorLifecycleCompleted 1764 } 1765 1766 func (fp *AlertState_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1767 return []gotenobject.FieldPath{fp} 1768 } 1769 1770 func (fp *AlertState_FieldTerminalPath) WithIValue(value interface{}) AlertState_FieldPathValue { 1771 switch fp.selector { 1772 case AlertState_FieldPathSelectorIsFiring: 1773 return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(bool)} 1774 case AlertState_FieldPathSelectorIsAcknowledged: 1775 return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(bool)} 1776 case AlertState_FieldPathSelectorIsSilenced: 1777 return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(bool)} 1778 case AlertState_FieldPathSelectorLifetime: 1779 return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(*common.TimeRange)} 1780 case AlertState_FieldPathSelectorNeedsNotification: 1781 return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(bool)} 1782 case AlertState_FieldPathSelectorNotificationCreated: 1783 return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(bool)} 1784 case AlertState_FieldPathSelectorLifecycleCompleted: 1785 return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(bool)} 1786 default: 1787 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector)) 1788 } 1789 } 1790 1791 func (fp *AlertState_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1792 return fp.WithIValue(value) 1793 } 1794 1795 func (fp *AlertState_FieldTerminalPath) WithIArrayOfValues(values interface{}) AlertState_FieldPathArrayOfValues { 1796 fpaov := &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp} 1797 switch fp.selector { 1798 case AlertState_FieldPathSelectorIsFiring: 1799 return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]bool)} 1800 case AlertState_FieldPathSelectorIsAcknowledged: 1801 return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]bool)} 1802 case AlertState_FieldPathSelectorIsSilenced: 1803 return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]bool)} 1804 case AlertState_FieldPathSelectorLifetime: 1805 return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]*common.TimeRange)} 1806 case AlertState_FieldPathSelectorNeedsNotification: 1807 return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]bool)} 1808 case AlertState_FieldPathSelectorNotificationCreated: 1809 return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]bool)} 1810 case AlertState_FieldPathSelectorLifecycleCompleted: 1811 return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]bool)} 1812 default: 1813 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector)) 1814 } 1815 return fpaov 1816 } 1817 1818 func (fp *AlertState_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1819 return fp.WithIArrayOfValues(values) 1820 } 1821 1822 func (fp *AlertState_FieldTerminalPath) WithIArrayItemValue(value interface{}) AlertState_FieldPathArrayItemValue { 1823 switch fp.selector { 1824 default: 1825 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector)) 1826 } 1827 } 1828 1829 func (fp *AlertState_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1830 return fp.WithIArrayItemValue(value) 1831 } 1832 1833 type AlertState_FieldSubPath struct { 1834 selector AlertState_FieldPathSelector 1835 subPath gotenobject.FieldPath 1836 } 1837 1838 var _ AlertState_FieldPath = (*AlertState_FieldSubPath)(nil) 1839 1840 func (fps *AlertState_FieldSubPath) Selector() AlertState_FieldPathSelector { 1841 return fps.selector 1842 } 1843 func (fps *AlertState_FieldSubPath) AsLifetimeSubPath() (common.TimeRange_FieldPath, bool) { 1844 res, ok := fps.subPath.(common.TimeRange_FieldPath) 1845 return res, ok 1846 } 1847 1848 // String returns path representation in proto convention 1849 func (fps *AlertState_FieldSubPath) String() string { 1850 return fps.selector.String() + "." + fps.subPath.String() 1851 } 1852 1853 // JSONString returns path representation is JSON convention 1854 func (fps *AlertState_FieldSubPath) JSONString() string { 1855 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 1856 } 1857 1858 // Get returns all values pointed by selected field from source Alert_State 1859 func (fps *AlertState_FieldSubPath) Get(source *Alert_State) (values []interface{}) { 1860 switch fps.selector { 1861 case AlertState_FieldPathSelectorLifetime: 1862 values = append(values, fps.subPath.GetRaw(source.GetLifetime())...) 1863 default: 1864 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fps.selector)) 1865 } 1866 return 1867 } 1868 1869 func (fps *AlertState_FieldSubPath) GetRaw(source proto.Message) []interface{} { 1870 return fps.Get(source.(*Alert_State)) 1871 } 1872 1873 // GetSingle returns value of selected field from source Alert_State 1874 func (fps *AlertState_FieldSubPath) GetSingle(source *Alert_State) (interface{}, bool) { 1875 switch fps.selector { 1876 case AlertState_FieldPathSelectorLifetime: 1877 if source.GetLifetime() == nil { 1878 return nil, false 1879 } 1880 return fps.subPath.GetSingleRaw(source.GetLifetime()) 1881 default: 1882 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fps.selector)) 1883 } 1884 } 1885 1886 func (fps *AlertState_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1887 return fps.GetSingle(source.(*Alert_State)) 1888 } 1889 1890 // GetDefault returns a default value of the field type 1891 func (fps *AlertState_FieldSubPath) GetDefault() interface{} { 1892 return fps.subPath.GetDefault() 1893 } 1894 1895 func (fps *AlertState_FieldSubPath) ClearValue(item *Alert_State) { 1896 if item != nil { 1897 switch fps.selector { 1898 case AlertState_FieldPathSelectorLifetime: 1899 fps.subPath.ClearValueRaw(item.Lifetime) 1900 default: 1901 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fps.selector)) 1902 } 1903 } 1904 } 1905 1906 func (fps *AlertState_FieldSubPath) ClearValueRaw(item proto.Message) { 1907 fps.ClearValue(item.(*Alert_State)) 1908 } 1909 1910 // IsLeaf - whether field path is holds simple value 1911 func (fps *AlertState_FieldSubPath) IsLeaf() bool { 1912 return fps.subPath.IsLeaf() 1913 } 1914 1915 func (fps *AlertState_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1916 iPaths := []gotenobject.FieldPath{&AlertState_FieldTerminalPath{selector: fps.selector}} 1917 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 1918 return iPaths 1919 } 1920 1921 func (fps *AlertState_FieldSubPath) WithIValue(value interface{}) AlertState_FieldPathValue { 1922 return &AlertState_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 1923 } 1924 1925 func (fps *AlertState_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1926 return fps.WithIValue(value) 1927 } 1928 1929 func (fps *AlertState_FieldSubPath) WithIArrayOfValues(values interface{}) AlertState_FieldPathArrayOfValues { 1930 return &AlertState_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 1931 } 1932 1933 func (fps *AlertState_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1934 return fps.WithIArrayOfValues(values) 1935 } 1936 1937 func (fps *AlertState_FieldSubPath) WithIArrayItemValue(value interface{}) AlertState_FieldPathArrayItemValue { 1938 return &AlertState_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 1939 } 1940 1941 func (fps *AlertState_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1942 return fps.WithIArrayItemValue(value) 1943 } 1944 1945 // AlertState_FieldPathValue allows storing values for State fields according to their type 1946 type AlertState_FieldPathValue interface { 1947 AlertState_FieldPath 1948 gotenobject.FieldPathValue 1949 SetTo(target **Alert_State) 1950 CompareWith(*Alert_State) (cmp int, comparable bool) 1951 } 1952 1953 func ParseAlertState_FieldPathValue(pathStr, valueStr string) (AlertState_FieldPathValue, error) { 1954 fp, err := ParseAlertState_FieldPath(pathStr) 1955 if err != nil { 1956 return nil, err 1957 } 1958 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 1959 if err != nil { 1960 return nil, status.Errorf(codes.InvalidArgument, "error parsing State field path value from %s: %v", valueStr, err) 1961 } 1962 return fpv.(AlertState_FieldPathValue), nil 1963 } 1964 1965 func MustParseAlertState_FieldPathValue(pathStr, valueStr string) AlertState_FieldPathValue { 1966 fpv, err := ParseAlertState_FieldPathValue(pathStr, valueStr) 1967 if err != nil { 1968 panic(err) 1969 } 1970 return fpv 1971 } 1972 1973 type AlertState_FieldTerminalPathValue struct { 1974 AlertState_FieldTerminalPath 1975 value interface{} 1976 } 1977 1978 var _ AlertState_FieldPathValue = (*AlertState_FieldTerminalPathValue)(nil) 1979 1980 // GetRawValue returns raw value stored under selected path for 'State' as interface{} 1981 func (fpv *AlertState_FieldTerminalPathValue) GetRawValue() interface{} { 1982 return fpv.value 1983 } 1984 func (fpv *AlertState_FieldTerminalPathValue) AsIsFiringValue() (bool, bool) { 1985 res, ok := fpv.value.(bool) 1986 return res, ok 1987 } 1988 func (fpv *AlertState_FieldTerminalPathValue) AsIsAcknowledgedValue() (bool, bool) { 1989 res, ok := fpv.value.(bool) 1990 return res, ok 1991 } 1992 func (fpv *AlertState_FieldTerminalPathValue) AsIsSilencedValue() (bool, bool) { 1993 res, ok := fpv.value.(bool) 1994 return res, ok 1995 } 1996 func (fpv *AlertState_FieldTerminalPathValue) AsLifetimeValue() (*common.TimeRange, bool) { 1997 res, ok := fpv.value.(*common.TimeRange) 1998 return res, ok 1999 } 2000 func (fpv *AlertState_FieldTerminalPathValue) AsNeedsNotificationValue() (bool, bool) { 2001 res, ok := fpv.value.(bool) 2002 return res, ok 2003 } 2004 func (fpv *AlertState_FieldTerminalPathValue) AsNotificationCreatedValue() (bool, bool) { 2005 res, ok := fpv.value.(bool) 2006 return res, ok 2007 } 2008 func (fpv *AlertState_FieldTerminalPathValue) AsLifecycleCompletedValue() (bool, bool) { 2009 res, ok := fpv.value.(bool) 2010 return res, ok 2011 } 2012 2013 // SetTo stores value for selected field for object State 2014 func (fpv *AlertState_FieldTerminalPathValue) SetTo(target **Alert_State) { 2015 if *target == nil { 2016 *target = new(Alert_State) 2017 } 2018 switch fpv.selector { 2019 case AlertState_FieldPathSelectorIsFiring: 2020 (*target).IsFiring = fpv.value.(bool) 2021 case AlertState_FieldPathSelectorIsAcknowledged: 2022 (*target).IsAcknowledged = fpv.value.(bool) 2023 case AlertState_FieldPathSelectorIsSilenced: 2024 (*target).IsSilenced = fpv.value.(bool) 2025 case AlertState_FieldPathSelectorLifetime: 2026 (*target).Lifetime = fpv.value.(*common.TimeRange) 2027 case AlertState_FieldPathSelectorNeedsNotification: 2028 (*target).NeedsNotification = fpv.value.(bool) 2029 case AlertState_FieldPathSelectorNotificationCreated: 2030 (*target).NotificationCreated = fpv.value.(bool) 2031 case AlertState_FieldPathSelectorLifecycleCompleted: 2032 (*target).LifecycleCompleted = fpv.value.(bool) 2033 default: 2034 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fpv.selector)) 2035 } 2036 } 2037 2038 func (fpv *AlertState_FieldTerminalPathValue) SetToRaw(target proto.Message) { 2039 typedObject := target.(*Alert_State) 2040 fpv.SetTo(&typedObject) 2041 } 2042 2043 // CompareWith compares value in the 'AlertState_FieldTerminalPathValue' with the value under path in 'Alert_State'. 2044 func (fpv *AlertState_FieldTerminalPathValue) CompareWith(source *Alert_State) (int, bool) { 2045 switch fpv.selector { 2046 case AlertState_FieldPathSelectorIsFiring: 2047 leftValue := fpv.value.(bool) 2048 rightValue := source.GetIsFiring() 2049 if (leftValue) == (rightValue) { 2050 return 0, true 2051 } else if !(leftValue) && (rightValue) { 2052 return -1, true 2053 } else { 2054 return 1, true 2055 } 2056 case AlertState_FieldPathSelectorIsAcknowledged: 2057 leftValue := fpv.value.(bool) 2058 rightValue := source.GetIsAcknowledged() 2059 if (leftValue) == (rightValue) { 2060 return 0, true 2061 } else if !(leftValue) && (rightValue) { 2062 return -1, true 2063 } else { 2064 return 1, true 2065 } 2066 case AlertState_FieldPathSelectorIsSilenced: 2067 leftValue := fpv.value.(bool) 2068 rightValue := source.GetIsSilenced() 2069 if (leftValue) == (rightValue) { 2070 return 0, true 2071 } else if !(leftValue) && (rightValue) { 2072 return -1, true 2073 } else { 2074 return 1, true 2075 } 2076 case AlertState_FieldPathSelectorLifetime: 2077 return 0, false 2078 case AlertState_FieldPathSelectorNeedsNotification: 2079 leftValue := fpv.value.(bool) 2080 rightValue := source.GetNeedsNotification() 2081 if (leftValue) == (rightValue) { 2082 return 0, true 2083 } else if !(leftValue) && (rightValue) { 2084 return -1, true 2085 } else { 2086 return 1, true 2087 } 2088 case AlertState_FieldPathSelectorNotificationCreated: 2089 leftValue := fpv.value.(bool) 2090 rightValue := source.GetNotificationCreated() 2091 if (leftValue) == (rightValue) { 2092 return 0, true 2093 } else if !(leftValue) && (rightValue) { 2094 return -1, true 2095 } else { 2096 return 1, true 2097 } 2098 case AlertState_FieldPathSelectorLifecycleCompleted: 2099 leftValue := fpv.value.(bool) 2100 rightValue := source.GetLifecycleCompleted() 2101 if (leftValue) == (rightValue) { 2102 return 0, true 2103 } else if !(leftValue) && (rightValue) { 2104 return -1, true 2105 } else { 2106 return 1, true 2107 } 2108 default: 2109 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fpv.selector)) 2110 } 2111 } 2112 2113 func (fpv *AlertState_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2114 return fpv.CompareWith(source.(*Alert_State)) 2115 } 2116 2117 type AlertState_FieldSubPathValue struct { 2118 AlertState_FieldPath 2119 subPathValue gotenobject.FieldPathValue 2120 } 2121 2122 var _ AlertState_FieldPathValue = (*AlertState_FieldSubPathValue)(nil) 2123 2124 func (fpvs *AlertState_FieldSubPathValue) AsLifetimePathValue() (common.TimeRange_FieldPathValue, bool) { 2125 res, ok := fpvs.subPathValue.(common.TimeRange_FieldPathValue) 2126 return res, ok 2127 } 2128 2129 func (fpvs *AlertState_FieldSubPathValue) SetTo(target **Alert_State) { 2130 if *target == nil { 2131 *target = new(Alert_State) 2132 } 2133 switch fpvs.Selector() { 2134 case AlertState_FieldPathSelectorLifetime: 2135 fpvs.subPathValue.(common.TimeRange_FieldPathValue).SetTo(&(*target).Lifetime) 2136 default: 2137 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fpvs.Selector())) 2138 } 2139 } 2140 2141 func (fpvs *AlertState_FieldSubPathValue) SetToRaw(target proto.Message) { 2142 typedObject := target.(*Alert_State) 2143 fpvs.SetTo(&typedObject) 2144 } 2145 2146 func (fpvs *AlertState_FieldSubPathValue) GetRawValue() interface{} { 2147 return fpvs.subPathValue.GetRawValue() 2148 } 2149 2150 func (fpvs *AlertState_FieldSubPathValue) CompareWith(source *Alert_State) (int, bool) { 2151 switch fpvs.Selector() { 2152 case AlertState_FieldPathSelectorLifetime: 2153 return fpvs.subPathValue.(common.TimeRange_FieldPathValue).CompareWith(source.GetLifetime()) 2154 default: 2155 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fpvs.Selector())) 2156 } 2157 } 2158 2159 func (fpvs *AlertState_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2160 return fpvs.CompareWith(source.(*Alert_State)) 2161 } 2162 2163 // AlertState_FieldPathArrayItemValue allows storing single item in Path-specific values for State according to their type 2164 // Present only for array (repeated) types. 2165 type AlertState_FieldPathArrayItemValue interface { 2166 gotenobject.FieldPathArrayItemValue 2167 AlertState_FieldPath 2168 ContainsValue(*Alert_State) bool 2169 } 2170 2171 // ParseAlertState_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 2172 func ParseAlertState_FieldPathArrayItemValue(pathStr, valueStr string) (AlertState_FieldPathArrayItemValue, error) { 2173 fp, err := ParseAlertState_FieldPath(pathStr) 2174 if err != nil { 2175 return nil, err 2176 } 2177 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 2178 if err != nil { 2179 return nil, status.Errorf(codes.InvalidArgument, "error parsing State field path array item value from %s: %v", valueStr, err) 2180 } 2181 return fpaiv.(AlertState_FieldPathArrayItemValue), nil 2182 } 2183 2184 func MustParseAlertState_FieldPathArrayItemValue(pathStr, valueStr string) AlertState_FieldPathArrayItemValue { 2185 fpaiv, err := ParseAlertState_FieldPathArrayItemValue(pathStr, valueStr) 2186 if err != nil { 2187 panic(err) 2188 } 2189 return fpaiv 2190 } 2191 2192 type AlertState_FieldTerminalPathArrayItemValue struct { 2193 AlertState_FieldTerminalPath 2194 value interface{} 2195 } 2196 2197 var _ AlertState_FieldPathArrayItemValue = (*AlertState_FieldTerminalPathArrayItemValue)(nil) 2198 2199 // GetRawValue returns stored element value for array in object Alert_State as interface{} 2200 func (fpaiv *AlertState_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 2201 return fpaiv.value 2202 } 2203 2204 func (fpaiv *AlertState_FieldTerminalPathArrayItemValue) GetSingle(source *Alert_State) (interface{}, bool) { 2205 return nil, false 2206 } 2207 2208 func (fpaiv *AlertState_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 2209 return fpaiv.GetSingle(source.(*Alert_State)) 2210 } 2211 2212 // Contains returns a boolean indicating if value that is being held is present in given 'State' 2213 func (fpaiv *AlertState_FieldTerminalPathArrayItemValue) ContainsValue(source *Alert_State) bool { 2214 slice := fpaiv.AlertState_FieldTerminalPath.Get(source) 2215 for _, v := range slice { 2216 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 2217 if proto.Equal(asProtoMsg, v.(proto.Message)) { 2218 return true 2219 } 2220 } else if reflect.DeepEqual(v, fpaiv.value) { 2221 return true 2222 } 2223 } 2224 return false 2225 } 2226 2227 type AlertState_FieldSubPathArrayItemValue struct { 2228 AlertState_FieldPath 2229 subPathItemValue gotenobject.FieldPathArrayItemValue 2230 } 2231 2232 // GetRawValue returns stored array item value 2233 func (fpaivs *AlertState_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 2234 return fpaivs.subPathItemValue.GetRawItemValue() 2235 } 2236 func (fpaivs *AlertState_FieldSubPathArrayItemValue) AsLifetimePathItemValue() (common.TimeRange_FieldPathArrayItemValue, bool) { 2237 res, ok := fpaivs.subPathItemValue.(common.TimeRange_FieldPathArrayItemValue) 2238 return res, ok 2239 } 2240 2241 // Contains returns a boolean indicating if value that is being held is present in given 'State' 2242 func (fpaivs *AlertState_FieldSubPathArrayItemValue) ContainsValue(source *Alert_State) bool { 2243 switch fpaivs.Selector() { 2244 case AlertState_FieldPathSelectorLifetime: 2245 return fpaivs.subPathItemValue.(common.TimeRange_FieldPathArrayItemValue).ContainsValue(source.GetLifetime()) 2246 default: 2247 panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fpaivs.Selector())) 2248 } 2249 } 2250 2251 // AlertState_FieldPathArrayOfValues allows storing slice of values for State fields according to their type 2252 type AlertState_FieldPathArrayOfValues interface { 2253 gotenobject.FieldPathArrayOfValues 2254 AlertState_FieldPath 2255 } 2256 2257 func ParseAlertState_FieldPathArrayOfValues(pathStr, valuesStr string) (AlertState_FieldPathArrayOfValues, error) { 2258 fp, err := ParseAlertState_FieldPath(pathStr) 2259 if err != nil { 2260 return nil, err 2261 } 2262 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 2263 if err != nil { 2264 return nil, status.Errorf(codes.InvalidArgument, "error parsing State field path array of values from %s: %v", valuesStr, err) 2265 } 2266 return fpaov.(AlertState_FieldPathArrayOfValues), nil 2267 } 2268 2269 func MustParseAlertState_FieldPathArrayOfValues(pathStr, valuesStr string) AlertState_FieldPathArrayOfValues { 2270 fpaov, err := ParseAlertState_FieldPathArrayOfValues(pathStr, valuesStr) 2271 if err != nil { 2272 panic(err) 2273 } 2274 return fpaov 2275 } 2276 2277 type AlertState_FieldTerminalPathArrayOfValues struct { 2278 AlertState_FieldTerminalPath 2279 values interface{} 2280 } 2281 2282 var _ AlertState_FieldPathArrayOfValues = (*AlertState_FieldTerminalPathArrayOfValues)(nil) 2283 2284 func (fpaov *AlertState_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 2285 switch fpaov.selector { 2286 case AlertState_FieldPathSelectorIsFiring: 2287 for _, v := range fpaov.values.([]bool) { 2288 values = append(values, v) 2289 } 2290 case AlertState_FieldPathSelectorIsAcknowledged: 2291 for _, v := range fpaov.values.([]bool) { 2292 values = append(values, v) 2293 } 2294 case AlertState_FieldPathSelectorIsSilenced: 2295 for _, v := range fpaov.values.([]bool) { 2296 values = append(values, v) 2297 } 2298 case AlertState_FieldPathSelectorLifetime: 2299 for _, v := range fpaov.values.([]*common.TimeRange) { 2300 values = append(values, v) 2301 } 2302 case AlertState_FieldPathSelectorNeedsNotification: 2303 for _, v := range fpaov.values.([]bool) { 2304 values = append(values, v) 2305 } 2306 case AlertState_FieldPathSelectorNotificationCreated: 2307 for _, v := range fpaov.values.([]bool) { 2308 values = append(values, v) 2309 } 2310 case AlertState_FieldPathSelectorLifecycleCompleted: 2311 for _, v := range fpaov.values.([]bool) { 2312 values = append(values, v) 2313 } 2314 } 2315 return 2316 } 2317 func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsIsFiringArrayOfValues() ([]bool, bool) { 2318 res, ok := fpaov.values.([]bool) 2319 return res, ok 2320 } 2321 func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsIsAcknowledgedArrayOfValues() ([]bool, bool) { 2322 res, ok := fpaov.values.([]bool) 2323 return res, ok 2324 } 2325 func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsIsSilencedArrayOfValues() ([]bool, bool) { 2326 res, ok := fpaov.values.([]bool) 2327 return res, ok 2328 } 2329 func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsLifetimeArrayOfValues() ([]*common.TimeRange, bool) { 2330 res, ok := fpaov.values.([]*common.TimeRange) 2331 return res, ok 2332 } 2333 func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsNeedsNotificationArrayOfValues() ([]bool, bool) { 2334 res, ok := fpaov.values.([]bool) 2335 return res, ok 2336 } 2337 func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsNotificationCreatedArrayOfValues() ([]bool, bool) { 2338 res, ok := fpaov.values.([]bool) 2339 return res, ok 2340 } 2341 func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsLifecycleCompletedArrayOfValues() ([]bool, bool) { 2342 res, ok := fpaov.values.([]bool) 2343 return res, ok 2344 } 2345 2346 type AlertState_FieldSubPathArrayOfValues struct { 2347 AlertState_FieldPath 2348 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 2349 } 2350 2351 var _ AlertState_FieldPathArrayOfValues = (*AlertState_FieldSubPathArrayOfValues)(nil) 2352 2353 func (fpsaov *AlertState_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 2354 return fpsaov.subPathArrayOfValues.GetRawValues() 2355 } 2356 func (fpsaov *AlertState_FieldSubPathArrayOfValues) AsLifetimePathArrayOfValues() (common.TimeRange_FieldPathArrayOfValues, bool) { 2357 res, ok := fpsaov.subPathArrayOfValues.(common.TimeRange_FieldPathArrayOfValues) 2358 return res, ok 2359 } 2360 2361 // FieldPath provides implementation to handle 2362 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 2363 type AlertInfoTimeSerie_FieldPath interface { 2364 gotenobject.FieldPath 2365 Selector() AlertInfoTimeSerie_FieldPathSelector 2366 Get(source *Alert_Info_TimeSerie) []interface{} 2367 GetSingle(source *Alert_Info_TimeSerie) (interface{}, bool) 2368 ClearValue(item *Alert_Info_TimeSerie) 2369 2370 // Those methods build corresponding AlertInfoTimeSerie_FieldPathValue 2371 // (or array of values) and holds passed value. Panics if injected type is incorrect. 2372 WithIValue(value interface{}) AlertInfoTimeSerie_FieldPathValue 2373 WithIArrayOfValues(values interface{}) AlertInfoTimeSerie_FieldPathArrayOfValues 2374 WithIArrayItemValue(value interface{}) AlertInfoTimeSerie_FieldPathArrayItemValue 2375 } 2376 2377 type AlertInfoTimeSerie_FieldPathSelector int32 2378 2379 const ( 2380 AlertInfoTimeSerie_FieldPathSelectorKey AlertInfoTimeSerie_FieldPathSelector = 0 2381 AlertInfoTimeSerie_FieldPathSelectorMetric AlertInfoTimeSerie_FieldPathSelector = 1 2382 AlertInfoTimeSerie_FieldPathSelectorMonitoredResource AlertInfoTimeSerie_FieldPathSelector = 2 2383 AlertInfoTimeSerie_FieldPathSelectorData AlertInfoTimeSerie_FieldPathSelector = 3 2384 AlertInfoTimeSerie_FieldPathSelectorBinData AlertInfoTimeSerie_FieldPathSelector = 4 2385 ) 2386 2387 func (s AlertInfoTimeSerie_FieldPathSelector) String() string { 2388 switch s { 2389 case AlertInfoTimeSerie_FieldPathSelectorKey: 2390 return "key" 2391 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2392 return "metric" 2393 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2394 return "monitored_resource" 2395 case AlertInfoTimeSerie_FieldPathSelectorData: 2396 return "data" 2397 case AlertInfoTimeSerie_FieldPathSelectorBinData: 2398 return "bin_data" 2399 default: 2400 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", s)) 2401 } 2402 } 2403 2404 func BuildAlertInfoTimeSerie_FieldPath(fp gotenobject.RawFieldPath) (AlertInfoTimeSerie_FieldPath, error) { 2405 if len(fp) == 0 { 2406 return nil, status.Error(codes.InvalidArgument, "empty field path for object Alert_Info_TimeSerie") 2407 } 2408 if len(fp) == 1 { 2409 switch fp[0] { 2410 case "key": 2411 return &AlertInfoTimeSerie_FieldTerminalPath{selector: AlertInfoTimeSerie_FieldPathSelectorKey}, nil 2412 case "metric": 2413 return &AlertInfoTimeSerie_FieldTerminalPath{selector: AlertInfoTimeSerie_FieldPathSelectorMetric}, nil 2414 case "monitored_resource", "monitoredResource", "monitored-resource": 2415 return &AlertInfoTimeSerie_FieldTerminalPath{selector: AlertInfoTimeSerie_FieldPathSelectorMonitoredResource}, nil 2416 case "data": 2417 return &AlertInfoTimeSerie_FieldTerminalPath{selector: AlertInfoTimeSerie_FieldPathSelectorData}, nil 2418 case "bin_data", "binData", "bin-data": 2419 return &AlertInfoTimeSerie_FieldTerminalPath{selector: AlertInfoTimeSerie_FieldPathSelectorBinData}, nil 2420 } 2421 } else { 2422 switch fp[0] { 2423 case "metric": 2424 if subpath, err := common.BuildMetric_FieldPath(fp[1:]); err != nil { 2425 return nil, err 2426 } else { 2427 return &AlertInfoTimeSerie_FieldSubPath{selector: AlertInfoTimeSerie_FieldPathSelectorMetric, subPath: subpath}, nil 2428 } 2429 case "monitored_resource", "monitoredResource", "monitored-resource": 2430 if subpath, err := common.BuildMonitoredResource_FieldPath(fp[1:]); err != nil { 2431 return nil, err 2432 } else { 2433 return &AlertInfoTimeSerie_FieldSubPath{selector: AlertInfoTimeSerie_FieldPathSelectorMonitoredResource, subPath: subpath}, nil 2434 } 2435 } 2436 } 2437 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Alert_Info_TimeSerie", fp) 2438 } 2439 2440 func ParseAlertInfoTimeSerie_FieldPath(rawField string) (AlertInfoTimeSerie_FieldPath, error) { 2441 fp, err := gotenobject.ParseRawFieldPath(rawField) 2442 if err != nil { 2443 return nil, err 2444 } 2445 return BuildAlertInfoTimeSerie_FieldPath(fp) 2446 } 2447 2448 func MustParseAlertInfoTimeSerie_FieldPath(rawField string) AlertInfoTimeSerie_FieldPath { 2449 fp, err := ParseAlertInfoTimeSerie_FieldPath(rawField) 2450 if err != nil { 2451 panic(err) 2452 } 2453 return fp 2454 } 2455 2456 type AlertInfoTimeSerie_FieldTerminalPath struct { 2457 selector AlertInfoTimeSerie_FieldPathSelector 2458 } 2459 2460 var _ AlertInfoTimeSerie_FieldPath = (*AlertInfoTimeSerie_FieldTerminalPath)(nil) 2461 2462 func (fp *AlertInfoTimeSerie_FieldTerminalPath) Selector() AlertInfoTimeSerie_FieldPathSelector { 2463 return fp.selector 2464 } 2465 2466 // String returns path representation in proto convention 2467 func (fp *AlertInfoTimeSerie_FieldTerminalPath) String() string { 2468 return fp.selector.String() 2469 } 2470 2471 // JSONString returns path representation is JSON convention 2472 func (fp *AlertInfoTimeSerie_FieldTerminalPath) JSONString() string { 2473 return strcase.ToLowerCamel(fp.String()) 2474 } 2475 2476 // Get returns all values pointed by specific field from source Alert_Info_TimeSerie 2477 func (fp *AlertInfoTimeSerie_FieldTerminalPath) Get(source *Alert_Info_TimeSerie) (values []interface{}) { 2478 if source != nil { 2479 switch fp.selector { 2480 case AlertInfoTimeSerie_FieldPathSelectorKey: 2481 values = append(values, source.Key) 2482 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2483 if source.Metric != nil { 2484 values = append(values, source.Metric) 2485 } 2486 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2487 if source.MonitoredResource != nil { 2488 values = append(values, source.MonitoredResource) 2489 } 2490 case AlertInfoTimeSerie_FieldPathSelectorData: 2491 for _, value := range source.GetData() { 2492 values = append(values, value) 2493 } 2494 case AlertInfoTimeSerie_FieldPathSelectorBinData: 2495 for _, value := range source.GetBinData() { 2496 values = append(values, value) 2497 } 2498 default: 2499 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector)) 2500 } 2501 } 2502 return 2503 } 2504 2505 func (fp *AlertInfoTimeSerie_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 2506 return fp.Get(source.(*Alert_Info_TimeSerie)) 2507 } 2508 2509 // GetSingle returns value pointed by specific field of from source Alert_Info_TimeSerie 2510 func (fp *AlertInfoTimeSerie_FieldTerminalPath) GetSingle(source *Alert_Info_TimeSerie) (interface{}, bool) { 2511 switch fp.selector { 2512 case AlertInfoTimeSerie_FieldPathSelectorKey: 2513 res := source.GetKey() 2514 return res, res != nil 2515 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2516 res := source.GetMetric() 2517 return res, res != nil 2518 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2519 res := source.GetMonitoredResource() 2520 return res, res != nil 2521 case AlertInfoTimeSerie_FieldPathSelectorData: 2522 res := source.GetData() 2523 return res, res != nil 2524 case AlertInfoTimeSerie_FieldPathSelectorBinData: 2525 res := source.GetBinData() 2526 return res, res != nil 2527 default: 2528 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector)) 2529 } 2530 } 2531 2532 func (fp *AlertInfoTimeSerie_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 2533 return fp.GetSingle(source.(*Alert_Info_TimeSerie)) 2534 } 2535 2536 // GetDefault returns a default value of the field type 2537 func (fp *AlertInfoTimeSerie_FieldTerminalPath) GetDefault() interface{} { 2538 switch fp.selector { 2539 case AlertInfoTimeSerie_FieldPathSelectorKey: 2540 return ([]byte)(nil) 2541 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2542 return (*common.Metric)(nil) 2543 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2544 return (*common.MonitoredResource)(nil) 2545 case AlertInfoTimeSerie_FieldPathSelectorData: 2546 return ([]string)(nil) 2547 case AlertInfoTimeSerie_FieldPathSelectorBinData: 2548 return ([][]byte)(nil) 2549 default: 2550 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector)) 2551 } 2552 } 2553 2554 func (fp *AlertInfoTimeSerie_FieldTerminalPath) ClearValue(item *Alert_Info_TimeSerie) { 2555 if item != nil { 2556 switch fp.selector { 2557 case AlertInfoTimeSerie_FieldPathSelectorKey: 2558 item.Key = nil 2559 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2560 item.Metric = nil 2561 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2562 item.MonitoredResource = nil 2563 case AlertInfoTimeSerie_FieldPathSelectorData: 2564 item.Data = nil 2565 case AlertInfoTimeSerie_FieldPathSelectorBinData: 2566 item.BinData = nil 2567 default: 2568 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector)) 2569 } 2570 } 2571 } 2572 2573 func (fp *AlertInfoTimeSerie_FieldTerminalPath) ClearValueRaw(item proto.Message) { 2574 fp.ClearValue(item.(*Alert_Info_TimeSerie)) 2575 } 2576 2577 // IsLeaf - whether field path is holds simple value 2578 func (fp *AlertInfoTimeSerie_FieldTerminalPath) IsLeaf() bool { 2579 return fp.selector == AlertInfoTimeSerie_FieldPathSelectorKey || 2580 fp.selector == AlertInfoTimeSerie_FieldPathSelectorData || 2581 fp.selector == AlertInfoTimeSerie_FieldPathSelectorBinData 2582 } 2583 2584 func (fp *AlertInfoTimeSerie_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2585 return []gotenobject.FieldPath{fp} 2586 } 2587 2588 func (fp *AlertInfoTimeSerie_FieldTerminalPath) WithIValue(value interface{}) AlertInfoTimeSerie_FieldPathValue { 2589 switch fp.selector { 2590 case AlertInfoTimeSerie_FieldPathSelectorKey: 2591 return &AlertInfoTimeSerie_FieldTerminalPathValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.([]byte)} 2592 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2593 return &AlertInfoTimeSerie_FieldTerminalPathValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.(*common.Metric)} 2594 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2595 return &AlertInfoTimeSerie_FieldTerminalPathValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.(*common.MonitoredResource)} 2596 case AlertInfoTimeSerie_FieldPathSelectorData: 2597 return &AlertInfoTimeSerie_FieldTerminalPathValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.([]string)} 2598 case AlertInfoTimeSerie_FieldPathSelectorBinData: 2599 return &AlertInfoTimeSerie_FieldTerminalPathValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.([][]byte)} 2600 default: 2601 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector)) 2602 } 2603 } 2604 2605 func (fp *AlertInfoTimeSerie_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 2606 return fp.WithIValue(value) 2607 } 2608 2609 func (fp *AlertInfoTimeSerie_FieldTerminalPath) WithIArrayOfValues(values interface{}) AlertInfoTimeSerie_FieldPathArrayOfValues { 2610 fpaov := &AlertInfoTimeSerie_FieldTerminalPathArrayOfValues{AlertInfoTimeSerie_FieldTerminalPath: *fp} 2611 switch fp.selector { 2612 case AlertInfoTimeSerie_FieldPathSelectorKey: 2613 return &AlertInfoTimeSerie_FieldTerminalPathArrayOfValues{AlertInfoTimeSerie_FieldTerminalPath: *fp, values: values.([][]byte)} 2614 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2615 return &AlertInfoTimeSerie_FieldTerminalPathArrayOfValues{AlertInfoTimeSerie_FieldTerminalPath: *fp, values: values.([]*common.Metric)} 2616 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2617 return &AlertInfoTimeSerie_FieldTerminalPathArrayOfValues{AlertInfoTimeSerie_FieldTerminalPath: *fp, values: values.([]*common.MonitoredResource)} 2618 case AlertInfoTimeSerie_FieldPathSelectorData: 2619 return &AlertInfoTimeSerie_FieldTerminalPathArrayOfValues{AlertInfoTimeSerie_FieldTerminalPath: *fp, values: values.([][]string)} 2620 case AlertInfoTimeSerie_FieldPathSelectorBinData: 2621 return &AlertInfoTimeSerie_FieldTerminalPathArrayOfValues{AlertInfoTimeSerie_FieldTerminalPath: *fp, values: values.([][][]byte)} 2622 default: 2623 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector)) 2624 } 2625 return fpaov 2626 } 2627 2628 func (fp *AlertInfoTimeSerie_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 2629 return fp.WithIArrayOfValues(values) 2630 } 2631 2632 func (fp *AlertInfoTimeSerie_FieldTerminalPath) WithIArrayItemValue(value interface{}) AlertInfoTimeSerie_FieldPathArrayItemValue { 2633 switch fp.selector { 2634 case AlertInfoTimeSerie_FieldPathSelectorData: 2635 return &AlertInfoTimeSerie_FieldTerminalPathArrayItemValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.(string)} 2636 case AlertInfoTimeSerie_FieldPathSelectorBinData: 2637 return &AlertInfoTimeSerie_FieldTerminalPathArrayItemValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.([]byte)} 2638 default: 2639 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector)) 2640 } 2641 } 2642 2643 func (fp *AlertInfoTimeSerie_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 2644 return fp.WithIArrayItemValue(value) 2645 } 2646 2647 type AlertInfoTimeSerie_FieldSubPath struct { 2648 selector AlertInfoTimeSerie_FieldPathSelector 2649 subPath gotenobject.FieldPath 2650 } 2651 2652 var _ AlertInfoTimeSerie_FieldPath = (*AlertInfoTimeSerie_FieldSubPath)(nil) 2653 2654 func (fps *AlertInfoTimeSerie_FieldSubPath) Selector() AlertInfoTimeSerie_FieldPathSelector { 2655 return fps.selector 2656 } 2657 func (fps *AlertInfoTimeSerie_FieldSubPath) AsMetricSubPath() (common.Metric_FieldPath, bool) { 2658 res, ok := fps.subPath.(common.Metric_FieldPath) 2659 return res, ok 2660 } 2661 func (fps *AlertInfoTimeSerie_FieldSubPath) AsMonitoredResourceSubPath() (common.MonitoredResource_FieldPath, bool) { 2662 res, ok := fps.subPath.(common.MonitoredResource_FieldPath) 2663 return res, ok 2664 } 2665 2666 // String returns path representation in proto convention 2667 func (fps *AlertInfoTimeSerie_FieldSubPath) String() string { 2668 return fps.selector.String() + "." + fps.subPath.String() 2669 } 2670 2671 // JSONString returns path representation is JSON convention 2672 func (fps *AlertInfoTimeSerie_FieldSubPath) JSONString() string { 2673 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 2674 } 2675 2676 // Get returns all values pointed by selected field from source Alert_Info_TimeSerie 2677 func (fps *AlertInfoTimeSerie_FieldSubPath) Get(source *Alert_Info_TimeSerie) (values []interface{}) { 2678 switch fps.selector { 2679 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2680 values = append(values, fps.subPath.GetRaw(source.GetMetric())...) 2681 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2682 values = append(values, fps.subPath.GetRaw(source.GetMonitoredResource())...) 2683 default: 2684 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fps.selector)) 2685 } 2686 return 2687 } 2688 2689 func (fps *AlertInfoTimeSerie_FieldSubPath) GetRaw(source proto.Message) []interface{} { 2690 return fps.Get(source.(*Alert_Info_TimeSerie)) 2691 } 2692 2693 // GetSingle returns value of selected field from source Alert_Info_TimeSerie 2694 func (fps *AlertInfoTimeSerie_FieldSubPath) GetSingle(source *Alert_Info_TimeSerie) (interface{}, bool) { 2695 switch fps.selector { 2696 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2697 if source.GetMetric() == nil { 2698 return nil, false 2699 } 2700 return fps.subPath.GetSingleRaw(source.GetMetric()) 2701 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2702 if source.GetMonitoredResource() == nil { 2703 return nil, false 2704 } 2705 return fps.subPath.GetSingleRaw(source.GetMonitoredResource()) 2706 default: 2707 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fps.selector)) 2708 } 2709 } 2710 2711 func (fps *AlertInfoTimeSerie_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 2712 return fps.GetSingle(source.(*Alert_Info_TimeSerie)) 2713 } 2714 2715 // GetDefault returns a default value of the field type 2716 func (fps *AlertInfoTimeSerie_FieldSubPath) GetDefault() interface{} { 2717 return fps.subPath.GetDefault() 2718 } 2719 2720 func (fps *AlertInfoTimeSerie_FieldSubPath) ClearValue(item *Alert_Info_TimeSerie) { 2721 if item != nil { 2722 switch fps.selector { 2723 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2724 fps.subPath.ClearValueRaw(item.Metric) 2725 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2726 fps.subPath.ClearValueRaw(item.MonitoredResource) 2727 default: 2728 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fps.selector)) 2729 } 2730 } 2731 } 2732 2733 func (fps *AlertInfoTimeSerie_FieldSubPath) ClearValueRaw(item proto.Message) { 2734 fps.ClearValue(item.(*Alert_Info_TimeSerie)) 2735 } 2736 2737 // IsLeaf - whether field path is holds simple value 2738 func (fps *AlertInfoTimeSerie_FieldSubPath) IsLeaf() bool { 2739 return fps.subPath.IsLeaf() 2740 } 2741 2742 func (fps *AlertInfoTimeSerie_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2743 iPaths := []gotenobject.FieldPath{&AlertInfoTimeSerie_FieldTerminalPath{selector: fps.selector}} 2744 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 2745 return iPaths 2746 } 2747 2748 func (fps *AlertInfoTimeSerie_FieldSubPath) WithIValue(value interface{}) AlertInfoTimeSerie_FieldPathValue { 2749 return &AlertInfoTimeSerie_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 2750 } 2751 2752 func (fps *AlertInfoTimeSerie_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 2753 return fps.WithIValue(value) 2754 } 2755 2756 func (fps *AlertInfoTimeSerie_FieldSubPath) WithIArrayOfValues(values interface{}) AlertInfoTimeSerie_FieldPathArrayOfValues { 2757 return &AlertInfoTimeSerie_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 2758 } 2759 2760 func (fps *AlertInfoTimeSerie_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 2761 return fps.WithIArrayOfValues(values) 2762 } 2763 2764 func (fps *AlertInfoTimeSerie_FieldSubPath) WithIArrayItemValue(value interface{}) AlertInfoTimeSerie_FieldPathArrayItemValue { 2765 return &AlertInfoTimeSerie_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 2766 } 2767 2768 func (fps *AlertInfoTimeSerie_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 2769 return fps.WithIArrayItemValue(value) 2770 } 2771 2772 // AlertInfoTimeSerie_FieldPathValue allows storing values for TimeSerie fields according to their type 2773 type AlertInfoTimeSerie_FieldPathValue interface { 2774 AlertInfoTimeSerie_FieldPath 2775 gotenobject.FieldPathValue 2776 SetTo(target **Alert_Info_TimeSerie) 2777 CompareWith(*Alert_Info_TimeSerie) (cmp int, comparable bool) 2778 } 2779 2780 func ParseAlertInfoTimeSerie_FieldPathValue(pathStr, valueStr string) (AlertInfoTimeSerie_FieldPathValue, error) { 2781 fp, err := ParseAlertInfoTimeSerie_FieldPath(pathStr) 2782 if err != nil { 2783 return nil, err 2784 } 2785 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 2786 if err != nil { 2787 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeSerie field path value from %s: %v", valueStr, err) 2788 } 2789 return fpv.(AlertInfoTimeSerie_FieldPathValue), nil 2790 } 2791 2792 func MustParseAlertInfoTimeSerie_FieldPathValue(pathStr, valueStr string) AlertInfoTimeSerie_FieldPathValue { 2793 fpv, err := ParseAlertInfoTimeSerie_FieldPathValue(pathStr, valueStr) 2794 if err != nil { 2795 panic(err) 2796 } 2797 return fpv 2798 } 2799 2800 type AlertInfoTimeSerie_FieldTerminalPathValue struct { 2801 AlertInfoTimeSerie_FieldTerminalPath 2802 value interface{} 2803 } 2804 2805 var _ AlertInfoTimeSerie_FieldPathValue = (*AlertInfoTimeSerie_FieldTerminalPathValue)(nil) 2806 2807 // GetRawValue returns raw value stored under selected path for 'TimeSerie' as interface{} 2808 func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) GetRawValue() interface{} { 2809 return fpv.value 2810 } 2811 func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) AsKeyValue() ([]byte, bool) { 2812 res, ok := fpv.value.([]byte) 2813 return res, ok 2814 } 2815 func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) AsMetricValue() (*common.Metric, bool) { 2816 res, ok := fpv.value.(*common.Metric) 2817 return res, ok 2818 } 2819 func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) AsMonitoredResourceValue() (*common.MonitoredResource, bool) { 2820 res, ok := fpv.value.(*common.MonitoredResource) 2821 return res, ok 2822 } 2823 func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) AsDataValue() ([]string, bool) { 2824 res, ok := fpv.value.([]string) 2825 return res, ok 2826 } 2827 func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) AsBinDataValue() ([][]byte, bool) { 2828 res, ok := fpv.value.([][]byte) 2829 return res, ok 2830 } 2831 2832 // SetTo stores value for selected field for object TimeSerie 2833 func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) SetTo(target **Alert_Info_TimeSerie) { 2834 if *target == nil { 2835 *target = new(Alert_Info_TimeSerie) 2836 } 2837 switch fpv.selector { 2838 case AlertInfoTimeSerie_FieldPathSelectorKey: 2839 (*target).Key = fpv.value.([]byte) 2840 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2841 (*target).Metric = fpv.value.(*common.Metric) 2842 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2843 (*target).MonitoredResource = fpv.value.(*common.MonitoredResource) 2844 case AlertInfoTimeSerie_FieldPathSelectorData: 2845 (*target).Data = fpv.value.([]string) 2846 case AlertInfoTimeSerie_FieldPathSelectorBinData: 2847 (*target).BinData = fpv.value.([][]byte) 2848 default: 2849 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fpv.selector)) 2850 } 2851 } 2852 2853 func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) SetToRaw(target proto.Message) { 2854 typedObject := target.(*Alert_Info_TimeSerie) 2855 fpv.SetTo(&typedObject) 2856 } 2857 2858 // CompareWith compares value in the 'AlertInfoTimeSerie_FieldTerminalPathValue' with the value under path in 'Alert_Info_TimeSerie'. 2859 func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) CompareWith(source *Alert_Info_TimeSerie) (int, bool) { 2860 switch fpv.selector { 2861 case AlertInfoTimeSerie_FieldPathSelectorKey: 2862 return 0, false 2863 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2864 return 0, false 2865 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2866 return 0, false 2867 case AlertInfoTimeSerie_FieldPathSelectorData: 2868 return 0, false 2869 case AlertInfoTimeSerie_FieldPathSelectorBinData: 2870 return 0, false 2871 default: 2872 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fpv.selector)) 2873 } 2874 } 2875 2876 func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2877 return fpv.CompareWith(source.(*Alert_Info_TimeSerie)) 2878 } 2879 2880 type AlertInfoTimeSerie_FieldSubPathValue struct { 2881 AlertInfoTimeSerie_FieldPath 2882 subPathValue gotenobject.FieldPathValue 2883 } 2884 2885 var _ AlertInfoTimeSerie_FieldPathValue = (*AlertInfoTimeSerie_FieldSubPathValue)(nil) 2886 2887 func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) AsMetricPathValue() (common.Metric_FieldPathValue, bool) { 2888 res, ok := fpvs.subPathValue.(common.Metric_FieldPathValue) 2889 return res, ok 2890 } 2891 func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) AsMonitoredResourcePathValue() (common.MonitoredResource_FieldPathValue, bool) { 2892 res, ok := fpvs.subPathValue.(common.MonitoredResource_FieldPathValue) 2893 return res, ok 2894 } 2895 2896 func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) SetTo(target **Alert_Info_TimeSerie) { 2897 if *target == nil { 2898 *target = new(Alert_Info_TimeSerie) 2899 } 2900 switch fpvs.Selector() { 2901 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2902 fpvs.subPathValue.(common.Metric_FieldPathValue).SetTo(&(*target).Metric) 2903 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2904 fpvs.subPathValue.(common.MonitoredResource_FieldPathValue).SetTo(&(*target).MonitoredResource) 2905 default: 2906 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fpvs.Selector())) 2907 } 2908 } 2909 2910 func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) SetToRaw(target proto.Message) { 2911 typedObject := target.(*Alert_Info_TimeSerie) 2912 fpvs.SetTo(&typedObject) 2913 } 2914 2915 func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) GetRawValue() interface{} { 2916 return fpvs.subPathValue.GetRawValue() 2917 } 2918 2919 func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) CompareWith(source *Alert_Info_TimeSerie) (int, bool) { 2920 switch fpvs.Selector() { 2921 case AlertInfoTimeSerie_FieldPathSelectorMetric: 2922 return fpvs.subPathValue.(common.Metric_FieldPathValue).CompareWith(source.GetMetric()) 2923 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 2924 return fpvs.subPathValue.(common.MonitoredResource_FieldPathValue).CompareWith(source.GetMonitoredResource()) 2925 default: 2926 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fpvs.Selector())) 2927 } 2928 } 2929 2930 func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2931 return fpvs.CompareWith(source.(*Alert_Info_TimeSerie)) 2932 } 2933 2934 // AlertInfoTimeSerie_FieldPathArrayItemValue allows storing single item in Path-specific values for TimeSerie according to their type 2935 // Present only for array (repeated) types. 2936 type AlertInfoTimeSerie_FieldPathArrayItemValue interface { 2937 gotenobject.FieldPathArrayItemValue 2938 AlertInfoTimeSerie_FieldPath 2939 ContainsValue(*Alert_Info_TimeSerie) bool 2940 } 2941 2942 // ParseAlertInfoTimeSerie_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 2943 func ParseAlertInfoTimeSerie_FieldPathArrayItemValue(pathStr, valueStr string) (AlertInfoTimeSerie_FieldPathArrayItemValue, error) { 2944 fp, err := ParseAlertInfoTimeSerie_FieldPath(pathStr) 2945 if err != nil { 2946 return nil, err 2947 } 2948 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 2949 if err != nil { 2950 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeSerie field path array item value from %s: %v", valueStr, err) 2951 } 2952 return fpaiv.(AlertInfoTimeSerie_FieldPathArrayItemValue), nil 2953 } 2954 2955 func MustParseAlertInfoTimeSerie_FieldPathArrayItemValue(pathStr, valueStr string) AlertInfoTimeSerie_FieldPathArrayItemValue { 2956 fpaiv, err := ParseAlertInfoTimeSerie_FieldPathArrayItemValue(pathStr, valueStr) 2957 if err != nil { 2958 panic(err) 2959 } 2960 return fpaiv 2961 } 2962 2963 type AlertInfoTimeSerie_FieldTerminalPathArrayItemValue struct { 2964 AlertInfoTimeSerie_FieldTerminalPath 2965 value interface{} 2966 } 2967 2968 var _ AlertInfoTimeSerie_FieldPathArrayItemValue = (*AlertInfoTimeSerie_FieldTerminalPathArrayItemValue)(nil) 2969 2970 // GetRawValue returns stored element value for array in object Alert_Info_TimeSerie as interface{} 2971 func (fpaiv *AlertInfoTimeSerie_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 2972 return fpaiv.value 2973 } 2974 func (fpaiv *AlertInfoTimeSerie_FieldTerminalPathArrayItemValue) AsDataItemValue() (string, bool) { 2975 res, ok := fpaiv.value.(string) 2976 return res, ok 2977 } 2978 func (fpaiv *AlertInfoTimeSerie_FieldTerminalPathArrayItemValue) AsBinDataItemValue() ([]byte, bool) { 2979 res, ok := fpaiv.value.([]byte) 2980 return res, ok 2981 } 2982 2983 func (fpaiv *AlertInfoTimeSerie_FieldTerminalPathArrayItemValue) GetSingle(source *Alert_Info_TimeSerie) (interface{}, bool) { 2984 return nil, false 2985 } 2986 2987 func (fpaiv *AlertInfoTimeSerie_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 2988 return fpaiv.GetSingle(source.(*Alert_Info_TimeSerie)) 2989 } 2990 2991 // Contains returns a boolean indicating if value that is being held is present in given 'TimeSerie' 2992 func (fpaiv *AlertInfoTimeSerie_FieldTerminalPathArrayItemValue) ContainsValue(source *Alert_Info_TimeSerie) bool { 2993 slice := fpaiv.AlertInfoTimeSerie_FieldTerminalPath.Get(source) 2994 for _, v := range slice { 2995 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 2996 if proto.Equal(asProtoMsg, v.(proto.Message)) { 2997 return true 2998 } 2999 } else if reflect.DeepEqual(v, fpaiv.value) { 3000 return true 3001 } 3002 } 3003 return false 3004 } 3005 3006 type AlertInfoTimeSerie_FieldSubPathArrayItemValue struct { 3007 AlertInfoTimeSerie_FieldPath 3008 subPathItemValue gotenobject.FieldPathArrayItemValue 3009 } 3010 3011 // GetRawValue returns stored array item value 3012 func (fpaivs *AlertInfoTimeSerie_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 3013 return fpaivs.subPathItemValue.GetRawItemValue() 3014 } 3015 func (fpaivs *AlertInfoTimeSerie_FieldSubPathArrayItemValue) AsMetricPathItemValue() (common.Metric_FieldPathArrayItemValue, bool) { 3016 res, ok := fpaivs.subPathItemValue.(common.Metric_FieldPathArrayItemValue) 3017 return res, ok 3018 } 3019 func (fpaivs *AlertInfoTimeSerie_FieldSubPathArrayItemValue) AsMonitoredResourcePathItemValue() (common.MonitoredResource_FieldPathArrayItemValue, bool) { 3020 res, ok := fpaivs.subPathItemValue.(common.MonitoredResource_FieldPathArrayItemValue) 3021 return res, ok 3022 } 3023 3024 // Contains returns a boolean indicating if value that is being held is present in given 'TimeSerie' 3025 func (fpaivs *AlertInfoTimeSerie_FieldSubPathArrayItemValue) ContainsValue(source *Alert_Info_TimeSerie) bool { 3026 switch fpaivs.Selector() { 3027 case AlertInfoTimeSerie_FieldPathSelectorMetric: 3028 return fpaivs.subPathItemValue.(common.Metric_FieldPathArrayItemValue).ContainsValue(source.GetMetric()) 3029 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 3030 return fpaivs.subPathItemValue.(common.MonitoredResource_FieldPathArrayItemValue).ContainsValue(source.GetMonitoredResource()) 3031 default: 3032 panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fpaivs.Selector())) 3033 } 3034 } 3035 3036 // AlertInfoTimeSerie_FieldPathArrayOfValues allows storing slice of values for TimeSerie fields according to their type 3037 type AlertInfoTimeSerie_FieldPathArrayOfValues interface { 3038 gotenobject.FieldPathArrayOfValues 3039 AlertInfoTimeSerie_FieldPath 3040 } 3041 3042 func ParseAlertInfoTimeSerie_FieldPathArrayOfValues(pathStr, valuesStr string) (AlertInfoTimeSerie_FieldPathArrayOfValues, error) { 3043 fp, err := ParseAlertInfoTimeSerie_FieldPath(pathStr) 3044 if err != nil { 3045 return nil, err 3046 } 3047 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 3048 if err != nil { 3049 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeSerie field path array of values from %s: %v", valuesStr, err) 3050 } 3051 return fpaov.(AlertInfoTimeSerie_FieldPathArrayOfValues), nil 3052 } 3053 3054 func MustParseAlertInfoTimeSerie_FieldPathArrayOfValues(pathStr, valuesStr string) AlertInfoTimeSerie_FieldPathArrayOfValues { 3055 fpaov, err := ParseAlertInfoTimeSerie_FieldPathArrayOfValues(pathStr, valuesStr) 3056 if err != nil { 3057 panic(err) 3058 } 3059 return fpaov 3060 } 3061 3062 type AlertInfoTimeSerie_FieldTerminalPathArrayOfValues struct { 3063 AlertInfoTimeSerie_FieldTerminalPath 3064 values interface{} 3065 } 3066 3067 var _ AlertInfoTimeSerie_FieldPathArrayOfValues = (*AlertInfoTimeSerie_FieldTerminalPathArrayOfValues)(nil) 3068 3069 func (fpaov *AlertInfoTimeSerie_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 3070 switch fpaov.selector { 3071 case AlertInfoTimeSerie_FieldPathSelectorKey: 3072 for _, v := range fpaov.values.([][]byte) { 3073 values = append(values, v) 3074 } 3075 case AlertInfoTimeSerie_FieldPathSelectorMetric: 3076 for _, v := range fpaov.values.([]*common.Metric) { 3077 values = append(values, v) 3078 } 3079 case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource: 3080 for _, v := range fpaov.values.([]*common.MonitoredResource) { 3081 values = append(values, v) 3082 } 3083 case AlertInfoTimeSerie_FieldPathSelectorData: 3084 for _, v := range fpaov.values.([][]string) { 3085 values = append(values, v) 3086 } 3087 case AlertInfoTimeSerie_FieldPathSelectorBinData: 3088 for _, v := range fpaov.values.([][][]byte) { 3089 values = append(values, v) 3090 } 3091 } 3092 return 3093 } 3094 func (fpaov *AlertInfoTimeSerie_FieldTerminalPathArrayOfValues) AsKeyArrayOfValues() ([][]byte, bool) { 3095 res, ok := fpaov.values.([][]byte) 3096 return res, ok 3097 } 3098 func (fpaov *AlertInfoTimeSerie_FieldTerminalPathArrayOfValues) AsMetricArrayOfValues() ([]*common.Metric, bool) { 3099 res, ok := fpaov.values.([]*common.Metric) 3100 return res, ok 3101 } 3102 func (fpaov *AlertInfoTimeSerie_FieldTerminalPathArrayOfValues) AsMonitoredResourceArrayOfValues() ([]*common.MonitoredResource, bool) { 3103 res, ok := fpaov.values.([]*common.MonitoredResource) 3104 return res, ok 3105 } 3106 func (fpaov *AlertInfoTimeSerie_FieldTerminalPathArrayOfValues) AsDataArrayOfValues() ([][]string, bool) { 3107 res, ok := fpaov.values.([][]string) 3108 return res, ok 3109 } 3110 func (fpaov *AlertInfoTimeSerie_FieldTerminalPathArrayOfValues) AsBinDataArrayOfValues() ([][][]byte, bool) { 3111 res, ok := fpaov.values.([][][]byte) 3112 return res, ok 3113 } 3114 3115 type AlertInfoTimeSerie_FieldSubPathArrayOfValues struct { 3116 AlertInfoTimeSerie_FieldPath 3117 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 3118 } 3119 3120 var _ AlertInfoTimeSerie_FieldPathArrayOfValues = (*AlertInfoTimeSerie_FieldSubPathArrayOfValues)(nil) 3121 3122 func (fpsaov *AlertInfoTimeSerie_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 3123 return fpsaov.subPathArrayOfValues.GetRawValues() 3124 } 3125 func (fpsaov *AlertInfoTimeSerie_FieldSubPathArrayOfValues) AsMetricPathArrayOfValues() (common.Metric_FieldPathArrayOfValues, bool) { 3126 res, ok := fpsaov.subPathArrayOfValues.(common.Metric_FieldPathArrayOfValues) 3127 return res, ok 3128 } 3129 func (fpsaov *AlertInfoTimeSerie_FieldSubPathArrayOfValues) AsMonitoredResourcePathArrayOfValues() (common.MonitoredResource_FieldPathArrayOfValues, bool) { 3130 res, ok := fpsaov.subPathArrayOfValues.(common.MonitoredResource_FieldPathArrayOfValues) 3131 return res, ok 3132 } 3133 3134 // FieldPath provides implementation to handle 3135 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 3136 type AlertInfoObservedValues_FieldPath interface { 3137 gotenobject.FieldPath 3138 Selector() AlertInfoObservedValues_FieldPathSelector 3139 Get(source *Alert_Info_ObservedValues) []interface{} 3140 GetSingle(source *Alert_Info_ObservedValues) (interface{}, bool) 3141 ClearValue(item *Alert_Info_ObservedValues) 3142 3143 // Those methods build corresponding AlertInfoObservedValues_FieldPathValue 3144 // (or array of values) and holds passed value. Panics if injected type is incorrect. 3145 WithIValue(value interface{}) AlertInfoObservedValues_FieldPathValue 3146 WithIArrayOfValues(values interface{}) AlertInfoObservedValues_FieldPathArrayOfValues 3147 WithIArrayItemValue(value interface{}) AlertInfoObservedValues_FieldPathArrayItemValue 3148 } 3149 3150 type AlertInfoObservedValues_FieldPathSelector int32 3151 3152 const ( 3153 AlertInfoObservedValues_FieldPathSelectorExampleValue AlertInfoObservedValues_FieldPathSelector = 0 3154 AlertInfoObservedValues_FieldPathSelectorPerMetric AlertInfoObservedValues_FieldPathSelector = 1 3155 ) 3156 3157 func (s AlertInfoObservedValues_FieldPathSelector) String() string { 3158 switch s { 3159 case AlertInfoObservedValues_FieldPathSelectorExampleValue: 3160 return "example_value" 3161 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3162 return "per_metric" 3163 default: 3164 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", s)) 3165 } 3166 } 3167 3168 func BuildAlertInfoObservedValues_FieldPath(fp gotenobject.RawFieldPath) (AlertInfoObservedValues_FieldPath, error) { 3169 if len(fp) == 0 { 3170 return nil, status.Error(codes.InvalidArgument, "empty field path for object Alert_Info_ObservedValues") 3171 } 3172 if len(fp) == 1 { 3173 switch fp[0] { 3174 case "example_value", "exampleValue", "example-value": 3175 return &AlertInfoObservedValues_FieldTerminalPath{selector: AlertInfoObservedValues_FieldPathSelectorExampleValue}, nil 3176 case "per_metric", "perMetric", "per-metric": 3177 return &AlertInfoObservedValues_FieldTerminalPath{selector: AlertInfoObservedValues_FieldPathSelectorPerMetric}, nil 3178 } 3179 } else { 3180 switch fp[0] { 3181 case "per_metric", "perMetric", "per-metric": 3182 if len(fp) > 2 { 3183 return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object Alert_Info_ObservedValues)", fp) 3184 } 3185 return &AlertInfoObservedValues_FieldPathMap{selector: AlertInfoObservedValues_FieldPathSelectorPerMetric, key: fp[1]}, nil 3186 } 3187 } 3188 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Alert_Info_ObservedValues", fp) 3189 } 3190 3191 func ParseAlertInfoObservedValues_FieldPath(rawField string) (AlertInfoObservedValues_FieldPath, error) { 3192 fp, err := gotenobject.ParseRawFieldPath(rawField) 3193 if err != nil { 3194 return nil, err 3195 } 3196 return BuildAlertInfoObservedValues_FieldPath(fp) 3197 } 3198 3199 func MustParseAlertInfoObservedValues_FieldPath(rawField string) AlertInfoObservedValues_FieldPath { 3200 fp, err := ParseAlertInfoObservedValues_FieldPath(rawField) 3201 if err != nil { 3202 panic(err) 3203 } 3204 return fp 3205 } 3206 3207 type AlertInfoObservedValues_FieldTerminalPath struct { 3208 selector AlertInfoObservedValues_FieldPathSelector 3209 } 3210 3211 var _ AlertInfoObservedValues_FieldPath = (*AlertInfoObservedValues_FieldTerminalPath)(nil) 3212 3213 func (fp *AlertInfoObservedValues_FieldTerminalPath) Selector() AlertInfoObservedValues_FieldPathSelector { 3214 return fp.selector 3215 } 3216 3217 // String returns path representation in proto convention 3218 func (fp *AlertInfoObservedValues_FieldTerminalPath) String() string { 3219 return fp.selector.String() 3220 } 3221 3222 // JSONString returns path representation is JSON convention 3223 func (fp *AlertInfoObservedValues_FieldTerminalPath) JSONString() string { 3224 return strcase.ToLowerCamel(fp.String()) 3225 } 3226 3227 // Get returns all values pointed by specific field from source Alert_Info_ObservedValues 3228 func (fp *AlertInfoObservedValues_FieldTerminalPath) Get(source *Alert_Info_ObservedValues) (values []interface{}) { 3229 if source != nil { 3230 switch fp.selector { 3231 case AlertInfoObservedValues_FieldPathSelectorExampleValue: 3232 values = append(values, source.ExampleValue) 3233 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3234 values = append(values, source.PerMetric) 3235 default: 3236 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector)) 3237 } 3238 } 3239 return 3240 } 3241 3242 func (fp *AlertInfoObservedValues_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 3243 return fp.Get(source.(*Alert_Info_ObservedValues)) 3244 } 3245 3246 // GetSingle returns value pointed by specific field of from source Alert_Info_ObservedValues 3247 func (fp *AlertInfoObservedValues_FieldTerminalPath) GetSingle(source *Alert_Info_ObservedValues) (interface{}, bool) { 3248 switch fp.selector { 3249 case AlertInfoObservedValues_FieldPathSelectorExampleValue: 3250 return source.GetExampleValue(), source != nil 3251 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3252 res := source.GetPerMetric() 3253 return res, res != nil 3254 default: 3255 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector)) 3256 } 3257 } 3258 3259 func (fp *AlertInfoObservedValues_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 3260 return fp.GetSingle(source.(*Alert_Info_ObservedValues)) 3261 } 3262 3263 // GetDefault returns a default value of the field type 3264 func (fp *AlertInfoObservedValues_FieldTerminalPath) GetDefault() interface{} { 3265 switch fp.selector { 3266 case AlertInfoObservedValues_FieldPathSelectorExampleValue: 3267 return float64(0) 3268 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3269 return (map[string]float64)(nil) 3270 default: 3271 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector)) 3272 } 3273 } 3274 3275 func (fp *AlertInfoObservedValues_FieldTerminalPath) ClearValue(item *Alert_Info_ObservedValues) { 3276 if item != nil { 3277 switch fp.selector { 3278 case AlertInfoObservedValues_FieldPathSelectorExampleValue: 3279 item.ExampleValue = float64(0) 3280 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3281 item.PerMetric = nil 3282 default: 3283 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector)) 3284 } 3285 } 3286 } 3287 3288 func (fp *AlertInfoObservedValues_FieldTerminalPath) ClearValueRaw(item proto.Message) { 3289 fp.ClearValue(item.(*Alert_Info_ObservedValues)) 3290 } 3291 3292 // IsLeaf - whether field path is holds simple value 3293 func (fp *AlertInfoObservedValues_FieldTerminalPath) IsLeaf() bool { 3294 return fp.selector == AlertInfoObservedValues_FieldPathSelectorExampleValue || 3295 fp.selector == AlertInfoObservedValues_FieldPathSelectorPerMetric 3296 } 3297 3298 func (fp *AlertInfoObservedValues_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 3299 return []gotenobject.FieldPath{fp} 3300 } 3301 3302 func (fp *AlertInfoObservedValues_FieldTerminalPath) WithIValue(value interface{}) AlertInfoObservedValues_FieldPathValue { 3303 switch fp.selector { 3304 case AlertInfoObservedValues_FieldPathSelectorExampleValue: 3305 return &AlertInfoObservedValues_FieldTerminalPathValue{AlertInfoObservedValues_FieldTerminalPath: *fp, value: value.(float64)} 3306 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3307 return &AlertInfoObservedValues_FieldTerminalPathValue{AlertInfoObservedValues_FieldTerminalPath: *fp, value: value.(map[string]float64)} 3308 default: 3309 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector)) 3310 } 3311 } 3312 3313 func (fp *AlertInfoObservedValues_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 3314 return fp.WithIValue(value) 3315 } 3316 3317 func (fp *AlertInfoObservedValues_FieldTerminalPath) WithIArrayOfValues(values interface{}) AlertInfoObservedValues_FieldPathArrayOfValues { 3318 fpaov := &AlertInfoObservedValues_FieldTerminalPathArrayOfValues{AlertInfoObservedValues_FieldTerminalPath: *fp} 3319 switch fp.selector { 3320 case AlertInfoObservedValues_FieldPathSelectorExampleValue: 3321 return &AlertInfoObservedValues_FieldTerminalPathArrayOfValues{AlertInfoObservedValues_FieldTerminalPath: *fp, values: values.([]float64)} 3322 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3323 return &AlertInfoObservedValues_FieldTerminalPathArrayOfValues{AlertInfoObservedValues_FieldTerminalPath: *fp, values: values.([]map[string]float64)} 3324 default: 3325 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector)) 3326 } 3327 return fpaov 3328 } 3329 3330 func (fp *AlertInfoObservedValues_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 3331 return fp.WithIArrayOfValues(values) 3332 } 3333 3334 func (fp *AlertInfoObservedValues_FieldTerminalPath) WithIArrayItemValue(value interface{}) AlertInfoObservedValues_FieldPathArrayItemValue { 3335 switch fp.selector { 3336 default: 3337 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector)) 3338 } 3339 } 3340 3341 func (fp *AlertInfoObservedValues_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 3342 return fp.WithIArrayItemValue(value) 3343 } 3344 3345 // FieldPath for map type with additional Key information 3346 type AlertInfoObservedValues_FieldPathMap struct { 3347 key string 3348 selector AlertInfoObservedValues_FieldPathSelector 3349 } 3350 3351 var _ AlertInfoObservedValues_FieldPath = (*AlertInfoObservedValues_FieldPathMap)(nil) 3352 3353 func (fpm *AlertInfoObservedValues_FieldPathMap) Selector() AlertInfoObservedValues_FieldPathSelector { 3354 return fpm.selector 3355 } 3356 3357 func (fpm *AlertInfoObservedValues_FieldPathMap) Key() string { 3358 return fpm.key 3359 } 3360 3361 // String returns path representation in proto convention 3362 func (fpm *AlertInfoObservedValues_FieldPathMap) String() string { 3363 return fpm.selector.String() + "." + fpm.key 3364 } 3365 3366 // JSONString returns path representation is JSON convention. Note that map keys are not transformed 3367 func (fpm *AlertInfoObservedValues_FieldPathMap) JSONString() string { 3368 return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key 3369 } 3370 3371 // Get returns all values pointed by selected field map key from source Alert_Info_ObservedValues 3372 func (fpm *AlertInfoObservedValues_FieldPathMap) Get(source *Alert_Info_ObservedValues) (values []interface{}) { 3373 switch fpm.selector { 3374 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3375 if value, ok := source.GetPerMetric()[fpm.key]; ok { 3376 values = append(values, value) 3377 } 3378 default: 3379 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector)) 3380 } 3381 return 3382 } 3383 3384 func (fpm *AlertInfoObservedValues_FieldPathMap) GetRaw(source proto.Message) []interface{} { 3385 return fpm.Get(source.(*Alert_Info_ObservedValues)) 3386 } 3387 3388 // GetSingle returns value by selected field map key from source Alert_Info_ObservedValues 3389 func (fpm *AlertInfoObservedValues_FieldPathMap) GetSingle(source *Alert_Info_ObservedValues) (interface{}, bool) { 3390 switch fpm.selector { 3391 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3392 res, ok := source.GetPerMetric()[fpm.key] 3393 return res, ok 3394 default: 3395 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector)) 3396 } 3397 } 3398 3399 func (fpm *AlertInfoObservedValues_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) { 3400 return fpm.GetSingle(source.(*Alert_Info_ObservedValues)) 3401 } 3402 3403 // GetDefault returns a default value of the field type 3404 func (fpm *AlertInfoObservedValues_FieldPathMap) GetDefault() interface{} { 3405 switch fpm.selector { 3406 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3407 var v float64 3408 return v 3409 default: 3410 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector)) 3411 } 3412 } 3413 3414 func (fpm *AlertInfoObservedValues_FieldPathMap) ClearValue(item *Alert_Info_ObservedValues) { 3415 if item != nil { 3416 switch fpm.selector { 3417 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3418 delete(item.PerMetric, fpm.key) 3419 default: 3420 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector)) 3421 } 3422 } 3423 } 3424 3425 func (fpm *AlertInfoObservedValues_FieldPathMap) ClearValueRaw(item proto.Message) { 3426 fpm.ClearValue(item.(*Alert_Info_ObservedValues)) 3427 } 3428 3429 // IsLeaf - whether field path is holds simple value 3430 func (fpm *AlertInfoObservedValues_FieldPathMap) IsLeaf() bool { 3431 switch fpm.selector { 3432 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3433 return true 3434 default: 3435 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector)) 3436 } 3437 } 3438 3439 func (fpm *AlertInfoObservedValues_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 3440 return []gotenobject.FieldPath{fpm} 3441 } 3442 3443 func (fpm *AlertInfoObservedValues_FieldPathMap) WithIValue(value interface{}) AlertInfoObservedValues_FieldPathValue { 3444 switch fpm.selector { 3445 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3446 return &AlertInfoObservedValues_FieldPathMapValue{AlertInfoObservedValues_FieldPathMap: *fpm, value: value.(float64)} 3447 default: 3448 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector)) 3449 } 3450 } 3451 3452 func (fpm *AlertInfoObservedValues_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 3453 return fpm.WithIValue(value) 3454 } 3455 3456 func (fpm *AlertInfoObservedValues_FieldPathMap) WithIArrayOfValues(values interface{}) AlertInfoObservedValues_FieldPathArrayOfValues { 3457 switch fpm.selector { 3458 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3459 return &AlertInfoObservedValues_FieldPathMapArrayOfValues{AlertInfoObservedValues_FieldPathMap: *fpm, values: values.([]float64)} 3460 default: 3461 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector)) 3462 } 3463 } 3464 3465 func (fpm *AlertInfoObservedValues_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 3466 return fpm.WithIArrayOfValues(values) 3467 } 3468 3469 func (fpm *AlertInfoObservedValues_FieldPathMap) WithIArrayItemValue(value interface{}) AlertInfoObservedValues_FieldPathArrayItemValue { 3470 panic("Cannot create array item value from map fieldpath") 3471 } 3472 3473 func (fpm *AlertInfoObservedValues_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 3474 return fpm.WithIArrayItemValue(value) 3475 } 3476 3477 // AlertInfoObservedValues_FieldPathValue allows storing values for ObservedValues fields according to their type 3478 type AlertInfoObservedValues_FieldPathValue interface { 3479 AlertInfoObservedValues_FieldPath 3480 gotenobject.FieldPathValue 3481 SetTo(target **Alert_Info_ObservedValues) 3482 CompareWith(*Alert_Info_ObservedValues) (cmp int, comparable bool) 3483 } 3484 3485 func ParseAlertInfoObservedValues_FieldPathValue(pathStr, valueStr string) (AlertInfoObservedValues_FieldPathValue, error) { 3486 fp, err := ParseAlertInfoObservedValues_FieldPath(pathStr) 3487 if err != nil { 3488 return nil, err 3489 } 3490 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 3491 if err != nil { 3492 return nil, status.Errorf(codes.InvalidArgument, "error parsing ObservedValues field path value from %s: %v", valueStr, err) 3493 } 3494 return fpv.(AlertInfoObservedValues_FieldPathValue), nil 3495 } 3496 3497 func MustParseAlertInfoObservedValues_FieldPathValue(pathStr, valueStr string) AlertInfoObservedValues_FieldPathValue { 3498 fpv, err := ParseAlertInfoObservedValues_FieldPathValue(pathStr, valueStr) 3499 if err != nil { 3500 panic(err) 3501 } 3502 return fpv 3503 } 3504 3505 type AlertInfoObservedValues_FieldTerminalPathValue struct { 3506 AlertInfoObservedValues_FieldTerminalPath 3507 value interface{} 3508 } 3509 3510 var _ AlertInfoObservedValues_FieldPathValue = (*AlertInfoObservedValues_FieldTerminalPathValue)(nil) 3511 3512 // GetRawValue returns raw value stored under selected path for 'ObservedValues' as interface{} 3513 func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) GetRawValue() interface{} { 3514 return fpv.value 3515 } 3516 func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) AsExampleValueValue() (float64, bool) { 3517 res, ok := fpv.value.(float64) 3518 return res, ok 3519 } 3520 func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) AsPerMetricValue() (map[string]float64, bool) { 3521 res, ok := fpv.value.(map[string]float64) 3522 return res, ok 3523 } 3524 3525 // SetTo stores value for selected field for object ObservedValues 3526 func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) SetTo(target **Alert_Info_ObservedValues) { 3527 if *target == nil { 3528 *target = new(Alert_Info_ObservedValues) 3529 } 3530 switch fpv.selector { 3531 case AlertInfoObservedValues_FieldPathSelectorExampleValue: 3532 (*target).ExampleValue = fpv.value.(float64) 3533 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3534 (*target).PerMetric = fpv.value.(map[string]float64) 3535 default: 3536 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpv.selector)) 3537 } 3538 } 3539 3540 func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) SetToRaw(target proto.Message) { 3541 typedObject := target.(*Alert_Info_ObservedValues) 3542 fpv.SetTo(&typedObject) 3543 } 3544 3545 // CompareWith compares value in the 'AlertInfoObservedValues_FieldTerminalPathValue' with the value under path in 'Alert_Info_ObservedValues'. 3546 func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) CompareWith(source *Alert_Info_ObservedValues) (int, bool) { 3547 switch fpv.selector { 3548 case AlertInfoObservedValues_FieldPathSelectorExampleValue: 3549 leftValue := fpv.value.(float64) 3550 rightValue := source.GetExampleValue() 3551 if (leftValue) == (rightValue) { 3552 return 0, true 3553 } else if (leftValue) < (rightValue) { 3554 return -1, true 3555 } else { 3556 return 1, true 3557 } 3558 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3559 return 0, false 3560 default: 3561 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpv.selector)) 3562 } 3563 } 3564 3565 func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 3566 return fpv.CompareWith(source.(*Alert_Info_ObservedValues)) 3567 } 3568 3569 type AlertInfoObservedValues_FieldPathMapValue struct { 3570 AlertInfoObservedValues_FieldPathMap 3571 value interface{} 3572 } 3573 3574 var _ AlertInfoObservedValues_FieldPathValue = (*AlertInfoObservedValues_FieldPathMapValue)(nil) 3575 3576 // GetValue returns value stored under selected field in ObservedValues as interface{} 3577 func (fpmv *AlertInfoObservedValues_FieldPathMapValue) GetRawValue() interface{} { 3578 return fpmv.value 3579 } 3580 func (fpmv *AlertInfoObservedValues_FieldPathMapValue) AsPerMetricElementValue() (float64, bool) { 3581 res, ok := fpmv.value.(float64) 3582 return res, ok 3583 } 3584 3585 // SetTo stores value for selected field in ObservedValues 3586 func (fpmv *AlertInfoObservedValues_FieldPathMapValue) SetTo(target **Alert_Info_ObservedValues) { 3587 if *target == nil { 3588 *target = new(Alert_Info_ObservedValues) 3589 } 3590 switch fpmv.selector { 3591 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3592 if (*target).PerMetric == nil { 3593 (*target).PerMetric = make(map[string]float64) 3594 } 3595 (*target).PerMetric[fpmv.key] = fpmv.value.(float64) 3596 default: 3597 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpmv.selector)) 3598 } 3599 } 3600 3601 func (fpmv *AlertInfoObservedValues_FieldPathMapValue) SetToRaw(target proto.Message) { 3602 typedObject := target.(*Alert_Info_ObservedValues) 3603 fpmv.SetTo(&typedObject) 3604 } 3605 3606 // CompareWith compares value in the 'AlertInfoObservedValues_FieldPathMapValue' with the value under path in 'Alert_Info_ObservedValues'. 3607 func (fpmv *AlertInfoObservedValues_FieldPathMapValue) CompareWith(source *Alert_Info_ObservedValues) (int, bool) { 3608 switch fpmv.selector { 3609 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3610 leftValue := fpmv.value.(float64) 3611 rightValue := source.GetPerMetric()[fpmv.key] 3612 if (leftValue) == (rightValue) { 3613 return 0, true 3614 } else if (leftValue) < (rightValue) { 3615 return -1, true 3616 } else { 3617 return 1, true 3618 } 3619 default: 3620 panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpmv.selector)) 3621 } 3622 } 3623 3624 func (fpmv *AlertInfoObservedValues_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) { 3625 return fpmv.CompareWith(source.(*Alert_Info_ObservedValues)) 3626 } 3627 3628 // AlertInfoObservedValues_FieldPathArrayItemValue allows storing single item in Path-specific values for ObservedValues according to their type 3629 // Present only for array (repeated) types. 3630 type AlertInfoObservedValues_FieldPathArrayItemValue interface { 3631 gotenobject.FieldPathArrayItemValue 3632 AlertInfoObservedValues_FieldPath 3633 ContainsValue(*Alert_Info_ObservedValues) bool 3634 } 3635 3636 // ParseAlertInfoObservedValues_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 3637 func ParseAlertInfoObservedValues_FieldPathArrayItemValue(pathStr, valueStr string) (AlertInfoObservedValues_FieldPathArrayItemValue, error) { 3638 fp, err := ParseAlertInfoObservedValues_FieldPath(pathStr) 3639 if err != nil { 3640 return nil, err 3641 } 3642 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 3643 if err != nil { 3644 return nil, status.Errorf(codes.InvalidArgument, "error parsing ObservedValues field path array item value from %s: %v", valueStr, err) 3645 } 3646 return fpaiv.(AlertInfoObservedValues_FieldPathArrayItemValue), nil 3647 } 3648 3649 func MustParseAlertInfoObservedValues_FieldPathArrayItemValue(pathStr, valueStr string) AlertInfoObservedValues_FieldPathArrayItemValue { 3650 fpaiv, err := ParseAlertInfoObservedValues_FieldPathArrayItemValue(pathStr, valueStr) 3651 if err != nil { 3652 panic(err) 3653 } 3654 return fpaiv 3655 } 3656 3657 type AlertInfoObservedValues_FieldTerminalPathArrayItemValue struct { 3658 AlertInfoObservedValues_FieldTerminalPath 3659 value interface{} 3660 } 3661 3662 var _ AlertInfoObservedValues_FieldPathArrayItemValue = (*AlertInfoObservedValues_FieldTerminalPathArrayItemValue)(nil) 3663 3664 // GetRawValue returns stored element value for array in object Alert_Info_ObservedValues as interface{} 3665 func (fpaiv *AlertInfoObservedValues_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 3666 return fpaiv.value 3667 } 3668 3669 func (fpaiv *AlertInfoObservedValues_FieldTerminalPathArrayItemValue) GetSingle(source *Alert_Info_ObservedValues) (interface{}, bool) { 3670 return nil, false 3671 } 3672 3673 func (fpaiv *AlertInfoObservedValues_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 3674 return fpaiv.GetSingle(source.(*Alert_Info_ObservedValues)) 3675 } 3676 3677 // Contains returns a boolean indicating if value that is being held is present in given 'ObservedValues' 3678 func (fpaiv *AlertInfoObservedValues_FieldTerminalPathArrayItemValue) ContainsValue(source *Alert_Info_ObservedValues) bool { 3679 slice := fpaiv.AlertInfoObservedValues_FieldTerminalPath.Get(source) 3680 for _, v := range slice { 3681 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 3682 if proto.Equal(asProtoMsg, v.(proto.Message)) { 3683 return true 3684 } 3685 } else if reflect.DeepEqual(v, fpaiv.value) { 3686 return true 3687 } 3688 } 3689 return false 3690 } 3691 3692 // AlertInfoObservedValues_FieldPathArrayOfValues allows storing slice of values for ObservedValues fields according to their type 3693 type AlertInfoObservedValues_FieldPathArrayOfValues interface { 3694 gotenobject.FieldPathArrayOfValues 3695 AlertInfoObservedValues_FieldPath 3696 } 3697 3698 func ParseAlertInfoObservedValues_FieldPathArrayOfValues(pathStr, valuesStr string) (AlertInfoObservedValues_FieldPathArrayOfValues, error) { 3699 fp, err := ParseAlertInfoObservedValues_FieldPath(pathStr) 3700 if err != nil { 3701 return nil, err 3702 } 3703 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 3704 if err != nil { 3705 return nil, status.Errorf(codes.InvalidArgument, "error parsing ObservedValues field path array of values from %s: %v", valuesStr, err) 3706 } 3707 return fpaov.(AlertInfoObservedValues_FieldPathArrayOfValues), nil 3708 } 3709 3710 func MustParseAlertInfoObservedValues_FieldPathArrayOfValues(pathStr, valuesStr string) AlertInfoObservedValues_FieldPathArrayOfValues { 3711 fpaov, err := ParseAlertInfoObservedValues_FieldPathArrayOfValues(pathStr, valuesStr) 3712 if err != nil { 3713 panic(err) 3714 } 3715 return fpaov 3716 } 3717 3718 type AlertInfoObservedValues_FieldTerminalPathArrayOfValues struct { 3719 AlertInfoObservedValues_FieldTerminalPath 3720 values interface{} 3721 } 3722 3723 var _ AlertInfoObservedValues_FieldPathArrayOfValues = (*AlertInfoObservedValues_FieldTerminalPathArrayOfValues)(nil) 3724 3725 func (fpaov *AlertInfoObservedValues_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 3726 switch fpaov.selector { 3727 case AlertInfoObservedValues_FieldPathSelectorExampleValue: 3728 for _, v := range fpaov.values.([]float64) { 3729 values = append(values, v) 3730 } 3731 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3732 for _, v := range fpaov.values.([]map[string]float64) { 3733 values = append(values, v) 3734 } 3735 } 3736 return 3737 } 3738 func (fpaov *AlertInfoObservedValues_FieldTerminalPathArrayOfValues) AsExampleValueArrayOfValues() ([]float64, bool) { 3739 res, ok := fpaov.values.([]float64) 3740 return res, ok 3741 } 3742 func (fpaov *AlertInfoObservedValues_FieldTerminalPathArrayOfValues) AsPerMetricArrayOfValues() ([]map[string]float64, bool) { 3743 res, ok := fpaov.values.([]map[string]float64) 3744 return res, ok 3745 } 3746 3747 type AlertInfoObservedValues_FieldPathMapArrayOfValues struct { 3748 AlertInfoObservedValues_FieldPathMap 3749 values interface{} 3750 } 3751 3752 var _ AlertInfoObservedValues_FieldPathArrayOfValues = (*AlertInfoObservedValues_FieldPathMapArrayOfValues)(nil) 3753 3754 func (fpmaov *AlertInfoObservedValues_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) { 3755 switch fpmaov.selector { 3756 case AlertInfoObservedValues_FieldPathSelectorPerMetric: 3757 for _, v := range fpmaov.values.([]float64) { 3758 values = append(values, v) 3759 } 3760 } 3761 return 3762 } 3763 func (fpmaov *AlertInfoObservedValues_FieldPathMapArrayOfValues) AsPerMetricArrayOfElementValues() ([]float64, bool) { 3764 res, ok := fpmaov.values.([]float64) 3765 return res, ok 3766 }