github.com/cloudwan/edgelq-sdk@v1.15.4/iam/resources/v1/member_assignment/member_assignment.pb.fieldmask.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/iam/proto/v1/member_assignment.proto 3 // DO NOT EDIT!!! 4 5 package member_assignment 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_common "github.com/cloudwan/edgelq-sdk/iam/resources/v1/common" 23 organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1/organization" 24 role_binding "github.com/cloudwan/edgelq-sdk/iam/resources/v1/role_binding" 25 meta_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/service" 26 meta "github.com/cloudwan/goten-sdk/types/meta" 27 ) 28 29 // ensure the imports are used 30 var ( 31 _ = new(json.Marshaler) 32 _ = strings.Builder{} 33 34 _ = codes.NotFound 35 _ = status.Status{} 36 _ = new(proto.Message) 37 _ = new(preflect.Message) 38 _ = googlefieldmaskpb.FieldMask{} 39 40 _ = new(gotenobject.FieldMask) 41 ) 42 43 // make sure we're using proto imports 44 var ( 45 _ = &iam_common.PCR{} 46 _ = &organization.Organization{} 47 _ = &role_binding.RoleBinding{} 48 _ = &meta_service.Service{} 49 _ = &meta.Meta{} 50 ) 51 52 type MemberAssignment_FieldMask struct { 53 Paths []MemberAssignment_FieldPath 54 } 55 56 func FullMemberAssignment_FieldMask() *MemberAssignment_FieldMask { 57 res := &MemberAssignment_FieldMask{} 58 res.Paths = append(res.Paths, &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorName}) 59 res.Paths = append(res.Paths, &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorMetadata}) 60 res.Paths = append(res.Paths, &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorScope}) 61 res.Paths = append(res.Paths, &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorScopeTitle}) 62 res.Paths = append(res.Paths, &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorParentOrganization}) 63 res.Paths = append(res.Paths, &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorScopeMetadata}) 64 res.Paths = append(res.Paths, &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorMultiRegionControlRegion}) 65 res.Paths = append(res.Paths, &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions}) 66 res.Paths = append(res.Paths, &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorScopeServices}) 67 res.Paths = append(res.Paths, &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorBusinessTier}) 68 res.Paths = append(res.Paths, &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorMember}) 69 res.Paths = append(res.Paths, &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorMemberRegion}) 70 res.Paths = append(res.Paths, &MemberAssignment_FieldTerminalPath{selector: MemberAssignment_FieldPathSelectorCtrlStatus}) 71 return res 72 } 73 74 func (fieldMask *MemberAssignment_FieldMask) String() string { 75 if fieldMask == nil { 76 return "<nil>" 77 } 78 pathsStr := make([]string, 0, len(fieldMask.Paths)) 79 for _, path := range fieldMask.Paths { 80 pathsStr = append(pathsStr, path.String()) 81 } 82 return strings.Join(pathsStr, ", ") 83 } 84 85 func (fieldMask *MemberAssignment_FieldMask) IsFull() bool { 86 if fieldMask == nil { 87 return false 88 } 89 presentSelectors := make([]bool, 13) 90 for _, path := range fieldMask.Paths { 91 if asFinal, ok := path.(*MemberAssignment_FieldTerminalPath); ok { 92 presentSelectors[int(asFinal.selector)] = true 93 } 94 } 95 for _, flag := range presentSelectors { 96 if !flag { 97 return false 98 } 99 } 100 return true 101 } 102 103 func (fieldMask *MemberAssignment_FieldMask) ProtoReflect() preflect.Message { 104 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 105 return ParseMemberAssignment_FieldPath(raw) 106 }) 107 } 108 109 func (fieldMask *MemberAssignment_FieldMask) ProtoMessage() {} 110 111 func (fieldMask *MemberAssignment_FieldMask) Reset() { 112 if fieldMask != nil { 113 fieldMask.Paths = nil 114 } 115 } 116 117 func (fieldMask *MemberAssignment_FieldMask) Subtract(other *MemberAssignment_FieldMask) *MemberAssignment_FieldMask { 118 result := &MemberAssignment_FieldMask{} 119 removedSelectors := make([]bool, 13) 120 otherSubMasks := map[MemberAssignment_FieldPathSelector]gotenobject.FieldMask{ 121 MemberAssignment_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 122 MemberAssignment_FieldPathSelectorScopeMetadata: &meta.Meta_FieldMask{}, 123 MemberAssignment_FieldPathSelectorCtrlStatus: &MemberAssignment_WorkStatus_FieldMask{}, 124 } 125 mySubMasks := map[MemberAssignment_FieldPathSelector]gotenobject.FieldMask{ 126 MemberAssignment_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 127 MemberAssignment_FieldPathSelectorScopeMetadata: &meta.Meta_FieldMask{}, 128 MemberAssignment_FieldPathSelectorCtrlStatus: &MemberAssignment_WorkStatus_FieldMask{}, 129 } 130 131 for _, path := range other.GetPaths() { 132 switch tp := path.(type) { 133 case *MemberAssignment_FieldTerminalPath: 134 removedSelectors[int(tp.selector)] = true 135 case *MemberAssignment_FieldSubPath: 136 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 137 } 138 } 139 for _, path := range fieldMask.GetPaths() { 140 if !removedSelectors[int(path.Selector())] { 141 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 142 if tp, ok := path.(*MemberAssignment_FieldTerminalPath); ok { 143 switch tp.selector { 144 case MemberAssignment_FieldPathSelectorMetadata: 145 mySubMasks[MemberAssignment_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask() 146 case MemberAssignment_FieldPathSelectorScopeMetadata: 147 mySubMasks[MemberAssignment_FieldPathSelectorScopeMetadata] = meta.FullMeta_FieldMask() 148 case MemberAssignment_FieldPathSelectorCtrlStatus: 149 mySubMasks[MemberAssignment_FieldPathSelectorCtrlStatus] = FullMemberAssignment_WorkStatus_FieldMask() 150 } 151 } else if tp, ok := path.(*MemberAssignment_FieldSubPath); ok { 152 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 153 } 154 } else { 155 result.Paths = append(result.Paths, path) 156 } 157 } 158 } 159 for selector, mySubMask := range mySubMasks { 160 if mySubMask.PathsCount() > 0 { 161 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 162 result.Paths = append(result.Paths, &MemberAssignment_FieldSubPath{selector: selector, subPath: allowedPath}) 163 } 164 } 165 } 166 167 if len(result.Paths) == 0 { 168 return nil 169 } 170 return result 171 } 172 173 func (fieldMask *MemberAssignment_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 174 return fieldMask.Subtract(other.(*MemberAssignment_FieldMask)) 175 } 176 177 // FilterInputFields generates copy of field paths with output_only field paths removed 178 func (fieldMask *MemberAssignment_FieldMask) FilterInputFields() *MemberAssignment_FieldMask { 179 result := &MemberAssignment_FieldMask{} 180 for _, path := range fieldMask.Paths { 181 switch path.Selector() { 182 case MemberAssignment_FieldPathSelectorScope: 183 case MemberAssignment_FieldPathSelectorScopeTitle: 184 case MemberAssignment_FieldPathSelectorParentOrganization: 185 case MemberAssignment_FieldPathSelectorScopeMetadata: 186 case MemberAssignment_FieldPathSelectorMultiRegionControlRegion: 187 case MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions: 188 case MemberAssignment_FieldPathSelectorScopeServices: 189 case MemberAssignment_FieldPathSelectorBusinessTier: 190 case MemberAssignment_FieldPathSelectorMember: 191 case MemberAssignment_FieldPathSelectorMemberRegion: 192 case MemberAssignment_FieldPathSelectorMetadata: 193 if _, ok := path.(*MemberAssignment_FieldTerminalPath); ok { 194 for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths { 195 result.Paths = append(result.Paths, &MemberAssignment_FieldSubPath{selector: path.Selector(), subPath: subpath}) 196 } 197 } else if sub, ok := path.(*MemberAssignment_FieldSubPath); ok { 198 selectedMask := &meta.Meta_FieldMask{ 199 Paths: []meta.Meta_FieldPath{sub.subPath.(meta.Meta_FieldPath)}, 200 } 201 for _, allowedPath := range selectedMask.FilterInputFields().Paths { 202 result.Paths = append(result.Paths, &MemberAssignment_FieldSubPath{selector: MemberAssignment_FieldPathSelectorMetadata, subPath: allowedPath}) 203 } 204 } 205 default: 206 result.Paths = append(result.Paths, path) 207 } 208 } 209 return result 210 } 211 212 // ToFieldMask is used for proto conversions 213 func (fieldMask *MemberAssignment_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 214 protoFieldMask := &googlefieldmaskpb.FieldMask{} 215 for _, path := range fieldMask.Paths { 216 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 217 } 218 return protoFieldMask 219 } 220 221 func (fieldMask *MemberAssignment_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 222 if fieldMask == nil { 223 return status.Error(codes.Internal, "target field mask is nil") 224 } 225 fieldMask.Paths = make([]MemberAssignment_FieldPath, 0, len(protoFieldMask.Paths)) 226 for _, strPath := range protoFieldMask.Paths { 227 path, err := ParseMemberAssignment_FieldPath(strPath) 228 if err != nil { 229 return err 230 } 231 fieldMask.Paths = append(fieldMask.Paths, path) 232 } 233 return nil 234 } 235 236 // implement methods required by customType 237 func (fieldMask MemberAssignment_FieldMask) Marshal() ([]byte, error) { 238 protoFieldMask := fieldMask.ToProtoFieldMask() 239 return proto.Marshal(protoFieldMask) 240 } 241 242 func (fieldMask *MemberAssignment_FieldMask) Unmarshal(data []byte) error { 243 protoFieldMask := &googlefieldmaskpb.FieldMask{} 244 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 245 return err 246 } 247 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 248 return err 249 } 250 return nil 251 } 252 253 func (fieldMask *MemberAssignment_FieldMask) Size() int { 254 return proto.Size(fieldMask.ToProtoFieldMask()) 255 } 256 257 func (fieldMask MemberAssignment_FieldMask) MarshalJSON() ([]byte, error) { 258 return json.Marshal(fieldMask.ToProtoFieldMask()) 259 } 260 261 func (fieldMask *MemberAssignment_FieldMask) UnmarshalJSON(data []byte) error { 262 protoFieldMask := &googlefieldmaskpb.FieldMask{} 263 if err := json.Unmarshal(data, protoFieldMask); err != nil { 264 return err 265 } 266 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 267 return err 268 } 269 return nil 270 } 271 272 func (fieldMask *MemberAssignment_FieldMask) AppendPath(path MemberAssignment_FieldPath) { 273 fieldMask.Paths = append(fieldMask.Paths, path) 274 } 275 276 func (fieldMask *MemberAssignment_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 277 fieldMask.Paths = append(fieldMask.Paths, path.(MemberAssignment_FieldPath)) 278 } 279 280 func (fieldMask *MemberAssignment_FieldMask) GetPaths() []MemberAssignment_FieldPath { 281 if fieldMask == nil { 282 return nil 283 } 284 return fieldMask.Paths 285 } 286 287 func (fieldMask *MemberAssignment_FieldMask) GetRawPaths() []gotenobject.FieldPath { 288 if fieldMask == nil { 289 return nil 290 } 291 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 292 for _, path := range fieldMask.Paths { 293 rawPaths = append(rawPaths, path) 294 } 295 return rawPaths 296 } 297 298 func (fieldMask *MemberAssignment_FieldMask) SetFromCliFlag(raw string) error { 299 path, err := ParseMemberAssignment_FieldPath(raw) 300 if err != nil { 301 return err 302 } 303 fieldMask.Paths = append(fieldMask.Paths, path) 304 return nil 305 } 306 307 func (fieldMask *MemberAssignment_FieldMask) Set(target, source *MemberAssignment) { 308 for _, path := range fieldMask.Paths { 309 val, _ := path.GetSingle(source) 310 // if val is nil, then field does not exist in source, skip 311 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 312 if val != nil { 313 path.WithIValue(val).SetTo(&target) 314 } 315 } 316 } 317 318 func (fieldMask *MemberAssignment_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 319 fieldMask.Set(target.(*MemberAssignment), source.(*MemberAssignment)) 320 } 321 322 func (fieldMask *MemberAssignment_FieldMask) Project(source *MemberAssignment) *MemberAssignment { 323 if source == nil { 324 return nil 325 } 326 if fieldMask == nil { 327 return source 328 } 329 result := &MemberAssignment{} 330 metadataMask := &meta.Meta_FieldMask{} 331 wholeMetadataAccepted := false 332 scopeMetadataMask := &meta.Meta_FieldMask{} 333 wholeScopeMetadataAccepted := false 334 ctrlStatusMask := &MemberAssignment_WorkStatus_FieldMask{} 335 wholeCtrlStatusAccepted := false 336 337 for _, p := range fieldMask.Paths { 338 switch tp := p.(type) { 339 case *MemberAssignment_FieldTerminalPath: 340 switch tp.selector { 341 case MemberAssignment_FieldPathSelectorName: 342 result.Name = source.Name 343 case MemberAssignment_FieldPathSelectorMetadata: 344 result.Metadata = source.Metadata 345 wholeMetadataAccepted = true 346 case MemberAssignment_FieldPathSelectorScope: 347 result.Scope = source.Scope 348 case MemberAssignment_FieldPathSelectorScopeTitle: 349 result.ScopeTitle = source.ScopeTitle 350 case MemberAssignment_FieldPathSelectorParentOrganization: 351 result.ParentOrganization = source.ParentOrganization 352 case MemberAssignment_FieldPathSelectorScopeMetadata: 353 result.ScopeMetadata = source.ScopeMetadata 354 wholeScopeMetadataAccepted = true 355 case MemberAssignment_FieldPathSelectorMultiRegionControlRegion: 356 result.MultiRegionControlRegion = source.MultiRegionControlRegion 357 case MemberAssignment_FieldPathSelectorMultiRegionEnabledRegions: 358 result.MultiRegionEnabledRegions = source.MultiRegionEnabledRegions 359 case MemberAssignment_FieldPathSelectorScopeServices: 360 result.ScopeServices = source.ScopeServices 361 case MemberAssignment_FieldPathSelectorBusinessTier: 362 result.BusinessTier = source.BusinessTier 363 case MemberAssignment_FieldPathSelectorMember: 364 result.Member = source.Member 365 case MemberAssignment_FieldPathSelectorMemberRegion: 366 result.MemberRegion = source.MemberRegion 367 case MemberAssignment_FieldPathSelectorCtrlStatus: 368 result.CtrlStatus = source.CtrlStatus 369 wholeCtrlStatusAccepted = true 370 } 371 case *MemberAssignment_FieldSubPath: 372 switch tp.selector { 373 case MemberAssignment_FieldPathSelectorMetadata: 374 metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath)) 375 case MemberAssignment_FieldPathSelectorScopeMetadata: 376 scopeMetadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath)) 377 case MemberAssignment_FieldPathSelectorCtrlStatus: 378 ctrlStatusMask.AppendPath(tp.subPath.(MemberAssignmentWorkStatus_FieldPath)) 379 } 380 } 381 } 382 if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 { 383 result.Metadata = metadataMask.Project(source.GetMetadata()) 384 } 385 if wholeScopeMetadataAccepted == false && len(scopeMetadataMask.Paths) > 0 { 386 result.ScopeMetadata = scopeMetadataMask.Project(source.GetScopeMetadata()) 387 } 388 if wholeCtrlStatusAccepted == false && len(ctrlStatusMask.Paths) > 0 { 389 result.CtrlStatus = ctrlStatusMask.Project(source.GetCtrlStatus()) 390 } 391 return result 392 } 393 394 func (fieldMask *MemberAssignment_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 395 return fieldMask.Project(source.(*MemberAssignment)) 396 } 397 398 func (fieldMask *MemberAssignment_FieldMask) PathsCount() int { 399 if fieldMask == nil { 400 return 0 401 } 402 return len(fieldMask.Paths) 403 } 404 405 type MemberAssignment_WorkStatus_FieldMask struct { 406 Paths []MemberAssignmentWorkStatus_FieldPath 407 } 408 409 func FullMemberAssignment_WorkStatus_FieldMask() *MemberAssignment_WorkStatus_FieldMask { 410 res := &MemberAssignment_WorkStatus_FieldMask{} 411 res.Paths = append(res.Paths, &MemberAssignmentWorkStatus_FieldTerminalPath{selector: MemberAssignmentWorkStatus_FieldPathSelectorPending}) 412 res.Paths = append(res.Paths, &MemberAssignmentWorkStatus_FieldTerminalPath{selector: MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion}) 413 return res 414 } 415 416 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) String() string { 417 if fieldMask == nil { 418 return "<nil>" 419 } 420 pathsStr := make([]string, 0, len(fieldMask.Paths)) 421 for _, path := range fieldMask.Paths { 422 pathsStr = append(pathsStr, path.String()) 423 } 424 return strings.Join(pathsStr, ", ") 425 } 426 427 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) IsFull() bool { 428 if fieldMask == nil { 429 return false 430 } 431 presentSelectors := make([]bool, 2) 432 for _, path := range fieldMask.Paths { 433 if asFinal, ok := path.(*MemberAssignmentWorkStatus_FieldTerminalPath); ok { 434 presentSelectors[int(asFinal.selector)] = true 435 } 436 } 437 for _, flag := range presentSelectors { 438 if !flag { 439 return false 440 } 441 } 442 return true 443 } 444 445 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) ProtoReflect() preflect.Message { 446 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 447 return ParseMemberAssignmentWorkStatus_FieldPath(raw) 448 }) 449 } 450 451 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) ProtoMessage() {} 452 453 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) Reset() { 454 if fieldMask != nil { 455 fieldMask.Paths = nil 456 } 457 } 458 459 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) Subtract(other *MemberAssignment_WorkStatus_FieldMask) *MemberAssignment_WorkStatus_FieldMask { 460 result := &MemberAssignment_WorkStatus_FieldMask{} 461 removedSelectors := make([]bool, 2) 462 463 for _, path := range other.GetPaths() { 464 switch tp := path.(type) { 465 case *MemberAssignmentWorkStatus_FieldTerminalPath: 466 removedSelectors[int(tp.selector)] = true 467 } 468 } 469 for _, path := range fieldMask.GetPaths() { 470 if !removedSelectors[int(path.Selector())] { 471 result.Paths = append(result.Paths, path) 472 } 473 } 474 475 if len(result.Paths) == 0 { 476 return nil 477 } 478 return result 479 } 480 481 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 482 return fieldMask.Subtract(other.(*MemberAssignment_WorkStatus_FieldMask)) 483 } 484 485 // FilterInputFields generates copy of field paths with output_only field paths removed 486 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) FilterInputFields() *MemberAssignment_WorkStatus_FieldMask { 487 result := &MemberAssignment_WorkStatus_FieldMask{} 488 result.Paths = append(result.Paths, fieldMask.Paths...) 489 return result 490 } 491 492 // ToFieldMask is used for proto conversions 493 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 494 protoFieldMask := &googlefieldmaskpb.FieldMask{} 495 for _, path := range fieldMask.Paths { 496 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 497 } 498 return protoFieldMask 499 } 500 501 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 502 if fieldMask == nil { 503 return status.Error(codes.Internal, "target field mask is nil") 504 } 505 fieldMask.Paths = make([]MemberAssignmentWorkStatus_FieldPath, 0, len(protoFieldMask.Paths)) 506 for _, strPath := range protoFieldMask.Paths { 507 path, err := ParseMemberAssignmentWorkStatus_FieldPath(strPath) 508 if err != nil { 509 return err 510 } 511 fieldMask.Paths = append(fieldMask.Paths, path) 512 } 513 return nil 514 } 515 516 // implement methods required by customType 517 func (fieldMask MemberAssignment_WorkStatus_FieldMask) Marshal() ([]byte, error) { 518 protoFieldMask := fieldMask.ToProtoFieldMask() 519 return proto.Marshal(protoFieldMask) 520 } 521 522 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) Unmarshal(data []byte) error { 523 protoFieldMask := &googlefieldmaskpb.FieldMask{} 524 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 525 return err 526 } 527 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 528 return err 529 } 530 return nil 531 } 532 533 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) Size() int { 534 return proto.Size(fieldMask.ToProtoFieldMask()) 535 } 536 537 func (fieldMask MemberAssignment_WorkStatus_FieldMask) MarshalJSON() ([]byte, error) { 538 return json.Marshal(fieldMask.ToProtoFieldMask()) 539 } 540 541 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) UnmarshalJSON(data []byte) error { 542 protoFieldMask := &googlefieldmaskpb.FieldMask{} 543 if err := json.Unmarshal(data, protoFieldMask); err != nil { 544 return err 545 } 546 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 547 return err 548 } 549 return nil 550 } 551 552 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) AppendPath(path MemberAssignmentWorkStatus_FieldPath) { 553 fieldMask.Paths = append(fieldMask.Paths, path) 554 } 555 556 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 557 fieldMask.Paths = append(fieldMask.Paths, path.(MemberAssignmentWorkStatus_FieldPath)) 558 } 559 560 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) GetPaths() []MemberAssignmentWorkStatus_FieldPath { 561 if fieldMask == nil { 562 return nil 563 } 564 return fieldMask.Paths 565 } 566 567 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) GetRawPaths() []gotenobject.FieldPath { 568 if fieldMask == nil { 569 return nil 570 } 571 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 572 for _, path := range fieldMask.Paths { 573 rawPaths = append(rawPaths, path) 574 } 575 return rawPaths 576 } 577 578 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) SetFromCliFlag(raw string) error { 579 path, err := ParseMemberAssignmentWorkStatus_FieldPath(raw) 580 if err != nil { 581 return err 582 } 583 fieldMask.Paths = append(fieldMask.Paths, path) 584 return nil 585 } 586 587 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) Set(target, source *MemberAssignment_WorkStatus) { 588 for _, path := range fieldMask.Paths { 589 val, _ := path.GetSingle(source) 590 // if val is nil, then field does not exist in source, skip 591 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 592 if val != nil { 593 path.WithIValue(val).SetTo(&target) 594 } 595 } 596 } 597 598 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 599 fieldMask.Set(target.(*MemberAssignment_WorkStatus), source.(*MemberAssignment_WorkStatus)) 600 } 601 602 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) Project(source *MemberAssignment_WorkStatus) *MemberAssignment_WorkStatus { 603 if source == nil { 604 return nil 605 } 606 if fieldMask == nil { 607 return source 608 } 609 result := &MemberAssignment_WorkStatus{} 610 611 for _, p := range fieldMask.Paths { 612 switch tp := p.(type) { 613 case *MemberAssignmentWorkStatus_FieldTerminalPath: 614 switch tp.selector { 615 case MemberAssignmentWorkStatus_FieldPathSelectorPending: 616 result.Pending = source.Pending 617 case MemberAssignmentWorkStatus_FieldPathSelectorPendingDeletion: 618 result.PendingDeletion = source.PendingDeletion 619 } 620 } 621 } 622 return result 623 } 624 625 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 626 return fieldMask.Project(source.(*MemberAssignment_WorkStatus)) 627 } 628 629 func (fieldMask *MemberAssignment_WorkStatus_FieldMask) PathsCount() int { 630 if fieldMask == nil { 631 return 0 632 } 633 return len(fieldMask.Paths) 634 }