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