github.com/cloudwan/edgelq-sdk@v1.15.4/limits/resources/v1/common/common.pb.fieldpath.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/limits/proto/v1/common.proto 3 // DO NOT EDIT!!! 4 5 package common 6 7 import ( 8 "encoding/json" 9 "fmt" 10 "reflect" 11 "strings" 12 "time" 13 14 "google.golang.org/grpc/codes" 15 "google.golang.org/grpc/status" 16 "google.golang.org/protobuf/encoding/protojson" 17 "google.golang.org/protobuf/proto" 18 "google.golang.org/protobuf/reflect/protoregistry" 19 20 gotenobject "github.com/cloudwan/goten-sdk/runtime/object" 21 "github.com/cloudwan/goten-sdk/runtime/strcase" 22 ) 23 24 // proto imports 25 import ( 26 plan "github.com/cloudwan/edgelq-sdk/limits/resources/v1/plan" 27 meta_resource "github.com/cloudwan/goten-sdk/meta-service/resources/v1/resource" 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 _ = &plan.Plan{} 51 _ = &meta_resource.Resource{} 52 ) 53 54 // FieldPath provides implementation to handle 55 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 56 type RegionalPlanAssignment_FieldPath interface { 57 gotenobject.FieldPath 58 Selector() RegionalPlanAssignment_FieldPathSelector 59 Get(source *RegionalPlanAssignment) []interface{} 60 GetSingle(source *RegionalPlanAssignment) (interface{}, bool) 61 ClearValue(item *RegionalPlanAssignment) 62 63 // Those methods build corresponding RegionalPlanAssignment_FieldPathValue 64 // (or array of values) and holds passed value. Panics if injected type is incorrect. 65 WithIValue(value interface{}) RegionalPlanAssignment_FieldPathValue 66 WithIArrayOfValues(values interface{}) RegionalPlanAssignment_FieldPathArrayOfValues 67 WithIArrayItemValue(value interface{}) RegionalPlanAssignment_FieldPathArrayItemValue 68 } 69 70 type RegionalPlanAssignment_FieldPathSelector int32 71 72 const ( 73 RegionalPlanAssignment_FieldPathSelectorPlan RegionalPlanAssignment_FieldPathSelector = 0 74 RegionalPlanAssignment_FieldPathSelectorRegion RegionalPlanAssignment_FieldPathSelector = 1 75 RegionalPlanAssignment_FieldPathSelectorPlanGeneration RegionalPlanAssignment_FieldPathSelector = 2 76 ) 77 78 func (s RegionalPlanAssignment_FieldPathSelector) String() string { 79 switch s { 80 case RegionalPlanAssignment_FieldPathSelectorPlan: 81 return "plan" 82 case RegionalPlanAssignment_FieldPathSelectorRegion: 83 return "region" 84 case RegionalPlanAssignment_FieldPathSelectorPlanGeneration: 85 return "plan_generation" 86 default: 87 panic(fmt.Sprintf("Invalid selector for RegionalPlanAssignment: %d", s)) 88 } 89 } 90 91 func BuildRegionalPlanAssignment_FieldPath(fp gotenobject.RawFieldPath) (RegionalPlanAssignment_FieldPath, error) { 92 if len(fp) == 0 { 93 return nil, status.Error(codes.InvalidArgument, "empty field path for object RegionalPlanAssignment") 94 } 95 if len(fp) == 1 { 96 switch fp[0] { 97 case "plan": 98 return &RegionalPlanAssignment_FieldTerminalPath{selector: RegionalPlanAssignment_FieldPathSelectorPlan}, nil 99 case "region": 100 return &RegionalPlanAssignment_FieldTerminalPath{selector: RegionalPlanAssignment_FieldPathSelectorRegion}, nil 101 case "plan_generation", "planGeneration", "plan-generation": 102 return &RegionalPlanAssignment_FieldTerminalPath{selector: RegionalPlanAssignment_FieldPathSelectorPlanGeneration}, nil 103 } 104 } 105 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object RegionalPlanAssignment", fp) 106 } 107 108 func ParseRegionalPlanAssignment_FieldPath(rawField string) (RegionalPlanAssignment_FieldPath, error) { 109 fp, err := gotenobject.ParseRawFieldPath(rawField) 110 if err != nil { 111 return nil, err 112 } 113 return BuildRegionalPlanAssignment_FieldPath(fp) 114 } 115 116 func MustParseRegionalPlanAssignment_FieldPath(rawField string) RegionalPlanAssignment_FieldPath { 117 fp, err := ParseRegionalPlanAssignment_FieldPath(rawField) 118 if err != nil { 119 panic(err) 120 } 121 return fp 122 } 123 124 type RegionalPlanAssignment_FieldTerminalPath struct { 125 selector RegionalPlanAssignment_FieldPathSelector 126 } 127 128 var _ RegionalPlanAssignment_FieldPath = (*RegionalPlanAssignment_FieldTerminalPath)(nil) 129 130 func (fp *RegionalPlanAssignment_FieldTerminalPath) Selector() RegionalPlanAssignment_FieldPathSelector { 131 return fp.selector 132 } 133 134 // String returns path representation in proto convention 135 func (fp *RegionalPlanAssignment_FieldTerminalPath) String() string { 136 return fp.selector.String() 137 } 138 139 // JSONString returns path representation is JSON convention 140 func (fp *RegionalPlanAssignment_FieldTerminalPath) JSONString() string { 141 return strcase.ToLowerCamel(fp.String()) 142 } 143 144 // Get returns all values pointed by specific field from source RegionalPlanAssignment 145 func (fp *RegionalPlanAssignment_FieldTerminalPath) Get(source *RegionalPlanAssignment) (values []interface{}) { 146 if source != nil { 147 switch fp.selector { 148 case RegionalPlanAssignment_FieldPathSelectorPlan: 149 if source.Plan != nil { 150 values = append(values, source.Plan) 151 } 152 case RegionalPlanAssignment_FieldPathSelectorRegion: 153 values = append(values, source.Region) 154 case RegionalPlanAssignment_FieldPathSelectorPlanGeneration: 155 values = append(values, source.PlanGeneration) 156 default: 157 panic(fmt.Sprintf("Invalid selector for RegionalPlanAssignment: %d", fp.selector)) 158 } 159 } 160 return 161 } 162 163 func (fp *RegionalPlanAssignment_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 164 return fp.Get(source.(*RegionalPlanAssignment)) 165 } 166 167 // GetSingle returns value pointed by specific field of from source RegionalPlanAssignment 168 func (fp *RegionalPlanAssignment_FieldTerminalPath) GetSingle(source *RegionalPlanAssignment) (interface{}, bool) { 169 switch fp.selector { 170 case RegionalPlanAssignment_FieldPathSelectorPlan: 171 res := source.GetPlan() 172 return res, res != nil 173 case RegionalPlanAssignment_FieldPathSelectorRegion: 174 return source.GetRegion(), source != nil 175 case RegionalPlanAssignment_FieldPathSelectorPlanGeneration: 176 return source.GetPlanGeneration(), source != nil 177 default: 178 panic(fmt.Sprintf("Invalid selector for RegionalPlanAssignment: %d", fp.selector)) 179 } 180 } 181 182 func (fp *RegionalPlanAssignment_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 183 return fp.GetSingle(source.(*RegionalPlanAssignment)) 184 } 185 186 // GetDefault returns a default value of the field type 187 func (fp *RegionalPlanAssignment_FieldTerminalPath) GetDefault() interface{} { 188 switch fp.selector { 189 case RegionalPlanAssignment_FieldPathSelectorPlan: 190 return (*plan.Reference)(nil) 191 case RegionalPlanAssignment_FieldPathSelectorRegion: 192 return "" 193 case RegionalPlanAssignment_FieldPathSelectorPlanGeneration: 194 return int64(0) 195 default: 196 panic(fmt.Sprintf("Invalid selector for RegionalPlanAssignment: %d", fp.selector)) 197 } 198 } 199 200 func (fp *RegionalPlanAssignment_FieldTerminalPath) ClearValue(item *RegionalPlanAssignment) { 201 if item != nil { 202 switch fp.selector { 203 case RegionalPlanAssignment_FieldPathSelectorPlan: 204 item.Plan = nil 205 case RegionalPlanAssignment_FieldPathSelectorRegion: 206 item.Region = "" 207 case RegionalPlanAssignment_FieldPathSelectorPlanGeneration: 208 item.PlanGeneration = int64(0) 209 default: 210 panic(fmt.Sprintf("Invalid selector for RegionalPlanAssignment: %d", fp.selector)) 211 } 212 } 213 } 214 215 func (fp *RegionalPlanAssignment_FieldTerminalPath) ClearValueRaw(item proto.Message) { 216 fp.ClearValue(item.(*RegionalPlanAssignment)) 217 } 218 219 // IsLeaf - whether field path is holds simple value 220 func (fp *RegionalPlanAssignment_FieldTerminalPath) IsLeaf() bool { 221 return fp.selector == RegionalPlanAssignment_FieldPathSelectorPlan || 222 fp.selector == RegionalPlanAssignment_FieldPathSelectorRegion || 223 fp.selector == RegionalPlanAssignment_FieldPathSelectorPlanGeneration 224 } 225 226 func (fp *RegionalPlanAssignment_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 227 return []gotenobject.FieldPath{fp} 228 } 229 230 func (fp *RegionalPlanAssignment_FieldTerminalPath) WithIValue(value interface{}) RegionalPlanAssignment_FieldPathValue { 231 switch fp.selector { 232 case RegionalPlanAssignment_FieldPathSelectorPlan: 233 return &RegionalPlanAssignment_FieldTerminalPathValue{RegionalPlanAssignment_FieldTerminalPath: *fp, value: value.(*plan.Reference)} 234 case RegionalPlanAssignment_FieldPathSelectorRegion: 235 return &RegionalPlanAssignment_FieldTerminalPathValue{RegionalPlanAssignment_FieldTerminalPath: *fp, value: value.(string)} 236 case RegionalPlanAssignment_FieldPathSelectorPlanGeneration: 237 return &RegionalPlanAssignment_FieldTerminalPathValue{RegionalPlanAssignment_FieldTerminalPath: *fp, value: value.(int64)} 238 default: 239 panic(fmt.Sprintf("Invalid selector for RegionalPlanAssignment: %d", fp.selector)) 240 } 241 } 242 243 func (fp *RegionalPlanAssignment_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 244 return fp.WithIValue(value) 245 } 246 247 func (fp *RegionalPlanAssignment_FieldTerminalPath) WithIArrayOfValues(values interface{}) RegionalPlanAssignment_FieldPathArrayOfValues { 248 fpaov := &RegionalPlanAssignment_FieldTerminalPathArrayOfValues{RegionalPlanAssignment_FieldTerminalPath: *fp} 249 switch fp.selector { 250 case RegionalPlanAssignment_FieldPathSelectorPlan: 251 return &RegionalPlanAssignment_FieldTerminalPathArrayOfValues{RegionalPlanAssignment_FieldTerminalPath: *fp, values: values.([]*plan.Reference)} 252 case RegionalPlanAssignment_FieldPathSelectorRegion: 253 return &RegionalPlanAssignment_FieldTerminalPathArrayOfValues{RegionalPlanAssignment_FieldTerminalPath: *fp, values: values.([]string)} 254 case RegionalPlanAssignment_FieldPathSelectorPlanGeneration: 255 return &RegionalPlanAssignment_FieldTerminalPathArrayOfValues{RegionalPlanAssignment_FieldTerminalPath: *fp, values: values.([]int64)} 256 default: 257 panic(fmt.Sprintf("Invalid selector for RegionalPlanAssignment: %d", fp.selector)) 258 } 259 return fpaov 260 } 261 262 func (fp *RegionalPlanAssignment_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 263 return fp.WithIArrayOfValues(values) 264 } 265 266 func (fp *RegionalPlanAssignment_FieldTerminalPath) WithIArrayItemValue(value interface{}) RegionalPlanAssignment_FieldPathArrayItemValue { 267 switch fp.selector { 268 default: 269 panic(fmt.Sprintf("Invalid selector for RegionalPlanAssignment: %d", fp.selector)) 270 } 271 } 272 273 func (fp *RegionalPlanAssignment_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 274 return fp.WithIArrayItemValue(value) 275 } 276 277 // RegionalPlanAssignment_FieldPathValue allows storing values for RegionalPlanAssignment fields according to their type 278 type RegionalPlanAssignment_FieldPathValue interface { 279 RegionalPlanAssignment_FieldPath 280 gotenobject.FieldPathValue 281 SetTo(target **RegionalPlanAssignment) 282 CompareWith(*RegionalPlanAssignment) (cmp int, comparable bool) 283 } 284 285 func ParseRegionalPlanAssignment_FieldPathValue(pathStr, valueStr string) (RegionalPlanAssignment_FieldPathValue, error) { 286 fp, err := ParseRegionalPlanAssignment_FieldPath(pathStr) 287 if err != nil { 288 return nil, err 289 } 290 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 291 if err != nil { 292 return nil, status.Errorf(codes.InvalidArgument, "error parsing RegionalPlanAssignment field path value from %s: %v", valueStr, err) 293 } 294 return fpv.(RegionalPlanAssignment_FieldPathValue), nil 295 } 296 297 func MustParseRegionalPlanAssignment_FieldPathValue(pathStr, valueStr string) RegionalPlanAssignment_FieldPathValue { 298 fpv, err := ParseRegionalPlanAssignment_FieldPathValue(pathStr, valueStr) 299 if err != nil { 300 panic(err) 301 } 302 return fpv 303 } 304 305 type RegionalPlanAssignment_FieldTerminalPathValue struct { 306 RegionalPlanAssignment_FieldTerminalPath 307 value interface{} 308 } 309 310 var _ RegionalPlanAssignment_FieldPathValue = (*RegionalPlanAssignment_FieldTerminalPathValue)(nil) 311 312 // GetRawValue returns raw value stored under selected path for 'RegionalPlanAssignment' as interface{} 313 func (fpv *RegionalPlanAssignment_FieldTerminalPathValue) GetRawValue() interface{} { 314 return fpv.value 315 } 316 func (fpv *RegionalPlanAssignment_FieldTerminalPathValue) AsPlanValue() (*plan.Reference, bool) { 317 res, ok := fpv.value.(*plan.Reference) 318 return res, ok 319 } 320 func (fpv *RegionalPlanAssignment_FieldTerminalPathValue) AsRegionValue() (string, bool) { 321 res, ok := fpv.value.(string) 322 return res, ok 323 } 324 func (fpv *RegionalPlanAssignment_FieldTerminalPathValue) AsPlanGenerationValue() (int64, bool) { 325 res, ok := fpv.value.(int64) 326 return res, ok 327 } 328 329 // SetTo stores value for selected field for object RegionalPlanAssignment 330 func (fpv *RegionalPlanAssignment_FieldTerminalPathValue) SetTo(target **RegionalPlanAssignment) { 331 if *target == nil { 332 *target = new(RegionalPlanAssignment) 333 } 334 switch fpv.selector { 335 case RegionalPlanAssignment_FieldPathSelectorPlan: 336 (*target).Plan = fpv.value.(*plan.Reference) 337 case RegionalPlanAssignment_FieldPathSelectorRegion: 338 (*target).Region = fpv.value.(string) 339 case RegionalPlanAssignment_FieldPathSelectorPlanGeneration: 340 (*target).PlanGeneration = fpv.value.(int64) 341 default: 342 panic(fmt.Sprintf("Invalid selector for RegionalPlanAssignment: %d", fpv.selector)) 343 } 344 } 345 346 func (fpv *RegionalPlanAssignment_FieldTerminalPathValue) SetToRaw(target proto.Message) { 347 typedObject := target.(*RegionalPlanAssignment) 348 fpv.SetTo(&typedObject) 349 } 350 351 // CompareWith compares value in the 'RegionalPlanAssignment_FieldTerminalPathValue' with the value under path in 'RegionalPlanAssignment'. 352 func (fpv *RegionalPlanAssignment_FieldTerminalPathValue) CompareWith(source *RegionalPlanAssignment) (int, bool) { 353 switch fpv.selector { 354 case RegionalPlanAssignment_FieldPathSelectorPlan: 355 leftValue := fpv.value.(*plan.Reference) 356 rightValue := source.GetPlan() 357 if leftValue == nil { 358 if rightValue != nil { 359 return -1, true 360 } 361 return 0, true 362 } 363 if rightValue == nil { 364 return 1, true 365 } 366 if leftValue.String() == rightValue.String() { 367 return 0, true 368 } else if leftValue.String() < rightValue.String() { 369 return -1, true 370 } else { 371 return 1, true 372 } 373 case RegionalPlanAssignment_FieldPathSelectorRegion: 374 leftValue := fpv.value.(string) 375 rightValue := source.GetRegion() 376 if (leftValue) == (rightValue) { 377 return 0, true 378 } else if (leftValue) < (rightValue) { 379 return -1, true 380 } else { 381 return 1, true 382 } 383 case RegionalPlanAssignment_FieldPathSelectorPlanGeneration: 384 leftValue := fpv.value.(int64) 385 rightValue := source.GetPlanGeneration() 386 if (leftValue) == (rightValue) { 387 return 0, true 388 } else if (leftValue) < (rightValue) { 389 return -1, true 390 } else { 391 return 1, true 392 } 393 default: 394 panic(fmt.Sprintf("Invalid selector for RegionalPlanAssignment: %d", fpv.selector)) 395 } 396 } 397 398 func (fpv *RegionalPlanAssignment_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 399 return fpv.CompareWith(source.(*RegionalPlanAssignment)) 400 } 401 402 // RegionalPlanAssignment_FieldPathArrayItemValue allows storing single item in Path-specific values for RegionalPlanAssignment according to their type 403 // Present only for array (repeated) types. 404 type RegionalPlanAssignment_FieldPathArrayItemValue interface { 405 gotenobject.FieldPathArrayItemValue 406 RegionalPlanAssignment_FieldPath 407 ContainsValue(*RegionalPlanAssignment) bool 408 } 409 410 // ParseRegionalPlanAssignment_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 411 func ParseRegionalPlanAssignment_FieldPathArrayItemValue(pathStr, valueStr string) (RegionalPlanAssignment_FieldPathArrayItemValue, error) { 412 fp, err := ParseRegionalPlanAssignment_FieldPath(pathStr) 413 if err != nil { 414 return nil, err 415 } 416 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 417 if err != nil { 418 return nil, status.Errorf(codes.InvalidArgument, "error parsing RegionalPlanAssignment field path array item value from %s: %v", valueStr, err) 419 } 420 return fpaiv.(RegionalPlanAssignment_FieldPathArrayItemValue), nil 421 } 422 423 func MustParseRegionalPlanAssignment_FieldPathArrayItemValue(pathStr, valueStr string) RegionalPlanAssignment_FieldPathArrayItemValue { 424 fpaiv, err := ParseRegionalPlanAssignment_FieldPathArrayItemValue(pathStr, valueStr) 425 if err != nil { 426 panic(err) 427 } 428 return fpaiv 429 } 430 431 type RegionalPlanAssignment_FieldTerminalPathArrayItemValue struct { 432 RegionalPlanAssignment_FieldTerminalPath 433 value interface{} 434 } 435 436 var _ RegionalPlanAssignment_FieldPathArrayItemValue = (*RegionalPlanAssignment_FieldTerminalPathArrayItemValue)(nil) 437 438 // GetRawValue returns stored element value for array in object RegionalPlanAssignment as interface{} 439 func (fpaiv *RegionalPlanAssignment_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 440 return fpaiv.value 441 } 442 443 func (fpaiv *RegionalPlanAssignment_FieldTerminalPathArrayItemValue) GetSingle(source *RegionalPlanAssignment) (interface{}, bool) { 444 return nil, false 445 } 446 447 func (fpaiv *RegionalPlanAssignment_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 448 return fpaiv.GetSingle(source.(*RegionalPlanAssignment)) 449 } 450 451 // Contains returns a boolean indicating if value that is being held is present in given 'RegionalPlanAssignment' 452 func (fpaiv *RegionalPlanAssignment_FieldTerminalPathArrayItemValue) ContainsValue(source *RegionalPlanAssignment) bool { 453 slice := fpaiv.RegionalPlanAssignment_FieldTerminalPath.Get(source) 454 for _, v := range slice { 455 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 456 if proto.Equal(asProtoMsg, v.(proto.Message)) { 457 return true 458 } 459 } else if reflect.DeepEqual(v, fpaiv.value) { 460 return true 461 } 462 } 463 return false 464 } 465 466 // RegionalPlanAssignment_FieldPathArrayOfValues allows storing slice of values for RegionalPlanAssignment fields according to their type 467 type RegionalPlanAssignment_FieldPathArrayOfValues interface { 468 gotenobject.FieldPathArrayOfValues 469 RegionalPlanAssignment_FieldPath 470 } 471 472 func ParseRegionalPlanAssignment_FieldPathArrayOfValues(pathStr, valuesStr string) (RegionalPlanAssignment_FieldPathArrayOfValues, error) { 473 fp, err := ParseRegionalPlanAssignment_FieldPath(pathStr) 474 if err != nil { 475 return nil, err 476 } 477 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 478 if err != nil { 479 return nil, status.Errorf(codes.InvalidArgument, "error parsing RegionalPlanAssignment field path array of values from %s: %v", valuesStr, err) 480 } 481 return fpaov.(RegionalPlanAssignment_FieldPathArrayOfValues), nil 482 } 483 484 func MustParseRegionalPlanAssignment_FieldPathArrayOfValues(pathStr, valuesStr string) RegionalPlanAssignment_FieldPathArrayOfValues { 485 fpaov, err := ParseRegionalPlanAssignment_FieldPathArrayOfValues(pathStr, valuesStr) 486 if err != nil { 487 panic(err) 488 } 489 return fpaov 490 } 491 492 type RegionalPlanAssignment_FieldTerminalPathArrayOfValues struct { 493 RegionalPlanAssignment_FieldTerminalPath 494 values interface{} 495 } 496 497 var _ RegionalPlanAssignment_FieldPathArrayOfValues = (*RegionalPlanAssignment_FieldTerminalPathArrayOfValues)(nil) 498 499 func (fpaov *RegionalPlanAssignment_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 500 switch fpaov.selector { 501 case RegionalPlanAssignment_FieldPathSelectorPlan: 502 for _, v := range fpaov.values.([]*plan.Reference) { 503 values = append(values, v) 504 } 505 case RegionalPlanAssignment_FieldPathSelectorRegion: 506 for _, v := range fpaov.values.([]string) { 507 values = append(values, v) 508 } 509 case RegionalPlanAssignment_FieldPathSelectorPlanGeneration: 510 for _, v := range fpaov.values.([]int64) { 511 values = append(values, v) 512 } 513 } 514 return 515 } 516 func (fpaov *RegionalPlanAssignment_FieldTerminalPathArrayOfValues) AsPlanArrayOfValues() ([]*plan.Reference, bool) { 517 res, ok := fpaov.values.([]*plan.Reference) 518 return res, ok 519 } 520 func (fpaov *RegionalPlanAssignment_FieldTerminalPathArrayOfValues) AsRegionArrayOfValues() ([]string, bool) { 521 res, ok := fpaov.values.([]string) 522 return res, ok 523 } 524 func (fpaov *RegionalPlanAssignment_FieldTerminalPathArrayOfValues) AsPlanGenerationArrayOfValues() ([]int64, bool) { 525 res, ok := fpaov.values.([]int64) 526 return res, ok 527 } 528 529 // FieldPath provides implementation to handle 530 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 531 type Allowance_FieldPath interface { 532 gotenobject.FieldPath 533 Selector() Allowance_FieldPathSelector 534 Get(source *Allowance) []interface{} 535 GetSingle(source *Allowance) (interface{}, bool) 536 ClearValue(item *Allowance) 537 538 // Those methods build corresponding Allowance_FieldPathValue 539 // (or array of values) and holds passed value. Panics if injected type is incorrect. 540 WithIValue(value interface{}) Allowance_FieldPathValue 541 WithIArrayOfValues(values interface{}) Allowance_FieldPathArrayOfValues 542 WithIArrayItemValue(value interface{}) Allowance_FieldPathArrayItemValue 543 } 544 545 type Allowance_FieldPathSelector int32 546 547 const ( 548 Allowance_FieldPathSelectorResource Allowance_FieldPathSelector = 0 549 Allowance_FieldPathSelectorValue Allowance_FieldPathSelector = 1 550 Allowance_FieldPathSelectorRegion Allowance_FieldPathSelector = 2 551 ) 552 553 func (s Allowance_FieldPathSelector) String() string { 554 switch s { 555 case Allowance_FieldPathSelectorResource: 556 return "resource" 557 case Allowance_FieldPathSelectorValue: 558 return "value" 559 case Allowance_FieldPathSelectorRegion: 560 return "region" 561 default: 562 panic(fmt.Sprintf("Invalid selector for Allowance: %d", s)) 563 } 564 } 565 566 func BuildAllowance_FieldPath(fp gotenobject.RawFieldPath) (Allowance_FieldPath, error) { 567 if len(fp) == 0 { 568 return nil, status.Error(codes.InvalidArgument, "empty field path for object Allowance") 569 } 570 if len(fp) == 1 { 571 switch fp[0] { 572 case "resource": 573 return &Allowance_FieldTerminalPath{selector: Allowance_FieldPathSelectorResource}, nil 574 case "value": 575 return &Allowance_FieldTerminalPath{selector: Allowance_FieldPathSelectorValue}, nil 576 case "region": 577 return &Allowance_FieldTerminalPath{selector: Allowance_FieldPathSelectorRegion}, nil 578 } 579 } 580 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Allowance", fp) 581 } 582 583 func ParseAllowance_FieldPath(rawField string) (Allowance_FieldPath, error) { 584 fp, err := gotenobject.ParseRawFieldPath(rawField) 585 if err != nil { 586 return nil, err 587 } 588 return BuildAllowance_FieldPath(fp) 589 } 590 591 func MustParseAllowance_FieldPath(rawField string) Allowance_FieldPath { 592 fp, err := ParseAllowance_FieldPath(rawField) 593 if err != nil { 594 panic(err) 595 } 596 return fp 597 } 598 599 type Allowance_FieldTerminalPath struct { 600 selector Allowance_FieldPathSelector 601 } 602 603 var _ Allowance_FieldPath = (*Allowance_FieldTerminalPath)(nil) 604 605 func (fp *Allowance_FieldTerminalPath) Selector() Allowance_FieldPathSelector { 606 return fp.selector 607 } 608 609 // String returns path representation in proto convention 610 func (fp *Allowance_FieldTerminalPath) String() string { 611 return fp.selector.String() 612 } 613 614 // JSONString returns path representation is JSON convention 615 func (fp *Allowance_FieldTerminalPath) JSONString() string { 616 return strcase.ToLowerCamel(fp.String()) 617 } 618 619 // Get returns all values pointed by specific field from source Allowance 620 func (fp *Allowance_FieldTerminalPath) Get(source *Allowance) (values []interface{}) { 621 if source != nil { 622 switch fp.selector { 623 case Allowance_FieldPathSelectorResource: 624 if source.Resource != nil { 625 values = append(values, source.Resource) 626 } 627 case Allowance_FieldPathSelectorValue: 628 values = append(values, source.Value) 629 case Allowance_FieldPathSelectorRegion: 630 values = append(values, source.Region) 631 default: 632 panic(fmt.Sprintf("Invalid selector for Allowance: %d", fp.selector)) 633 } 634 } 635 return 636 } 637 638 func (fp *Allowance_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 639 return fp.Get(source.(*Allowance)) 640 } 641 642 // GetSingle returns value pointed by specific field of from source Allowance 643 func (fp *Allowance_FieldTerminalPath) GetSingle(source *Allowance) (interface{}, bool) { 644 switch fp.selector { 645 case Allowance_FieldPathSelectorResource: 646 res := source.GetResource() 647 return res, res != nil 648 case Allowance_FieldPathSelectorValue: 649 return source.GetValue(), source != nil 650 case Allowance_FieldPathSelectorRegion: 651 return source.GetRegion(), source != nil 652 default: 653 panic(fmt.Sprintf("Invalid selector for Allowance: %d", fp.selector)) 654 } 655 } 656 657 func (fp *Allowance_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 658 return fp.GetSingle(source.(*Allowance)) 659 } 660 661 // GetDefault returns a default value of the field type 662 func (fp *Allowance_FieldTerminalPath) GetDefault() interface{} { 663 switch fp.selector { 664 case Allowance_FieldPathSelectorResource: 665 return (*meta_resource.Reference)(nil) 666 case Allowance_FieldPathSelectorValue: 667 return int64(0) 668 case Allowance_FieldPathSelectorRegion: 669 return "" 670 default: 671 panic(fmt.Sprintf("Invalid selector for Allowance: %d", fp.selector)) 672 } 673 } 674 675 func (fp *Allowance_FieldTerminalPath) ClearValue(item *Allowance) { 676 if item != nil { 677 switch fp.selector { 678 case Allowance_FieldPathSelectorResource: 679 item.Resource = nil 680 case Allowance_FieldPathSelectorValue: 681 item.Value = int64(0) 682 case Allowance_FieldPathSelectorRegion: 683 item.Region = "" 684 default: 685 panic(fmt.Sprintf("Invalid selector for Allowance: %d", fp.selector)) 686 } 687 } 688 } 689 690 func (fp *Allowance_FieldTerminalPath) ClearValueRaw(item proto.Message) { 691 fp.ClearValue(item.(*Allowance)) 692 } 693 694 // IsLeaf - whether field path is holds simple value 695 func (fp *Allowance_FieldTerminalPath) IsLeaf() bool { 696 return fp.selector == Allowance_FieldPathSelectorResource || 697 fp.selector == Allowance_FieldPathSelectorValue || 698 fp.selector == Allowance_FieldPathSelectorRegion 699 } 700 701 func (fp *Allowance_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 702 return []gotenobject.FieldPath{fp} 703 } 704 705 func (fp *Allowance_FieldTerminalPath) WithIValue(value interface{}) Allowance_FieldPathValue { 706 switch fp.selector { 707 case Allowance_FieldPathSelectorResource: 708 return &Allowance_FieldTerminalPathValue{Allowance_FieldTerminalPath: *fp, value: value.(*meta_resource.Reference)} 709 case Allowance_FieldPathSelectorValue: 710 return &Allowance_FieldTerminalPathValue{Allowance_FieldTerminalPath: *fp, value: value.(int64)} 711 case Allowance_FieldPathSelectorRegion: 712 return &Allowance_FieldTerminalPathValue{Allowance_FieldTerminalPath: *fp, value: value.(string)} 713 default: 714 panic(fmt.Sprintf("Invalid selector for Allowance: %d", fp.selector)) 715 } 716 } 717 718 func (fp *Allowance_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 719 return fp.WithIValue(value) 720 } 721 722 func (fp *Allowance_FieldTerminalPath) WithIArrayOfValues(values interface{}) Allowance_FieldPathArrayOfValues { 723 fpaov := &Allowance_FieldTerminalPathArrayOfValues{Allowance_FieldTerminalPath: *fp} 724 switch fp.selector { 725 case Allowance_FieldPathSelectorResource: 726 return &Allowance_FieldTerminalPathArrayOfValues{Allowance_FieldTerminalPath: *fp, values: values.([]*meta_resource.Reference)} 727 case Allowance_FieldPathSelectorValue: 728 return &Allowance_FieldTerminalPathArrayOfValues{Allowance_FieldTerminalPath: *fp, values: values.([]int64)} 729 case Allowance_FieldPathSelectorRegion: 730 return &Allowance_FieldTerminalPathArrayOfValues{Allowance_FieldTerminalPath: *fp, values: values.([]string)} 731 default: 732 panic(fmt.Sprintf("Invalid selector for Allowance: %d", fp.selector)) 733 } 734 return fpaov 735 } 736 737 func (fp *Allowance_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 738 return fp.WithIArrayOfValues(values) 739 } 740 741 func (fp *Allowance_FieldTerminalPath) WithIArrayItemValue(value interface{}) Allowance_FieldPathArrayItemValue { 742 switch fp.selector { 743 default: 744 panic(fmt.Sprintf("Invalid selector for Allowance: %d", fp.selector)) 745 } 746 } 747 748 func (fp *Allowance_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 749 return fp.WithIArrayItemValue(value) 750 } 751 752 // Allowance_FieldPathValue allows storing values for Allowance fields according to their type 753 type Allowance_FieldPathValue interface { 754 Allowance_FieldPath 755 gotenobject.FieldPathValue 756 SetTo(target **Allowance) 757 CompareWith(*Allowance) (cmp int, comparable bool) 758 } 759 760 func ParseAllowance_FieldPathValue(pathStr, valueStr string) (Allowance_FieldPathValue, error) { 761 fp, err := ParseAllowance_FieldPath(pathStr) 762 if err != nil { 763 return nil, err 764 } 765 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 766 if err != nil { 767 return nil, status.Errorf(codes.InvalidArgument, "error parsing Allowance field path value from %s: %v", valueStr, err) 768 } 769 return fpv.(Allowance_FieldPathValue), nil 770 } 771 772 func MustParseAllowance_FieldPathValue(pathStr, valueStr string) Allowance_FieldPathValue { 773 fpv, err := ParseAllowance_FieldPathValue(pathStr, valueStr) 774 if err != nil { 775 panic(err) 776 } 777 return fpv 778 } 779 780 type Allowance_FieldTerminalPathValue struct { 781 Allowance_FieldTerminalPath 782 value interface{} 783 } 784 785 var _ Allowance_FieldPathValue = (*Allowance_FieldTerminalPathValue)(nil) 786 787 // GetRawValue returns raw value stored under selected path for 'Allowance' as interface{} 788 func (fpv *Allowance_FieldTerminalPathValue) GetRawValue() interface{} { 789 return fpv.value 790 } 791 func (fpv *Allowance_FieldTerminalPathValue) AsResourceValue() (*meta_resource.Reference, bool) { 792 res, ok := fpv.value.(*meta_resource.Reference) 793 return res, ok 794 } 795 func (fpv *Allowance_FieldTerminalPathValue) AsValueValue() (int64, bool) { 796 res, ok := fpv.value.(int64) 797 return res, ok 798 } 799 func (fpv *Allowance_FieldTerminalPathValue) AsRegionValue() (string, bool) { 800 res, ok := fpv.value.(string) 801 return res, ok 802 } 803 804 // SetTo stores value for selected field for object Allowance 805 func (fpv *Allowance_FieldTerminalPathValue) SetTo(target **Allowance) { 806 if *target == nil { 807 *target = new(Allowance) 808 } 809 switch fpv.selector { 810 case Allowance_FieldPathSelectorResource: 811 (*target).Resource = fpv.value.(*meta_resource.Reference) 812 case Allowance_FieldPathSelectorValue: 813 (*target).Value = fpv.value.(int64) 814 case Allowance_FieldPathSelectorRegion: 815 (*target).Region = fpv.value.(string) 816 default: 817 panic(fmt.Sprintf("Invalid selector for Allowance: %d", fpv.selector)) 818 } 819 } 820 821 func (fpv *Allowance_FieldTerminalPathValue) SetToRaw(target proto.Message) { 822 typedObject := target.(*Allowance) 823 fpv.SetTo(&typedObject) 824 } 825 826 // CompareWith compares value in the 'Allowance_FieldTerminalPathValue' with the value under path in 'Allowance'. 827 func (fpv *Allowance_FieldTerminalPathValue) CompareWith(source *Allowance) (int, bool) { 828 switch fpv.selector { 829 case Allowance_FieldPathSelectorResource: 830 leftValue := fpv.value.(*meta_resource.Reference) 831 rightValue := source.GetResource() 832 if leftValue == nil { 833 if rightValue != nil { 834 return -1, true 835 } 836 return 0, true 837 } 838 if rightValue == nil { 839 return 1, true 840 } 841 if leftValue.String() == rightValue.String() { 842 return 0, true 843 } else if leftValue.String() < rightValue.String() { 844 return -1, true 845 } else { 846 return 1, true 847 } 848 case Allowance_FieldPathSelectorValue: 849 leftValue := fpv.value.(int64) 850 rightValue := source.GetValue() 851 if (leftValue) == (rightValue) { 852 return 0, true 853 } else if (leftValue) < (rightValue) { 854 return -1, true 855 } else { 856 return 1, true 857 } 858 case Allowance_FieldPathSelectorRegion: 859 leftValue := fpv.value.(string) 860 rightValue := source.GetRegion() 861 if (leftValue) == (rightValue) { 862 return 0, true 863 } else if (leftValue) < (rightValue) { 864 return -1, true 865 } else { 866 return 1, true 867 } 868 default: 869 panic(fmt.Sprintf("Invalid selector for Allowance: %d", fpv.selector)) 870 } 871 } 872 873 func (fpv *Allowance_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 874 return fpv.CompareWith(source.(*Allowance)) 875 } 876 877 // Allowance_FieldPathArrayItemValue allows storing single item in Path-specific values for Allowance according to their type 878 // Present only for array (repeated) types. 879 type Allowance_FieldPathArrayItemValue interface { 880 gotenobject.FieldPathArrayItemValue 881 Allowance_FieldPath 882 ContainsValue(*Allowance) bool 883 } 884 885 // ParseAllowance_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 886 func ParseAllowance_FieldPathArrayItemValue(pathStr, valueStr string) (Allowance_FieldPathArrayItemValue, error) { 887 fp, err := ParseAllowance_FieldPath(pathStr) 888 if err != nil { 889 return nil, err 890 } 891 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 892 if err != nil { 893 return nil, status.Errorf(codes.InvalidArgument, "error parsing Allowance field path array item value from %s: %v", valueStr, err) 894 } 895 return fpaiv.(Allowance_FieldPathArrayItemValue), nil 896 } 897 898 func MustParseAllowance_FieldPathArrayItemValue(pathStr, valueStr string) Allowance_FieldPathArrayItemValue { 899 fpaiv, err := ParseAllowance_FieldPathArrayItemValue(pathStr, valueStr) 900 if err != nil { 901 panic(err) 902 } 903 return fpaiv 904 } 905 906 type Allowance_FieldTerminalPathArrayItemValue struct { 907 Allowance_FieldTerminalPath 908 value interface{} 909 } 910 911 var _ Allowance_FieldPathArrayItemValue = (*Allowance_FieldTerminalPathArrayItemValue)(nil) 912 913 // GetRawValue returns stored element value for array in object Allowance as interface{} 914 func (fpaiv *Allowance_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 915 return fpaiv.value 916 } 917 918 func (fpaiv *Allowance_FieldTerminalPathArrayItemValue) GetSingle(source *Allowance) (interface{}, bool) { 919 return nil, false 920 } 921 922 func (fpaiv *Allowance_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 923 return fpaiv.GetSingle(source.(*Allowance)) 924 } 925 926 // Contains returns a boolean indicating if value that is being held is present in given 'Allowance' 927 func (fpaiv *Allowance_FieldTerminalPathArrayItemValue) ContainsValue(source *Allowance) bool { 928 slice := fpaiv.Allowance_FieldTerminalPath.Get(source) 929 for _, v := range slice { 930 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 931 if proto.Equal(asProtoMsg, v.(proto.Message)) { 932 return true 933 } 934 } else if reflect.DeepEqual(v, fpaiv.value) { 935 return true 936 } 937 } 938 return false 939 } 940 941 // Allowance_FieldPathArrayOfValues allows storing slice of values for Allowance fields according to their type 942 type Allowance_FieldPathArrayOfValues interface { 943 gotenobject.FieldPathArrayOfValues 944 Allowance_FieldPath 945 } 946 947 func ParseAllowance_FieldPathArrayOfValues(pathStr, valuesStr string) (Allowance_FieldPathArrayOfValues, error) { 948 fp, err := ParseAllowance_FieldPath(pathStr) 949 if err != nil { 950 return nil, err 951 } 952 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 953 if err != nil { 954 return nil, status.Errorf(codes.InvalidArgument, "error parsing Allowance field path array of values from %s: %v", valuesStr, err) 955 } 956 return fpaov.(Allowance_FieldPathArrayOfValues), nil 957 } 958 959 func MustParseAllowance_FieldPathArrayOfValues(pathStr, valuesStr string) Allowance_FieldPathArrayOfValues { 960 fpaov, err := ParseAllowance_FieldPathArrayOfValues(pathStr, valuesStr) 961 if err != nil { 962 panic(err) 963 } 964 return fpaov 965 } 966 967 type Allowance_FieldTerminalPathArrayOfValues struct { 968 Allowance_FieldTerminalPath 969 values interface{} 970 } 971 972 var _ Allowance_FieldPathArrayOfValues = (*Allowance_FieldTerminalPathArrayOfValues)(nil) 973 974 func (fpaov *Allowance_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 975 switch fpaov.selector { 976 case Allowance_FieldPathSelectorResource: 977 for _, v := range fpaov.values.([]*meta_resource.Reference) { 978 values = append(values, v) 979 } 980 case Allowance_FieldPathSelectorValue: 981 for _, v := range fpaov.values.([]int64) { 982 values = append(values, v) 983 } 984 case Allowance_FieldPathSelectorRegion: 985 for _, v := range fpaov.values.([]string) { 986 values = append(values, v) 987 } 988 } 989 return 990 } 991 func (fpaov *Allowance_FieldTerminalPathArrayOfValues) AsResourceArrayOfValues() ([]*meta_resource.Reference, bool) { 992 res, ok := fpaov.values.([]*meta_resource.Reference) 993 return res, ok 994 } 995 func (fpaov *Allowance_FieldTerminalPathArrayOfValues) AsValueArrayOfValues() ([]int64, bool) { 996 res, ok := fpaov.values.([]int64) 997 return res, ok 998 } 999 func (fpaov *Allowance_FieldTerminalPathArrayOfValues) AsRegionArrayOfValues() ([]string, bool) { 1000 res, ok := fpaov.values.([]string) 1001 return res, ok 1002 }