github.com/cloudwan/edgelq-sdk@v1.15.4/iam/resources/v1alpha2/project/project.pb.fieldpath.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/iam/proto/v1alpha2/project.proto 3 // DO NOT EDIT!!! 4 5 package project 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_common "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/common" 27 organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/organization" 28 meta_service "github.com/cloudwan/edgelq-sdk/meta/resources/v1alpha2/service" 29 meta "github.com/cloudwan/goten-sdk/types/meta" 30 multi_region_policy "github.com/cloudwan/goten-sdk/types/multi_region_policy" 31 ) 32 33 // ensure the imports are used 34 var ( 35 _ = new(json.Marshaler) 36 _ = new(fmt.Stringer) 37 _ = reflect.DeepEqual 38 _ = strings.Builder{} 39 _ = time.Second 40 41 _ = strcase.ToLowerCamel 42 _ = codes.NotFound 43 _ = status.Status{} 44 _ = protojson.UnmarshalOptions{} 45 _ = new(proto.Message) 46 _ = protoregistry.GlobalTypes 47 48 _ = new(gotenobject.FieldPath) 49 ) 50 51 // make sure we're using proto imports 52 var ( 53 _ = &iam_common.PCR{} 54 _ = &organization.Organization{} 55 _ = &meta_service.Service{} 56 _ = &meta.Meta{} 57 _ = &multi_region_policy.MultiRegionPolicy{} 58 ) 59 60 // FieldPath provides implementation to handle 61 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 62 type Project_FieldPath interface { 63 gotenobject.FieldPath 64 Selector() Project_FieldPathSelector 65 Get(source *Project) []interface{} 66 GetSingle(source *Project) (interface{}, bool) 67 ClearValue(item *Project) 68 69 // Those methods build corresponding Project_FieldPathValue 70 // (or array of values) and holds passed value. Panics if injected type is incorrect. 71 WithIValue(value interface{}) Project_FieldPathValue 72 WithIArrayOfValues(values interface{}) Project_FieldPathArrayOfValues 73 WithIArrayItemValue(value interface{}) Project_FieldPathArrayItemValue 74 } 75 76 type Project_FieldPathSelector int32 77 78 const ( 79 Project_FieldPathSelectorName Project_FieldPathSelector = 0 80 Project_FieldPathSelectorTitle Project_FieldPathSelector = 1 81 Project_FieldPathSelectorParentOrganization Project_FieldPathSelector = 2 82 Project_FieldPathSelectorRootOrganization Project_FieldPathSelector = 3 83 Project_FieldPathSelectorAncestryPath Project_FieldPathSelector = 4 84 Project_FieldPathSelectorMetadata Project_FieldPathSelector = 5 85 Project_FieldPathSelectorMultiRegionPolicy Project_FieldPathSelector = 6 86 Project_FieldPathSelectorEnabledServices Project_FieldPathSelector = 7 87 Project_FieldPathSelectorBusinessTier Project_FieldPathSelector = 8 88 Project_FieldPathSelectorServiceTiers Project_FieldPathSelector = 9 89 Project_FieldPathSelectorServiceErrors Project_FieldPathSelector = 10 90 ) 91 92 func (s Project_FieldPathSelector) String() string { 93 switch s { 94 case Project_FieldPathSelectorName: 95 return "name" 96 case Project_FieldPathSelectorTitle: 97 return "title" 98 case Project_FieldPathSelectorParentOrganization: 99 return "parent_organization" 100 case Project_FieldPathSelectorRootOrganization: 101 return "root_organization" 102 case Project_FieldPathSelectorAncestryPath: 103 return "ancestry_path" 104 case Project_FieldPathSelectorMetadata: 105 return "metadata" 106 case Project_FieldPathSelectorMultiRegionPolicy: 107 return "multi_region_policy" 108 case Project_FieldPathSelectorEnabledServices: 109 return "enabled_services" 110 case Project_FieldPathSelectorBusinessTier: 111 return "business_tier" 112 case Project_FieldPathSelectorServiceTiers: 113 return "service_tiers" 114 case Project_FieldPathSelectorServiceErrors: 115 return "service_errors" 116 default: 117 panic(fmt.Sprintf("Invalid selector for Project: %d", s)) 118 } 119 } 120 121 func BuildProject_FieldPath(fp gotenobject.RawFieldPath) (Project_FieldPath, error) { 122 if len(fp) == 0 { 123 return nil, status.Error(codes.InvalidArgument, "empty field path for object Project") 124 } 125 if len(fp) == 1 { 126 switch fp[0] { 127 case "name": 128 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorName}, nil 129 case "title": 130 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorTitle}, nil 131 case "parent_organization", "parentOrganization", "parent-organization": 132 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorParentOrganization}, nil 133 case "root_organization", "rootOrganization", "root-organization": 134 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorRootOrganization}, nil 135 case "ancestry_path", "ancestryPath", "ancestry-path": 136 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorAncestryPath}, nil 137 case "metadata": 138 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorMetadata}, nil 139 case "multi_region_policy", "multiRegionPolicy", "multi-region-policy": 140 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorMultiRegionPolicy}, nil 141 case "enabled_services", "enabledServices", "enabled-services": 142 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorEnabledServices}, nil 143 case "business_tier", "businessTier", "business-tier": 144 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorBusinessTier}, nil 145 case "service_tiers", "serviceTiers", "service-tiers": 146 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorServiceTiers}, nil 147 case "service_errors", "serviceErrors", "service-errors": 148 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorServiceErrors}, nil 149 } 150 } else { 151 switch fp[0] { 152 case "metadata": 153 if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil { 154 return nil, err 155 } else { 156 return &Project_FieldSubPath{selector: Project_FieldPathSelectorMetadata, subPath: subpath}, nil 157 } 158 case "multi_region_policy", "multiRegionPolicy", "multi-region-policy": 159 if subpath, err := multi_region_policy.BuildMultiRegionPolicy_FieldPath(fp[1:]); err != nil { 160 return nil, err 161 } else { 162 return &Project_FieldSubPath{selector: Project_FieldPathSelectorMultiRegionPolicy, subPath: subpath}, nil 163 } 164 case "service_tiers", "serviceTiers", "service-tiers": 165 if subpath, err := iam_common.BuildServiceBusinessTier_FieldPath(fp[1:]); err != nil { 166 return nil, err 167 } else { 168 return &Project_FieldSubPath{selector: Project_FieldPathSelectorServiceTiers, subPath: subpath}, nil 169 } 170 case "service_errors", "serviceErrors", "service-errors": 171 if len(fp) > 2 { 172 return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object Project)", fp) 173 } 174 return &Project_FieldPathMap{selector: Project_FieldPathSelectorServiceErrors, key: fp[1]}, nil 175 } 176 } 177 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Project", fp) 178 } 179 180 func ParseProject_FieldPath(rawField string) (Project_FieldPath, error) { 181 fp, err := gotenobject.ParseRawFieldPath(rawField) 182 if err != nil { 183 return nil, err 184 } 185 return BuildProject_FieldPath(fp) 186 } 187 188 func MustParseProject_FieldPath(rawField string) Project_FieldPath { 189 fp, err := ParseProject_FieldPath(rawField) 190 if err != nil { 191 panic(err) 192 } 193 return fp 194 } 195 196 type Project_FieldTerminalPath struct { 197 selector Project_FieldPathSelector 198 } 199 200 var _ Project_FieldPath = (*Project_FieldTerminalPath)(nil) 201 202 func (fp *Project_FieldTerminalPath) Selector() Project_FieldPathSelector { 203 return fp.selector 204 } 205 206 // String returns path representation in proto convention 207 func (fp *Project_FieldTerminalPath) String() string { 208 return fp.selector.String() 209 } 210 211 // JSONString returns path representation is JSON convention 212 func (fp *Project_FieldTerminalPath) JSONString() string { 213 return strcase.ToLowerCamel(fp.String()) 214 } 215 216 // Get returns all values pointed by specific field from source Project 217 func (fp *Project_FieldTerminalPath) Get(source *Project) (values []interface{}) { 218 if source != nil { 219 switch fp.selector { 220 case Project_FieldPathSelectorName: 221 if source.Name != nil { 222 values = append(values, source.Name) 223 } 224 case Project_FieldPathSelectorTitle: 225 values = append(values, source.Title) 226 case Project_FieldPathSelectorParentOrganization: 227 if source.ParentOrganization != nil { 228 values = append(values, source.ParentOrganization) 229 } 230 case Project_FieldPathSelectorRootOrganization: 231 if source.RootOrganization != nil { 232 values = append(values, source.RootOrganization) 233 } 234 case Project_FieldPathSelectorAncestryPath: 235 for _, value := range source.GetAncestryPath() { 236 values = append(values, value) 237 } 238 case Project_FieldPathSelectorMetadata: 239 if source.Metadata != nil { 240 values = append(values, source.Metadata) 241 } 242 case Project_FieldPathSelectorMultiRegionPolicy: 243 if source.MultiRegionPolicy != nil { 244 values = append(values, source.MultiRegionPolicy) 245 } 246 case Project_FieldPathSelectorEnabledServices: 247 for _, value := range source.GetEnabledServices() { 248 values = append(values, value) 249 } 250 case Project_FieldPathSelectorBusinessTier: 251 values = append(values, source.BusinessTier) 252 case Project_FieldPathSelectorServiceTiers: 253 for _, value := range source.GetServiceTiers() { 254 values = append(values, value) 255 } 256 case Project_FieldPathSelectorServiceErrors: 257 if source.ServiceErrors != nil { 258 values = append(values, source.ServiceErrors) 259 } 260 default: 261 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 262 } 263 } 264 return 265 } 266 267 func (fp *Project_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 268 return fp.Get(source.(*Project)) 269 } 270 271 // GetSingle returns value pointed by specific field of from source Project 272 func (fp *Project_FieldTerminalPath) GetSingle(source *Project) (interface{}, bool) { 273 switch fp.selector { 274 case Project_FieldPathSelectorName: 275 res := source.GetName() 276 return res, res != nil 277 case Project_FieldPathSelectorTitle: 278 return source.GetTitle(), source != nil 279 case Project_FieldPathSelectorParentOrganization: 280 res := source.GetParentOrganization() 281 return res, res != nil 282 case Project_FieldPathSelectorRootOrganization: 283 res := source.GetRootOrganization() 284 return res, res != nil 285 case Project_FieldPathSelectorAncestryPath: 286 res := source.GetAncestryPath() 287 return res, res != nil 288 case Project_FieldPathSelectorMetadata: 289 res := source.GetMetadata() 290 return res, res != nil 291 case Project_FieldPathSelectorMultiRegionPolicy: 292 res := source.GetMultiRegionPolicy() 293 return res, res != nil 294 case Project_FieldPathSelectorEnabledServices: 295 res := source.GetEnabledServices() 296 return res, res != nil 297 case Project_FieldPathSelectorBusinessTier: 298 return source.GetBusinessTier(), source != nil 299 case Project_FieldPathSelectorServiceTiers: 300 res := source.GetServiceTiers() 301 return res, res != nil 302 case Project_FieldPathSelectorServiceErrors: 303 res := source.GetServiceErrors() 304 return res, res != nil 305 default: 306 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 307 } 308 } 309 310 func (fp *Project_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 311 return fp.GetSingle(source.(*Project)) 312 } 313 314 // GetDefault returns a default value of the field type 315 func (fp *Project_FieldTerminalPath) GetDefault() interface{} { 316 switch fp.selector { 317 case Project_FieldPathSelectorName: 318 return (*Name)(nil) 319 case Project_FieldPathSelectorTitle: 320 return "" 321 case Project_FieldPathSelectorParentOrganization: 322 return (*organization.Reference)(nil) 323 case Project_FieldPathSelectorRootOrganization: 324 return (*organization.Reference)(nil) 325 case Project_FieldPathSelectorAncestryPath: 326 return ([]*organization.Reference)(nil) 327 case Project_FieldPathSelectorMetadata: 328 return (*meta.Meta)(nil) 329 case Project_FieldPathSelectorMultiRegionPolicy: 330 return (*multi_region_policy.MultiRegionPolicy)(nil) 331 case Project_FieldPathSelectorEnabledServices: 332 return ([]*meta_service.Reference)(nil) 333 case Project_FieldPathSelectorBusinessTier: 334 return iam_common.BusinessTier_UNDEFINED 335 case Project_FieldPathSelectorServiceTiers: 336 return ([]*iam_common.ServiceBusinessTier)(nil) 337 case Project_FieldPathSelectorServiceErrors: 338 return (map[string]*iam_common.ServiceErrors)(nil) 339 default: 340 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 341 } 342 } 343 344 func (fp *Project_FieldTerminalPath) ClearValue(item *Project) { 345 if item != nil { 346 switch fp.selector { 347 case Project_FieldPathSelectorName: 348 item.Name = nil 349 case Project_FieldPathSelectorTitle: 350 item.Title = "" 351 case Project_FieldPathSelectorParentOrganization: 352 item.ParentOrganization = nil 353 case Project_FieldPathSelectorRootOrganization: 354 item.RootOrganization = nil 355 case Project_FieldPathSelectorAncestryPath: 356 item.AncestryPath = nil 357 case Project_FieldPathSelectorMetadata: 358 item.Metadata = nil 359 case Project_FieldPathSelectorMultiRegionPolicy: 360 item.MultiRegionPolicy = nil 361 case Project_FieldPathSelectorEnabledServices: 362 item.EnabledServices = nil 363 case Project_FieldPathSelectorBusinessTier: 364 item.BusinessTier = iam_common.BusinessTier_UNDEFINED 365 case Project_FieldPathSelectorServiceTiers: 366 item.ServiceTiers = nil 367 case Project_FieldPathSelectorServiceErrors: 368 item.ServiceErrors = nil 369 default: 370 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 371 } 372 } 373 } 374 375 func (fp *Project_FieldTerminalPath) ClearValueRaw(item proto.Message) { 376 fp.ClearValue(item.(*Project)) 377 } 378 379 // IsLeaf - whether field path is holds simple value 380 func (fp *Project_FieldTerminalPath) IsLeaf() bool { 381 return fp.selector == Project_FieldPathSelectorName || 382 fp.selector == Project_FieldPathSelectorTitle || 383 fp.selector == Project_FieldPathSelectorParentOrganization || 384 fp.selector == Project_FieldPathSelectorRootOrganization || 385 fp.selector == Project_FieldPathSelectorAncestryPath || 386 fp.selector == Project_FieldPathSelectorEnabledServices || 387 fp.selector == Project_FieldPathSelectorBusinessTier 388 } 389 390 func (fp *Project_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 391 return []gotenobject.FieldPath{fp} 392 } 393 394 func (fp *Project_FieldTerminalPath) WithIValue(value interface{}) Project_FieldPathValue { 395 switch fp.selector { 396 case Project_FieldPathSelectorName: 397 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.(*Name)} 398 case Project_FieldPathSelectorTitle: 399 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.(string)} 400 case Project_FieldPathSelectorParentOrganization: 401 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.(*organization.Reference)} 402 case Project_FieldPathSelectorRootOrganization: 403 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.(*organization.Reference)} 404 case Project_FieldPathSelectorAncestryPath: 405 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.([]*organization.Reference)} 406 case Project_FieldPathSelectorMetadata: 407 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.(*meta.Meta)} 408 case Project_FieldPathSelectorMultiRegionPolicy: 409 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.(*multi_region_policy.MultiRegionPolicy)} 410 case Project_FieldPathSelectorEnabledServices: 411 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.([]*meta_service.Reference)} 412 case Project_FieldPathSelectorBusinessTier: 413 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.(iam_common.BusinessTier)} 414 case Project_FieldPathSelectorServiceTiers: 415 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.([]*iam_common.ServiceBusinessTier)} 416 case Project_FieldPathSelectorServiceErrors: 417 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.(map[string]*iam_common.ServiceErrors)} 418 default: 419 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 420 } 421 } 422 423 func (fp *Project_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 424 return fp.WithIValue(value) 425 } 426 427 func (fp *Project_FieldTerminalPath) WithIArrayOfValues(values interface{}) Project_FieldPathArrayOfValues { 428 fpaov := &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp} 429 switch fp.selector { 430 case Project_FieldPathSelectorName: 431 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([]*Name)} 432 case Project_FieldPathSelectorTitle: 433 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([]string)} 434 case Project_FieldPathSelectorParentOrganization: 435 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([]*organization.Reference)} 436 case Project_FieldPathSelectorRootOrganization: 437 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([]*organization.Reference)} 438 case Project_FieldPathSelectorAncestryPath: 439 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([][]*organization.Reference)} 440 case Project_FieldPathSelectorMetadata: 441 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([]*meta.Meta)} 442 case Project_FieldPathSelectorMultiRegionPolicy: 443 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([]*multi_region_policy.MultiRegionPolicy)} 444 case Project_FieldPathSelectorEnabledServices: 445 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([][]*meta_service.Reference)} 446 case Project_FieldPathSelectorBusinessTier: 447 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([]iam_common.BusinessTier)} 448 case Project_FieldPathSelectorServiceTiers: 449 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([][]*iam_common.ServiceBusinessTier)} 450 case Project_FieldPathSelectorServiceErrors: 451 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([]map[string]*iam_common.ServiceErrors)} 452 default: 453 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 454 } 455 return fpaov 456 } 457 458 func (fp *Project_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 459 return fp.WithIArrayOfValues(values) 460 } 461 462 func (fp *Project_FieldTerminalPath) WithIArrayItemValue(value interface{}) Project_FieldPathArrayItemValue { 463 switch fp.selector { 464 case Project_FieldPathSelectorAncestryPath: 465 return &Project_FieldTerminalPathArrayItemValue{Project_FieldTerminalPath: *fp, value: value.(*organization.Reference)} 466 case Project_FieldPathSelectorEnabledServices: 467 return &Project_FieldTerminalPathArrayItemValue{Project_FieldTerminalPath: *fp, value: value.(*meta_service.Reference)} 468 case Project_FieldPathSelectorServiceTiers: 469 return &Project_FieldTerminalPathArrayItemValue{Project_FieldTerminalPath: *fp, value: value.(*iam_common.ServiceBusinessTier)} 470 default: 471 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 472 } 473 } 474 475 func (fp *Project_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 476 return fp.WithIArrayItemValue(value) 477 } 478 479 // FieldPath for map type with additional Key information 480 type Project_FieldPathMap struct { 481 key string 482 selector Project_FieldPathSelector 483 } 484 485 var _ Project_FieldPath = (*Project_FieldPathMap)(nil) 486 487 func (fpm *Project_FieldPathMap) Selector() Project_FieldPathSelector { 488 return fpm.selector 489 } 490 491 func (fpm *Project_FieldPathMap) Key() string { 492 return fpm.key 493 } 494 495 // String returns path representation in proto convention 496 func (fpm *Project_FieldPathMap) String() string { 497 return fpm.selector.String() + "." + fpm.key 498 } 499 500 // JSONString returns path representation is JSON convention. Note that map keys are not transformed 501 func (fpm *Project_FieldPathMap) JSONString() string { 502 return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key 503 } 504 505 // Get returns all values pointed by selected field map key from source Project 506 func (fpm *Project_FieldPathMap) Get(source *Project) (values []interface{}) { 507 switch fpm.selector { 508 case Project_FieldPathSelectorServiceErrors: 509 if value, ok := source.GetServiceErrors()[fpm.key]; ok { 510 values = append(values, value) 511 } 512 default: 513 panic(fmt.Sprintf("Invalid selector for Project: %d", fpm.selector)) 514 } 515 return 516 } 517 518 func (fpm *Project_FieldPathMap) GetRaw(source proto.Message) []interface{} { 519 return fpm.Get(source.(*Project)) 520 } 521 522 // GetSingle returns value by selected field map key from source Project 523 func (fpm *Project_FieldPathMap) GetSingle(source *Project) (interface{}, bool) { 524 switch fpm.selector { 525 case Project_FieldPathSelectorServiceErrors: 526 res, ok := source.GetServiceErrors()[fpm.key] 527 return res, ok 528 default: 529 panic(fmt.Sprintf("Invalid selector for Project: %d", fpm.selector)) 530 } 531 } 532 533 func (fpm *Project_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) { 534 return fpm.GetSingle(source.(*Project)) 535 } 536 537 // GetDefault returns a default value of the field type 538 func (fpm *Project_FieldPathMap) GetDefault() interface{} { 539 switch fpm.selector { 540 case Project_FieldPathSelectorServiceErrors: 541 var v *iam_common.ServiceErrors 542 return v 543 default: 544 panic(fmt.Sprintf("Invalid selector for Project: %d", fpm.selector)) 545 } 546 } 547 548 func (fpm *Project_FieldPathMap) ClearValue(item *Project) { 549 if item != nil { 550 switch fpm.selector { 551 case Project_FieldPathSelectorServiceErrors: 552 delete(item.ServiceErrors, fpm.key) 553 default: 554 panic(fmt.Sprintf("Invalid selector for Project: %d", fpm.selector)) 555 } 556 } 557 } 558 559 func (fpm *Project_FieldPathMap) ClearValueRaw(item proto.Message) { 560 fpm.ClearValue(item.(*Project)) 561 } 562 563 // IsLeaf - whether field path is holds simple value 564 func (fpm *Project_FieldPathMap) IsLeaf() bool { 565 switch fpm.selector { 566 case Project_FieldPathSelectorServiceErrors: 567 return false 568 default: 569 panic(fmt.Sprintf("Invalid selector for Project: %d", fpm.selector)) 570 } 571 } 572 573 func (fpm *Project_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 574 return []gotenobject.FieldPath{fpm} 575 } 576 577 func (fpm *Project_FieldPathMap) WithIValue(value interface{}) Project_FieldPathValue { 578 switch fpm.selector { 579 case Project_FieldPathSelectorServiceErrors: 580 return &Project_FieldPathMapValue{Project_FieldPathMap: *fpm, value: value.(*iam_common.ServiceErrors)} 581 default: 582 panic(fmt.Sprintf("Invalid selector for Project: %d", fpm.selector)) 583 } 584 } 585 586 func (fpm *Project_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 587 return fpm.WithIValue(value) 588 } 589 590 func (fpm *Project_FieldPathMap) WithIArrayOfValues(values interface{}) Project_FieldPathArrayOfValues { 591 switch fpm.selector { 592 case Project_FieldPathSelectorServiceErrors: 593 return &Project_FieldPathMapArrayOfValues{Project_FieldPathMap: *fpm, values: values.([]*iam_common.ServiceErrors)} 594 default: 595 panic(fmt.Sprintf("Invalid selector for Project: %d", fpm.selector)) 596 } 597 } 598 599 func (fpm *Project_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 600 return fpm.WithIArrayOfValues(values) 601 } 602 603 func (fpm *Project_FieldPathMap) WithIArrayItemValue(value interface{}) Project_FieldPathArrayItemValue { 604 panic("Cannot create array item value from map fieldpath") 605 } 606 607 func (fpm *Project_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 608 return fpm.WithIArrayItemValue(value) 609 } 610 611 type Project_FieldSubPath struct { 612 selector Project_FieldPathSelector 613 subPath gotenobject.FieldPath 614 } 615 616 var _ Project_FieldPath = (*Project_FieldSubPath)(nil) 617 618 func (fps *Project_FieldSubPath) Selector() Project_FieldPathSelector { 619 return fps.selector 620 } 621 func (fps *Project_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) { 622 res, ok := fps.subPath.(meta.Meta_FieldPath) 623 return res, ok 624 } 625 func (fps *Project_FieldSubPath) AsMultiRegionPolicySubPath() (multi_region_policy.MultiRegionPolicy_FieldPath, bool) { 626 res, ok := fps.subPath.(multi_region_policy.MultiRegionPolicy_FieldPath) 627 return res, ok 628 } 629 func (fps *Project_FieldSubPath) AsServiceTiersSubPath() (iam_common.ServiceBusinessTier_FieldPath, bool) { 630 res, ok := fps.subPath.(iam_common.ServiceBusinessTier_FieldPath) 631 return res, ok 632 } 633 634 // String returns path representation in proto convention 635 func (fps *Project_FieldSubPath) String() string { 636 return fps.selector.String() + "." + fps.subPath.String() 637 } 638 639 // JSONString returns path representation is JSON convention 640 func (fps *Project_FieldSubPath) JSONString() string { 641 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 642 } 643 644 // Get returns all values pointed by selected field from source Project 645 func (fps *Project_FieldSubPath) Get(source *Project) (values []interface{}) { 646 switch fps.selector { 647 case Project_FieldPathSelectorMetadata: 648 values = append(values, fps.subPath.GetRaw(source.GetMetadata())...) 649 case Project_FieldPathSelectorMultiRegionPolicy: 650 values = append(values, fps.subPath.GetRaw(source.GetMultiRegionPolicy())...) 651 case Project_FieldPathSelectorServiceTiers: 652 for _, item := range source.GetServiceTiers() { 653 values = append(values, fps.subPath.GetRaw(item)...) 654 } 655 default: 656 panic(fmt.Sprintf("Invalid selector for Project: %d", fps.selector)) 657 } 658 return 659 } 660 661 func (fps *Project_FieldSubPath) GetRaw(source proto.Message) []interface{} { 662 return fps.Get(source.(*Project)) 663 } 664 665 // GetSingle returns value of selected field from source Project 666 func (fps *Project_FieldSubPath) GetSingle(source *Project) (interface{}, bool) { 667 switch fps.selector { 668 case Project_FieldPathSelectorMetadata: 669 if source.GetMetadata() == nil { 670 return nil, false 671 } 672 return fps.subPath.GetSingleRaw(source.GetMetadata()) 673 case Project_FieldPathSelectorMultiRegionPolicy: 674 if source.GetMultiRegionPolicy() == nil { 675 return nil, false 676 } 677 return fps.subPath.GetSingleRaw(source.GetMultiRegionPolicy()) 678 case Project_FieldPathSelectorServiceTiers: 679 if len(source.GetServiceTiers()) == 0 { 680 return nil, false 681 } 682 return fps.subPath.GetSingleRaw(source.GetServiceTiers()[0]) 683 default: 684 panic(fmt.Sprintf("Invalid selector for Project: %d", fps.selector)) 685 } 686 } 687 688 func (fps *Project_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 689 return fps.GetSingle(source.(*Project)) 690 } 691 692 // GetDefault returns a default value of the field type 693 func (fps *Project_FieldSubPath) GetDefault() interface{} { 694 return fps.subPath.GetDefault() 695 } 696 697 func (fps *Project_FieldSubPath) ClearValue(item *Project) { 698 if item != nil { 699 switch fps.selector { 700 case Project_FieldPathSelectorMetadata: 701 fps.subPath.ClearValueRaw(item.Metadata) 702 case Project_FieldPathSelectorMultiRegionPolicy: 703 fps.subPath.ClearValueRaw(item.MultiRegionPolicy) 704 case Project_FieldPathSelectorServiceTiers: 705 for _, subItem := range item.ServiceTiers { 706 fps.subPath.ClearValueRaw(subItem) 707 } 708 default: 709 panic(fmt.Sprintf("Invalid selector for Project: %d", fps.selector)) 710 } 711 } 712 } 713 714 func (fps *Project_FieldSubPath) ClearValueRaw(item proto.Message) { 715 fps.ClearValue(item.(*Project)) 716 } 717 718 // IsLeaf - whether field path is holds simple value 719 func (fps *Project_FieldSubPath) IsLeaf() bool { 720 return fps.subPath.IsLeaf() 721 } 722 723 func (fps *Project_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 724 iPaths := []gotenobject.FieldPath{&Project_FieldTerminalPath{selector: fps.selector}} 725 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 726 return iPaths 727 } 728 729 func (fps *Project_FieldSubPath) WithIValue(value interface{}) Project_FieldPathValue { 730 return &Project_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 731 } 732 733 func (fps *Project_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 734 return fps.WithIValue(value) 735 } 736 737 func (fps *Project_FieldSubPath) WithIArrayOfValues(values interface{}) Project_FieldPathArrayOfValues { 738 return &Project_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 739 } 740 741 func (fps *Project_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 742 return fps.WithIArrayOfValues(values) 743 } 744 745 func (fps *Project_FieldSubPath) WithIArrayItemValue(value interface{}) Project_FieldPathArrayItemValue { 746 return &Project_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 747 } 748 749 func (fps *Project_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 750 return fps.WithIArrayItemValue(value) 751 } 752 753 // Project_FieldPathValue allows storing values for Project fields according to their type 754 type Project_FieldPathValue interface { 755 Project_FieldPath 756 gotenobject.FieldPathValue 757 SetTo(target **Project) 758 CompareWith(*Project) (cmp int, comparable bool) 759 } 760 761 func ParseProject_FieldPathValue(pathStr, valueStr string) (Project_FieldPathValue, error) { 762 fp, err := ParseProject_FieldPath(pathStr) 763 if err != nil { 764 return nil, err 765 } 766 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 767 if err != nil { 768 return nil, status.Errorf(codes.InvalidArgument, "error parsing Project field path value from %s: %v", valueStr, err) 769 } 770 return fpv.(Project_FieldPathValue), nil 771 } 772 773 func MustParseProject_FieldPathValue(pathStr, valueStr string) Project_FieldPathValue { 774 fpv, err := ParseProject_FieldPathValue(pathStr, valueStr) 775 if err != nil { 776 panic(err) 777 } 778 return fpv 779 } 780 781 type Project_FieldTerminalPathValue struct { 782 Project_FieldTerminalPath 783 value interface{} 784 } 785 786 var _ Project_FieldPathValue = (*Project_FieldTerminalPathValue)(nil) 787 788 // GetRawValue returns raw value stored under selected path for 'Project' as interface{} 789 func (fpv *Project_FieldTerminalPathValue) GetRawValue() interface{} { 790 return fpv.value 791 } 792 func (fpv *Project_FieldTerminalPathValue) AsNameValue() (*Name, bool) { 793 res, ok := fpv.value.(*Name) 794 return res, ok 795 } 796 func (fpv *Project_FieldTerminalPathValue) AsTitleValue() (string, bool) { 797 res, ok := fpv.value.(string) 798 return res, ok 799 } 800 func (fpv *Project_FieldTerminalPathValue) AsParentOrganizationValue() (*organization.Reference, bool) { 801 res, ok := fpv.value.(*organization.Reference) 802 return res, ok 803 } 804 func (fpv *Project_FieldTerminalPathValue) AsRootOrganizationValue() (*organization.Reference, bool) { 805 res, ok := fpv.value.(*organization.Reference) 806 return res, ok 807 } 808 func (fpv *Project_FieldTerminalPathValue) AsAncestryPathValue() ([]*organization.Reference, bool) { 809 res, ok := fpv.value.([]*organization.Reference) 810 return res, ok 811 } 812 func (fpv *Project_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) { 813 res, ok := fpv.value.(*meta.Meta) 814 return res, ok 815 } 816 func (fpv *Project_FieldTerminalPathValue) AsMultiRegionPolicyValue() (*multi_region_policy.MultiRegionPolicy, bool) { 817 res, ok := fpv.value.(*multi_region_policy.MultiRegionPolicy) 818 return res, ok 819 } 820 func (fpv *Project_FieldTerminalPathValue) AsEnabledServicesValue() ([]*meta_service.Reference, bool) { 821 res, ok := fpv.value.([]*meta_service.Reference) 822 return res, ok 823 } 824 func (fpv *Project_FieldTerminalPathValue) AsBusinessTierValue() (iam_common.BusinessTier, bool) { 825 res, ok := fpv.value.(iam_common.BusinessTier) 826 return res, ok 827 } 828 func (fpv *Project_FieldTerminalPathValue) AsServiceTiersValue() ([]*iam_common.ServiceBusinessTier, bool) { 829 res, ok := fpv.value.([]*iam_common.ServiceBusinessTier) 830 return res, ok 831 } 832 func (fpv *Project_FieldTerminalPathValue) AsServiceErrorsValue() (map[string]*iam_common.ServiceErrors, bool) { 833 res, ok := fpv.value.(map[string]*iam_common.ServiceErrors) 834 return res, ok 835 } 836 837 // SetTo stores value for selected field for object Project 838 func (fpv *Project_FieldTerminalPathValue) SetTo(target **Project) { 839 if *target == nil { 840 *target = new(Project) 841 } 842 switch fpv.selector { 843 case Project_FieldPathSelectorName: 844 (*target).Name = fpv.value.(*Name) 845 case Project_FieldPathSelectorTitle: 846 (*target).Title = fpv.value.(string) 847 case Project_FieldPathSelectorParentOrganization: 848 (*target).ParentOrganization = fpv.value.(*organization.Reference) 849 case Project_FieldPathSelectorRootOrganization: 850 (*target).RootOrganization = fpv.value.(*organization.Reference) 851 case Project_FieldPathSelectorAncestryPath: 852 (*target).AncestryPath = fpv.value.([]*organization.Reference) 853 case Project_FieldPathSelectorMetadata: 854 (*target).Metadata = fpv.value.(*meta.Meta) 855 case Project_FieldPathSelectorMultiRegionPolicy: 856 (*target).MultiRegionPolicy = fpv.value.(*multi_region_policy.MultiRegionPolicy) 857 case Project_FieldPathSelectorEnabledServices: 858 (*target).EnabledServices = fpv.value.([]*meta_service.Reference) 859 case Project_FieldPathSelectorBusinessTier: 860 (*target).BusinessTier = fpv.value.(iam_common.BusinessTier) 861 case Project_FieldPathSelectorServiceTiers: 862 (*target).ServiceTiers = fpv.value.([]*iam_common.ServiceBusinessTier) 863 case Project_FieldPathSelectorServiceErrors: 864 (*target).ServiceErrors = fpv.value.(map[string]*iam_common.ServiceErrors) 865 default: 866 panic(fmt.Sprintf("Invalid selector for Project: %d", fpv.selector)) 867 } 868 } 869 870 func (fpv *Project_FieldTerminalPathValue) SetToRaw(target proto.Message) { 871 typedObject := target.(*Project) 872 fpv.SetTo(&typedObject) 873 } 874 875 // CompareWith compares value in the 'Project_FieldTerminalPathValue' with the value under path in 'Project'. 876 func (fpv *Project_FieldTerminalPathValue) CompareWith(source *Project) (int, bool) { 877 switch fpv.selector { 878 case Project_FieldPathSelectorName: 879 leftValue := fpv.value.(*Name) 880 rightValue := source.GetName() 881 if leftValue == nil { 882 if rightValue != nil { 883 return -1, true 884 } 885 return 0, true 886 } 887 if rightValue == nil { 888 return 1, true 889 } 890 if leftValue.String() == rightValue.String() { 891 return 0, true 892 } else if leftValue.String() < rightValue.String() { 893 return -1, true 894 } else { 895 return 1, true 896 } 897 case Project_FieldPathSelectorTitle: 898 leftValue := fpv.value.(string) 899 rightValue := source.GetTitle() 900 if (leftValue) == (rightValue) { 901 return 0, true 902 } else if (leftValue) < (rightValue) { 903 return -1, true 904 } else { 905 return 1, true 906 } 907 case Project_FieldPathSelectorParentOrganization: 908 leftValue := fpv.value.(*organization.Reference) 909 rightValue := source.GetParentOrganization() 910 if leftValue == nil { 911 if rightValue != nil { 912 return -1, true 913 } 914 return 0, true 915 } 916 if rightValue == nil { 917 return 1, true 918 } 919 if leftValue.String() == rightValue.String() { 920 return 0, true 921 } else if leftValue.String() < rightValue.String() { 922 return -1, true 923 } else { 924 return 1, true 925 } 926 case Project_FieldPathSelectorRootOrganization: 927 leftValue := fpv.value.(*organization.Reference) 928 rightValue := source.GetRootOrganization() 929 if leftValue == nil { 930 if rightValue != nil { 931 return -1, true 932 } 933 return 0, true 934 } 935 if rightValue == nil { 936 return 1, true 937 } 938 if leftValue.String() == rightValue.String() { 939 return 0, true 940 } else if leftValue.String() < rightValue.String() { 941 return -1, true 942 } else { 943 return 1, true 944 } 945 case Project_FieldPathSelectorAncestryPath: 946 return 0, false 947 case Project_FieldPathSelectorMetadata: 948 return 0, false 949 case Project_FieldPathSelectorMultiRegionPolicy: 950 return 0, false 951 case Project_FieldPathSelectorEnabledServices: 952 return 0, false 953 case Project_FieldPathSelectorBusinessTier: 954 leftValue := fpv.value.(iam_common.BusinessTier) 955 rightValue := source.GetBusinessTier() 956 if (leftValue) == (rightValue) { 957 return 0, true 958 } else if (leftValue) < (rightValue) { 959 return -1, true 960 } else { 961 return 1, true 962 } 963 case Project_FieldPathSelectorServiceTiers: 964 return 0, false 965 case Project_FieldPathSelectorServiceErrors: 966 return 0, false 967 default: 968 panic(fmt.Sprintf("Invalid selector for Project: %d", fpv.selector)) 969 } 970 } 971 972 func (fpv *Project_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 973 return fpv.CompareWith(source.(*Project)) 974 } 975 976 type Project_FieldPathMapValue struct { 977 Project_FieldPathMap 978 value interface{} 979 } 980 981 var _ Project_FieldPathValue = (*Project_FieldPathMapValue)(nil) 982 983 // GetValue returns value stored under selected field in Project as interface{} 984 func (fpmv *Project_FieldPathMapValue) GetRawValue() interface{} { 985 return fpmv.value 986 } 987 func (fpmv *Project_FieldPathMapValue) AsServiceErrorsElementValue() (*iam_common.ServiceErrors, bool) { 988 res, ok := fpmv.value.(*iam_common.ServiceErrors) 989 return res, ok 990 } 991 992 // SetTo stores value for selected field in Project 993 func (fpmv *Project_FieldPathMapValue) SetTo(target **Project) { 994 if *target == nil { 995 *target = new(Project) 996 } 997 switch fpmv.selector { 998 case Project_FieldPathSelectorServiceErrors: 999 if (*target).ServiceErrors == nil { 1000 (*target).ServiceErrors = make(map[string]*iam_common.ServiceErrors) 1001 } 1002 (*target).ServiceErrors[fpmv.key] = fpmv.value.(*iam_common.ServiceErrors) 1003 default: 1004 panic(fmt.Sprintf("Invalid selector for Project: %d", fpmv.selector)) 1005 } 1006 } 1007 1008 func (fpmv *Project_FieldPathMapValue) SetToRaw(target proto.Message) { 1009 typedObject := target.(*Project) 1010 fpmv.SetTo(&typedObject) 1011 } 1012 1013 // CompareWith compares value in the 'Project_FieldPathMapValue' with the value under path in 'Project'. 1014 func (fpmv *Project_FieldPathMapValue) CompareWith(source *Project) (int, bool) { 1015 switch fpmv.selector { 1016 case Project_FieldPathSelectorServiceErrors: 1017 return 0, false 1018 default: 1019 panic(fmt.Sprintf("Invalid selector for Project: %d", fpmv.selector)) 1020 } 1021 } 1022 1023 func (fpmv *Project_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) { 1024 return fpmv.CompareWith(source.(*Project)) 1025 } 1026 1027 type Project_FieldSubPathValue struct { 1028 Project_FieldPath 1029 subPathValue gotenobject.FieldPathValue 1030 } 1031 1032 var _ Project_FieldPathValue = (*Project_FieldSubPathValue)(nil) 1033 1034 func (fpvs *Project_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) { 1035 res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue) 1036 return res, ok 1037 } 1038 func (fpvs *Project_FieldSubPathValue) AsMultiRegionPolicyPathValue() (multi_region_policy.MultiRegionPolicy_FieldPathValue, bool) { 1039 res, ok := fpvs.subPathValue.(multi_region_policy.MultiRegionPolicy_FieldPathValue) 1040 return res, ok 1041 } 1042 func (fpvs *Project_FieldSubPathValue) AsServiceTiersPathValue() (iam_common.ServiceBusinessTier_FieldPathValue, bool) { 1043 res, ok := fpvs.subPathValue.(iam_common.ServiceBusinessTier_FieldPathValue) 1044 return res, ok 1045 } 1046 1047 func (fpvs *Project_FieldSubPathValue) SetTo(target **Project) { 1048 if *target == nil { 1049 *target = new(Project) 1050 } 1051 switch fpvs.Selector() { 1052 case Project_FieldPathSelectorMetadata: 1053 fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata) 1054 case Project_FieldPathSelectorMultiRegionPolicy: 1055 fpvs.subPathValue.(multi_region_policy.MultiRegionPolicy_FieldPathValue).SetTo(&(*target).MultiRegionPolicy) 1056 case Project_FieldPathSelectorServiceTiers: 1057 panic("FieldPath setter is unsupported for array subpaths") 1058 default: 1059 panic(fmt.Sprintf("Invalid selector for Project: %d", fpvs.Selector())) 1060 } 1061 } 1062 1063 func (fpvs *Project_FieldSubPathValue) SetToRaw(target proto.Message) { 1064 typedObject := target.(*Project) 1065 fpvs.SetTo(&typedObject) 1066 } 1067 1068 func (fpvs *Project_FieldSubPathValue) GetRawValue() interface{} { 1069 return fpvs.subPathValue.GetRawValue() 1070 } 1071 1072 func (fpvs *Project_FieldSubPathValue) CompareWith(source *Project) (int, bool) { 1073 switch fpvs.Selector() { 1074 case Project_FieldPathSelectorMetadata: 1075 return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata()) 1076 case Project_FieldPathSelectorMultiRegionPolicy: 1077 return fpvs.subPathValue.(multi_region_policy.MultiRegionPolicy_FieldPathValue).CompareWith(source.GetMultiRegionPolicy()) 1078 case Project_FieldPathSelectorServiceTiers: 1079 return 0, false // repeated field 1080 default: 1081 panic(fmt.Sprintf("Invalid selector for Project: %d", fpvs.Selector())) 1082 } 1083 } 1084 1085 func (fpvs *Project_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 1086 return fpvs.CompareWith(source.(*Project)) 1087 } 1088 1089 // Project_FieldPathArrayItemValue allows storing single item in Path-specific values for Project according to their type 1090 // Present only for array (repeated) types. 1091 type Project_FieldPathArrayItemValue interface { 1092 gotenobject.FieldPathArrayItemValue 1093 Project_FieldPath 1094 ContainsValue(*Project) bool 1095 } 1096 1097 // ParseProject_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 1098 func ParseProject_FieldPathArrayItemValue(pathStr, valueStr string) (Project_FieldPathArrayItemValue, error) { 1099 fp, err := ParseProject_FieldPath(pathStr) 1100 if err != nil { 1101 return nil, err 1102 } 1103 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 1104 if err != nil { 1105 return nil, status.Errorf(codes.InvalidArgument, "error parsing Project field path array item value from %s: %v", valueStr, err) 1106 } 1107 return fpaiv.(Project_FieldPathArrayItemValue), nil 1108 } 1109 1110 func MustParseProject_FieldPathArrayItemValue(pathStr, valueStr string) Project_FieldPathArrayItemValue { 1111 fpaiv, err := ParseProject_FieldPathArrayItemValue(pathStr, valueStr) 1112 if err != nil { 1113 panic(err) 1114 } 1115 return fpaiv 1116 } 1117 1118 type Project_FieldTerminalPathArrayItemValue struct { 1119 Project_FieldTerminalPath 1120 value interface{} 1121 } 1122 1123 var _ Project_FieldPathArrayItemValue = (*Project_FieldTerminalPathArrayItemValue)(nil) 1124 1125 // GetRawValue returns stored element value for array in object Project as interface{} 1126 func (fpaiv *Project_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 1127 return fpaiv.value 1128 } 1129 func (fpaiv *Project_FieldTerminalPathArrayItemValue) AsAncestryPathItemValue() (*organization.Reference, bool) { 1130 res, ok := fpaiv.value.(*organization.Reference) 1131 return res, ok 1132 } 1133 func (fpaiv *Project_FieldTerminalPathArrayItemValue) AsEnabledServicesItemValue() (*meta_service.Reference, bool) { 1134 res, ok := fpaiv.value.(*meta_service.Reference) 1135 return res, ok 1136 } 1137 func (fpaiv *Project_FieldTerminalPathArrayItemValue) AsServiceTiersItemValue() (*iam_common.ServiceBusinessTier, bool) { 1138 res, ok := fpaiv.value.(*iam_common.ServiceBusinessTier) 1139 return res, ok 1140 } 1141 1142 func (fpaiv *Project_FieldTerminalPathArrayItemValue) GetSingle(source *Project) (interface{}, bool) { 1143 return nil, false 1144 } 1145 1146 func (fpaiv *Project_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 1147 return fpaiv.GetSingle(source.(*Project)) 1148 } 1149 1150 // Contains returns a boolean indicating if value that is being held is present in given 'Project' 1151 func (fpaiv *Project_FieldTerminalPathArrayItemValue) ContainsValue(source *Project) bool { 1152 slice := fpaiv.Project_FieldTerminalPath.Get(source) 1153 for _, v := range slice { 1154 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 1155 if proto.Equal(asProtoMsg, v.(proto.Message)) { 1156 return true 1157 } 1158 } else if reflect.DeepEqual(v, fpaiv.value) { 1159 return true 1160 } 1161 } 1162 return false 1163 } 1164 1165 type Project_FieldSubPathArrayItemValue struct { 1166 Project_FieldPath 1167 subPathItemValue gotenobject.FieldPathArrayItemValue 1168 } 1169 1170 // GetRawValue returns stored array item value 1171 func (fpaivs *Project_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 1172 return fpaivs.subPathItemValue.GetRawItemValue() 1173 } 1174 func (fpaivs *Project_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) { 1175 res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue) 1176 return res, ok 1177 } 1178 func (fpaivs *Project_FieldSubPathArrayItemValue) AsMultiRegionPolicyPathItemValue() (multi_region_policy.MultiRegionPolicy_FieldPathArrayItemValue, bool) { 1179 res, ok := fpaivs.subPathItemValue.(multi_region_policy.MultiRegionPolicy_FieldPathArrayItemValue) 1180 return res, ok 1181 } 1182 func (fpaivs *Project_FieldSubPathArrayItemValue) AsServiceTiersPathItemValue() (iam_common.ServiceBusinessTier_FieldPathArrayItemValue, bool) { 1183 res, ok := fpaivs.subPathItemValue.(iam_common.ServiceBusinessTier_FieldPathArrayItemValue) 1184 return res, ok 1185 } 1186 1187 // Contains returns a boolean indicating if value that is being held is present in given 'Project' 1188 func (fpaivs *Project_FieldSubPathArrayItemValue) ContainsValue(source *Project) bool { 1189 switch fpaivs.Selector() { 1190 case Project_FieldPathSelectorMetadata: 1191 return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata()) 1192 case Project_FieldPathSelectorMultiRegionPolicy: 1193 return fpaivs.subPathItemValue.(multi_region_policy.MultiRegionPolicy_FieldPathArrayItemValue).ContainsValue(source.GetMultiRegionPolicy()) 1194 case Project_FieldPathSelectorServiceTiers: 1195 return false // repeated/map field 1196 default: 1197 panic(fmt.Sprintf("Invalid selector for Project: %d", fpaivs.Selector())) 1198 } 1199 } 1200 1201 // Project_FieldPathArrayOfValues allows storing slice of values for Project fields according to their type 1202 type Project_FieldPathArrayOfValues interface { 1203 gotenobject.FieldPathArrayOfValues 1204 Project_FieldPath 1205 } 1206 1207 func ParseProject_FieldPathArrayOfValues(pathStr, valuesStr string) (Project_FieldPathArrayOfValues, error) { 1208 fp, err := ParseProject_FieldPath(pathStr) 1209 if err != nil { 1210 return nil, err 1211 } 1212 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 1213 if err != nil { 1214 return nil, status.Errorf(codes.InvalidArgument, "error parsing Project field path array of values from %s: %v", valuesStr, err) 1215 } 1216 return fpaov.(Project_FieldPathArrayOfValues), nil 1217 } 1218 1219 func MustParseProject_FieldPathArrayOfValues(pathStr, valuesStr string) Project_FieldPathArrayOfValues { 1220 fpaov, err := ParseProject_FieldPathArrayOfValues(pathStr, valuesStr) 1221 if err != nil { 1222 panic(err) 1223 } 1224 return fpaov 1225 } 1226 1227 type Project_FieldTerminalPathArrayOfValues struct { 1228 Project_FieldTerminalPath 1229 values interface{} 1230 } 1231 1232 var _ Project_FieldPathArrayOfValues = (*Project_FieldTerminalPathArrayOfValues)(nil) 1233 1234 func (fpaov *Project_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 1235 switch fpaov.selector { 1236 case Project_FieldPathSelectorName: 1237 for _, v := range fpaov.values.([]*Name) { 1238 values = append(values, v) 1239 } 1240 case Project_FieldPathSelectorTitle: 1241 for _, v := range fpaov.values.([]string) { 1242 values = append(values, v) 1243 } 1244 case Project_FieldPathSelectorParentOrganization: 1245 for _, v := range fpaov.values.([]*organization.Reference) { 1246 values = append(values, v) 1247 } 1248 case Project_FieldPathSelectorRootOrganization: 1249 for _, v := range fpaov.values.([]*organization.Reference) { 1250 values = append(values, v) 1251 } 1252 case Project_FieldPathSelectorAncestryPath: 1253 for _, v := range fpaov.values.([][]*organization.Reference) { 1254 values = append(values, v) 1255 } 1256 case Project_FieldPathSelectorMetadata: 1257 for _, v := range fpaov.values.([]*meta.Meta) { 1258 values = append(values, v) 1259 } 1260 case Project_FieldPathSelectorMultiRegionPolicy: 1261 for _, v := range fpaov.values.([]*multi_region_policy.MultiRegionPolicy) { 1262 values = append(values, v) 1263 } 1264 case Project_FieldPathSelectorEnabledServices: 1265 for _, v := range fpaov.values.([][]*meta_service.Reference) { 1266 values = append(values, v) 1267 } 1268 case Project_FieldPathSelectorBusinessTier: 1269 for _, v := range fpaov.values.([]iam_common.BusinessTier) { 1270 values = append(values, v) 1271 } 1272 case Project_FieldPathSelectorServiceTiers: 1273 for _, v := range fpaov.values.([][]*iam_common.ServiceBusinessTier) { 1274 values = append(values, v) 1275 } 1276 case Project_FieldPathSelectorServiceErrors: 1277 for _, v := range fpaov.values.([]map[string]*iam_common.ServiceErrors) { 1278 values = append(values, v) 1279 } 1280 } 1281 return 1282 } 1283 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) { 1284 res, ok := fpaov.values.([]*Name) 1285 return res, ok 1286 } 1287 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsTitleArrayOfValues() ([]string, bool) { 1288 res, ok := fpaov.values.([]string) 1289 return res, ok 1290 } 1291 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsParentOrganizationArrayOfValues() ([]*organization.Reference, bool) { 1292 res, ok := fpaov.values.([]*organization.Reference) 1293 return res, ok 1294 } 1295 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsRootOrganizationArrayOfValues() ([]*organization.Reference, bool) { 1296 res, ok := fpaov.values.([]*organization.Reference) 1297 return res, ok 1298 } 1299 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsAncestryPathArrayOfValues() ([][]*organization.Reference, bool) { 1300 res, ok := fpaov.values.([][]*organization.Reference) 1301 return res, ok 1302 } 1303 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) { 1304 res, ok := fpaov.values.([]*meta.Meta) 1305 return res, ok 1306 } 1307 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsMultiRegionPolicyArrayOfValues() ([]*multi_region_policy.MultiRegionPolicy, bool) { 1308 res, ok := fpaov.values.([]*multi_region_policy.MultiRegionPolicy) 1309 return res, ok 1310 } 1311 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsEnabledServicesArrayOfValues() ([][]*meta_service.Reference, bool) { 1312 res, ok := fpaov.values.([][]*meta_service.Reference) 1313 return res, ok 1314 } 1315 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsBusinessTierArrayOfValues() ([]iam_common.BusinessTier, bool) { 1316 res, ok := fpaov.values.([]iam_common.BusinessTier) 1317 return res, ok 1318 } 1319 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsServiceTiersArrayOfValues() ([][]*iam_common.ServiceBusinessTier, bool) { 1320 res, ok := fpaov.values.([][]*iam_common.ServiceBusinessTier) 1321 return res, ok 1322 } 1323 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsServiceErrorsArrayOfValues() ([]map[string]*iam_common.ServiceErrors, bool) { 1324 res, ok := fpaov.values.([]map[string]*iam_common.ServiceErrors) 1325 return res, ok 1326 } 1327 1328 type Project_FieldPathMapArrayOfValues struct { 1329 Project_FieldPathMap 1330 values interface{} 1331 } 1332 1333 var _ Project_FieldPathArrayOfValues = (*Project_FieldPathMapArrayOfValues)(nil) 1334 1335 func (fpmaov *Project_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) { 1336 switch fpmaov.selector { 1337 case Project_FieldPathSelectorServiceErrors: 1338 for _, v := range fpmaov.values.([]*iam_common.ServiceErrors) { 1339 values = append(values, v) 1340 } 1341 } 1342 return 1343 } 1344 func (fpmaov *Project_FieldPathMapArrayOfValues) AsServiceErrorsArrayOfElementValues() ([]*iam_common.ServiceErrors, bool) { 1345 res, ok := fpmaov.values.([]*iam_common.ServiceErrors) 1346 return res, ok 1347 } 1348 1349 type Project_FieldSubPathArrayOfValues struct { 1350 Project_FieldPath 1351 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 1352 } 1353 1354 var _ Project_FieldPathArrayOfValues = (*Project_FieldSubPathArrayOfValues)(nil) 1355 1356 func (fpsaov *Project_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 1357 return fpsaov.subPathArrayOfValues.GetRawValues() 1358 } 1359 func (fpsaov *Project_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) { 1360 res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues) 1361 return res, ok 1362 } 1363 func (fpsaov *Project_FieldSubPathArrayOfValues) AsMultiRegionPolicyPathArrayOfValues() (multi_region_policy.MultiRegionPolicy_FieldPathArrayOfValues, bool) { 1364 res, ok := fpsaov.subPathArrayOfValues.(multi_region_policy.MultiRegionPolicy_FieldPathArrayOfValues) 1365 return res, ok 1366 } 1367 func (fpsaov *Project_FieldSubPathArrayOfValues) AsServiceTiersPathArrayOfValues() (iam_common.ServiceBusinessTier_FieldPathArrayOfValues, bool) { 1368 res, ok := fpsaov.subPathArrayOfValues.(iam_common.ServiceBusinessTier_FieldPathArrayOfValues) 1369 return res, ok 1370 }