github.com/cloudwan/edgelq-sdk@v1.15.4/limits/resources/v1/plan_assignment_request/plan_assignment_request.pb.fieldmask.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/limits/proto/v1/plan_assignment_request.proto 3 // DO NOT EDIT!!! 4 5 package plan_assignment_request 6 7 import ( 8 "encoding/json" 9 "strings" 10 11 "google.golang.org/grpc/codes" 12 "google.golang.org/grpc/status" 13 "google.golang.org/protobuf/proto" 14 preflect "google.golang.org/protobuf/reflect/protoreflect" 15 googlefieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 16 17 gotenobject "github.com/cloudwan/goten-sdk/runtime/object" 18 ) 19 20 // proto imports 21 import ( 22 iam_organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1/organization" 23 iam_project "github.com/cloudwan/edgelq-sdk/iam/resources/v1/project" 24 accepted_plan "github.com/cloudwan/edgelq-sdk/limits/resources/v1/accepted_plan" 25 common "github.com/cloudwan/edgelq-sdk/limits/resources/v1/common" 26 plan "github.com/cloudwan/edgelq-sdk/limits/resources/v1/plan" 27 plan_assignment "github.com/cloudwan/edgelq-sdk/limits/resources/v1/plan_assignment" 28 meta_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/service" 29 meta "github.com/cloudwan/goten-sdk/types/meta" 30 ) 31 32 // ensure the imports are used 33 var ( 34 _ = new(json.Marshaler) 35 _ = strings.Builder{} 36 37 _ = codes.NotFound 38 _ = status.Status{} 39 _ = new(proto.Message) 40 _ = new(preflect.Message) 41 _ = googlefieldmaskpb.FieldMask{} 42 43 _ = new(gotenobject.FieldMask) 44 ) 45 46 // make sure we're using proto imports 47 var ( 48 _ = &iam_organization.Organization{} 49 _ = &iam_project.Project{} 50 _ = &accepted_plan.AcceptedPlan{} 51 _ = &common.RegionalPlanAssignment{} 52 _ = &plan.Plan{} 53 _ = &plan_assignment.PlanAssignment{} 54 _ = &meta_service.Service{} 55 _ = &meta.Meta{} 56 ) 57 58 type PlanAssignmentRequest_FieldMask struct { 59 Paths []PlanAssignmentRequest_FieldPath 60 } 61 62 func FullPlanAssignmentRequest_FieldMask() *PlanAssignmentRequest_FieldMask { 63 res := &PlanAssignmentRequest_FieldMask{} 64 res.Paths = append(res.Paths, &PlanAssignmentRequest_FieldTerminalPath{selector: PlanAssignmentRequest_FieldPathSelectorName}) 65 res.Paths = append(res.Paths, &PlanAssignmentRequest_FieldTerminalPath{selector: PlanAssignmentRequest_FieldPathSelectorMetadata}) 66 res.Paths = append(res.Paths, &PlanAssignmentRequest_FieldTerminalPath{selector: PlanAssignmentRequest_FieldPathSelectorRequest}) 67 res.Paths = append(res.Paths, &PlanAssignmentRequest_FieldTerminalPath{selector: PlanAssignmentRequest_FieldPathSelectorService}) 68 res.Paths = append(res.Paths, &PlanAssignmentRequest_FieldTerminalPath{selector: PlanAssignmentRequest_FieldPathSelectorApprover}) 69 res.Paths = append(res.Paths, &PlanAssignmentRequest_FieldTerminalPath{selector: PlanAssignmentRequest_FieldPathSelectorStatus}) 70 return res 71 } 72 73 func (fieldMask *PlanAssignmentRequest_FieldMask) String() string { 74 if fieldMask == nil { 75 return "<nil>" 76 } 77 pathsStr := make([]string, 0, len(fieldMask.Paths)) 78 for _, path := range fieldMask.Paths { 79 pathsStr = append(pathsStr, path.String()) 80 } 81 return strings.Join(pathsStr, ", ") 82 } 83 84 func (fieldMask *PlanAssignmentRequest_FieldMask) IsFull() bool { 85 if fieldMask == nil { 86 return false 87 } 88 presentSelectors := make([]bool, 6) 89 for _, path := range fieldMask.Paths { 90 if asFinal, ok := path.(*PlanAssignmentRequest_FieldTerminalPath); ok { 91 presentSelectors[int(asFinal.selector)] = true 92 } 93 } 94 for _, flag := range presentSelectors { 95 if !flag { 96 return false 97 } 98 } 99 return true 100 } 101 102 func (fieldMask *PlanAssignmentRequest_FieldMask) ProtoReflect() preflect.Message { 103 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 104 return ParsePlanAssignmentRequest_FieldPath(raw) 105 }) 106 } 107 108 func (fieldMask *PlanAssignmentRequest_FieldMask) ProtoMessage() {} 109 110 func (fieldMask *PlanAssignmentRequest_FieldMask) Reset() { 111 if fieldMask != nil { 112 fieldMask.Paths = nil 113 } 114 } 115 116 func (fieldMask *PlanAssignmentRequest_FieldMask) Subtract(other *PlanAssignmentRequest_FieldMask) *PlanAssignmentRequest_FieldMask { 117 result := &PlanAssignmentRequest_FieldMask{} 118 removedSelectors := make([]bool, 6) 119 otherSubMasks := map[PlanAssignmentRequest_FieldPathSelector]gotenobject.FieldMask{ 120 PlanAssignmentRequest_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 121 PlanAssignmentRequest_FieldPathSelectorRequest: &PlanAssignmentRequest_RequestType_FieldMask{}, 122 PlanAssignmentRequest_FieldPathSelectorStatus: &PlanAssignmentRequest_Status_FieldMask{}, 123 } 124 mySubMasks := map[PlanAssignmentRequest_FieldPathSelector]gotenobject.FieldMask{ 125 PlanAssignmentRequest_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 126 PlanAssignmentRequest_FieldPathSelectorRequest: &PlanAssignmentRequest_RequestType_FieldMask{}, 127 PlanAssignmentRequest_FieldPathSelectorStatus: &PlanAssignmentRequest_Status_FieldMask{}, 128 } 129 130 for _, path := range other.GetPaths() { 131 switch tp := path.(type) { 132 case *PlanAssignmentRequest_FieldTerminalPath: 133 removedSelectors[int(tp.selector)] = true 134 case *PlanAssignmentRequest_FieldSubPath: 135 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 136 } 137 } 138 for _, path := range fieldMask.GetPaths() { 139 if !removedSelectors[int(path.Selector())] { 140 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 141 if tp, ok := path.(*PlanAssignmentRequest_FieldTerminalPath); ok { 142 switch tp.selector { 143 case PlanAssignmentRequest_FieldPathSelectorMetadata: 144 mySubMasks[PlanAssignmentRequest_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask() 145 case PlanAssignmentRequest_FieldPathSelectorRequest: 146 mySubMasks[PlanAssignmentRequest_FieldPathSelectorRequest] = FullPlanAssignmentRequest_RequestType_FieldMask() 147 case PlanAssignmentRequest_FieldPathSelectorStatus: 148 mySubMasks[PlanAssignmentRequest_FieldPathSelectorStatus] = FullPlanAssignmentRequest_Status_FieldMask() 149 } 150 } else if tp, ok := path.(*PlanAssignmentRequest_FieldSubPath); ok { 151 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 152 } 153 } else { 154 result.Paths = append(result.Paths, path) 155 } 156 } 157 } 158 for selector, mySubMask := range mySubMasks { 159 if mySubMask.PathsCount() > 0 { 160 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 161 result.Paths = append(result.Paths, &PlanAssignmentRequest_FieldSubPath{selector: selector, subPath: allowedPath}) 162 } 163 } 164 } 165 166 if len(result.Paths) == 0 { 167 return nil 168 } 169 return result 170 } 171 172 func (fieldMask *PlanAssignmentRequest_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 173 return fieldMask.Subtract(other.(*PlanAssignmentRequest_FieldMask)) 174 } 175 176 // FilterInputFields generates copy of field paths with output_only field paths removed 177 func (fieldMask *PlanAssignmentRequest_FieldMask) FilterInputFields() *PlanAssignmentRequest_FieldMask { 178 result := &PlanAssignmentRequest_FieldMask{} 179 for _, path := range fieldMask.Paths { 180 switch path.Selector() { 181 case PlanAssignmentRequest_FieldPathSelectorService: 182 case PlanAssignmentRequest_FieldPathSelectorApprover: 183 case PlanAssignmentRequest_FieldPathSelectorStatus: 184 case PlanAssignmentRequest_FieldPathSelectorMetadata: 185 if _, ok := path.(*PlanAssignmentRequest_FieldTerminalPath); ok { 186 for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths { 187 result.Paths = append(result.Paths, &PlanAssignmentRequest_FieldSubPath{selector: path.Selector(), subPath: subpath}) 188 } 189 } else if sub, ok := path.(*PlanAssignmentRequest_FieldSubPath); ok { 190 selectedMask := &meta.Meta_FieldMask{ 191 Paths: []meta.Meta_FieldPath{sub.subPath.(meta.Meta_FieldPath)}, 192 } 193 for _, allowedPath := range selectedMask.FilterInputFields().Paths { 194 result.Paths = append(result.Paths, &PlanAssignmentRequest_FieldSubPath{selector: PlanAssignmentRequest_FieldPathSelectorMetadata, subPath: allowedPath}) 195 } 196 } 197 default: 198 result.Paths = append(result.Paths, path) 199 } 200 } 201 return result 202 } 203 204 // ToFieldMask is used for proto conversions 205 func (fieldMask *PlanAssignmentRequest_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 206 protoFieldMask := &googlefieldmaskpb.FieldMask{} 207 for _, path := range fieldMask.Paths { 208 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 209 } 210 return protoFieldMask 211 } 212 213 func (fieldMask *PlanAssignmentRequest_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 214 if fieldMask == nil { 215 return status.Error(codes.Internal, "target field mask is nil") 216 } 217 fieldMask.Paths = make([]PlanAssignmentRequest_FieldPath, 0, len(protoFieldMask.Paths)) 218 for _, strPath := range protoFieldMask.Paths { 219 path, err := ParsePlanAssignmentRequest_FieldPath(strPath) 220 if err != nil { 221 return err 222 } 223 fieldMask.Paths = append(fieldMask.Paths, path) 224 } 225 return nil 226 } 227 228 // implement methods required by customType 229 func (fieldMask PlanAssignmentRequest_FieldMask) Marshal() ([]byte, error) { 230 protoFieldMask := fieldMask.ToProtoFieldMask() 231 return proto.Marshal(protoFieldMask) 232 } 233 234 func (fieldMask *PlanAssignmentRequest_FieldMask) Unmarshal(data []byte) error { 235 protoFieldMask := &googlefieldmaskpb.FieldMask{} 236 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 237 return err 238 } 239 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 240 return err 241 } 242 return nil 243 } 244 245 func (fieldMask *PlanAssignmentRequest_FieldMask) Size() int { 246 return proto.Size(fieldMask.ToProtoFieldMask()) 247 } 248 249 func (fieldMask PlanAssignmentRequest_FieldMask) MarshalJSON() ([]byte, error) { 250 return json.Marshal(fieldMask.ToProtoFieldMask()) 251 } 252 253 func (fieldMask *PlanAssignmentRequest_FieldMask) UnmarshalJSON(data []byte) error { 254 protoFieldMask := &googlefieldmaskpb.FieldMask{} 255 if err := json.Unmarshal(data, protoFieldMask); err != nil { 256 return err 257 } 258 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 259 return err 260 } 261 return nil 262 } 263 264 func (fieldMask *PlanAssignmentRequest_FieldMask) AppendPath(path PlanAssignmentRequest_FieldPath) { 265 fieldMask.Paths = append(fieldMask.Paths, path) 266 } 267 268 func (fieldMask *PlanAssignmentRequest_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 269 fieldMask.Paths = append(fieldMask.Paths, path.(PlanAssignmentRequest_FieldPath)) 270 } 271 272 func (fieldMask *PlanAssignmentRequest_FieldMask) GetPaths() []PlanAssignmentRequest_FieldPath { 273 if fieldMask == nil { 274 return nil 275 } 276 return fieldMask.Paths 277 } 278 279 func (fieldMask *PlanAssignmentRequest_FieldMask) GetRawPaths() []gotenobject.FieldPath { 280 if fieldMask == nil { 281 return nil 282 } 283 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 284 for _, path := range fieldMask.Paths { 285 rawPaths = append(rawPaths, path) 286 } 287 return rawPaths 288 } 289 290 func (fieldMask *PlanAssignmentRequest_FieldMask) SetFromCliFlag(raw string) error { 291 path, err := ParsePlanAssignmentRequest_FieldPath(raw) 292 if err != nil { 293 return err 294 } 295 fieldMask.Paths = append(fieldMask.Paths, path) 296 return nil 297 } 298 299 func (fieldMask *PlanAssignmentRequest_FieldMask) Set(target, source *PlanAssignmentRequest) { 300 for _, path := range fieldMask.Paths { 301 val, _ := path.GetSingle(source) 302 // if val is nil, then field does not exist in source, skip 303 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 304 if val != nil { 305 path.WithIValue(val).SetTo(&target) 306 } 307 } 308 } 309 310 func (fieldMask *PlanAssignmentRequest_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 311 fieldMask.Set(target.(*PlanAssignmentRequest), source.(*PlanAssignmentRequest)) 312 } 313 314 func (fieldMask *PlanAssignmentRequest_FieldMask) Project(source *PlanAssignmentRequest) *PlanAssignmentRequest { 315 if source == nil { 316 return nil 317 } 318 if fieldMask == nil { 319 return source 320 } 321 result := &PlanAssignmentRequest{} 322 metadataMask := &meta.Meta_FieldMask{} 323 wholeMetadataAccepted := false 324 requestMask := &PlanAssignmentRequest_RequestType_FieldMask{} 325 wholeRequestAccepted := false 326 statusMask := &PlanAssignmentRequest_Status_FieldMask{} 327 wholeStatusAccepted := false 328 329 for _, p := range fieldMask.Paths { 330 switch tp := p.(type) { 331 case *PlanAssignmentRequest_FieldTerminalPath: 332 switch tp.selector { 333 case PlanAssignmentRequest_FieldPathSelectorName: 334 result.Name = source.Name 335 case PlanAssignmentRequest_FieldPathSelectorMetadata: 336 result.Metadata = source.Metadata 337 wholeMetadataAccepted = true 338 case PlanAssignmentRequest_FieldPathSelectorRequest: 339 result.Request = source.Request 340 wholeRequestAccepted = true 341 case PlanAssignmentRequest_FieldPathSelectorService: 342 result.Service = source.Service 343 case PlanAssignmentRequest_FieldPathSelectorApprover: 344 result.Approver = source.Approver 345 case PlanAssignmentRequest_FieldPathSelectorStatus: 346 result.Status = source.Status 347 wholeStatusAccepted = true 348 } 349 case *PlanAssignmentRequest_FieldSubPath: 350 switch tp.selector { 351 case PlanAssignmentRequest_FieldPathSelectorMetadata: 352 metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath)) 353 case PlanAssignmentRequest_FieldPathSelectorRequest: 354 requestMask.AppendPath(tp.subPath.(PlanAssignmentRequestRequestType_FieldPath)) 355 case PlanAssignmentRequest_FieldPathSelectorStatus: 356 statusMask.AppendPath(tp.subPath.(PlanAssignmentRequestStatus_FieldPath)) 357 } 358 } 359 } 360 if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 { 361 result.Metadata = metadataMask.Project(source.GetMetadata()) 362 } 363 if wholeRequestAccepted == false && len(requestMask.Paths) > 0 { 364 result.Request = requestMask.Project(source.GetRequest()) 365 } 366 if wholeStatusAccepted == false && len(statusMask.Paths) > 0 { 367 result.Status = statusMask.Project(source.GetStatus()) 368 } 369 return result 370 } 371 372 func (fieldMask *PlanAssignmentRequest_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 373 return fieldMask.Project(source.(*PlanAssignmentRequest)) 374 } 375 376 func (fieldMask *PlanAssignmentRequest_FieldMask) PathsCount() int { 377 if fieldMask == nil { 378 return 0 379 } 380 return len(fieldMask.Paths) 381 } 382 383 type PlanAssignmentRequest_Status_FieldMask struct { 384 Paths []PlanAssignmentRequestStatus_FieldPath 385 } 386 387 func FullPlanAssignmentRequest_Status_FieldMask() *PlanAssignmentRequest_Status_FieldMask { 388 res := &PlanAssignmentRequest_Status_FieldMask{} 389 res.Paths = append(res.Paths, &PlanAssignmentRequestStatus_FieldTerminalPath{selector: PlanAssignmentRequestStatus_FieldPathSelectorConclusion}) 390 res.Paths = append(res.Paths, &PlanAssignmentRequestStatus_FieldTerminalPath{selector: PlanAssignmentRequestStatus_FieldPathSelectorReason}) 391 return res 392 } 393 394 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) String() string { 395 if fieldMask == nil { 396 return "<nil>" 397 } 398 pathsStr := make([]string, 0, len(fieldMask.Paths)) 399 for _, path := range fieldMask.Paths { 400 pathsStr = append(pathsStr, path.String()) 401 } 402 return strings.Join(pathsStr, ", ") 403 } 404 405 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) IsFull() bool { 406 if fieldMask == nil { 407 return false 408 } 409 presentSelectors := make([]bool, 2) 410 for _, path := range fieldMask.Paths { 411 if asFinal, ok := path.(*PlanAssignmentRequestStatus_FieldTerminalPath); ok { 412 presentSelectors[int(asFinal.selector)] = true 413 } 414 } 415 for _, flag := range presentSelectors { 416 if !flag { 417 return false 418 } 419 } 420 return true 421 } 422 423 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) ProtoReflect() preflect.Message { 424 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 425 return ParsePlanAssignmentRequestStatus_FieldPath(raw) 426 }) 427 } 428 429 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) ProtoMessage() {} 430 431 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) Reset() { 432 if fieldMask != nil { 433 fieldMask.Paths = nil 434 } 435 } 436 437 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) Subtract(other *PlanAssignmentRequest_Status_FieldMask) *PlanAssignmentRequest_Status_FieldMask { 438 result := &PlanAssignmentRequest_Status_FieldMask{} 439 removedSelectors := make([]bool, 2) 440 441 for _, path := range other.GetPaths() { 442 switch tp := path.(type) { 443 case *PlanAssignmentRequestStatus_FieldTerminalPath: 444 removedSelectors[int(tp.selector)] = true 445 } 446 } 447 for _, path := range fieldMask.GetPaths() { 448 if !removedSelectors[int(path.Selector())] { 449 result.Paths = append(result.Paths, path) 450 } 451 } 452 453 if len(result.Paths) == 0 { 454 return nil 455 } 456 return result 457 } 458 459 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 460 return fieldMask.Subtract(other.(*PlanAssignmentRequest_Status_FieldMask)) 461 } 462 463 // FilterInputFields generates copy of field paths with output_only field paths removed 464 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) FilterInputFields() *PlanAssignmentRequest_Status_FieldMask { 465 result := &PlanAssignmentRequest_Status_FieldMask{} 466 result.Paths = append(result.Paths, fieldMask.Paths...) 467 return result 468 } 469 470 // ToFieldMask is used for proto conversions 471 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 472 protoFieldMask := &googlefieldmaskpb.FieldMask{} 473 for _, path := range fieldMask.Paths { 474 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 475 } 476 return protoFieldMask 477 } 478 479 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 480 if fieldMask == nil { 481 return status.Error(codes.Internal, "target field mask is nil") 482 } 483 fieldMask.Paths = make([]PlanAssignmentRequestStatus_FieldPath, 0, len(protoFieldMask.Paths)) 484 for _, strPath := range protoFieldMask.Paths { 485 path, err := ParsePlanAssignmentRequestStatus_FieldPath(strPath) 486 if err != nil { 487 return err 488 } 489 fieldMask.Paths = append(fieldMask.Paths, path) 490 } 491 return nil 492 } 493 494 // implement methods required by customType 495 func (fieldMask PlanAssignmentRequest_Status_FieldMask) Marshal() ([]byte, error) { 496 protoFieldMask := fieldMask.ToProtoFieldMask() 497 return proto.Marshal(protoFieldMask) 498 } 499 500 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) Unmarshal(data []byte) error { 501 protoFieldMask := &googlefieldmaskpb.FieldMask{} 502 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 503 return err 504 } 505 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 506 return err 507 } 508 return nil 509 } 510 511 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) Size() int { 512 return proto.Size(fieldMask.ToProtoFieldMask()) 513 } 514 515 func (fieldMask PlanAssignmentRequest_Status_FieldMask) MarshalJSON() ([]byte, error) { 516 return json.Marshal(fieldMask.ToProtoFieldMask()) 517 } 518 519 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) UnmarshalJSON(data []byte) error { 520 protoFieldMask := &googlefieldmaskpb.FieldMask{} 521 if err := json.Unmarshal(data, protoFieldMask); err != nil { 522 return err 523 } 524 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 525 return err 526 } 527 return nil 528 } 529 530 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) AppendPath(path PlanAssignmentRequestStatus_FieldPath) { 531 fieldMask.Paths = append(fieldMask.Paths, path) 532 } 533 534 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 535 fieldMask.Paths = append(fieldMask.Paths, path.(PlanAssignmentRequestStatus_FieldPath)) 536 } 537 538 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) GetPaths() []PlanAssignmentRequestStatus_FieldPath { 539 if fieldMask == nil { 540 return nil 541 } 542 return fieldMask.Paths 543 } 544 545 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) GetRawPaths() []gotenobject.FieldPath { 546 if fieldMask == nil { 547 return nil 548 } 549 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 550 for _, path := range fieldMask.Paths { 551 rawPaths = append(rawPaths, path) 552 } 553 return rawPaths 554 } 555 556 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) SetFromCliFlag(raw string) error { 557 path, err := ParsePlanAssignmentRequestStatus_FieldPath(raw) 558 if err != nil { 559 return err 560 } 561 fieldMask.Paths = append(fieldMask.Paths, path) 562 return nil 563 } 564 565 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) Set(target, source *PlanAssignmentRequest_Status) { 566 for _, path := range fieldMask.Paths { 567 val, _ := path.GetSingle(source) 568 // if val is nil, then field does not exist in source, skip 569 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 570 if val != nil { 571 path.WithIValue(val).SetTo(&target) 572 } 573 } 574 } 575 576 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 577 fieldMask.Set(target.(*PlanAssignmentRequest_Status), source.(*PlanAssignmentRequest_Status)) 578 } 579 580 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) Project(source *PlanAssignmentRequest_Status) *PlanAssignmentRequest_Status { 581 if source == nil { 582 return nil 583 } 584 if fieldMask == nil { 585 return source 586 } 587 result := &PlanAssignmentRequest_Status{} 588 589 for _, p := range fieldMask.Paths { 590 switch tp := p.(type) { 591 case *PlanAssignmentRequestStatus_FieldTerminalPath: 592 switch tp.selector { 593 case PlanAssignmentRequestStatus_FieldPathSelectorConclusion: 594 result.Conclusion = source.Conclusion 595 case PlanAssignmentRequestStatus_FieldPathSelectorReason: 596 result.Reason = source.Reason 597 } 598 } 599 } 600 return result 601 } 602 603 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 604 return fieldMask.Project(source.(*PlanAssignmentRequest_Status)) 605 } 606 607 func (fieldMask *PlanAssignmentRequest_Status_FieldMask) PathsCount() int { 608 if fieldMask == nil { 609 return 0 610 } 611 return len(fieldMask.Paths) 612 } 613 614 type PlanAssignmentRequest_RequestType_FieldMask struct { 615 Paths []PlanAssignmentRequestRequestType_FieldPath 616 } 617 618 func FullPlanAssignmentRequest_RequestType_FieldMask() *PlanAssignmentRequest_RequestType_FieldMask { 619 res := &PlanAssignmentRequest_RequestType_FieldMask{} 620 res.Paths = append(res.Paths, &PlanAssignmentRequestRequestType_FieldTerminalPath{selector: PlanAssignmentRequestRequestType_FieldPathSelectorAssign}) 621 res.Paths = append(res.Paths, &PlanAssignmentRequestRequestType_FieldTerminalPath{selector: PlanAssignmentRequestRequestType_FieldPathSelectorExtend}) 622 res.Paths = append(res.Paths, &PlanAssignmentRequestRequestType_FieldTerminalPath{selector: PlanAssignmentRequestRequestType_FieldPathSelectorUnassign}) 623 return res 624 } 625 626 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) String() string { 627 if fieldMask == nil { 628 return "<nil>" 629 } 630 pathsStr := make([]string, 0, len(fieldMask.Paths)) 631 for _, path := range fieldMask.Paths { 632 pathsStr = append(pathsStr, path.String()) 633 } 634 return strings.Join(pathsStr, ", ") 635 } 636 637 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) IsFull() bool { 638 if fieldMask == nil { 639 return false 640 } 641 presentSelectors := make([]bool, 3) 642 for _, path := range fieldMask.Paths { 643 if asFinal, ok := path.(*PlanAssignmentRequestRequestType_FieldTerminalPath); ok { 644 presentSelectors[int(asFinal.selector)] = true 645 } 646 } 647 for _, flag := range presentSelectors { 648 if !flag { 649 return false 650 } 651 } 652 return true 653 } 654 655 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) ProtoReflect() preflect.Message { 656 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 657 return ParsePlanAssignmentRequestRequestType_FieldPath(raw) 658 }) 659 } 660 661 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) ProtoMessage() {} 662 663 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) Reset() { 664 if fieldMask != nil { 665 fieldMask.Paths = nil 666 } 667 } 668 669 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) Subtract(other *PlanAssignmentRequest_RequestType_FieldMask) *PlanAssignmentRequest_RequestType_FieldMask { 670 result := &PlanAssignmentRequest_RequestType_FieldMask{} 671 removedSelectors := make([]bool, 3) 672 otherSubMasks := map[PlanAssignmentRequestRequestType_FieldPathSelector]gotenobject.FieldMask{ 673 PlanAssignmentRequestRequestType_FieldPathSelectorAssign: &PlanAssignmentRequest_RequestType_Assign_FieldMask{}, 674 PlanAssignmentRequestRequestType_FieldPathSelectorExtend: &PlanAssignmentRequest_RequestType_Extend_FieldMask{}, 675 PlanAssignmentRequestRequestType_FieldPathSelectorUnassign: &PlanAssignmentRequest_RequestType_Unassign_FieldMask{}, 676 } 677 mySubMasks := map[PlanAssignmentRequestRequestType_FieldPathSelector]gotenobject.FieldMask{ 678 PlanAssignmentRequestRequestType_FieldPathSelectorAssign: &PlanAssignmentRequest_RequestType_Assign_FieldMask{}, 679 PlanAssignmentRequestRequestType_FieldPathSelectorExtend: &PlanAssignmentRequest_RequestType_Extend_FieldMask{}, 680 PlanAssignmentRequestRequestType_FieldPathSelectorUnassign: &PlanAssignmentRequest_RequestType_Unassign_FieldMask{}, 681 } 682 683 for _, path := range other.GetPaths() { 684 switch tp := path.(type) { 685 case *PlanAssignmentRequestRequestType_FieldTerminalPath: 686 removedSelectors[int(tp.selector)] = true 687 case *PlanAssignmentRequestRequestType_FieldSubPath: 688 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 689 } 690 } 691 for _, path := range fieldMask.GetPaths() { 692 if !removedSelectors[int(path.Selector())] { 693 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 694 if tp, ok := path.(*PlanAssignmentRequestRequestType_FieldTerminalPath); ok { 695 switch tp.selector { 696 case PlanAssignmentRequestRequestType_FieldPathSelectorAssign: 697 mySubMasks[PlanAssignmentRequestRequestType_FieldPathSelectorAssign] = FullPlanAssignmentRequest_RequestType_Assign_FieldMask() 698 case PlanAssignmentRequestRequestType_FieldPathSelectorExtend: 699 mySubMasks[PlanAssignmentRequestRequestType_FieldPathSelectorExtend] = FullPlanAssignmentRequest_RequestType_Extend_FieldMask() 700 case PlanAssignmentRequestRequestType_FieldPathSelectorUnassign: 701 mySubMasks[PlanAssignmentRequestRequestType_FieldPathSelectorUnassign] = FullPlanAssignmentRequest_RequestType_Unassign_FieldMask() 702 } 703 } else if tp, ok := path.(*PlanAssignmentRequestRequestType_FieldSubPath); ok { 704 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 705 } 706 } else { 707 result.Paths = append(result.Paths, path) 708 } 709 } 710 } 711 for selector, mySubMask := range mySubMasks { 712 if mySubMask.PathsCount() > 0 { 713 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 714 result.Paths = append(result.Paths, &PlanAssignmentRequestRequestType_FieldSubPath{selector: selector, subPath: allowedPath}) 715 } 716 } 717 } 718 719 if len(result.Paths) == 0 { 720 return nil 721 } 722 return result 723 } 724 725 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 726 return fieldMask.Subtract(other.(*PlanAssignmentRequest_RequestType_FieldMask)) 727 } 728 729 // FilterInputFields generates copy of field paths with output_only field paths removed 730 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) FilterInputFields() *PlanAssignmentRequest_RequestType_FieldMask { 731 result := &PlanAssignmentRequest_RequestType_FieldMask{} 732 result.Paths = append(result.Paths, fieldMask.Paths...) 733 return result 734 } 735 736 // ToFieldMask is used for proto conversions 737 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 738 protoFieldMask := &googlefieldmaskpb.FieldMask{} 739 for _, path := range fieldMask.Paths { 740 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 741 } 742 return protoFieldMask 743 } 744 745 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 746 if fieldMask == nil { 747 return status.Error(codes.Internal, "target field mask is nil") 748 } 749 fieldMask.Paths = make([]PlanAssignmentRequestRequestType_FieldPath, 0, len(protoFieldMask.Paths)) 750 for _, strPath := range protoFieldMask.Paths { 751 path, err := ParsePlanAssignmentRequestRequestType_FieldPath(strPath) 752 if err != nil { 753 return err 754 } 755 fieldMask.Paths = append(fieldMask.Paths, path) 756 } 757 return nil 758 } 759 760 // implement methods required by customType 761 func (fieldMask PlanAssignmentRequest_RequestType_FieldMask) Marshal() ([]byte, error) { 762 protoFieldMask := fieldMask.ToProtoFieldMask() 763 return proto.Marshal(protoFieldMask) 764 } 765 766 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) Unmarshal(data []byte) error { 767 protoFieldMask := &googlefieldmaskpb.FieldMask{} 768 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 769 return err 770 } 771 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 772 return err 773 } 774 return nil 775 } 776 777 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) Size() int { 778 return proto.Size(fieldMask.ToProtoFieldMask()) 779 } 780 781 func (fieldMask PlanAssignmentRequest_RequestType_FieldMask) MarshalJSON() ([]byte, error) { 782 return json.Marshal(fieldMask.ToProtoFieldMask()) 783 } 784 785 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) UnmarshalJSON(data []byte) error { 786 protoFieldMask := &googlefieldmaskpb.FieldMask{} 787 if err := json.Unmarshal(data, protoFieldMask); err != nil { 788 return err 789 } 790 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 791 return err 792 } 793 return nil 794 } 795 796 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) AppendPath(path PlanAssignmentRequestRequestType_FieldPath) { 797 fieldMask.Paths = append(fieldMask.Paths, path) 798 } 799 800 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 801 fieldMask.Paths = append(fieldMask.Paths, path.(PlanAssignmentRequestRequestType_FieldPath)) 802 } 803 804 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) GetPaths() []PlanAssignmentRequestRequestType_FieldPath { 805 if fieldMask == nil { 806 return nil 807 } 808 return fieldMask.Paths 809 } 810 811 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) GetRawPaths() []gotenobject.FieldPath { 812 if fieldMask == nil { 813 return nil 814 } 815 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 816 for _, path := range fieldMask.Paths { 817 rawPaths = append(rawPaths, path) 818 } 819 return rawPaths 820 } 821 822 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) SetFromCliFlag(raw string) error { 823 path, err := ParsePlanAssignmentRequestRequestType_FieldPath(raw) 824 if err != nil { 825 return err 826 } 827 fieldMask.Paths = append(fieldMask.Paths, path) 828 return nil 829 } 830 831 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) Set(target, source *PlanAssignmentRequest_RequestType) { 832 for _, path := range fieldMask.Paths { 833 val, _ := path.GetSingle(source) 834 // if val is nil, then field does not exist in source, skip 835 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 836 if val != nil { 837 path.WithIValue(val).SetTo(&target) 838 } 839 } 840 } 841 842 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 843 fieldMask.Set(target.(*PlanAssignmentRequest_RequestType), source.(*PlanAssignmentRequest_RequestType)) 844 } 845 846 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) Project(source *PlanAssignmentRequest_RequestType) *PlanAssignmentRequest_RequestType { 847 if source == nil { 848 return nil 849 } 850 if fieldMask == nil { 851 return source 852 } 853 result := &PlanAssignmentRequest_RequestType{} 854 assignMask := &PlanAssignmentRequest_RequestType_Assign_FieldMask{} 855 wholeAssignAccepted := false 856 extendMask := &PlanAssignmentRequest_RequestType_Extend_FieldMask{} 857 wholeExtendAccepted := false 858 unassignMask := &PlanAssignmentRequest_RequestType_Unassign_FieldMask{} 859 wholeUnassignAccepted := false 860 861 for _, p := range fieldMask.Paths { 862 switch tp := p.(type) { 863 case *PlanAssignmentRequestRequestType_FieldTerminalPath: 864 switch tp.selector { 865 case PlanAssignmentRequestRequestType_FieldPathSelectorAssign: 866 if source, ok := source.Request.(*PlanAssignmentRequest_RequestType_Assign_); ok { 867 result.Request = &PlanAssignmentRequest_RequestType_Assign_{ 868 Assign: source.Assign, 869 } 870 } 871 wholeAssignAccepted = true 872 case PlanAssignmentRequestRequestType_FieldPathSelectorExtend: 873 if source, ok := source.Request.(*PlanAssignmentRequest_RequestType_Extend_); ok { 874 result.Request = &PlanAssignmentRequest_RequestType_Extend_{ 875 Extend: source.Extend, 876 } 877 } 878 wholeExtendAccepted = true 879 case PlanAssignmentRequestRequestType_FieldPathSelectorUnassign: 880 if source, ok := source.Request.(*PlanAssignmentRequest_RequestType_Unassign_); ok { 881 result.Request = &PlanAssignmentRequest_RequestType_Unassign_{ 882 Unassign: source.Unassign, 883 } 884 } 885 wholeUnassignAccepted = true 886 } 887 case *PlanAssignmentRequestRequestType_FieldSubPath: 888 switch tp.selector { 889 case PlanAssignmentRequestRequestType_FieldPathSelectorAssign: 890 assignMask.AppendPath(tp.subPath.(PlanAssignmentRequestRequestTypeAssign_FieldPath)) 891 case PlanAssignmentRequestRequestType_FieldPathSelectorExtend: 892 extendMask.AppendPath(tp.subPath.(PlanAssignmentRequestRequestTypeExtend_FieldPath)) 893 case PlanAssignmentRequestRequestType_FieldPathSelectorUnassign: 894 unassignMask.AppendPath(tp.subPath.(PlanAssignmentRequestRequestTypeUnassign_FieldPath)) 895 } 896 } 897 } 898 if wholeAssignAccepted == false && len(assignMask.Paths) > 0 { 899 if asOneOf, ok := source.Request.(*PlanAssignmentRequest_RequestType_Assign_); ok { 900 result.Request = (*PlanAssignmentRequest_RequestType_Assign_)(nil) 901 if asOneOf != nil { 902 oneOfRes := &PlanAssignmentRequest_RequestType_Assign_{} 903 oneOfRes.Assign = assignMask.Project(asOneOf.Assign) 904 result.Request = oneOfRes 905 } 906 } 907 } 908 if wholeExtendAccepted == false && len(extendMask.Paths) > 0 { 909 if asOneOf, ok := source.Request.(*PlanAssignmentRequest_RequestType_Extend_); ok { 910 result.Request = (*PlanAssignmentRequest_RequestType_Extend_)(nil) 911 if asOneOf != nil { 912 oneOfRes := &PlanAssignmentRequest_RequestType_Extend_{} 913 oneOfRes.Extend = extendMask.Project(asOneOf.Extend) 914 result.Request = oneOfRes 915 } 916 } 917 } 918 if wholeUnassignAccepted == false && len(unassignMask.Paths) > 0 { 919 if asOneOf, ok := source.Request.(*PlanAssignmentRequest_RequestType_Unassign_); ok { 920 result.Request = (*PlanAssignmentRequest_RequestType_Unassign_)(nil) 921 if asOneOf != nil { 922 oneOfRes := &PlanAssignmentRequest_RequestType_Unassign_{} 923 oneOfRes.Unassign = unassignMask.Project(asOneOf.Unassign) 924 result.Request = oneOfRes 925 } 926 } 927 } 928 return result 929 } 930 931 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 932 return fieldMask.Project(source.(*PlanAssignmentRequest_RequestType)) 933 } 934 935 func (fieldMask *PlanAssignmentRequest_RequestType_FieldMask) PathsCount() int { 936 if fieldMask == nil { 937 return 0 938 } 939 return len(fieldMask.Paths) 940 } 941 942 type PlanAssignmentRequest_RequestType_Assign_FieldMask struct { 943 Paths []PlanAssignmentRequestRequestTypeAssign_FieldPath 944 } 945 946 func FullPlanAssignmentRequest_RequestType_Assign_FieldMask() *PlanAssignmentRequest_RequestType_Assign_FieldMask { 947 res := &PlanAssignmentRequest_RequestType_Assign_FieldMask{} 948 res.Paths = append(res.Paths, &PlanAssignmentRequestRequestTypeAssign_FieldTerminalPath{selector: PlanAssignmentRequestRequestTypeAssign_FieldPathSelectorPlan}) 949 res.Paths = append(res.Paths, &PlanAssignmentRequestRequestTypeAssign_FieldTerminalPath{selector: PlanAssignmentRequestRequestTypeAssign_FieldPathSelectorExtensions}) 950 res.Paths = append(res.Paths, &PlanAssignmentRequestRequestTypeAssign_FieldTerminalPath{selector: PlanAssignmentRequestRequestTypeAssign_FieldPathSelectorRegion}) 951 return res 952 } 953 954 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) String() string { 955 if fieldMask == nil { 956 return "<nil>" 957 } 958 pathsStr := make([]string, 0, len(fieldMask.Paths)) 959 for _, path := range fieldMask.Paths { 960 pathsStr = append(pathsStr, path.String()) 961 } 962 return strings.Join(pathsStr, ", ") 963 } 964 965 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) IsFull() bool { 966 if fieldMask == nil { 967 return false 968 } 969 presentSelectors := make([]bool, 3) 970 for _, path := range fieldMask.Paths { 971 if asFinal, ok := path.(*PlanAssignmentRequestRequestTypeAssign_FieldTerminalPath); ok { 972 presentSelectors[int(asFinal.selector)] = true 973 } 974 } 975 for _, flag := range presentSelectors { 976 if !flag { 977 return false 978 } 979 } 980 return true 981 } 982 983 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) ProtoReflect() preflect.Message { 984 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 985 return ParsePlanAssignmentRequestRequestTypeAssign_FieldPath(raw) 986 }) 987 } 988 989 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) ProtoMessage() {} 990 991 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) Reset() { 992 if fieldMask != nil { 993 fieldMask.Paths = nil 994 } 995 } 996 997 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) Subtract(other *PlanAssignmentRequest_RequestType_Assign_FieldMask) *PlanAssignmentRequest_RequestType_Assign_FieldMask { 998 result := &PlanAssignmentRequest_RequestType_Assign_FieldMask{} 999 removedSelectors := make([]bool, 3) 1000 otherSubMasks := map[PlanAssignmentRequestRequestTypeAssign_FieldPathSelector]gotenobject.FieldMask{ 1001 PlanAssignmentRequestRequestTypeAssign_FieldPathSelectorExtensions: &common.Allowance_FieldMask{}, 1002 } 1003 mySubMasks := map[PlanAssignmentRequestRequestTypeAssign_FieldPathSelector]gotenobject.FieldMask{ 1004 PlanAssignmentRequestRequestTypeAssign_FieldPathSelectorExtensions: &common.Allowance_FieldMask{}, 1005 } 1006 1007 for _, path := range other.GetPaths() { 1008 switch tp := path.(type) { 1009 case *PlanAssignmentRequestRequestTypeAssign_FieldTerminalPath: 1010 removedSelectors[int(tp.selector)] = true 1011 case *PlanAssignmentRequestRequestTypeAssign_FieldSubPath: 1012 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 1013 } 1014 } 1015 for _, path := range fieldMask.GetPaths() { 1016 if !removedSelectors[int(path.Selector())] { 1017 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 1018 if tp, ok := path.(*PlanAssignmentRequestRequestTypeAssign_FieldTerminalPath); ok { 1019 switch tp.selector { 1020 case PlanAssignmentRequestRequestTypeAssign_FieldPathSelectorExtensions: 1021 mySubMasks[PlanAssignmentRequestRequestTypeAssign_FieldPathSelectorExtensions] = common.FullAllowance_FieldMask() 1022 } 1023 } else if tp, ok := path.(*PlanAssignmentRequestRequestTypeAssign_FieldSubPath); ok { 1024 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 1025 } 1026 } else { 1027 result.Paths = append(result.Paths, path) 1028 } 1029 } 1030 } 1031 for selector, mySubMask := range mySubMasks { 1032 if mySubMask.PathsCount() > 0 { 1033 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 1034 result.Paths = append(result.Paths, &PlanAssignmentRequestRequestTypeAssign_FieldSubPath{selector: selector, subPath: allowedPath}) 1035 } 1036 } 1037 } 1038 1039 if len(result.Paths) == 0 { 1040 return nil 1041 } 1042 return result 1043 } 1044 1045 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1046 return fieldMask.Subtract(other.(*PlanAssignmentRequest_RequestType_Assign_FieldMask)) 1047 } 1048 1049 // FilterInputFields generates copy of field paths with output_only field paths removed 1050 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) FilterInputFields() *PlanAssignmentRequest_RequestType_Assign_FieldMask { 1051 result := &PlanAssignmentRequest_RequestType_Assign_FieldMask{} 1052 result.Paths = append(result.Paths, fieldMask.Paths...) 1053 return result 1054 } 1055 1056 // ToFieldMask is used for proto conversions 1057 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1058 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1059 for _, path := range fieldMask.Paths { 1060 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1061 } 1062 return protoFieldMask 1063 } 1064 1065 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1066 if fieldMask == nil { 1067 return status.Error(codes.Internal, "target field mask is nil") 1068 } 1069 fieldMask.Paths = make([]PlanAssignmentRequestRequestTypeAssign_FieldPath, 0, len(protoFieldMask.Paths)) 1070 for _, strPath := range protoFieldMask.Paths { 1071 path, err := ParsePlanAssignmentRequestRequestTypeAssign_FieldPath(strPath) 1072 if err != nil { 1073 return err 1074 } 1075 fieldMask.Paths = append(fieldMask.Paths, path) 1076 } 1077 return nil 1078 } 1079 1080 // implement methods required by customType 1081 func (fieldMask PlanAssignmentRequest_RequestType_Assign_FieldMask) Marshal() ([]byte, error) { 1082 protoFieldMask := fieldMask.ToProtoFieldMask() 1083 return proto.Marshal(protoFieldMask) 1084 } 1085 1086 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) Unmarshal(data []byte) error { 1087 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1088 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1089 return err 1090 } 1091 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1092 return err 1093 } 1094 return nil 1095 } 1096 1097 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) Size() int { 1098 return proto.Size(fieldMask.ToProtoFieldMask()) 1099 } 1100 1101 func (fieldMask PlanAssignmentRequest_RequestType_Assign_FieldMask) MarshalJSON() ([]byte, error) { 1102 return json.Marshal(fieldMask.ToProtoFieldMask()) 1103 } 1104 1105 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) UnmarshalJSON(data []byte) error { 1106 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1107 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1108 return err 1109 } 1110 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1111 return err 1112 } 1113 return nil 1114 } 1115 1116 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) AppendPath(path PlanAssignmentRequestRequestTypeAssign_FieldPath) { 1117 fieldMask.Paths = append(fieldMask.Paths, path) 1118 } 1119 1120 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1121 fieldMask.Paths = append(fieldMask.Paths, path.(PlanAssignmentRequestRequestTypeAssign_FieldPath)) 1122 } 1123 1124 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) GetPaths() []PlanAssignmentRequestRequestTypeAssign_FieldPath { 1125 if fieldMask == nil { 1126 return nil 1127 } 1128 return fieldMask.Paths 1129 } 1130 1131 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1132 if fieldMask == nil { 1133 return nil 1134 } 1135 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1136 for _, path := range fieldMask.Paths { 1137 rawPaths = append(rawPaths, path) 1138 } 1139 return rawPaths 1140 } 1141 1142 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) SetFromCliFlag(raw string) error { 1143 path, err := ParsePlanAssignmentRequestRequestTypeAssign_FieldPath(raw) 1144 if err != nil { 1145 return err 1146 } 1147 fieldMask.Paths = append(fieldMask.Paths, path) 1148 return nil 1149 } 1150 1151 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) Set(target, source *PlanAssignmentRequest_RequestType_Assign) { 1152 for _, path := range fieldMask.Paths { 1153 val, _ := path.GetSingle(source) 1154 // if val is nil, then field does not exist in source, skip 1155 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1156 if val != nil { 1157 path.WithIValue(val).SetTo(&target) 1158 } 1159 } 1160 } 1161 1162 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1163 fieldMask.Set(target.(*PlanAssignmentRequest_RequestType_Assign), source.(*PlanAssignmentRequest_RequestType_Assign)) 1164 } 1165 1166 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) Project(source *PlanAssignmentRequest_RequestType_Assign) *PlanAssignmentRequest_RequestType_Assign { 1167 if source == nil { 1168 return nil 1169 } 1170 if fieldMask == nil { 1171 return source 1172 } 1173 result := &PlanAssignmentRequest_RequestType_Assign{} 1174 extensionsMask := &common.Allowance_FieldMask{} 1175 wholeExtensionsAccepted := false 1176 1177 for _, p := range fieldMask.Paths { 1178 switch tp := p.(type) { 1179 case *PlanAssignmentRequestRequestTypeAssign_FieldTerminalPath: 1180 switch tp.selector { 1181 case PlanAssignmentRequestRequestTypeAssign_FieldPathSelectorPlan: 1182 result.Plan = source.Plan 1183 case PlanAssignmentRequestRequestTypeAssign_FieldPathSelectorExtensions: 1184 result.Extensions = source.Extensions 1185 wholeExtensionsAccepted = true 1186 case PlanAssignmentRequestRequestTypeAssign_FieldPathSelectorRegion: 1187 result.Region = source.Region 1188 } 1189 case *PlanAssignmentRequestRequestTypeAssign_FieldSubPath: 1190 switch tp.selector { 1191 case PlanAssignmentRequestRequestTypeAssign_FieldPathSelectorExtensions: 1192 extensionsMask.AppendPath(tp.subPath.(common.Allowance_FieldPath)) 1193 } 1194 } 1195 } 1196 if wholeExtensionsAccepted == false && len(extensionsMask.Paths) > 0 { 1197 for _, sourceItem := range source.GetExtensions() { 1198 result.Extensions = append(result.Extensions, extensionsMask.Project(sourceItem)) 1199 } 1200 } 1201 return result 1202 } 1203 1204 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1205 return fieldMask.Project(source.(*PlanAssignmentRequest_RequestType_Assign)) 1206 } 1207 1208 func (fieldMask *PlanAssignmentRequest_RequestType_Assign_FieldMask) PathsCount() int { 1209 if fieldMask == nil { 1210 return 0 1211 } 1212 return len(fieldMask.Paths) 1213 } 1214 1215 type PlanAssignmentRequest_RequestType_Extend_FieldMask struct { 1216 Paths []PlanAssignmentRequestRequestTypeExtend_FieldPath 1217 } 1218 1219 func FullPlanAssignmentRequest_RequestType_Extend_FieldMask() *PlanAssignmentRequest_RequestType_Extend_FieldMask { 1220 res := &PlanAssignmentRequest_RequestType_Extend_FieldMask{} 1221 res.Paths = append(res.Paths, &PlanAssignmentRequestRequestTypeExtend_FieldTerminalPath{selector: PlanAssignmentRequestRequestTypeExtend_FieldPathSelectorAssignment}) 1222 res.Paths = append(res.Paths, &PlanAssignmentRequestRequestTypeExtend_FieldTerminalPath{selector: PlanAssignmentRequestRequestTypeExtend_FieldPathSelectorAdditions}) 1223 return res 1224 } 1225 1226 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) String() string { 1227 if fieldMask == nil { 1228 return "<nil>" 1229 } 1230 pathsStr := make([]string, 0, len(fieldMask.Paths)) 1231 for _, path := range fieldMask.Paths { 1232 pathsStr = append(pathsStr, path.String()) 1233 } 1234 return strings.Join(pathsStr, ", ") 1235 } 1236 1237 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) IsFull() bool { 1238 if fieldMask == nil { 1239 return false 1240 } 1241 presentSelectors := make([]bool, 2) 1242 for _, path := range fieldMask.Paths { 1243 if asFinal, ok := path.(*PlanAssignmentRequestRequestTypeExtend_FieldTerminalPath); ok { 1244 presentSelectors[int(asFinal.selector)] = true 1245 } 1246 } 1247 for _, flag := range presentSelectors { 1248 if !flag { 1249 return false 1250 } 1251 } 1252 return true 1253 } 1254 1255 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) ProtoReflect() preflect.Message { 1256 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 1257 return ParsePlanAssignmentRequestRequestTypeExtend_FieldPath(raw) 1258 }) 1259 } 1260 1261 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) ProtoMessage() {} 1262 1263 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) Reset() { 1264 if fieldMask != nil { 1265 fieldMask.Paths = nil 1266 } 1267 } 1268 1269 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) Subtract(other *PlanAssignmentRequest_RequestType_Extend_FieldMask) *PlanAssignmentRequest_RequestType_Extend_FieldMask { 1270 result := &PlanAssignmentRequest_RequestType_Extend_FieldMask{} 1271 removedSelectors := make([]bool, 2) 1272 otherSubMasks := map[PlanAssignmentRequestRequestTypeExtend_FieldPathSelector]gotenobject.FieldMask{ 1273 PlanAssignmentRequestRequestTypeExtend_FieldPathSelectorAdditions: &common.Allowance_FieldMask{}, 1274 } 1275 mySubMasks := map[PlanAssignmentRequestRequestTypeExtend_FieldPathSelector]gotenobject.FieldMask{ 1276 PlanAssignmentRequestRequestTypeExtend_FieldPathSelectorAdditions: &common.Allowance_FieldMask{}, 1277 } 1278 1279 for _, path := range other.GetPaths() { 1280 switch tp := path.(type) { 1281 case *PlanAssignmentRequestRequestTypeExtend_FieldTerminalPath: 1282 removedSelectors[int(tp.selector)] = true 1283 case *PlanAssignmentRequestRequestTypeExtend_FieldSubPath: 1284 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 1285 } 1286 } 1287 for _, path := range fieldMask.GetPaths() { 1288 if !removedSelectors[int(path.Selector())] { 1289 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 1290 if tp, ok := path.(*PlanAssignmentRequestRequestTypeExtend_FieldTerminalPath); ok { 1291 switch tp.selector { 1292 case PlanAssignmentRequestRequestTypeExtend_FieldPathSelectorAdditions: 1293 mySubMasks[PlanAssignmentRequestRequestTypeExtend_FieldPathSelectorAdditions] = common.FullAllowance_FieldMask() 1294 } 1295 } else if tp, ok := path.(*PlanAssignmentRequestRequestTypeExtend_FieldSubPath); ok { 1296 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 1297 } 1298 } else { 1299 result.Paths = append(result.Paths, path) 1300 } 1301 } 1302 } 1303 for selector, mySubMask := range mySubMasks { 1304 if mySubMask.PathsCount() > 0 { 1305 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 1306 result.Paths = append(result.Paths, &PlanAssignmentRequestRequestTypeExtend_FieldSubPath{selector: selector, subPath: allowedPath}) 1307 } 1308 } 1309 } 1310 1311 if len(result.Paths) == 0 { 1312 return nil 1313 } 1314 return result 1315 } 1316 1317 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1318 return fieldMask.Subtract(other.(*PlanAssignmentRequest_RequestType_Extend_FieldMask)) 1319 } 1320 1321 // FilterInputFields generates copy of field paths with output_only field paths removed 1322 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) FilterInputFields() *PlanAssignmentRequest_RequestType_Extend_FieldMask { 1323 result := &PlanAssignmentRequest_RequestType_Extend_FieldMask{} 1324 result.Paths = append(result.Paths, fieldMask.Paths...) 1325 return result 1326 } 1327 1328 // ToFieldMask is used for proto conversions 1329 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1330 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1331 for _, path := range fieldMask.Paths { 1332 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1333 } 1334 return protoFieldMask 1335 } 1336 1337 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1338 if fieldMask == nil { 1339 return status.Error(codes.Internal, "target field mask is nil") 1340 } 1341 fieldMask.Paths = make([]PlanAssignmentRequestRequestTypeExtend_FieldPath, 0, len(protoFieldMask.Paths)) 1342 for _, strPath := range protoFieldMask.Paths { 1343 path, err := ParsePlanAssignmentRequestRequestTypeExtend_FieldPath(strPath) 1344 if err != nil { 1345 return err 1346 } 1347 fieldMask.Paths = append(fieldMask.Paths, path) 1348 } 1349 return nil 1350 } 1351 1352 // implement methods required by customType 1353 func (fieldMask PlanAssignmentRequest_RequestType_Extend_FieldMask) Marshal() ([]byte, error) { 1354 protoFieldMask := fieldMask.ToProtoFieldMask() 1355 return proto.Marshal(protoFieldMask) 1356 } 1357 1358 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) Unmarshal(data []byte) error { 1359 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1360 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1361 return err 1362 } 1363 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1364 return err 1365 } 1366 return nil 1367 } 1368 1369 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) Size() int { 1370 return proto.Size(fieldMask.ToProtoFieldMask()) 1371 } 1372 1373 func (fieldMask PlanAssignmentRequest_RequestType_Extend_FieldMask) MarshalJSON() ([]byte, error) { 1374 return json.Marshal(fieldMask.ToProtoFieldMask()) 1375 } 1376 1377 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) UnmarshalJSON(data []byte) error { 1378 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1379 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1380 return err 1381 } 1382 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1383 return err 1384 } 1385 return nil 1386 } 1387 1388 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) AppendPath(path PlanAssignmentRequestRequestTypeExtend_FieldPath) { 1389 fieldMask.Paths = append(fieldMask.Paths, path) 1390 } 1391 1392 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1393 fieldMask.Paths = append(fieldMask.Paths, path.(PlanAssignmentRequestRequestTypeExtend_FieldPath)) 1394 } 1395 1396 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) GetPaths() []PlanAssignmentRequestRequestTypeExtend_FieldPath { 1397 if fieldMask == nil { 1398 return nil 1399 } 1400 return fieldMask.Paths 1401 } 1402 1403 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1404 if fieldMask == nil { 1405 return nil 1406 } 1407 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1408 for _, path := range fieldMask.Paths { 1409 rawPaths = append(rawPaths, path) 1410 } 1411 return rawPaths 1412 } 1413 1414 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) SetFromCliFlag(raw string) error { 1415 path, err := ParsePlanAssignmentRequestRequestTypeExtend_FieldPath(raw) 1416 if err != nil { 1417 return err 1418 } 1419 fieldMask.Paths = append(fieldMask.Paths, path) 1420 return nil 1421 } 1422 1423 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) Set(target, source *PlanAssignmentRequest_RequestType_Extend) { 1424 for _, path := range fieldMask.Paths { 1425 val, _ := path.GetSingle(source) 1426 // if val is nil, then field does not exist in source, skip 1427 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1428 if val != nil { 1429 path.WithIValue(val).SetTo(&target) 1430 } 1431 } 1432 } 1433 1434 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1435 fieldMask.Set(target.(*PlanAssignmentRequest_RequestType_Extend), source.(*PlanAssignmentRequest_RequestType_Extend)) 1436 } 1437 1438 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) Project(source *PlanAssignmentRequest_RequestType_Extend) *PlanAssignmentRequest_RequestType_Extend { 1439 if source == nil { 1440 return nil 1441 } 1442 if fieldMask == nil { 1443 return source 1444 } 1445 result := &PlanAssignmentRequest_RequestType_Extend{} 1446 additionsMask := &common.Allowance_FieldMask{} 1447 wholeAdditionsAccepted := false 1448 1449 for _, p := range fieldMask.Paths { 1450 switch tp := p.(type) { 1451 case *PlanAssignmentRequestRequestTypeExtend_FieldTerminalPath: 1452 switch tp.selector { 1453 case PlanAssignmentRequestRequestTypeExtend_FieldPathSelectorAssignment: 1454 result.Assignment = source.Assignment 1455 case PlanAssignmentRequestRequestTypeExtend_FieldPathSelectorAdditions: 1456 result.Additions = source.Additions 1457 wholeAdditionsAccepted = true 1458 } 1459 case *PlanAssignmentRequestRequestTypeExtend_FieldSubPath: 1460 switch tp.selector { 1461 case PlanAssignmentRequestRequestTypeExtend_FieldPathSelectorAdditions: 1462 additionsMask.AppendPath(tp.subPath.(common.Allowance_FieldPath)) 1463 } 1464 } 1465 } 1466 if wholeAdditionsAccepted == false && len(additionsMask.Paths) > 0 { 1467 for _, sourceItem := range source.GetAdditions() { 1468 result.Additions = append(result.Additions, additionsMask.Project(sourceItem)) 1469 } 1470 } 1471 return result 1472 } 1473 1474 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1475 return fieldMask.Project(source.(*PlanAssignmentRequest_RequestType_Extend)) 1476 } 1477 1478 func (fieldMask *PlanAssignmentRequest_RequestType_Extend_FieldMask) PathsCount() int { 1479 if fieldMask == nil { 1480 return 0 1481 } 1482 return len(fieldMask.Paths) 1483 } 1484 1485 type PlanAssignmentRequest_RequestType_Unassign_FieldMask struct { 1486 Paths []PlanAssignmentRequestRequestTypeUnassign_FieldPath 1487 } 1488 1489 func FullPlanAssignmentRequest_RequestType_Unassign_FieldMask() *PlanAssignmentRequest_RequestType_Unassign_FieldMask { 1490 res := &PlanAssignmentRequest_RequestType_Unassign_FieldMask{} 1491 res.Paths = append(res.Paths, &PlanAssignmentRequestRequestTypeUnassign_FieldTerminalPath{selector: PlanAssignmentRequestRequestTypeUnassign_FieldPathSelectorAssignment}) 1492 res.Paths = append(res.Paths, &PlanAssignmentRequestRequestTypeUnassign_FieldTerminalPath{selector: PlanAssignmentRequestRequestTypeUnassign_FieldPathSelectorRegion}) 1493 return res 1494 } 1495 1496 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) String() string { 1497 if fieldMask == nil { 1498 return "<nil>" 1499 } 1500 pathsStr := make([]string, 0, len(fieldMask.Paths)) 1501 for _, path := range fieldMask.Paths { 1502 pathsStr = append(pathsStr, path.String()) 1503 } 1504 return strings.Join(pathsStr, ", ") 1505 } 1506 1507 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) IsFull() bool { 1508 if fieldMask == nil { 1509 return false 1510 } 1511 presentSelectors := make([]bool, 2) 1512 for _, path := range fieldMask.Paths { 1513 if asFinal, ok := path.(*PlanAssignmentRequestRequestTypeUnassign_FieldTerminalPath); ok { 1514 presentSelectors[int(asFinal.selector)] = true 1515 } 1516 } 1517 for _, flag := range presentSelectors { 1518 if !flag { 1519 return false 1520 } 1521 } 1522 return true 1523 } 1524 1525 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) ProtoReflect() preflect.Message { 1526 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 1527 return ParsePlanAssignmentRequestRequestTypeUnassign_FieldPath(raw) 1528 }) 1529 } 1530 1531 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) ProtoMessage() {} 1532 1533 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) Reset() { 1534 if fieldMask != nil { 1535 fieldMask.Paths = nil 1536 } 1537 } 1538 1539 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) Subtract(other *PlanAssignmentRequest_RequestType_Unassign_FieldMask) *PlanAssignmentRequest_RequestType_Unassign_FieldMask { 1540 result := &PlanAssignmentRequest_RequestType_Unassign_FieldMask{} 1541 removedSelectors := make([]bool, 2) 1542 1543 for _, path := range other.GetPaths() { 1544 switch tp := path.(type) { 1545 case *PlanAssignmentRequestRequestTypeUnassign_FieldTerminalPath: 1546 removedSelectors[int(tp.selector)] = true 1547 } 1548 } 1549 for _, path := range fieldMask.GetPaths() { 1550 if !removedSelectors[int(path.Selector())] { 1551 result.Paths = append(result.Paths, path) 1552 } 1553 } 1554 1555 if len(result.Paths) == 0 { 1556 return nil 1557 } 1558 return result 1559 } 1560 1561 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1562 return fieldMask.Subtract(other.(*PlanAssignmentRequest_RequestType_Unassign_FieldMask)) 1563 } 1564 1565 // FilterInputFields generates copy of field paths with output_only field paths removed 1566 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) FilterInputFields() *PlanAssignmentRequest_RequestType_Unassign_FieldMask { 1567 result := &PlanAssignmentRequest_RequestType_Unassign_FieldMask{} 1568 result.Paths = append(result.Paths, fieldMask.Paths...) 1569 return result 1570 } 1571 1572 // ToFieldMask is used for proto conversions 1573 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1574 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1575 for _, path := range fieldMask.Paths { 1576 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1577 } 1578 return protoFieldMask 1579 } 1580 1581 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1582 if fieldMask == nil { 1583 return status.Error(codes.Internal, "target field mask is nil") 1584 } 1585 fieldMask.Paths = make([]PlanAssignmentRequestRequestTypeUnassign_FieldPath, 0, len(protoFieldMask.Paths)) 1586 for _, strPath := range protoFieldMask.Paths { 1587 path, err := ParsePlanAssignmentRequestRequestTypeUnassign_FieldPath(strPath) 1588 if err != nil { 1589 return err 1590 } 1591 fieldMask.Paths = append(fieldMask.Paths, path) 1592 } 1593 return nil 1594 } 1595 1596 // implement methods required by customType 1597 func (fieldMask PlanAssignmentRequest_RequestType_Unassign_FieldMask) Marshal() ([]byte, error) { 1598 protoFieldMask := fieldMask.ToProtoFieldMask() 1599 return proto.Marshal(protoFieldMask) 1600 } 1601 1602 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) Unmarshal(data []byte) error { 1603 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1604 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1605 return err 1606 } 1607 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1608 return err 1609 } 1610 return nil 1611 } 1612 1613 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) Size() int { 1614 return proto.Size(fieldMask.ToProtoFieldMask()) 1615 } 1616 1617 func (fieldMask PlanAssignmentRequest_RequestType_Unassign_FieldMask) MarshalJSON() ([]byte, error) { 1618 return json.Marshal(fieldMask.ToProtoFieldMask()) 1619 } 1620 1621 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) UnmarshalJSON(data []byte) error { 1622 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1623 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1624 return err 1625 } 1626 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1627 return err 1628 } 1629 return nil 1630 } 1631 1632 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) AppendPath(path PlanAssignmentRequestRequestTypeUnassign_FieldPath) { 1633 fieldMask.Paths = append(fieldMask.Paths, path) 1634 } 1635 1636 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1637 fieldMask.Paths = append(fieldMask.Paths, path.(PlanAssignmentRequestRequestTypeUnassign_FieldPath)) 1638 } 1639 1640 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) GetPaths() []PlanAssignmentRequestRequestTypeUnassign_FieldPath { 1641 if fieldMask == nil { 1642 return nil 1643 } 1644 return fieldMask.Paths 1645 } 1646 1647 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1648 if fieldMask == nil { 1649 return nil 1650 } 1651 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1652 for _, path := range fieldMask.Paths { 1653 rawPaths = append(rawPaths, path) 1654 } 1655 return rawPaths 1656 } 1657 1658 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) SetFromCliFlag(raw string) error { 1659 path, err := ParsePlanAssignmentRequestRequestTypeUnassign_FieldPath(raw) 1660 if err != nil { 1661 return err 1662 } 1663 fieldMask.Paths = append(fieldMask.Paths, path) 1664 return nil 1665 } 1666 1667 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) Set(target, source *PlanAssignmentRequest_RequestType_Unassign) { 1668 for _, path := range fieldMask.Paths { 1669 val, _ := path.GetSingle(source) 1670 // if val is nil, then field does not exist in source, skip 1671 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1672 if val != nil { 1673 path.WithIValue(val).SetTo(&target) 1674 } 1675 } 1676 } 1677 1678 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1679 fieldMask.Set(target.(*PlanAssignmentRequest_RequestType_Unassign), source.(*PlanAssignmentRequest_RequestType_Unassign)) 1680 } 1681 1682 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) Project(source *PlanAssignmentRequest_RequestType_Unassign) *PlanAssignmentRequest_RequestType_Unassign { 1683 if source == nil { 1684 return nil 1685 } 1686 if fieldMask == nil { 1687 return source 1688 } 1689 result := &PlanAssignmentRequest_RequestType_Unassign{} 1690 1691 for _, p := range fieldMask.Paths { 1692 switch tp := p.(type) { 1693 case *PlanAssignmentRequestRequestTypeUnassign_FieldTerminalPath: 1694 switch tp.selector { 1695 case PlanAssignmentRequestRequestTypeUnassign_FieldPathSelectorAssignment: 1696 result.Assignment = source.Assignment 1697 case PlanAssignmentRequestRequestTypeUnassign_FieldPathSelectorRegion: 1698 result.Region = source.Region 1699 } 1700 } 1701 } 1702 return result 1703 } 1704 1705 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1706 return fieldMask.Project(source.(*PlanAssignmentRequest_RequestType_Unassign)) 1707 } 1708 1709 func (fieldMask *PlanAssignmentRequest_RequestType_Unassign_FieldMask) PathsCount() int { 1710 if fieldMask == nil { 1711 return 0 1712 } 1713 return len(fieldMask.Paths) 1714 }