github.com/cloudwan/edgelq-sdk@v1.15.4/audit/resources/v1alpha2/common/common.pb.fieldpath.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/audit/proto/v1alpha2/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 ) 920 921 func (s ServiceData_FieldPathSelector) String() string { 922 switch s { 923 case ServiceData_FieldPathSelectorName: 924 return "name" 925 case ServiceData_FieldPathSelectorRegionId: 926 return "region_id" 927 default: 928 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", s)) 929 } 930 } 931 932 func BuildServiceData_FieldPath(fp gotenobject.RawFieldPath) (ServiceData_FieldPath, error) { 933 if len(fp) == 0 { 934 return nil, status.Error(codes.InvalidArgument, "empty field path for object ServiceData") 935 } 936 if len(fp) == 1 { 937 switch fp[0] { 938 case "name": 939 return &ServiceData_FieldTerminalPath{selector: ServiceData_FieldPathSelectorName}, nil 940 case "region_id", "regionId", "region-id": 941 return &ServiceData_FieldTerminalPath{selector: ServiceData_FieldPathSelectorRegionId}, nil 942 } 943 } 944 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ServiceData", fp) 945 } 946 947 func ParseServiceData_FieldPath(rawField string) (ServiceData_FieldPath, error) { 948 fp, err := gotenobject.ParseRawFieldPath(rawField) 949 if err != nil { 950 return nil, err 951 } 952 return BuildServiceData_FieldPath(fp) 953 } 954 955 func MustParseServiceData_FieldPath(rawField string) ServiceData_FieldPath { 956 fp, err := ParseServiceData_FieldPath(rawField) 957 if err != nil { 958 panic(err) 959 } 960 return fp 961 } 962 963 type ServiceData_FieldTerminalPath struct { 964 selector ServiceData_FieldPathSelector 965 } 966 967 var _ ServiceData_FieldPath = (*ServiceData_FieldTerminalPath)(nil) 968 969 func (fp *ServiceData_FieldTerminalPath) Selector() ServiceData_FieldPathSelector { 970 return fp.selector 971 } 972 973 // String returns path representation in proto convention 974 func (fp *ServiceData_FieldTerminalPath) String() string { 975 return fp.selector.String() 976 } 977 978 // JSONString returns path representation is JSON convention 979 func (fp *ServiceData_FieldTerminalPath) JSONString() string { 980 return strcase.ToLowerCamel(fp.String()) 981 } 982 983 // Get returns all values pointed by specific field from source ServiceData 984 func (fp *ServiceData_FieldTerminalPath) Get(source *ServiceData) (values []interface{}) { 985 if source != nil { 986 switch fp.selector { 987 case ServiceData_FieldPathSelectorName: 988 values = append(values, source.Name) 989 case ServiceData_FieldPathSelectorRegionId: 990 values = append(values, source.RegionId) 991 default: 992 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 993 } 994 } 995 return 996 } 997 998 func (fp *ServiceData_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 999 return fp.Get(source.(*ServiceData)) 1000 } 1001 1002 // GetSingle returns value pointed by specific field of from source ServiceData 1003 func (fp *ServiceData_FieldTerminalPath) GetSingle(source *ServiceData) (interface{}, bool) { 1004 switch fp.selector { 1005 case ServiceData_FieldPathSelectorName: 1006 return source.GetName(), source != nil 1007 case ServiceData_FieldPathSelectorRegionId: 1008 return source.GetRegionId(), source != nil 1009 default: 1010 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 1011 } 1012 } 1013 1014 func (fp *ServiceData_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1015 return fp.GetSingle(source.(*ServiceData)) 1016 } 1017 1018 // GetDefault returns a default value of the field type 1019 func (fp *ServiceData_FieldTerminalPath) GetDefault() interface{} { 1020 switch fp.selector { 1021 case ServiceData_FieldPathSelectorName: 1022 return "" 1023 case ServiceData_FieldPathSelectorRegionId: 1024 return "" 1025 default: 1026 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 1027 } 1028 } 1029 1030 func (fp *ServiceData_FieldTerminalPath) ClearValue(item *ServiceData) { 1031 if item != nil { 1032 switch fp.selector { 1033 case ServiceData_FieldPathSelectorName: 1034 item.Name = "" 1035 case ServiceData_FieldPathSelectorRegionId: 1036 item.RegionId = "" 1037 default: 1038 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 1039 } 1040 } 1041 } 1042 1043 func (fp *ServiceData_FieldTerminalPath) ClearValueRaw(item proto.Message) { 1044 fp.ClearValue(item.(*ServiceData)) 1045 } 1046 1047 // IsLeaf - whether field path is holds simple value 1048 func (fp *ServiceData_FieldTerminalPath) IsLeaf() bool { 1049 return fp.selector == ServiceData_FieldPathSelectorName || 1050 fp.selector == ServiceData_FieldPathSelectorRegionId 1051 } 1052 1053 func (fp *ServiceData_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1054 return []gotenobject.FieldPath{fp} 1055 } 1056 1057 func (fp *ServiceData_FieldTerminalPath) WithIValue(value interface{}) ServiceData_FieldPathValue { 1058 switch fp.selector { 1059 case ServiceData_FieldPathSelectorName: 1060 return &ServiceData_FieldTerminalPathValue{ServiceData_FieldTerminalPath: *fp, value: value.(string)} 1061 case ServiceData_FieldPathSelectorRegionId: 1062 return &ServiceData_FieldTerminalPathValue{ServiceData_FieldTerminalPath: *fp, value: value.(string)} 1063 default: 1064 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 1065 } 1066 } 1067 1068 func (fp *ServiceData_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1069 return fp.WithIValue(value) 1070 } 1071 1072 func (fp *ServiceData_FieldTerminalPath) WithIArrayOfValues(values interface{}) ServiceData_FieldPathArrayOfValues { 1073 fpaov := &ServiceData_FieldTerminalPathArrayOfValues{ServiceData_FieldTerminalPath: *fp} 1074 switch fp.selector { 1075 case ServiceData_FieldPathSelectorName: 1076 return &ServiceData_FieldTerminalPathArrayOfValues{ServiceData_FieldTerminalPath: *fp, values: values.([]string)} 1077 case ServiceData_FieldPathSelectorRegionId: 1078 return &ServiceData_FieldTerminalPathArrayOfValues{ServiceData_FieldTerminalPath: *fp, values: values.([]string)} 1079 default: 1080 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 1081 } 1082 return fpaov 1083 } 1084 1085 func (fp *ServiceData_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1086 return fp.WithIArrayOfValues(values) 1087 } 1088 1089 func (fp *ServiceData_FieldTerminalPath) WithIArrayItemValue(value interface{}) ServiceData_FieldPathArrayItemValue { 1090 switch fp.selector { 1091 default: 1092 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fp.selector)) 1093 } 1094 } 1095 1096 func (fp *ServiceData_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1097 return fp.WithIArrayItemValue(value) 1098 } 1099 1100 // ServiceData_FieldPathValue allows storing values for ServiceData fields according to their type 1101 type ServiceData_FieldPathValue interface { 1102 ServiceData_FieldPath 1103 gotenobject.FieldPathValue 1104 SetTo(target **ServiceData) 1105 CompareWith(*ServiceData) (cmp int, comparable bool) 1106 } 1107 1108 func ParseServiceData_FieldPathValue(pathStr, valueStr string) (ServiceData_FieldPathValue, error) { 1109 fp, err := ParseServiceData_FieldPath(pathStr) 1110 if err != nil { 1111 return nil, err 1112 } 1113 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 1114 if err != nil { 1115 return nil, status.Errorf(codes.InvalidArgument, "error parsing ServiceData field path value from %s: %v", valueStr, err) 1116 } 1117 return fpv.(ServiceData_FieldPathValue), nil 1118 } 1119 1120 func MustParseServiceData_FieldPathValue(pathStr, valueStr string) ServiceData_FieldPathValue { 1121 fpv, err := ParseServiceData_FieldPathValue(pathStr, valueStr) 1122 if err != nil { 1123 panic(err) 1124 } 1125 return fpv 1126 } 1127 1128 type ServiceData_FieldTerminalPathValue struct { 1129 ServiceData_FieldTerminalPath 1130 value interface{} 1131 } 1132 1133 var _ ServiceData_FieldPathValue = (*ServiceData_FieldTerminalPathValue)(nil) 1134 1135 // GetRawValue returns raw value stored under selected path for 'ServiceData' as interface{} 1136 func (fpv *ServiceData_FieldTerminalPathValue) GetRawValue() interface{} { 1137 return fpv.value 1138 } 1139 func (fpv *ServiceData_FieldTerminalPathValue) AsNameValue() (string, bool) { 1140 res, ok := fpv.value.(string) 1141 return res, ok 1142 } 1143 func (fpv *ServiceData_FieldTerminalPathValue) AsRegionIdValue() (string, bool) { 1144 res, ok := fpv.value.(string) 1145 return res, ok 1146 } 1147 1148 // SetTo stores value for selected field for object ServiceData 1149 func (fpv *ServiceData_FieldTerminalPathValue) SetTo(target **ServiceData) { 1150 if *target == nil { 1151 *target = new(ServiceData) 1152 } 1153 switch fpv.selector { 1154 case ServiceData_FieldPathSelectorName: 1155 (*target).Name = fpv.value.(string) 1156 case ServiceData_FieldPathSelectorRegionId: 1157 (*target).RegionId = fpv.value.(string) 1158 default: 1159 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fpv.selector)) 1160 } 1161 } 1162 1163 func (fpv *ServiceData_FieldTerminalPathValue) SetToRaw(target proto.Message) { 1164 typedObject := target.(*ServiceData) 1165 fpv.SetTo(&typedObject) 1166 } 1167 1168 // CompareWith compares value in the 'ServiceData_FieldTerminalPathValue' with the value under path in 'ServiceData'. 1169 func (fpv *ServiceData_FieldTerminalPathValue) CompareWith(source *ServiceData) (int, bool) { 1170 switch fpv.selector { 1171 case ServiceData_FieldPathSelectorName: 1172 leftValue := fpv.value.(string) 1173 rightValue := source.GetName() 1174 if (leftValue) == (rightValue) { 1175 return 0, true 1176 } else if (leftValue) < (rightValue) { 1177 return -1, true 1178 } else { 1179 return 1, true 1180 } 1181 case ServiceData_FieldPathSelectorRegionId: 1182 leftValue := fpv.value.(string) 1183 rightValue := source.GetRegionId() 1184 if (leftValue) == (rightValue) { 1185 return 0, true 1186 } else if (leftValue) < (rightValue) { 1187 return -1, true 1188 } else { 1189 return 1, true 1190 } 1191 default: 1192 panic(fmt.Sprintf("Invalid selector for ServiceData: %d", fpv.selector)) 1193 } 1194 } 1195 1196 func (fpv *ServiceData_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 1197 return fpv.CompareWith(source.(*ServiceData)) 1198 } 1199 1200 // ServiceData_FieldPathArrayItemValue allows storing single item in Path-specific values for ServiceData according to their type 1201 // Present only for array (repeated) types. 1202 type ServiceData_FieldPathArrayItemValue interface { 1203 gotenobject.FieldPathArrayItemValue 1204 ServiceData_FieldPath 1205 ContainsValue(*ServiceData) bool 1206 } 1207 1208 // ParseServiceData_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 1209 func ParseServiceData_FieldPathArrayItemValue(pathStr, valueStr string) (ServiceData_FieldPathArrayItemValue, error) { 1210 fp, err := ParseServiceData_FieldPath(pathStr) 1211 if err != nil { 1212 return nil, err 1213 } 1214 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 1215 if err != nil { 1216 return nil, status.Errorf(codes.InvalidArgument, "error parsing ServiceData field path array item value from %s: %v", valueStr, err) 1217 } 1218 return fpaiv.(ServiceData_FieldPathArrayItemValue), nil 1219 } 1220 1221 func MustParseServiceData_FieldPathArrayItemValue(pathStr, valueStr string) ServiceData_FieldPathArrayItemValue { 1222 fpaiv, err := ParseServiceData_FieldPathArrayItemValue(pathStr, valueStr) 1223 if err != nil { 1224 panic(err) 1225 } 1226 return fpaiv 1227 } 1228 1229 type ServiceData_FieldTerminalPathArrayItemValue struct { 1230 ServiceData_FieldTerminalPath 1231 value interface{} 1232 } 1233 1234 var _ ServiceData_FieldPathArrayItemValue = (*ServiceData_FieldTerminalPathArrayItemValue)(nil) 1235 1236 // GetRawValue returns stored element value for array in object ServiceData as interface{} 1237 func (fpaiv *ServiceData_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 1238 return fpaiv.value 1239 } 1240 1241 func (fpaiv *ServiceData_FieldTerminalPathArrayItemValue) GetSingle(source *ServiceData) (interface{}, bool) { 1242 return nil, false 1243 } 1244 1245 func (fpaiv *ServiceData_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 1246 return fpaiv.GetSingle(source.(*ServiceData)) 1247 } 1248 1249 // Contains returns a boolean indicating if value that is being held is present in given 'ServiceData' 1250 func (fpaiv *ServiceData_FieldTerminalPathArrayItemValue) ContainsValue(source *ServiceData) bool { 1251 slice := fpaiv.ServiceData_FieldTerminalPath.Get(source) 1252 for _, v := range slice { 1253 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 1254 if proto.Equal(asProtoMsg, v.(proto.Message)) { 1255 return true 1256 } 1257 } else if reflect.DeepEqual(v, fpaiv.value) { 1258 return true 1259 } 1260 } 1261 return false 1262 } 1263 1264 // ServiceData_FieldPathArrayOfValues allows storing slice of values for ServiceData fields according to their type 1265 type ServiceData_FieldPathArrayOfValues interface { 1266 gotenobject.FieldPathArrayOfValues 1267 ServiceData_FieldPath 1268 } 1269 1270 func ParseServiceData_FieldPathArrayOfValues(pathStr, valuesStr string) (ServiceData_FieldPathArrayOfValues, error) { 1271 fp, err := ParseServiceData_FieldPath(pathStr) 1272 if err != nil { 1273 return nil, err 1274 } 1275 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 1276 if err != nil { 1277 return nil, status.Errorf(codes.InvalidArgument, "error parsing ServiceData field path array of values from %s: %v", valuesStr, err) 1278 } 1279 return fpaov.(ServiceData_FieldPathArrayOfValues), nil 1280 } 1281 1282 func MustParseServiceData_FieldPathArrayOfValues(pathStr, valuesStr string) ServiceData_FieldPathArrayOfValues { 1283 fpaov, err := ParseServiceData_FieldPathArrayOfValues(pathStr, valuesStr) 1284 if err != nil { 1285 panic(err) 1286 } 1287 return fpaov 1288 } 1289 1290 type ServiceData_FieldTerminalPathArrayOfValues struct { 1291 ServiceData_FieldTerminalPath 1292 values interface{} 1293 } 1294 1295 var _ ServiceData_FieldPathArrayOfValues = (*ServiceData_FieldTerminalPathArrayOfValues)(nil) 1296 1297 func (fpaov *ServiceData_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 1298 switch fpaov.selector { 1299 case ServiceData_FieldPathSelectorName: 1300 for _, v := range fpaov.values.([]string) { 1301 values = append(values, v) 1302 } 1303 case ServiceData_FieldPathSelectorRegionId: 1304 for _, v := range fpaov.values.([]string) { 1305 values = append(values, v) 1306 } 1307 } 1308 return 1309 } 1310 func (fpaov *ServiceData_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]string, bool) { 1311 res, ok := fpaov.values.([]string) 1312 return res, ok 1313 } 1314 func (fpaov *ServiceData_FieldTerminalPathArrayOfValues) AsRegionIdArrayOfValues() ([]string, bool) { 1315 res, ok := fpaov.values.([]string) 1316 return res, ok 1317 } 1318 1319 // FieldPath provides implementation to handle 1320 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 1321 type ObjectState_FieldPath interface { 1322 gotenobject.FieldPath 1323 Selector() ObjectState_FieldPathSelector 1324 Get(source *ObjectState) []interface{} 1325 GetSingle(source *ObjectState) (interface{}, bool) 1326 ClearValue(item *ObjectState) 1327 1328 // Those methods build corresponding ObjectState_FieldPathValue 1329 // (or array of values) and holds passed value. Panics if injected type is incorrect. 1330 WithIValue(value interface{}) ObjectState_FieldPathValue 1331 WithIArrayOfValues(values interface{}) ObjectState_FieldPathArrayOfValues 1332 WithIArrayItemValue(value interface{}) ObjectState_FieldPathArrayItemValue 1333 } 1334 1335 type ObjectState_FieldPathSelector int32 1336 1337 const ( 1338 ObjectState_FieldPathSelectorData ObjectState_FieldPathSelector = 0 1339 ObjectState_FieldPathSelectorLabels ObjectState_FieldPathSelector = 1 1340 ) 1341 1342 func (s ObjectState_FieldPathSelector) String() string { 1343 switch s { 1344 case ObjectState_FieldPathSelectorData: 1345 return "data" 1346 case ObjectState_FieldPathSelectorLabels: 1347 return "labels" 1348 default: 1349 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", s)) 1350 } 1351 } 1352 1353 func BuildObjectState_FieldPath(fp gotenobject.RawFieldPath) (ObjectState_FieldPath, error) { 1354 if len(fp) == 0 { 1355 return nil, status.Error(codes.InvalidArgument, "empty field path for object ObjectState") 1356 } 1357 if len(fp) == 1 { 1358 switch fp[0] { 1359 case "data": 1360 return &ObjectState_FieldTerminalPath{selector: ObjectState_FieldPathSelectorData}, nil 1361 case "labels": 1362 return &ObjectState_FieldTerminalPath{selector: ObjectState_FieldPathSelectorLabels}, nil 1363 } 1364 } else { 1365 switch fp[0] { 1366 case "labels": 1367 if len(fp) > 2 { 1368 return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object ObjectState)", fp) 1369 } 1370 return &ObjectState_FieldPathMap{selector: ObjectState_FieldPathSelectorLabels, key: fp[1]}, nil 1371 } 1372 } 1373 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ObjectState", fp) 1374 } 1375 1376 func ParseObjectState_FieldPath(rawField string) (ObjectState_FieldPath, error) { 1377 fp, err := gotenobject.ParseRawFieldPath(rawField) 1378 if err != nil { 1379 return nil, err 1380 } 1381 return BuildObjectState_FieldPath(fp) 1382 } 1383 1384 func MustParseObjectState_FieldPath(rawField string) ObjectState_FieldPath { 1385 fp, err := ParseObjectState_FieldPath(rawField) 1386 if err != nil { 1387 panic(err) 1388 } 1389 return fp 1390 } 1391 1392 type ObjectState_FieldTerminalPath struct { 1393 selector ObjectState_FieldPathSelector 1394 } 1395 1396 var _ ObjectState_FieldPath = (*ObjectState_FieldTerminalPath)(nil) 1397 1398 func (fp *ObjectState_FieldTerminalPath) Selector() ObjectState_FieldPathSelector { 1399 return fp.selector 1400 } 1401 1402 // String returns path representation in proto convention 1403 func (fp *ObjectState_FieldTerminalPath) String() string { 1404 return fp.selector.String() 1405 } 1406 1407 // JSONString returns path representation is JSON convention 1408 func (fp *ObjectState_FieldTerminalPath) JSONString() string { 1409 return strcase.ToLowerCamel(fp.String()) 1410 } 1411 1412 // Get returns all values pointed by specific field from source ObjectState 1413 func (fp *ObjectState_FieldTerminalPath) Get(source *ObjectState) (values []interface{}) { 1414 if source != nil { 1415 switch fp.selector { 1416 case ObjectState_FieldPathSelectorData: 1417 if source.Data != nil { 1418 values = append(values, source.Data) 1419 } 1420 case ObjectState_FieldPathSelectorLabels: 1421 values = append(values, source.Labels) 1422 default: 1423 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1424 } 1425 } 1426 return 1427 } 1428 1429 func (fp *ObjectState_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 1430 return fp.Get(source.(*ObjectState)) 1431 } 1432 1433 // GetSingle returns value pointed by specific field of from source ObjectState 1434 func (fp *ObjectState_FieldTerminalPath) GetSingle(source *ObjectState) (interface{}, bool) { 1435 switch fp.selector { 1436 case ObjectState_FieldPathSelectorData: 1437 res := source.GetData() 1438 return res, res != nil 1439 case ObjectState_FieldPathSelectorLabels: 1440 res := source.GetLabels() 1441 return res, res != nil 1442 default: 1443 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1444 } 1445 } 1446 1447 func (fp *ObjectState_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1448 return fp.GetSingle(source.(*ObjectState)) 1449 } 1450 1451 // GetDefault returns a default value of the field type 1452 func (fp *ObjectState_FieldTerminalPath) GetDefault() interface{} { 1453 switch fp.selector { 1454 case ObjectState_FieldPathSelectorData: 1455 return (*anypb.Any)(nil) 1456 case ObjectState_FieldPathSelectorLabels: 1457 return (map[string]string)(nil) 1458 default: 1459 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1460 } 1461 } 1462 1463 func (fp *ObjectState_FieldTerminalPath) ClearValue(item *ObjectState) { 1464 if item != nil { 1465 switch fp.selector { 1466 case ObjectState_FieldPathSelectorData: 1467 item.Data = nil 1468 case ObjectState_FieldPathSelectorLabels: 1469 item.Labels = nil 1470 default: 1471 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1472 } 1473 } 1474 } 1475 1476 func (fp *ObjectState_FieldTerminalPath) ClearValueRaw(item proto.Message) { 1477 fp.ClearValue(item.(*ObjectState)) 1478 } 1479 1480 // IsLeaf - whether field path is holds simple value 1481 func (fp *ObjectState_FieldTerminalPath) IsLeaf() bool { 1482 return fp.selector == ObjectState_FieldPathSelectorData || 1483 fp.selector == ObjectState_FieldPathSelectorLabels 1484 } 1485 1486 func (fp *ObjectState_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1487 return []gotenobject.FieldPath{fp} 1488 } 1489 1490 func (fp *ObjectState_FieldTerminalPath) WithIValue(value interface{}) ObjectState_FieldPathValue { 1491 switch fp.selector { 1492 case ObjectState_FieldPathSelectorData: 1493 return &ObjectState_FieldTerminalPathValue{ObjectState_FieldTerminalPath: *fp, value: value.(*anypb.Any)} 1494 case ObjectState_FieldPathSelectorLabels: 1495 return &ObjectState_FieldTerminalPathValue{ObjectState_FieldTerminalPath: *fp, value: value.(map[string]string)} 1496 default: 1497 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1498 } 1499 } 1500 1501 func (fp *ObjectState_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1502 return fp.WithIValue(value) 1503 } 1504 1505 func (fp *ObjectState_FieldTerminalPath) WithIArrayOfValues(values interface{}) ObjectState_FieldPathArrayOfValues { 1506 fpaov := &ObjectState_FieldTerminalPathArrayOfValues{ObjectState_FieldTerminalPath: *fp} 1507 switch fp.selector { 1508 case ObjectState_FieldPathSelectorData: 1509 return &ObjectState_FieldTerminalPathArrayOfValues{ObjectState_FieldTerminalPath: *fp, values: values.([]*anypb.Any)} 1510 case ObjectState_FieldPathSelectorLabels: 1511 return &ObjectState_FieldTerminalPathArrayOfValues{ObjectState_FieldTerminalPath: *fp, values: values.([]map[string]string)} 1512 default: 1513 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1514 } 1515 return fpaov 1516 } 1517 1518 func (fp *ObjectState_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1519 return fp.WithIArrayOfValues(values) 1520 } 1521 1522 func (fp *ObjectState_FieldTerminalPath) WithIArrayItemValue(value interface{}) ObjectState_FieldPathArrayItemValue { 1523 switch fp.selector { 1524 default: 1525 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fp.selector)) 1526 } 1527 } 1528 1529 func (fp *ObjectState_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1530 return fp.WithIArrayItemValue(value) 1531 } 1532 1533 // FieldPath for map type with additional Key information 1534 type ObjectState_FieldPathMap struct { 1535 key string 1536 selector ObjectState_FieldPathSelector 1537 } 1538 1539 var _ ObjectState_FieldPath = (*ObjectState_FieldPathMap)(nil) 1540 1541 func (fpm *ObjectState_FieldPathMap) Selector() ObjectState_FieldPathSelector { 1542 return fpm.selector 1543 } 1544 1545 func (fpm *ObjectState_FieldPathMap) Key() string { 1546 return fpm.key 1547 } 1548 1549 // String returns path representation in proto convention 1550 func (fpm *ObjectState_FieldPathMap) String() string { 1551 return fpm.selector.String() + "." + fpm.key 1552 } 1553 1554 // JSONString returns path representation is JSON convention. Note that map keys are not transformed 1555 func (fpm *ObjectState_FieldPathMap) JSONString() string { 1556 return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key 1557 } 1558 1559 // Get returns all values pointed by selected field map key from source ObjectState 1560 func (fpm *ObjectState_FieldPathMap) Get(source *ObjectState) (values []interface{}) { 1561 switch fpm.selector { 1562 case ObjectState_FieldPathSelectorLabels: 1563 if value, ok := source.GetLabels()[fpm.key]; ok { 1564 values = append(values, value) 1565 } 1566 default: 1567 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1568 } 1569 return 1570 } 1571 1572 func (fpm *ObjectState_FieldPathMap) GetRaw(source proto.Message) []interface{} { 1573 return fpm.Get(source.(*ObjectState)) 1574 } 1575 1576 // GetSingle returns value by selected field map key from source ObjectState 1577 func (fpm *ObjectState_FieldPathMap) GetSingle(source *ObjectState) (interface{}, bool) { 1578 switch fpm.selector { 1579 case ObjectState_FieldPathSelectorLabels: 1580 res, ok := source.GetLabels()[fpm.key] 1581 return res, ok 1582 default: 1583 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1584 } 1585 } 1586 1587 func (fpm *ObjectState_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) { 1588 return fpm.GetSingle(source.(*ObjectState)) 1589 } 1590 1591 // GetDefault returns a default value of the field type 1592 func (fpm *ObjectState_FieldPathMap) GetDefault() interface{} { 1593 switch fpm.selector { 1594 case ObjectState_FieldPathSelectorLabels: 1595 var v string 1596 return v 1597 default: 1598 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1599 } 1600 } 1601 1602 func (fpm *ObjectState_FieldPathMap) ClearValue(item *ObjectState) { 1603 if item != nil { 1604 switch fpm.selector { 1605 case ObjectState_FieldPathSelectorLabels: 1606 delete(item.Labels, fpm.key) 1607 default: 1608 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1609 } 1610 } 1611 } 1612 1613 func (fpm *ObjectState_FieldPathMap) ClearValueRaw(item proto.Message) { 1614 fpm.ClearValue(item.(*ObjectState)) 1615 } 1616 1617 // IsLeaf - whether field path is holds simple value 1618 func (fpm *ObjectState_FieldPathMap) IsLeaf() bool { 1619 switch fpm.selector { 1620 case ObjectState_FieldPathSelectorLabels: 1621 return true 1622 default: 1623 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1624 } 1625 } 1626 1627 func (fpm *ObjectState_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1628 return []gotenobject.FieldPath{fpm} 1629 } 1630 1631 func (fpm *ObjectState_FieldPathMap) WithIValue(value interface{}) ObjectState_FieldPathValue { 1632 switch fpm.selector { 1633 case ObjectState_FieldPathSelectorLabels: 1634 return &ObjectState_FieldPathMapValue{ObjectState_FieldPathMap: *fpm, value: value.(string)} 1635 default: 1636 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1637 } 1638 } 1639 1640 func (fpm *ObjectState_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1641 return fpm.WithIValue(value) 1642 } 1643 1644 func (fpm *ObjectState_FieldPathMap) WithIArrayOfValues(values interface{}) ObjectState_FieldPathArrayOfValues { 1645 switch fpm.selector { 1646 case ObjectState_FieldPathSelectorLabels: 1647 return &ObjectState_FieldPathMapArrayOfValues{ObjectState_FieldPathMap: *fpm, values: values.([]string)} 1648 default: 1649 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpm.selector)) 1650 } 1651 } 1652 1653 func (fpm *ObjectState_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1654 return fpm.WithIArrayOfValues(values) 1655 } 1656 1657 func (fpm *ObjectState_FieldPathMap) WithIArrayItemValue(value interface{}) ObjectState_FieldPathArrayItemValue { 1658 panic("Cannot create array item value from map fieldpath") 1659 } 1660 1661 func (fpm *ObjectState_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1662 return fpm.WithIArrayItemValue(value) 1663 } 1664 1665 // ObjectState_FieldPathValue allows storing values for ObjectState fields according to their type 1666 type ObjectState_FieldPathValue interface { 1667 ObjectState_FieldPath 1668 gotenobject.FieldPathValue 1669 SetTo(target **ObjectState) 1670 CompareWith(*ObjectState) (cmp int, comparable bool) 1671 } 1672 1673 func ParseObjectState_FieldPathValue(pathStr, valueStr string) (ObjectState_FieldPathValue, error) { 1674 fp, err := ParseObjectState_FieldPath(pathStr) 1675 if err != nil { 1676 return nil, err 1677 } 1678 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 1679 if err != nil { 1680 return nil, status.Errorf(codes.InvalidArgument, "error parsing ObjectState field path value from %s: %v", valueStr, err) 1681 } 1682 return fpv.(ObjectState_FieldPathValue), nil 1683 } 1684 1685 func MustParseObjectState_FieldPathValue(pathStr, valueStr string) ObjectState_FieldPathValue { 1686 fpv, err := ParseObjectState_FieldPathValue(pathStr, valueStr) 1687 if err != nil { 1688 panic(err) 1689 } 1690 return fpv 1691 } 1692 1693 type ObjectState_FieldTerminalPathValue struct { 1694 ObjectState_FieldTerminalPath 1695 value interface{} 1696 } 1697 1698 var _ ObjectState_FieldPathValue = (*ObjectState_FieldTerminalPathValue)(nil) 1699 1700 // GetRawValue returns raw value stored under selected path for 'ObjectState' as interface{} 1701 func (fpv *ObjectState_FieldTerminalPathValue) GetRawValue() interface{} { 1702 return fpv.value 1703 } 1704 func (fpv *ObjectState_FieldTerminalPathValue) AsDataValue() (*anypb.Any, bool) { 1705 res, ok := fpv.value.(*anypb.Any) 1706 return res, ok 1707 } 1708 func (fpv *ObjectState_FieldTerminalPathValue) AsLabelsValue() (map[string]string, bool) { 1709 res, ok := fpv.value.(map[string]string) 1710 return res, ok 1711 } 1712 1713 // SetTo stores value for selected field for object ObjectState 1714 func (fpv *ObjectState_FieldTerminalPathValue) SetTo(target **ObjectState) { 1715 if *target == nil { 1716 *target = new(ObjectState) 1717 } 1718 switch fpv.selector { 1719 case ObjectState_FieldPathSelectorData: 1720 (*target).Data = fpv.value.(*anypb.Any) 1721 case ObjectState_FieldPathSelectorLabels: 1722 (*target).Labels = fpv.value.(map[string]string) 1723 default: 1724 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpv.selector)) 1725 } 1726 } 1727 1728 func (fpv *ObjectState_FieldTerminalPathValue) SetToRaw(target proto.Message) { 1729 typedObject := target.(*ObjectState) 1730 fpv.SetTo(&typedObject) 1731 } 1732 1733 // CompareWith compares value in the 'ObjectState_FieldTerminalPathValue' with the value under path in 'ObjectState'. 1734 func (fpv *ObjectState_FieldTerminalPathValue) CompareWith(source *ObjectState) (int, bool) { 1735 switch fpv.selector { 1736 case ObjectState_FieldPathSelectorData: 1737 return 0, false 1738 case ObjectState_FieldPathSelectorLabels: 1739 return 0, false 1740 default: 1741 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpv.selector)) 1742 } 1743 } 1744 1745 func (fpv *ObjectState_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 1746 return fpv.CompareWith(source.(*ObjectState)) 1747 } 1748 1749 type ObjectState_FieldPathMapValue struct { 1750 ObjectState_FieldPathMap 1751 value interface{} 1752 } 1753 1754 var _ ObjectState_FieldPathValue = (*ObjectState_FieldPathMapValue)(nil) 1755 1756 // GetValue returns value stored under selected field in ObjectState as interface{} 1757 func (fpmv *ObjectState_FieldPathMapValue) GetRawValue() interface{} { 1758 return fpmv.value 1759 } 1760 func (fpmv *ObjectState_FieldPathMapValue) AsLabelsElementValue() (string, bool) { 1761 res, ok := fpmv.value.(string) 1762 return res, ok 1763 } 1764 1765 // SetTo stores value for selected field in ObjectState 1766 func (fpmv *ObjectState_FieldPathMapValue) SetTo(target **ObjectState) { 1767 if *target == nil { 1768 *target = new(ObjectState) 1769 } 1770 switch fpmv.selector { 1771 case ObjectState_FieldPathSelectorLabels: 1772 if (*target).Labels == nil { 1773 (*target).Labels = make(map[string]string) 1774 } 1775 (*target).Labels[fpmv.key] = fpmv.value.(string) 1776 default: 1777 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpmv.selector)) 1778 } 1779 } 1780 1781 func (fpmv *ObjectState_FieldPathMapValue) SetToRaw(target proto.Message) { 1782 typedObject := target.(*ObjectState) 1783 fpmv.SetTo(&typedObject) 1784 } 1785 1786 // CompareWith compares value in the 'ObjectState_FieldPathMapValue' with the value under path in 'ObjectState'. 1787 func (fpmv *ObjectState_FieldPathMapValue) CompareWith(source *ObjectState) (int, bool) { 1788 switch fpmv.selector { 1789 case ObjectState_FieldPathSelectorLabels: 1790 leftValue := fpmv.value.(string) 1791 rightValue := source.GetLabels()[fpmv.key] 1792 if (leftValue) == (rightValue) { 1793 return 0, true 1794 } else if (leftValue) < (rightValue) { 1795 return -1, true 1796 } else { 1797 return 1, true 1798 } 1799 default: 1800 panic(fmt.Sprintf("Invalid selector for ObjectState: %d", fpmv.selector)) 1801 } 1802 } 1803 1804 func (fpmv *ObjectState_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) { 1805 return fpmv.CompareWith(source.(*ObjectState)) 1806 } 1807 1808 // ObjectState_FieldPathArrayItemValue allows storing single item in Path-specific values for ObjectState according to their type 1809 // Present only for array (repeated) types. 1810 type ObjectState_FieldPathArrayItemValue interface { 1811 gotenobject.FieldPathArrayItemValue 1812 ObjectState_FieldPath 1813 ContainsValue(*ObjectState) bool 1814 } 1815 1816 // ParseObjectState_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 1817 func ParseObjectState_FieldPathArrayItemValue(pathStr, valueStr string) (ObjectState_FieldPathArrayItemValue, error) { 1818 fp, err := ParseObjectState_FieldPath(pathStr) 1819 if err != nil { 1820 return nil, err 1821 } 1822 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 1823 if err != nil { 1824 return nil, status.Errorf(codes.InvalidArgument, "error parsing ObjectState field path array item value from %s: %v", valueStr, err) 1825 } 1826 return fpaiv.(ObjectState_FieldPathArrayItemValue), nil 1827 } 1828 1829 func MustParseObjectState_FieldPathArrayItemValue(pathStr, valueStr string) ObjectState_FieldPathArrayItemValue { 1830 fpaiv, err := ParseObjectState_FieldPathArrayItemValue(pathStr, valueStr) 1831 if err != nil { 1832 panic(err) 1833 } 1834 return fpaiv 1835 } 1836 1837 type ObjectState_FieldTerminalPathArrayItemValue struct { 1838 ObjectState_FieldTerminalPath 1839 value interface{} 1840 } 1841 1842 var _ ObjectState_FieldPathArrayItemValue = (*ObjectState_FieldTerminalPathArrayItemValue)(nil) 1843 1844 // GetRawValue returns stored element value for array in object ObjectState as interface{} 1845 func (fpaiv *ObjectState_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 1846 return fpaiv.value 1847 } 1848 1849 func (fpaiv *ObjectState_FieldTerminalPathArrayItemValue) GetSingle(source *ObjectState) (interface{}, bool) { 1850 return nil, false 1851 } 1852 1853 func (fpaiv *ObjectState_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 1854 return fpaiv.GetSingle(source.(*ObjectState)) 1855 } 1856 1857 // Contains returns a boolean indicating if value that is being held is present in given 'ObjectState' 1858 func (fpaiv *ObjectState_FieldTerminalPathArrayItemValue) ContainsValue(source *ObjectState) bool { 1859 slice := fpaiv.ObjectState_FieldTerminalPath.Get(source) 1860 for _, v := range slice { 1861 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 1862 if proto.Equal(asProtoMsg, v.(proto.Message)) { 1863 return true 1864 } 1865 } else if reflect.DeepEqual(v, fpaiv.value) { 1866 return true 1867 } 1868 } 1869 return false 1870 } 1871 1872 // ObjectState_FieldPathArrayOfValues allows storing slice of values for ObjectState fields according to their type 1873 type ObjectState_FieldPathArrayOfValues interface { 1874 gotenobject.FieldPathArrayOfValues 1875 ObjectState_FieldPath 1876 } 1877 1878 func ParseObjectState_FieldPathArrayOfValues(pathStr, valuesStr string) (ObjectState_FieldPathArrayOfValues, error) { 1879 fp, err := ParseObjectState_FieldPath(pathStr) 1880 if err != nil { 1881 return nil, err 1882 } 1883 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 1884 if err != nil { 1885 return nil, status.Errorf(codes.InvalidArgument, "error parsing ObjectState field path array of values from %s: %v", valuesStr, err) 1886 } 1887 return fpaov.(ObjectState_FieldPathArrayOfValues), nil 1888 } 1889 1890 func MustParseObjectState_FieldPathArrayOfValues(pathStr, valuesStr string) ObjectState_FieldPathArrayOfValues { 1891 fpaov, err := ParseObjectState_FieldPathArrayOfValues(pathStr, valuesStr) 1892 if err != nil { 1893 panic(err) 1894 } 1895 return fpaov 1896 } 1897 1898 type ObjectState_FieldTerminalPathArrayOfValues struct { 1899 ObjectState_FieldTerminalPath 1900 values interface{} 1901 } 1902 1903 var _ ObjectState_FieldPathArrayOfValues = (*ObjectState_FieldTerminalPathArrayOfValues)(nil) 1904 1905 func (fpaov *ObjectState_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 1906 switch fpaov.selector { 1907 case ObjectState_FieldPathSelectorData: 1908 for _, v := range fpaov.values.([]*anypb.Any) { 1909 values = append(values, v) 1910 } 1911 case ObjectState_FieldPathSelectorLabels: 1912 for _, v := range fpaov.values.([]map[string]string) { 1913 values = append(values, v) 1914 } 1915 } 1916 return 1917 } 1918 func (fpaov *ObjectState_FieldTerminalPathArrayOfValues) AsDataArrayOfValues() ([]*anypb.Any, bool) { 1919 res, ok := fpaov.values.([]*anypb.Any) 1920 return res, ok 1921 } 1922 func (fpaov *ObjectState_FieldTerminalPathArrayOfValues) AsLabelsArrayOfValues() ([]map[string]string, bool) { 1923 res, ok := fpaov.values.([]map[string]string) 1924 return res, ok 1925 } 1926 1927 type ObjectState_FieldPathMapArrayOfValues struct { 1928 ObjectState_FieldPathMap 1929 values interface{} 1930 } 1931 1932 var _ ObjectState_FieldPathArrayOfValues = (*ObjectState_FieldPathMapArrayOfValues)(nil) 1933 1934 func (fpmaov *ObjectState_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) { 1935 switch fpmaov.selector { 1936 case ObjectState_FieldPathSelectorLabels: 1937 for _, v := range fpmaov.values.([]string) { 1938 values = append(values, v) 1939 } 1940 } 1941 return 1942 } 1943 func (fpmaov *ObjectState_FieldPathMapArrayOfValues) AsLabelsArrayOfElementValues() ([]string, bool) { 1944 res, ok := fpmaov.values.([]string) 1945 return res, ok 1946 } 1947 1948 // FieldPath provides implementation to handle 1949 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 1950 type LabelDescriptor_FieldPath interface { 1951 gotenobject.FieldPath 1952 Selector() LabelDescriptor_FieldPathSelector 1953 Get(source *LabelDescriptor) []interface{} 1954 GetSingle(source *LabelDescriptor) (interface{}, bool) 1955 ClearValue(item *LabelDescriptor) 1956 1957 // Those methods build corresponding LabelDescriptor_FieldPathValue 1958 // (or array of values) and holds passed value. Panics if injected type is incorrect. 1959 WithIValue(value interface{}) LabelDescriptor_FieldPathValue 1960 WithIArrayOfValues(values interface{}) LabelDescriptor_FieldPathArrayOfValues 1961 WithIArrayItemValue(value interface{}) LabelDescriptor_FieldPathArrayItemValue 1962 } 1963 1964 type LabelDescriptor_FieldPathSelector int32 1965 1966 const ( 1967 LabelDescriptor_FieldPathSelectorKey LabelDescriptor_FieldPathSelector = 0 1968 LabelDescriptor_FieldPathSelectorVersions LabelDescriptor_FieldPathSelector = 1 1969 ) 1970 1971 func (s LabelDescriptor_FieldPathSelector) String() string { 1972 switch s { 1973 case LabelDescriptor_FieldPathSelectorKey: 1974 return "key" 1975 case LabelDescriptor_FieldPathSelectorVersions: 1976 return "versions" 1977 default: 1978 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", s)) 1979 } 1980 } 1981 1982 func BuildLabelDescriptor_FieldPath(fp gotenobject.RawFieldPath) (LabelDescriptor_FieldPath, error) { 1983 if len(fp) == 0 { 1984 return nil, status.Error(codes.InvalidArgument, "empty field path for object LabelDescriptor") 1985 } 1986 if len(fp) == 1 { 1987 switch fp[0] { 1988 case "key": 1989 return &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorKey}, nil 1990 case "versions": 1991 return &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorVersions}, nil 1992 } 1993 } 1994 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object LabelDescriptor", fp) 1995 } 1996 1997 func ParseLabelDescriptor_FieldPath(rawField string) (LabelDescriptor_FieldPath, error) { 1998 fp, err := gotenobject.ParseRawFieldPath(rawField) 1999 if err != nil { 2000 return nil, err 2001 } 2002 return BuildLabelDescriptor_FieldPath(fp) 2003 } 2004 2005 func MustParseLabelDescriptor_FieldPath(rawField string) LabelDescriptor_FieldPath { 2006 fp, err := ParseLabelDescriptor_FieldPath(rawField) 2007 if err != nil { 2008 panic(err) 2009 } 2010 return fp 2011 } 2012 2013 type LabelDescriptor_FieldTerminalPath struct { 2014 selector LabelDescriptor_FieldPathSelector 2015 } 2016 2017 var _ LabelDescriptor_FieldPath = (*LabelDescriptor_FieldTerminalPath)(nil) 2018 2019 func (fp *LabelDescriptor_FieldTerminalPath) Selector() LabelDescriptor_FieldPathSelector { 2020 return fp.selector 2021 } 2022 2023 // String returns path representation in proto convention 2024 func (fp *LabelDescriptor_FieldTerminalPath) String() string { 2025 return fp.selector.String() 2026 } 2027 2028 // JSONString returns path representation is JSON convention 2029 func (fp *LabelDescriptor_FieldTerminalPath) JSONString() string { 2030 return strcase.ToLowerCamel(fp.String()) 2031 } 2032 2033 // Get returns all values pointed by specific field from source LabelDescriptor 2034 func (fp *LabelDescriptor_FieldTerminalPath) Get(source *LabelDescriptor) (values []interface{}) { 2035 if source != nil { 2036 switch fp.selector { 2037 case LabelDescriptor_FieldPathSelectorKey: 2038 values = append(values, source.Key) 2039 case LabelDescriptor_FieldPathSelectorVersions: 2040 for _, value := range source.GetVersions() { 2041 values = append(values, value) 2042 } 2043 default: 2044 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2045 } 2046 } 2047 return 2048 } 2049 2050 func (fp *LabelDescriptor_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 2051 return fp.Get(source.(*LabelDescriptor)) 2052 } 2053 2054 // GetSingle returns value pointed by specific field of from source LabelDescriptor 2055 func (fp *LabelDescriptor_FieldTerminalPath) GetSingle(source *LabelDescriptor) (interface{}, bool) { 2056 switch fp.selector { 2057 case LabelDescriptor_FieldPathSelectorKey: 2058 return source.GetKey(), source != nil 2059 case LabelDescriptor_FieldPathSelectorVersions: 2060 res := source.GetVersions() 2061 return res, res != nil 2062 default: 2063 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2064 } 2065 } 2066 2067 func (fp *LabelDescriptor_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 2068 return fp.GetSingle(source.(*LabelDescriptor)) 2069 } 2070 2071 // GetDefault returns a default value of the field type 2072 func (fp *LabelDescriptor_FieldTerminalPath) GetDefault() interface{} { 2073 switch fp.selector { 2074 case LabelDescriptor_FieldPathSelectorKey: 2075 return "" 2076 case LabelDescriptor_FieldPathSelectorVersions: 2077 return ([]string)(nil) 2078 default: 2079 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2080 } 2081 } 2082 2083 func (fp *LabelDescriptor_FieldTerminalPath) ClearValue(item *LabelDescriptor) { 2084 if item != nil { 2085 switch fp.selector { 2086 case LabelDescriptor_FieldPathSelectorKey: 2087 item.Key = "" 2088 case LabelDescriptor_FieldPathSelectorVersions: 2089 item.Versions = nil 2090 default: 2091 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2092 } 2093 } 2094 } 2095 2096 func (fp *LabelDescriptor_FieldTerminalPath) ClearValueRaw(item proto.Message) { 2097 fp.ClearValue(item.(*LabelDescriptor)) 2098 } 2099 2100 // IsLeaf - whether field path is holds simple value 2101 func (fp *LabelDescriptor_FieldTerminalPath) IsLeaf() bool { 2102 return fp.selector == LabelDescriptor_FieldPathSelectorKey || 2103 fp.selector == LabelDescriptor_FieldPathSelectorVersions 2104 } 2105 2106 func (fp *LabelDescriptor_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2107 return []gotenobject.FieldPath{fp} 2108 } 2109 2110 func (fp *LabelDescriptor_FieldTerminalPath) WithIValue(value interface{}) LabelDescriptor_FieldPathValue { 2111 switch fp.selector { 2112 case LabelDescriptor_FieldPathSelectorKey: 2113 return &LabelDescriptor_FieldTerminalPathValue{LabelDescriptor_FieldTerminalPath: *fp, value: value.(string)} 2114 case LabelDescriptor_FieldPathSelectorVersions: 2115 return &LabelDescriptor_FieldTerminalPathValue{LabelDescriptor_FieldTerminalPath: *fp, value: value.([]string)} 2116 default: 2117 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2118 } 2119 } 2120 2121 func (fp *LabelDescriptor_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 2122 return fp.WithIValue(value) 2123 } 2124 2125 func (fp *LabelDescriptor_FieldTerminalPath) WithIArrayOfValues(values interface{}) LabelDescriptor_FieldPathArrayOfValues { 2126 fpaov := &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp} 2127 switch fp.selector { 2128 case LabelDescriptor_FieldPathSelectorKey: 2129 return &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp, values: values.([]string)} 2130 case LabelDescriptor_FieldPathSelectorVersions: 2131 return &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp, values: values.([][]string)} 2132 default: 2133 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2134 } 2135 return fpaov 2136 } 2137 2138 func (fp *LabelDescriptor_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 2139 return fp.WithIArrayOfValues(values) 2140 } 2141 2142 func (fp *LabelDescriptor_FieldTerminalPath) WithIArrayItemValue(value interface{}) LabelDescriptor_FieldPathArrayItemValue { 2143 switch fp.selector { 2144 case LabelDescriptor_FieldPathSelectorVersions: 2145 return &LabelDescriptor_FieldTerminalPathArrayItemValue{LabelDescriptor_FieldTerminalPath: *fp, value: value.(string)} 2146 default: 2147 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector)) 2148 } 2149 } 2150 2151 func (fp *LabelDescriptor_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 2152 return fp.WithIArrayItemValue(value) 2153 } 2154 2155 // LabelDescriptor_FieldPathValue allows storing values for LabelDescriptor fields according to their type 2156 type LabelDescriptor_FieldPathValue interface { 2157 LabelDescriptor_FieldPath 2158 gotenobject.FieldPathValue 2159 SetTo(target **LabelDescriptor) 2160 CompareWith(*LabelDescriptor) (cmp int, comparable bool) 2161 } 2162 2163 func ParseLabelDescriptor_FieldPathValue(pathStr, valueStr string) (LabelDescriptor_FieldPathValue, error) { 2164 fp, err := ParseLabelDescriptor_FieldPath(pathStr) 2165 if err != nil { 2166 return nil, err 2167 } 2168 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 2169 if err != nil { 2170 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelDescriptor field path value from %s: %v", valueStr, err) 2171 } 2172 return fpv.(LabelDescriptor_FieldPathValue), nil 2173 } 2174 2175 func MustParseLabelDescriptor_FieldPathValue(pathStr, valueStr string) LabelDescriptor_FieldPathValue { 2176 fpv, err := ParseLabelDescriptor_FieldPathValue(pathStr, valueStr) 2177 if err != nil { 2178 panic(err) 2179 } 2180 return fpv 2181 } 2182 2183 type LabelDescriptor_FieldTerminalPathValue struct { 2184 LabelDescriptor_FieldTerminalPath 2185 value interface{} 2186 } 2187 2188 var _ LabelDescriptor_FieldPathValue = (*LabelDescriptor_FieldTerminalPathValue)(nil) 2189 2190 // GetRawValue returns raw value stored under selected path for 'LabelDescriptor' as interface{} 2191 func (fpv *LabelDescriptor_FieldTerminalPathValue) GetRawValue() interface{} { 2192 return fpv.value 2193 } 2194 func (fpv *LabelDescriptor_FieldTerminalPathValue) AsKeyValue() (string, bool) { 2195 res, ok := fpv.value.(string) 2196 return res, ok 2197 } 2198 func (fpv *LabelDescriptor_FieldTerminalPathValue) AsVersionsValue() ([]string, bool) { 2199 res, ok := fpv.value.([]string) 2200 return res, ok 2201 } 2202 2203 // SetTo stores value for selected field for object LabelDescriptor 2204 func (fpv *LabelDescriptor_FieldTerminalPathValue) SetTo(target **LabelDescriptor) { 2205 if *target == nil { 2206 *target = new(LabelDescriptor) 2207 } 2208 switch fpv.selector { 2209 case LabelDescriptor_FieldPathSelectorKey: 2210 (*target).Key = fpv.value.(string) 2211 case LabelDescriptor_FieldPathSelectorVersions: 2212 (*target).Versions = fpv.value.([]string) 2213 default: 2214 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fpv.selector)) 2215 } 2216 } 2217 2218 func (fpv *LabelDescriptor_FieldTerminalPathValue) SetToRaw(target proto.Message) { 2219 typedObject := target.(*LabelDescriptor) 2220 fpv.SetTo(&typedObject) 2221 } 2222 2223 // CompareWith compares value in the 'LabelDescriptor_FieldTerminalPathValue' with the value under path in 'LabelDescriptor'. 2224 func (fpv *LabelDescriptor_FieldTerminalPathValue) CompareWith(source *LabelDescriptor) (int, bool) { 2225 switch fpv.selector { 2226 case LabelDescriptor_FieldPathSelectorKey: 2227 leftValue := fpv.value.(string) 2228 rightValue := source.GetKey() 2229 if (leftValue) == (rightValue) { 2230 return 0, true 2231 } else if (leftValue) < (rightValue) { 2232 return -1, true 2233 } else { 2234 return 1, true 2235 } 2236 case LabelDescriptor_FieldPathSelectorVersions: 2237 return 0, false 2238 default: 2239 panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fpv.selector)) 2240 } 2241 } 2242 2243 func (fpv *LabelDescriptor_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2244 return fpv.CompareWith(source.(*LabelDescriptor)) 2245 } 2246 2247 // LabelDescriptor_FieldPathArrayItemValue allows storing single item in Path-specific values for LabelDescriptor according to their type 2248 // Present only for array (repeated) types. 2249 type LabelDescriptor_FieldPathArrayItemValue interface { 2250 gotenobject.FieldPathArrayItemValue 2251 LabelDescriptor_FieldPath 2252 ContainsValue(*LabelDescriptor) bool 2253 } 2254 2255 // ParseLabelDescriptor_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 2256 func ParseLabelDescriptor_FieldPathArrayItemValue(pathStr, valueStr string) (LabelDescriptor_FieldPathArrayItemValue, error) { 2257 fp, err := ParseLabelDescriptor_FieldPath(pathStr) 2258 if err != nil { 2259 return nil, err 2260 } 2261 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 2262 if err != nil { 2263 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelDescriptor field path array item value from %s: %v", valueStr, err) 2264 } 2265 return fpaiv.(LabelDescriptor_FieldPathArrayItemValue), nil 2266 } 2267 2268 func MustParseLabelDescriptor_FieldPathArrayItemValue(pathStr, valueStr string) LabelDescriptor_FieldPathArrayItemValue { 2269 fpaiv, err := ParseLabelDescriptor_FieldPathArrayItemValue(pathStr, valueStr) 2270 if err != nil { 2271 panic(err) 2272 } 2273 return fpaiv 2274 } 2275 2276 type LabelDescriptor_FieldTerminalPathArrayItemValue struct { 2277 LabelDescriptor_FieldTerminalPath 2278 value interface{} 2279 } 2280 2281 var _ LabelDescriptor_FieldPathArrayItemValue = (*LabelDescriptor_FieldTerminalPathArrayItemValue)(nil) 2282 2283 // GetRawValue returns stored element value for array in object LabelDescriptor as interface{} 2284 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 2285 return fpaiv.value 2286 } 2287 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) AsVersionsItemValue() (string, bool) { 2288 res, ok := fpaiv.value.(string) 2289 return res, ok 2290 } 2291 2292 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) GetSingle(source *LabelDescriptor) (interface{}, bool) { 2293 return nil, false 2294 } 2295 2296 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 2297 return fpaiv.GetSingle(source.(*LabelDescriptor)) 2298 } 2299 2300 // Contains returns a boolean indicating if value that is being held is present in given 'LabelDescriptor' 2301 func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) ContainsValue(source *LabelDescriptor) bool { 2302 slice := fpaiv.LabelDescriptor_FieldTerminalPath.Get(source) 2303 for _, v := range slice { 2304 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 2305 if proto.Equal(asProtoMsg, v.(proto.Message)) { 2306 return true 2307 } 2308 } else if reflect.DeepEqual(v, fpaiv.value) { 2309 return true 2310 } 2311 } 2312 return false 2313 } 2314 2315 // LabelDescriptor_FieldPathArrayOfValues allows storing slice of values for LabelDescriptor fields according to their type 2316 type LabelDescriptor_FieldPathArrayOfValues interface { 2317 gotenobject.FieldPathArrayOfValues 2318 LabelDescriptor_FieldPath 2319 } 2320 2321 func ParseLabelDescriptor_FieldPathArrayOfValues(pathStr, valuesStr string) (LabelDescriptor_FieldPathArrayOfValues, error) { 2322 fp, err := ParseLabelDescriptor_FieldPath(pathStr) 2323 if err != nil { 2324 return nil, err 2325 } 2326 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 2327 if err != nil { 2328 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelDescriptor field path array of values from %s: %v", valuesStr, err) 2329 } 2330 return fpaov.(LabelDescriptor_FieldPathArrayOfValues), nil 2331 } 2332 2333 func MustParseLabelDescriptor_FieldPathArrayOfValues(pathStr, valuesStr string) LabelDescriptor_FieldPathArrayOfValues { 2334 fpaov, err := ParseLabelDescriptor_FieldPathArrayOfValues(pathStr, valuesStr) 2335 if err != nil { 2336 panic(err) 2337 } 2338 return fpaov 2339 } 2340 2341 type LabelDescriptor_FieldTerminalPathArrayOfValues struct { 2342 LabelDescriptor_FieldTerminalPath 2343 values interface{} 2344 } 2345 2346 var _ LabelDescriptor_FieldPathArrayOfValues = (*LabelDescriptor_FieldTerminalPathArrayOfValues)(nil) 2347 2348 func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 2349 switch fpaov.selector { 2350 case LabelDescriptor_FieldPathSelectorKey: 2351 for _, v := range fpaov.values.([]string) { 2352 values = append(values, v) 2353 } 2354 case LabelDescriptor_FieldPathSelectorVersions: 2355 for _, v := range fpaov.values.([][]string) { 2356 values = append(values, v) 2357 } 2358 } 2359 return 2360 } 2361 func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) AsKeyArrayOfValues() ([]string, bool) { 2362 res, ok := fpaov.values.([]string) 2363 return res, ok 2364 } 2365 func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) AsVersionsArrayOfValues() ([][]string, bool) { 2366 res, ok := fpaov.values.([][]string) 2367 return res, ok 2368 } 2369 2370 // FieldPath provides implementation to handle 2371 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 2372 type LabelKeySet_FieldPath interface { 2373 gotenobject.FieldPath 2374 Selector() LabelKeySet_FieldPathSelector 2375 Get(source *LabelKeySet) []interface{} 2376 GetSingle(source *LabelKeySet) (interface{}, bool) 2377 ClearValue(item *LabelKeySet) 2378 2379 // Those methods build corresponding LabelKeySet_FieldPathValue 2380 // (or array of values) and holds passed value. Panics if injected type is incorrect. 2381 WithIValue(value interface{}) LabelKeySet_FieldPathValue 2382 WithIArrayOfValues(values interface{}) LabelKeySet_FieldPathArrayOfValues 2383 WithIArrayItemValue(value interface{}) LabelKeySet_FieldPathArrayItemValue 2384 } 2385 2386 type LabelKeySet_FieldPathSelector int32 2387 2388 const ( 2389 LabelKeySet_FieldPathSelectorLabelKeys LabelKeySet_FieldPathSelector = 0 2390 LabelKeySet_FieldPathSelectorVersions LabelKeySet_FieldPathSelector = 1 2391 ) 2392 2393 func (s LabelKeySet_FieldPathSelector) String() string { 2394 switch s { 2395 case LabelKeySet_FieldPathSelectorLabelKeys: 2396 return "label_keys" 2397 case LabelKeySet_FieldPathSelectorVersions: 2398 return "versions" 2399 default: 2400 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", s)) 2401 } 2402 } 2403 2404 func BuildLabelKeySet_FieldPath(fp gotenobject.RawFieldPath) (LabelKeySet_FieldPath, error) { 2405 if len(fp) == 0 { 2406 return nil, status.Error(codes.InvalidArgument, "empty field path for object LabelKeySet") 2407 } 2408 if len(fp) == 1 { 2409 switch fp[0] { 2410 case "label_keys", "labelKeys", "label-keys": 2411 return &LabelKeySet_FieldTerminalPath{selector: LabelKeySet_FieldPathSelectorLabelKeys}, nil 2412 case "versions": 2413 return &LabelKeySet_FieldTerminalPath{selector: LabelKeySet_FieldPathSelectorVersions}, nil 2414 } 2415 } 2416 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object LabelKeySet", fp) 2417 } 2418 2419 func ParseLabelKeySet_FieldPath(rawField string) (LabelKeySet_FieldPath, error) { 2420 fp, err := gotenobject.ParseRawFieldPath(rawField) 2421 if err != nil { 2422 return nil, err 2423 } 2424 return BuildLabelKeySet_FieldPath(fp) 2425 } 2426 2427 func MustParseLabelKeySet_FieldPath(rawField string) LabelKeySet_FieldPath { 2428 fp, err := ParseLabelKeySet_FieldPath(rawField) 2429 if err != nil { 2430 panic(err) 2431 } 2432 return fp 2433 } 2434 2435 type LabelKeySet_FieldTerminalPath struct { 2436 selector LabelKeySet_FieldPathSelector 2437 } 2438 2439 var _ LabelKeySet_FieldPath = (*LabelKeySet_FieldTerminalPath)(nil) 2440 2441 func (fp *LabelKeySet_FieldTerminalPath) Selector() LabelKeySet_FieldPathSelector { 2442 return fp.selector 2443 } 2444 2445 // String returns path representation in proto convention 2446 func (fp *LabelKeySet_FieldTerminalPath) String() string { 2447 return fp.selector.String() 2448 } 2449 2450 // JSONString returns path representation is JSON convention 2451 func (fp *LabelKeySet_FieldTerminalPath) JSONString() string { 2452 return strcase.ToLowerCamel(fp.String()) 2453 } 2454 2455 // Get returns all values pointed by specific field from source LabelKeySet 2456 func (fp *LabelKeySet_FieldTerminalPath) Get(source *LabelKeySet) (values []interface{}) { 2457 if source != nil { 2458 switch fp.selector { 2459 case LabelKeySet_FieldPathSelectorLabelKeys: 2460 for _, value := range source.GetLabelKeys() { 2461 values = append(values, value) 2462 } 2463 case LabelKeySet_FieldPathSelectorVersions: 2464 for _, value := range source.GetVersions() { 2465 values = append(values, value) 2466 } 2467 default: 2468 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2469 } 2470 } 2471 return 2472 } 2473 2474 func (fp *LabelKeySet_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 2475 return fp.Get(source.(*LabelKeySet)) 2476 } 2477 2478 // GetSingle returns value pointed by specific field of from source LabelKeySet 2479 func (fp *LabelKeySet_FieldTerminalPath) GetSingle(source *LabelKeySet) (interface{}, bool) { 2480 switch fp.selector { 2481 case LabelKeySet_FieldPathSelectorLabelKeys: 2482 res := source.GetLabelKeys() 2483 return res, res != nil 2484 case LabelKeySet_FieldPathSelectorVersions: 2485 res := source.GetVersions() 2486 return res, res != nil 2487 default: 2488 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2489 } 2490 } 2491 2492 func (fp *LabelKeySet_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 2493 return fp.GetSingle(source.(*LabelKeySet)) 2494 } 2495 2496 // GetDefault returns a default value of the field type 2497 func (fp *LabelKeySet_FieldTerminalPath) GetDefault() interface{} { 2498 switch fp.selector { 2499 case LabelKeySet_FieldPathSelectorLabelKeys: 2500 return ([]string)(nil) 2501 case LabelKeySet_FieldPathSelectorVersions: 2502 return ([]string)(nil) 2503 default: 2504 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2505 } 2506 } 2507 2508 func (fp *LabelKeySet_FieldTerminalPath) ClearValue(item *LabelKeySet) { 2509 if item != nil { 2510 switch fp.selector { 2511 case LabelKeySet_FieldPathSelectorLabelKeys: 2512 item.LabelKeys = nil 2513 case LabelKeySet_FieldPathSelectorVersions: 2514 item.Versions = nil 2515 default: 2516 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2517 } 2518 } 2519 } 2520 2521 func (fp *LabelKeySet_FieldTerminalPath) ClearValueRaw(item proto.Message) { 2522 fp.ClearValue(item.(*LabelKeySet)) 2523 } 2524 2525 // IsLeaf - whether field path is holds simple value 2526 func (fp *LabelKeySet_FieldTerminalPath) IsLeaf() bool { 2527 return fp.selector == LabelKeySet_FieldPathSelectorLabelKeys || 2528 fp.selector == LabelKeySet_FieldPathSelectorVersions 2529 } 2530 2531 func (fp *LabelKeySet_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2532 return []gotenobject.FieldPath{fp} 2533 } 2534 2535 func (fp *LabelKeySet_FieldTerminalPath) WithIValue(value interface{}) LabelKeySet_FieldPathValue { 2536 switch fp.selector { 2537 case LabelKeySet_FieldPathSelectorLabelKeys: 2538 return &LabelKeySet_FieldTerminalPathValue{LabelKeySet_FieldTerminalPath: *fp, value: value.([]string)} 2539 case LabelKeySet_FieldPathSelectorVersions: 2540 return &LabelKeySet_FieldTerminalPathValue{LabelKeySet_FieldTerminalPath: *fp, value: value.([]string)} 2541 default: 2542 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2543 } 2544 } 2545 2546 func (fp *LabelKeySet_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 2547 return fp.WithIValue(value) 2548 } 2549 2550 func (fp *LabelKeySet_FieldTerminalPath) WithIArrayOfValues(values interface{}) LabelKeySet_FieldPathArrayOfValues { 2551 fpaov := &LabelKeySet_FieldTerminalPathArrayOfValues{LabelKeySet_FieldTerminalPath: *fp} 2552 switch fp.selector { 2553 case LabelKeySet_FieldPathSelectorLabelKeys: 2554 return &LabelKeySet_FieldTerminalPathArrayOfValues{LabelKeySet_FieldTerminalPath: *fp, values: values.([][]string)} 2555 case LabelKeySet_FieldPathSelectorVersions: 2556 return &LabelKeySet_FieldTerminalPathArrayOfValues{LabelKeySet_FieldTerminalPath: *fp, values: values.([][]string)} 2557 default: 2558 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2559 } 2560 return fpaov 2561 } 2562 2563 func (fp *LabelKeySet_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 2564 return fp.WithIArrayOfValues(values) 2565 } 2566 2567 func (fp *LabelKeySet_FieldTerminalPath) WithIArrayItemValue(value interface{}) LabelKeySet_FieldPathArrayItemValue { 2568 switch fp.selector { 2569 case LabelKeySet_FieldPathSelectorLabelKeys: 2570 return &LabelKeySet_FieldTerminalPathArrayItemValue{LabelKeySet_FieldTerminalPath: *fp, value: value.(string)} 2571 case LabelKeySet_FieldPathSelectorVersions: 2572 return &LabelKeySet_FieldTerminalPathArrayItemValue{LabelKeySet_FieldTerminalPath: *fp, value: value.(string)} 2573 default: 2574 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector)) 2575 } 2576 } 2577 2578 func (fp *LabelKeySet_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 2579 return fp.WithIArrayItemValue(value) 2580 } 2581 2582 // LabelKeySet_FieldPathValue allows storing values for LabelKeySet fields according to their type 2583 type LabelKeySet_FieldPathValue interface { 2584 LabelKeySet_FieldPath 2585 gotenobject.FieldPathValue 2586 SetTo(target **LabelKeySet) 2587 CompareWith(*LabelKeySet) (cmp int, comparable bool) 2588 } 2589 2590 func ParseLabelKeySet_FieldPathValue(pathStr, valueStr string) (LabelKeySet_FieldPathValue, error) { 2591 fp, err := ParseLabelKeySet_FieldPath(pathStr) 2592 if err != nil { 2593 return nil, err 2594 } 2595 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 2596 if err != nil { 2597 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelKeySet field path value from %s: %v", valueStr, err) 2598 } 2599 return fpv.(LabelKeySet_FieldPathValue), nil 2600 } 2601 2602 func MustParseLabelKeySet_FieldPathValue(pathStr, valueStr string) LabelKeySet_FieldPathValue { 2603 fpv, err := ParseLabelKeySet_FieldPathValue(pathStr, valueStr) 2604 if err != nil { 2605 panic(err) 2606 } 2607 return fpv 2608 } 2609 2610 type LabelKeySet_FieldTerminalPathValue struct { 2611 LabelKeySet_FieldTerminalPath 2612 value interface{} 2613 } 2614 2615 var _ LabelKeySet_FieldPathValue = (*LabelKeySet_FieldTerminalPathValue)(nil) 2616 2617 // GetRawValue returns raw value stored under selected path for 'LabelKeySet' as interface{} 2618 func (fpv *LabelKeySet_FieldTerminalPathValue) GetRawValue() interface{} { 2619 return fpv.value 2620 } 2621 func (fpv *LabelKeySet_FieldTerminalPathValue) AsLabelKeysValue() ([]string, bool) { 2622 res, ok := fpv.value.([]string) 2623 return res, ok 2624 } 2625 func (fpv *LabelKeySet_FieldTerminalPathValue) AsVersionsValue() ([]string, bool) { 2626 res, ok := fpv.value.([]string) 2627 return res, ok 2628 } 2629 2630 // SetTo stores value for selected field for object LabelKeySet 2631 func (fpv *LabelKeySet_FieldTerminalPathValue) SetTo(target **LabelKeySet) { 2632 if *target == nil { 2633 *target = new(LabelKeySet) 2634 } 2635 switch fpv.selector { 2636 case LabelKeySet_FieldPathSelectorLabelKeys: 2637 (*target).LabelKeys = fpv.value.([]string) 2638 case LabelKeySet_FieldPathSelectorVersions: 2639 (*target).Versions = fpv.value.([]string) 2640 default: 2641 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fpv.selector)) 2642 } 2643 } 2644 2645 func (fpv *LabelKeySet_FieldTerminalPathValue) SetToRaw(target proto.Message) { 2646 typedObject := target.(*LabelKeySet) 2647 fpv.SetTo(&typedObject) 2648 } 2649 2650 // CompareWith compares value in the 'LabelKeySet_FieldTerminalPathValue' with the value under path in 'LabelKeySet'. 2651 func (fpv *LabelKeySet_FieldTerminalPathValue) CompareWith(source *LabelKeySet) (int, bool) { 2652 switch fpv.selector { 2653 case LabelKeySet_FieldPathSelectorLabelKeys: 2654 return 0, false 2655 case LabelKeySet_FieldPathSelectorVersions: 2656 return 0, false 2657 default: 2658 panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fpv.selector)) 2659 } 2660 } 2661 2662 func (fpv *LabelKeySet_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 2663 return fpv.CompareWith(source.(*LabelKeySet)) 2664 } 2665 2666 // LabelKeySet_FieldPathArrayItemValue allows storing single item in Path-specific values for LabelKeySet according to their type 2667 // Present only for array (repeated) types. 2668 type LabelKeySet_FieldPathArrayItemValue interface { 2669 gotenobject.FieldPathArrayItemValue 2670 LabelKeySet_FieldPath 2671 ContainsValue(*LabelKeySet) bool 2672 } 2673 2674 // ParseLabelKeySet_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 2675 func ParseLabelKeySet_FieldPathArrayItemValue(pathStr, valueStr string) (LabelKeySet_FieldPathArrayItemValue, error) { 2676 fp, err := ParseLabelKeySet_FieldPath(pathStr) 2677 if err != nil { 2678 return nil, err 2679 } 2680 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 2681 if err != nil { 2682 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelKeySet field path array item value from %s: %v", valueStr, err) 2683 } 2684 return fpaiv.(LabelKeySet_FieldPathArrayItemValue), nil 2685 } 2686 2687 func MustParseLabelKeySet_FieldPathArrayItemValue(pathStr, valueStr string) LabelKeySet_FieldPathArrayItemValue { 2688 fpaiv, err := ParseLabelKeySet_FieldPathArrayItemValue(pathStr, valueStr) 2689 if err != nil { 2690 panic(err) 2691 } 2692 return fpaiv 2693 } 2694 2695 type LabelKeySet_FieldTerminalPathArrayItemValue struct { 2696 LabelKeySet_FieldTerminalPath 2697 value interface{} 2698 } 2699 2700 var _ LabelKeySet_FieldPathArrayItemValue = (*LabelKeySet_FieldTerminalPathArrayItemValue)(nil) 2701 2702 // GetRawValue returns stored element value for array in object LabelKeySet as interface{} 2703 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 2704 return fpaiv.value 2705 } 2706 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) AsLabelKeysItemValue() (string, bool) { 2707 res, ok := fpaiv.value.(string) 2708 return res, ok 2709 } 2710 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) AsVersionsItemValue() (string, bool) { 2711 res, ok := fpaiv.value.(string) 2712 return res, ok 2713 } 2714 2715 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) GetSingle(source *LabelKeySet) (interface{}, bool) { 2716 return nil, false 2717 } 2718 2719 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 2720 return fpaiv.GetSingle(source.(*LabelKeySet)) 2721 } 2722 2723 // Contains returns a boolean indicating if value that is being held is present in given 'LabelKeySet' 2724 func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) ContainsValue(source *LabelKeySet) bool { 2725 slice := fpaiv.LabelKeySet_FieldTerminalPath.Get(source) 2726 for _, v := range slice { 2727 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 2728 if proto.Equal(asProtoMsg, v.(proto.Message)) { 2729 return true 2730 } 2731 } else if reflect.DeepEqual(v, fpaiv.value) { 2732 return true 2733 } 2734 } 2735 return false 2736 } 2737 2738 // LabelKeySet_FieldPathArrayOfValues allows storing slice of values for LabelKeySet fields according to their type 2739 type LabelKeySet_FieldPathArrayOfValues interface { 2740 gotenobject.FieldPathArrayOfValues 2741 LabelKeySet_FieldPath 2742 } 2743 2744 func ParseLabelKeySet_FieldPathArrayOfValues(pathStr, valuesStr string) (LabelKeySet_FieldPathArrayOfValues, error) { 2745 fp, err := ParseLabelKeySet_FieldPath(pathStr) 2746 if err != nil { 2747 return nil, err 2748 } 2749 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 2750 if err != nil { 2751 return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelKeySet field path array of values from %s: %v", valuesStr, err) 2752 } 2753 return fpaov.(LabelKeySet_FieldPathArrayOfValues), nil 2754 } 2755 2756 func MustParseLabelKeySet_FieldPathArrayOfValues(pathStr, valuesStr string) LabelKeySet_FieldPathArrayOfValues { 2757 fpaov, err := ParseLabelKeySet_FieldPathArrayOfValues(pathStr, valuesStr) 2758 if err != nil { 2759 panic(err) 2760 } 2761 return fpaov 2762 } 2763 2764 type LabelKeySet_FieldTerminalPathArrayOfValues struct { 2765 LabelKeySet_FieldTerminalPath 2766 values interface{} 2767 } 2768 2769 var _ LabelKeySet_FieldPathArrayOfValues = (*LabelKeySet_FieldTerminalPathArrayOfValues)(nil) 2770 2771 func (fpaov *LabelKeySet_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 2772 switch fpaov.selector { 2773 case LabelKeySet_FieldPathSelectorLabelKeys: 2774 for _, v := range fpaov.values.([][]string) { 2775 values = append(values, v) 2776 } 2777 case LabelKeySet_FieldPathSelectorVersions: 2778 for _, v := range fpaov.values.([][]string) { 2779 values = append(values, v) 2780 } 2781 } 2782 return 2783 } 2784 func (fpaov *LabelKeySet_FieldTerminalPathArrayOfValues) AsLabelKeysArrayOfValues() ([][]string, bool) { 2785 res, ok := fpaov.values.([][]string) 2786 return res, ok 2787 } 2788 func (fpaov *LabelKeySet_FieldTerminalPathArrayOfValues) AsVersionsArrayOfValues() ([][]string, bool) { 2789 res, ok := fpaov.values.([][]string) 2790 return res, ok 2791 } 2792 2793 // FieldPath provides implementation to handle 2794 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 2795 type TimeInterval_FieldPath interface { 2796 gotenobject.FieldPath 2797 Selector() TimeInterval_FieldPathSelector 2798 Get(source *TimeInterval) []interface{} 2799 GetSingle(source *TimeInterval) (interface{}, bool) 2800 ClearValue(item *TimeInterval) 2801 2802 // Those methods build corresponding TimeInterval_FieldPathValue 2803 // (or array of values) and holds passed value. Panics if injected type is incorrect. 2804 WithIValue(value interface{}) TimeInterval_FieldPathValue 2805 WithIArrayOfValues(values interface{}) TimeInterval_FieldPathArrayOfValues 2806 WithIArrayItemValue(value interface{}) TimeInterval_FieldPathArrayItemValue 2807 } 2808 2809 type TimeInterval_FieldPathSelector int32 2810 2811 const ( 2812 TimeInterval_FieldPathSelectorEndTime TimeInterval_FieldPathSelector = 0 2813 TimeInterval_FieldPathSelectorStartTime TimeInterval_FieldPathSelector = 1 2814 ) 2815 2816 func (s TimeInterval_FieldPathSelector) String() string { 2817 switch s { 2818 case TimeInterval_FieldPathSelectorEndTime: 2819 return "end_time" 2820 case TimeInterval_FieldPathSelectorStartTime: 2821 return "start_time" 2822 default: 2823 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", s)) 2824 } 2825 } 2826 2827 func BuildTimeInterval_FieldPath(fp gotenobject.RawFieldPath) (TimeInterval_FieldPath, error) { 2828 if len(fp) == 0 { 2829 return nil, status.Error(codes.InvalidArgument, "empty field path for object TimeInterval") 2830 } 2831 if len(fp) == 1 { 2832 switch fp[0] { 2833 case "end_time", "endTime", "end-time": 2834 return &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorEndTime}, nil 2835 case "start_time", "startTime", "start-time": 2836 return &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorStartTime}, nil 2837 } 2838 } 2839 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object TimeInterval", fp) 2840 } 2841 2842 func ParseTimeInterval_FieldPath(rawField string) (TimeInterval_FieldPath, error) { 2843 fp, err := gotenobject.ParseRawFieldPath(rawField) 2844 if err != nil { 2845 return nil, err 2846 } 2847 return BuildTimeInterval_FieldPath(fp) 2848 } 2849 2850 func MustParseTimeInterval_FieldPath(rawField string) TimeInterval_FieldPath { 2851 fp, err := ParseTimeInterval_FieldPath(rawField) 2852 if err != nil { 2853 panic(err) 2854 } 2855 return fp 2856 } 2857 2858 type TimeInterval_FieldTerminalPath struct { 2859 selector TimeInterval_FieldPathSelector 2860 } 2861 2862 var _ TimeInterval_FieldPath = (*TimeInterval_FieldTerminalPath)(nil) 2863 2864 func (fp *TimeInterval_FieldTerminalPath) Selector() TimeInterval_FieldPathSelector { 2865 return fp.selector 2866 } 2867 2868 // String returns path representation in proto convention 2869 func (fp *TimeInterval_FieldTerminalPath) String() string { 2870 return fp.selector.String() 2871 } 2872 2873 // JSONString returns path representation is JSON convention 2874 func (fp *TimeInterval_FieldTerminalPath) JSONString() string { 2875 return strcase.ToLowerCamel(fp.String()) 2876 } 2877 2878 // Get returns all values pointed by specific field from source TimeInterval 2879 func (fp *TimeInterval_FieldTerminalPath) Get(source *TimeInterval) (values []interface{}) { 2880 if source != nil { 2881 switch fp.selector { 2882 case TimeInterval_FieldPathSelectorEndTime: 2883 if source.EndTime != nil { 2884 values = append(values, source.EndTime) 2885 } 2886 case TimeInterval_FieldPathSelectorStartTime: 2887 if source.StartTime != nil { 2888 values = append(values, source.StartTime) 2889 } 2890 default: 2891 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 2892 } 2893 } 2894 return 2895 } 2896 2897 func (fp *TimeInterval_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 2898 return fp.Get(source.(*TimeInterval)) 2899 } 2900 2901 // GetSingle returns value pointed by specific field of from source TimeInterval 2902 func (fp *TimeInterval_FieldTerminalPath) GetSingle(source *TimeInterval) (interface{}, bool) { 2903 switch fp.selector { 2904 case TimeInterval_FieldPathSelectorEndTime: 2905 res := source.GetEndTime() 2906 return res, res != nil 2907 case TimeInterval_FieldPathSelectorStartTime: 2908 res := source.GetStartTime() 2909 return res, res != nil 2910 default: 2911 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 2912 } 2913 } 2914 2915 func (fp *TimeInterval_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 2916 return fp.GetSingle(source.(*TimeInterval)) 2917 } 2918 2919 // GetDefault returns a default value of the field type 2920 func (fp *TimeInterval_FieldTerminalPath) GetDefault() interface{} { 2921 switch fp.selector { 2922 case TimeInterval_FieldPathSelectorEndTime: 2923 return (*timestamppb.Timestamp)(nil) 2924 case TimeInterval_FieldPathSelectorStartTime: 2925 return (*timestamppb.Timestamp)(nil) 2926 default: 2927 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 2928 } 2929 } 2930 2931 func (fp *TimeInterval_FieldTerminalPath) ClearValue(item *TimeInterval) { 2932 if item != nil { 2933 switch fp.selector { 2934 case TimeInterval_FieldPathSelectorEndTime: 2935 item.EndTime = nil 2936 case TimeInterval_FieldPathSelectorStartTime: 2937 item.StartTime = nil 2938 default: 2939 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 2940 } 2941 } 2942 } 2943 2944 func (fp *TimeInterval_FieldTerminalPath) ClearValueRaw(item proto.Message) { 2945 fp.ClearValue(item.(*TimeInterval)) 2946 } 2947 2948 // IsLeaf - whether field path is holds simple value 2949 func (fp *TimeInterval_FieldTerminalPath) IsLeaf() bool { 2950 return fp.selector == TimeInterval_FieldPathSelectorEndTime || 2951 fp.selector == TimeInterval_FieldPathSelectorStartTime 2952 } 2953 2954 func (fp *TimeInterval_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 2955 return []gotenobject.FieldPath{fp} 2956 } 2957 2958 func (fp *TimeInterval_FieldTerminalPath) WithIValue(value interface{}) TimeInterval_FieldPathValue { 2959 switch fp.selector { 2960 case TimeInterval_FieldPathSelectorEndTime: 2961 return &TimeInterval_FieldTerminalPathValue{TimeInterval_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)} 2962 case TimeInterval_FieldPathSelectorStartTime: 2963 return &TimeInterval_FieldTerminalPathValue{TimeInterval_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)} 2964 default: 2965 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 2966 } 2967 } 2968 2969 func (fp *TimeInterval_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 2970 return fp.WithIValue(value) 2971 } 2972 2973 func (fp *TimeInterval_FieldTerminalPath) WithIArrayOfValues(values interface{}) TimeInterval_FieldPathArrayOfValues { 2974 fpaov := &TimeInterval_FieldTerminalPathArrayOfValues{TimeInterval_FieldTerminalPath: *fp} 2975 switch fp.selector { 2976 case TimeInterval_FieldPathSelectorEndTime: 2977 return &TimeInterval_FieldTerminalPathArrayOfValues{TimeInterval_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)} 2978 case TimeInterval_FieldPathSelectorStartTime: 2979 return &TimeInterval_FieldTerminalPathArrayOfValues{TimeInterval_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)} 2980 default: 2981 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 2982 } 2983 return fpaov 2984 } 2985 2986 func (fp *TimeInterval_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 2987 return fp.WithIArrayOfValues(values) 2988 } 2989 2990 func (fp *TimeInterval_FieldTerminalPath) WithIArrayItemValue(value interface{}) TimeInterval_FieldPathArrayItemValue { 2991 switch fp.selector { 2992 default: 2993 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector)) 2994 } 2995 } 2996 2997 func (fp *TimeInterval_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 2998 return fp.WithIArrayItemValue(value) 2999 } 3000 3001 // TimeInterval_FieldPathValue allows storing values for TimeInterval fields according to their type 3002 type TimeInterval_FieldPathValue interface { 3003 TimeInterval_FieldPath 3004 gotenobject.FieldPathValue 3005 SetTo(target **TimeInterval) 3006 CompareWith(*TimeInterval) (cmp int, comparable bool) 3007 } 3008 3009 func ParseTimeInterval_FieldPathValue(pathStr, valueStr string) (TimeInterval_FieldPathValue, error) { 3010 fp, err := ParseTimeInterval_FieldPath(pathStr) 3011 if err != nil { 3012 return nil, err 3013 } 3014 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 3015 if err != nil { 3016 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeInterval field path value from %s: %v", valueStr, err) 3017 } 3018 return fpv.(TimeInterval_FieldPathValue), nil 3019 } 3020 3021 func MustParseTimeInterval_FieldPathValue(pathStr, valueStr string) TimeInterval_FieldPathValue { 3022 fpv, err := ParseTimeInterval_FieldPathValue(pathStr, valueStr) 3023 if err != nil { 3024 panic(err) 3025 } 3026 return fpv 3027 } 3028 3029 type TimeInterval_FieldTerminalPathValue struct { 3030 TimeInterval_FieldTerminalPath 3031 value interface{} 3032 } 3033 3034 var _ TimeInterval_FieldPathValue = (*TimeInterval_FieldTerminalPathValue)(nil) 3035 3036 // GetRawValue returns raw value stored under selected path for 'TimeInterval' as interface{} 3037 func (fpv *TimeInterval_FieldTerminalPathValue) GetRawValue() interface{} { 3038 return fpv.value 3039 } 3040 func (fpv *TimeInterval_FieldTerminalPathValue) AsEndTimeValue() (*timestamppb.Timestamp, bool) { 3041 res, ok := fpv.value.(*timestamppb.Timestamp) 3042 return res, ok 3043 } 3044 func (fpv *TimeInterval_FieldTerminalPathValue) AsStartTimeValue() (*timestamppb.Timestamp, bool) { 3045 res, ok := fpv.value.(*timestamppb.Timestamp) 3046 return res, ok 3047 } 3048 3049 // SetTo stores value for selected field for object TimeInterval 3050 func (fpv *TimeInterval_FieldTerminalPathValue) SetTo(target **TimeInterval) { 3051 if *target == nil { 3052 *target = new(TimeInterval) 3053 } 3054 switch fpv.selector { 3055 case TimeInterval_FieldPathSelectorEndTime: 3056 (*target).EndTime = fpv.value.(*timestamppb.Timestamp) 3057 case TimeInterval_FieldPathSelectorStartTime: 3058 (*target).StartTime = fpv.value.(*timestamppb.Timestamp) 3059 default: 3060 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fpv.selector)) 3061 } 3062 } 3063 3064 func (fpv *TimeInterval_FieldTerminalPathValue) SetToRaw(target proto.Message) { 3065 typedObject := target.(*TimeInterval) 3066 fpv.SetTo(&typedObject) 3067 } 3068 3069 // CompareWith compares value in the 'TimeInterval_FieldTerminalPathValue' with the value under path in 'TimeInterval'. 3070 func (fpv *TimeInterval_FieldTerminalPathValue) CompareWith(source *TimeInterval) (int, bool) { 3071 switch fpv.selector { 3072 case TimeInterval_FieldPathSelectorEndTime: 3073 leftValue := fpv.value.(*timestamppb.Timestamp) 3074 rightValue := source.GetEndTime() 3075 if leftValue == nil { 3076 if rightValue != nil { 3077 return -1, true 3078 } 3079 return 0, true 3080 } 3081 if rightValue == nil { 3082 return 1, true 3083 } 3084 if leftValue.AsTime().Equal(rightValue.AsTime()) { 3085 return 0, true 3086 } else if leftValue.AsTime().Before(rightValue.AsTime()) { 3087 return -1, true 3088 } else { 3089 return 1, true 3090 } 3091 case TimeInterval_FieldPathSelectorStartTime: 3092 leftValue := fpv.value.(*timestamppb.Timestamp) 3093 rightValue := source.GetStartTime() 3094 if leftValue == nil { 3095 if rightValue != nil { 3096 return -1, true 3097 } 3098 return 0, true 3099 } 3100 if rightValue == nil { 3101 return 1, true 3102 } 3103 if leftValue.AsTime().Equal(rightValue.AsTime()) { 3104 return 0, true 3105 } else if leftValue.AsTime().Before(rightValue.AsTime()) { 3106 return -1, true 3107 } else { 3108 return 1, true 3109 } 3110 default: 3111 panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fpv.selector)) 3112 } 3113 } 3114 3115 func (fpv *TimeInterval_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 3116 return fpv.CompareWith(source.(*TimeInterval)) 3117 } 3118 3119 // TimeInterval_FieldPathArrayItemValue allows storing single item in Path-specific values for TimeInterval according to their type 3120 // Present only for array (repeated) types. 3121 type TimeInterval_FieldPathArrayItemValue interface { 3122 gotenobject.FieldPathArrayItemValue 3123 TimeInterval_FieldPath 3124 ContainsValue(*TimeInterval) bool 3125 } 3126 3127 // ParseTimeInterval_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 3128 func ParseTimeInterval_FieldPathArrayItemValue(pathStr, valueStr string) (TimeInterval_FieldPathArrayItemValue, error) { 3129 fp, err := ParseTimeInterval_FieldPath(pathStr) 3130 if err != nil { 3131 return nil, err 3132 } 3133 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 3134 if err != nil { 3135 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeInterval field path array item value from %s: %v", valueStr, err) 3136 } 3137 return fpaiv.(TimeInterval_FieldPathArrayItemValue), nil 3138 } 3139 3140 func MustParseTimeInterval_FieldPathArrayItemValue(pathStr, valueStr string) TimeInterval_FieldPathArrayItemValue { 3141 fpaiv, err := ParseTimeInterval_FieldPathArrayItemValue(pathStr, valueStr) 3142 if err != nil { 3143 panic(err) 3144 } 3145 return fpaiv 3146 } 3147 3148 type TimeInterval_FieldTerminalPathArrayItemValue struct { 3149 TimeInterval_FieldTerminalPath 3150 value interface{} 3151 } 3152 3153 var _ TimeInterval_FieldPathArrayItemValue = (*TimeInterval_FieldTerminalPathArrayItemValue)(nil) 3154 3155 // GetRawValue returns stored element value for array in object TimeInterval as interface{} 3156 func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 3157 return fpaiv.value 3158 } 3159 3160 func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) GetSingle(source *TimeInterval) (interface{}, bool) { 3161 return nil, false 3162 } 3163 3164 func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 3165 return fpaiv.GetSingle(source.(*TimeInterval)) 3166 } 3167 3168 // Contains returns a boolean indicating if value that is being held is present in given 'TimeInterval' 3169 func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) ContainsValue(source *TimeInterval) bool { 3170 slice := fpaiv.TimeInterval_FieldTerminalPath.Get(source) 3171 for _, v := range slice { 3172 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 3173 if proto.Equal(asProtoMsg, v.(proto.Message)) { 3174 return true 3175 } 3176 } else if reflect.DeepEqual(v, fpaiv.value) { 3177 return true 3178 } 3179 } 3180 return false 3181 } 3182 3183 // TimeInterval_FieldPathArrayOfValues allows storing slice of values for TimeInterval fields according to their type 3184 type TimeInterval_FieldPathArrayOfValues interface { 3185 gotenobject.FieldPathArrayOfValues 3186 TimeInterval_FieldPath 3187 } 3188 3189 func ParseTimeInterval_FieldPathArrayOfValues(pathStr, valuesStr string) (TimeInterval_FieldPathArrayOfValues, error) { 3190 fp, err := ParseTimeInterval_FieldPath(pathStr) 3191 if err != nil { 3192 return nil, err 3193 } 3194 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 3195 if err != nil { 3196 return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeInterval field path array of values from %s: %v", valuesStr, err) 3197 } 3198 return fpaov.(TimeInterval_FieldPathArrayOfValues), nil 3199 } 3200 3201 func MustParseTimeInterval_FieldPathArrayOfValues(pathStr, valuesStr string) TimeInterval_FieldPathArrayOfValues { 3202 fpaov, err := ParseTimeInterval_FieldPathArrayOfValues(pathStr, valuesStr) 3203 if err != nil { 3204 panic(err) 3205 } 3206 return fpaov 3207 } 3208 3209 type TimeInterval_FieldTerminalPathArrayOfValues struct { 3210 TimeInterval_FieldTerminalPath 3211 values interface{} 3212 } 3213 3214 var _ TimeInterval_FieldPathArrayOfValues = (*TimeInterval_FieldTerminalPathArrayOfValues)(nil) 3215 3216 func (fpaov *TimeInterval_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 3217 switch fpaov.selector { 3218 case TimeInterval_FieldPathSelectorEndTime: 3219 for _, v := range fpaov.values.([]*timestamppb.Timestamp) { 3220 values = append(values, v) 3221 } 3222 case TimeInterval_FieldPathSelectorStartTime: 3223 for _, v := range fpaov.values.([]*timestamppb.Timestamp) { 3224 values = append(values, v) 3225 } 3226 } 3227 return 3228 } 3229 func (fpaov *TimeInterval_FieldTerminalPathArrayOfValues) AsEndTimeArrayOfValues() ([]*timestamppb.Timestamp, bool) { 3230 res, ok := fpaov.values.([]*timestamppb.Timestamp) 3231 return res, ok 3232 } 3233 func (fpaov *TimeInterval_FieldTerminalPathArrayOfValues) AsStartTimeArrayOfValues() ([]*timestamppb.Timestamp, bool) { 3234 res, ok := fpaov.values.([]*timestamppb.Timestamp) 3235 return res, ok 3236 }