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