github.com/cloudwan/edgelq-sdk@v1.15.4/iam/resources/v1/role/role.pb.fieldmask.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/iam/proto/v1/role.proto 3 // DO NOT EDIT!!! 4 5 package role 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 condition "github.com/cloudwan/edgelq-sdk/iam/resources/v1/condition" 23 organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1/organization" 24 permission "github.com/cloudwan/edgelq-sdk/iam/resources/v1/permission" 25 project "github.com/cloudwan/edgelq-sdk/iam/resources/v1/project" 26 meta_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/service" 27 meta "github.com/cloudwan/goten-sdk/types/meta" 28 ) 29 30 // ensure the imports are used 31 var ( 32 _ = new(json.Marshaler) 33 _ = strings.Builder{} 34 35 _ = codes.NotFound 36 _ = status.Status{} 37 _ = new(proto.Message) 38 _ = new(preflect.Message) 39 _ = googlefieldmaskpb.FieldMask{} 40 41 _ = new(gotenobject.FieldMask) 42 ) 43 44 // make sure we're using proto imports 45 var ( 46 _ = &condition.Condition{} 47 _ = &organization.Organization{} 48 _ = &permission.Permission{} 49 _ = &project.Project{} 50 _ = &meta_service.Service{} 51 _ = &meta.Meta{} 52 ) 53 54 type Role_FieldMask struct { 55 Paths []Role_FieldPath 56 } 57 58 func FullRole_FieldMask() *Role_FieldMask { 59 res := &Role_FieldMask{} 60 res.Paths = append(res.Paths, &Role_FieldTerminalPath{selector: Role_FieldPathSelectorName}) 61 res.Paths = append(res.Paths, &Role_FieldTerminalPath{selector: Role_FieldPathSelectorMetadata}) 62 res.Paths = append(res.Paths, &Role_FieldTerminalPath{selector: Role_FieldPathSelectorDisplayName}) 63 res.Paths = append(res.Paths, &Role_FieldTerminalPath{selector: Role_FieldPathSelectorDescription}) 64 res.Paths = append(res.Paths, &Role_FieldTerminalPath{selector: Role_FieldPathSelectorCategory}) 65 res.Paths = append(res.Paths, &Role_FieldTerminalPath{selector: Role_FieldPathSelectorScopeParams}) 66 res.Paths = append(res.Paths, &Role_FieldTerminalPath{selector: Role_FieldPathSelectorConstValues}) 67 res.Paths = append(res.Paths, &Role_FieldTerminalPath{selector: Role_FieldPathSelectorDefaultValues}) 68 res.Paths = append(res.Paths, &Role_FieldTerminalPath{selector: Role_FieldPathSelectorGrants}) 69 res.Paths = append(res.Paths, &Role_FieldTerminalPath{selector: Role_FieldPathSelectorOwnedObjects}) 70 res.Paths = append(res.Paths, &Role_FieldTerminalPath{selector: Role_FieldPathSelectorServices}) 71 res.Paths = append(res.Paths, &Role_FieldTerminalPath{selector: Role_FieldPathSelectorRbSpecGeneration}) 72 return res 73 } 74 75 func (fieldMask *Role_FieldMask) String() string { 76 if fieldMask == nil { 77 return "<nil>" 78 } 79 pathsStr := make([]string, 0, len(fieldMask.Paths)) 80 for _, path := range fieldMask.Paths { 81 pathsStr = append(pathsStr, path.String()) 82 } 83 return strings.Join(pathsStr, ", ") 84 } 85 86 func (fieldMask *Role_FieldMask) IsFull() bool { 87 if fieldMask == nil { 88 return false 89 } 90 presentSelectors := make([]bool, 12) 91 for _, path := range fieldMask.Paths { 92 if asFinal, ok := path.(*Role_FieldTerminalPath); ok { 93 presentSelectors[int(asFinal.selector)] = true 94 } 95 } 96 for _, flag := range presentSelectors { 97 if !flag { 98 return false 99 } 100 } 101 return true 102 } 103 104 func (fieldMask *Role_FieldMask) ProtoReflect() preflect.Message { 105 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 106 return ParseRole_FieldPath(raw) 107 }) 108 } 109 110 func (fieldMask *Role_FieldMask) ProtoMessage() {} 111 112 func (fieldMask *Role_FieldMask) Reset() { 113 if fieldMask != nil { 114 fieldMask.Paths = nil 115 } 116 } 117 118 func (fieldMask *Role_FieldMask) Subtract(other *Role_FieldMask) *Role_FieldMask { 119 result := &Role_FieldMask{} 120 removedSelectors := make([]bool, 12) 121 otherSubMasks := map[Role_FieldPathSelector]gotenobject.FieldMask{ 122 Role_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 123 Role_FieldPathSelectorScopeParams: &Role_ScopeParamType_FieldMask{}, 124 Role_FieldPathSelectorConstValues: &ScopeParam_FieldMask{}, 125 Role_FieldPathSelectorDefaultValues: &ScopeParam_FieldMask{}, 126 Role_FieldPathSelectorGrants: &Role_Grant_FieldMask{}, 127 } 128 mySubMasks := map[Role_FieldPathSelector]gotenobject.FieldMask{ 129 Role_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 130 Role_FieldPathSelectorScopeParams: &Role_ScopeParamType_FieldMask{}, 131 Role_FieldPathSelectorConstValues: &ScopeParam_FieldMask{}, 132 Role_FieldPathSelectorDefaultValues: &ScopeParam_FieldMask{}, 133 Role_FieldPathSelectorGrants: &Role_Grant_FieldMask{}, 134 } 135 136 for _, path := range other.GetPaths() { 137 switch tp := path.(type) { 138 case *Role_FieldTerminalPath: 139 removedSelectors[int(tp.selector)] = true 140 case *Role_FieldSubPath: 141 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 142 } 143 } 144 for _, path := range fieldMask.GetPaths() { 145 if !removedSelectors[int(path.Selector())] { 146 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 147 if tp, ok := path.(*Role_FieldTerminalPath); ok { 148 switch tp.selector { 149 case Role_FieldPathSelectorMetadata: 150 mySubMasks[Role_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask() 151 case Role_FieldPathSelectorScopeParams: 152 mySubMasks[Role_FieldPathSelectorScopeParams] = FullRole_ScopeParamType_FieldMask() 153 case Role_FieldPathSelectorConstValues: 154 mySubMasks[Role_FieldPathSelectorConstValues] = FullScopeParam_FieldMask() 155 case Role_FieldPathSelectorDefaultValues: 156 mySubMasks[Role_FieldPathSelectorDefaultValues] = FullScopeParam_FieldMask() 157 case Role_FieldPathSelectorGrants: 158 mySubMasks[Role_FieldPathSelectorGrants] = FullRole_Grant_FieldMask() 159 } 160 } else if tp, ok := path.(*Role_FieldSubPath); ok { 161 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 162 } 163 } else { 164 result.Paths = append(result.Paths, path) 165 } 166 } 167 } 168 for selector, mySubMask := range mySubMasks { 169 if mySubMask.PathsCount() > 0 { 170 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 171 result.Paths = append(result.Paths, &Role_FieldSubPath{selector: selector, subPath: allowedPath}) 172 } 173 } 174 } 175 176 if len(result.Paths) == 0 { 177 return nil 178 } 179 return result 180 } 181 182 func (fieldMask *Role_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 183 return fieldMask.Subtract(other.(*Role_FieldMask)) 184 } 185 186 // FilterInputFields generates copy of field paths with output_only field paths removed 187 func (fieldMask *Role_FieldMask) FilterInputFields() *Role_FieldMask { 188 result := &Role_FieldMask{} 189 for _, path := range fieldMask.Paths { 190 switch path.Selector() { 191 case Role_FieldPathSelectorServices: 192 case Role_FieldPathSelectorRbSpecGeneration: 193 case Role_FieldPathSelectorMetadata: 194 if _, ok := path.(*Role_FieldTerminalPath); ok { 195 for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths { 196 result.Paths = append(result.Paths, &Role_FieldSubPath{selector: path.Selector(), subPath: subpath}) 197 } 198 } else if sub, ok := path.(*Role_FieldSubPath); ok { 199 selectedMask := &meta.Meta_FieldMask{ 200 Paths: []meta.Meta_FieldPath{sub.subPath.(meta.Meta_FieldPath)}, 201 } 202 for _, allowedPath := range selectedMask.FilterInputFields().Paths { 203 result.Paths = append(result.Paths, &Role_FieldSubPath{selector: Role_FieldPathSelectorMetadata, subPath: allowedPath}) 204 } 205 } 206 default: 207 result.Paths = append(result.Paths, path) 208 } 209 } 210 return result 211 } 212 213 // ToFieldMask is used for proto conversions 214 func (fieldMask *Role_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 215 protoFieldMask := &googlefieldmaskpb.FieldMask{} 216 for _, path := range fieldMask.Paths { 217 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 218 } 219 return protoFieldMask 220 } 221 222 func (fieldMask *Role_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 223 if fieldMask == nil { 224 return status.Error(codes.Internal, "target field mask is nil") 225 } 226 fieldMask.Paths = make([]Role_FieldPath, 0, len(protoFieldMask.Paths)) 227 for _, strPath := range protoFieldMask.Paths { 228 path, err := ParseRole_FieldPath(strPath) 229 if err != nil { 230 return err 231 } 232 fieldMask.Paths = append(fieldMask.Paths, path) 233 } 234 return nil 235 } 236 237 // implement methods required by customType 238 func (fieldMask Role_FieldMask) Marshal() ([]byte, error) { 239 protoFieldMask := fieldMask.ToProtoFieldMask() 240 return proto.Marshal(protoFieldMask) 241 } 242 243 func (fieldMask *Role_FieldMask) Unmarshal(data []byte) error { 244 protoFieldMask := &googlefieldmaskpb.FieldMask{} 245 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 246 return err 247 } 248 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 249 return err 250 } 251 return nil 252 } 253 254 func (fieldMask *Role_FieldMask) Size() int { 255 return proto.Size(fieldMask.ToProtoFieldMask()) 256 } 257 258 func (fieldMask Role_FieldMask) MarshalJSON() ([]byte, error) { 259 return json.Marshal(fieldMask.ToProtoFieldMask()) 260 } 261 262 func (fieldMask *Role_FieldMask) UnmarshalJSON(data []byte) error { 263 protoFieldMask := &googlefieldmaskpb.FieldMask{} 264 if err := json.Unmarshal(data, protoFieldMask); err != nil { 265 return err 266 } 267 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 268 return err 269 } 270 return nil 271 } 272 273 func (fieldMask *Role_FieldMask) AppendPath(path Role_FieldPath) { 274 fieldMask.Paths = append(fieldMask.Paths, path) 275 } 276 277 func (fieldMask *Role_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 278 fieldMask.Paths = append(fieldMask.Paths, path.(Role_FieldPath)) 279 } 280 281 func (fieldMask *Role_FieldMask) GetPaths() []Role_FieldPath { 282 if fieldMask == nil { 283 return nil 284 } 285 return fieldMask.Paths 286 } 287 288 func (fieldMask *Role_FieldMask) GetRawPaths() []gotenobject.FieldPath { 289 if fieldMask == nil { 290 return nil 291 } 292 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 293 for _, path := range fieldMask.Paths { 294 rawPaths = append(rawPaths, path) 295 } 296 return rawPaths 297 } 298 299 func (fieldMask *Role_FieldMask) SetFromCliFlag(raw string) error { 300 path, err := ParseRole_FieldPath(raw) 301 if err != nil { 302 return err 303 } 304 fieldMask.Paths = append(fieldMask.Paths, path) 305 return nil 306 } 307 308 func (fieldMask *Role_FieldMask) Set(target, source *Role) { 309 for _, path := range fieldMask.Paths { 310 val, _ := path.GetSingle(source) 311 // if val is nil, then field does not exist in source, skip 312 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 313 if val != nil { 314 path.WithIValue(val).SetTo(&target) 315 } 316 } 317 } 318 319 func (fieldMask *Role_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 320 fieldMask.Set(target.(*Role), source.(*Role)) 321 } 322 323 func (fieldMask *Role_FieldMask) Project(source *Role) *Role { 324 if source == nil { 325 return nil 326 } 327 if fieldMask == nil { 328 return source 329 } 330 result := &Role{} 331 metadataMask := &meta.Meta_FieldMask{} 332 wholeMetadataAccepted := false 333 scopeParamsMask := &Role_ScopeParamType_FieldMask{} 334 wholeScopeParamsAccepted := false 335 constValuesMask := &ScopeParam_FieldMask{} 336 wholeConstValuesAccepted := false 337 defaultValuesMask := &ScopeParam_FieldMask{} 338 wholeDefaultValuesAccepted := false 339 grantsMask := &Role_Grant_FieldMask{} 340 wholeGrantsAccepted := false 341 342 for _, p := range fieldMask.Paths { 343 switch tp := p.(type) { 344 case *Role_FieldTerminalPath: 345 switch tp.selector { 346 case Role_FieldPathSelectorName: 347 result.Name = source.Name 348 case Role_FieldPathSelectorMetadata: 349 result.Metadata = source.Metadata 350 wholeMetadataAccepted = true 351 case Role_FieldPathSelectorDisplayName: 352 result.DisplayName = source.DisplayName 353 case Role_FieldPathSelectorDescription: 354 result.Description = source.Description 355 case Role_FieldPathSelectorCategory: 356 result.Category = source.Category 357 case Role_FieldPathSelectorScopeParams: 358 result.ScopeParams = source.ScopeParams 359 wholeScopeParamsAccepted = true 360 case Role_FieldPathSelectorConstValues: 361 result.ConstValues = source.ConstValues 362 wholeConstValuesAccepted = true 363 case Role_FieldPathSelectorDefaultValues: 364 result.DefaultValues = source.DefaultValues 365 wholeDefaultValuesAccepted = true 366 case Role_FieldPathSelectorGrants: 367 result.Grants = source.Grants 368 wholeGrantsAccepted = true 369 case Role_FieldPathSelectorOwnedObjects: 370 result.OwnedObjects = source.OwnedObjects 371 case Role_FieldPathSelectorServices: 372 result.Services = source.Services 373 case Role_FieldPathSelectorRbSpecGeneration: 374 result.RbSpecGeneration = source.RbSpecGeneration 375 } 376 case *Role_FieldSubPath: 377 switch tp.selector { 378 case Role_FieldPathSelectorMetadata: 379 metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath)) 380 case Role_FieldPathSelectorScopeParams: 381 scopeParamsMask.AppendPath(tp.subPath.(RoleScopeParamType_FieldPath)) 382 case Role_FieldPathSelectorConstValues: 383 constValuesMask.AppendPath(tp.subPath.(ScopeParam_FieldPath)) 384 case Role_FieldPathSelectorDefaultValues: 385 defaultValuesMask.AppendPath(tp.subPath.(ScopeParam_FieldPath)) 386 case Role_FieldPathSelectorGrants: 387 grantsMask.AppendPath(tp.subPath.(RoleGrant_FieldPath)) 388 } 389 } 390 } 391 if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 { 392 result.Metadata = metadataMask.Project(source.GetMetadata()) 393 } 394 if wholeScopeParamsAccepted == false && len(scopeParamsMask.Paths) > 0 { 395 for _, sourceItem := range source.GetScopeParams() { 396 result.ScopeParams = append(result.ScopeParams, scopeParamsMask.Project(sourceItem)) 397 } 398 } 399 if wholeConstValuesAccepted == false && len(constValuesMask.Paths) > 0 { 400 for _, sourceItem := range source.GetConstValues() { 401 result.ConstValues = append(result.ConstValues, constValuesMask.Project(sourceItem)) 402 } 403 } 404 if wholeDefaultValuesAccepted == false && len(defaultValuesMask.Paths) > 0 { 405 for _, sourceItem := range source.GetDefaultValues() { 406 result.DefaultValues = append(result.DefaultValues, defaultValuesMask.Project(sourceItem)) 407 } 408 } 409 if wholeGrantsAccepted == false && len(grantsMask.Paths) > 0 { 410 for _, sourceItem := range source.GetGrants() { 411 result.Grants = append(result.Grants, grantsMask.Project(sourceItem)) 412 } 413 } 414 return result 415 } 416 417 func (fieldMask *Role_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 418 return fieldMask.Project(source.(*Role)) 419 } 420 421 func (fieldMask *Role_FieldMask) PathsCount() int { 422 if fieldMask == nil { 423 return 0 424 } 425 return len(fieldMask.Paths) 426 } 427 428 type Role_ScopeParamType_FieldMask struct { 429 Paths []RoleScopeParamType_FieldPath 430 } 431 432 func FullRole_ScopeParamType_FieldMask() *Role_ScopeParamType_FieldMask { 433 res := &Role_ScopeParamType_FieldMask{} 434 res.Paths = append(res.Paths, &RoleScopeParamType_FieldTerminalPath{selector: RoleScopeParamType_FieldPathSelectorName}) 435 res.Paths = append(res.Paths, &RoleScopeParamType_FieldTerminalPath{selector: RoleScopeParamType_FieldPathSelectorType}) 436 return res 437 } 438 439 func (fieldMask *Role_ScopeParamType_FieldMask) String() string { 440 if fieldMask == nil { 441 return "<nil>" 442 } 443 pathsStr := make([]string, 0, len(fieldMask.Paths)) 444 for _, path := range fieldMask.Paths { 445 pathsStr = append(pathsStr, path.String()) 446 } 447 return strings.Join(pathsStr, ", ") 448 } 449 450 func (fieldMask *Role_ScopeParamType_FieldMask) IsFull() bool { 451 if fieldMask == nil { 452 return false 453 } 454 presentSelectors := make([]bool, 2) 455 for _, path := range fieldMask.Paths { 456 if asFinal, ok := path.(*RoleScopeParamType_FieldTerminalPath); ok { 457 presentSelectors[int(asFinal.selector)] = true 458 } 459 } 460 for _, flag := range presentSelectors { 461 if !flag { 462 return false 463 } 464 } 465 return true 466 } 467 468 func (fieldMask *Role_ScopeParamType_FieldMask) ProtoReflect() preflect.Message { 469 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 470 return ParseRoleScopeParamType_FieldPath(raw) 471 }) 472 } 473 474 func (fieldMask *Role_ScopeParamType_FieldMask) ProtoMessage() {} 475 476 func (fieldMask *Role_ScopeParamType_FieldMask) Reset() { 477 if fieldMask != nil { 478 fieldMask.Paths = nil 479 } 480 } 481 482 func (fieldMask *Role_ScopeParamType_FieldMask) Subtract(other *Role_ScopeParamType_FieldMask) *Role_ScopeParamType_FieldMask { 483 result := &Role_ScopeParamType_FieldMask{} 484 removedSelectors := make([]bool, 2) 485 486 for _, path := range other.GetPaths() { 487 switch tp := path.(type) { 488 case *RoleScopeParamType_FieldTerminalPath: 489 removedSelectors[int(tp.selector)] = true 490 } 491 } 492 for _, path := range fieldMask.GetPaths() { 493 if !removedSelectors[int(path.Selector())] { 494 result.Paths = append(result.Paths, path) 495 } 496 } 497 498 if len(result.Paths) == 0 { 499 return nil 500 } 501 return result 502 } 503 504 func (fieldMask *Role_ScopeParamType_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 505 return fieldMask.Subtract(other.(*Role_ScopeParamType_FieldMask)) 506 } 507 508 // FilterInputFields generates copy of field paths with output_only field paths removed 509 func (fieldMask *Role_ScopeParamType_FieldMask) FilterInputFields() *Role_ScopeParamType_FieldMask { 510 result := &Role_ScopeParamType_FieldMask{} 511 result.Paths = append(result.Paths, fieldMask.Paths...) 512 return result 513 } 514 515 // ToFieldMask is used for proto conversions 516 func (fieldMask *Role_ScopeParamType_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 517 protoFieldMask := &googlefieldmaskpb.FieldMask{} 518 for _, path := range fieldMask.Paths { 519 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 520 } 521 return protoFieldMask 522 } 523 524 func (fieldMask *Role_ScopeParamType_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 525 if fieldMask == nil { 526 return status.Error(codes.Internal, "target field mask is nil") 527 } 528 fieldMask.Paths = make([]RoleScopeParamType_FieldPath, 0, len(protoFieldMask.Paths)) 529 for _, strPath := range protoFieldMask.Paths { 530 path, err := ParseRoleScopeParamType_FieldPath(strPath) 531 if err != nil { 532 return err 533 } 534 fieldMask.Paths = append(fieldMask.Paths, path) 535 } 536 return nil 537 } 538 539 // implement methods required by customType 540 func (fieldMask Role_ScopeParamType_FieldMask) Marshal() ([]byte, error) { 541 protoFieldMask := fieldMask.ToProtoFieldMask() 542 return proto.Marshal(protoFieldMask) 543 } 544 545 func (fieldMask *Role_ScopeParamType_FieldMask) Unmarshal(data []byte) error { 546 protoFieldMask := &googlefieldmaskpb.FieldMask{} 547 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 548 return err 549 } 550 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 551 return err 552 } 553 return nil 554 } 555 556 func (fieldMask *Role_ScopeParamType_FieldMask) Size() int { 557 return proto.Size(fieldMask.ToProtoFieldMask()) 558 } 559 560 func (fieldMask Role_ScopeParamType_FieldMask) MarshalJSON() ([]byte, error) { 561 return json.Marshal(fieldMask.ToProtoFieldMask()) 562 } 563 564 func (fieldMask *Role_ScopeParamType_FieldMask) UnmarshalJSON(data []byte) error { 565 protoFieldMask := &googlefieldmaskpb.FieldMask{} 566 if err := json.Unmarshal(data, protoFieldMask); err != nil { 567 return err 568 } 569 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 570 return err 571 } 572 return nil 573 } 574 575 func (fieldMask *Role_ScopeParamType_FieldMask) AppendPath(path RoleScopeParamType_FieldPath) { 576 fieldMask.Paths = append(fieldMask.Paths, path) 577 } 578 579 func (fieldMask *Role_ScopeParamType_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 580 fieldMask.Paths = append(fieldMask.Paths, path.(RoleScopeParamType_FieldPath)) 581 } 582 583 func (fieldMask *Role_ScopeParamType_FieldMask) GetPaths() []RoleScopeParamType_FieldPath { 584 if fieldMask == nil { 585 return nil 586 } 587 return fieldMask.Paths 588 } 589 590 func (fieldMask *Role_ScopeParamType_FieldMask) GetRawPaths() []gotenobject.FieldPath { 591 if fieldMask == nil { 592 return nil 593 } 594 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 595 for _, path := range fieldMask.Paths { 596 rawPaths = append(rawPaths, path) 597 } 598 return rawPaths 599 } 600 601 func (fieldMask *Role_ScopeParamType_FieldMask) SetFromCliFlag(raw string) error { 602 path, err := ParseRoleScopeParamType_FieldPath(raw) 603 if err != nil { 604 return err 605 } 606 fieldMask.Paths = append(fieldMask.Paths, path) 607 return nil 608 } 609 610 func (fieldMask *Role_ScopeParamType_FieldMask) Set(target, source *Role_ScopeParamType) { 611 for _, path := range fieldMask.Paths { 612 val, _ := path.GetSingle(source) 613 // if val is nil, then field does not exist in source, skip 614 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 615 if val != nil { 616 path.WithIValue(val).SetTo(&target) 617 } 618 } 619 } 620 621 func (fieldMask *Role_ScopeParamType_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 622 fieldMask.Set(target.(*Role_ScopeParamType), source.(*Role_ScopeParamType)) 623 } 624 625 func (fieldMask *Role_ScopeParamType_FieldMask) Project(source *Role_ScopeParamType) *Role_ScopeParamType { 626 if source == nil { 627 return nil 628 } 629 if fieldMask == nil { 630 return source 631 } 632 result := &Role_ScopeParamType{} 633 634 for _, p := range fieldMask.Paths { 635 switch tp := p.(type) { 636 case *RoleScopeParamType_FieldTerminalPath: 637 switch tp.selector { 638 case RoleScopeParamType_FieldPathSelectorName: 639 result.Name = source.Name 640 case RoleScopeParamType_FieldPathSelectorType: 641 result.Type = source.Type 642 } 643 } 644 } 645 return result 646 } 647 648 func (fieldMask *Role_ScopeParamType_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 649 return fieldMask.Project(source.(*Role_ScopeParamType)) 650 } 651 652 func (fieldMask *Role_ScopeParamType_FieldMask) PathsCount() int { 653 if fieldMask == nil { 654 return 0 655 } 656 return len(fieldMask.Paths) 657 } 658 659 type Role_Grant_FieldMask struct { 660 Paths []RoleGrant_FieldPath 661 } 662 663 func FullRole_Grant_FieldMask() *Role_Grant_FieldMask { 664 res := &Role_Grant_FieldMask{} 665 res.Paths = append(res.Paths, &RoleGrant_FieldTerminalPath{selector: RoleGrant_FieldPathSelectorSubScope}) 666 res.Paths = append(res.Paths, &RoleGrant_FieldTerminalPath{selector: RoleGrant_FieldPathSelectorPermissions}) 667 res.Paths = append(res.Paths, &RoleGrant_FieldTerminalPath{selector: RoleGrant_FieldPathSelectorResourceFieldConditions}) 668 res.Paths = append(res.Paths, &RoleGrant_FieldTerminalPath{selector: RoleGrant_FieldPathSelectorRequestFieldConditions}) 669 res.Paths = append(res.Paths, &RoleGrant_FieldTerminalPath{selector: RoleGrant_FieldPathSelectorExecutableConditions}) 670 return res 671 } 672 673 func (fieldMask *Role_Grant_FieldMask) String() string { 674 if fieldMask == nil { 675 return "<nil>" 676 } 677 pathsStr := make([]string, 0, len(fieldMask.Paths)) 678 for _, path := range fieldMask.Paths { 679 pathsStr = append(pathsStr, path.String()) 680 } 681 return strings.Join(pathsStr, ", ") 682 } 683 684 func (fieldMask *Role_Grant_FieldMask) IsFull() bool { 685 if fieldMask == nil { 686 return false 687 } 688 presentSelectors := make([]bool, 5) 689 for _, path := range fieldMask.Paths { 690 if asFinal, ok := path.(*RoleGrant_FieldTerminalPath); ok { 691 presentSelectors[int(asFinal.selector)] = true 692 } 693 } 694 for _, flag := range presentSelectors { 695 if !flag { 696 return false 697 } 698 } 699 return true 700 } 701 702 func (fieldMask *Role_Grant_FieldMask) ProtoReflect() preflect.Message { 703 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 704 return ParseRoleGrant_FieldPath(raw) 705 }) 706 } 707 708 func (fieldMask *Role_Grant_FieldMask) ProtoMessage() {} 709 710 func (fieldMask *Role_Grant_FieldMask) Reset() { 711 if fieldMask != nil { 712 fieldMask.Paths = nil 713 } 714 } 715 716 func (fieldMask *Role_Grant_FieldMask) Subtract(other *Role_Grant_FieldMask) *Role_Grant_FieldMask { 717 result := &Role_Grant_FieldMask{} 718 removedSelectors := make([]bool, 5) 719 otherSubMasks := map[RoleGrant_FieldPathSelector]gotenobject.FieldMask{ 720 RoleGrant_FieldPathSelectorResourceFieldConditions: &Role_Grant_FieldCondition_FieldMask{}, 721 RoleGrant_FieldPathSelectorRequestFieldConditions: &Role_Grant_FieldCondition_FieldMask{}, 722 RoleGrant_FieldPathSelectorExecutableConditions: &condition.ExecutableCondition_FieldMask{}, 723 } 724 mySubMasks := map[RoleGrant_FieldPathSelector]gotenobject.FieldMask{ 725 RoleGrant_FieldPathSelectorResourceFieldConditions: &Role_Grant_FieldCondition_FieldMask{}, 726 RoleGrant_FieldPathSelectorRequestFieldConditions: &Role_Grant_FieldCondition_FieldMask{}, 727 RoleGrant_FieldPathSelectorExecutableConditions: &condition.ExecutableCondition_FieldMask{}, 728 } 729 730 for _, path := range other.GetPaths() { 731 switch tp := path.(type) { 732 case *RoleGrant_FieldTerminalPath: 733 removedSelectors[int(tp.selector)] = true 734 case *RoleGrant_FieldSubPath: 735 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 736 } 737 } 738 for _, path := range fieldMask.GetPaths() { 739 if !removedSelectors[int(path.Selector())] { 740 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 741 if tp, ok := path.(*RoleGrant_FieldTerminalPath); ok { 742 switch tp.selector { 743 case RoleGrant_FieldPathSelectorResourceFieldConditions: 744 mySubMasks[RoleGrant_FieldPathSelectorResourceFieldConditions] = FullRole_Grant_FieldCondition_FieldMask() 745 case RoleGrant_FieldPathSelectorRequestFieldConditions: 746 mySubMasks[RoleGrant_FieldPathSelectorRequestFieldConditions] = FullRole_Grant_FieldCondition_FieldMask() 747 case RoleGrant_FieldPathSelectorExecutableConditions: 748 mySubMasks[RoleGrant_FieldPathSelectorExecutableConditions] = condition.FullExecutableCondition_FieldMask() 749 } 750 } else if tp, ok := path.(*RoleGrant_FieldSubPath); ok { 751 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 752 } 753 } else { 754 result.Paths = append(result.Paths, path) 755 } 756 } 757 } 758 for selector, mySubMask := range mySubMasks { 759 if mySubMask.PathsCount() > 0 { 760 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 761 result.Paths = append(result.Paths, &RoleGrant_FieldSubPath{selector: selector, subPath: allowedPath}) 762 } 763 } 764 } 765 766 if len(result.Paths) == 0 { 767 return nil 768 } 769 return result 770 } 771 772 func (fieldMask *Role_Grant_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 773 return fieldMask.Subtract(other.(*Role_Grant_FieldMask)) 774 } 775 776 // FilterInputFields generates copy of field paths with output_only field paths removed 777 func (fieldMask *Role_Grant_FieldMask) FilterInputFields() *Role_Grant_FieldMask { 778 result := &Role_Grant_FieldMask{} 779 result.Paths = append(result.Paths, fieldMask.Paths...) 780 return result 781 } 782 783 // ToFieldMask is used for proto conversions 784 func (fieldMask *Role_Grant_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 785 protoFieldMask := &googlefieldmaskpb.FieldMask{} 786 for _, path := range fieldMask.Paths { 787 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 788 } 789 return protoFieldMask 790 } 791 792 func (fieldMask *Role_Grant_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 793 if fieldMask == nil { 794 return status.Error(codes.Internal, "target field mask is nil") 795 } 796 fieldMask.Paths = make([]RoleGrant_FieldPath, 0, len(protoFieldMask.Paths)) 797 for _, strPath := range protoFieldMask.Paths { 798 path, err := ParseRoleGrant_FieldPath(strPath) 799 if err != nil { 800 return err 801 } 802 fieldMask.Paths = append(fieldMask.Paths, path) 803 } 804 return nil 805 } 806 807 // implement methods required by customType 808 func (fieldMask Role_Grant_FieldMask) Marshal() ([]byte, error) { 809 protoFieldMask := fieldMask.ToProtoFieldMask() 810 return proto.Marshal(protoFieldMask) 811 } 812 813 func (fieldMask *Role_Grant_FieldMask) Unmarshal(data []byte) error { 814 protoFieldMask := &googlefieldmaskpb.FieldMask{} 815 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 816 return err 817 } 818 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 819 return err 820 } 821 return nil 822 } 823 824 func (fieldMask *Role_Grant_FieldMask) Size() int { 825 return proto.Size(fieldMask.ToProtoFieldMask()) 826 } 827 828 func (fieldMask Role_Grant_FieldMask) MarshalJSON() ([]byte, error) { 829 return json.Marshal(fieldMask.ToProtoFieldMask()) 830 } 831 832 func (fieldMask *Role_Grant_FieldMask) UnmarshalJSON(data []byte) error { 833 protoFieldMask := &googlefieldmaskpb.FieldMask{} 834 if err := json.Unmarshal(data, protoFieldMask); err != nil { 835 return err 836 } 837 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 838 return err 839 } 840 return nil 841 } 842 843 func (fieldMask *Role_Grant_FieldMask) AppendPath(path RoleGrant_FieldPath) { 844 fieldMask.Paths = append(fieldMask.Paths, path) 845 } 846 847 func (fieldMask *Role_Grant_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 848 fieldMask.Paths = append(fieldMask.Paths, path.(RoleGrant_FieldPath)) 849 } 850 851 func (fieldMask *Role_Grant_FieldMask) GetPaths() []RoleGrant_FieldPath { 852 if fieldMask == nil { 853 return nil 854 } 855 return fieldMask.Paths 856 } 857 858 func (fieldMask *Role_Grant_FieldMask) GetRawPaths() []gotenobject.FieldPath { 859 if fieldMask == nil { 860 return nil 861 } 862 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 863 for _, path := range fieldMask.Paths { 864 rawPaths = append(rawPaths, path) 865 } 866 return rawPaths 867 } 868 869 func (fieldMask *Role_Grant_FieldMask) SetFromCliFlag(raw string) error { 870 path, err := ParseRoleGrant_FieldPath(raw) 871 if err != nil { 872 return err 873 } 874 fieldMask.Paths = append(fieldMask.Paths, path) 875 return nil 876 } 877 878 func (fieldMask *Role_Grant_FieldMask) Set(target, source *Role_Grant) { 879 for _, path := range fieldMask.Paths { 880 val, _ := path.GetSingle(source) 881 // if val is nil, then field does not exist in source, skip 882 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 883 if val != nil { 884 path.WithIValue(val).SetTo(&target) 885 } 886 } 887 } 888 889 func (fieldMask *Role_Grant_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 890 fieldMask.Set(target.(*Role_Grant), source.(*Role_Grant)) 891 } 892 893 func (fieldMask *Role_Grant_FieldMask) Project(source *Role_Grant) *Role_Grant { 894 if source == nil { 895 return nil 896 } 897 if fieldMask == nil { 898 return source 899 } 900 result := &Role_Grant{} 901 resourceFieldConditionsMask := &Role_Grant_FieldCondition_FieldMask{} 902 wholeResourceFieldConditionsAccepted := false 903 requestFieldConditionsMask := &Role_Grant_FieldCondition_FieldMask{} 904 wholeRequestFieldConditionsAccepted := false 905 executableConditionsMask := &condition.ExecutableCondition_FieldMask{} 906 wholeExecutableConditionsAccepted := false 907 908 for _, p := range fieldMask.Paths { 909 switch tp := p.(type) { 910 case *RoleGrant_FieldTerminalPath: 911 switch tp.selector { 912 case RoleGrant_FieldPathSelectorSubScope: 913 result.SubScope = source.SubScope 914 case RoleGrant_FieldPathSelectorPermissions: 915 result.Permissions = source.Permissions 916 case RoleGrant_FieldPathSelectorResourceFieldConditions: 917 result.ResourceFieldConditions = source.ResourceFieldConditions 918 wholeResourceFieldConditionsAccepted = true 919 case RoleGrant_FieldPathSelectorRequestFieldConditions: 920 result.RequestFieldConditions = source.RequestFieldConditions 921 wholeRequestFieldConditionsAccepted = true 922 case RoleGrant_FieldPathSelectorExecutableConditions: 923 result.ExecutableConditions = source.ExecutableConditions 924 wholeExecutableConditionsAccepted = true 925 } 926 case *RoleGrant_FieldSubPath: 927 switch tp.selector { 928 case RoleGrant_FieldPathSelectorResourceFieldConditions: 929 resourceFieldConditionsMask.AppendPath(tp.subPath.(RoleGrantFieldCondition_FieldPath)) 930 case RoleGrant_FieldPathSelectorRequestFieldConditions: 931 requestFieldConditionsMask.AppendPath(tp.subPath.(RoleGrantFieldCondition_FieldPath)) 932 case RoleGrant_FieldPathSelectorExecutableConditions: 933 executableConditionsMask.AppendPath(tp.subPath.(condition.ExecutableCondition_FieldPath)) 934 } 935 } 936 } 937 if wholeResourceFieldConditionsAccepted == false && len(resourceFieldConditionsMask.Paths) > 0 { 938 for _, sourceItem := range source.GetResourceFieldConditions() { 939 result.ResourceFieldConditions = append(result.ResourceFieldConditions, resourceFieldConditionsMask.Project(sourceItem)) 940 } 941 } 942 if wholeRequestFieldConditionsAccepted == false && len(requestFieldConditionsMask.Paths) > 0 { 943 for _, sourceItem := range source.GetRequestFieldConditions() { 944 result.RequestFieldConditions = append(result.RequestFieldConditions, requestFieldConditionsMask.Project(sourceItem)) 945 } 946 } 947 if wholeExecutableConditionsAccepted == false && len(executableConditionsMask.Paths) > 0 { 948 for _, sourceItem := range source.GetExecutableConditions() { 949 result.ExecutableConditions = append(result.ExecutableConditions, executableConditionsMask.Project(sourceItem)) 950 } 951 } 952 return result 953 } 954 955 func (fieldMask *Role_Grant_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 956 return fieldMask.Project(source.(*Role_Grant)) 957 } 958 959 func (fieldMask *Role_Grant_FieldMask) PathsCount() int { 960 if fieldMask == nil { 961 return 0 962 } 963 return len(fieldMask.Paths) 964 } 965 966 type Role_Grant_FieldCondition_FieldMask struct { 967 Paths []RoleGrantFieldCondition_FieldPath 968 } 969 970 func FullRole_Grant_FieldCondition_FieldMask() *Role_Grant_FieldCondition_FieldMask { 971 res := &Role_Grant_FieldCondition_FieldMask{} 972 res.Paths = append(res.Paths, &RoleGrantFieldCondition_FieldTerminalPath{selector: RoleGrantFieldCondition_FieldPathSelectorPath}) 973 res.Paths = append(res.Paths, &RoleGrantFieldCondition_FieldTerminalPath{selector: RoleGrantFieldCondition_FieldPathSelectorValue}) 974 return res 975 } 976 977 func (fieldMask *Role_Grant_FieldCondition_FieldMask) String() string { 978 if fieldMask == nil { 979 return "<nil>" 980 } 981 pathsStr := make([]string, 0, len(fieldMask.Paths)) 982 for _, path := range fieldMask.Paths { 983 pathsStr = append(pathsStr, path.String()) 984 } 985 return strings.Join(pathsStr, ", ") 986 } 987 988 func (fieldMask *Role_Grant_FieldCondition_FieldMask) IsFull() bool { 989 if fieldMask == nil { 990 return false 991 } 992 presentSelectors := make([]bool, 2) 993 for _, path := range fieldMask.Paths { 994 if asFinal, ok := path.(*RoleGrantFieldCondition_FieldTerminalPath); ok { 995 presentSelectors[int(asFinal.selector)] = true 996 } 997 } 998 for _, flag := range presentSelectors { 999 if !flag { 1000 return false 1001 } 1002 } 1003 return true 1004 } 1005 1006 func (fieldMask *Role_Grant_FieldCondition_FieldMask) ProtoReflect() preflect.Message { 1007 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 1008 return ParseRoleGrantFieldCondition_FieldPath(raw) 1009 }) 1010 } 1011 1012 func (fieldMask *Role_Grant_FieldCondition_FieldMask) ProtoMessage() {} 1013 1014 func (fieldMask *Role_Grant_FieldCondition_FieldMask) Reset() { 1015 if fieldMask != nil { 1016 fieldMask.Paths = nil 1017 } 1018 } 1019 1020 func (fieldMask *Role_Grant_FieldCondition_FieldMask) Subtract(other *Role_Grant_FieldCondition_FieldMask) *Role_Grant_FieldCondition_FieldMask { 1021 result := &Role_Grant_FieldCondition_FieldMask{} 1022 removedSelectors := make([]bool, 2) 1023 1024 for _, path := range other.GetPaths() { 1025 switch tp := path.(type) { 1026 case *RoleGrantFieldCondition_FieldTerminalPath: 1027 removedSelectors[int(tp.selector)] = true 1028 } 1029 } 1030 for _, path := range fieldMask.GetPaths() { 1031 if !removedSelectors[int(path.Selector())] { 1032 result.Paths = append(result.Paths, path) 1033 } 1034 } 1035 1036 if len(result.Paths) == 0 { 1037 return nil 1038 } 1039 return result 1040 } 1041 1042 func (fieldMask *Role_Grant_FieldCondition_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1043 return fieldMask.Subtract(other.(*Role_Grant_FieldCondition_FieldMask)) 1044 } 1045 1046 // FilterInputFields generates copy of field paths with output_only field paths removed 1047 func (fieldMask *Role_Grant_FieldCondition_FieldMask) FilterInputFields() *Role_Grant_FieldCondition_FieldMask { 1048 result := &Role_Grant_FieldCondition_FieldMask{} 1049 result.Paths = append(result.Paths, fieldMask.Paths...) 1050 return result 1051 } 1052 1053 // ToFieldMask is used for proto conversions 1054 func (fieldMask *Role_Grant_FieldCondition_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1055 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1056 for _, path := range fieldMask.Paths { 1057 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1058 } 1059 return protoFieldMask 1060 } 1061 1062 func (fieldMask *Role_Grant_FieldCondition_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1063 if fieldMask == nil { 1064 return status.Error(codes.Internal, "target field mask is nil") 1065 } 1066 fieldMask.Paths = make([]RoleGrantFieldCondition_FieldPath, 0, len(protoFieldMask.Paths)) 1067 for _, strPath := range protoFieldMask.Paths { 1068 path, err := ParseRoleGrantFieldCondition_FieldPath(strPath) 1069 if err != nil { 1070 return err 1071 } 1072 fieldMask.Paths = append(fieldMask.Paths, path) 1073 } 1074 return nil 1075 } 1076 1077 // implement methods required by customType 1078 func (fieldMask Role_Grant_FieldCondition_FieldMask) Marshal() ([]byte, error) { 1079 protoFieldMask := fieldMask.ToProtoFieldMask() 1080 return proto.Marshal(protoFieldMask) 1081 } 1082 1083 func (fieldMask *Role_Grant_FieldCondition_FieldMask) Unmarshal(data []byte) error { 1084 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1085 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1086 return err 1087 } 1088 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1089 return err 1090 } 1091 return nil 1092 } 1093 1094 func (fieldMask *Role_Grant_FieldCondition_FieldMask) Size() int { 1095 return proto.Size(fieldMask.ToProtoFieldMask()) 1096 } 1097 1098 func (fieldMask Role_Grant_FieldCondition_FieldMask) MarshalJSON() ([]byte, error) { 1099 return json.Marshal(fieldMask.ToProtoFieldMask()) 1100 } 1101 1102 func (fieldMask *Role_Grant_FieldCondition_FieldMask) UnmarshalJSON(data []byte) error { 1103 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1104 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1105 return err 1106 } 1107 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1108 return err 1109 } 1110 return nil 1111 } 1112 1113 func (fieldMask *Role_Grant_FieldCondition_FieldMask) AppendPath(path RoleGrantFieldCondition_FieldPath) { 1114 fieldMask.Paths = append(fieldMask.Paths, path) 1115 } 1116 1117 func (fieldMask *Role_Grant_FieldCondition_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1118 fieldMask.Paths = append(fieldMask.Paths, path.(RoleGrantFieldCondition_FieldPath)) 1119 } 1120 1121 func (fieldMask *Role_Grant_FieldCondition_FieldMask) GetPaths() []RoleGrantFieldCondition_FieldPath { 1122 if fieldMask == nil { 1123 return nil 1124 } 1125 return fieldMask.Paths 1126 } 1127 1128 func (fieldMask *Role_Grant_FieldCondition_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1129 if fieldMask == nil { 1130 return nil 1131 } 1132 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1133 for _, path := range fieldMask.Paths { 1134 rawPaths = append(rawPaths, path) 1135 } 1136 return rawPaths 1137 } 1138 1139 func (fieldMask *Role_Grant_FieldCondition_FieldMask) SetFromCliFlag(raw string) error { 1140 path, err := ParseRoleGrantFieldCondition_FieldPath(raw) 1141 if err != nil { 1142 return err 1143 } 1144 fieldMask.Paths = append(fieldMask.Paths, path) 1145 return nil 1146 } 1147 1148 func (fieldMask *Role_Grant_FieldCondition_FieldMask) Set(target, source *Role_Grant_FieldCondition) { 1149 for _, path := range fieldMask.Paths { 1150 val, _ := path.GetSingle(source) 1151 // if val is nil, then field does not exist in source, skip 1152 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1153 if val != nil { 1154 path.WithIValue(val).SetTo(&target) 1155 } 1156 } 1157 } 1158 1159 func (fieldMask *Role_Grant_FieldCondition_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1160 fieldMask.Set(target.(*Role_Grant_FieldCondition), source.(*Role_Grant_FieldCondition)) 1161 } 1162 1163 func (fieldMask *Role_Grant_FieldCondition_FieldMask) Project(source *Role_Grant_FieldCondition) *Role_Grant_FieldCondition { 1164 if source == nil { 1165 return nil 1166 } 1167 if fieldMask == nil { 1168 return source 1169 } 1170 result := &Role_Grant_FieldCondition{} 1171 1172 for _, p := range fieldMask.Paths { 1173 switch tp := p.(type) { 1174 case *RoleGrantFieldCondition_FieldTerminalPath: 1175 switch tp.selector { 1176 case RoleGrantFieldCondition_FieldPathSelectorPath: 1177 result.Path = source.Path 1178 case RoleGrantFieldCondition_FieldPathSelectorValue: 1179 result.Value = source.Value 1180 } 1181 } 1182 } 1183 return result 1184 } 1185 1186 func (fieldMask *Role_Grant_FieldCondition_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1187 return fieldMask.Project(source.(*Role_Grant_FieldCondition)) 1188 } 1189 1190 func (fieldMask *Role_Grant_FieldCondition_FieldMask) PathsCount() int { 1191 if fieldMask == nil { 1192 return 0 1193 } 1194 return len(fieldMask.Paths) 1195 } 1196 1197 type ScopeParam_FieldMask struct { 1198 Paths []ScopeParam_FieldPath 1199 } 1200 1201 func FullScopeParam_FieldMask() *ScopeParam_FieldMask { 1202 res := &ScopeParam_FieldMask{} 1203 res.Paths = append(res.Paths, &ScopeParam_FieldTerminalPath{selector: ScopeParam_FieldPathSelectorName}) 1204 res.Paths = append(res.Paths, &ScopeParam_FieldTerminalPath{selector: ScopeParam_FieldPathSelectorString}) 1205 res.Paths = append(res.Paths, &ScopeParam_FieldTerminalPath{selector: ScopeParam_FieldPathSelectorStrings}) 1206 res.Paths = append(res.Paths, &ScopeParam_FieldTerminalPath{selector: ScopeParam_FieldPathSelectorValueFrom}) 1207 return res 1208 } 1209 1210 func (fieldMask *ScopeParam_FieldMask) String() string { 1211 if fieldMask == nil { 1212 return "<nil>" 1213 } 1214 pathsStr := make([]string, 0, len(fieldMask.Paths)) 1215 for _, path := range fieldMask.Paths { 1216 pathsStr = append(pathsStr, path.String()) 1217 } 1218 return strings.Join(pathsStr, ", ") 1219 } 1220 1221 func (fieldMask *ScopeParam_FieldMask) IsFull() bool { 1222 if fieldMask == nil { 1223 return false 1224 } 1225 presentSelectors := make([]bool, 4) 1226 for _, path := range fieldMask.Paths { 1227 if asFinal, ok := path.(*ScopeParam_FieldTerminalPath); ok { 1228 presentSelectors[int(asFinal.selector)] = true 1229 } 1230 } 1231 for _, flag := range presentSelectors { 1232 if !flag { 1233 return false 1234 } 1235 } 1236 return true 1237 } 1238 1239 func (fieldMask *ScopeParam_FieldMask) ProtoReflect() preflect.Message { 1240 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 1241 return ParseScopeParam_FieldPath(raw) 1242 }) 1243 } 1244 1245 func (fieldMask *ScopeParam_FieldMask) ProtoMessage() {} 1246 1247 func (fieldMask *ScopeParam_FieldMask) Reset() { 1248 if fieldMask != nil { 1249 fieldMask.Paths = nil 1250 } 1251 } 1252 1253 func (fieldMask *ScopeParam_FieldMask) Subtract(other *ScopeParam_FieldMask) *ScopeParam_FieldMask { 1254 result := &ScopeParam_FieldMask{} 1255 removedSelectors := make([]bool, 4) 1256 otherSubMasks := map[ScopeParam_FieldPathSelector]gotenobject.FieldMask{ 1257 ScopeParam_FieldPathSelectorString: &ScopeParam_StringValue_FieldMask{}, 1258 ScopeParam_FieldPathSelectorStrings: &ScopeParam_ArrayOfStringsValue_FieldMask{}, 1259 ScopeParam_FieldPathSelectorValueFrom: &ScopeParam_FromValue_FieldMask{}, 1260 } 1261 mySubMasks := map[ScopeParam_FieldPathSelector]gotenobject.FieldMask{ 1262 ScopeParam_FieldPathSelectorString: &ScopeParam_StringValue_FieldMask{}, 1263 ScopeParam_FieldPathSelectorStrings: &ScopeParam_ArrayOfStringsValue_FieldMask{}, 1264 ScopeParam_FieldPathSelectorValueFrom: &ScopeParam_FromValue_FieldMask{}, 1265 } 1266 1267 for _, path := range other.GetPaths() { 1268 switch tp := path.(type) { 1269 case *ScopeParam_FieldTerminalPath: 1270 removedSelectors[int(tp.selector)] = true 1271 case *ScopeParam_FieldSubPath: 1272 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 1273 } 1274 } 1275 for _, path := range fieldMask.GetPaths() { 1276 if !removedSelectors[int(path.Selector())] { 1277 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 1278 if tp, ok := path.(*ScopeParam_FieldTerminalPath); ok { 1279 switch tp.selector { 1280 case ScopeParam_FieldPathSelectorString: 1281 mySubMasks[ScopeParam_FieldPathSelectorString] = FullScopeParam_StringValue_FieldMask() 1282 case ScopeParam_FieldPathSelectorStrings: 1283 mySubMasks[ScopeParam_FieldPathSelectorStrings] = FullScopeParam_ArrayOfStringsValue_FieldMask() 1284 case ScopeParam_FieldPathSelectorValueFrom: 1285 mySubMasks[ScopeParam_FieldPathSelectorValueFrom] = FullScopeParam_FromValue_FieldMask() 1286 } 1287 } else if tp, ok := path.(*ScopeParam_FieldSubPath); ok { 1288 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 1289 } 1290 } else { 1291 result.Paths = append(result.Paths, path) 1292 } 1293 } 1294 } 1295 for selector, mySubMask := range mySubMasks { 1296 if mySubMask.PathsCount() > 0 { 1297 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 1298 result.Paths = append(result.Paths, &ScopeParam_FieldSubPath{selector: selector, subPath: allowedPath}) 1299 } 1300 } 1301 } 1302 1303 if len(result.Paths) == 0 { 1304 return nil 1305 } 1306 return result 1307 } 1308 1309 func (fieldMask *ScopeParam_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1310 return fieldMask.Subtract(other.(*ScopeParam_FieldMask)) 1311 } 1312 1313 // FilterInputFields generates copy of field paths with output_only field paths removed 1314 func (fieldMask *ScopeParam_FieldMask) FilterInputFields() *ScopeParam_FieldMask { 1315 result := &ScopeParam_FieldMask{} 1316 result.Paths = append(result.Paths, fieldMask.Paths...) 1317 return result 1318 } 1319 1320 // ToFieldMask is used for proto conversions 1321 func (fieldMask *ScopeParam_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1322 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1323 for _, path := range fieldMask.Paths { 1324 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1325 } 1326 return protoFieldMask 1327 } 1328 1329 func (fieldMask *ScopeParam_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1330 if fieldMask == nil { 1331 return status.Error(codes.Internal, "target field mask is nil") 1332 } 1333 fieldMask.Paths = make([]ScopeParam_FieldPath, 0, len(protoFieldMask.Paths)) 1334 for _, strPath := range protoFieldMask.Paths { 1335 path, err := ParseScopeParam_FieldPath(strPath) 1336 if err != nil { 1337 return err 1338 } 1339 fieldMask.Paths = append(fieldMask.Paths, path) 1340 } 1341 return nil 1342 } 1343 1344 // implement methods required by customType 1345 func (fieldMask ScopeParam_FieldMask) Marshal() ([]byte, error) { 1346 protoFieldMask := fieldMask.ToProtoFieldMask() 1347 return proto.Marshal(protoFieldMask) 1348 } 1349 1350 func (fieldMask *ScopeParam_FieldMask) Unmarshal(data []byte) error { 1351 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1352 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1353 return err 1354 } 1355 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1356 return err 1357 } 1358 return nil 1359 } 1360 1361 func (fieldMask *ScopeParam_FieldMask) Size() int { 1362 return proto.Size(fieldMask.ToProtoFieldMask()) 1363 } 1364 1365 func (fieldMask ScopeParam_FieldMask) MarshalJSON() ([]byte, error) { 1366 return json.Marshal(fieldMask.ToProtoFieldMask()) 1367 } 1368 1369 func (fieldMask *ScopeParam_FieldMask) UnmarshalJSON(data []byte) error { 1370 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1371 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1372 return err 1373 } 1374 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1375 return err 1376 } 1377 return nil 1378 } 1379 1380 func (fieldMask *ScopeParam_FieldMask) AppendPath(path ScopeParam_FieldPath) { 1381 fieldMask.Paths = append(fieldMask.Paths, path) 1382 } 1383 1384 func (fieldMask *ScopeParam_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1385 fieldMask.Paths = append(fieldMask.Paths, path.(ScopeParam_FieldPath)) 1386 } 1387 1388 func (fieldMask *ScopeParam_FieldMask) GetPaths() []ScopeParam_FieldPath { 1389 if fieldMask == nil { 1390 return nil 1391 } 1392 return fieldMask.Paths 1393 } 1394 1395 func (fieldMask *ScopeParam_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1396 if fieldMask == nil { 1397 return nil 1398 } 1399 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1400 for _, path := range fieldMask.Paths { 1401 rawPaths = append(rawPaths, path) 1402 } 1403 return rawPaths 1404 } 1405 1406 func (fieldMask *ScopeParam_FieldMask) SetFromCliFlag(raw string) error { 1407 path, err := ParseScopeParam_FieldPath(raw) 1408 if err != nil { 1409 return err 1410 } 1411 fieldMask.Paths = append(fieldMask.Paths, path) 1412 return nil 1413 } 1414 1415 func (fieldMask *ScopeParam_FieldMask) Set(target, source *ScopeParam) { 1416 for _, path := range fieldMask.Paths { 1417 val, _ := path.GetSingle(source) 1418 // if val is nil, then field does not exist in source, skip 1419 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1420 if val != nil { 1421 path.WithIValue(val).SetTo(&target) 1422 } 1423 } 1424 } 1425 1426 func (fieldMask *ScopeParam_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1427 fieldMask.Set(target.(*ScopeParam), source.(*ScopeParam)) 1428 } 1429 1430 func (fieldMask *ScopeParam_FieldMask) Project(source *ScopeParam) *ScopeParam { 1431 if source == nil { 1432 return nil 1433 } 1434 if fieldMask == nil { 1435 return source 1436 } 1437 result := &ScopeParam{} 1438 stringMask := &ScopeParam_StringValue_FieldMask{} 1439 wholeStringAccepted := false 1440 stringsMask := &ScopeParam_ArrayOfStringsValue_FieldMask{} 1441 wholeStringsAccepted := false 1442 valueFromMask := &ScopeParam_FromValue_FieldMask{} 1443 wholeValueFromAccepted := false 1444 1445 for _, p := range fieldMask.Paths { 1446 switch tp := p.(type) { 1447 case *ScopeParam_FieldTerminalPath: 1448 switch tp.selector { 1449 case ScopeParam_FieldPathSelectorName: 1450 result.Name = source.Name 1451 case ScopeParam_FieldPathSelectorString: 1452 if source, ok := source.Value.(*ScopeParam_String_); ok { 1453 result.Value = &ScopeParam_String_{ 1454 String_: source.String_, 1455 } 1456 } 1457 wholeStringAccepted = true 1458 case ScopeParam_FieldPathSelectorStrings: 1459 if source, ok := source.Value.(*ScopeParam_Strings); ok { 1460 result.Value = &ScopeParam_Strings{ 1461 Strings: source.Strings, 1462 } 1463 } 1464 wholeStringsAccepted = true 1465 case ScopeParam_FieldPathSelectorValueFrom: 1466 if source, ok := source.Value.(*ScopeParam_ValueFrom); ok { 1467 result.Value = &ScopeParam_ValueFrom{ 1468 ValueFrom: source.ValueFrom, 1469 } 1470 } 1471 wholeValueFromAccepted = true 1472 } 1473 case *ScopeParam_FieldSubPath: 1474 switch tp.selector { 1475 case ScopeParam_FieldPathSelectorString: 1476 stringMask.AppendPath(tp.subPath.(ScopeParamStringValue_FieldPath)) 1477 case ScopeParam_FieldPathSelectorStrings: 1478 stringsMask.AppendPath(tp.subPath.(ScopeParamArrayOfStringsValue_FieldPath)) 1479 case ScopeParam_FieldPathSelectorValueFrom: 1480 valueFromMask.AppendPath(tp.subPath.(ScopeParamFromValue_FieldPath)) 1481 } 1482 } 1483 } 1484 if wholeStringAccepted == false && len(stringMask.Paths) > 0 { 1485 if asOneOf, ok := source.Value.(*ScopeParam_String_); ok { 1486 result.Value = (*ScopeParam_String_)(nil) 1487 if asOneOf != nil { 1488 oneOfRes := &ScopeParam_String_{} 1489 oneOfRes.String_ = stringMask.Project(asOneOf.String_) 1490 result.Value = oneOfRes 1491 } 1492 } 1493 } 1494 if wholeStringsAccepted == false && len(stringsMask.Paths) > 0 { 1495 if asOneOf, ok := source.Value.(*ScopeParam_Strings); ok { 1496 result.Value = (*ScopeParam_Strings)(nil) 1497 if asOneOf != nil { 1498 oneOfRes := &ScopeParam_Strings{} 1499 oneOfRes.Strings = stringsMask.Project(asOneOf.Strings) 1500 result.Value = oneOfRes 1501 } 1502 } 1503 } 1504 if wholeValueFromAccepted == false && len(valueFromMask.Paths) > 0 { 1505 if asOneOf, ok := source.Value.(*ScopeParam_ValueFrom); ok { 1506 result.Value = (*ScopeParam_ValueFrom)(nil) 1507 if asOneOf != nil { 1508 oneOfRes := &ScopeParam_ValueFrom{} 1509 oneOfRes.ValueFrom = valueFromMask.Project(asOneOf.ValueFrom) 1510 result.Value = oneOfRes 1511 } 1512 } 1513 } 1514 return result 1515 } 1516 1517 func (fieldMask *ScopeParam_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1518 return fieldMask.Project(source.(*ScopeParam)) 1519 } 1520 1521 func (fieldMask *ScopeParam_FieldMask) PathsCount() int { 1522 if fieldMask == nil { 1523 return 0 1524 } 1525 return len(fieldMask.Paths) 1526 } 1527 1528 type ScopeParam_StringValue_FieldMask struct { 1529 Paths []ScopeParamStringValue_FieldPath 1530 } 1531 1532 func FullScopeParam_StringValue_FieldMask() *ScopeParam_StringValue_FieldMask { 1533 res := &ScopeParam_StringValue_FieldMask{} 1534 res.Paths = append(res.Paths, &ScopeParamStringValue_FieldTerminalPath{selector: ScopeParamStringValue_FieldPathSelectorValue}) 1535 return res 1536 } 1537 1538 func (fieldMask *ScopeParam_StringValue_FieldMask) String() string { 1539 if fieldMask == nil { 1540 return "<nil>" 1541 } 1542 pathsStr := make([]string, 0, len(fieldMask.Paths)) 1543 for _, path := range fieldMask.Paths { 1544 pathsStr = append(pathsStr, path.String()) 1545 } 1546 return strings.Join(pathsStr, ", ") 1547 } 1548 1549 func (fieldMask *ScopeParam_StringValue_FieldMask) IsFull() bool { 1550 if fieldMask == nil { 1551 return false 1552 } 1553 presentSelectors := make([]bool, 1) 1554 for _, path := range fieldMask.Paths { 1555 if asFinal, ok := path.(*ScopeParamStringValue_FieldTerminalPath); ok { 1556 presentSelectors[int(asFinal.selector)] = true 1557 } 1558 } 1559 for _, flag := range presentSelectors { 1560 if !flag { 1561 return false 1562 } 1563 } 1564 return true 1565 } 1566 1567 func (fieldMask *ScopeParam_StringValue_FieldMask) ProtoReflect() preflect.Message { 1568 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 1569 return ParseScopeParamStringValue_FieldPath(raw) 1570 }) 1571 } 1572 1573 func (fieldMask *ScopeParam_StringValue_FieldMask) ProtoMessage() {} 1574 1575 func (fieldMask *ScopeParam_StringValue_FieldMask) Reset() { 1576 if fieldMask != nil { 1577 fieldMask.Paths = nil 1578 } 1579 } 1580 1581 func (fieldMask *ScopeParam_StringValue_FieldMask) Subtract(other *ScopeParam_StringValue_FieldMask) *ScopeParam_StringValue_FieldMask { 1582 result := &ScopeParam_StringValue_FieldMask{} 1583 removedSelectors := make([]bool, 1) 1584 1585 for _, path := range other.GetPaths() { 1586 switch tp := path.(type) { 1587 case *ScopeParamStringValue_FieldTerminalPath: 1588 removedSelectors[int(tp.selector)] = true 1589 } 1590 } 1591 for _, path := range fieldMask.GetPaths() { 1592 if !removedSelectors[int(path.Selector())] { 1593 result.Paths = append(result.Paths, path) 1594 } 1595 } 1596 1597 if len(result.Paths) == 0 { 1598 return nil 1599 } 1600 return result 1601 } 1602 1603 func (fieldMask *ScopeParam_StringValue_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1604 return fieldMask.Subtract(other.(*ScopeParam_StringValue_FieldMask)) 1605 } 1606 1607 // FilterInputFields generates copy of field paths with output_only field paths removed 1608 func (fieldMask *ScopeParam_StringValue_FieldMask) FilterInputFields() *ScopeParam_StringValue_FieldMask { 1609 result := &ScopeParam_StringValue_FieldMask{} 1610 result.Paths = append(result.Paths, fieldMask.Paths...) 1611 return result 1612 } 1613 1614 // ToFieldMask is used for proto conversions 1615 func (fieldMask *ScopeParam_StringValue_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1616 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1617 for _, path := range fieldMask.Paths { 1618 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1619 } 1620 return protoFieldMask 1621 } 1622 1623 func (fieldMask *ScopeParam_StringValue_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1624 if fieldMask == nil { 1625 return status.Error(codes.Internal, "target field mask is nil") 1626 } 1627 fieldMask.Paths = make([]ScopeParamStringValue_FieldPath, 0, len(protoFieldMask.Paths)) 1628 for _, strPath := range protoFieldMask.Paths { 1629 path, err := ParseScopeParamStringValue_FieldPath(strPath) 1630 if err != nil { 1631 return err 1632 } 1633 fieldMask.Paths = append(fieldMask.Paths, path) 1634 } 1635 return nil 1636 } 1637 1638 // implement methods required by customType 1639 func (fieldMask ScopeParam_StringValue_FieldMask) Marshal() ([]byte, error) { 1640 protoFieldMask := fieldMask.ToProtoFieldMask() 1641 return proto.Marshal(protoFieldMask) 1642 } 1643 1644 func (fieldMask *ScopeParam_StringValue_FieldMask) Unmarshal(data []byte) error { 1645 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1646 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1647 return err 1648 } 1649 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1650 return err 1651 } 1652 return nil 1653 } 1654 1655 func (fieldMask *ScopeParam_StringValue_FieldMask) Size() int { 1656 return proto.Size(fieldMask.ToProtoFieldMask()) 1657 } 1658 1659 func (fieldMask ScopeParam_StringValue_FieldMask) MarshalJSON() ([]byte, error) { 1660 return json.Marshal(fieldMask.ToProtoFieldMask()) 1661 } 1662 1663 func (fieldMask *ScopeParam_StringValue_FieldMask) UnmarshalJSON(data []byte) error { 1664 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1665 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1666 return err 1667 } 1668 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1669 return err 1670 } 1671 return nil 1672 } 1673 1674 func (fieldMask *ScopeParam_StringValue_FieldMask) AppendPath(path ScopeParamStringValue_FieldPath) { 1675 fieldMask.Paths = append(fieldMask.Paths, path) 1676 } 1677 1678 func (fieldMask *ScopeParam_StringValue_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1679 fieldMask.Paths = append(fieldMask.Paths, path.(ScopeParamStringValue_FieldPath)) 1680 } 1681 1682 func (fieldMask *ScopeParam_StringValue_FieldMask) GetPaths() []ScopeParamStringValue_FieldPath { 1683 if fieldMask == nil { 1684 return nil 1685 } 1686 return fieldMask.Paths 1687 } 1688 1689 func (fieldMask *ScopeParam_StringValue_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1690 if fieldMask == nil { 1691 return nil 1692 } 1693 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1694 for _, path := range fieldMask.Paths { 1695 rawPaths = append(rawPaths, path) 1696 } 1697 return rawPaths 1698 } 1699 1700 func (fieldMask *ScopeParam_StringValue_FieldMask) SetFromCliFlag(raw string) error { 1701 path, err := ParseScopeParamStringValue_FieldPath(raw) 1702 if err != nil { 1703 return err 1704 } 1705 fieldMask.Paths = append(fieldMask.Paths, path) 1706 return nil 1707 } 1708 1709 func (fieldMask *ScopeParam_StringValue_FieldMask) Set(target, source *ScopeParam_StringValue) { 1710 for _, path := range fieldMask.Paths { 1711 val, _ := path.GetSingle(source) 1712 // if val is nil, then field does not exist in source, skip 1713 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1714 if val != nil { 1715 path.WithIValue(val).SetTo(&target) 1716 } 1717 } 1718 } 1719 1720 func (fieldMask *ScopeParam_StringValue_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1721 fieldMask.Set(target.(*ScopeParam_StringValue), source.(*ScopeParam_StringValue)) 1722 } 1723 1724 func (fieldMask *ScopeParam_StringValue_FieldMask) Project(source *ScopeParam_StringValue) *ScopeParam_StringValue { 1725 if source == nil { 1726 return nil 1727 } 1728 if fieldMask == nil { 1729 return source 1730 } 1731 result := &ScopeParam_StringValue{} 1732 1733 for _, p := range fieldMask.Paths { 1734 switch tp := p.(type) { 1735 case *ScopeParamStringValue_FieldTerminalPath: 1736 switch tp.selector { 1737 case ScopeParamStringValue_FieldPathSelectorValue: 1738 result.Value = source.Value 1739 } 1740 } 1741 } 1742 return result 1743 } 1744 1745 func (fieldMask *ScopeParam_StringValue_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1746 return fieldMask.Project(source.(*ScopeParam_StringValue)) 1747 } 1748 1749 func (fieldMask *ScopeParam_StringValue_FieldMask) PathsCount() int { 1750 if fieldMask == nil { 1751 return 0 1752 } 1753 return len(fieldMask.Paths) 1754 } 1755 1756 type ScopeParam_ArrayOfStringsValue_FieldMask struct { 1757 Paths []ScopeParamArrayOfStringsValue_FieldPath 1758 } 1759 1760 func FullScopeParam_ArrayOfStringsValue_FieldMask() *ScopeParam_ArrayOfStringsValue_FieldMask { 1761 res := &ScopeParam_ArrayOfStringsValue_FieldMask{} 1762 res.Paths = append(res.Paths, &ScopeParamArrayOfStringsValue_FieldTerminalPath{selector: ScopeParamArrayOfStringsValue_FieldPathSelectorValues}) 1763 return res 1764 } 1765 1766 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) String() string { 1767 if fieldMask == nil { 1768 return "<nil>" 1769 } 1770 pathsStr := make([]string, 0, len(fieldMask.Paths)) 1771 for _, path := range fieldMask.Paths { 1772 pathsStr = append(pathsStr, path.String()) 1773 } 1774 return strings.Join(pathsStr, ", ") 1775 } 1776 1777 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) IsFull() bool { 1778 if fieldMask == nil { 1779 return false 1780 } 1781 presentSelectors := make([]bool, 1) 1782 for _, path := range fieldMask.Paths { 1783 if asFinal, ok := path.(*ScopeParamArrayOfStringsValue_FieldTerminalPath); ok { 1784 presentSelectors[int(asFinal.selector)] = true 1785 } 1786 } 1787 for _, flag := range presentSelectors { 1788 if !flag { 1789 return false 1790 } 1791 } 1792 return true 1793 } 1794 1795 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) ProtoReflect() preflect.Message { 1796 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 1797 return ParseScopeParamArrayOfStringsValue_FieldPath(raw) 1798 }) 1799 } 1800 1801 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) ProtoMessage() {} 1802 1803 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) Reset() { 1804 if fieldMask != nil { 1805 fieldMask.Paths = nil 1806 } 1807 } 1808 1809 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) Subtract(other *ScopeParam_ArrayOfStringsValue_FieldMask) *ScopeParam_ArrayOfStringsValue_FieldMask { 1810 result := &ScopeParam_ArrayOfStringsValue_FieldMask{} 1811 removedSelectors := make([]bool, 1) 1812 1813 for _, path := range other.GetPaths() { 1814 switch tp := path.(type) { 1815 case *ScopeParamArrayOfStringsValue_FieldTerminalPath: 1816 removedSelectors[int(tp.selector)] = true 1817 } 1818 } 1819 for _, path := range fieldMask.GetPaths() { 1820 if !removedSelectors[int(path.Selector())] { 1821 result.Paths = append(result.Paths, path) 1822 } 1823 } 1824 1825 if len(result.Paths) == 0 { 1826 return nil 1827 } 1828 return result 1829 } 1830 1831 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1832 return fieldMask.Subtract(other.(*ScopeParam_ArrayOfStringsValue_FieldMask)) 1833 } 1834 1835 // FilterInputFields generates copy of field paths with output_only field paths removed 1836 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) FilterInputFields() *ScopeParam_ArrayOfStringsValue_FieldMask { 1837 result := &ScopeParam_ArrayOfStringsValue_FieldMask{} 1838 result.Paths = append(result.Paths, fieldMask.Paths...) 1839 return result 1840 } 1841 1842 // ToFieldMask is used for proto conversions 1843 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1844 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1845 for _, path := range fieldMask.Paths { 1846 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1847 } 1848 return protoFieldMask 1849 } 1850 1851 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1852 if fieldMask == nil { 1853 return status.Error(codes.Internal, "target field mask is nil") 1854 } 1855 fieldMask.Paths = make([]ScopeParamArrayOfStringsValue_FieldPath, 0, len(protoFieldMask.Paths)) 1856 for _, strPath := range protoFieldMask.Paths { 1857 path, err := ParseScopeParamArrayOfStringsValue_FieldPath(strPath) 1858 if err != nil { 1859 return err 1860 } 1861 fieldMask.Paths = append(fieldMask.Paths, path) 1862 } 1863 return nil 1864 } 1865 1866 // implement methods required by customType 1867 func (fieldMask ScopeParam_ArrayOfStringsValue_FieldMask) Marshal() ([]byte, error) { 1868 protoFieldMask := fieldMask.ToProtoFieldMask() 1869 return proto.Marshal(protoFieldMask) 1870 } 1871 1872 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) Unmarshal(data []byte) error { 1873 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1874 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1875 return err 1876 } 1877 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1878 return err 1879 } 1880 return nil 1881 } 1882 1883 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) Size() int { 1884 return proto.Size(fieldMask.ToProtoFieldMask()) 1885 } 1886 1887 func (fieldMask ScopeParam_ArrayOfStringsValue_FieldMask) MarshalJSON() ([]byte, error) { 1888 return json.Marshal(fieldMask.ToProtoFieldMask()) 1889 } 1890 1891 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) UnmarshalJSON(data []byte) error { 1892 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1893 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1894 return err 1895 } 1896 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1897 return err 1898 } 1899 return nil 1900 } 1901 1902 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) AppendPath(path ScopeParamArrayOfStringsValue_FieldPath) { 1903 fieldMask.Paths = append(fieldMask.Paths, path) 1904 } 1905 1906 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1907 fieldMask.Paths = append(fieldMask.Paths, path.(ScopeParamArrayOfStringsValue_FieldPath)) 1908 } 1909 1910 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) GetPaths() []ScopeParamArrayOfStringsValue_FieldPath { 1911 if fieldMask == nil { 1912 return nil 1913 } 1914 return fieldMask.Paths 1915 } 1916 1917 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1918 if fieldMask == nil { 1919 return nil 1920 } 1921 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1922 for _, path := range fieldMask.Paths { 1923 rawPaths = append(rawPaths, path) 1924 } 1925 return rawPaths 1926 } 1927 1928 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) SetFromCliFlag(raw string) error { 1929 path, err := ParseScopeParamArrayOfStringsValue_FieldPath(raw) 1930 if err != nil { 1931 return err 1932 } 1933 fieldMask.Paths = append(fieldMask.Paths, path) 1934 return nil 1935 } 1936 1937 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) Set(target, source *ScopeParam_ArrayOfStringsValue) { 1938 for _, path := range fieldMask.Paths { 1939 val, _ := path.GetSingle(source) 1940 // if val is nil, then field does not exist in source, skip 1941 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1942 if val != nil { 1943 path.WithIValue(val).SetTo(&target) 1944 } 1945 } 1946 } 1947 1948 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1949 fieldMask.Set(target.(*ScopeParam_ArrayOfStringsValue), source.(*ScopeParam_ArrayOfStringsValue)) 1950 } 1951 1952 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) Project(source *ScopeParam_ArrayOfStringsValue) *ScopeParam_ArrayOfStringsValue { 1953 if source == nil { 1954 return nil 1955 } 1956 if fieldMask == nil { 1957 return source 1958 } 1959 result := &ScopeParam_ArrayOfStringsValue{} 1960 1961 for _, p := range fieldMask.Paths { 1962 switch tp := p.(type) { 1963 case *ScopeParamArrayOfStringsValue_FieldTerminalPath: 1964 switch tp.selector { 1965 case ScopeParamArrayOfStringsValue_FieldPathSelectorValues: 1966 result.Values = source.Values 1967 } 1968 } 1969 } 1970 return result 1971 } 1972 1973 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1974 return fieldMask.Project(source.(*ScopeParam_ArrayOfStringsValue)) 1975 } 1976 1977 func (fieldMask *ScopeParam_ArrayOfStringsValue_FieldMask) PathsCount() int { 1978 if fieldMask == nil { 1979 return 0 1980 } 1981 return len(fieldMask.Paths) 1982 } 1983 1984 type ScopeParam_FromValue_FieldMask struct { 1985 Paths []ScopeParamFromValue_FieldPath 1986 } 1987 1988 func FullScopeParam_FromValue_FieldMask() *ScopeParam_FromValue_FieldMask { 1989 res := &ScopeParam_FromValue_FieldMask{} 1990 res.Paths = append(res.Paths, &ScopeParamFromValue_FieldTerminalPath{selector: ScopeParamFromValue_FieldPathSelectorSource}) 1991 res.Paths = append(res.Paths, &ScopeParamFromValue_FieldTerminalPath{selector: ScopeParamFromValue_FieldPathSelectorPath}) 1992 return res 1993 } 1994 1995 func (fieldMask *ScopeParam_FromValue_FieldMask) String() string { 1996 if fieldMask == nil { 1997 return "<nil>" 1998 } 1999 pathsStr := make([]string, 0, len(fieldMask.Paths)) 2000 for _, path := range fieldMask.Paths { 2001 pathsStr = append(pathsStr, path.String()) 2002 } 2003 return strings.Join(pathsStr, ", ") 2004 } 2005 2006 func (fieldMask *ScopeParam_FromValue_FieldMask) IsFull() bool { 2007 if fieldMask == nil { 2008 return false 2009 } 2010 presentSelectors := make([]bool, 2) 2011 for _, path := range fieldMask.Paths { 2012 if asFinal, ok := path.(*ScopeParamFromValue_FieldTerminalPath); ok { 2013 presentSelectors[int(asFinal.selector)] = true 2014 } 2015 } 2016 for _, flag := range presentSelectors { 2017 if !flag { 2018 return false 2019 } 2020 } 2021 return true 2022 } 2023 2024 func (fieldMask *ScopeParam_FromValue_FieldMask) ProtoReflect() preflect.Message { 2025 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 2026 return ParseScopeParamFromValue_FieldPath(raw) 2027 }) 2028 } 2029 2030 func (fieldMask *ScopeParam_FromValue_FieldMask) ProtoMessage() {} 2031 2032 func (fieldMask *ScopeParam_FromValue_FieldMask) Reset() { 2033 if fieldMask != nil { 2034 fieldMask.Paths = nil 2035 } 2036 } 2037 2038 func (fieldMask *ScopeParam_FromValue_FieldMask) Subtract(other *ScopeParam_FromValue_FieldMask) *ScopeParam_FromValue_FieldMask { 2039 result := &ScopeParam_FromValue_FieldMask{} 2040 removedSelectors := make([]bool, 2) 2041 2042 for _, path := range other.GetPaths() { 2043 switch tp := path.(type) { 2044 case *ScopeParamFromValue_FieldTerminalPath: 2045 removedSelectors[int(tp.selector)] = true 2046 } 2047 } 2048 for _, path := range fieldMask.GetPaths() { 2049 if !removedSelectors[int(path.Selector())] { 2050 result.Paths = append(result.Paths, path) 2051 } 2052 } 2053 2054 if len(result.Paths) == 0 { 2055 return nil 2056 } 2057 return result 2058 } 2059 2060 func (fieldMask *ScopeParam_FromValue_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 2061 return fieldMask.Subtract(other.(*ScopeParam_FromValue_FieldMask)) 2062 } 2063 2064 // FilterInputFields generates copy of field paths with output_only field paths removed 2065 func (fieldMask *ScopeParam_FromValue_FieldMask) FilterInputFields() *ScopeParam_FromValue_FieldMask { 2066 result := &ScopeParam_FromValue_FieldMask{} 2067 result.Paths = append(result.Paths, fieldMask.Paths...) 2068 return result 2069 } 2070 2071 // ToFieldMask is used for proto conversions 2072 func (fieldMask *ScopeParam_FromValue_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 2073 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2074 for _, path := range fieldMask.Paths { 2075 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 2076 } 2077 return protoFieldMask 2078 } 2079 2080 func (fieldMask *ScopeParam_FromValue_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 2081 if fieldMask == nil { 2082 return status.Error(codes.Internal, "target field mask is nil") 2083 } 2084 fieldMask.Paths = make([]ScopeParamFromValue_FieldPath, 0, len(protoFieldMask.Paths)) 2085 for _, strPath := range protoFieldMask.Paths { 2086 path, err := ParseScopeParamFromValue_FieldPath(strPath) 2087 if err != nil { 2088 return err 2089 } 2090 fieldMask.Paths = append(fieldMask.Paths, path) 2091 } 2092 return nil 2093 } 2094 2095 // implement methods required by customType 2096 func (fieldMask ScopeParam_FromValue_FieldMask) Marshal() ([]byte, error) { 2097 protoFieldMask := fieldMask.ToProtoFieldMask() 2098 return proto.Marshal(protoFieldMask) 2099 } 2100 2101 func (fieldMask *ScopeParam_FromValue_FieldMask) Unmarshal(data []byte) error { 2102 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2103 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 2104 return err 2105 } 2106 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 2107 return err 2108 } 2109 return nil 2110 } 2111 2112 func (fieldMask *ScopeParam_FromValue_FieldMask) Size() int { 2113 return proto.Size(fieldMask.ToProtoFieldMask()) 2114 } 2115 2116 func (fieldMask ScopeParam_FromValue_FieldMask) MarshalJSON() ([]byte, error) { 2117 return json.Marshal(fieldMask.ToProtoFieldMask()) 2118 } 2119 2120 func (fieldMask *ScopeParam_FromValue_FieldMask) UnmarshalJSON(data []byte) error { 2121 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2122 if err := json.Unmarshal(data, protoFieldMask); err != nil { 2123 return err 2124 } 2125 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 2126 return err 2127 } 2128 return nil 2129 } 2130 2131 func (fieldMask *ScopeParam_FromValue_FieldMask) AppendPath(path ScopeParamFromValue_FieldPath) { 2132 fieldMask.Paths = append(fieldMask.Paths, path) 2133 } 2134 2135 func (fieldMask *ScopeParam_FromValue_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 2136 fieldMask.Paths = append(fieldMask.Paths, path.(ScopeParamFromValue_FieldPath)) 2137 } 2138 2139 func (fieldMask *ScopeParam_FromValue_FieldMask) GetPaths() []ScopeParamFromValue_FieldPath { 2140 if fieldMask == nil { 2141 return nil 2142 } 2143 return fieldMask.Paths 2144 } 2145 2146 func (fieldMask *ScopeParam_FromValue_FieldMask) GetRawPaths() []gotenobject.FieldPath { 2147 if fieldMask == nil { 2148 return nil 2149 } 2150 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 2151 for _, path := range fieldMask.Paths { 2152 rawPaths = append(rawPaths, path) 2153 } 2154 return rawPaths 2155 } 2156 2157 func (fieldMask *ScopeParam_FromValue_FieldMask) SetFromCliFlag(raw string) error { 2158 path, err := ParseScopeParamFromValue_FieldPath(raw) 2159 if err != nil { 2160 return err 2161 } 2162 fieldMask.Paths = append(fieldMask.Paths, path) 2163 return nil 2164 } 2165 2166 func (fieldMask *ScopeParam_FromValue_FieldMask) Set(target, source *ScopeParam_FromValue) { 2167 for _, path := range fieldMask.Paths { 2168 val, _ := path.GetSingle(source) 2169 // if val is nil, then field does not exist in source, skip 2170 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 2171 if val != nil { 2172 path.WithIValue(val).SetTo(&target) 2173 } 2174 } 2175 } 2176 2177 func (fieldMask *ScopeParam_FromValue_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 2178 fieldMask.Set(target.(*ScopeParam_FromValue), source.(*ScopeParam_FromValue)) 2179 } 2180 2181 func (fieldMask *ScopeParam_FromValue_FieldMask) Project(source *ScopeParam_FromValue) *ScopeParam_FromValue { 2182 if source == nil { 2183 return nil 2184 } 2185 if fieldMask == nil { 2186 return source 2187 } 2188 result := &ScopeParam_FromValue{} 2189 2190 for _, p := range fieldMask.Paths { 2191 switch tp := p.(type) { 2192 case *ScopeParamFromValue_FieldTerminalPath: 2193 switch tp.selector { 2194 case ScopeParamFromValue_FieldPathSelectorSource: 2195 result.Source = source.Source 2196 case ScopeParamFromValue_FieldPathSelectorPath: 2197 result.Path = source.Path 2198 } 2199 } 2200 } 2201 return result 2202 } 2203 2204 func (fieldMask *ScopeParam_FromValue_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 2205 return fieldMask.Project(source.(*ScopeParam_FromValue)) 2206 } 2207 2208 func (fieldMask *ScopeParam_FromValue_FieldMask) PathsCount() int { 2209 if fieldMask == nil { 2210 return 0 2211 } 2212 return len(fieldMask.Paths) 2213 }