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