github.com/cloudwan/edgelq-sdk@v1.15.4/limits/resources/v1/plan_assignment/plan_assignment.pb.fieldpath.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/limits/proto/v1/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/v1/organization" 27 iam_project "github.com/cloudwan/edgelq-sdk/iam/resources/v1/project" 28 accepted_plan "github.com/cloudwan/edgelq-sdk/limits/resources/v1/accepted_plan" 29 common "github.com/cloudwan/edgelq-sdk/limits/resources/v1/common" 30 plan "github.com/cloudwan/edgelq-sdk/limits/resources/v1/plan" 31 meta_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/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.RegionalPlanAssignment{} 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_FieldPathSelectorMetadata PlanAssignment_FieldPathSelector = 1 85 PlanAssignment_FieldPathSelectorDefaultRegionalPlan PlanAssignment_FieldPathSelector = 2 86 PlanAssignment_FieldPathSelectorService PlanAssignment_FieldPathSelector = 3 87 PlanAssignment_FieldPathSelectorRegionalPlanOverrides PlanAssignment_FieldPathSelector = 4 88 PlanAssignment_FieldPathSelectorExtensions PlanAssignment_FieldPathSelector = 5 89 PlanAssignment_FieldPathSelectorAllowances PlanAssignment_FieldPathSelector = 6 90 PlanAssignment_FieldPathSelectorAppliedRegions PlanAssignment_FieldPathSelector = 7 91 PlanAssignment_FieldPathSelectorAppliedPlanSpecGeneration PlanAssignment_FieldPathSelector = 8 92 PlanAssignment_FieldPathSelectorSource PlanAssignment_FieldPathSelector = 9 93 ) 94 95 func (s PlanAssignment_FieldPathSelector) String() string { 96 switch s { 97 case PlanAssignment_FieldPathSelectorName: 98 return "name" 99 case PlanAssignment_FieldPathSelectorMetadata: 100 return "metadata" 101 case PlanAssignment_FieldPathSelectorDefaultRegionalPlan: 102 return "default_regional_plan" 103 case PlanAssignment_FieldPathSelectorService: 104 return "service" 105 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 106 return "regional_plan_overrides" 107 case PlanAssignment_FieldPathSelectorExtensions: 108 return "extensions" 109 case PlanAssignment_FieldPathSelectorAllowances: 110 return "allowances" 111 case PlanAssignment_FieldPathSelectorAppliedRegions: 112 return "applied_regions" 113 case PlanAssignment_FieldPathSelectorAppliedPlanSpecGeneration: 114 return "applied_plan_spec_generation" 115 case PlanAssignment_FieldPathSelectorSource: 116 return "source" 117 default: 118 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", s)) 119 } 120 } 121 122 func BuildPlanAssignment_FieldPath(fp gotenobject.RawFieldPath) (PlanAssignment_FieldPath, error) { 123 if len(fp) == 0 { 124 return nil, status.Error(codes.InvalidArgument, "empty field path for object PlanAssignment") 125 } 126 if len(fp) == 1 { 127 switch fp[0] { 128 case "name": 129 return &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorName}, nil 130 case "metadata": 131 return &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorMetadata}, nil 132 case "default_regional_plan", "defaultRegionalPlan", "default-regional-plan": 133 return &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorDefaultRegionalPlan}, nil 134 case "service": 135 return &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorService}, nil 136 case "regional_plan_overrides", "regionalPlanOverrides", "regional-plan-overrides": 137 return &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorRegionalPlanOverrides}, nil 138 case "extensions": 139 return &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorExtensions}, nil 140 case "allowances": 141 return &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorAllowances}, nil 142 case "applied_regions", "appliedRegions", "applied-regions": 143 return &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorAppliedRegions}, nil 144 case "applied_plan_spec_generation", "appliedPlanSpecGeneration", "applied-plan-spec-generation": 145 return &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorAppliedPlanSpecGeneration}, nil 146 case "source": 147 return &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorSource}, nil 148 } 149 } else { 150 switch fp[0] { 151 case "metadata": 152 if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil { 153 return nil, err 154 } else { 155 return &PlanAssignment_FieldSubPath{selector: PlanAssignment_FieldPathSelectorMetadata, subPath: subpath}, nil 156 } 157 case "regional_plan_overrides", "regionalPlanOverrides", "regional-plan-overrides": 158 if subpath, err := common.BuildRegionalPlanAssignment_FieldPath(fp[1:]); err != nil { 159 return nil, err 160 } else { 161 return &PlanAssignment_FieldSubPath{selector: PlanAssignment_FieldPathSelectorRegionalPlanOverrides, subPath: subpath}, nil 162 } 163 case "extensions": 164 if subpath, err := common.BuildAllowance_FieldPath(fp[1:]); err != nil { 165 return nil, err 166 } else { 167 return &PlanAssignment_FieldSubPath{selector: PlanAssignment_FieldPathSelectorExtensions, subPath: subpath}, nil 168 } 169 case "allowances": 170 if subpath, err := common.BuildAllowance_FieldPath(fp[1:]); err != nil { 171 return nil, err 172 } else { 173 return &PlanAssignment_FieldSubPath{selector: PlanAssignment_FieldPathSelectorAllowances, subPath: subpath}, nil 174 } 175 } 176 } 177 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object PlanAssignment", fp) 178 } 179 180 func ParsePlanAssignment_FieldPath(rawField string) (PlanAssignment_FieldPath, error) { 181 fp, err := gotenobject.ParseRawFieldPath(rawField) 182 if err != nil { 183 return nil, err 184 } 185 return BuildPlanAssignment_FieldPath(fp) 186 } 187 188 func MustParsePlanAssignment_FieldPath(rawField string) PlanAssignment_FieldPath { 189 fp, err := ParsePlanAssignment_FieldPath(rawField) 190 if err != nil { 191 panic(err) 192 } 193 return fp 194 } 195 196 type PlanAssignment_FieldTerminalPath struct { 197 selector PlanAssignment_FieldPathSelector 198 } 199 200 var _ PlanAssignment_FieldPath = (*PlanAssignment_FieldTerminalPath)(nil) 201 202 func (fp *PlanAssignment_FieldTerminalPath) Selector() PlanAssignment_FieldPathSelector { 203 return fp.selector 204 } 205 206 // String returns path representation in proto convention 207 func (fp *PlanAssignment_FieldTerminalPath) String() string { 208 return fp.selector.String() 209 } 210 211 // JSONString returns path representation is JSON convention 212 func (fp *PlanAssignment_FieldTerminalPath) JSONString() string { 213 return strcase.ToLowerCamel(fp.String()) 214 } 215 216 // Get returns all values pointed by specific field from source PlanAssignment 217 func (fp *PlanAssignment_FieldTerminalPath) Get(source *PlanAssignment) (values []interface{}) { 218 if source != nil { 219 switch fp.selector { 220 case PlanAssignment_FieldPathSelectorName: 221 if source.Name != nil { 222 values = append(values, source.Name) 223 } 224 case PlanAssignment_FieldPathSelectorMetadata: 225 if source.Metadata != nil { 226 values = append(values, source.Metadata) 227 } 228 case PlanAssignment_FieldPathSelectorDefaultRegionalPlan: 229 if source.DefaultRegionalPlan != nil { 230 values = append(values, source.DefaultRegionalPlan) 231 } 232 case PlanAssignment_FieldPathSelectorService: 233 if source.Service != nil { 234 values = append(values, source.Service) 235 } 236 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 237 for _, value := range source.GetRegionalPlanOverrides() { 238 values = append(values, value) 239 } 240 case PlanAssignment_FieldPathSelectorExtensions: 241 for _, value := range source.GetExtensions() { 242 values = append(values, value) 243 } 244 case PlanAssignment_FieldPathSelectorAllowances: 245 for _, value := range source.GetAllowances() { 246 values = append(values, value) 247 } 248 case PlanAssignment_FieldPathSelectorAppliedRegions: 249 for _, value := range source.GetAppliedRegions() { 250 values = append(values, value) 251 } 252 case PlanAssignment_FieldPathSelectorAppliedPlanSpecGeneration: 253 values = append(values, source.AppliedPlanSpecGeneration) 254 case PlanAssignment_FieldPathSelectorSource: 255 if source.Source != nil { 256 values = append(values, source.Source) 257 } 258 default: 259 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fp.selector)) 260 } 261 } 262 return 263 } 264 265 func (fp *PlanAssignment_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 266 return fp.Get(source.(*PlanAssignment)) 267 } 268 269 // GetSingle returns value pointed by specific field of from source PlanAssignment 270 func (fp *PlanAssignment_FieldTerminalPath) GetSingle(source *PlanAssignment) (interface{}, bool) { 271 switch fp.selector { 272 case PlanAssignment_FieldPathSelectorName: 273 res := source.GetName() 274 return res, res != nil 275 case PlanAssignment_FieldPathSelectorMetadata: 276 res := source.GetMetadata() 277 return res, res != nil 278 case PlanAssignment_FieldPathSelectorDefaultRegionalPlan: 279 res := source.GetDefaultRegionalPlan() 280 return res, res != nil 281 case PlanAssignment_FieldPathSelectorService: 282 res := source.GetService() 283 return res, res != nil 284 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 285 res := source.GetRegionalPlanOverrides() 286 return res, res != nil 287 case PlanAssignment_FieldPathSelectorExtensions: 288 res := source.GetExtensions() 289 return res, res != nil 290 case PlanAssignment_FieldPathSelectorAllowances: 291 res := source.GetAllowances() 292 return res, res != nil 293 case PlanAssignment_FieldPathSelectorAppliedRegions: 294 res := source.GetAppliedRegions() 295 return res, res != nil 296 case PlanAssignment_FieldPathSelectorAppliedPlanSpecGeneration: 297 return source.GetAppliedPlanSpecGeneration(), source != nil 298 case PlanAssignment_FieldPathSelectorSource: 299 res := source.GetSource() 300 return res, res != nil 301 default: 302 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fp.selector)) 303 } 304 } 305 306 func (fp *PlanAssignment_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 307 return fp.GetSingle(source.(*PlanAssignment)) 308 } 309 310 // GetDefault returns a default value of the field type 311 func (fp *PlanAssignment_FieldTerminalPath) GetDefault() interface{} { 312 switch fp.selector { 313 case PlanAssignment_FieldPathSelectorName: 314 return (*Name)(nil) 315 case PlanAssignment_FieldPathSelectorMetadata: 316 return (*meta.Meta)(nil) 317 case PlanAssignment_FieldPathSelectorDefaultRegionalPlan: 318 return (*plan.Reference)(nil) 319 case PlanAssignment_FieldPathSelectorService: 320 return (*meta_service.Reference)(nil) 321 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 322 return ([]*common.RegionalPlanAssignment)(nil) 323 case PlanAssignment_FieldPathSelectorExtensions: 324 return ([]*common.Allowance)(nil) 325 case PlanAssignment_FieldPathSelectorAllowances: 326 return ([]*common.Allowance)(nil) 327 case PlanAssignment_FieldPathSelectorAppliedRegions: 328 return ([]string)(nil) 329 case PlanAssignment_FieldPathSelectorAppliedPlanSpecGeneration: 330 return int64(0) 331 case PlanAssignment_FieldPathSelectorSource: 332 return (*accepted_plan.Reference)(nil) 333 default: 334 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fp.selector)) 335 } 336 } 337 338 func (fp *PlanAssignment_FieldTerminalPath) ClearValue(item *PlanAssignment) { 339 if item != nil { 340 switch fp.selector { 341 case PlanAssignment_FieldPathSelectorName: 342 item.Name = nil 343 case PlanAssignment_FieldPathSelectorMetadata: 344 item.Metadata = nil 345 case PlanAssignment_FieldPathSelectorDefaultRegionalPlan: 346 item.DefaultRegionalPlan = nil 347 case PlanAssignment_FieldPathSelectorService: 348 item.Service = nil 349 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 350 item.RegionalPlanOverrides = nil 351 case PlanAssignment_FieldPathSelectorExtensions: 352 item.Extensions = nil 353 case PlanAssignment_FieldPathSelectorAllowances: 354 item.Allowances = nil 355 case PlanAssignment_FieldPathSelectorAppliedRegions: 356 item.AppliedRegions = nil 357 case PlanAssignment_FieldPathSelectorAppliedPlanSpecGeneration: 358 item.AppliedPlanSpecGeneration = int64(0) 359 case PlanAssignment_FieldPathSelectorSource: 360 item.Source = nil 361 default: 362 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fp.selector)) 363 } 364 } 365 } 366 367 func (fp *PlanAssignment_FieldTerminalPath) ClearValueRaw(item proto.Message) { 368 fp.ClearValue(item.(*PlanAssignment)) 369 } 370 371 // IsLeaf - whether field path is holds simple value 372 func (fp *PlanAssignment_FieldTerminalPath) IsLeaf() bool { 373 return fp.selector == PlanAssignment_FieldPathSelectorName || 374 fp.selector == PlanAssignment_FieldPathSelectorDefaultRegionalPlan || 375 fp.selector == PlanAssignment_FieldPathSelectorService || 376 fp.selector == PlanAssignment_FieldPathSelectorAppliedRegions || 377 fp.selector == PlanAssignment_FieldPathSelectorAppliedPlanSpecGeneration || 378 fp.selector == PlanAssignment_FieldPathSelectorSource 379 } 380 381 func (fp *PlanAssignment_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 382 return []gotenobject.FieldPath{fp} 383 } 384 385 func (fp *PlanAssignment_FieldTerminalPath) WithIValue(value interface{}) PlanAssignment_FieldPathValue { 386 switch fp.selector { 387 case PlanAssignment_FieldPathSelectorName: 388 return &PlanAssignment_FieldTerminalPathValue{PlanAssignment_FieldTerminalPath: *fp, value: value.(*Name)} 389 case PlanAssignment_FieldPathSelectorMetadata: 390 return &PlanAssignment_FieldTerminalPathValue{PlanAssignment_FieldTerminalPath: *fp, value: value.(*meta.Meta)} 391 case PlanAssignment_FieldPathSelectorDefaultRegionalPlan: 392 return &PlanAssignment_FieldTerminalPathValue{PlanAssignment_FieldTerminalPath: *fp, value: value.(*plan.Reference)} 393 case PlanAssignment_FieldPathSelectorService: 394 return &PlanAssignment_FieldTerminalPathValue{PlanAssignment_FieldTerminalPath: *fp, value: value.(*meta_service.Reference)} 395 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 396 return &PlanAssignment_FieldTerminalPathValue{PlanAssignment_FieldTerminalPath: *fp, value: value.([]*common.RegionalPlanAssignment)} 397 case PlanAssignment_FieldPathSelectorExtensions: 398 return &PlanAssignment_FieldTerminalPathValue{PlanAssignment_FieldTerminalPath: *fp, value: value.([]*common.Allowance)} 399 case PlanAssignment_FieldPathSelectorAllowances: 400 return &PlanAssignment_FieldTerminalPathValue{PlanAssignment_FieldTerminalPath: *fp, value: value.([]*common.Allowance)} 401 case PlanAssignment_FieldPathSelectorAppliedRegions: 402 return &PlanAssignment_FieldTerminalPathValue{PlanAssignment_FieldTerminalPath: *fp, value: value.([]string)} 403 case PlanAssignment_FieldPathSelectorAppliedPlanSpecGeneration: 404 return &PlanAssignment_FieldTerminalPathValue{PlanAssignment_FieldTerminalPath: *fp, value: value.(int64)} 405 case PlanAssignment_FieldPathSelectorSource: 406 return &PlanAssignment_FieldTerminalPathValue{PlanAssignment_FieldTerminalPath: *fp, value: value.(*accepted_plan.Reference)} 407 default: 408 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fp.selector)) 409 } 410 } 411 412 func (fp *PlanAssignment_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 413 return fp.WithIValue(value) 414 } 415 416 func (fp *PlanAssignment_FieldTerminalPath) WithIArrayOfValues(values interface{}) PlanAssignment_FieldPathArrayOfValues { 417 fpaov := &PlanAssignment_FieldTerminalPathArrayOfValues{PlanAssignment_FieldTerminalPath: *fp} 418 switch fp.selector { 419 case PlanAssignment_FieldPathSelectorName: 420 return &PlanAssignment_FieldTerminalPathArrayOfValues{PlanAssignment_FieldTerminalPath: *fp, values: values.([]*Name)} 421 case PlanAssignment_FieldPathSelectorMetadata: 422 return &PlanAssignment_FieldTerminalPathArrayOfValues{PlanAssignment_FieldTerminalPath: *fp, values: values.([]*meta.Meta)} 423 case PlanAssignment_FieldPathSelectorDefaultRegionalPlan: 424 return &PlanAssignment_FieldTerminalPathArrayOfValues{PlanAssignment_FieldTerminalPath: *fp, values: values.([]*plan.Reference)} 425 case PlanAssignment_FieldPathSelectorService: 426 return &PlanAssignment_FieldTerminalPathArrayOfValues{PlanAssignment_FieldTerminalPath: *fp, values: values.([]*meta_service.Reference)} 427 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 428 return &PlanAssignment_FieldTerminalPathArrayOfValues{PlanAssignment_FieldTerminalPath: *fp, values: values.([][]*common.RegionalPlanAssignment)} 429 case PlanAssignment_FieldPathSelectorExtensions: 430 return &PlanAssignment_FieldTerminalPathArrayOfValues{PlanAssignment_FieldTerminalPath: *fp, values: values.([][]*common.Allowance)} 431 case PlanAssignment_FieldPathSelectorAllowances: 432 return &PlanAssignment_FieldTerminalPathArrayOfValues{PlanAssignment_FieldTerminalPath: *fp, values: values.([][]*common.Allowance)} 433 case PlanAssignment_FieldPathSelectorAppliedRegions: 434 return &PlanAssignment_FieldTerminalPathArrayOfValues{PlanAssignment_FieldTerminalPath: *fp, values: values.([][]string)} 435 case PlanAssignment_FieldPathSelectorAppliedPlanSpecGeneration: 436 return &PlanAssignment_FieldTerminalPathArrayOfValues{PlanAssignment_FieldTerminalPath: *fp, values: values.([]int64)} 437 case PlanAssignment_FieldPathSelectorSource: 438 return &PlanAssignment_FieldTerminalPathArrayOfValues{PlanAssignment_FieldTerminalPath: *fp, values: values.([]*accepted_plan.Reference)} 439 default: 440 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fp.selector)) 441 } 442 return fpaov 443 } 444 445 func (fp *PlanAssignment_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 446 return fp.WithIArrayOfValues(values) 447 } 448 449 func (fp *PlanAssignment_FieldTerminalPath) WithIArrayItemValue(value interface{}) PlanAssignment_FieldPathArrayItemValue { 450 switch fp.selector { 451 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 452 return &PlanAssignment_FieldTerminalPathArrayItemValue{PlanAssignment_FieldTerminalPath: *fp, value: value.(*common.RegionalPlanAssignment)} 453 case PlanAssignment_FieldPathSelectorExtensions: 454 return &PlanAssignment_FieldTerminalPathArrayItemValue{PlanAssignment_FieldTerminalPath: *fp, value: value.(*common.Allowance)} 455 case PlanAssignment_FieldPathSelectorAllowances: 456 return &PlanAssignment_FieldTerminalPathArrayItemValue{PlanAssignment_FieldTerminalPath: *fp, value: value.(*common.Allowance)} 457 case PlanAssignment_FieldPathSelectorAppliedRegions: 458 return &PlanAssignment_FieldTerminalPathArrayItemValue{PlanAssignment_FieldTerminalPath: *fp, value: value.(string)} 459 default: 460 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fp.selector)) 461 } 462 } 463 464 func (fp *PlanAssignment_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 465 return fp.WithIArrayItemValue(value) 466 } 467 468 type PlanAssignment_FieldSubPath struct { 469 selector PlanAssignment_FieldPathSelector 470 subPath gotenobject.FieldPath 471 } 472 473 var _ PlanAssignment_FieldPath = (*PlanAssignment_FieldSubPath)(nil) 474 475 func (fps *PlanAssignment_FieldSubPath) Selector() PlanAssignment_FieldPathSelector { 476 return fps.selector 477 } 478 func (fps *PlanAssignment_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) { 479 res, ok := fps.subPath.(meta.Meta_FieldPath) 480 return res, ok 481 } 482 func (fps *PlanAssignment_FieldSubPath) AsRegionalPlanOverridesSubPath() (common.RegionalPlanAssignment_FieldPath, bool) { 483 res, ok := fps.subPath.(common.RegionalPlanAssignment_FieldPath) 484 return res, ok 485 } 486 func (fps *PlanAssignment_FieldSubPath) AsExtensionsSubPath() (common.Allowance_FieldPath, bool) { 487 res, ok := fps.subPath.(common.Allowance_FieldPath) 488 return res, ok 489 } 490 func (fps *PlanAssignment_FieldSubPath) AsAllowancesSubPath() (common.Allowance_FieldPath, bool) { 491 res, ok := fps.subPath.(common.Allowance_FieldPath) 492 return res, ok 493 } 494 495 // String returns path representation in proto convention 496 func (fps *PlanAssignment_FieldSubPath) String() string { 497 return fps.selector.String() + "." + fps.subPath.String() 498 } 499 500 // JSONString returns path representation is JSON convention 501 func (fps *PlanAssignment_FieldSubPath) JSONString() string { 502 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 503 } 504 505 // Get returns all values pointed by selected field from source PlanAssignment 506 func (fps *PlanAssignment_FieldSubPath) Get(source *PlanAssignment) (values []interface{}) { 507 switch fps.selector { 508 case PlanAssignment_FieldPathSelectorMetadata: 509 values = append(values, fps.subPath.GetRaw(source.GetMetadata())...) 510 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 511 for _, item := range source.GetRegionalPlanOverrides() { 512 values = append(values, fps.subPath.GetRaw(item)...) 513 } 514 case PlanAssignment_FieldPathSelectorExtensions: 515 for _, item := range source.GetExtensions() { 516 values = append(values, fps.subPath.GetRaw(item)...) 517 } 518 case PlanAssignment_FieldPathSelectorAllowances: 519 for _, item := range source.GetAllowances() { 520 values = append(values, fps.subPath.GetRaw(item)...) 521 } 522 default: 523 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fps.selector)) 524 } 525 return 526 } 527 528 func (fps *PlanAssignment_FieldSubPath) GetRaw(source proto.Message) []interface{} { 529 return fps.Get(source.(*PlanAssignment)) 530 } 531 532 // GetSingle returns value of selected field from source PlanAssignment 533 func (fps *PlanAssignment_FieldSubPath) GetSingle(source *PlanAssignment) (interface{}, bool) { 534 switch fps.selector { 535 case PlanAssignment_FieldPathSelectorMetadata: 536 if source.GetMetadata() == nil { 537 return nil, false 538 } 539 return fps.subPath.GetSingleRaw(source.GetMetadata()) 540 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 541 if len(source.GetRegionalPlanOverrides()) == 0 { 542 return nil, false 543 } 544 return fps.subPath.GetSingleRaw(source.GetRegionalPlanOverrides()[0]) 545 case PlanAssignment_FieldPathSelectorExtensions: 546 if len(source.GetExtensions()) == 0 { 547 return nil, false 548 } 549 return fps.subPath.GetSingleRaw(source.GetExtensions()[0]) 550 case PlanAssignment_FieldPathSelectorAllowances: 551 if len(source.GetAllowances()) == 0 { 552 return nil, false 553 } 554 return fps.subPath.GetSingleRaw(source.GetAllowances()[0]) 555 default: 556 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fps.selector)) 557 } 558 } 559 560 func (fps *PlanAssignment_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 561 return fps.GetSingle(source.(*PlanAssignment)) 562 } 563 564 // GetDefault returns a default value of the field type 565 func (fps *PlanAssignment_FieldSubPath) GetDefault() interface{} { 566 return fps.subPath.GetDefault() 567 } 568 569 func (fps *PlanAssignment_FieldSubPath) ClearValue(item *PlanAssignment) { 570 if item != nil { 571 switch fps.selector { 572 case PlanAssignment_FieldPathSelectorMetadata: 573 fps.subPath.ClearValueRaw(item.Metadata) 574 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 575 for _, subItem := range item.RegionalPlanOverrides { 576 fps.subPath.ClearValueRaw(subItem) 577 } 578 case PlanAssignment_FieldPathSelectorExtensions: 579 for _, subItem := range item.Extensions { 580 fps.subPath.ClearValueRaw(subItem) 581 } 582 case PlanAssignment_FieldPathSelectorAllowances: 583 for _, subItem := range item.Allowances { 584 fps.subPath.ClearValueRaw(subItem) 585 } 586 default: 587 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fps.selector)) 588 } 589 } 590 } 591 592 func (fps *PlanAssignment_FieldSubPath) ClearValueRaw(item proto.Message) { 593 fps.ClearValue(item.(*PlanAssignment)) 594 } 595 596 // IsLeaf - whether field path is holds simple value 597 func (fps *PlanAssignment_FieldSubPath) IsLeaf() bool { 598 return fps.subPath.IsLeaf() 599 } 600 601 func (fps *PlanAssignment_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 602 iPaths := []gotenobject.FieldPath{&PlanAssignment_FieldTerminalPath{selector: fps.selector}} 603 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 604 return iPaths 605 } 606 607 func (fps *PlanAssignment_FieldSubPath) WithIValue(value interface{}) PlanAssignment_FieldPathValue { 608 return &PlanAssignment_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 609 } 610 611 func (fps *PlanAssignment_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 612 return fps.WithIValue(value) 613 } 614 615 func (fps *PlanAssignment_FieldSubPath) WithIArrayOfValues(values interface{}) PlanAssignment_FieldPathArrayOfValues { 616 return &PlanAssignment_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 617 } 618 619 func (fps *PlanAssignment_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 620 return fps.WithIArrayOfValues(values) 621 } 622 623 func (fps *PlanAssignment_FieldSubPath) WithIArrayItemValue(value interface{}) PlanAssignment_FieldPathArrayItemValue { 624 return &PlanAssignment_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 625 } 626 627 func (fps *PlanAssignment_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 628 return fps.WithIArrayItemValue(value) 629 } 630 631 // PlanAssignment_FieldPathValue allows storing values for PlanAssignment fields according to their type 632 type PlanAssignment_FieldPathValue interface { 633 PlanAssignment_FieldPath 634 gotenobject.FieldPathValue 635 SetTo(target **PlanAssignment) 636 CompareWith(*PlanAssignment) (cmp int, comparable bool) 637 } 638 639 func ParsePlanAssignment_FieldPathValue(pathStr, valueStr string) (PlanAssignment_FieldPathValue, error) { 640 fp, err := ParsePlanAssignment_FieldPath(pathStr) 641 if err != nil { 642 return nil, err 643 } 644 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 645 if err != nil { 646 return nil, status.Errorf(codes.InvalidArgument, "error parsing PlanAssignment field path value from %s: %v", valueStr, err) 647 } 648 return fpv.(PlanAssignment_FieldPathValue), nil 649 } 650 651 func MustParsePlanAssignment_FieldPathValue(pathStr, valueStr string) PlanAssignment_FieldPathValue { 652 fpv, err := ParsePlanAssignment_FieldPathValue(pathStr, valueStr) 653 if err != nil { 654 panic(err) 655 } 656 return fpv 657 } 658 659 type PlanAssignment_FieldTerminalPathValue struct { 660 PlanAssignment_FieldTerminalPath 661 value interface{} 662 } 663 664 var _ PlanAssignment_FieldPathValue = (*PlanAssignment_FieldTerminalPathValue)(nil) 665 666 // GetRawValue returns raw value stored under selected path for 'PlanAssignment' as interface{} 667 func (fpv *PlanAssignment_FieldTerminalPathValue) GetRawValue() interface{} { 668 return fpv.value 669 } 670 func (fpv *PlanAssignment_FieldTerminalPathValue) AsNameValue() (*Name, bool) { 671 res, ok := fpv.value.(*Name) 672 return res, ok 673 } 674 func (fpv *PlanAssignment_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) { 675 res, ok := fpv.value.(*meta.Meta) 676 return res, ok 677 } 678 func (fpv *PlanAssignment_FieldTerminalPathValue) AsDefaultRegionalPlanValue() (*plan.Reference, bool) { 679 res, ok := fpv.value.(*plan.Reference) 680 return res, ok 681 } 682 func (fpv *PlanAssignment_FieldTerminalPathValue) AsServiceValue() (*meta_service.Reference, bool) { 683 res, ok := fpv.value.(*meta_service.Reference) 684 return res, ok 685 } 686 func (fpv *PlanAssignment_FieldTerminalPathValue) AsRegionalPlanOverridesValue() ([]*common.RegionalPlanAssignment, bool) { 687 res, ok := fpv.value.([]*common.RegionalPlanAssignment) 688 return res, ok 689 } 690 func (fpv *PlanAssignment_FieldTerminalPathValue) AsExtensionsValue() ([]*common.Allowance, bool) { 691 res, ok := fpv.value.([]*common.Allowance) 692 return res, ok 693 } 694 func (fpv *PlanAssignment_FieldTerminalPathValue) AsAllowancesValue() ([]*common.Allowance, bool) { 695 res, ok := fpv.value.([]*common.Allowance) 696 return res, ok 697 } 698 func (fpv *PlanAssignment_FieldTerminalPathValue) AsAppliedRegionsValue() ([]string, bool) { 699 res, ok := fpv.value.([]string) 700 return res, ok 701 } 702 func (fpv *PlanAssignment_FieldTerminalPathValue) AsAppliedPlanSpecGenerationValue() (int64, bool) { 703 res, ok := fpv.value.(int64) 704 return res, ok 705 } 706 func (fpv *PlanAssignment_FieldTerminalPathValue) AsSourceValue() (*accepted_plan.Reference, bool) { 707 res, ok := fpv.value.(*accepted_plan.Reference) 708 return res, ok 709 } 710 711 // SetTo stores value for selected field for object PlanAssignment 712 func (fpv *PlanAssignment_FieldTerminalPathValue) SetTo(target **PlanAssignment) { 713 if *target == nil { 714 *target = new(PlanAssignment) 715 } 716 switch fpv.selector { 717 case PlanAssignment_FieldPathSelectorName: 718 (*target).Name = fpv.value.(*Name) 719 case PlanAssignment_FieldPathSelectorMetadata: 720 (*target).Metadata = fpv.value.(*meta.Meta) 721 case PlanAssignment_FieldPathSelectorDefaultRegionalPlan: 722 (*target).DefaultRegionalPlan = fpv.value.(*plan.Reference) 723 case PlanAssignment_FieldPathSelectorService: 724 (*target).Service = fpv.value.(*meta_service.Reference) 725 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 726 (*target).RegionalPlanOverrides = fpv.value.([]*common.RegionalPlanAssignment) 727 case PlanAssignment_FieldPathSelectorExtensions: 728 (*target).Extensions = fpv.value.([]*common.Allowance) 729 case PlanAssignment_FieldPathSelectorAllowances: 730 (*target).Allowances = fpv.value.([]*common.Allowance) 731 case PlanAssignment_FieldPathSelectorAppliedRegions: 732 (*target).AppliedRegions = fpv.value.([]string) 733 case PlanAssignment_FieldPathSelectorAppliedPlanSpecGeneration: 734 (*target).AppliedPlanSpecGeneration = fpv.value.(int64) 735 case PlanAssignment_FieldPathSelectorSource: 736 (*target).Source = fpv.value.(*accepted_plan.Reference) 737 default: 738 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fpv.selector)) 739 } 740 } 741 742 func (fpv *PlanAssignment_FieldTerminalPathValue) SetToRaw(target proto.Message) { 743 typedObject := target.(*PlanAssignment) 744 fpv.SetTo(&typedObject) 745 } 746 747 // CompareWith compares value in the 'PlanAssignment_FieldTerminalPathValue' with the value under path in 'PlanAssignment'. 748 func (fpv *PlanAssignment_FieldTerminalPathValue) CompareWith(source *PlanAssignment) (int, bool) { 749 switch fpv.selector { 750 case PlanAssignment_FieldPathSelectorName: 751 leftValue := fpv.value.(*Name) 752 rightValue := source.GetName() 753 if leftValue == nil { 754 if rightValue != nil { 755 return -1, true 756 } 757 return 0, true 758 } 759 if rightValue == nil { 760 return 1, true 761 } 762 if leftValue.String() == rightValue.String() { 763 return 0, true 764 } else if leftValue.String() < rightValue.String() { 765 return -1, true 766 } else { 767 return 1, true 768 } 769 case PlanAssignment_FieldPathSelectorMetadata: 770 return 0, false 771 case PlanAssignment_FieldPathSelectorDefaultRegionalPlan: 772 leftValue := fpv.value.(*plan.Reference) 773 rightValue := source.GetDefaultRegionalPlan() 774 if leftValue == nil { 775 if rightValue != nil { 776 return -1, true 777 } 778 return 0, true 779 } 780 if rightValue == nil { 781 return 1, true 782 } 783 if leftValue.String() == rightValue.String() { 784 return 0, true 785 } else if leftValue.String() < rightValue.String() { 786 return -1, true 787 } else { 788 return 1, true 789 } 790 case PlanAssignment_FieldPathSelectorService: 791 leftValue := fpv.value.(*meta_service.Reference) 792 rightValue := source.GetService() 793 if leftValue == nil { 794 if rightValue != nil { 795 return -1, true 796 } 797 return 0, true 798 } 799 if rightValue == nil { 800 return 1, true 801 } 802 if leftValue.String() == rightValue.String() { 803 return 0, true 804 } else if leftValue.String() < rightValue.String() { 805 return -1, true 806 } else { 807 return 1, true 808 } 809 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 810 return 0, false 811 case PlanAssignment_FieldPathSelectorExtensions: 812 return 0, false 813 case PlanAssignment_FieldPathSelectorAllowances: 814 return 0, false 815 case PlanAssignment_FieldPathSelectorAppliedRegions: 816 return 0, false 817 case PlanAssignment_FieldPathSelectorAppliedPlanSpecGeneration: 818 leftValue := fpv.value.(int64) 819 rightValue := source.GetAppliedPlanSpecGeneration() 820 if (leftValue) == (rightValue) { 821 return 0, true 822 } else if (leftValue) < (rightValue) { 823 return -1, true 824 } else { 825 return 1, true 826 } 827 case PlanAssignment_FieldPathSelectorSource: 828 leftValue := fpv.value.(*accepted_plan.Reference) 829 rightValue := source.GetSource() 830 if leftValue == nil { 831 if rightValue != nil { 832 return -1, true 833 } 834 return 0, true 835 } 836 if rightValue == nil { 837 return 1, true 838 } 839 if leftValue.String() == rightValue.String() { 840 return 0, true 841 } else if leftValue.String() < rightValue.String() { 842 return -1, true 843 } else { 844 return 1, true 845 } 846 default: 847 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fpv.selector)) 848 } 849 } 850 851 func (fpv *PlanAssignment_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 852 return fpv.CompareWith(source.(*PlanAssignment)) 853 } 854 855 type PlanAssignment_FieldSubPathValue struct { 856 PlanAssignment_FieldPath 857 subPathValue gotenobject.FieldPathValue 858 } 859 860 var _ PlanAssignment_FieldPathValue = (*PlanAssignment_FieldSubPathValue)(nil) 861 862 func (fpvs *PlanAssignment_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) { 863 res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue) 864 return res, ok 865 } 866 func (fpvs *PlanAssignment_FieldSubPathValue) AsRegionalPlanOverridesPathValue() (common.RegionalPlanAssignment_FieldPathValue, bool) { 867 res, ok := fpvs.subPathValue.(common.RegionalPlanAssignment_FieldPathValue) 868 return res, ok 869 } 870 func (fpvs *PlanAssignment_FieldSubPathValue) AsExtensionsPathValue() (common.Allowance_FieldPathValue, bool) { 871 res, ok := fpvs.subPathValue.(common.Allowance_FieldPathValue) 872 return res, ok 873 } 874 func (fpvs *PlanAssignment_FieldSubPathValue) AsAllowancesPathValue() (common.Allowance_FieldPathValue, bool) { 875 res, ok := fpvs.subPathValue.(common.Allowance_FieldPathValue) 876 return res, ok 877 } 878 879 func (fpvs *PlanAssignment_FieldSubPathValue) SetTo(target **PlanAssignment) { 880 if *target == nil { 881 *target = new(PlanAssignment) 882 } 883 switch fpvs.Selector() { 884 case PlanAssignment_FieldPathSelectorMetadata: 885 fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata) 886 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 887 panic("FieldPath setter is unsupported for array subpaths") 888 case PlanAssignment_FieldPathSelectorExtensions: 889 panic("FieldPath setter is unsupported for array subpaths") 890 case PlanAssignment_FieldPathSelectorAllowances: 891 panic("FieldPath setter is unsupported for array subpaths") 892 default: 893 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fpvs.Selector())) 894 } 895 } 896 897 func (fpvs *PlanAssignment_FieldSubPathValue) SetToRaw(target proto.Message) { 898 typedObject := target.(*PlanAssignment) 899 fpvs.SetTo(&typedObject) 900 } 901 902 func (fpvs *PlanAssignment_FieldSubPathValue) GetRawValue() interface{} { 903 return fpvs.subPathValue.GetRawValue() 904 } 905 906 func (fpvs *PlanAssignment_FieldSubPathValue) CompareWith(source *PlanAssignment) (int, bool) { 907 switch fpvs.Selector() { 908 case PlanAssignment_FieldPathSelectorMetadata: 909 return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata()) 910 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 911 return 0, false // repeated field 912 case PlanAssignment_FieldPathSelectorExtensions: 913 return 0, false // repeated field 914 case PlanAssignment_FieldPathSelectorAllowances: 915 return 0, false // repeated field 916 default: 917 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fpvs.Selector())) 918 } 919 } 920 921 func (fpvs *PlanAssignment_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 922 return fpvs.CompareWith(source.(*PlanAssignment)) 923 } 924 925 // PlanAssignment_FieldPathArrayItemValue allows storing single item in Path-specific values for PlanAssignment according to their type 926 // Present only for array (repeated) types. 927 type PlanAssignment_FieldPathArrayItemValue interface { 928 gotenobject.FieldPathArrayItemValue 929 PlanAssignment_FieldPath 930 ContainsValue(*PlanAssignment) bool 931 } 932 933 // ParsePlanAssignment_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 934 func ParsePlanAssignment_FieldPathArrayItemValue(pathStr, valueStr string) (PlanAssignment_FieldPathArrayItemValue, error) { 935 fp, err := ParsePlanAssignment_FieldPath(pathStr) 936 if err != nil { 937 return nil, err 938 } 939 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 940 if err != nil { 941 return nil, status.Errorf(codes.InvalidArgument, "error parsing PlanAssignment field path array item value from %s: %v", valueStr, err) 942 } 943 return fpaiv.(PlanAssignment_FieldPathArrayItemValue), nil 944 } 945 946 func MustParsePlanAssignment_FieldPathArrayItemValue(pathStr, valueStr string) PlanAssignment_FieldPathArrayItemValue { 947 fpaiv, err := ParsePlanAssignment_FieldPathArrayItemValue(pathStr, valueStr) 948 if err != nil { 949 panic(err) 950 } 951 return fpaiv 952 } 953 954 type PlanAssignment_FieldTerminalPathArrayItemValue struct { 955 PlanAssignment_FieldTerminalPath 956 value interface{} 957 } 958 959 var _ PlanAssignment_FieldPathArrayItemValue = (*PlanAssignment_FieldTerminalPathArrayItemValue)(nil) 960 961 // GetRawValue returns stored element value for array in object PlanAssignment as interface{} 962 func (fpaiv *PlanAssignment_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 963 return fpaiv.value 964 } 965 func (fpaiv *PlanAssignment_FieldTerminalPathArrayItemValue) AsRegionalPlanOverridesItemValue() (*common.RegionalPlanAssignment, bool) { 966 res, ok := fpaiv.value.(*common.RegionalPlanAssignment) 967 return res, ok 968 } 969 func (fpaiv *PlanAssignment_FieldTerminalPathArrayItemValue) AsExtensionsItemValue() (*common.Allowance, bool) { 970 res, ok := fpaiv.value.(*common.Allowance) 971 return res, ok 972 } 973 func (fpaiv *PlanAssignment_FieldTerminalPathArrayItemValue) AsAllowancesItemValue() (*common.Allowance, bool) { 974 res, ok := fpaiv.value.(*common.Allowance) 975 return res, ok 976 } 977 func (fpaiv *PlanAssignment_FieldTerminalPathArrayItemValue) AsAppliedRegionsItemValue() (string, bool) { 978 res, ok := fpaiv.value.(string) 979 return res, ok 980 } 981 982 func (fpaiv *PlanAssignment_FieldTerminalPathArrayItemValue) GetSingle(source *PlanAssignment) (interface{}, bool) { 983 return nil, false 984 } 985 986 func (fpaiv *PlanAssignment_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 987 return fpaiv.GetSingle(source.(*PlanAssignment)) 988 } 989 990 // Contains returns a boolean indicating if value that is being held is present in given 'PlanAssignment' 991 func (fpaiv *PlanAssignment_FieldTerminalPathArrayItemValue) ContainsValue(source *PlanAssignment) bool { 992 slice := fpaiv.PlanAssignment_FieldTerminalPath.Get(source) 993 for _, v := range slice { 994 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 995 if proto.Equal(asProtoMsg, v.(proto.Message)) { 996 return true 997 } 998 } else if reflect.DeepEqual(v, fpaiv.value) { 999 return true 1000 } 1001 } 1002 return false 1003 } 1004 1005 type PlanAssignment_FieldSubPathArrayItemValue struct { 1006 PlanAssignment_FieldPath 1007 subPathItemValue gotenobject.FieldPathArrayItemValue 1008 } 1009 1010 // GetRawValue returns stored array item value 1011 func (fpaivs *PlanAssignment_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 1012 return fpaivs.subPathItemValue.GetRawItemValue() 1013 } 1014 func (fpaivs *PlanAssignment_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) { 1015 res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue) 1016 return res, ok 1017 } 1018 func (fpaivs *PlanAssignment_FieldSubPathArrayItemValue) AsRegionalPlanOverridesPathItemValue() (common.RegionalPlanAssignment_FieldPathArrayItemValue, bool) { 1019 res, ok := fpaivs.subPathItemValue.(common.RegionalPlanAssignment_FieldPathArrayItemValue) 1020 return res, ok 1021 } 1022 func (fpaivs *PlanAssignment_FieldSubPathArrayItemValue) AsExtensionsPathItemValue() (common.Allowance_FieldPathArrayItemValue, bool) { 1023 res, ok := fpaivs.subPathItemValue.(common.Allowance_FieldPathArrayItemValue) 1024 return res, ok 1025 } 1026 func (fpaivs *PlanAssignment_FieldSubPathArrayItemValue) AsAllowancesPathItemValue() (common.Allowance_FieldPathArrayItemValue, bool) { 1027 res, ok := fpaivs.subPathItemValue.(common.Allowance_FieldPathArrayItemValue) 1028 return res, ok 1029 } 1030 1031 // Contains returns a boolean indicating if value that is being held is present in given 'PlanAssignment' 1032 func (fpaivs *PlanAssignment_FieldSubPathArrayItemValue) ContainsValue(source *PlanAssignment) bool { 1033 switch fpaivs.Selector() { 1034 case PlanAssignment_FieldPathSelectorMetadata: 1035 return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata()) 1036 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 1037 return false // repeated/map field 1038 case PlanAssignment_FieldPathSelectorExtensions: 1039 return false // repeated/map field 1040 case PlanAssignment_FieldPathSelectorAllowances: 1041 return false // repeated/map field 1042 default: 1043 panic(fmt.Sprintf("Invalid selector for PlanAssignment: %d", fpaivs.Selector())) 1044 } 1045 } 1046 1047 // PlanAssignment_FieldPathArrayOfValues allows storing slice of values for PlanAssignment fields according to their type 1048 type PlanAssignment_FieldPathArrayOfValues interface { 1049 gotenobject.FieldPathArrayOfValues 1050 PlanAssignment_FieldPath 1051 } 1052 1053 func ParsePlanAssignment_FieldPathArrayOfValues(pathStr, valuesStr string) (PlanAssignment_FieldPathArrayOfValues, error) { 1054 fp, err := ParsePlanAssignment_FieldPath(pathStr) 1055 if err != nil { 1056 return nil, err 1057 } 1058 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 1059 if err != nil { 1060 return nil, status.Errorf(codes.InvalidArgument, "error parsing PlanAssignment field path array of values from %s: %v", valuesStr, err) 1061 } 1062 return fpaov.(PlanAssignment_FieldPathArrayOfValues), nil 1063 } 1064 1065 func MustParsePlanAssignment_FieldPathArrayOfValues(pathStr, valuesStr string) PlanAssignment_FieldPathArrayOfValues { 1066 fpaov, err := ParsePlanAssignment_FieldPathArrayOfValues(pathStr, valuesStr) 1067 if err != nil { 1068 panic(err) 1069 } 1070 return fpaov 1071 } 1072 1073 type PlanAssignment_FieldTerminalPathArrayOfValues struct { 1074 PlanAssignment_FieldTerminalPath 1075 values interface{} 1076 } 1077 1078 var _ PlanAssignment_FieldPathArrayOfValues = (*PlanAssignment_FieldTerminalPathArrayOfValues)(nil) 1079 1080 func (fpaov *PlanAssignment_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 1081 switch fpaov.selector { 1082 case PlanAssignment_FieldPathSelectorName: 1083 for _, v := range fpaov.values.([]*Name) { 1084 values = append(values, v) 1085 } 1086 case PlanAssignment_FieldPathSelectorMetadata: 1087 for _, v := range fpaov.values.([]*meta.Meta) { 1088 values = append(values, v) 1089 } 1090 case PlanAssignment_FieldPathSelectorDefaultRegionalPlan: 1091 for _, v := range fpaov.values.([]*plan.Reference) { 1092 values = append(values, v) 1093 } 1094 case PlanAssignment_FieldPathSelectorService: 1095 for _, v := range fpaov.values.([]*meta_service.Reference) { 1096 values = append(values, v) 1097 } 1098 case PlanAssignment_FieldPathSelectorRegionalPlanOverrides: 1099 for _, v := range fpaov.values.([][]*common.RegionalPlanAssignment) { 1100 values = append(values, v) 1101 } 1102 case PlanAssignment_FieldPathSelectorExtensions: 1103 for _, v := range fpaov.values.([][]*common.Allowance) { 1104 values = append(values, v) 1105 } 1106 case PlanAssignment_FieldPathSelectorAllowances: 1107 for _, v := range fpaov.values.([][]*common.Allowance) { 1108 values = append(values, v) 1109 } 1110 case PlanAssignment_FieldPathSelectorAppliedRegions: 1111 for _, v := range fpaov.values.([][]string) { 1112 values = append(values, v) 1113 } 1114 case PlanAssignment_FieldPathSelectorAppliedPlanSpecGeneration: 1115 for _, v := range fpaov.values.([]int64) { 1116 values = append(values, v) 1117 } 1118 case PlanAssignment_FieldPathSelectorSource: 1119 for _, v := range fpaov.values.([]*accepted_plan.Reference) { 1120 values = append(values, v) 1121 } 1122 } 1123 return 1124 } 1125 func (fpaov *PlanAssignment_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) { 1126 res, ok := fpaov.values.([]*Name) 1127 return res, ok 1128 } 1129 func (fpaov *PlanAssignment_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) { 1130 res, ok := fpaov.values.([]*meta.Meta) 1131 return res, ok 1132 } 1133 func (fpaov *PlanAssignment_FieldTerminalPathArrayOfValues) AsDefaultRegionalPlanArrayOfValues() ([]*plan.Reference, bool) { 1134 res, ok := fpaov.values.([]*plan.Reference) 1135 return res, ok 1136 } 1137 func (fpaov *PlanAssignment_FieldTerminalPathArrayOfValues) AsServiceArrayOfValues() ([]*meta_service.Reference, bool) { 1138 res, ok := fpaov.values.([]*meta_service.Reference) 1139 return res, ok 1140 } 1141 func (fpaov *PlanAssignment_FieldTerminalPathArrayOfValues) AsRegionalPlanOverridesArrayOfValues() ([][]*common.RegionalPlanAssignment, bool) { 1142 res, ok := fpaov.values.([][]*common.RegionalPlanAssignment) 1143 return res, ok 1144 } 1145 func (fpaov *PlanAssignment_FieldTerminalPathArrayOfValues) AsExtensionsArrayOfValues() ([][]*common.Allowance, bool) { 1146 res, ok := fpaov.values.([][]*common.Allowance) 1147 return res, ok 1148 } 1149 func (fpaov *PlanAssignment_FieldTerminalPathArrayOfValues) AsAllowancesArrayOfValues() ([][]*common.Allowance, bool) { 1150 res, ok := fpaov.values.([][]*common.Allowance) 1151 return res, ok 1152 } 1153 func (fpaov *PlanAssignment_FieldTerminalPathArrayOfValues) AsAppliedRegionsArrayOfValues() ([][]string, bool) { 1154 res, ok := fpaov.values.([][]string) 1155 return res, ok 1156 } 1157 func (fpaov *PlanAssignment_FieldTerminalPathArrayOfValues) AsAppliedPlanSpecGenerationArrayOfValues() ([]int64, bool) { 1158 res, ok := fpaov.values.([]int64) 1159 return res, ok 1160 } 1161 func (fpaov *PlanAssignment_FieldTerminalPathArrayOfValues) AsSourceArrayOfValues() ([]*accepted_plan.Reference, bool) { 1162 res, ok := fpaov.values.([]*accepted_plan.Reference) 1163 return res, ok 1164 } 1165 1166 type PlanAssignment_FieldSubPathArrayOfValues struct { 1167 PlanAssignment_FieldPath 1168 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 1169 } 1170 1171 var _ PlanAssignment_FieldPathArrayOfValues = (*PlanAssignment_FieldSubPathArrayOfValues)(nil) 1172 1173 func (fpsaov *PlanAssignment_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 1174 return fpsaov.subPathArrayOfValues.GetRawValues() 1175 } 1176 func (fpsaov *PlanAssignment_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) { 1177 res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues) 1178 return res, ok 1179 } 1180 func (fpsaov *PlanAssignment_FieldSubPathArrayOfValues) AsRegionalPlanOverridesPathArrayOfValues() (common.RegionalPlanAssignment_FieldPathArrayOfValues, bool) { 1181 res, ok := fpsaov.subPathArrayOfValues.(common.RegionalPlanAssignment_FieldPathArrayOfValues) 1182 return res, ok 1183 } 1184 func (fpsaov *PlanAssignment_FieldSubPathArrayOfValues) AsExtensionsPathArrayOfValues() (common.Allowance_FieldPathArrayOfValues, bool) { 1185 res, ok := fpsaov.subPathArrayOfValues.(common.Allowance_FieldPathArrayOfValues) 1186 return res, ok 1187 } 1188 func (fpsaov *PlanAssignment_FieldSubPathArrayOfValues) AsAllowancesPathArrayOfValues() (common.Allowance_FieldPathArrayOfValues, bool) { 1189 res, ok := fpsaov.subPathArrayOfValues.(common.Allowance_FieldPathArrayOfValues) 1190 return res, ok 1191 }