github.com/cloudwan/edgelq-sdk@v1.15.4/audit/resources/v1alpha2/resource_change_log/resource_change_log.pb.fieldmask.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/audit/proto/v1alpha2/resource_change_log.proto 3 // DO NOT EDIT!!! 4 5 package resource_change_log 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 common "github.com/cloudwan/edgelq-sdk/audit/resources/v1alpha2/common" 23 iam_organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/organization" 24 iam_project "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/project" 25 anypb "google.golang.org/protobuf/types/known/anypb" 26 fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 27 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 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 _ = &common.Authentication{} 47 _ = &iam_organization.Organization{} 48 _ = &iam_project.Project{} 49 _ = &anypb.Any{} 50 _ = &fieldmaskpb.FieldMask{} 51 _ = ×tamppb.Timestamp{} 52 ) 53 54 type ResourceChangeLog_FieldMask struct { 55 Paths []ResourceChangeLog_FieldPath 56 } 57 58 func FullResourceChangeLog_FieldMask() *ResourceChangeLog_FieldMask { 59 res := &ResourceChangeLog_FieldMask{} 60 res.Paths = append(res.Paths, &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorName}) 61 res.Paths = append(res.Paths, &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorScope}) 62 res.Paths = append(res.Paths, &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorRequestId}) 63 res.Paths = append(res.Paths, &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorTimestamp}) 64 res.Paths = append(res.Paths, &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorAuthentication}) 65 res.Paths = append(res.Paths, &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorService}) 66 res.Paths = append(res.Paths, &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorResource}) 67 res.Paths = append(res.Paths, &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorTransaction}) 68 return res 69 } 70 71 func (fieldMask *ResourceChangeLog_FieldMask) String() string { 72 if fieldMask == nil { 73 return "<nil>" 74 } 75 pathsStr := make([]string, 0, len(fieldMask.Paths)) 76 for _, path := range fieldMask.Paths { 77 pathsStr = append(pathsStr, path.String()) 78 } 79 return strings.Join(pathsStr, ", ") 80 } 81 82 func (fieldMask *ResourceChangeLog_FieldMask) IsFull() bool { 83 if fieldMask == nil { 84 return false 85 } 86 presentSelectors := make([]bool, 8) 87 for _, path := range fieldMask.Paths { 88 if asFinal, ok := path.(*ResourceChangeLog_FieldTerminalPath); ok { 89 presentSelectors[int(asFinal.selector)] = true 90 } 91 } 92 for _, flag := range presentSelectors { 93 if !flag { 94 return false 95 } 96 } 97 return true 98 } 99 100 func (fieldMask *ResourceChangeLog_FieldMask) ProtoReflect() preflect.Message { 101 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 102 return ParseResourceChangeLog_FieldPath(raw) 103 }) 104 } 105 106 func (fieldMask *ResourceChangeLog_FieldMask) ProtoMessage() {} 107 108 func (fieldMask *ResourceChangeLog_FieldMask) Reset() { 109 if fieldMask != nil { 110 fieldMask.Paths = nil 111 } 112 } 113 114 func (fieldMask *ResourceChangeLog_FieldMask) Subtract(other *ResourceChangeLog_FieldMask) *ResourceChangeLog_FieldMask { 115 result := &ResourceChangeLog_FieldMask{} 116 removedSelectors := make([]bool, 8) 117 otherSubMasks := map[ResourceChangeLog_FieldPathSelector]gotenobject.FieldMask{ 118 ResourceChangeLog_FieldPathSelectorAuthentication: &common.Authentication_FieldMask{}, 119 ResourceChangeLog_FieldPathSelectorService: &common.ServiceData_FieldMask{}, 120 ResourceChangeLog_FieldPathSelectorResource: &ResourceChangeLog_ResourceChange_FieldMask{}, 121 ResourceChangeLog_FieldPathSelectorTransaction: &ResourceChangeLog_TransactionInfo_FieldMask{}, 122 } 123 mySubMasks := map[ResourceChangeLog_FieldPathSelector]gotenobject.FieldMask{ 124 ResourceChangeLog_FieldPathSelectorAuthentication: &common.Authentication_FieldMask{}, 125 ResourceChangeLog_FieldPathSelectorService: &common.ServiceData_FieldMask{}, 126 ResourceChangeLog_FieldPathSelectorResource: &ResourceChangeLog_ResourceChange_FieldMask{}, 127 ResourceChangeLog_FieldPathSelectorTransaction: &ResourceChangeLog_TransactionInfo_FieldMask{}, 128 } 129 130 for _, path := range other.GetPaths() { 131 switch tp := path.(type) { 132 case *ResourceChangeLog_FieldTerminalPath: 133 removedSelectors[int(tp.selector)] = true 134 case *ResourceChangeLog_FieldSubPath: 135 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 136 } 137 } 138 for _, path := range fieldMask.GetPaths() { 139 if !removedSelectors[int(path.Selector())] { 140 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 141 if tp, ok := path.(*ResourceChangeLog_FieldTerminalPath); ok { 142 switch tp.selector { 143 case ResourceChangeLog_FieldPathSelectorAuthentication: 144 mySubMasks[ResourceChangeLog_FieldPathSelectorAuthentication] = common.FullAuthentication_FieldMask() 145 case ResourceChangeLog_FieldPathSelectorService: 146 mySubMasks[ResourceChangeLog_FieldPathSelectorService] = common.FullServiceData_FieldMask() 147 case ResourceChangeLog_FieldPathSelectorResource: 148 mySubMasks[ResourceChangeLog_FieldPathSelectorResource] = FullResourceChangeLog_ResourceChange_FieldMask() 149 case ResourceChangeLog_FieldPathSelectorTransaction: 150 mySubMasks[ResourceChangeLog_FieldPathSelectorTransaction] = FullResourceChangeLog_TransactionInfo_FieldMask() 151 } 152 } else if tp, ok := path.(*ResourceChangeLog_FieldSubPath); ok { 153 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 154 } 155 } else { 156 result.Paths = append(result.Paths, path) 157 } 158 } 159 } 160 for selector, mySubMask := range mySubMasks { 161 if mySubMask.PathsCount() > 0 { 162 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 163 result.Paths = append(result.Paths, &ResourceChangeLog_FieldSubPath{selector: selector, subPath: allowedPath}) 164 } 165 } 166 } 167 168 if len(result.Paths) == 0 { 169 return nil 170 } 171 return result 172 } 173 174 func (fieldMask *ResourceChangeLog_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 175 return fieldMask.Subtract(other.(*ResourceChangeLog_FieldMask)) 176 } 177 178 // FilterInputFields generates copy of field paths with output_only field paths removed 179 func (fieldMask *ResourceChangeLog_FieldMask) FilterInputFields() *ResourceChangeLog_FieldMask { 180 result := &ResourceChangeLog_FieldMask{} 181 result.Paths = append(result.Paths, fieldMask.Paths...) 182 return result 183 } 184 185 // ToFieldMask is used for proto conversions 186 func (fieldMask *ResourceChangeLog_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 187 protoFieldMask := &googlefieldmaskpb.FieldMask{} 188 for _, path := range fieldMask.Paths { 189 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 190 } 191 return protoFieldMask 192 } 193 194 func (fieldMask *ResourceChangeLog_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 195 if fieldMask == nil { 196 return status.Error(codes.Internal, "target field mask is nil") 197 } 198 fieldMask.Paths = make([]ResourceChangeLog_FieldPath, 0, len(protoFieldMask.Paths)) 199 for _, strPath := range protoFieldMask.Paths { 200 path, err := ParseResourceChangeLog_FieldPath(strPath) 201 if err != nil { 202 return err 203 } 204 fieldMask.Paths = append(fieldMask.Paths, path) 205 } 206 return nil 207 } 208 209 // implement methods required by customType 210 func (fieldMask ResourceChangeLog_FieldMask) Marshal() ([]byte, error) { 211 protoFieldMask := fieldMask.ToProtoFieldMask() 212 return proto.Marshal(protoFieldMask) 213 } 214 215 func (fieldMask *ResourceChangeLog_FieldMask) Unmarshal(data []byte) error { 216 protoFieldMask := &googlefieldmaskpb.FieldMask{} 217 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 218 return err 219 } 220 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 221 return err 222 } 223 return nil 224 } 225 226 func (fieldMask *ResourceChangeLog_FieldMask) Size() int { 227 return proto.Size(fieldMask.ToProtoFieldMask()) 228 } 229 230 func (fieldMask ResourceChangeLog_FieldMask) MarshalJSON() ([]byte, error) { 231 return json.Marshal(fieldMask.ToProtoFieldMask()) 232 } 233 234 func (fieldMask *ResourceChangeLog_FieldMask) UnmarshalJSON(data []byte) error { 235 protoFieldMask := &googlefieldmaskpb.FieldMask{} 236 if err := json.Unmarshal(data, protoFieldMask); err != nil { 237 return err 238 } 239 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 240 return err 241 } 242 return nil 243 } 244 245 func (fieldMask *ResourceChangeLog_FieldMask) AppendPath(path ResourceChangeLog_FieldPath) { 246 fieldMask.Paths = append(fieldMask.Paths, path) 247 } 248 249 func (fieldMask *ResourceChangeLog_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 250 fieldMask.Paths = append(fieldMask.Paths, path.(ResourceChangeLog_FieldPath)) 251 } 252 253 func (fieldMask *ResourceChangeLog_FieldMask) GetPaths() []ResourceChangeLog_FieldPath { 254 if fieldMask == nil { 255 return nil 256 } 257 return fieldMask.Paths 258 } 259 260 func (fieldMask *ResourceChangeLog_FieldMask) GetRawPaths() []gotenobject.FieldPath { 261 if fieldMask == nil { 262 return nil 263 } 264 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 265 for _, path := range fieldMask.Paths { 266 rawPaths = append(rawPaths, path) 267 } 268 return rawPaths 269 } 270 271 func (fieldMask *ResourceChangeLog_FieldMask) SetFromCliFlag(raw string) error { 272 path, err := ParseResourceChangeLog_FieldPath(raw) 273 if err != nil { 274 return err 275 } 276 fieldMask.Paths = append(fieldMask.Paths, path) 277 return nil 278 } 279 280 func (fieldMask *ResourceChangeLog_FieldMask) Set(target, source *ResourceChangeLog) { 281 for _, path := range fieldMask.Paths { 282 val, _ := path.GetSingle(source) 283 // if val is nil, then field does not exist in source, skip 284 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 285 if val != nil { 286 path.WithIValue(val).SetTo(&target) 287 } 288 } 289 } 290 291 func (fieldMask *ResourceChangeLog_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 292 fieldMask.Set(target.(*ResourceChangeLog), source.(*ResourceChangeLog)) 293 } 294 295 func (fieldMask *ResourceChangeLog_FieldMask) Project(source *ResourceChangeLog) *ResourceChangeLog { 296 if source == nil { 297 return nil 298 } 299 if fieldMask == nil { 300 return source 301 } 302 result := &ResourceChangeLog{} 303 authenticationMask := &common.Authentication_FieldMask{} 304 wholeAuthenticationAccepted := false 305 serviceMask := &common.ServiceData_FieldMask{} 306 wholeServiceAccepted := false 307 resourceMask := &ResourceChangeLog_ResourceChange_FieldMask{} 308 wholeResourceAccepted := false 309 transactionMask := &ResourceChangeLog_TransactionInfo_FieldMask{} 310 wholeTransactionAccepted := false 311 312 for _, p := range fieldMask.Paths { 313 switch tp := p.(type) { 314 case *ResourceChangeLog_FieldTerminalPath: 315 switch tp.selector { 316 case ResourceChangeLog_FieldPathSelectorName: 317 result.Name = source.Name 318 case ResourceChangeLog_FieldPathSelectorScope: 319 result.Scope = source.Scope 320 case ResourceChangeLog_FieldPathSelectorRequestId: 321 result.RequestId = source.RequestId 322 case ResourceChangeLog_FieldPathSelectorTimestamp: 323 result.Timestamp = source.Timestamp 324 case ResourceChangeLog_FieldPathSelectorAuthentication: 325 result.Authentication = source.Authentication 326 wholeAuthenticationAccepted = true 327 case ResourceChangeLog_FieldPathSelectorService: 328 result.Service = source.Service 329 wholeServiceAccepted = true 330 case ResourceChangeLog_FieldPathSelectorResource: 331 result.Resource = source.Resource 332 wholeResourceAccepted = true 333 case ResourceChangeLog_FieldPathSelectorTransaction: 334 result.Transaction = source.Transaction 335 wholeTransactionAccepted = true 336 } 337 case *ResourceChangeLog_FieldSubPath: 338 switch tp.selector { 339 case ResourceChangeLog_FieldPathSelectorAuthentication: 340 authenticationMask.AppendPath(tp.subPath.(common.Authentication_FieldPath)) 341 case ResourceChangeLog_FieldPathSelectorService: 342 serviceMask.AppendPath(tp.subPath.(common.ServiceData_FieldPath)) 343 case ResourceChangeLog_FieldPathSelectorResource: 344 resourceMask.AppendPath(tp.subPath.(ResourceChangeLogResourceChange_FieldPath)) 345 case ResourceChangeLog_FieldPathSelectorTransaction: 346 transactionMask.AppendPath(tp.subPath.(ResourceChangeLogTransactionInfo_FieldPath)) 347 } 348 } 349 } 350 if wholeAuthenticationAccepted == false && len(authenticationMask.Paths) > 0 { 351 result.Authentication = authenticationMask.Project(source.GetAuthentication()) 352 } 353 if wholeServiceAccepted == false && len(serviceMask.Paths) > 0 { 354 result.Service = serviceMask.Project(source.GetService()) 355 } 356 if wholeResourceAccepted == false && len(resourceMask.Paths) > 0 { 357 result.Resource = resourceMask.Project(source.GetResource()) 358 } 359 if wholeTransactionAccepted == false && len(transactionMask.Paths) > 0 { 360 result.Transaction = transactionMask.Project(source.GetTransaction()) 361 } 362 return result 363 } 364 365 func (fieldMask *ResourceChangeLog_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 366 return fieldMask.Project(source.(*ResourceChangeLog)) 367 } 368 369 func (fieldMask *ResourceChangeLog_FieldMask) PathsCount() int { 370 if fieldMask == nil { 371 return 0 372 } 373 return len(fieldMask.Paths) 374 } 375 376 type ResourceChangeLog_ResourceChange_FieldMask struct { 377 Paths []ResourceChangeLogResourceChange_FieldPath 378 } 379 380 func FullResourceChangeLog_ResourceChange_FieldMask() *ResourceChangeLog_ResourceChange_FieldMask { 381 res := &ResourceChangeLog_ResourceChange_FieldMask{} 382 res.Paths = append(res.Paths, &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorName}) 383 res.Paths = append(res.Paths, &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorType}) 384 res.Paths = append(res.Paths, &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorAction}) 385 res.Paths = append(res.Paths, &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields}) 386 res.Paths = append(res.Paths, &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorPrevious}) 387 res.Paths = append(res.Paths, &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorCurrent}) 388 res.Paths = append(res.Paths, &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorLabels}) 389 res.Paths = append(res.Paths, &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorPre}) 390 res.Paths = append(res.Paths, &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorPost}) 391 return res 392 } 393 394 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) String() string { 395 if fieldMask == nil { 396 return "<nil>" 397 } 398 pathsStr := make([]string, 0, len(fieldMask.Paths)) 399 for _, path := range fieldMask.Paths { 400 pathsStr = append(pathsStr, path.String()) 401 } 402 return strings.Join(pathsStr, ", ") 403 } 404 405 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) IsFull() bool { 406 if fieldMask == nil { 407 return false 408 } 409 presentSelectors := make([]bool, 9) 410 for _, path := range fieldMask.Paths { 411 if asFinal, ok := path.(*ResourceChangeLogResourceChange_FieldTerminalPath); ok { 412 presentSelectors[int(asFinal.selector)] = true 413 } 414 } 415 for _, flag := range presentSelectors { 416 if !flag { 417 return false 418 } 419 } 420 return true 421 } 422 423 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) ProtoReflect() preflect.Message { 424 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 425 return ParseResourceChangeLogResourceChange_FieldPath(raw) 426 }) 427 } 428 429 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) ProtoMessage() {} 430 431 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) Reset() { 432 if fieldMask != nil { 433 fieldMask.Paths = nil 434 } 435 } 436 437 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) Subtract(other *ResourceChangeLog_ResourceChange_FieldMask) *ResourceChangeLog_ResourceChange_FieldMask { 438 result := &ResourceChangeLog_ResourceChange_FieldMask{} 439 removedSelectors := make([]bool, 9) 440 otherSubMasks := map[ResourceChangeLogResourceChange_FieldPathSelector]gotenobject.FieldMask{ 441 ResourceChangeLogResourceChange_FieldPathSelectorPre: &common.ObjectState_FieldMask{}, 442 ResourceChangeLogResourceChange_FieldPathSelectorPost: &common.ObjectState_FieldMask{}, 443 } 444 mySubMasks := map[ResourceChangeLogResourceChange_FieldPathSelector]gotenobject.FieldMask{ 445 ResourceChangeLogResourceChange_FieldPathSelectorPre: &common.ObjectState_FieldMask{}, 446 ResourceChangeLogResourceChange_FieldPathSelectorPost: &common.ObjectState_FieldMask{}, 447 } 448 449 for _, path := range other.GetPaths() { 450 switch tp := path.(type) { 451 case *ResourceChangeLogResourceChange_FieldTerminalPath: 452 removedSelectors[int(tp.selector)] = true 453 case *ResourceChangeLogResourceChange_FieldSubPath: 454 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 455 } 456 } 457 for _, path := range fieldMask.GetPaths() { 458 if !removedSelectors[int(path.Selector())] { 459 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 460 if tp, ok := path.(*ResourceChangeLogResourceChange_FieldTerminalPath); ok { 461 switch tp.selector { 462 case ResourceChangeLogResourceChange_FieldPathSelectorPre: 463 mySubMasks[ResourceChangeLogResourceChange_FieldPathSelectorPre] = common.FullObjectState_FieldMask() 464 case ResourceChangeLogResourceChange_FieldPathSelectorPost: 465 mySubMasks[ResourceChangeLogResourceChange_FieldPathSelectorPost] = common.FullObjectState_FieldMask() 466 } 467 } else if tp, ok := path.(*ResourceChangeLogResourceChange_FieldSubPath); ok { 468 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 469 } 470 } else { 471 result.Paths = append(result.Paths, path) 472 } 473 } 474 } 475 for selector, mySubMask := range mySubMasks { 476 if mySubMask.PathsCount() > 0 { 477 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 478 result.Paths = append(result.Paths, &ResourceChangeLogResourceChange_FieldSubPath{selector: selector, subPath: allowedPath}) 479 } 480 } 481 } 482 483 if len(result.Paths) == 0 { 484 return nil 485 } 486 return result 487 } 488 489 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 490 return fieldMask.Subtract(other.(*ResourceChangeLog_ResourceChange_FieldMask)) 491 } 492 493 // FilterInputFields generates copy of field paths with output_only field paths removed 494 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) FilterInputFields() *ResourceChangeLog_ResourceChange_FieldMask { 495 result := &ResourceChangeLog_ResourceChange_FieldMask{} 496 result.Paths = append(result.Paths, fieldMask.Paths...) 497 return result 498 } 499 500 // ToFieldMask is used for proto conversions 501 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 502 protoFieldMask := &googlefieldmaskpb.FieldMask{} 503 for _, path := range fieldMask.Paths { 504 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 505 } 506 return protoFieldMask 507 } 508 509 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 510 if fieldMask == nil { 511 return status.Error(codes.Internal, "target field mask is nil") 512 } 513 fieldMask.Paths = make([]ResourceChangeLogResourceChange_FieldPath, 0, len(protoFieldMask.Paths)) 514 for _, strPath := range protoFieldMask.Paths { 515 path, err := ParseResourceChangeLogResourceChange_FieldPath(strPath) 516 if err != nil { 517 return err 518 } 519 fieldMask.Paths = append(fieldMask.Paths, path) 520 } 521 return nil 522 } 523 524 // implement methods required by customType 525 func (fieldMask ResourceChangeLog_ResourceChange_FieldMask) Marshal() ([]byte, error) { 526 protoFieldMask := fieldMask.ToProtoFieldMask() 527 return proto.Marshal(protoFieldMask) 528 } 529 530 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) Unmarshal(data []byte) error { 531 protoFieldMask := &googlefieldmaskpb.FieldMask{} 532 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 533 return err 534 } 535 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 536 return err 537 } 538 return nil 539 } 540 541 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) Size() int { 542 return proto.Size(fieldMask.ToProtoFieldMask()) 543 } 544 545 func (fieldMask ResourceChangeLog_ResourceChange_FieldMask) MarshalJSON() ([]byte, error) { 546 return json.Marshal(fieldMask.ToProtoFieldMask()) 547 } 548 549 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) UnmarshalJSON(data []byte) error { 550 protoFieldMask := &googlefieldmaskpb.FieldMask{} 551 if err := json.Unmarshal(data, protoFieldMask); err != nil { 552 return err 553 } 554 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 555 return err 556 } 557 return nil 558 } 559 560 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) AppendPath(path ResourceChangeLogResourceChange_FieldPath) { 561 fieldMask.Paths = append(fieldMask.Paths, path) 562 } 563 564 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 565 fieldMask.Paths = append(fieldMask.Paths, path.(ResourceChangeLogResourceChange_FieldPath)) 566 } 567 568 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) GetPaths() []ResourceChangeLogResourceChange_FieldPath { 569 if fieldMask == nil { 570 return nil 571 } 572 return fieldMask.Paths 573 } 574 575 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) GetRawPaths() []gotenobject.FieldPath { 576 if fieldMask == nil { 577 return nil 578 } 579 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 580 for _, path := range fieldMask.Paths { 581 rawPaths = append(rawPaths, path) 582 } 583 return rawPaths 584 } 585 586 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) SetFromCliFlag(raw string) error { 587 path, err := ParseResourceChangeLogResourceChange_FieldPath(raw) 588 if err != nil { 589 return err 590 } 591 fieldMask.Paths = append(fieldMask.Paths, path) 592 return nil 593 } 594 595 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) Set(target, source *ResourceChangeLog_ResourceChange) { 596 for _, path := range fieldMask.Paths { 597 val, _ := path.GetSingle(source) 598 // if val is nil, then field does not exist in source, skip 599 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 600 if val != nil { 601 path.WithIValue(val).SetTo(&target) 602 } 603 } 604 } 605 606 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 607 fieldMask.Set(target.(*ResourceChangeLog_ResourceChange), source.(*ResourceChangeLog_ResourceChange)) 608 } 609 610 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) Project(source *ResourceChangeLog_ResourceChange) *ResourceChangeLog_ResourceChange { 611 if source == nil { 612 return nil 613 } 614 if fieldMask == nil { 615 return source 616 } 617 result := &ResourceChangeLog_ResourceChange{} 618 preMask := &common.ObjectState_FieldMask{} 619 wholePreAccepted := false 620 postMask := &common.ObjectState_FieldMask{} 621 wholePostAccepted := false 622 var labelsMapKeys []string 623 wholeLabelsAccepted := false 624 625 for _, p := range fieldMask.Paths { 626 switch tp := p.(type) { 627 case *ResourceChangeLogResourceChange_FieldTerminalPath: 628 switch tp.selector { 629 case ResourceChangeLogResourceChange_FieldPathSelectorName: 630 result.Name = source.Name 631 case ResourceChangeLogResourceChange_FieldPathSelectorType: 632 result.Type = source.Type 633 case ResourceChangeLogResourceChange_FieldPathSelectorAction: 634 result.Action = source.Action 635 case ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields: 636 result.UpdatedFields = source.UpdatedFields 637 case ResourceChangeLogResourceChange_FieldPathSelectorPrevious: 638 result.Previous = source.Previous 639 case ResourceChangeLogResourceChange_FieldPathSelectorCurrent: 640 result.Current = source.Current 641 case ResourceChangeLogResourceChange_FieldPathSelectorLabels: 642 result.Labels = source.Labels 643 wholeLabelsAccepted = true 644 case ResourceChangeLogResourceChange_FieldPathSelectorPre: 645 result.Pre = source.Pre 646 wholePreAccepted = true 647 case ResourceChangeLogResourceChange_FieldPathSelectorPost: 648 result.Post = source.Post 649 wholePostAccepted = true 650 } 651 case *ResourceChangeLogResourceChange_FieldSubPath: 652 switch tp.selector { 653 case ResourceChangeLogResourceChange_FieldPathSelectorPre: 654 preMask.AppendPath(tp.subPath.(common.ObjectState_FieldPath)) 655 case ResourceChangeLogResourceChange_FieldPathSelectorPost: 656 postMask.AppendPath(tp.subPath.(common.ObjectState_FieldPath)) 657 } 658 case *ResourceChangeLogResourceChange_FieldPathMap: 659 switch tp.selector { 660 case ResourceChangeLogResourceChange_FieldPathSelectorLabels: 661 labelsMapKeys = append(labelsMapKeys, tp.key) 662 } 663 } 664 } 665 if wholeLabelsAccepted == false && len(labelsMapKeys) > 0 && source.GetLabels() != nil { 666 copiedMap := map[string]string{} 667 sourceMap := source.GetLabels() 668 for _, key := range labelsMapKeys { 669 copiedMap[key] = sourceMap[key] 670 } 671 result.Labels = copiedMap 672 } 673 if wholePreAccepted == false && len(preMask.Paths) > 0 { 674 result.Pre = preMask.Project(source.GetPre()) 675 } 676 if wholePostAccepted == false && len(postMask.Paths) > 0 { 677 result.Post = postMask.Project(source.GetPost()) 678 } 679 return result 680 } 681 682 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 683 return fieldMask.Project(source.(*ResourceChangeLog_ResourceChange)) 684 } 685 686 func (fieldMask *ResourceChangeLog_ResourceChange_FieldMask) PathsCount() int { 687 if fieldMask == nil { 688 return 0 689 } 690 return len(fieldMask.Paths) 691 } 692 693 type ResourceChangeLog_TransactionInfo_FieldMask struct { 694 Paths []ResourceChangeLogTransactionInfo_FieldPath 695 } 696 697 func FullResourceChangeLog_TransactionInfo_FieldMask() *ResourceChangeLog_TransactionInfo_FieldMask { 698 res := &ResourceChangeLog_TransactionInfo_FieldMask{} 699 res.Paths = append(res.Paths, &ResourceChangeLogTransactionInfo_FieldTerminalPath{selector: ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier}) 700 res.Paths = append(res.Paths, &ResourceChangeLogTransactionInfo_FieldTerminalPath{selector: ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter}) 701 res.Paths = append(res.Paths, &ResourceChangeLogTransactionInfo_FieldTerminalPath{selector: ResourceChangeLogTransactionInfo_FieldPathSelectorState}) 702 return res 703 } 704 705 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) String() string { 706 if fieldMask == nil { 707 return "<nil>" 708 } 709 pathsStr := make([]string, 0, len(fieldMask.Paths)) 710 for _, path := range fieldMask.Paths { 711 pathsStr = append(pathsStr, path.String()) 712 } 713 return strings.Join(pathsStr, ", ") 714 } 715 716 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) IsFull() bool { 717 if fieldMask == nil { 718 return false 719 } 720 presentSelectors := make([]bool, 3) 721 for _, path := range fieldMask.Paths { 722 if asFinal, ok := path.(*ResourceChangeLogTransactionInfo_FieldTerminalPath); ok { 723 presentSelectors[int(asFinal.selector)] = true 724 } 725 } 726 for _, flag := range presentSelectors { 727 if !flag { 728 return false 729 } 730 } 731 return true 732 } 733 734 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) ProtoReflect() preflect.Message { 735 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 736 return ParseResourceChangeLogTransactionInfo_FieldPath(raw) 737 }) 738 } 739 740 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) ProtoMessage() {} 741 742 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) Reset() { 743 if fieldMask != nil { 744 fieldMask.Paths = nil 745 } 746 } 747 748 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) Subtract(other *ResourceChangeLog_TransactionInfo_FieldMask) *ResourceChangeLog_TransactionInfo_FieldMask { 749 result := &ResourceChangeLog_TransactionInfo_FieldMask{} 750 removedSelectors := make([]bool, 3) 751 752 for _, path := range other.GetPaths() { 753 switch tp := path.(type) { 754 case *ResourceChangeLogTransactionInfo_FieldTerminalPath: 755 removedSelectors[int(tp.selector)] = true 756 } 757 } 758 for _, path := range fieldMask.GetPaths() { 759 if !removedSelectors[int(path.Selector())] { 760 result.Paths = append(result.Paths, path) 761 } 762 } 763 764 if len(result.Paths) == 0 { 765 return nil 766 } 767 return result 768 } 769 770 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 771 return fieldMask.Subtract(other.(*ResourceChangeLog_TransactionInfo_FieldMask)) 772 } 773 774 // FilterInputFields generates copy of field paths with output_only field paths removed 775 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) FilterInputFields() *ResourceChangeLog_TransactionInfo_FieldMask { 776 result := &ResourceChangeLog_TransactionInfo_FieldMask{} 777 result.Paths = append(result.Paths, fieldMask.Paths...) 778 return result 779 } 780 781 // ToFieldMask is used for proto conversions 782 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 783 protoFieldMask := &googlefieldmaskpb.FieldMask{} 784 for _, path := range fieldMask.Paths { 785 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 786 } 787 return protoFieldMask 788 } 789 790 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 791 if fieldMask == nil { 792 return status.Error(codes.Internal, "target field mask is nil") 793 } 794 fieldMask.Paths = make([]ResourceChangeLogTransactionInfo_FieldPath, 0, len(protoFieldMask.Paths)) 795 for _, strPath := range protoFieldMask.Paths { 796 path, err := ParseResourceChangeLogTransactionInfo_FieldPath(strPath) 797 if err != nil { 798 return err 799 } 800 fieldMask.Paths = append(fieldMask.Paths, path) 801 } 802 return nil 803 } 804 805 // implement methods required by customType 806 func (fieldMask ResourceChangeLog_TransactionInfo_FieldMask) Marshal() ([]byte, error) { 807 protoFieldMask := fieldMask.ToProtoFieldMask() 808 return proto.Marshal(protoFieldMask) 809 } 810 811 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) Unmarshal(data []byte) error { 812 protoFieldMask := &googlefieldmaskpb.FieldMask{} 813 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 814 return err 815 } 816 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 817 return err 818 } 819 return nil 820 } 821 822 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) Size() int { 823 return proto.Size(fieldMask.ToProtoFieldMask()) 824 } 825 826 func (fieldMask ResourceChangeLog_TransactionInfo_FieldMask) MarshalJSON() ([]byte, error) { 827 return json.Marshal(fieldMask.ToProtoFieldMask()) 828 } 829 830 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) UnmarshalJSON(data []byte) error { 831 protoFieldMask := &googlefieldmaskpb.FieldMask{} 832 if err := json.Unmarshal(data, protoFieldMask); err != nil { 833 return err 834 } 835 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 836 return err 837 } 838 return nil 839 } 840 841 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) AppendPath(path ResourceChangeLogTransactionInfo_FieldPath) { 842 fieldMask.Paths = append(fieldMask.Paths, path) 843 } 844 845 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 846 fieldMask.Paths = append(fieldMask.Paths, path.(ResourceChangeLogTransactionInfo_FieldPath)) 847 } 848 849 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) GetPaths() []ResourceChangeLogTransactionInfo_FieldPath { 850 if fieldMask == nil { 851 return nil 852 } 853 return fieldMask.Paths 854 } 855 856 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) GetRawPaths() []gotenobject.FieldPath { 857 if fieldMask == nil { 858 return nil 859 } 860 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 861 for _, path := range fieldMask.Paths { 862 rawPaths = append(rawPaths, path) 863 } 864 return rawPaths 865 } 866 867 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) SetFromCliFlag(raw string) error { 868 path, err := ParseResourceChangeLogTransactionInfo_FieldPath(raw) 869 if err != nil { 870 return err 871 } 872 fieldMask.Paths = append(fieldMask.Paths, path) 873 return nil 874 } 875 876 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) Set(target, source *ResourceChangeLog_TransactionInfo) { 877 for _, path := range fieldMask.Paths { 878 val, _ := path.GetSingle(source) 879 // if val is nil, then field does not exist in source, skip 880 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 881 if val != nil { 882 path.WithIValue(val).SetTo(&target) 883 } 884 } 885 } 886 887 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 888 fieldMask.Set(target.(*ResourceChangeLog_TransactionInfo), source.(*ResourceChangeLog_TransactionInfo)) 889 } 890 891 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) Project(source *ResourceChangeLog_TransactionInfo) *ResourceChangeLog_TransactionInfo { 892 if source == nil { 893 return nil 894 } 895 if fieldMask == nil { 896 return source 897 } 898 result := &ResourceChangeLog_TransactionInfo{} 899 900 for _, p := range fieldMask.Paths { 901 switch tp := p.(type) { 902 case *ResourceChangeLogTransactionInfo_FieldTerminalPath: 903 switch tp.selector { 904 case ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier: 905 result.Identifier = source.Identifier 906 case ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter: 907 result.TryCounter = source.TryCounter 908 case ResourceChangeLogTransactionInfo_FieldPathSelectorState: 909 result.State = source.State 910 } 911 } 912 } 913 return result 914 } 915 916 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 917 return fieldMask.Project(source.(*ResourceChangeLog_TransactionInfo)) 918 } 919 920 func (fieldMask *ResourceChangeLog_TransactionInfo_FieldMask) PathsCount() int { 921 if fieldMask == nil { 922 return 0 923 } 924 return len(fieldMask.Paths) 925 }