github.com/cloudwan/edgelq-sdk@v1.15.4/limits/resources/v1/accepted_plan/accepted_plan.pb.fieldmask.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/limits/proto/v1/accepted_plan.proto 3 // DO NOT EDIT!!! 4 5 package accepted_plan 6 7 import ( 8 "encoding/json" 9 "strings" 10 11 "google.golang.org/grpc/codes" 12 "google.golang.org/grpc/status" 13 "google.golang.org/protobuf/proto" 14 preflect "google.golang.org/protobuf/reflect/protoreflect" 15 googlefieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 16 17 gotenobject "github.com/cloudwan/goten-sdk/runtime/object" 18 ) 19 20 // proto imports 21 import ( 22 iam_organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1/organization" 23 iam_project "github.com/cloudwan/edgelq-sdk/iam/resources/v1/project" 24 common "github.com/cloudwan/edgelq-sdk/limits/resources/v1/common" 25 plan "github.com/cloudwan/edgelq-sdk/limits/resources/v1/plan" 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 _ = &iam_organization.Organization{} 47 _ = &iam_project.Project{} 48 _ = &common.RegionalPlanAssignment{} 49 _ = &plan.Plan{} 50 _ = &meta_service.Service{} 51 _ = &meta.Meta{} 52 ) 53 54 type AcceptedPlan_FieldMask struct { 55 Paths []AcceptedPlan_FieldPath 56 } 57 58 func FullAcceptedPlan_FieldMask() *AcceptedPlan_FieldMask { 59 res := &AcceptedPlan_FieldMask{} 60 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorName}) 61 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorMetadata}) 62 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorDefaultRegionalPlan}) 63 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorService}) 64 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorRegionalPlanOverrides}) 65 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorExtensions}) 66 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorAllowances}) 67 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorAppliedRegions}) 68 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorAppliedPlanSpecGeneration}) 69 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorAssignee}) 70 return res 71 } 72 73 func (fieldMask *AcceptedPlan_FieldMask) String() string { 74 if fieldMask == nil { 75 return "<nil>" 76 } 77 pathsStr := make([]string, 0, len(fieldMask.Paths)) 78 for _, path := range fieldMask.Paths { 79 pathsStr = append(pathsStr, path.String()) 80 } 81 return strings.Join(pathsStr, ", ") 82 } 83 84 func (fieldMask *AcceptedPlan_FieldMask) IsFull() bool { 85 if fieldMask == nil { 86 return false 87 } 88 presentSelectors := make([]bool, 10) 89 for _, path := range fieldMask.Paths { 90 if asFinal, ok := path.(*AcceptedPlan_FieldTerminalPath); ok { 91 presentSelectors[int(asFinal.selector)] = true 92 } 93 } 94 for _, flag := range presentSelectors { 95 if !flag { 96 return false 97 } 98 } 99 return true 100 } 101 102 func (fieldMask *AcceptedPlan_FieldMask) ProtoReflect() preflect.Message { 103 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 104 return ParseAcceptedPlan_FieldPath(raw) 105 }) 106 } 107 108 func (fieldMask *AcceptedPlan_FieldMask) ProtoMessage() {} 109 110 func (fieldMask *AcceptedPlan_FieldMask) Reset() { 111 if fieldMask != nil { 112 fieldMask.Paths = nil 113 } 114 } 115 116 func (fieldMask *AcceptedPlan_FieldMask) Subtract(other *AcceptedPlan_FieldMask) *AcceptedPlan_FieldMask { 117 result := &AcceptedPlan_FieldMask{} 118 removedSelectors := make([]bool, 10) 119 otherSubMasks := map[AcceptedPlan_FieldPathSelector]gotenobject.FieldMask{ 120 AcceptedPlan_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 121 AcceptedPlan_FieldPathSelectorRegionalPlanOverrides: &common.RegionalPlanAssignment_FieldMask{}, 122 AcceptedPlan_FieldPathSelectorExtensions: &common.Allowance_FieldMask{}, 123 AcceptedPlan_FieldPathSelectorAllowances: &common.Allowance_FieldMask{}, 124 AcceptedPlan_FieldPathSelectorAssignee: &AcceptedPlan_Assignee_FieldMask{}, 125 } 126 mySubMasks := map[AcceptedPlan_FieldPathSelector]gotenobject.FieldMask{ 127 AcceptedPlan_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 128 AcceptedPlan_FieldPathSelectorRegionalPlanOverrides: &common.RegionalPlanAssignment_FieldMask{}, 129 AcceptedPlan_FieldPathSelectorExtensions: &common.Allowance_FieldMask{}, 130 AcceptedPlan_FieldPathSelectorAllowances: &common.Allowance_FieldMask{}, 131 AcceptedPlan_FieldPathSelectorAssignee: &AcceptedPlan_Assignee_FieldMask{}, 132 } 133 134 for _, path := range other.GetPaths() { 135 switch tp := path.(type) { 136 case *AcceptedPlan_FieldTerminalPath: 137 removedSelectors[int(tp.selector)] = true 138 case *AcceptedPlan_FieldSubPath: 139 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 140 } 141 } 142 for _, path := range fieldMask.GetPaths() { 143 if !removedSelectors[int(path.Selector())] { 144 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 145 if tp, ok := path.(*AcceptedPlan_FieldTerminalPath); ok { 146 switch tp.selector { 147 case AcceptedPlan_FieldPathSelectorMetadata: 148 mySubMasks[AcceptedPlan_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask() 149 case AcceptedPlan_FieldPathSelectorRegionalPlanOverrides: 150 mySubMasks[AcceptedPlan_FieldPathSelectorRegionalPlanOverrides] = common.FullRegionalPlanAssignment_FieldMask() 151 case AcceptedPlan_FieldPathSelectorExtensions: 152 mySubMasks[AcceptedPlan_FieldPathSelectorExtensions] = common.FullAllowance_FieldMask() 153 case AcceptedPlan_FieldPathSelectorAllowances: 154 mySubMasks[AcceptedPlan_FieldPathSelectorAllowances] = common.FullAllowance_FieldMask() 155 case AcceptedPlan_FieldPathSelectorAssignee: 156 mySubMasks[AcceptedPlan_FieldPathSelectorAssignee] = FullAcceptedPlan_Assignee_FieldMask() 157 } 158 } else if tp, ok := path.(*AcceptedPlan_FieldSubPath); ok { 159 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 160 } 161 } else { 162 result.Paths = append(result.Paths, path) 163 } 164 } 165 } 166 for selector, mySubMask := range mySubMasks { 167 if mySubMask.PathsCount() > 0 { 168 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 169 result.Paths = append(result.Paths, &AcceptedPlan_FieldSubPath{selector: selector, subPath: allowedPath}) 170 } 171 } 172 } 173 174 if len(result.Paths) == 0 { 175 return nil 176 } 177 return result 178 } 179 180 func (fieldMask *AcceptedPlan_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 181 return fieldMask.Subtract(other.(*AcceptedPlan_FieldMask)) 182 } 183 184 // FilterInputFields generates copy of field paths with output_only field paths removed 185 func (fieldMask *AcceptedPlan_FieldMask) FilterInputFields() *AcceptedPlan_FieldMask { 186 result := &AcceptedPlan_FieldMask{} 187 for _, path := range fieldMask.Paths { 188 switch path.Selector() { 189 case AcceptedPlan_FieldPathSelectorService: 190 case AcceptedPlan_FieldPathSelectorAllowances: 191 case AcceptedPlan_FieldPathSelectorAppliedRegions: 192 case AcceptedPlan_FieldPathSelectorAppliedPlanSpecGeneration: 193 case AcceptedPlan_FieldPathSelectorMetadata: 194 if _, ok := path.(*AcceptedPlan_FieldTerminalPath); ok { 195 for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths { 196 result.Paths = append(result.Paths, &AcceptedPlan_FieldSubPath{selector: path.Selector(), subPath: subpath}) 197 } 198 } else if sub, ok := path.(*AcceptedPlan_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, &AcceptedPlan_FieldSubPath{selector: AcceptedPlan_FieldPathSelectorMetadata, subPath: allowedPath}) 204 } 205 } 206 case AcceptedPlan_FieldPathSelectorRegionalPlanOverrides: 207 if _, ok := path.(*AcceptedPlan_FieldTerminalPath); ok { 208 for _, subpath := range common.FullRegionalPlanAssignment_FieldMask().FilterInputFields().Paths { 209 result.Paths = append(result.Paths, &AcceptedPlan_FieldSubPath{selector: path.Selector(), subPath: subpath}) 210 } 211 } else if sub, ok := path.(*AcceptedPlan_FieldSubPath); ok { 212 selectedMask := &common.RegionalPlanAssignment_FieldMask{ 213 Paths: []common.RegionalPlanAssignment_FieldPath{sub.subPath.(common.RegionalPlanAssignment_FieldPath)}, 214 } 215 for _, allowedPath := range selectedMask.FilterInputFields().Paths { 216 result.Paths = append(result.Paths, &AcceptedPlan_FieldSubPath{selector: AcceptedPlan_FieldPathSelectorRegionalPlanOverrides, subPath: allowedPath}) 217 } 218 } 219 default: 220 result.Paths = append(result.Paths, path) 221 } 222 } 223 return result 224 } 225 226 // ToFieldMask is used for proto conversions 227 func (fieldMask *AcceptedPlan_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 228 protoFieldMask := &googlefieldmaskpb.FieldMask{} 229 for _, path := range fieldMask.Paths { 230 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 231 } 232 return protoFieldMask 233 } 234 235 func (fieldMask *AcceptedPlan_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 236 if fieldMask == nil { 237 return status.Error(codes.Internal, "target field mask is nil") 238 } 239 fieldMask.Paths = make([]AcceptedPlan_FieldPath, 0, len(protoFieldMask.Paths)) 240 for _, strPath := range protoFieldMask.Paths { 241 path, err := ParseAcceptedPlan_FieldPath(strPath) 242 if err != nil { 243 return err 244 } 245 fieldMask.Paths = append(fieldMask.Paths, path) 246 } 247 return nil 248 } 249 250 // implement methods required by customType 251 func (fieldMask AcceptedPlan_FieldMask) Marshal() ([]byte, error) { 252 protoFieldMask := fieldMask.ToProtoFieldMask() 253 return proto.Marshal(protoFieldMask) 254 } 255 256 func (fieldMask *AcceptedPlan_FieldMask) Unmarshal(data []byte) error { 257 protoFieldMask := &googlefieldmaskpb.FieldMask{} 258 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 259 return err 260 } 261 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 262 return err 263 } 264 return nil 265 } 266 267 func (fieldMask *AcceptedPlan_FieldMask) Size() int { 268 return proto.Size(fieldMask.ToProtoFieldMask()) 269 } 270 271 func (fieldMask AcceptedPlan_FieldMask) MarshalJSON() ([]byte, error) { 272 return json.Marshal(fieldMask.ToProtoFieldMask()) 273 } 274 275 func (fieldMask *AcceptedPlan_FieldMask) UnmarshalJSON(data []byte) error { 276 protoFieldMask := &googlefieldmaskpb.FieldMask{} 277 if err := json.Unmarshal(data, protoFieldMask); err != nil { 278 return err 279 } 280 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 281 return err 282 } 283 return nil 284 } 285 286 func (fieldMask *AcceptedPlan_FieldMask) AppendPath(path AcceptedPlan_FieldPath) { 287 fieldMask.Paths = append(fieldMask.Paths, path) 288 } 289 290 func (fieldMask *AcceptedPlan_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 291 fieldMask.Paths = append(fieldMask.Paths, path.(AcceptedPlan_FieldPath)) 292 } 293 294 func (fieldMask *AcceptedPlan_FieldMask) GetPaths() []AcceptedPlan_FieldPath { 295 if fieldMask == nil { 296 return nil 297 } 298 return fieldMask.Paths 299 } 300 301 func (fieldMask *AcceptedPlan_FieldMask) GetRawPaths() []gotenobject.FieldPath { 302 if fieldMask == nil { 303 return nil 304 } 305 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 306 for _, path := range fieldMask.Paths { 307 rawPaths = append(rawPaths, path) 308 } 309 return rawPaths 310 } 311 312 func (fieldMask *AcceptedPlan_FieldMask) SetFromCliFlag(raw string) error { 313 path, err := ParseAcceptedPlan_FieldPath(raw) 314 if err != nil { 315 return err 316 } 317 fieldMask.Paths = append(fieldMask.Paths, path) 318 return nil 319 } 320 321 func (fieldMask *AcceptedPlan_FieldMask) Set(target, source *AcceptedPlan) { 322 for _, path := range fieldMask.Paths { 323 val, _ := path.GetSingle(source) 324 // if val is nil, then field does not exist in source, skip 325 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 326 if val != nil { 327 path.WithIValue(val).SetTo(&target) 328 } 329 } 330 } 331 332 func (fieldMask *AcceptedPlan_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 333 fieldMask.Set(target.(*AcceptedPlan), source.(*AcceptedPlan)) 334 } 335 336 func (fieldMask *AcceptedPlan_FieldMask) Project(source *AcceptedPlan) *AcceptedPlan { 337 if source == nil { 338 return nil 339 } 340 if fieldMask == nil { 341 return source 342 } 343 result := &AcceptedPlan{} 344 metadataMask := &meta.Meta_FieldMask{} 345 wholeMetadataAccepted := false 346 regionalPlanOverridesMask := &common.RegionalPlanAssignment_FieldMask{} 347 wholeRegionalPlanOverridesAccepted := false 348 extensionsMask := &common.Allowance_FieldMask{} 349 wholeExtensionsAccepted := false 350 allowancesMask := &common.Allowance_FieldMask{} 351 wholeAllowancesAccepted := false 352 assigneeMask := &AcceptedPlan_Assignee_FieldMask{} 353 wholeAssigneeAccepted := false 354 355 for _, p := range fieldMask.Paths { 356 switch tp := p.(type) { 357 case *AcceptedPlan_FieldTerminalPath: 358 switch tp.selector { 359 case AcceptedPlan_FieldPathSelectorName: 360 result.Name = source.Name 361 case AcceptedPlan_FieldPathSelectorMetadata: 362 result.Metadata = source.Metadata 363 wholeMetadataAccepted = true 364 case AcceptedPlan_FieldPathSelectorDefaultRegionalPlan: 365 result.DefaultRegionalPlan = source.DefaultRegionalPlan 366 case AcceptedPlan_FieldPathSelectorService: 367 result.Service = source.Service 368 case AcceptedPlan_FieldPathSelectorRegionalPlanOverrides: 369 result.RegionalPlanOverrides = source.RegionalPlanOverrides 370 wholeRegionalPlanOverridesAccepted = true 371 case AcceptedPlan_FieldPathSelectorExtensions: 372 result.Extensions = source.Extensions 373 wholeExtensionsAccepted = true 374 case AcceptedPlan_FieldPathSelectorAllowances: 375 result.Allowances = source.Allowances 376 wholeAllowancesAccepted = true 377 case AcceptedPlan_FieldPathSelectorAppliedRegions: 378 result.AppliedRegions = source.AppliedRegions 379 case AcceptedPlan_FieldPathSelectorAppliedPlanSpecGeneration: 380 result.AppliedPlanSpecGeneration = source.AppliedPlanSpecGeneration 381 case AcceptedPlan_FieldPathSelectorAssignee: 382 result.Assignee = source.Assignee 383 wholeAssigneeAccepted = true 384 } 385 case *AcceptedPlan_FieldSubPath: 386 switch tp.selector { 387 case AcceptedPlan_FieldPathSelectorMetadata: 388 metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath)) 389 case AcceptedPlan_FieldPathSelectorRegionalPlanOverrides: 390 regionalPlanOverridesMask.AppendPath(tp.subPath.(common.RegionalPlanAssignment_FieldPath)) 391 case AcceptedPlan_FieldPathSelectorExtensions: 392 extensionsMask.AppendPath(tp.subPath.(common.Allowance_FieldPath)) 393 case AcceptedPlan_FieldPathSelectorAllowances: 394 allowancesMask.AppendPath(tp.subPath.(common.Allowance_FieldPath)) 395 case AcceptedPlan_FieldPathSelectorAssignee: 396 assigneeMask.AppendPath(tp.subPath.(AcceptedPlanAssignee_FieldPath)) 397 } 398 } 399 } 400 if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 { 401 result.Metadata = metadataMask.Project(source.GetMetadata()) 402 } 403 if wholeRegionalPlanOverridesAccepted == false && len(regionalPlanOverridesMask.Paths) > 0 { 404 for _, sourceItem := range source.GetRegionalPlanOverrides() { 405 result.RegionalPlanOverrides = append(result.RegionalPlanOverrides, regionalPlanOverridesMask.Project(sourceItem)) 406 } 407 } 408 if wholeExtensionsAccepted == false && len(extensionsMask.Paths) > 0 { 409 for _, sourceItem := range source.GetExtensions() { 410 result.Extensions = append(result.Extensions, extensionsMask.Project(sourceItem)) 411 } 412 } 413 if wholeAllowancesAccepted == false && len(allowancesMask.Paths) > 0 { 414 for _, sourceItem := range source.GetAllowances() { 415 result.Allowances = append(result.Allowances, allowancesMask.Project(sourceItem)) 416 } 417 } 418 if wholeAssigneeAccepted == false && len(assigneeMask.Paths) > 0 { 419 result.Assignee = assigneeMask.Project(source.GetAssignee()) 420 } 421 return result 422 } 423 424 func (fieldMask *AcceptedPlan_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 425 return fieldMask.Project(source.(*AcceptedPlan)) 426 } 427 428 func (fieldMask *AcceptedPlan_FieldMask) PathsCount() int { 429 if fieldMask == nil { 430 return 0 431 } 432 return len(fieldMask.Paths) 433 } 434 435 type AcceptedPlan_Assignee_FieldMask struct { 436 Paths []AcceptedPlanAssignee_FieldPath 437 } 438 439 func FullAcceptedPlan_Assignee_FieldMask() *AcceptedPlan_Assignee_FieldMask { 440 res := &AcceptedPlan_Assignee_FieldMask{} 441 res.Paths = append(res.Paths, &AcceptedPlanAssignee_FieldTerminalPath{selector: AcceptedPlanAssignee_FieldPathSelectorProjectAssignee}) 442 res.Paths = append(res.Paths, &AcceptedPlanAssignee_FieldTerminalPath{selector: AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee}) 443 res.Paths = append(res.Paths, &AcceptedPlanAssignee_FieldTerminalPath{selector: AcceptedPlanAssignee_FieldPathSelectorServiceAssignee}) 444 return res 445 } 446 447 func (fieldMask *AcceptedPlan_Assignee_FieldMask) String() string { 448 if fieldMask == nil { 449 return "<nil>" 450 } 451 pathsStr := make([]string, 0, len(fieldMask.Paths)) 452 for _, path := range fieldMask.Paths { 453 pathsStr = append(pathsStr, path.String()) 454 } 455 return strings.Join(pathsStr, ", ") 456 } 457 458 func (fieldMask *AcceptedPlan_Assignee_FieldMask) IsFull() bool { 459 if fieldMask == nil { 460 return false 461 } 462 presentSelectors := make([]bool, 3) 463 for _, path := range fieldMask.Paths { 464 if asFinal, ok := path.(*AcceptedPlanAssignee_FieldTerminalPath); ok { 465 presentSelectors[int(asFinal.selector)] = true 466 } 467 } 468 for _, flag := range presentSelectors { 469 if !flag { 470 return false 471 } 472 } 473 return true 474 } 475 476 func (fieldMask *AcceptedPlan_Assignee_FieldMask) ProtoReflect() preflect.Message { 477 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 478 return ParseAcceptedPlanAssignee_FieldPath(raw) 479 }) 480 } 481 482 func (fieldMask *AcceptedPlan_Assignee_FieldMask) ProtoMessage() {} 483 484 func (fieldMask *AcceptedPlan_Assignee_FieldMask) Reset() { 485 if fieldMask != nil { 486 fieldMask.Paths = nil 487 } 488 } 489 490 func (fieldMask *AcceptedPlan_Assignee_FieldMask) Subtract(other *AcceptedPlan_Assignee_FieldMask) *AcceptedPlan_Assignee_FieldMask { 491 result := &AcceptedPlan_Assignee_FieldMask{} 492 removedSelectors := make([]bool, 3) 493 494 for _, path := range other.GetPaths() { 495 switch tp := path.(type) { 496 case *AcceptedPlanAssignee_FieldTerminalPath: 497 removedSelectors[int(tp.selector)] = true 498 } 499 } 500 for _, path := range fieldMask.GetPaths() { 501 if !removedSelectors[int(path.Selector())] { 502 result.Paths = append(result.Paths, path) 503 } 504 } 505 506 if len(result.Paths) == 0 { 507 return nil 508 } 509 return result 510 } 511 512 func (fieldMask *AcceptedPlan_Assignee_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 513 return fieldMask.Subtract(other.(*AcceptedPlan_Assignee_FieldMask)) 514 } 515 516 // FilterInputFields generates copy of field paths with output_only field paths removed 517 func (fieldMask *AcceptedPlan_Assignee_FieldMask) FilterInputFields() *AcceptedPlan_Assignee_FieldMask { 518 result := &AcceptedPlan_Assignee_FieldMask{} 519 result.Paths = append(result.Paths, fieldMask.Paths...) 520 return result 521 } 522 523 // ToFieldMask is used for proto conversions 524 func (fieldMask *AcceptedPlan_Assignee_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 525 protoFieldMask := &googlefieldmaskpb.FieldMask{} 526 for _, path := range fieldMask.Paths { 527 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 528 } 529 return protoFieldMask 530 } 531 532 func (fieldMask *AcceptedPlan_Assignee_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 533 if fieldMask == nil { 534 return status.Error(codes.Internal, "target field mask is nil") 535 } 536 fieldMask.Paths = make([]AcceptedPlanAssignee_FieldPath, 0, len(protoFieldMask.Paths)) 537 for _, strPath := range protoFieldMask.Paths { 538 path, err := ParseAcceptedPlanAssignee_FieldPath(strPath) 539 if err != nil { 540 return err 541 } 542 fieldMask.Paths = append(fieldMask.Paths, path) 543 } 544 return nil 545 } 546 547 // implement methods required by customType 548 func (fieldMask AcceptedPlan_Assignee_FieldMask) Marshal() ([]byte, error) { 549 protoFieldMask := fieldMask.ToProtoFieldMask() 550 return proto.Marshal(protoFieldMask) 551 } 552 553 func (fieldMask *AcceptedPlan_Assignee_FieldMask) Unmarshal(data []byte) error { 554 protoFieldMask := &googlefieldmaskpb.FieldMask{} 555 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 556 return err 557 } 558 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 559 return err 560 } 561 return nil 562 } 563 564 func (fieldMask *AcceptedPlan_Assignee_FieldMask) Size() int { 565 return proto.Size(fieldMask.ToProtoFieldMask()) 566 } 567 568 func (fieldMask AcceptedPlan_Assignee_FieldMask) MarshalJSON() ([]byte, error) { 569 return json.Marshal(fieldMask.ToProtoFieldMask()) 570 } 571 572 func (fieldMask *AcceptedPlan_Assignee_FieldMask) UnmarshalJSON(data []byte) error { 573 protoFieldMask := &googlefieldmaskpb.FieldMask{} 574 if err := json.Unmarshal(data, protoFieldMask); err != nil { 575 return err 576 } 577 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 578 return err 579 } 580 return nil 581 } 582 583 func (fieldMask *AcceptedPlan_Assignee_FieldMask) AppendPath(path AcceptedPlanAssignee_FieldPath) { 584 fieldMask.Paths = append(fieldMask.Paths, path) 585 } 586 587 func (fieldMask *AcceptedPlan_Assignee_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 588 fieldMask.Paths = append(fieldMask.Paths, path.(AcceptedPlanAssignee_FieldPath)) 589 } 590 591 func (fieldMask *AcceptedPlan_Assignee_FieldMask) GetPaths() []AcceptedPlanAssignee_FieldPath { 592 if fieldMask == nil { 593 return nil 594 } 595 return fieldMask.Paths 596 } 597 598 func (fieldMask *AcceptedPlan_Assignee_FieldMask) GetRawPaths() []gotenobject.FieldPath { 599 if fieldMask == nil { 600 return nil 601 } 602 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 603 for _, path := range fieldMask.Paths { 604 rawPaths = append(rawPaths, path) 605 } 606 return rawPaths 607 } 608 609 func (fieldMask *AcceptedPlan_Assignee_FieldMask) SetFromCliFlag(raw string) error { 610 path, err := ParseAcceptedPlanAssignee_FieldPath(raw) 611 if err != nil { 612 return err 613 } 614 fieldMask.Paths = append(fieldMask.Paths, path) 615 return nil 616 } 617 618 func (fieldMask *AcceptedPlan_Assignee_FieldMask) Set(target, source *AcceptedPlan_Assignee) { 619 for _, path := range fieldMask.Paths { 620 val, _ := path.GetSingle(source) 621 // if val is nil, then field does not exist in source, skip 622 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 623 if val != nil { 624 path.WithIValue(val).SetTo(&target) 625 } 626 } 627 } 628 629 func (fieldMask *AcceptedPlan_Assignee_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 630 fieldMask.Set(target.(*AcceptedPlan_Assignee), source.(*AcceptedPlan_Assignee)) 631 } 632 633 func (fieldMask *AcceptedPlan_Assignee_FieldMask) Project(source *AcceptedPlan_Assignee) *AcceptedPlan_Assignee { 634 if source == nil { 635 return nil 636 } 637 if fieldMask == nil { 638 return source 639 } 640 result := &AcceptedPlan_Assignee{} 641 642 for _, p := range fieldMask.Paths { 643 switch tp := p.(type) { 644 case *AcceptedPlanAssignee_FieldTerminalPath: 645 switch tp.selector { 646 case AcceptedPlanAssignee_FieldPathSelectorProjectAssignee: 647 if source, ok := source.Assignee.(*AcceptedPlan_Assignee_ProjectAssignee); ok { 648 result.Assignee = &AcceptedPlan_Assignee_ProjectAssignee{ 649 ProjectAssignee: source.ProjectAssignee, 650 } 651 } 652 case AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee: 653 if source, ok := source.Assignee.(*AcceptedPlan_Assignee_OrganizationAssignee); ok { 654 result.Assignee = &AcceptedPlan_Assignee_OrganizationAssignee{ 655 OrganizationAssignee: source.OrganizationAssignee, 656 } 657 } 658 case AcceptedPlanAssignee_FieldPathSelectorServiceAssignee: 659 if source, ok := source.Assignee.(*AcceptedPlan_Assignee_ServiceAssignee); ok { 660 result.Assignee = &AcceptedPlan_Assignee_ServiceAssignee{ 661 ServiceAssignee: source.ServiceAssignee, 662 } 663 } 664 } 665 } 666 } 667 return result 668 } 669 670 func (fieldMask *AcceptedPlan_Assignee_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 671 return fieldMask.Project(source.(*AcceptedPlan_Assignee)) 672 } 673 674 func (fieldMask *AcceptedPlan_Assignee_FieldMask) PathsCount() int { 675 if fieldMask == nil { 676 return 0 677 } 678 return len(fieldMask.Paths) 679 }