github.com/cloudwan/edgelq-sdk@v1.15.4/audit/resources/v1/common/common.pb.fieldpath.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/audit/proto/v1/common.proto 3 // DO NOT EDIT!!! 4 5 package common 6 7 import ( 8 "encoding/json" 9 "fmt" 10 "reflect" 11 "strings" 12 "time" 13 14 "google.golang.org/grpc/codes" 15 "google.golang.org/grpc/status" 16 "google.golang.org/protobuf/encoding/protojson" 17 "google.golang.org/protobuf/proto" 18 "google.golang.org/protobuf/reflect/protoregistry" 19 20 gotenobject "github.com/cloudwan/goten-sdk/runtime/object" 21 "github.com/cloudwan/goten-sdk/runtime/strcase" 22 ) 23 24 // proto imports 25 import ( 26 anypb "google.golang.org/protobuf/types/known/anypb" 27 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 28 ) 29 30 // ensure the imports are used 31 var ( 32 _ = new(json.Marshaler) 33 _ = new(fmt.Stringer) 34 _ = reflect.DeepEqual 35 _ = strings.Builder{} 36 _ = time.Second 37 38 _ = strcase.ToLowerCamel 39 _ = codes.NotFound 40 _ = status.Status{} 41 _ = protojson.UnmarshalOptions{} 42 _ = new(proto.Message) 43 _ = protoregistry.GlobalTypes 44 45 _ = new(gotenobject.FieldPath) 46 ) 47 48 // make sure we're using proto imports 49 var ( 50 _ = &anypb.Any{} 51 _ = ×tamppb.Timestamp{} 52 ) 53 54 // FieldPath provides implementation to handle 55 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 56 type Authentication_FieldPath interface { 57 gotenobject.FieldPath 58 Selector() Authentication_FieldPathSelector 59 Get(source *Authentication) []interface{} 60 GetSingle(source *Authentication) (interface{}, bool) 61 ClearValue(item *Authentication) 62 63 // Those methods build corresponding Authentication_FieldPathValue 64 // (or array of values) and holds passed value. Panics if injected type is incorrect. 65 WithIValue(value interface{}) Authentication_FieldPathValue 66 WithIArrayOfValues(values interface{}) Authentication_FieldPathArrayOfValues 67 WithIArrayItemValue(value interface{}) Authentication_FieldPathArrayItemValue 68 } 69 70 type Authentication_FieldPathSelector int32 71 72 const ( 73 Authentication_FieldPathSelectorPrincipal Authentication_FieldPathSelector = 0 74 Authentication_FieldPathSelectorPrincipalType Authentication_FieldPathSelector = 1 75 ) 76 77 func (s Authentication_FieldPathSelector) String() string { 78 switch s { 79 case Authentication_FieldPathSelectorPrincipal: 80 return "principal" 81 case Authentication_FieldPathSelectorPrincipalType: 82 return "principal_type" 83 default: 84 panic(fmt.Sprintf("Invalid selector for Authentication: %d", s)) 85 } 86 } 87 88 func BuildAuthentication_FieldPath(fp gotenobject.RawFieldPath) (Authentication_FieldPath, error) { 89 if len(fp) == 0 { 90 return nil, status.Error(codes.InvalidArgument, "empty field path for object Authentication") 91 } 92 if len(fp) == 1 { 93 switch fp[0] { 94 case "principal": 95 return &Authentication_FieldTerminalPath{selector: Authentication_FieldPathSelectorPrincipal}, nil 96 case "principal_type", "principalType", "principal-type": 97 return &Authentication_FieldTerminalPath{selector: Authentication_FieldPathSelectorPrincipalType}, nil 98 } 99 } 100 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Authentication", fp) 101 } 102 103 func ParseAuthentication_FieldPath(rawField string) (Authentication_FieldPath, error) { 104 fp, err := gotenobject.ParseRawFieldPath(rawField) 105 if err != nil { 106 return nil, err 107 } 108 return BuildAuthentication_FieldPath(fp) 109 } 110 111 func MustParseAuthentication_FieldPath(rawField string) Authentication_FieldPath { 112 fp, err := ParseAuthentication_FieldPath(rawField) 113 if err != nil { 114 panic(err) 115 } 116 return fp 117 } 118 119 type Authentication_FieldTerminalPath struct { 120 selector Authentication_FieldPathSelector 121 } 122 123 var _ Authentication_FieldPath = (*Authentication_FieldTerminalPath)(nil) 124 125 func (fp *Authentication_FieldTerminalPath) Selector() Authentication_FieldPathSelector { 126 return fp.selector 127 } 128 129 // String returns path representation in proto convention 130 func (fp *Authentication_FieldTerminalPath) String() string { 131 return fp.selector.String() 132 } 133 134 // JSONString returns path representation is JSON convention 135 func (fp *Authentication_FieldTerminalPath) JSONString() string { 136 return strcase.ToLowerCamel(fp.String()) 137 } 138 139 // Get returns all values pointed by specific field from source Authentication 140 func (fp *Authentication_FieldTerminalPath) Get(source *Authentication) (values []interface{}) { 141 if source != nil { 142 switch fp.selector { 143 case Authentication_FieldPathSelectorPrincipal: 144 values = append(values, source.Principal) 145 case Authentication_FieldPathSelectorPrincipalType: 146 values = append(values, source.PrincipalType) 147 default: 148 panic(fmt.Sprintf("Invalid selector for Authentication: %d", fp.selector)) 149 } 150 } 151 return 152 } 153 154 func (fp *Authentication_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 155 return fp.Get(source.(*Authentication)) 156 } 157 158 // GetSingle returns value pointed by specific field of from source Authentication 159 func (fp *Authentication_FieldTerminalPath) GetSingle(source *Authentication) (interface{}, bool) { 160 switch fp.selector { 161 case Authentication_FieldPathSelectorPrincipal: 162 return source.GetPrincipal(), source != nil 163 case Authentication_FieldPathSelectorPrincipalType: 164 return source.GetPrincipalType(), source != nil 165 default: 166 panic(fmt.Sprintf("Invalid selector for Authentication: %d", fp.selector)) 167 } 168 } 169 170 func (fp *Authentication_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 171 return fp.GetSingle(source.(*Authentication)) 172 } 173 174 // GetDefault returns a default value of the field type 175 func (fp *Authentication_FieldTerminalPath) GetDefault() interface{} { 176 switch fp.selector { 177 case Authentication_FieldPathSelectorPrincipal: 178 return "" 179 case Authentication_FieldPathSelectorPrincipalType: 180 return "" 181 default: 182 panic(fmt.Sprintf("Invalid selector for Authentication: %d", fp.selector)) 183 } 184 } 185 186 func (fp *Authentication_FieldTerminalPath) ClearValue(item *Authentication) { 187 if item != nil { 188 switch fp.selector { 189 case Authentication_FieldPathSelectorPrincipal: 190 item.Principal = "" 191 case Authentication_FieldPathSelectorPrincipalType: 192 item.PrincipalType = "" 193 default: 194 panic(fmt.Sprintf("Invalid selector for Authentication: %d", fp.selector)) 195 } 196 } 197 } 198 199 func (fp *Authentication_FieldTerminalPath) ClearValueRaw(item proto.Message) { 200 fp.ClearValue(item.(*Authentication)) 201 } 202 203 // IsLeaf - whether field path is holds simple value 204 func (fp *Authentication_FieldTerminalPath) IsLeaf() bool { 205 return fp.selector == Authentication_FieldPathSelectorPrincipal || 206 fp.selector == Authentication_FieldPathSelectorPrincipalType 207 } 208 209 func (fp *Authentication_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 210 return []gotenobject.FieldPath{fp} 211 } 212 213 func (fp *Authentication_FieldTerminalPath) WithIValue(value interface{}) Authentication_FieldPathValue { 214 switch fp.selector { 215 case Authentication_FieldPathSelectorPrincipal: 216 return &Authentication_FieldTerminalPathValue{Authentication_FieldTerminalPath: *fp, value: value.(string)} 217 case Authentication_FieldPathSelectorPrincipalType: 218 return &Authentication_FieldTerminalPathValue{Authentication_FieldTerminalPath: *fp, value: value.(string)} 219 default: 220 panic(fmt.Sprintf("Invalid selector for Authentication: %d", fp.selector)) 221 } 222 } 223 224 func (fp *Authentication_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 225 return fp.WithIValue(value) 226 } 227 228 func (fp *Authentication_FieldTerminalPath) WithIArrayOfValues(values interface{}) Authentication_FieldPathArrayOfValues { 229 fpaov := &Authentication_FieldTerminalPathArrayOfValues{Authentication_FieldTerminalPath: *fp} 230 switch fp.selector { 231 case Authentication_FieldPathSelectorPrincipal: 232 return &Authentication_FieldTerminalPathArrayOfValues{Authentication_FieldTerminalPath: *fp, values: values.([]string)} 233 case Authentication_FieldPathSelectorPrincipalType: 234 return &Authentication_FieldTerminalPathArrayOfValues{Authentication_FieldTerminalPath: *fp, values: values.([]string)} 235 default: 236 panic(fmt.Sprintf("Invalid selector for Authentication: %d", fp.selector)) 237 } 238 return fpaov 239 } 240 241 func (fp *Authentication_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 242 return fp.WithIArrayOfValues(values) 243 } 244 245 func (fp *Authentication_FieldTerminalPath) WithIArrayItemValue(value interface{}) Authentication_FieldPathArrayItemValue { 246 switch fp.selector { 247 default: 248 panic(fmt.Sprintf("Invalid selector for Authentication: %d", fp.selector)) 249 } 250 } 251 252 func (fp *Authentication_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 253 return fp.WithIArrayItemValue(value) 254 } 255 256 // Authentication_FieldPathValue allows storing values for Authentication fields according to their type 257 type Authentication_FieldPathValue interface { 258 Authentication_FieldPath 259 gotenobject.FieldPathValue 260 SetTo(target **Authentication) 261 CompareWith(*Authentication) (cmp int, comparable bool) 262 } 263 264 func ParseAuthentication_FieldPathValue(pathStr, valueStr string) (Authentication_FieldPathValue, error) { 265 fp, err := ParseAuthentication_FieldPath(pathStr) 266 if err != nil { 267 return nil, err 268 } 269 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 270 if err != nil { 271 return nil, status.Errorf(codes.InvalidArgument, "error parsing Authentication field path value from %s: %v", valueStr, err) 272 } 273 return fpv.(Authentication_FieldPathValue), nil 274 } 275 276 func MustParseAuthentication_FieldPathValue(pathStr, valueStr string) Authentication_FieldPathValue { 277 fpv, err := ParseAuthentication_FieldPathValue(pathStr, valueStr) 278 if err != nil { 279 panic(err) 280 } 281 return fpv 282 } 283 284 type Authentication_FieldTerminalPathValue struct { 285 Authentication_FieldTerminalPath 286 value interface{} 287 } 288 289 var _ Authentication_FieldPathValue = (*Authentication_FieldTerminalPathValue)(nil) 290 291 // GetRawValue returns raw value stored under selected path for 'Authentication' as interface{} 292 func (fpv *Authentication_FieldTerminalPathValue) GetRawValue() interface{} { 293 return fpv.value 294 } 295 func (fpv *Authentication_FieldTerminalPathValue) AsPrincipalValue() (string, bool) { 296 res, ok := fpv.value.(string) 297 return res, ok 298 } 299 func (fpv *Authentication_FieldTerminalPathValue) AsPrincipalTypeValue() (string, bool) { 300 res, ok := fpv.value.(string) 301 return res, ok 302 } 303 304 // SetTo stores value for selected field for object Authentication 305 func (fpv *Authentication_FieldTerminalPathValue) SetTo(target **Authentication) { 306 if *target == nil { 307 *target = new(Authentication) 308 } 309 switch fpv.selector { 310 case Authentication_FieldPathSelectorPrincipal: 311 (*target).Principal = fpv.value.(string) 312 case Authentication_FieldPathSelectorPrincipalType: 313 (*target).PrincipalType = fpv.value.(string) 314 default: 315 panic(fmt.Sprintf("Invalid selector for Authentication: %d", fpv.selector)) 316 } 317 } 318 319 func (fpv *Authentication_FieldTerminalPathValue) SetToRaw(target proto.Message) { 320 typedObject := target.(*Authentication) 321 fpv.SetTo(&typedObject) 322 } 323 324 // CompareWith compares value in the 'Authentication_FieldTerminalPathValue' with the value under path in 'Authentication'. 325 func (fpv *Authentication_FieldTerminalPathValue) CompareWith(source *Authentication) (int, bool) { 326 switch fpv.selector { 327 case Authentication_FieldPathSelectorPrincipal: 328 leftValue := fpv.value.(string) 329 rightValue := source.GetPrincipal() 330 if (leftValue) == (rightValue) { 331 return 0, true 332 } else if (leftValue) < (rightValue) { 333 return -1, true 334 } else { 335 return 1, true 336 } 337 case Authentication_FieldPathSelectorPrincipalType: 338 leftValue := fpv.value.(string) 339 rightValue := source.GetPrincipalType() 340 if (leftValue) == (rightValue) { 341 return 0, true 342 } else if (leftValue) < (rightValue) { 343 return -1, true 344 } else { 345 return 1, true 346 } 347 default: 348 panic(fmt.Sprintf("Invalid selector for Authentication: %d", fpv.selector)) 349 } 350 } 351 352 func (fpv *Authentication_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 353 return fpv.CompareWith(source.(*Authentication)) 354 } 355 356 // Authentication_FieldPathArrayItemValue allows storing single item in Path-specific values for Authentication according to their type 357 // Present only for array (repeated) types. 358 type Authentication_FieldPathArrayItemValue interface { 359 gotenobject.FieldPathArrayItemValue 360 Authentication_FieldPath 361 ContainsValue(*Authentication) bool 362 } 363 364 // ParseAuthentication_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 365 func ParseAuthentication_FieldPathArrayItemValue(pathStr, valueStr string) (Authentication_FieldPathArrayItemValue, error) { 366 fp, err := ParseAuthentication_FieldPath(pathStr) 367 if err != nil { 368 return nil, err 369 } 370 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 371 if err != nil { 372 return nil, status.Errorf(codes.InvalidArgument, "error parsing Authentication field path array item value from %s: %v", valueStr, err) 373 } 374 return fpaiv.(Authentication_FieldPathArrayItemValue), nil 375 } 376 377 func MustParseAuthentication_FieldPathArrayItemValue(pathStr, valueStr string) Authentication_FieldPathArrayItemValue { 378 fpaiv, err := ParseAuthentication_FieldPathArrayItemValue(pathStr, valueStr) 379 if err != nil { 380 panic(err) 381 } 382 return fpaiv 383 } 384 385 type Authentication_FieldTerminalPathArrayItemValue struct { 386 Authentication_FieldTerminalPath 387 value interface{} 388 } 389 390 var _ Authentication_FieldPathArrayItemValue = (*Authentication_FieldTerminalPathArrayItemValue)(nil) 391 392 // GetRawValue returns stored element value for array in object Authentication as interface{} 393 func (fpaiv *Authentication_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 394 return fpaiv.value 395 } 396 397 func (fpaiv *Authentication_FieldTerminalPathArrayItemValue) GetSingle(source *Authentication) (interface{}, bool) { 398 return nil, false 399 } 400 401 func (fpaiv *Authentication_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 402 return fpaiv.GetSingle(source.(*Authentication)) 403 } 404 405 // Contains returns a boolean indicating if value that is being held is present in given 'Authentication' 406 func (fpaiv *Authentication_FieldTerminalPathArrayItemValue) ContainsValue(source *Authentication) bool { 407 slice := fpaiv.Authentication_FieldTerminalPath.Get(source) 408 for _, v := range slice { 409 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 410 if proto.Equal(asProtoMsg, v.(proto.Message)) { 411 return true 412 } 413 } else if reflect.DeepEqual(v, fpaiv.value) { 414 return true 415 } 416 } 417 return false 418 } 419 420 // Authentication_FieldPathArrayOfValues allows storing slice of values for Authentication fields according to their type 421 type Authentication_FieldPathArrayOfValues interface { 422 gotenobject.FieldPathArrayOfValues 423 Authentication_FieldPath 424 } 425 426 func ParseAuthentication_FieldPathArrayOfValues(pathStr, valuesStr string) (Authentication_FieldPathArrayOfValues, error) { 427 fp, err := ParseAuthentication_FieldPath(pathStr) 428 if err != nil { 429 return nil, err 430 } 431 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 432 if err != nil { 433 return nil, status.Errorf(codes.InvalidArgument, "error parsing Authentication field path array of values from %s: %v", valuesStr, err) 434 } 435 return fpaov.(Authentication_FieldPathArrayOfValues), nil 436 } 437 438 func MustParseAuthentication_FieldPathArrayOfValues(pathStr, valuesStr string) Authentication_FieldPathArrayOfValues { 439 fpaov, err := ParseAuthentication_FieldPathArrayOfValues(pathStr, valuesStr) 440 if err != nil { 441 panic(err) 442 } 443 return fpaov 444 } 445 446 type Authentication_FieldTerminalPathArrayOfValues struct { 447 Authentication_FieldTerminalPath 448 values interface{} 449 } 450 451 var _ Authentication_FieldPathArrayOfValues = (*Authentication_FieldTerminalPathArrayOfValues)(nil) 452 453 func (fpaov *Authentication_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 454 switch fpaov.selector { 455 case Authentication_FieldPathSelectorPrincipal: 456 for _, v := range fpaov.values.([]string) { 457 values = append(values, v) 458 } 459 case Authentication_FieldPathSelectorPrincipalType: 460 for _, v := range fpaov.values.([]string) { 461 values = append(values, v) 462 } 463 } 464 return 465 } 466 func (fpaov *Authentication_FieldTerminalPathArrayOfValues) AsPrincipalArrayOfValues() ([]string, bool) { 467 res, ok := fpaov.values.([]string) 468 return res, ok 469 } 470 func (fpaov *Authentication_FieldTerminalPathArrayOfValues) AsPrincipalTypeArrayOfValues() ([]string, bool) { 471 res, ok := fpaov.values.([]string) 472 return res, ok 473 } 474 475 // FieldPath provides implementation to handle 476 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 477 type Authorization_FieldPath interface { 478 gotenobject.FieldPath 479 Selector() Authorization_FieldPathSelector 480 Get(source *Authorization) []interface{} 481 GetSingle(source *Authorization) (interface{}, bool) 482 ClearValue(item *Authorization) 483 484 // Those methods build corresponding Authorization_FieldPathValue 485 // (or array of values) and holds passed value. Panics if injected type is incorrect. 486 WithIValue(value interface{}) Authorization_FieldPathValue 487 WithIArrayOfValues(values interface{}) Authorization_FieldPathArrayOfValues 488 WithIArrayItemValue(value interface{}) Authorization_FieldPathArrayItemValue 489 } 490 491 type Authorization_FieldPathSelector int32 492 493 const ( 494 Authorization_FieldPathSelectorGrantedPermissions Authorization_FieldPathSelector = 0 495 Authorization_FieldPathSelectorDeniedPermissions Authorization_FieldPathSelector = 1 496 ) 497 498 func (s Authorization_FieldPathSelector) String() string { 499 switch s { 500 case Authorization_FieldPathSelectorGrantedPermissions: 501 return "granted_permissions" 502 case Authorization_FieldPathSelectorDeniedPermissions: 503 return "denied_permissions" 504 default: 505 panic(fmt.Sprintf("Invalid selector for Authorization: %d", s)) 506 } 507 } 508 509 func BuildAuthorization_FieldPath(fp gotenobject.RawFieldPath) (Authorization_FieldPath, error) { 510 if len(fp) == 0 { 511 return nil, status.Error(codes.InvalidArgument, "empty field path for object Authorization") 512 } 513 if len(fp) == 1 { 514 switch fp[0] { 515 case "granted_permissions", "grantedPermissions", "granted-permissions": 516 return &Authorization_FieldTerminalPath{selector: Authorization_FieldPathSelectorGrantedPermissions}, nil 517 case "denied_permissions", "deniedPermissions", "denied-permissions": 518 return &Authorization_FieldTerminalPath{selector: Authorization_FieldPathSelectorDeniedPermissions}, nil 519 } 520 } 521 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Authorization", fp) 522 } 523 524 func ParseAuthorization_FieldPath(rawField string) (Authorization_FieldPath, error) { 525 fp, err := gotenobject.ParseRawFieldPath(rawField) 526 if err != nil { 527 return nil, err 528 } 529 return BuildAuthorization_FieldPath(fp) 530 } 531 532 func MustParseAuthorization_FieldPath(rawField string) Authorization_FieldPath { 533 fp, err := ParseAuthorization_FieldPath(rawField) 534 if err != nil { 535 panic(err) 536 } 537 return fp 538 } 539 540 type Authorization_FieldTerminalPath struct { 541 selector Authorization_FieldPathSelector 542 } 543 544 var _ Authorization_FieldPath = (*Authorization_FieldTerminalPath)(nil) 545 546 func (fp *Authorization_FieldTerminalPath) Selector() Authorization_FieldPathSelector { 547 return fp.selector 548 } 549 550 // String returns path representation in proto convention 551 func (fp *Authorization_FieldTerminalPath) String() string { 552 return fp.selector.String() 553 } 554 555 // JSONString returns path representation is JSON convention 556 func (fp *Authorization_FieldTerminalPath) JSONString() string { 557 return strcase.ToLowerCamel(fp.String()) 558 } 559 560 // Get returns all values pointed by specific field from source Authorization 561 func (fp *Authorization_FieldTerminalPath) Get(source *Authorization) (values []interface{}) { 562 if source != nil { 563 switch fp.selector { 564 case Authorization_FieldPathSelectorGrantedPermissions: 565 for _, value := range source.GetGrantedPermissions() { 566 values = append(values, value) 567 } 568 case Authorization_FieldPathSelectorDeniedPermissions: 569 for _, value := range source.GetDeniedPermissions() { 570 values = append(values, value) 571 } 572 default: 573 panic(fmt.Sprintf("Invalid selector for Authorization: %d", fp.selector)) 574 } 575 } 576 return 577 } 578 579 func (fp *Authorization_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 580 return fp.Get(source.(*Authorization)) 581 } 582 583 // GetSingle returns value pointed by specific field of from source Authorization 584 func (fp *Authorization_FieldTerminalPath) GetSingle(source *Authorization) (interface{}, bool) { 585 switch fp.selector { 586 case Authorization_FieldPathSelectorGrantedPermissions: 587 res := source.GetGrantedPermissions() 588 return res, res != nil 589 case Authorization_FieldPathSelectorDeniedPermissions: 590 res := source.GetDeniedPermissions() 591 return res, res != nil 592 default: 593 panic(fmt.Sprintf("Invalid selector for Authorization: %d", fp.selector)) 594 } 595 } 596 597 func (fp *Authorization_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 598 return fp.GetSingle(source.(*Authorization)) 599 } 600 601 // GetDefault returns a default value of the field type 602 func (fp *Authorization_FieldTerminalPath) GetDefault() interface{} { 603 switch fp.selector { 604 case Authorization_FieldPathSelectorGrantedPermissions: 605 return ([]string)(nil) 606 case Authorization_FieldPathSelectorDeniedPermissions: 607 return ([]string)(nil) 608 default: 609 panic(fmt.Sprintf("Invalid selector for Authorization: %d", fp.selector)) 610 } 611 } 612 613 func (fp *Authorization_FieldTerminalPath) ClearValue(item *Authorization) { 614 if item != nil { 615 switch fp.selector { 616 case Authorization_FieldPathSelectorGrantedPermissions: 617 item.GrantedPermissions = nil 618 case Authorization_FieldPathSelectorDeniedPermissions: 619 item.DeniedPermissions = nil 620 default: 621 panic(fmt.Sprintf("Invalid selector for Authorization: %d", fp.selector)) 622 } 623 } 624 } 625 626 func (fp *Authorization_FieldTerminalPath) ClearValueRaw(item proto.Message) { 627 fp.ClearValue(item.(*Authorization)) 628 } 629 630 // IsLeaf - whether field path is holds simple value 631 func (fp *Authorization_FieldTerminalPath) IsLeaf() bool { 632 return fp.selector == Authorization_FieldPathSelectorGrantedPermissions || 633 fp.selector == Authorization_FieldPathSelectorDeniedPermissions 634 } 635 636 func (fp *Authorization_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 637 return []gotenobject.FieldPath{fp} 638 } 639 640 func (fp *Authorization_FieldTerminalPath) WithIValue(value interface{}) Authorization_FieldPathValue { 641 switch fp.selector { 642 case Authorization_FieldPathSelectorGrantedPermissions: 643 return &Authorization_FieldTerminalPathValue{Authorization_FieldTerminalPath: *fp, value: value.([]string)} 644 case Authorization_FieldPathSelectorDeniedPermissions: 645 return &Authorization_FieldTerminalPathValue{Authorization_FieldTerminalPath: *fp, value: value.([]string)} 646 default: 647 panic(fmt.Sprintf("Invalid selector for Authorization: %d", fp.selector)) 648 } 649 } 650 651 func (fp *Authorization_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 652 return fp.WithIValue(value) 653 } 654 655 func (fp *Authorization_FieldTerminalPath) WithIArrayOfValues(values interface{}) Authorization_FieldPathArrayOfValues { 656 fpaov := &Authorization_FieldTerminalPathArrayOfValues{Authorization_FieldTerminalPath: *fp} 657 switch fp.selector { 658 case Authorization_FieldPathSelectorGrantedPermissions: 659 return &Authorization_FieldTerminalPathArrayOfValues{Authorization_FieldTerminalPath: *fp, values: values.([][]string)} 660 case Authorization_FieldPathSelectorDeniedPermissions: 661 return &Authorization_FieldTerminalPathArrayOfValues{Authorization_FieldTerminalPath: *fp, values: values.([][]string)} 662 default: 663 panic(fmt.Sprintf("Invalid selector for Authorization: %d", fp.selector)) 664 } 665 return fpaov 666 } 667 668 func (fp *Authorization_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 669 return fp.WithIArrayOfValues(values) 670 } 671 672 func (fp *Authorization_FieldTerminalPath) WithIArrayItemValue(value interface{}) Authorization_FieldPathArrayItemValue { 673 switch fp.selector { 674 case Authorization_FieldPathSelectorGrantedPermissions: 675 return &Authorization_FieldTerminalPathArrayItemValue{Authorization_FieldTerminalPath: *fp, value: value.(string)} 676 case Authorization_FieldPathSelectorDeniedPermissions: 677 return &Authorization_FieldTerminalPathArrayItemValue{Authorization_FieldTerminalPath: *fp, value: value.(string)} 678 default: 679 panic(fmt.Sprintf("Invalid selector for Authorization: %d", fp.selector)) 680 } 681 } 682 683 func (fp *Authorization_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 684 return fp.WithIArrayItemValue(value) 685 } 686 687 // Authorization_FieldPathValue allows storing values for Authorization fields according to their type 688 type Authorization_FieldPathValue interface { 689 Authorization_FieldPath 690 gotenobject.FieldPathValue 691 SetTo(target **Authorization) 692 CompareWith(*Authorization) (cmp int, comparable bool) 693 } 694 695 func ParseAuthorization_FieldPathValue(pathStr, valueStr string) (Authorization_FieldPathValue, error) { 696 fp, err := ParseAuthorization_FieldPath(pathStr) 697 if err != nil { 698 return nil, err 699 } 700 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 701 if err != nil { 702 return nil, status.Errorf(codes.InvalidArgument, "error parsing Authorization field path value from %s: %v", valueStr, err) 703 } 704 return fpv.(Authorization_FieldPathValue), nil 705 } 706 707 func MustParseAuthorization_FieldPathValue(pathStr, valueStr string) Authorization_FieldPathValue { 708 fpv, err := ParseAuthorization_FieldPathValue(pathStr, valueStr) 709 if err != nil { 710 panic(err) 711 } 712 return fpv 713 } 714 715 type Authorization_FieldTerminalPathValue struct { 716 Authorization_FieldTerminalPath 717 value interface{} 718 } 719 720 var _ Authorization_FieldPathValue = (*Authorization_FieldTerminalPathValue)(nil) 721 722 // GetRawValue returns raw value stored under selected path for 'Authorization' as interface{} 723 func (fpv *Authorization_FieldTerminalPathValue) GetRawValue() interface{} { 724 return fpv.value 725 } 726 func (fpv *Authorization_FieldTerminalPathValue) AsGrantedPermissionsValue() ([]string, bool) { 727 res, ok := fpv.value.([]string) 728 return res, ok 729 } 730 func (fpv *Authorization_FieldTerminalPathValue) AsDeniedPermissionsValue() ([]string, bool) { 731 res, ok := fpv.value.([]string) 732 return res, ok 733 } 734 735 // SetTo stores value for selected field for object Authorization 736 func (fpv *Authorization_FieldTerminalPathValue) SetTo(target **Authorization) { 737 if *target == nil { 738 *target = new(Authorization) 739 } 740 switch fpv.selector { 741 case Authorization_FieldPathSelectorGrantedPermissions: 742 (*target).GrantedPermissions = fpv.value.([]string) 743 case Authorization_FieldPathSelectorDeniedPermissions: 744 (*target).DeniedPermissions = fpv.value.([]string) 745 default: 746 panic(fmt.Sprintf("Invalid selector for Authorization: %d", fpv.selector)) 747 } 748 } 749 750 func (fpv *Authorization_FieldTerminalPathValue) SetToRaw(target proto.Message) { 751 typedObject := target.(*Authorization) 752 fpv.SetTo(&typedObject) 753 } 754 755 // CompareWith compares value in the 'Authorization_FieldTerminalPathValue' with the value under path in 'Authorization'. 756 func (fpv *Authorization_FieldTerminalPathValue) CompareWith(source *Authorization) (int, bool) { 757 switch fpv.selector { 758 case Authorization_FieldPathSelectorGrantedPermissions: 759 return 0, false 760 case Authorization_FieldPathSelectorDeniedPermissions: 761 return 0, false 762 default: 763 panic(fmt.Sprintf("Invalid selector for Authorization: %d", fpv.selector)) 764 } 765 } 766 767 func (fpv *Authorization_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 768 return fpv.CompareWith(source.(*Authorization)) 769 } 770 771 // Authorization_FieldPathArrayItemValue allows storing single item in Path-specific values for Authorization according to their type 772 // Present only for array (repeated) types. 773 type Authorization_FieldPathArrayItemValue interface { 774 gotenobject.FieldPathArrayItemValue 775 Authorization_FieldPath 776 ContainsValue(*Authorization) bool 777 } 778 779 // ParseAuthorization_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 780 func ParseAuthorization_FieldPathArrayItemValue(pathStr, valueStr string) (Authorization_FieldPathArrayItemValue, error) { 781 fp, err := ParseAuthorization_FieldPath(pathStr) 782 if err != nil { 783 return nil, err 784 } 785 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 786 if err != nil { 787 return nil, status.Errorf(codes.InvalidArgument, "error parsing Authorization field path array item value from %s: %v", valueStr, err) 788 } 789 return fpaiv.(Authorization_FieldPathArrayItemValue), nil 790 } 791 792 func MustParseAuthorization_FieldPathArrayItemValue(pathStr, valueStr string) Authorization_FieldPathArrayItemValue { 793 fpaiv, err := ParseAuthorization_FieldPathArrayItemValue(pathStr, valueStr) 794 if err != nil { 795 panic(err) 796 } 797 return fpaiv 798 } 799 800 type Authorization_FieldTerminalPathArrayItemValue struct { 801 Authorization_FieldTerminalPath 802 value interface{} 803 } 804 805 var _ Authorization_FieldPathArrayItemValue = (*Authorization_FieldTerminalPathArrayItemValue)(nil) 806 807 // GetRawValue returns stored element value for array in object Authorization as interface{} 808 func (fpaiv *Authorization_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 809 return fpaiv.value 810 } 811 func (fpaiv *Authorization_FieldTerminalPathArrayItemValue) AsGrantedPermissionsItemValue() (string, bool) { 812 res, ok := fpaiv.value.(string) 813 return res, ok 814 } 815 func (fpaiv *Authorization_FieldTerminalPathArrayItemValue) AsDeniedPermissionsItemValue() (string, bool) { 816 res, ok := fpaiv.value.(string) 817 return res, ok 818 } 819 820 func (fpaiv *Authorization_FieldTerminalPathArrayItemValue) GetSingle(source *Authorization) (interface{}, bool) { 821 return nil, false 822 } 823 824 func (fpaiv *Authorization_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 825 return fpaiv.GetSingle(source.(*Authorization)) 826 } 827 828 // Contains returns a boolean indicating if value that is being held is present in given 'Authorization' 829 func (fpaiv *Authorization_FieldTerminalPathArrayItemValue) ContainsValue(source *Authorization) bool { 830 slice := fpaiv.Authorization_FieldTerminalPath.Get(source) 831 for _, v := range slice { 832 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 833 if proto.Equal(asProtoMsg, v.(proto.Message)) { 834 return true 835 } 836 } else if reflect.DeepEqual(v, fpaiv.value) { 837 return true 838 } 839 } 840 return false 841 } 842 843 // Authorization_FieldPathArrayOfValues allows storing slice of values for Authorization fields according to their type 844 type Authorization_FieldPathArrayOfValues interface { 845 gotenobject.FieldPathArrayOfValues 846 Authorization_FieldPath 847 } 848 849 func ParseAuthorization_FieldPathArrayOfValues(pathStr, valuesStr string) (Authorization_FieldPathArrayOfValues, error) { 850 fp, err := ParseAuthorization_FieldPath(pathStr) 851 if err != nil { 852 return nil, err 853 } 854 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 855 if err != nil { 856 return nil, status.Errorf(codes.InvalidArgument, "error parsing Authorization field path array of values from %s: %v", valuesStr, err) 857 } 858 return fpaov.(Authorization_FieldPathArrayOfValues), nil 859 } 860 861 func MustParseAuthorization_FieldPathArrayOfValues(pathStr, valuesStr string) Authorization_FieldPathArrayOfValues { 862 fpaov, err := ParseAuthorization_FieldPathArrayOfValues(pathStr, valuesStr) 863 if err != nil { 864 panic(err) 865 } 866 return fpaov 867 } 868 869 type Authorization_FieldTerminalPathArrayOfValues struct { 870 Authorization_FieldTerminalPath 871 values interface{} 872 } 873 874 var _ Authorization_FieldPathArrayOfValues = (*Authorization_FieldTerminalPathArrayOfValues)(nil) 875 876 func (fpaov *Authorization_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 877 switch fpaov.selector { 878 case Authorization_FieldPathSelectorGrantedPermissions: 879 for _, v := range fpaov.values.([][]string) { 880 values = append(values, v) 881 } 882 case Authorization_FieldPathSelectorDeniedPermissions: 883 for _, v := range fpaov.values.([][]string) { 884 values = append(values, v) 885 } 886 } 887 return 888 } 889 func (fpaov *Authorization_FieldTerminalPathArrayOfValues) AsGrantedPermissionsArrayOfValues() ([][]string, bool) { 890 res, ok := fpaov.values.([][]string) 891 return res, ok 892 } 893 func (fpaov *Authorization_FieldTerminalPathArrayOfValues) AsDeniedPermissionsArrayOfValues() ([][]string, bool) { 894 res, ok := fpaov.values.([][]string) 895 return res, ok 896 } 897 898 // FieldPath provides implementation to handle 899 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 900 type ServiceData_FieldPath interface { 901 gotenobject.FieldPath 902 Selector() ServiceData_FieldPathSelector 903 Get(source *ServiceData) []interface{} 904 GetSingle(source *ServiceData) (interface{}, bool) 905 ClearValue(item *ServiceData) 906 907 // Those methods build corresponding ServiceData_FieldPathValue 908 // (or array of values) and holds passed value. Panics if injected type is incorrect. 909 WithIValue(value interface{}) ServiceData_FieldPathValue 910 WithIArrayOfValues(values interface{}) ServiceData_FieldPathArrayOfValues 911 WithIArrayItemValue(value interface{}) ServiceData_FieldPathArrayItemValue 912 } 913 914 type ServiceData_FieldPathSelector int32 915 916 const ( 917 ServiceData_FieldPathSelectorName ServiceData_FieldPathSelector = 0 918 ServiceData_FieldPathSelectorRegionId ServiceData_FieldPathSelector = 1 919 ServiceData_FieldPathSelectorHostname ServiceData_FieldPathSelector = 2 920 ) 921 922 func (s ServiceData_FieldPathSelector) String() string { 923 switch s { 924 case ServiceData_FieldPathSelectorName: 925 return "name" 926 case ServiceData_FieldPathSelectorRegionId: 927 return "region_id" 928 case ServiceData_FieldPathSelectorHostname: 929 return "hostname" 930 default: 931 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", s)) 932 } 933 } 934 935 func BuildServiceData_FieldPath(fp gotenobject.RawFieldPath) (ServiceData_FieldPath, error) { 936 if len(fp) == 0 { 937 return nil, status.Error(codes.InvalidArgument, "empty field path for object ServiceData") 938 } 939 if len(fp) == 1 { 940 switch fp[0] { 941 case "name": 942 return &ServiceData_FieldTerminalPath{selector: ServiceData_FieldPathSelectorName}, nil 943 case "region_id", "regionId", "region-id": 944 return &ServiceData_FieldTerminalPath{selector: ServiceData_FieldPathSelectorRegionId}, nil 945 case "hostname": 946 return &ServiceData_FieldTerminalPath{selector: ServiceData_FieldPathSelectorHostname}, nil 947 } 948 } 949 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ServiceData", fp) 950 } 951 952 func ParseServiceData_FieldPath(rawField string) (ServiceData_FieldPath, error) { 953 fp, err := gotenobject.ParseRawFieldPath(rawField) 954 if err != nil { 955 return nil, err 956 } 957 return BuildServiceData_FieldPath(fp) 958 } 959 960 func MustParseServiceData_FieldPath(rawField string) ServiceData_FieldPath { 961 fp, err := ParseServiceData_FieldPath(rawField) 962 if err != nil { 963 panic(err) 964 } 965 return fp 966 } 967 968 type ServiceData_FieldTerminalPath struct { 969 selector ServiceData_FieldPathSelector 970 } 971 972 var _ ServiceData_FieldPath = (*ServiceData_FieldTerminalPath)(nil) 973 974 func (fp *ServiceData_FieldTerminalPath) Selector() ServiceData_FieldPathSelector { 975 return fp.selector 976 } 977 978 // String returns path representation in proto convention 979 func (fp *ServiceData_FieldTerminalPath) String() string { 980 return fp.selector.String() 981 } 982 983 // JSONString returns path representation is JSON convention 984 func (fp *ServiceData_FieldTerminalPath) JSONString() string { 985 return strcase.ToLowerCamel(fp.String()) 986 } 987 988 // Get returns all values pointed by specific field from source ServiceData 989 func (fp *ServiceData_FieldTerminalPath) Get(source *ServiceData) (values []interface{}) { 990 if source != nil { 991 switch fp.selector { 992 case ServiceData_FieldPathSelectorName: 993 values = append(values, source.Name) 994 case ServiceData_FieldPathSelectorRegionId: 995 values = append(values, source.RegionId) 996 case ServiceData_FieldPathSelectorHostname: 997 values = append(values, source.Hostname) 998 default: 999 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 1000 } 1001 } 1002 return 1003 } 1004 1005 func (fp *ServiceData_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 1006 return fp.Get(source.(*ServiceData)) 1007 } 1008 1009 // GetSingle returns value pointed by specific field of from source ServiceData 1010 func (fp *ServiceData_FieldTerminalPath) GetSingle(source *ServiceData) (interface{}, bool) { 1011 switch fp.selector { 1012 case ServiceData_FieldPathSelectorName: 1013 return source.GetName(), source != nil 1014 case ServiceData_FieldPathSelectorRegionId: 1015 return source.GetRegionId(), source != nil 1016 case ServiceData_FieldPathSelectorHostname: 1017 return source.GetHostname(), source != nil 1018 default: 1019 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 1020 } 1021 } 1022 1023 func (fp *ServiceData_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1024 return fp.GetSingle(source.(*ServiceData)) 1025 } 1026 1027 // GetDefault returns a default value of the field type 1028 func (fp *ServiceData_FieldTerminalPath) GetDefault() interface{} { 1029 switch fp.selector { 1030 case ServiceData_FieldPathSelectorName: 1031 return "" 1032 case ServiceData_FieldPathSelectorRegionId: 1033 return "" 1034 case ServiceData_FieldPathSelectorHostname: 1035 return "" 1036 default: 1037 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 1038 } 1039 } 1040 1041 func (fp *ServiceData_FieldTerminalPath) ClearValue(item *ServiceData) { 1042 if item != nil { 1043 switch fp.selector { 1044 case ServiceData_FieldPathSelectorName: 1045 item.Name = "" 1046 case ServiceData_FieldPathSelectorRegionId: 1047 item.RegionId = "" 1048 case ServiceData_FieldPathSelectorHostname: 1049 item.Hostname = "" 1050 default: 1051 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 1052 } 1053 } 1054 } 1055 1056 func (fp *ServiceData_FieldTerminalPath) ClearValueRaw(item proto.Message) { 1057 fp.ClearValue(item.(*ServiceData)) 1058 } 1059 1060 // IsLeaf - whether field path is holds simple value 1061 func (fp *ServiceData_FieldTerminalPath) IsLeaf() bool { 1062 return fp.selector == ServiceData_FieldPathSelectorName || 1063 fp.selector == ServiceData_FieldPathSelectorRegionId || 1064 fp.selector == ServiceData_FieldPathSelectorHostname 1065 } 1066 1067 func (fp *ServiceData_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1068 return []gotenobject.FieldPath{fp} 1069 } 1070 1071 func (fp *ServiceData_FieldTerminalPath) WithIValue(value interface{}) ServiceData_FieldPathValue { 1072 switch fp.selector { 1073 case ServiceData_FieldPathSelectorName: 1074 return &ServiceData_FieldTerminalPathValue{ServiceData_FieldTerminalPath: *fp, value: value.(string)} 1075 case ServiceData_FieldPathSelectorRegionId: 1076 return &ServiceData_FieldTerminalPathValue{ServiceData_FieldTerminalPath: *fp, value: value.(string)} 1077 case ServiceData_FieldPathSelectorHostname: 1078 return &ServiceData_FieldTerminalPathValue{ServiceData_FieldTerminalPath: *fp, value: value.(string)} 1079 default: 1080 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 1081 } 1082 } 1083 1084 func (fp *ServiceData_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1085 return fp.WithIValue(value) 1086 } 1087 1088 func (fp *ServiceData_FieldTerminalPath) WithIArrayOfValues(values interface{}) ServiceData_FieldPathArrayOfValues { 1089 fpaov := &ServiceData_FieldTerminalPathArrayOfValues{ServiceData_FieldTerminalPath: *fp} 1090 switch fp.selector { 1091 case ServiceData_FieldPathSelectorName: 1092 return &ServiceData_FieldTerminalPathArrayOfValues{ServiceData_FieldTerminalPath: *fp, values: values.([]string)} 1093 case ServiceData_FieldPathSelectorRegionId: 1094 return &ServiceData_FieldTerminalPathArrayOfValues{ServiceData_FieldTerminalPath: *fp, values: values.([]string)} 1095 case ServiceData_FieldPathSelectorHostname: 1096 return &ServiceData_FieldTerminalPathArrayOfValues{ServiceData_FieldTerminalPath: *fp, values: values.([]string)} 1097 default: 1098 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 1099 } 1100 return fpaov 1101 } 1102 1103 func (fp *ServiceData_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1104 return fp.WithIArrayOfValues(values) 1105 } 1106 1107 func (fp *ServiceData_FieldTerminalPath) WithIArrayItemValue(value interface{}) ServiceData_FieldPathArrayItemValue { 1108 switch fp.selector { 1109 default: 1110 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 1111 } 1112 } 1113 1114 func (fp *ServiceData_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1115 return fp.WithIArrayItemValue(value) 1116 } 1117 1118 // ServiceData_FieldPathValue allows storing values for ServiceData fields according to their type 1119 type ServiceData_FieldPathValue interface { 1120 ServiceData_FieldPath 1121 gotenobject.FieldPathValue 1122 SetTo(target **ServiceData) 1123 CompareWith(*ServiceData) (cmp int, comparable bool) 1124 } 1125 1126 func ParseServiceData_FieldPathValue(pathStr, valueStr string) (ServiceData_FieldPathValue, error) { 1127 fp, err := ParseServiceData_FieldPath(pathStr) 1128 if err != nil { 1129 return nil, err 1130 } 1131 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 1132 if err != nil { 1133 return nil, status.Errorf(codes.InvalidArgument, "error parsing ServiceData field path value from %s: %v", valueStr, err) 1134 } 1135 return fpv.(ServiceData_FieldPathValue), nil 1136 } 1137 1138 func MustParseServiceData_FieldPathValue(pathStr, valueStr string) ServiceData_FieldPathValue { 1139 fpv, err := ParseServiceData_FieldPathValue(pathStr, valueStr) 1140 if err != nil { 1141 panic(err) 1142 } 1143 return fpv 1144 } 1145 1146 type ServiceData_FieldTerminalPathValue struct { 1147 ServiceData_FieldTerminalPath 1148 value interface{} 1149 } 1150 1151 var _ ServiceData_FieldPathValue = (*ServiceData_FieldTerminalPathValue)(nil) 1152 1153 // GetRawValue returns raw value stored under selected path for 'ServiceData' as interface{} 1154 func (fpv *ServiceData_FieldTerminalPathValue) GetRawValue() interface{} { 1155 return fpv.value 1156 } 1157 func (fpv *ServiceData_FieldTerminalPathValue) AsNameValue() (string, bool) { 1158 res, ok := fpv.value.(string) 1159 return res, ok 1160 } 1161 func (fpv *ServiceData_FieldTerminalPathValue) AsRegionIdValue() (string, bool) { 1162 res, ok := fpv.value.(string) 1163 return res, ok 1164 } 1165 func (fpv *ServiceData_FieldTerminalPathValue) AsHostnameValue() (string, bool) { 1166 res, ok := fpv.value.(string) 1167 return res, ok 1168 } 1169 1170 // SetTo stores value for selected field for object ServiceData 1171 func (fpv *ServiceData_FieldTerminalPathValue) SetTo(target **ServiceData) { 1172 if *target == nil { 1173 *target = new(ServiceData) 1174 } 1175 switch fpv.selector { 1176 case ServiceData_FieldPathSelectorName: 1177 (*target).Name = fpv.value.(string) 1178 case ServiceData_FieldPathSelectorRegionId: 1179 (*target).RegionId = fpv.value.(string) 1180 case ServiceData_FieldPathSelectorHostname: 1181 (*target).Hostname = fpv.value.(string) 1182 default: 1183 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fpv.selector)) 1184 } 1185 } 1186 1187 func (fpv *ServiceData_FieldTerminalPathValue) SetToRaw(target proto.Message) { 1188 typedObject := target.(*ServiceData) 1189 fpv.SetTo(&typedObject) 1190 } 1191 1192 // CompareWith compares value in the 'ServiceData_FieldTerminalPathValue' with the value under path in 'ServiceData'. 1193 func (fpv *ServiceData_FieldTerminalPathValue) CompareWith(source *ServiceData) (int, bool) { 1194 switch fpv.selector { 1195 case ServiceData_FieldPathSelectorName: 1196 leftValue := fpv.value.(string) 1197 rightValue := source.GetName() 1198 if (leftValue) == (rightValue) { 1199 return 0, true 1200 } else if (leftValue) < (rightValue) { 1201 return -1, true 1202 } else { 1203 return 1, true 1204 } 1205 case ServiceData_FieldPathSelectorRegionId: 1206 leftValue := fpv.value.(string) 1207 rightValue := source.GetRegionId() 1208 if (leftValue) == (rightValue) { 1209 return 0, true 1210 } else if (leftValue) < (rightValue) { 1211 return -1, true 1212 } else { 1213 return 1, true 1214 } 1215 case ServiceData_FieldPathSelectorHostname: 1216 leftValue := fpv.value.(string) 1217 rightValue := source.GetHostname() 1218 if (leftValue) == (rightValue) { 1219 return 0, true 1220 } else if (leftValue) < (rightValue) { 1221 return -1, true 1222 } else { 1223 return 1, true 1224 } 1225 default: 1226 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fpv.selector)) 1227 } 1228 } 1229 1230 func (fpv *ServiceData_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 1231 return fpv.CompareWith(source.(*ServiceData)) 1232 } 1233 1234 // ServiceData_FieldPathArrayItemValue allows storing single item in Path-specific values for ServiceData according to their type 1235 // Present only for array (repeated) types. 1236 type ServiceData_FieldPathArrayItemValue interface { 1237 gotenobject.FieldPathArrayItemValue 1238 ServiceData_FieldPath 1239 ContainsValue(*ServiceData) bool 1240 } 1241 1242 // ParseServiceData_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 1243 func ParseServiceData_FieldPathArrayItemValue(pathStr, valueStr string) (ServiceData_FieldPathArrayItemValue, error) { 1244 fp, err := ParseServiceData_FieldPath(pathStr) 1245 if err != nil { 1246 return nil, err 1247 } 1248 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 1249 if err != nil { 1250 return nil, status.Errorf(codes.InvalidArgument, "error parsing ServiceData field path array item value from %s: %v", valueStr, err) 1251 } 1252 return fpaiv.(ServiceData_FieldPathArrayItemValue), nil 1253 } 1254 1255 func MustParseServiceData_FieldPathArrayItemValue(pathStr, valueStr string) ServiceData_FieldPathArrayItemValue { 1256 fpaiv, err := ParseServiceData_FieldPathArrayItemValue(pathStr, valueStr) 1257 if err != nil { 1258 panic(err) 1259 } 1260 return fpaiv 1261 } 1262 1263 type ServiceData_FieldTerminalPathArrayItemValue struct { 1264 ServiceData_FieldTerminalPath 1265 value interface{} 1266 } 1267 1268 var _ ServiceData_FieldPathArrayItemValue = (*ServiceData_FieldTerminalPathArrayItemValue)(nil) 1269 1270 // GetRawValue returns stored element value for array in object ServiceData as interface{} 1271 func (fpaiv *ServiceData_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 1272 return fpaiv.value 1273 } 1274 1275 func (fpaiv *ServiceData_FieldTerminalPathArrayItemValue) GetSingle(source *ServiceData) (interface{}, bool) { 1276 return nil, false 1277 } 1278 1279 func (fpaiv *ServiceData_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 1280 return fpaiv.GetSingle(source.(*ServiceData)) 1281 } 1282 1283 // Contains returns a boolean indicating if value that is being held is present in given 'ServiceData' 1284 func (fpaiv *ServiceData_FieldTerminalPathArrayItemValue) ContainsValue(source *ServiceData) bool { 1285 slice := fpaiv.ServiceData_FieldTerminalPath.Get(source) 1286 for _, v := range slice { 1287 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 1288 if proto.Equal(asProtoMsg, v.(proto.Message)) { 1289 return true 1290 } 1291 } else if reflect.DeepEqual(v, fpaiv.value) { 1292 return true 1293 } 1294 } 1295 return false 1296 } 1297 1298 // ServiceData_FieldPathArrayOfValues allows storing slice of values for ServiceData fields according to their type 1299 type ServiceData_FieldPathArrayOfValues interface { 1300 gotenobject.FieldPathArrayOfValues 1301 ServiceData_FieldPath 1302 } 1303 1304 func ParseServiceData_FieldPathArrayOfValues(pathStr, valuesStr string) (ServiceData_FieldPathArrayOfValues, error) { 1305 fp, err := ParseServiceData_FieldPath(pathStr) 1306 if err != nil { 1307 return nil, err 1308 } 1309 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 1310 if err != nil { 1311 return nil, status.Errorf(codes.InvalidArgument, "error parsing ServiceData field path array of values from %s: %v", valuesStr, err) 1312 } 1313 return fpaov.(ServiceData_FieldPathArrayOfValues), nil 1314 } 1315 1316 func MustParseServiceData_FieldPathArrayOfValues(pathStr, valuesStr string) ServiceData_FieldPathArrayOfValues { 1317 fpaov, err := ParseServiceData_FieldPathArrayOfValues(pathStr, valuesStr) 1318 if err != nil { 1319 panic(err) 1320 } 1321 return fpaov 1322 } 1323 1324 type ServiceData_FieldTerminalPathArrayOfValues struct { 1325 ServiceData_FieldTerminalPath 1326 values interface{} 1327 } 1328 1329 var _ ServiceData_FieldPathArrayOfValues = (*ServiceData_FieldTerminalPathArrayOfValues)(nil) 1330 1331 func (fpaov *ServiceData_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 1332 switch fpaov.selector { 1333 case ServiceData_FieldPathSelectorName: 1334 for _, v := range fpaov.values.([]string) { 1335 values = append(values, v) 1336 } 1337 case ServiceData_FieldPathSelectorRegionId: 1338 for _, v := range fpaov.values.([]string) { 1339 values = append(values, v) 1340 } 1341 case ServiceData_FieldPathSelectorHostname: 1342 for _, v := range fpaov.values.([]string) { 1343 values = append(values, v) 1344 } 1345 } 1346 return 1347 } 1348 func (fpaov *ServiceData_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]string, bool) { 1349 res, ok := fpaov.values.([]string) 1350 return res, ok 1351 } 1352 func (fpaov *ServiceData_FieldTerminalPathArrayOfValues) AsRegionIdArrayOfValues() ([]string, bool) { 1353 res, ok := fpaov.values.([]string) 1354 return res, ok 1355 } 1356 func (fpaov *ServiceData_FieldTerminalPathArrayOfValues) AsHostnameArrayOfValues() ([]string, bool) { 1357 res, ok := fpaov.values.([]string) 1358 return res, ok 1359 } 1360 1361 // FieldPath provides implementation to handle 1362 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 1363 type ObjectState_FieldPath interface { 1364 gotenobject.FieldPath 1365 Selector() ObjectState_FieldPathSelector 1366 Get(source *ObjectState) []interface{} 1367 GetSingle(source *ObjectState) (interface{}, bool) 1368 ClearValue(item *ObjectState) 1369 1370 // Those methods build corresponding ObjectState_FieldPathValue 1371 // (or array of values) and holds passed value. Panics if injected type is incorrect. 1372 WithIValue(value interface{}) ObjectState_FieldPathValue 1373 WithIArrayOfValues(values interface{}) ObjectState_FieldPathArrayOfValues 1374 WithIArrayItemValue(value interface{}) ObjectState_FieldPathArrayItemValue 1375 } 1376 1377 type ObjectState_FieldPathSelector int32 1378 1379 const ( 1380 ObjectState_FieldPathSelectorData ObjectState_FieldPathSelector = 0 1381 ObjectState_FieldPathSelectorLabels ObjectState_FieldPathSelector = 1 1382 ) 1383 1384 func (s ObjectState_FieldPathSelector) String() string { 1385 switch s { 1386 case ObjectState_FieldPathSelectorData: 1387 return "data" 1388 case ObjectState_FieldPathSelectorLabels: 1389 return "labels" 1390 default: 1391 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", s)) 1392 } 1393 } 1394 1395 func BuildObjectState_FieldPath(fp gotenobject.RawFieldPath) (ObjectState_FieldPath, error) { 1396 if len(fp) == 0 { 1397 return nil, status.Error(codes.InvalidArgument, "empty field path for object ObjectState") 1398 } 1399 if len(fp) == 1 { 1400 switch fp[0] { 1401 case "data": 1402 return &ObjectState_FieldTerminalPath{selector: ObjectState_FieldPathSelectorData}, nil 1403 case "labels": 1404 return &ObjectState_FieldTerminalPath{selector: ObjectState_FieldPathSelectorLabels}, nil 1405 } 1406 } else { 1407 switch fp[0] { 1408 case "labels": 1409 if len(fp) > 2 { 1410 return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object ObjectState)", fp) 1411 } 1412 return &ObjectState_FieldPathMap{selector: ObjectState_FieldPathSelectorLabels, key: fp[1]}, nil 1413 } 1414 } 1415 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ObjectState", fp) 1416 } 1417 1418 func ParseObjectState_FieldPath(rawField string) (ObjectState_FieldPath, error) { 1419 fp, err := gotenobject.ParseRawFieldPath(rawField) 1420 if err != nil { 1421 return nil, err 1422 } 1423 return BuildObjectState_FieldPath(fp) 1424 } 1425 1426 func MustParseObjectState_FieldPath(rawField string) ObjectState_FieldPath { 1427 fp, err := ParseObjectState_FieldPath(rawField) 1428 if err != nil { 1429 panic(err) 1430 } 1431 return fp 1432 } 1433 1434 type ObjectState_FieldTerminalPath struct { 1435 selector ObjectState_FieldPathSelector 1436 } 1437 1438 var _ ObjectState_FieldPath = (*ObjectState_FieldTerminalPath)(nil) 1439 1440 func (fp *ObjectState_FieldTerminalPath) Selector() ObjectState_FieldPathSelector { 1441 return fp.selector 1442 } 1443 1444 // String returns path representation in proto convention 1445 func (fp *ObjectState_FieldTerminalPath) String() string { 1446 return fp.selector.String() 1447 } 1448 1449 // JSONString returns path representation is JSON convention 1450 func (fp *ObjectState_FieldTerminalPath) JSONString() string { 1451 return strcase.ToLowerCamel(fp.String()) 1452 } 1453 1454 // Get returns all values pointed by specific field from source ObjectState 1455 func (fp *ObjectState_FieldTerminalPath) Get(source *ObjectState) (values []interface{}) { 1456 if source != nil { 1457 switch fp.selector { 1458 case ObjectState_FieldPathSelectorData: 1459 if source.Data != nil { 1460 values = append(values, source.Data) 1461 } 1462 case ObjectState_FieldPathSelectorLabels: 1463 values = append(values, source.Labels) 1464 default: 1465 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1466 } 1467 } 1468 return 1469 } 1470 1471 func (fp *ObjectState_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 1472 return fp.Get(source.(*ObjectState)) 1473 } 1474 1475 // GetSingle returns value pointed by specific field of from source ObjectState 1476 func (fp *ObjectState_FieldTerminalPath) GetSingle(source *ObjectState) (interface{}, bool) { 1477 switch fp.selector { 1478 case ObjectState_FieldPathSelectorData: 1479 res := source.GetData() 1480 return res, res != nil 1481 case ObjectState_FieldPathSelectorLabels: 1482 res := source.GetLabels() 1483 return res, res != nil 1484 default: 1485 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1486 } 1487 } 1488 1489 func (fp *ObjectState_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1490 return fp.GetSingle(source.(*ObjectState)) 1491 } 1492 1493 // GetDefault returns a default value of the field type 1494 func (fp *ObjectState_FieldTerminalPath) GetDefault() interface{} { 1495 switch fp.selector { 1496 case ObjectState_FieldPathSelectorData: 1497 return (*anypb.Any)(nil) 1498 case ObjectState_FieldPathSelectorLabels: 1499 return (map[string]string)(nil) 1500 default: 1501 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1502 } 1503 } 1504 1505 func (fp *ObjectState_FieldTerminalPath) ClearValue(item *ObjectState) { 1506 if item != nil { 1507 switch fp.selector { 1508 case ObjectState_FieldPathSelectorData: 1509 item.Data = nil 1510 case ObjectState_FieldPathSelectorLabels: 1511 item.Labels = nil 1512 default: 1513 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1514 } 1515 } 1516 } 1517 1518 func (fp *ObjectState_FieldTerminalPath) ClearValueRaw(item proto.Message) { 1519 fp.ClearValue(item.(*ObjectState)) 1520 } 1521 1522 // IsLeaf - whether field path is holds simple value 1523 func (fp *ObjectState_FieldTerminalPath) IsLeaf() bool { 1524 return fp.selector == ObjectState_FieldPathSelectorData || 1525 fp.selector == ObjectState_FieldPathSelectorLabels 1526 } 1527 1528 func (fp *ObjectState_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1529 return []gotenobject.FieldPath{fp} 1530 } 1531 1532 func (fp *ObjectState_FieldTerminalPath) WithIValue(value interface{}) ObjectState_FieldPathValue { 1533 switch fp.selector { 1534 case ObjectState_FieldPathSelectorData: 1535 return &ObjectState_FieldTerminalPathValue{ObjectState_FieldTerminalPath: *fp, value: value.(*anypb.Any)} 1536 case ObjectState_FieldPathSelectorLabels: 1537 return &ObjectState_FieldTerminalPathValue{ObjectState_FieldTerminalPath: *fp, value: value.(map[string]string)} 1538 default: 1539 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1540 } 1541 } 1542 1543 func (fp *ObjectState_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1544 return fp.WithIValue(value) 1545 } 1546 1547 func (fp *ObjectState_FieldTerminalPath) WithIArrayOfValues(values interface{}) ObjectState_FieldPathArrayOfValues { 1548 fpaov := &ObjectState_FieldTerminalPathArrayOfValues{ObjectState_FieldTerminalPath: *fp} 1549 switch fp.selector { 1550 case ObjectState_FieldPathSelectorData: 1551 return &ObjectState_FieldTerminalPathArrayOfValues{ObjectState_FieldTerminalPath: *fp, values: values.([]*anypb.Any)} 1552 case ObjectState_FieldPathSelectorLabels: 1553 return &ObjectState_FieldTerminalPathArrayOfValues{ObjectState_FieldTerminalPath: *fp, values: values.([]map[string]string)} 1554 default: 1555 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1556 } 1557 return fpaov 1558 } 1559 1560 func (fp *ObjectState_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1561 return fp.WithIArrayOfValues(values) 1562 } 1563 1564 func (fp *ObjectState_FieldTerminalPath) WithIArrayItemValue(value interface{}) ObjectState_FieldPathArrayItemValue { 1565 switch fp.selector { 1566 default: 1567 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1568 } 1569 } 1570 1571 func (fp *ObjectState_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1572 return fp.WithIArrayItemValue(value) 1573 } 1574 1575 // FieldPath for map type with additional Key information 1576 type ObjectState_FieldPathMap struct { 1577 key string 1578 selector ObjectState_FieldPathSelector 1579 } 1580 1581 var _ ObjectState_FieldPath = (*ObjectState_FieldPathMap)(nil) 1582 1583 func (fpm *ObjectState_FieldPathMap) Selector() ObjectState_FieldPathSelector { 1584 return fpm.selector 1585 } 1586 1587 func (fpm *ObjectState_FieldPathMap) Key() string { 1588 return fpm.key 1589 } 1590 1591 // String returns path representation in proto convention 1592 func (fpm *ObjectState_FieldPathMap) String() string { 1593 return fpm.selector.String() + "." + fpm.key 1594 } 1595 1596 // JSONString returns path representation is JSON convention. Note that map keys are not transformed 1597 func (fpm *ObjectState_FieldPathMap) JSONString() string { 1598 return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key 1599 } 1600 1601 // Get returns all values pointed by selected field map key from source ObjectState 1602 func (fpm *ObjectState_FieldPathMap) Get(source *ObjectState) (values []interface{}) { 1603 switch fpm.selector { 1604 case ObjectState_FieldPathSelectorLabels: 1605 if value, ok := source.GetLabels()[fpm.key]; ok { 1606 values = append(values, value) 1607 } 1608 default: 1609 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1610 } 1611 return 1612 } 1613 1614 func (fpm *ObjectState_FieldPathMap) GetRaw(source proto.Message) []interface{} { 1615 return fpm.Get(source.(*ObjectState)) 1616 } 1617 1618 // GetSingle returns value by selected field map key from source ObjectState 1619 func (fpm *ObjectState_FieldPathMap) GetSingle(source *ObjectState) (interface{}, bool) { 1620 switch fpm.selector { 1621 case ObjectState_FieldPathSelectorLabels: 1622 res, ok := source.GetLabels()[fpm.key] 1623 return res, ok 1624 default: 1625 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1626 } 1627 } 1628 1629 func (fpm *ObjectState_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) { 1630 return fpm.GetSingle(source.(*ObjectState)) 1631 } 1632 1633 // GetDefault returns a default value of the field type 1634 func (fpm *ObjectState_FieldPathMap) GetDefault() interface{} { 1635 switch fpm.selector { 1636 case ObjectState_FieldPathSelectorLabels: 1637 var v string 1638 return v 1639 default: 1640 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1641 } 1642 } 1643 1644 func (fpm *ObjectState_FieldPathMap) ClearValue(item *ObjectState) { 1645 if item != nil { 1646 switch fpm.selector { 1647 case ObjectState_FieldPathSelectorLabels: 1648 delete(item.Labels, fpm.key) 1649 default: 1650 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1651 } 1652 } 1653 } 1654 1655 func (fpm *ObjectState_FieldPathMap) ClearValueRaw(item proto.Message) { 1656 fpm.ClearValue(item.(*ObjectState)) 1657 } 1658 1659 // IsLeaf - whether field path is holds simple value 1660 func (fpm *ObjectState_FieldPathMap) IsLeaf() bool { 1661 switch fpm.selector { 1662 case ObjectState_FieldPathSelectorLabels: 1663 return true 1664 default: 1665 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1666 } 1667 } 1668 1669 func (fpm *ObjectState_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1670 return []gotenobject.FieldPath{fpm} 1671 } 1672 1673 func (fpm *ObjectState_FieldPathMap) WithIValue(value interface{}) ObjectState_FieldPathValue { 1674 switch fpm.selector { 1675 case ObjectState_FieldPathSelectorLabels: 1676 return &ObjectState_FieldPathMapValue{ObjectState_FieldPathMap: *fpm, value: value.(string)} 1677 default: 1678 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1679 } 1680 } 1681 1682 func (fpm *ObjectState_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1683 return fpm.WithIValue(value) 1684 } 1685 1686 func (fpm *ObjectState_FieldPathMap) WithIArrayOfValues(values interface{}) ObjectState_FieldPathArrayOfValues { 1687 switch fpm.selector { 1688 case ObjectState_FieldPathSelectorLabels: 1689 return &ObjectState_FieldPathMapArrayOfValues{ObjectState_FieldPathMap: *fpm, values: values.([]string)} 1690 default: 1691 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1692 } 1693 } 1694 1695 func (fpm *ObjectState_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1696 return fpm.WithIArrayOfValues(values) 1697 } 1698 1699 func (fpm *ObjectState_FieldPathMap) WithIArrayItemValue(value interface{}) ObjectState_FieldPathArrayItemValue { 1700 panic("Cannot create array item value from map fieldpath") 1701 } 1702 1703 func (fpm *ObjectState_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1704 return fpm.WithIArrayItemValue(value) 1705 } 1706 1707 // ObjectState_FieldPathValue allows storing values for ObjectState fields according to their type 1708 type ObjectState_FieldPathValue interface { 1709 ObjectState_FieldPath 1710 gotenobject.FieldPathValue 1711 SetTo(target **ObjectState) 1712 CompareWith(*ObjectState) (cmp int, comparable bool) 1713 } 1714 1715 func ParseObjectState_FieldPathValue(pathStr, valueStr string) (ObjectState_FieldPathValue, error) { 1716 fp, err := ParseObjectState_FieldPath(pathStr) 1717 if err != nil { 1718 return nil, err 1719 } 1720 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 1721 if err != nil { 1722 return nil, status.Errorf(codes.InvalidArgument, "error parsing ObjectState field path value from %s: %v", valueStr, err) 1723 } 1724 return fpv.(ObjectState_FieldPathValue), nil 1725 } 1726 1727 func MustParseObjectState_FieldPathValue(pathStr, valueStr string) ObjectState_FieldPathValue { 1728 fpv, err := ParseObjectState_FieldPathValue(pathStr, valueStr) 1729 if err != nil { 1730 panic(err) 1731 } 1732 return fpv 1733 } 1734 1735 type ObjectState_FieldTerminalPathValue struct { 1736 ObjectState_FieldTerminalPath 1737 value interface{} 1738 } 1739 1740 var _ ObjectState_FieldPathValue = (*ObjectState_FieldTerminalPathValue)(nil) 1741 1742 // GetRawValue returns raw value stored under selected path for 'ObjectState' as interface{} 1743 func (fpv *ObjectState_FieldTerminalPathValue) GetRawValue() interface{} { 1744 return fpv.value 1745 } 1746 func (fpv *ObjectState_FieldTerminalPathValue) AsDataValue() (*anypb.Any, bool) { 1747 res, ok := fpv.value.(*anypb.Any) 1748 return res, ok 1749 } 1750 func (fpv *ObjectState_FieldTerminalPathValue) AsLabelsValue() (map[string]string, bool) { 1751 res, ok := fpv.value.(map[string]string) 1752 return res, ok 1753 } 1754 1755 // SetTo stores value for selected field for object ObjectState 1756 func (fpv *ObjectState_FieldTerminalPathValue) SetTo(target **ObjectState) { 1757 if *target == nil { 1758 *target = new(ObjectState) 1759 } 1760 switch fpv.selector { 1761 case ObjectState_FieldPathSelectorData: 1762 (*target).Data = fpv.value.(*anypb.Any) 1763 case ObjectState_FieldPathSelectorLabels: 1764 (*target).Labels = fpv.value.(map[string]string) 1765 default: 1766 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpv.selector)) 1767 } 1768 } 1769 1770 func (fpv *ObjectState_FieldTerminalPathValue) SetToRaw(target proto.Message) { 1771 typedObject := target.(*ObjectState) 1772 fpv.SetTo(&typedObject) 1773 } 1774 1775 // CompareWith compares value in the 'ObjectState_FieldTerminalPathValue' with the value under path in 'ObjectState'. 1776 func (fpv *ObjectState_FieldTerminalPathValue) CompareWith(source *ObjectState) (int, bool) { 1777 switch fpv.selector { 1778 case ObjectState_FieldPathSelectorData: 1779 return 0, false 1780 case ObjectState_FieldPathSelectorLabels: 1781 return 0, false 1782 default: 1783 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpv.selector)) 1784 } 1785 } 1786 1787 func (fpv *ObjectState_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 1788 return fpv.CompareWith(source.(*ObjectState)) 1789 } 1790 1791 type ObjectState_FieldPathMapValue struct { 1792 ObjectState_FieldPathMap 1793 value interface{} 1794 } 1795 1796 var _ ObjectState_FieldPathValue = (*ObjectState_FieldPathMapValue)(nil) 1797 1798 // GetValue returns value stored under selected field in ObjectState as interface{} 1799 func (fpmv *ObjectState_FieldPathMapValue) GetRawValue() interface{} { 1800 return fpmv.value 1801 } 1802 func (fpmv *ObjectState_FieldPathMapValue) AsLabelsElementValue() (string, bool) { 1803 res, ok := fpmv.value.(string) 1804 return res, ok 1805 } 1806 1807 // SetTo stores value for selected field in ObjectState 1808 func (fpmv *ObjectState_FieldPathMapValue) SetTo(target **ObjectState) { 1809 if *target == nil { 1810 *target = new(ObjectState) 1811 } 1812 switch fpmv.selector { 1813 case ObjectState_FieldPathSelectorLabels: 1814 if (*target).Labels == nil { 1815 (*target).Labels = make(map[string]string) 1816 } 1817 (*target).Labels[fpmv.key] = fpmv.value.(string) 1818 default: 1819 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpmv.selector)) 1820 } 1821 } 1822 1823 func (fpmv *ObjectState_FieldPathMapValue) SetToRaw(target proto.Message) { 1824 typedObject := target.(*ObjectState) 1825 fpmv.SetTo(&typedObject) 1826 } 1827 1828 // CompareWith compares value in the 'ObjectState_FieldPathMapValue' with the value under path in 'ObjectState'. 1829 func (fpmv *ObjectState_FieldPathMapValue) CompareWith(source *ObjectState) (int, bool) { 1830 switch fpmv.selector { 1831 case ObjectState_FieldPathSelectorLabels: 1832 leftValue := fpmv.value.(string) 1833 rightValue := source.GetLabels()[fpmv.key] 1834 if (leftValue) == (rightValue) { 1835 return 0, true 1836 } else if (leftValue) < (rightValue) { 1837 return -1, true 1838 } else { 1839 return 1, true 1840 } 1841 default: 1842 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpmv.selector)) 1843 } 1844 } 1845 1846 func (fpmv *ObjectState_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) { 1847 return fpmv.CompareWith(source.(*ObjectState)) 1848 } 1849 1850 // ObjectState_FieldPathArrayItemValue allows storing single item in Path-specific values for ObjectState according to their type 1851 // Present only for array (repeated) types. 1852 type ObjectState_FieldPathArrayItemValue interface { 1853 gotenobject.FieldPathArrayItemValue 1854 ObjectState_FieldPath 1855 ContainsValue(*ObjectState) bool 1856 } 1857 1858 // ParseObjectState_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 1859 func ParseObjectState_FieldPathArrayItemValue(pathStr, valueStr string) (ObjectState_FieldPathArrayItemValue, error) { 1860 fp, err := ParseObjectState_FieldPath(pathStr) 1861 if err != nil { 1862 return nil, err 1863 } 1864 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 1865 if err != nil { 1866 return nil, status.Errorf(codes.InvalidArgument, "error parsing ObjectState field path array item value from %s: %v", valueStr, err) 1867 } 1868 return fpaiv.(ObjectState_FieldPathArrayItemValue), nil 1869 } 1870 1871 func MustParseObjectState_FieldPathArrayItemValue(pathStr, valueStr string) ObjectState_FieldPathArrayItemValue { 1872 fpaiv, err := ParseObjectState_FieldPathArrayItemValue(pathStr, valueStr) 1873 if err != nil { 1874 panic(err) 1875 } 1876 return fpaiv 1877 } 1878 1879 type ObjectState_FieldTerminalPathArrayItemValue struct { 1880 ObjectState_FieldTerminalPath 1881 value interface{} 1882 } 1883 1884 var _ ObjectState_FieldPathArrayItemValue = (*ObjectState_FieldTerminalPathArrayItemValue)(nil) 1885 1886 // GetRawValue returns stored element value for array in object ObjectState as interface{} 1887 func (fpaiv *ObjectState_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 1888 return fpaiv.value 1889 } 1890 1891 func (fpaiv *ObjectState_FieldTerminalPathArrayItemValue) GetSingle(source *ObjectState) (interface{}, bool) { 1892 return nil, false 1893 } 1894 1895 func (fpaiv *ObjectState_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 1896 return fpaiv.GetSingle(source.(*ObjectState)) 1897 } 1898 1899 // Contains returns a boolean indicating if value that is being held is present in given 'ObjectState' 1900 func (fpaiv *ObjectState_FieldTerminalPathArrayItemValue) ContainsValue(source *ObjectState) bool { 1901 slice := fpaiv.ObjectState_FieldTerminalPath.Get(source) 1902 for _, v := range slice { 1903 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 1904 if proto.Equal(asProtoMsg, v.(proto.Message)) { 1905 return true 1906 } 1907 } else if reflect.DeepEqual(v, fpaiv.value) { 1908 return true 1909 } 1910 } 1911 return false 1912 } 1913 1914 // ObjectState_FieldPathArrayOfValues allows storing slice of values for ObjectState fields according to their type 1915 type ObjectState_FieldPathArrayOfValues interface { 1916 gotenobject.FieldPathArrayOfValues 1917 ObjectState_FieldPath 1918 } 1919 1920 func ParseObjectState_FieldPathArrayOfValues(pathStr, valuesStr string) (ObjectState_FieldPathArrayOfValues, error) { 1921 fp, err := ParseObjectState_FieldPath(pathStr) 1922 if err != nil { 1923 return nil, err 1924 } 1925 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 1926 if err != nil { 1927 return nil, status.Errorf(codes.InvalidArgument, "error parsing ObjectState field path array of values from %s: %v", valuesStr, err) 1928 } 1929 return fpaov.(ObjectState_FieldPathArrayOfValues), nil 1930 } 1931 1932 func MustParseObjectState_FieldPathArrayOfValues(pathStr, valuesStr string) ObjectState_FieldPathArrayOfValues { 1933 fpaov, err := ParseObjectState_FieldPathArrayOfValues(pathStr, valuesStr) 1934 if err != nil { 1935 panic(err) 1936 } 1937 return fpaov 1938 } 1939 1940 type ObjectState_FieldTerminalPathArrayOfValues struct { 1941 ObjectState_FieldTerminalPath 1942 values interface{} 1943 } 1944 1945 var _ ObjectState_FieldPathArrayOfValues = (*ObjectState_FieldTerminalPathArrayOfValues)(nil) 1946 1947 func (fpaov *ObjectState_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 1948 switch fpaov.selector { 1949 case ObjectState_FieldPathSelectorData: 1950 for _, v := range fpaov.values.([]*anypb.Any) { 1951 values = append(values, v) 1952 } 1953 case ObjectState_FieldPathSelectorLabels: 1954 for _, v := range fpaov.values.([]map[string]string) { 1955 values = append(values, v) 1956 } 1957 } 1958 return 1959 } 1960 func (fpaov *ObjectState_FieldTerminalPathArrayOfValues) AsDataArrayOfValues() ([]*anypb.Any, bool) { 1961 res, ok := fpaov.values.([]*anypb.Any) 1962 return res, ok 1963 } 1964 func (fpaov *ObjectState_FieldTerminalPathArrayOfValues) AsLabelsArrayOfValues() ([]map[string]string, bool) { 1965 res, ok := fpaov.values.([]map[string]string) 1966 return res, ok 1967 } 1968 1969 type ObjectState_FieldPathMapArrayOfValues struct { 1970 ObjectState_FieldPathMap 1971 values interface{} 1972 } 1973 1974 var _ ObjectState_FieldPathArrayOfValues = (*ObjectState_FieldPathMapArrayOfValues)(nil) 1975 1976 func (fpmaov *ObjectState_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) { 1977 switch fpmaov.selector { 1978 case ObjectState_FieldPathSelectorLabels: 1979 for _, v := range fpmaov.values.([]string) { 1980 values = append(values, v) 1981 } 1982 } 1983 return 1984 } 1985 func (fpmaov *ObjectState_FieldPathMapArrayOfValues) AsLabelsArrayOfElementValues() ([]string, bool) { 1986 res, ok := fpmaov.values.([]string) 1987 return res, ok 1988 } 1989 1990 // FieldPath provides implementation to handle 1991 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 1992 type LabelDescriptor_FieldPath interface { 1993 gotenobject.FieldPath 1994 Selector() LabelDescriptor_FieldPathSelector 1995 Get(source *LabelDescriptor) []interface{} 1996 GetSingle(source *LabelDescriptor) (interface{}, bool) 1997 ClearValue(item *LabelDescriptor) 1998 1999 // Those methods build corresponding LabelDescriptor_FieldPathValue 2000 // (or array of values) and holds passed value. Panics if injected type is incorrect. 2001 WithIValue(value interface{}) LabelDescriptor_FieldPathValue 2002 WithIArrayOfValues(values interface{}) LabelDescriptor_FieldPathArrayOfValues 2003 WithIArrayItemValue(value interface{}) LabelDescriptor_FieldPathArrayItemValue 2004 } 2005 2006 type LabelDescriptor_FieldPathSelector int32 2007 2008 const ( 2009 LabelDescriptor_FieldPathSelectorKey LabelDescriptor_FieldPathSelector = 0 2010 LabelDescriptor_FieldPathSelectorVersions LabelDescriptor_FieldPathSelector = 1 2011 ) 2012 2013 func (s LabelDescriptor_FieldPathSelector) String() string { 2014 switch s { 2015 case LabelDescriptor_FieldPathSelectorKey: 2016 return "key" 2017 case LabelDescriptor_FieldPathSelectorVersions: 2018 return "versions" 2019 default: 2020 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", s)) 2021 } 2022 } 2023 2024 func BuildLabelDescriptor_FieldPath(fp gotenobject.RawFieldPath) (LabelDescriptor_FieldPath, error) { 2025 if len(fp) == 0 { 2026 return nil, status.Error(codes.InvalidArgument, "empty field path for object LabelDescriptor") 2027 } 2028 if len(fp) == 1 { 2029 switch fp[0] { 2030 case "key": 2031 return &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorKey}, nil 2032 case "versions": 2033 return &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorVersions}, nil 2034 } 2035 } 2036 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object LabelDescriptor", fp) 2037 } 2038 2039 func ParseLabelDescriptor_FieldPath(rawField string) (LabelDescriptor_FieldPath, error) { 2040 fp, err := gotenobject.ParseRawFieldPath(rawField) 2041 if err != nil { 2042 return nil, err 2043 } 2044 return BuildLabelDescriptor_FieldPath(fp) 2045 } 2046 2047 func MustParseLabelDescriptor_FieldPath(rawField string) LabelDescriptor_FieldPath { 2048 fp, err := ParseLabelDescriptor_FieldPath(rawField) 2049 if err != nil { 2050 panic(err) 2051 } 2052 return fp 2053 } 2054 2055 type LabelDescriptor_FieldTerminalPath struct { 2056 selector LabelDescriptor_FieldPathSelector 2057 } 2058 2059 var _ LabelDescriptor_FieldPath = (*LabelDescriptor_FieldTerminalPath)(nil) 2060 2061 func (fp *LabelDescriptor_FieldTerminalPath) Selector() LabelDescriptor_FieldPathSelector { 2062 return fp.selector 2063 } 2064 2065 // String returns path representation in proto convention 2066 func (fp *LabelDescriptor_FieldTerminalPath) String() string { 2067 return fp.selector.String() 2068 } 2069 2070 // JSONString returns path representation is JSON convention 2071 func (fp *LabelDescriptor_FieldTerminalPath) JSONString() string { 2072 return strcase.ToLowerCamel(fp.String()) 2073 } 2074 2075 // Get returns all values pointed by specific field from source LabelDescriptor 2076 func (fp *LabelDescriptor_FieldTerminalPath) Get(source *LabelDescriptor) (values []interface{}) { 2077 if source != nil { 2078 switch fp.selector { 2079 case LabelDescriptor_FieldPathSelectorKey: 2080 values = append(values, source.Key) 2081 case LabelDescriptor_FieldPathSelectorVersions: 2082 for _, value := range source.GetVersions() { 2083 values = append(values, value) 2084 } 2085 default: 2086 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2087 } 2088 } 2089 return 2090 } 2091 2092 func (fp *LabelDescriptor_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 2093 return fp.Get(source.(*LabelDescriptor)) 2094 } 2095 2096 // GetSingle returns value pointed by specific field of from source LabelDescriptor 2097 func (fp *LabelDescriptor_FieldTerminalPath) GetSingle(source *LabelDescriptor) (interface{}, bool) { 2098 switch fp.selector { 2099 case LabelDescriptor_FieldPathSelectorKey: 2100 return source.GetKey(), source != nil 2101 case LabelDescriptor_FieldPathSelectorVersions: 2102 res := source.GetVersions() 2103 return res, res != nil 2104 default: 2105 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2106 } 2107 } 2108 2109 func (fp *LabelDescriptor_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 2110 return fp.GetSingle(source.(*LabelDescriptor)) 2111 } 2112 2113 // GetDefault returns a default value of the field type 2114 func (fp *LabelDescriptor_FieldTerminalPath) GetDefault() interface{} { 2115 switch fp.selector { 2116 case LabelDescriptor_FieldPathSelectorKey: 2117 return "" 2118 case LabelDescriptor_FieldPathSelectorVersions: 2119 return ([]string)(nil) 2120 default: 2121 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2122 } 2123 } 2124 2125 func (fp *LabelDescriptor_FieldTerminalPath) ClearValue(item *LabelDescriptor) { 2126 if item != nil { 2127 switch fp.selector { 2128 case LabelDescriptor_FieldPathSelectorKey: 2129 item.Key = "" 2130 case LabelDescriptor_FieldPathSelectorVersions: 2131 item.Versions = nil 2132 default: 2133 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2134 } 2135 } 2136 } 2137 2138 func (fp *LabelDescriptor_FieldTerminalPath) ClearValueRaw(item proto.Message) { 2139 fp.ClearValue(item.(*LabelDescriptor)) 2140 } 2141 2142 // IsLeaf - whether field path is holds simple value 2143 func (fp *LabelDescriptor_FieldTerminalPath) IsLeaf() bool { 2144 return fp.selector == LabelDescriptor_FieldPathSelectorKey || 2145 fp.selector == LabelDescriptor_FieldPathSelectorVersions 2146 } 2147 2148 func (fp *LabelDescriptor_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2149 return []gotenobject.FieldPath{fp} 2150 } 2151 2152 func (fp *LabelDescriptor_FieldTerminalPath) WithIValue(value interface{}) LabelDescriptor_FieldPathValue { 2153 switch fp.selector { 2154 case LabelDescriptor_FieldPathSelectorKey: 2155 return &LabelDescriptor_FieldTerminalPathValue{LabelDescriptor_FieldTerminalPath: *fp, value: value.(string)} 2156 case LabelDescriptor_FieldPathSelectorVersions: 2157 return &LabelDescriptor_FieldTerminalPathValue{LabelDescriptor_FieldTerminalPath: *fp, value: value.([]string)} 2158 default: 2159 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2160 } 2161 } 2162 2163 func (fp *LabelDescriptor_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 2164 return fp.WithIValue(value) 2165 } 2166 2167 func (fp *LabelDescriptor_FieldTerminalPath) WithIArrayOfValues(values interface{}) LabelDescriptor_FieldPathArrayOfValues { 2168 fpaov := &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp} 2169 switch fp.selector { 2170 case LabelDescriptor_FieldPathSelectorKey: 2171 return &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp, values: values.([]string)} 2172 case LabelDescriptor_FieldPathSelectorVersions: 2173 return &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp, values: values.([][]string)} 2174 default: 2175 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2176 } 2177 return fpaov 2178 } 2179 2180 func (fp *LabelDescriptor_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 2181 return fp.WithIArrayOfValues(values) 2182 } 2183 2184 func (fp *LabelDescriptor_FieldTerminalPath) WithIArrayItemValue(value interface{}) LabelDescriptor_FieldPathArrayItemValue { 2185 switch fp.selector { 2186 case LabelDescriptor_FieldPathSelectorVersions: 2187 return &LabelDescriptor_FieldTerminalPathArrayItemValue{LabelDescriptor_FieldTerminalPath: *fp, value: value.(string)} 2188 default: 2189 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2190 } 2191 } 2192 2193 func (fp *LabelDescriptor_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 2194 return fp.WithIArrayItemValue(value) 2195 } 2196 2197 // LabelDescriptor_FieldPathValue allows storing values for LabelDescriptor fields according to their type 2198 type LabelDescriptor_FieldPathValue interface { 2199 LabelDescriptor_FieldPath 2200 gotenobject.FieldPathValue 2201 SetTo(target **LabelDescriptor) 2202 CompareWith(*LabelDescriptor) (cmp int, comparable bool) 2203 } 2204 2205 func ParseLabelDescriptor_FieldPathValue(pathStr, valueStr string) (LabelDescriptor_FieldPathValue, error) { 2206 fp, err := ParseLabelDescriptor_FieldPath(pathStr) 2207 if err != nil { 2208 return nil, err 2209 } 2210 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 2211 if err != nil { 2212 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelDescriptor field path value from %s: %v", valueStr, err) 2213 } 2214 return fpv.(LabelDescriptor_FieldPathValue), nil 2215 } 2216 2217 func MustParseLabelDescriptor_FieldPathValue(pathStr, valueStr string) LabelDescriptor_FieldPathValue { 2218 fpv, err := ParseLabelDescriptor_FieldPathValue(pathStr, valueStr) 2219 if err != nil { 2220 panic(err) 2221 } 2222 return fpv 2223 } 2224 2225 type LabelDescriptor_FieldTerminalPathValue struct { 2226 LabelDescriptor_FieldTerminalPath 2227 value interface{} 2228 } 2229 2230 var _ LabelDescriptor_FieldPathValue = (*LabelDescriptor_FieldTerminalPathValue)(nil) 2231 2232 // GetRawValue returns raw value stored under selected path for 'LabelDescriptor' as interface{} 2233 func (fpv *LabelDescriptor_FieldTerminalPathValue) GetRawValue() interface{} { 2234 return fpv.value 2235 } 2236 func (fpv *LabelDescriptor_FieldTerminalPathValue) AsKeyValue() (string, bool) { 2237 res, ok := fpv.value.(string) 2238 return res, ok 2239 } 2240 func (fpv *LabelDescriptor_FieldTerminalPathValue) AsVersionsValue() ([]string, bool) { 2241 res, ok := fpv.value.([]string) 2242 return res, ok 2243 } 2244 2245 // SetTo stores value for selected field for object LabelDescriptor 2246 func (fpv *LabelDescriptor_FieldTerminalPathValue) SetTo(target **LabelDescriptor) { 2247 if *target == nil { 2248 *target = new(LabelDescriptor) 2249 } 2250 switch fpv.selector { 2251 case LabelDescriptor_FieldPathSelectorKey: 2252 (*target).Key = fpv.value.(string) 2253 case LabelDescriptor_FieldPathSelectorVersions: 2254 (*target).Versions = fpv.value.([]string) 2255 default: 2256 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fpv.selector)) 2257 } 2258 } 2259 2260 func (fpv *LabelDescriptor_FieldTerminalPathValue) SetToRaw(target proto.Message) { 2261 typedObject := target.(*LabelDescriptor) 2262 fpv.SetTo(&typedObject) 2263 } 2264 2265 // CompareWith compares value in the 'LabelDescriptor_FieldTerminalPathValue' with the value under path in 'LabelDescriptor'. 2266 func (fpv *LabelDescriptor_FieldTerminalPathValue) CompareWith(source *LabelDescriptor) (int, bool) { 2267 switch fpv.selector { 2268 case LabelDescriptor_FieldPathSelectorKey: 2269 leftValue := fpv.value.(string) 2270 rightValue := source.GetKey() 2271 if (leftValue) == (rightValue) { 2272 return 0, true 2273 } else if (leftValue) < (rightValue) { 2274 return -1, true 2275 } else { 2276 return 1, true 2277 } 2278 case LabelDescriptor_FieldPathSelectorVersions: 2279 return 0, false 2280 default: 2281 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fpv.selector)) 2282 } 2283 } 2284 2285 func (fpv *LabelDescriptor_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2286 return fpv.CompareWith(source.(*LabelDescriptor)) 2287 } 2288 2289 // LabelDescriptor_FieldPathArrayItemValue allows storing single item in Path-specific values for LabelDescriptor according to their type 2290 // Present only for array (repeated) types. 2291 type LabelDescriptor_FieldPathArrayItemValue interface { 2292 gotenobject.FieldPathArrayItemValue 2293 LabelDescriptor_FieldPath 2294 ContainsValue(*LabelDescriptor) bool 2295 } 2296 2297 // ParseLabelDescriptor_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 2298 func ParseLabelDescriptor_FieldPathArrayItemValue(pathStr, valueStr string) (LabelDescriptor_FieldPathArrayItemValue, error) { 2299 fp, err := ParseLabelDescriptor_FieldPath(pathStr) 2300 if err != nil { 2301 return nil, err 2302 } 2303 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 2304 if err != nil { 2305 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelDescriptor field path array item value from %s: %v", valueStr, err) 2306 } 2307 return fpaiv.(LabelDescriptor_FieldPathArrayItemValue), nil 2308 } 2309 2310 func MustParseLabelDescriptor_FieldPathArrayItemValue(pathStr, valueStr string) LabelDescriptor_FieldPathArrayItemValue { 2311 fpaiv, err := ParseLabelDescriptor_FieldPathArrayItemValue(pathStr, valueStr) 2312 if err != nil { 2313 panic(err) 2314 } 2315 return fpaiv 2316 } 2317 2318 type LabelDescriptor_FieldTerminalPathArrayItemValue struct { 2319 LabelDescriptor_FieldTerminalPath 2320 value interface{} 2321 } 2322 2323 var _ LabelDescriptor_FieldPathArrayItemValue = (*LabelDescriptor_FieldTerminalPathArrayItemValue)(nil) 2324 2325 // GetRawValue returns stored element value for array in object LabelDescriptor as interface{} 2326 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 2327 return fpaiv.value 2328 } 2329 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) AsVersionsItemValue() (string, bool) { 2330 res, ok := fpaiv.value.(string) 2331 return res, ok 2332 } 2333 2334 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) GetSingle(source *LabelDescriptor) (interface{}, bool) { 2335 return nil, false 2336 } 2337 2338 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 2339 return fpaiv.GetSingle(source.(*LabelDescriptor)) 2340 } 2341 2342 // Contains returns a boolean indicating if value that is being held is present in given 'LabelDescriptor' 2343 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) ContainsValue(source *LabelDescriptor) bool { 2344 slice := fpaiv.LabelDescriptor_FieldTerminalPath.Get(source) 2345 for _, v := range slice { 2346 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 2347 if proto.Equal(asProtoMsg, v.(proto.Message)) { 2348 return true 2349 } 2350 } else if reflect.DeepEqual(v, fpaiv.value) { 2351 return true 2352 } 2353 } 2354 return false 2355 } 2356 2357 // LabelDescriptor_FieldPathArrayOfValues allows storing slice of values for LabelDescriptor fields according to their type 2358 type LabelDescriptor_FieldPathArrayOfValues interface { 2359 gotenobject.FieldPathArrayOfValues 2360 LabelDescriptor_FieldPath 2361 } 2362 2363 func ParseLabelDescriptor_FieldPathArrayOfValues(pathStr, valuesStr string) (LabelDescriptor_FieldPathArrayOfValues, error) { 2364 fp, err := ParseLabelDescriptor_FieldPath(pathStr) 2365 if err != nil { 2366 return nil, err 2367 } 2368 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 2369 if err != nil { 2370 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelDescriptor field path array of values from %s: %v", valuesStr, err) 2371 } 2372 return fpaov.(LabelDescriptor_FieldPathArrayOfValues), nil 2373 } 2374 2375 func MustParseLabelDescriptor_FieldPathArrayOfValues(pathStr, valuesStr string) LabelDescriptor_FieldPathArrayOfValues { 2376 fpaov, err := ParseLabelDescriptor_FieldPathArrayOfValues(pathStr, valuesStr) 2377 if err != nil { 2378 panic(err) 2379 } 2380 return fpaov 2381 } 2382 2383 type LabelDescriptor_FieldTerminalPathArrayOfValues struct { 2384 LabelDescriptor_FieldTerminalPath 2385 values interface{} 2386 } 2387 2388 var _ LabelDescriptor_FieldPathArrayOfValues = (*LabelDescriptor_FieldTerminalPathArrayOfValues)(nil) 2389 2390 func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 2391 switch fpaov.selector { 2392 case LabelDescriptor_FieldPathSelectorKey: 2393 for _, v := range fpaov.values.([]string) { 2394 values = append(values, v) 2395 } 2396 case LabelDescriptor_FieldPathSelectorVersions: 2397 for _, v := range fpaov.values.([][]string) { 2398 values = append(values, v) 2399 } 2400 } 2401 return 2402 } 2403 func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) AsKeyArrayOfValues() ([]string, bool) { 2404 res, ok := fpaov.values.([]string) 2405 return res, ok 2406 } 2407 func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) AsVersionsArrayOfValues() ([][]string, bool) { 2408 res, ok := fpaov.values.([][]string) 2409 return res, ok 2410 } 2411 2412 // FieldPath provides implementation to handle 2413 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 2414 type LabelKeySet_FieldPath interface { 2415 gotenobject.FieldPath 2416 Selector() LabelKeySet_FieldPathSelector 2417 Get(source *LabelKeySet) []interface{} 2418 GetSingle(source *LabelKeySet) (interface{}, bool) 2419 ClearValue(item *LabelKeySet) 2420 2421 // Those methods build corresponding LabelKeySet_FieldPathValue 2422 // (or array of values) and holds passed value. Panics if injected type is incorrect. 2423 WithIValue(value interface{}) LabelKeySet_FieldPathValue 2424 WithIArrayOfValues(values interface{}) LabelKeySet_FieldPathArrayOfValues 2425 WithIArrayItemValue(value interface{}) LabelKeySet_FieldPathArrayItemValue 2426 } 2427 2428 type LabelKeySet_FieldPathSelector int32 2429 2430 const ( 2431 LabelKeySet_FieldPathSelectorLabelKeys LabelKeySet_FieldPathSelector = 0 2432 LabelKeySet_FieldPathSelectorVersions LabelKeySet_FieldPathSelector = 1 2433 ) 2434 2435 func (s LabelKeySet_FieldPathSelector) String() string { 2436 switch s { 2437 case LabelKeySet_FieldPathSelectorLabelKeys: 2438 return "label_keys" 2439 case LabelKeySet_FieldPathSelectorVersions: 2440 return "versions" 2441 default: 2442 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", s)) 2443 } 2444 } 2445 2446 func BuildLabelKeySet_FieldPath(fp gotenobject.RawFieldPath) (LabelKeySet_FieldPath, error) { 2447 if len(fp) == 0 { 2448 return nil, status.Error(codes.InvalidArgument, "empty field path for object LabelKeySet") 2449 } 2450 if len(fp) == 1 { 2451 switch fp[0] { 2452 case "label_keys", "labelKeys", "label-keys": 2453 return &LabelKeySet_FieldTerminalPath{selector: LabelKeySet_FieldPathSelectorLabelKeys}, nil 2454 case "versions": 2455 return &LabelKeySet_FieldTerminalPath{selector: LabelKeySet_FieldPathSelectorVersions}, nil 2456 } 2457 } 2458 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object LabelKeySet", fp) 2459 } 2460 2461 func ParseLabelKeySet_FieldPath(rawField string) (LabelKeySet_FieldPath, error) { 2462 fp, err := gotenobject.ParseRawFieldPath(rawField) 2463 if err != nil { 2464 return nil, err 2465 } 2466 return BuildLabelKeySet_FieldPath(fp) 2467 } 2468 2469 func MustParseLabelKeySet_FieldPath(rawField string) LabelKeySet_FieldPath { 2470 fp, err := ParseLabelKeySet_FieldPath(rawField) 2471 if err != nil { 2472 panic(err) 2473 } 2474 return fp 2475 } 2476 2477 type LabelKeySet_FieldTerminalPath struct { 2478 selector LabelKeySet_FieldPathSelector 2479 } 2480 2481 var _ LabelKeySet_FieldPath = (*LabelKeySet_FieldTerminalPath)(nil) 2482 2483 func (fp *LabelKeySet_FieldTerminalPath) Selector() LabelKeySet_FieldPathSelector { 2484 return fp.selector 2485 } 2486 2487 // String returns path representation in proto convention 2488 func (fp *LabelKeySet_FieldTerminalPath) String() string { 2489 return fp.selector.String() 2490 } 2491 2492 // JSONString returns path representation is JSON convention 2493 func (fp *LabelKeySet_FieldTerminalPath) JSONString() string { 2494 return strcase.ToLowerCamel(fp.String()) 2495 } 2496 2497 // Get returns all values pointed by specific field from source LabelKeySet 2498 func (fp *LabelKeySet_FieldTerminalPath) Get(source *LabelKeySet) (values []interface{}) { 2499 if source != nil { 2500 switch fp.selector { 2501 case LabelKeySet_FieldPathSelectorLabelKeys: 2502 for _, value := range source.GetLabelKeys() { 2503 values = append(values, value) 2504 } 2505 case LabelKeySet_FieldPathSelectorVersions: 2506 for _, value := range source.GetVersions() { 2507 values = append(values, value) 2508 } 2509 default: 2510 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2511 } 2512 } 2513 return 2514 } 2515 2516 func (fp *LabelKeySet_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 2517 return fp.Get(source.(*LabelKeySet)) 2518 } 2519 2520 // GetSingle returns value pointed by specific field of from source LabelKeySet 2521 func (fp *LabelKeySet_FieldTerminalPath) GetSingle(source *LabelKeySet) (interface{}, bool) { 2522 switch fp.selector { 2523 case LabelKeySet_FieldPathSelectorLabelKeys: 2524 res := source.GetLabelKeys() 2525 return res, res != nil 2526 case LabelKeySet_FieldPathSelectorVersions: 2527 res := source.GetVersions() 2528 return res, res != nil 2529 default: 2530 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2531 } 2532 } 2533 2534 func (fp *LabelKeySet_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 2535 return fp.GetSingle(source.(*LabelKeySet)) 2536 } 2537 2538 // GetDefault returns a default value of the field type 2539 func (fp *LabelKeySet_FieldTerminalPath) GetDefault() interface{} { 2540 switch fp.selector { 2541 case LabelKeySet_FieldPathSelectorLabelKeys: 2542 return ([]string)(nil) 2543 case LabelKeySet_FieldPathSelectorVersions: 2544 return ([]string)(nil) 2545 default: 2546 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2547 } 2548 } 2549 2550 func (fp *LabelKeySet_FieldTerminalPath) ClearValue(item *LabelKeySet) { 2551 if item != nil { 2552 switch fp.selector { 2553 case LabelKeySet_FieldPathSelectorLabelKeys: 2554 item.LabelKeys = nil 2555 case LabelKeySet_FieldPathSelectorVersions: 2556 item.Versions = nil 2557 default: 2558 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2559 } 2560 } 2561 } 2562 2563 func (fp *LabelKeySet_FieldTerminalPath) ClearValueRaw(item proto.Message) { 2564 fp.ClearValue(item.(*LabelKeySet)) 2565 } 2566 2567 // IsLeaf - whether field path is holds simple value 2568 func (fp *LabelKeySet_FieldTerminalPath) IsLeaf() bool { 2569 return fp.selector == LabelKeySet_FieldPathSelectorLabelKeys || 2570 fp.selector == LabelKeySet_FieldPathSelectorVersions 2571 } 2572 2573 func (fp *LabelKeySet_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2574 return []gotenobject.FieldPath{fp} 2575 } 2576 2577 func (fp *LabelKeySet_FieldTerminalPath) WithIValue(value interface{}) LabelKeySet_FieldPathValue { 2578 switch fp.selector { 2579 case LabelKeySet_FieldPathSelectorLabelKeys: 2580 return &LabelKeySet_FieldTerminalPathValue{LabelKeySet_FieldTerminalPath: *fp, value: value.([]string)} 2581 case LabelKeySet_FieldPathSelectorVersions: 2582 return &LabelKeySet_FieldTerminalPathValue{LabelKeySet_FieldTerminalPath: *fp, value: value.([]string)} 2583 default: 2584 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2585 } 2586 } 2587 2588 func (fp *LabelKeySet_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 2589 return fp.WithIValue(value) 2590 } 2591 2592 func (fp *LabelKeySet_FieldTerminalPath) WithIArrayOfValues(values interface{}) LabelKeySet_FieldPathArrayOfValues { 2593 fpaov := &LabelKeySet_FieldTerminalPathArrayOfValues{LabelKeySet_FieldTerminalPath: *fp} 2594 switch fp.selector { 2595 case LabelKeySet_FieldPathSelectorLabelKeys: 2596 return &LabelKeySet_FieldTerminalPathArrayOfValues{LabelKeySet_FieldTerminalPath: *fp, values: values.([][]string)} 2597 case LabelKeySet_FieldPathSelectorVersions: 2598 return &LabelKeySet_FieldTerminalPathArrayOfValues{LabelKeySet_FieldTerminalPath: *fp, values: values.([][]string)} 2599 default: 2600 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2601 } 2602 return fpaov 2603 } 2604 2605 func (fp *LabelKeySet_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 2606 return fp.WithIArrayOfValues(values) 2607 } 2608 2609 func (fp *LabelKeySet_FieldTerminalPath) WithIArrayItemValue(value interface{}) LabelKeySet_FieldPathArrayItemValue { 2610 switch fp.selector { 2611 case LabelKeySet_FieldPathSelectorLabelKeys: 2612 return &LabelKeySet_FieldTerminalPathArrayItemValue{LabelKeySet_FieldTerminalPath: *fp, value: value.(string)} 2613 case LabelKeySet_FieldPathSelectorVersions: 2614 return &LabelKeySet_FieldTerminalPathArrayItemValue{LabelKeySet_FieldTerminalPath: *fp, value: value.(string)} 2615 default: 2616 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2617 } 2618 } 2619 2620 func (fp *LabelKeySet_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 2621 return fp.WithIArrayItemValue(value) 2622 } 2623 2624 // LabelKeySet_FieldPathValue allows storing values for LabelKeySet fields according to their type 2625 type LabelKeySet_FieldPathValue interface { 2626 LabelKeySet_FieldPath 2627 gotenobject.FieldPathValue 2628 SetTo(target **LabelKeySet) 2629 CompareWith(*LabelKeySet) (cmp int, comparable bool) 2630 } 2631 2632 func ParseLabelKeySet_FieldPathValue(pathStr, valueStr string) (LabelKeySet_FieldPathValue, error) { 2633 fp, err := ParseLabelKeySet_FieldPath(pathStr) 2634 if err != nil { 2635 return nil, err 2636 } 2637 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 2638 if err != nil { 2639 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelKeySet field path value from %s: %v", valueStr, err) 2640 } 2641 return fpv.(LabelKeySet_FieldPathValue), nil 2642 } 2643 2644 func MustParseLabelKeySet_FieldPathValue(pathStr, valueStr string) LabelKeySet_FieldPathValue { 2645 fpv, err := ParseLabelKeySet_FieldPathValue(pathStr, valueStr) 2646 if err != nil { 2647 panic(err) 2648 } 2649 return fpv 2650 } 2651 2652 type LabelKeySet_FieldTerminalPathValue struct { 2653 LabelKeySet_FieldTerminalPath 2654 value interface{} 2655 } 2656 2657 var _ LabelKeySet_FieldPathValue = (*LabelKeySet_FieldTerminalPathValue)(nil) 2658 2659 // GetRawValue returns raw value stored under selected path for 'LabelKeySet' as interface{} 2660 func (fpv *LabelKeySet_FieldTerminalPathValue) GetRawValue() interface{} { 2661 return fpv.value 2662 } 2663 func (fpv *LabelKeySet_FieldTerminalPathValue) AsLabelKeysValue() ([]string, bool) { 2664 res, ok := fpv.value.([]string) 2665 return res, ok 2666 } 2667 func (fpv *LabelKeySet_FieldTerminalPathValue) AsVersionsValue() ([]string, bool) { 2668 res, ok := fpv.value.([]string) 2669 return res, ok 2670 } 2671 2672 // SetTo stores value for selected field for object LabelKeySet 2673 func (fpv *LabelKeySet_FieldTerminalPathValue) SetTo(target **LabelKeySet) { 2674 if *target == nil { 2675 *target = new(LabelKeySet) 2676 } 2677 switch fpv.selector { 2678 case LabelKeySet_FieldPathSelectorLabelKeys: 2679 (*target).LabelKeys = fpv.value.([]string) 2680 case LabelKeySet_FieldPathSelectorVersions: 2681 (*target).Versions = fpv.value.([]string) 2682 default: 2683 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fpv.selector)) 2684 } 2685 } 2686 2687 func (fpv *LabelKeySet_FieldTerminalPathValue) SetToRaw(target proto.Message) { 2688 typedObject := target.(*LabelKeySet) 2689 fpv.SetTo(&typedObject) 2690 } 2691 2692 // CompareWith compares value in the 'LabelKeySet_FieldTerminalPathValue' with the value under path in 'LabelKeySet'. 2693 func (fpv *LabelKeySet_FieldTerminalPathValue) CompareWith(source *LabelKeySet) (int, bool) { 2694 switch fpv.selector { 2695 case LabelKeySet_FieldPathSelectorLabelKeys: 2696 return 0, false 2697 case LabelKeySet_FieldPathSelectorVersions: 2698 return 0, false 2699 default: 2700 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fpv.selector)) 2701 } 2702 } 2703 2704 func (fpv *LabelKeySet_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2705 return fpv.CompareWith(source.(*LabelKeySet)) 2706 } 2707 2708 // LabelKeySet_FieldPathArrayItemValue allows storing single item in Path-specific values for LabelKeySet according to their type 2709 // Present only for array (repeated) types. 2710 type LabelKeySet_FieldPathArrayItemValue interface { 2711 gotenobject.FieldPathArrayItemValue 2712 LabelKeySet_FieldPath 2713 ContainsValue(*LabelKeySet) bool 2714 } 2715 2716 // ParseLabelKeySet_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 2717 func ParseLabelKeySet_FieldPathArrayItemValue(pathStr, valueStr string) (LabelKeySet_FieldPathArrayItemValue, error) { 2718 fp, err := ParseLabelKeySet_FieldPath(pathStr) 2719 if err != nil { 2720 return nil, err 2721 } 2722 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 2723 if err != nil { 2724 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelKeySet field path array item value from %s: %v", valueStr, err) 2725 } 2726 return fpaiv.(LabelKeySet_FieldPathArrayItemValue), nil 2727 } 2728 2729 func MustParseLabelKeySet_FieldPathArrayItemValue(pathStr, valueStr string) LabelKeySet_FieldPathArrayItemValue { 2730 fpaiv, err := ParseLabelKeySet_FieldPathArrayItemValue(pathStr, valueStr) 2731 if err != nil { 2732 panic(err) 2733 } 2734 return fpaiv 2735 } 2736 2737 type LabelKeySet_FieldTerminalPathArrayItemValue struct { 2738 LabelKeySet_FieldTerminalPath 2739 value interface{} 2740 } 2741 2742 var _ LabelKeySet_FieldPathArrayItemValue = (*LabelKeySet_FieldTerminalPathArrayItemValue)(nil) 2743 2744 // GetRawValue returns stored element value for array in object LabelKeySet as interface{} 2745 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 2746 return fpaiv.value 2747 } 2748 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) AsLabelKeysItemValue() (string, bool) { 2749 res, ok := fpaiv.value.(string) 2750 return res, ok 2751 } 2752 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) AsVersionsItemValue() (string, bool) { 2753 res, ok := fpaiv.value.(string) 2754 return res, ok 2755 } 2756 2757 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) GetSingle(source *LabelKeySet) (interface{}, bool) { 2758 return nil, false 2759 } 2760 2761 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 2762 return fpaiv.GetSingle(source.(*LabelKeySet)) 2763 } 2764 2765 // Contains returns a boolean indicating if value that is being held is present in given 'LabelKeySet' 2766 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) ContainsValue(source *LabelKeySet) bool { 2767 slice := fpaiv.LabelKeySet_FieldTerminalPath.Get(source) 2768 for _, v := range slice { 2769 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 2770 if proto.Equal(asProtoMsg, v.(proto.Message)) { 2771 return true 2772 } 2773 } else if reflect.DeepEqual(v, fpaiv.value) { 2774 return true 2775 } 2776 } 2777 return false 2778 } 2779 2780 // LabelKeySet_FieldPathArrayOfValues allows storing slice of values for LabelKeySet fields according to their type 2781 type LabelKeySet_FieldPathArrayOfValues interface { 2782 gotenobject.FieldPathArrayOfValues 2783 LabelKeySet_FieldPath 2784 } 2785 2786 func ParseLabelKeySet_FieldPathArrayOfValues(pathStr, valuesStr string) (LabelKeySet_FieldPathArrayOfValues, error) { 2787 fp, err := ParseLabelKeySet_FieldPath(pathStr) 2788 if err != nil { 2789 return nil, err 2790 } 2791 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 2792 if err != nil { 2793 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelKeySet field path array of values from %s: %v", valuesStr, err) 2794 } 2795 return fpaov.(LabelKeySet_FieldPathArrayOfValues), nil 2796 } 2797 2798 func MustParseLabelKeySet_FieldPathArrayOfValues(pathStr, valuesStr string) LabelKeySet_FieldPathArrayOfValues { 2799 fpaov, err := ParseLabelKeySet_FieldPathArrayOfValues(pathStr, valuesStr) 2800 if err != nil { 2801 panic(err) 2802 } 2803 return fpaov 2804 } 2805 2806 type LabelKeySet_FieldTerminalPathArrayOfValues struct { 2807 LabelKeySet_FieldTerminalPath 2808 values interface{} 2809 } 2810 2811 var _ LabelKeySet_FieldPathArrayOfValues = (*LabelKeySet_FieldTerminalPathArrayOfValues)(nil) 2812 2813 func (fpaov *LabelKeySet_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 2814 switch fpaov.selector { 2815 case LabelKeySet_FieldPathSelectorLabelKeys: 2816 for _, v := range fpaov.values.([][]string) { 2817 values = append(values, v) 2818 } 2819 case LabelKeySet_FieldPathSelectorVersions: 2820 for _, v := range fpaov.values.([][]string) { 2821 values = append(values, v) 2822 } 2823 } 2824 return 2825 } 2826 func (fpaov *LabelKeySet_FieldTerminalPathArrayOfValues) AsLabelKeysArrayOfValues() ([][]string, bool) { 2827 res, ok := fpaov.values.([][]string) 2828 return res, ok 2829 } 2830 func (fpaov *LabelKeySet_FieldTerminalPathArrayOfValues) AsVersionsArrayOfValues() ([][]string, bool) { 2831 res, ok := fpaov.values.([][]string) 2832 return res, ok 2833 } 2834 2835 // FieldPath provides implementation to handle 2836 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 2837 type TimeInterval_FieldPath interface { 2838 gotenobject.FieldPath 2839 Selector() TimeInterval_FieldPathSelector 2840 Get(source *TimeInterval) []interface{} 2841 GetSingle(source *TimeInterval) (interface{}, bool) 2842 ClearValue(item *TimeInterval) 2843 2844 // Those methods build corresponding TimeInterval_FieldPathValue 2845 // (or array of values) and holds passed value. Panics if injected type is incorrect. 2846 WithIValue(value interface{}) TimeInterval_FieldPathValue 2847 WithIArrayOfValues(values interface{}) TimeInterval_FieldPathArrayOfValues 2848 WithIArrayItemValue(value interface{}) TimeInterval_FieldPathArrayItemValue 2849 } 2850 2851 type TimeInterval_FieldPathSelector int32 2852 2853 const ( 2854 TimeInterval_FieldPathSelectorEndTime TimeInterval_FieldPathSelector = 0 2855 TimeInterval_FieldPathSelectorStartTime TimeInterval_FieldPathSelector = 1 2856 ) 2857 2858 func (s TimeInterval_FieldPathSelector) String() string { 2859 switch s { 2860 case TimeInterval_FieldPathSelectorEndTime: 2861 return "end_time" 2862 case TimeInterval_FieldPathSelectorStartTime: 2863 return "start_time" 2864 default: 2865 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", s)) 2866 } 2867 } 2868 2869 func BuildTimeInterval_FieldPath(fp gotenobject.RawFieldPath) (TimeInterval_FieldPath, error) { 2870 if len(fp) == 0 { 2871 return nil, status.Error(codes.InvalidArgument, "empty field path for object TimeInterval") 2872 } 2873 if len(fp) == 1 { 2874 switch fp[0] { 2875 case "end_time", "endTime", "end-time": 2876 return &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorEndTime}, nil 2877 case "start_time", "startTime", "start-time": 2878 return &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorStartTime}, nil 2879 } 2880 } 2881 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object TimeInterval", fp) 2882 } 2883 2884 func ParseTimeInterval_FieldPath(rawField string) (TimeInterval_FieldPath, error) { 2885 fp, err := gotenobject.ParseRawFieldPath(rawField) 2886 if err != nil { 2887 return nil, err 2888 } 2889 return BuildTimeInterval_FieldPath(fp) 2890 } 2891 2892 func MustParseTimeInterval_FieldPath(rawField string) TimeInterval_FieldPath { 2893 fp, err := ParseTimeInterval_FieldPath(rawField) 2894 if err != nil { 2895 panic(err) 2896 } 2897 return fp 2898 } 2899 2900 type TimeInterval_FieldTerminalPath struct { 2901 selector TimeInterval_FieldPathSelector 2902 } 2903 2904 var _ TimeInterval_FieldPath = (*TimeInterval_FieldTerminalPath)(nil) 2905 2906 func (fp *TimeInterval_FieldTerminalPath) Selector() TimeInterval_FieldPathSelector { 2907 return fp.selector 2908 } 2909 2910 // String returns path representation in proto convention 2911 func (fp *TimeInterval_FieldTerminalPath) String() string { 2912 return fp.selector.String() 2913 } 2914 2915 // JSONString returns path representation is JSON convention 2916 func (fp *TimeInterval_FieldTerminalPath) JSONString() string { 2917 return strcase.ToLowerCamel(fp.String()) 2918 } 2919 2920 // Get returns all values pointed by specific field from source TimeInterval 2921 func (fp *TimeInterval_FieldTerminalPath) Get(source *TimeInterval) (values []interface{}) { 2922 if source != nil { 2923 switch fp.selector { 2924 case TimeInterval_FieldPathSelectorEndTime: 2925 if source.EndTime != nil { 2926 values = append(values, source.EndTime) 2927 } 2928 case TimeInterval_FieldPathSelectorStartTime: 2929 if source.StartTime != nil { 2930 values = append(values, source.StartTime) 2931 } 2932 default: 2933 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 2934 } 2935 } 2936 return 2937 } 2938 2939 func (fp *TimeInterval_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 2940 return fp.Get(source.(*TimeInterval)) 2941 } 2942 2943 // GetSingle returns value pointed by specific field of from source TimeInterval 2944 func (fp *TimeInterval_FieldTerminalPath) GetSingle(source *TimeInterval) (interface{}, bool) { 2945 switch fp.selector { 2946 case TimeInterval_FieldPathSelectorEndTime: 2947 res := source.GetEndTime() 2948 return res, res != nil 2949 case TimeInterval_FieldPathSelectorStartTime: 2950 res := source.GetStartTime() 2951 return res, res != nil 2952 default: 2953 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 2954 } 2955 } 2956 2957 func (fp *TimeInterval_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 2958 return fp.GetSingle(source.(*TimeInterval)) 2959 } 2960 2961 // GetDefault returns a default value of the field type 2962 func (fp *TimeInterval_FieldTerminalPath) GetDefault() interface{} { 2963 switch fp.selector { 2964 case TimeInterval_FieldPathSelectorEndTime: 2965 return (*timestamppb.Timestamp)(nil) 2966 case TimeInterval_FieldPathSelectorStartTime: 2967 return (*timestamppb.Timestamp)(nil) 2968 default: 2969 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 2970 } 2971 } 2972 2973 func (fp *TimeInterval_FieldTerminalPath) ClearValue(item *TimeInterval) { 2974 if item != nil { 2975 switch fp.selector { 2976 case TimeInterval_FieldPathSelectorEndTime: 2977 item.EndTime = nil 2978 case TimeInterval_FieldPathSelectorStartTime: 2979 item.StartTime = nil 2980 default: 2981 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 2982 } 2983 } 2984 } 2985 2986 func (fp *TimeInterval_FieldTerminalPath) ClearValueRaw(item proto.Message) { 2987 fp.ClearValue(item.(*TimeInterval)) 2988 } 2989 2990 // IsLeaf - whether field path is holds simple value 2991 func (fp *TimeInterval_FieldTerminalPath) IsLeaf() bool { 2992 return fp.selector == TimeInterval_FieldPathSelectorEndTime || 2993 fp.selector == TimeInterval_FieldPathSelectorStartTime 2994 } 2995 2996 func (fp *TimeInterval_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2997 return []gotenobject.FieldPath{fp} 2998 } 2999 3000 func (fp *TimeInterval_FieldTerminalPath) WithIValue(value interface{}) TimeInterval_FieldPathValue { 3001 switch fp.selector { 3002 case TimeInterval_FieldPathSelectorEndTime: 3003 return &TimeInterval_FieldTerminalPathValue{TimeInterval_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)} 3004 case TimeInterval_FieldPathSelectorStartTime: 3005 return &TimeInterval_FieldTerminalPathValue{TimeInterval_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)} 3006 default: 3007 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 3008 } 3009 } 3010 3011 func (fp *TimeInterval_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 3012 return fp.WithIValue(value) 3013 } 3014 3015 func (fp *TimeInterval_FieldTerminalPath) WithIArrayOfValues(values interface{}) TimeInterval_FieldPathArrayOfValues { 3016 fpaov := &TimeInterval_FieldTerminalPathArrayOfValues{TimeInterval_FieldTerminalPath: *fp} 3017 switch fp.selector { 3018 case TimeInterval_FieldPathSelectorEndTime: 3019 return &TimeInterval_FieldTerminalPathArrayOfValues{TimeInterval_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)} 3020 case TimeInterval_FieldPathSelectorStartTime: 3021 return &TimeInterval_FieldTerminalPathArrayOfValues{TimeInterval_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)} 3022 default: 3023 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 3024 } 3025 return fpaov 3026 } 3027 3028 func (fp *TimeInterval_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 3029 return fp.WithIArrayOfValues(values) 3030 } 3031 3032 func (fp *TimeInterval_FieldTerminalPath) WithIArrayItemValue(value interface{}) TimeInterval_FieldPathArrayItemValue { 3033 switch fp.selector { 3034 default: 3035 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 3036 } 3037 } 3038 3039 func (fp *TimeInterval_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 3040 return fp.WithIArrayItemValue(value) 3041 } 3042 3043 // TimeInterval_FieldPathValue allows storing values for TimeInterval fields according to their type 3044 type TimeInterval_FieldPathValue interface { 3045 TimeInterval_FieldPath 3046 gotenobject.FieldPathValue 3047 SetTo(target **TimeInterval) 3048 CompareWith(*TimeInterval) (cmp int, comparable bool) 3049 } 3050 3051 func ParseTimeInterval_FieldPathValue(pathStr, valueStr string) (TimeInterval_FieldPathValue, error) { 3052 fp, err := ParseTimeInterval_FieldPath(pathStr) 3053 if err != nil { 3054 return nil, err 3055 } 3056 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 3057 if err != nil { 3058 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeInterval field path value from %s: %v", valueStr, err) 3059 } 3060 return fpv.(TimeInterval_FieldPathValue), nil 3061 } 3062 3063 func MustParseTimeInterval_FieldPathValue(pathStr, valueStr string) TimeInterval_FieldPathValue { 3064 fpv, err := ParseTimeInterval_FieldPathValue(pathStr, valueStr) 3065 if err != nil { 3066 panic(err) 3067 } 3068 return fpv 3069 } 3070 3071 type TimeInterval_FieldTerminalPathValue struct { 3072 TimeInterval_FieldTerminalPath 3073 value interface{} 3074 } 3075 3076 var _ TimeInterval_FieldPathValue = (*TimeInterval_FieldTerminalPathValue)(nil) 3077 3078 // GetRawValue returns raw value stored under selected path for 'TimeInterval' as interface{} 3079 func (fpv *TimeInterval_FieldTerminalPathValue) GetRawValue() interface{} { 3080 return fpv.value 3081 } 3082 func (fpv *TimeInterval_FieldTerminalPathValue) AsEndTimeValue() (*timestamppb.Timestamp, bool) { 3083 res, ok := fpv.value.(*timestamppb.Timestamp) 3084 return res, ok 3085 } 3086 func (fpv *TimeInterval_FieldTerminalPathValue) AsStartTimeValue() (*timestamppb.Timestamp, bool) { 3087 res, ok := fpv.value.(*timestamppb.Timestamp) 3088 return res, ok 3089 } 3090 3091 // SetTo stores value for selected field for object TimeInterval 3092 func (fpv *TimeInterval_FieldTerminalPathValue) SetTo(target **TimeInterval) { 3093 if *target == nil { 3094 *target = new(TimeInterval) 3095 } 3096 switch fpv.selector { 3097 case TimeInterval_FieldPathSelectorEndTime: 3098 (*target).EndTime = fpv.value.(*timestamppb.Timestamp) 3099 case TimeInterval_FieldPathSelectorStartTime: 3100 (*target).StartTime = fpv.value.(*timestamppb.Timestamp) 3101 default: 3102 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fpv.selector)) 3103 } 3104 } 3105 3106 func (fpv *TimeInterval_FieldTerminalPathValue) SetToRaw(target proto.Message) { 3107 typedObject := target.(*TimeInterval) 3108 fpv.SetTo(&typedObject) 3109 } 3110 3111 // CompareWith compares value in the 'TimeInterval_FieldTerminalPathValue' with the value under path in 'TimeInterval'. 3112 func (fpv *TimeInterval_FieldTerminalPathValue) CompareWith(source *TimeInterval) (int, bool) { 3113 switch fpv.selector { 3114 case TimeInterval_FieldPathSelectorEndTime: 3115 leftValue := fpv.value.(*timestamppb.Timestamp) 3116 rightValue := source.GetEndTime() 3117 if leftValue == nil { 3118 if rightValue != nil { 3119 return -1, true 3120 } 3121 return 0, true 3122 } 3123 if rightValue == nil { 3124 return 1, true 3125 } 3126 if leftValue.AsTime().Equal(rightValue.AsTime()) { 3127 return 0, true 3128 } else if leftValue.AsTime().Before(rightValue.AsTime()) { 3129 return -1, true 3130 } else { 3131 return 1, true 3132 } 3133 case TimeInterval_FieldPathSelectorStartTime: 3134 leftValue := fpv.value.(*timestamppb.Timestamp) 3135 rightValue := source.GetStartTime() 3136 if leftValue == nil { 3137 if rightValue != nil { 3138 return -1, true 3139 } 3140 return 0, true 3141 } 3142 if rightValue == nil { 3143 return 1, true 3144 } 3145 if leftValue.AsTime().Equal(rightValue.AsTime()) { 3146 return 0, true 3147 } else if leftValue.AsTime().Before(rightValue.AsTime()) { 3148 return -1, true 3149 } else { 3150 return 1, true 3151 } 3152 default: 3153 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fpv.selector)) 3154 } 3155 } 3156 3157 func (fpv *TimeInterval_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 3158 return fpv.CompareWith(source.(*TimeInterval)) 3159 } 3160 3161 // TimeInterval_FieldPathArrayItemValue allows storing single item in Path-specific values for TimeInterval according to their type 3162 // Present only for array (repeated) types. 3163 type TimeInterval_FieldPathArrayItemValue interface { 3164 gotenobject.FieldPathArrayItemValue 3165 TimeInterval_FieldPath 3166 ContainsValue(*TimeInterval) bool 3167 } 3168 3169 // ParseTimeInterval_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 3170 func ParseTimeInterval_FieldPathArrayItemValue(pathStr, valueStr string) (TimeInterval_FieldPathArrayItemValue, error) { 3171 fp, err := ParseTimeInterval_FieldPath(pathStr) 3172 if err != nil { 3173 return nil, err 3174 } 3175 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 3176 if err != nil { 3177 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeInterval field path array item value from %s: %v", valueStr, err) 3178 } 3179 return fpaiv.(TimeInterval_FieldPathArrayItemValue), nil 3180 } 3181 3182 func MustParseTimeInterval_FieldPathArrayItemValue(pathStr, valueStr string) TimeInterval_FieldPathArrayItemValue { 3183 fpaiv, err := ParseTimeInterval_FieldPathArrayItemValue(pathStr, valueStr) 3184 if err != nil { 3185 panic(err) 3186 } 3187 return fpaiv 3188 } 3189 3190 type TimeInterval_FieldTerminalPathArrayItemValue struct { 3191 TimeInterval_FieldTerminalPath 3192 value interface{} 3193 } 3194 3195 var _ TimeInterval_FieldPathArrayItemValue = (*TimeInterval_FieldTerminalPathArrayItemValue)(nil) 3196 3197 // GetRawValue returns stored element value for array in object TimeInterval as interface{} 3198 func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 3199 return fpaiv.value 3200 } 3201 3202 func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) GetSingle(source *TimeInterval) (interface{}, bool) { 3203 return nil, false 3204 } 3205 3206 func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 3207 return fpaiv.GetSingle(source.(*TimeInterval)) 3208 } 3209 3210 // Contains returns a boolean indicating if value that is being held is present in given 'TimeInterval' 3211 func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) ContainsValue(source *TimeInterval) bool { 3212 slice := fpaiv.TimeInterval_FieldTerminalPath.Get(source) 3213 for _, v := range slice { 3214 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 3215 if proto.Equal(asProtoMsg, v.(proto.Message)) { 3216 return true 3217 } 3218 } else if reflect.DeepEqual(v, fpaiv.value) { 3219 return true 3220 } 3221 } 3222 return false 3223 } 3224 3225 // TimeInterval_FieldPathArrayOfValues allows storing slice of values for TimeInterval fields according to their type 3226 type TimeInterval_FieldPathArrayOfValues interface { 3227 gotenobject.FieldPathArrayOfValues 3228 TimeInterval_FieldPath 3229 } 3230 3231 func ParseTimeInterval_FieldPathArrayOfValues(pathStr, valuesStr string) (TimeInterval_FieldPathArrayOfValues, error) { 3232 fp, err := ParseTimeInterval_FieldPath(pathStr) 3233 if err != nil { 3234 return nil, err 3235 } 3236 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 3237 if err != nil { 3238 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeInterval field path array of values from %s: %v", valuesStr, err) 3239 } 3240 return fpaov.(TimeInterval_FieldPathArrayOfValues), nil 3241 } 3242 3243 func MustParseTimeInterval_FieldPathArrayOfValues(pathStr, valuesStr string) TimeInterval_FieldPathArrayOfValues { 3244 fpaov, err := ParseTimeInterval_FieldPathArrayOfValues(pathStr, valuesStr) 3245 if err != nil { 3246 panic(err) 3247 } 3248 return fpaov 3249 } 3250 3251 type TimeInterval_FieldTerminalPathArrayOfValues struct { 3252 TimeInterval_FieldTerminalPath 3253 values interface{} 3254 } 3255 3256 var _ TimeInterval_FieldPathArrayOfValues = (*TimeInterval_FieldTerminalPathArrayOfValues)(nil) 3257 3258 func (fpaov *TimeInterval_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 3259 switch fpaov.selector { 3260 case TimeInterval_FieldPathSelectorEndTime: 3261 for _, v := range fpaov.values.([]*timestamppb.Timestamp) { 3262 values = append(values, v) 3263 } 3264 case TimeInterval_FieldPathSelectorStartTime: 3265 for _, v := range fpaov.values.([]*timestamppb.Timestamp) { 3266 values = append(values, v) 3267 } 3268 } 3269 return 3270 } 3271 func (fpaov *TimeInterval_FieldTerminalPathArrayOfValues) AsEndTimeArrayOfValues() ([]*timestamppb.Timestamp, bool) { 3272 res, ok := fpaov.values.([]*timestamppb.Timestamp) 3273 return res, ok 3274 } 3275 func (fpaov *TimeInterval_FieldTerminalPathArrayOfValues) AsStartTimeArrayOfValues() ([]*timestamppb.Timestamp, bool) { 3276 res, ok := fpaov.values.([]*timestamppb.Timestamp) 3277 return res, ok 3278 }