github.com/cloudwan/edgelq-sdk@v1.15.4/applications/resources/v1alpha2/pod/pod.pb.fieldmask.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/applications/proto/v1alpha2/pod.proto 3 // DO NOT EDIT!!! 4 5 package pod 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/applications/resources/v1alpha2/common" 23 distribution "github.com/cloudwan/edgelq-sdk/applications/resources/v1alpha2/distribution" 24 project "github.com/cloudwan/edgelq-sdk/applications/resources/v1alpha2/project" 25 meta "github.com/cloudwan/goten-sdk/types/meta" 26 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 27 ) 28 29 // ensure the imports are used 30 var ( 31 _ = new(json.Marshaler) 32 _ = strings.Builder{} 33 34 _ = codes.NotFound 35 _ = status.Status{} 36 _ = new(proto.Message) 37 _ = new(preflect.Message) 38 _ = googlefieldmaskpb.FieldMask{} 39 40 _ = new(gotenobject.FieldMask) 41 ) 42 43 // make sure we're using proto imports 44 var ( 45 _ = &common.PodSpec{} 46 _ = &distribution.Distribution{} 47 _ = &project.Project{} 48 _ = ×tamppb.Timestamp{} 49 _ = &meta.Meta{} 50 ) 51 52 type Pod_FieldMask struct { 53 Paths []Pod_FieldPath 54 } 55 56 func FullPod_FieldMask() *Pod_FieldMask { 57 res := &Pod_FieldMask{} 58 res.Paths = append(res.Paths, &Pod_FieldTerminalPath{selector: Pod_FieldPathSelectorName}) 59 res.Paths = append(res.Paths, &Pod_FieldTerminalPath{selector: Pod_FieldPathSelectorDisplayName}) 60 res.Paths = append(res.Paths, &Pod_FieldTerminalPath{selector: Pod_FieldPathSelectorMetadata}) 61 res.Paths = append(res.Paths, &Pod_FieldTerminalPath{selector: Pod_FieldPathSelectorSpec}) 62 res.Paths = append(res.Paths, &Pod_FieldTerminalPath{selector: Pod_FieldPathSelectorDistribution}) 63 res.Paths = append(res.Paths, &Pod_FieldTerminalPath{selector: Pod_FieldPathSelectorStatus}) 64 return res 65 } 66 67 func (fieldMask *Pod_FieldMask) String() string { 68 if fieldMask == nil { 69 return "<nil>" 70 } 71 pathsStr := make([]string, 0, len(fieldMask.Paths)) 72 for _, path := range fieldMask.Paths { 73 pathsStr = append(pathsStr, path.String()) 74 } 75 return strings.Join(pathsStr, ", ") 76 } 77 78 func (fieldMask *Pod_FieldMask) IsFull() bool { 79 if fieldMask == nil { 80 return false 81 } 82 presentSelectors := make([]bool, 6) 83 for _, path := range fieldMask.Paths { 84 if asFinal, ok := path.(*Pod_FieldTerminalPath); ok { 85 presentSelectors[int(asFinal.selector)] = true 86 } 87 } 88 for _, flag := range presentSelectors { 89 if !flag { 90 return false 91 } 92 } 93 return true 94 } 95 96 func (fieldMask *Pod_FieldMask) ProtoReflect() preflect.Message { 97 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 98 return ParsePod_FieldPath(raw) 99 }) 100 } 101 102 func (fieldMask *Pod_FieldMask) ProtoMessage() {} 103 104 func (fieldMask *Pod_FieldMask) Reset() { 105 if fieldMask != nil { 106 fieldMask.Paths = nil 107 } 108 } 109 110 func (fieldMask *Pod_FieldMask) Subtract(other *Pod_FieldMask) *Pod_FieldMask { 111 result := &Pod_FieldMask{} 112 removedSelectors := make([]bool, 6) 113 otherSubMasks := map[Pod_FieldPathSelector]gotenobject.FieldMask{ 114 Pod_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 115 Pod_FieldPathSelectorSpec: &common.PodSpec_FieldMask{}, 116 Pod_FieldPathSelectorStatus: &Pod_Status_FieldMask{}, 117 } 118 mySubMasks := map[Pod_FieldPathSelector]gotenobject.FieldMask{ 119 Pod_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 120 Pod_FieldPathSelectorSpec: &common.PodSpec_FieldMask{}, 121 Pod_FieldPathSelectorStatus: &Pod_Status_FieldMask{}, 122 } 123 124 for _, path := range other.GetPaths() { 125 switch tp := path.(type) { 126 case *Pod_FieldTerminalPath: 127 removedSelectors[int(tp.selector)] = true 128 case *Pod_FieldSubPath: 129 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 130 } 131 } 132 for _, path := range fieldMask.GetPaths() { 133 if !removedSelectors[int(path.Selector())] { 134 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 135 if tp, ok := path.(*Pod_FieldTerminalPath); ok { 136 switch tp.selector { 137 case Pod_FieldPathSelectorMetadata: 138 mySubMasks[Pod_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask() 139 case Pod_FieldPathSelectorSpec: 140 mySubMasks[Pod_FieldPathSelectorSpec] = common.FullPodSpec_FieldMask() 141 case Pod_FieldPathSelectorStatus: 142 mySubMasks[Pod_FieldPathSelectorStatus] = FullPod_Status_FieldMask() 143 } 144 } else if tp, ok := path.(*Pod_FieldSubPath); ok { 145 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 146 } 147 } else { 148 result.Paths = append(result.Paths, path) 149 } 150 } 151 } 152 for selector, mySubMask := range mySubMasks { 153 if mySubMask.PathsCount() > 0 { 154 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 155 result.Paths = append(result.Paths, &Pod_FieldSubPath{selector: selector, subPath: allowedPath}) 156 } 157 } 158 } 159 160 if len(result.Paths) == 0 { 161 return nil 162 } 163 return result 164 } 165 166 func (fieldMask *Pod_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 167 return fieldMask.Subtract(other.(*Pod_FieldMask)) 168 } 169 170 // FilterInputFields generates copy of field paths with output_only field paths removed 171 func (fieldMask *Pod_FieldMask) FilterInputFields() *Pod_FieldMask { 172 result := &Pod_FieldMask{} 173 for _, path := range fieldMask.Paths { 174 switch path.Selector() { 175 case Pod_FieldPathSelectorMetadata: 176 if _, ok := path.(*Pod_FieldTerminalPath); ok { 177 for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths { 178 result.Paths = append(result.Paths, &Pod_FieldSubPath{selector: path.Selector(), subPath: subpath}) 179 } 180 } else if sub, ok := path.(*Pod_FieldSubPath); ok { 181 selectedMask := &meta.Meta_FieldMask{ 182 Paths: []meta.Meta_FieldPath{sub.subPath.(meta.Meta_FieldPath)}, 183 } 184 for _, allowedPath := range selectedMask.FilterInputFields().Paths { 185 result.Paths = append(result.Paths, &Pod_FieldSubPath{selector: Pod_FieldPathSelectorMetadata, subPath: allowedPath}) 186 } 187 } 188 default: 189 result.Paths = append(result.Paths, path) 190 } 191 } 192 return result 193 } 194 195 // ToFieldMask is used for proto conversions 196 func (fieldMask *Pod_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 197 protoFieldMask := &googlefieldmaskpb.FieldMask{} 198 for _, path := range fieldMask.Paths { 199 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 200 } 201 return protoFieldMask 202 } 203 204 func (fieldMask *Pod_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 205 if fieldMask == nil { 206 return status.Error(codes.Internal, "target field mask is nil") 207 } 208 fieldMask.Paths = make([]Pod_FieldPath, 0, len(protoFieldMask.Paths)) 209 for _, strPath := range protoFieldMask.Paths { 210 path, err := ParsePod_FieldPath(strPath) 211 if err != nil { 212 return err 213 } 214 fieldMask.Paths = append(fieldMask.Paths, path) 215 } 216 return nil 217 } 218 219 // implement methods required by customType 220 func (fieldMask Pod_FieldMask) Marshal() ([]byte, error) { 221 protoFieldMask := fieldMask.ToProtoFieldMask() 222 return proto.Marshal(protoFieldMask) 223 } 224 225 func (fieldMask *Pod_FieldMask) Unmarshal(data []byte) error { 226 protoFieldMask := &googlefieldmaskpb.FieldMask{} 227 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 228 return err 229 } 230 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 231 return err 232 } 233 return nil 234 } 235 236 func (fieldMask *Pod_FieldMask) Size() int { 237 return proto.Size(fieldMask.ToProtoFieldMask()) 238 } 239 240 func (fieldMask Pod_FieldMask) MarshalJSON() ([]byte, error) { 241 return json.Marshal(fieldMask.ToProtoFieldMask()) 242 } 243 244 func (fieldMask *Pod_FieldMask) UnmarshalJSON(data []byte) error { 245 protoFieldMask := &googlefieldmaskpb.FieldMask{} 246 if err := json.Unmarshal(data, protoFieldMask); err != nil { 247 return err 248 } 249 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 250 return err 251 } 252 return nil 253 } 254 255 func (fieldMask *Pod_FieldMask) AppendPath(path Pod_FieldPath) { 256 fieldMask.Paths = append(fieldMask.Paths, path) 257 } 258 259 func (fieldMask *Pod_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 260 fieldMask.Paths = append(fieldMask.Paths, path.(Pod_FieldPath)) 261 } 262 263 func (fieldMask *Pod_FieldMask) GetPaths() []Pod_FieldPath { 264 if fieldMask == nil { 265 return nil 266 } 267 return fieldMask.Paths 268 } 269 270 func (fieldMask *Pod_FieldMask) GetRawPaths() []gotenobject.FieldPath { 271 if fieldMask == nil { 272 return nil 273 } 274 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 275 for _, path := range fieldMask.Paths { 276 rawPaths = append(rawPaths, path) 277 } 278 return rawPaths 279 } 280 281 func (fieldMask *Pod_FieldMask) SetFromCliFlag(raw string) error { 282 path, err := ParsePod_FieldPath(raw) 283 if err != nil { 284 return err 285 } 286 fieldMask.Paths = append(fieldMask.Paths, path) 287 return nil 288 } 289 290 func (fieldMask *Pod_FieldMask) Set(target, source *Pod) { 291 for _, path := range fieldMask.Paths { 292 val, _ := path.GetSingle(source) 293 // if val is nil, then field does not exist in source, skip 294 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 295 if val != nil { 296 path.WithIValue(val).SetTo(&target) 297 } 298 } 299 } 300 301 func (fieldMask *Pod_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 302 fieldMask.Set(target.(*Pod), source.(*Pod)) 303 } 304 305 func (fieldMask *Pod_FieldMask) Project(source *Pod) *Pod { 306 if source == nil { 307 return nil 308 } 309 if fieldMask == nil { 310 return source 311 } 312 result := &Pod{} 313 metadataMask := &meta.Meta_FieldMask{} 314 wholeMetadataAccepted := false 315 specMask := &common.PodSpec_FieldMask{} 316 wholeSpecAccepted := false 317 statusMask := &Pod_Status_FieldMask{} 318 wholeStatusAccepted := false 319 320 for _, p := range fieldMask.Paths { 321 switch tp := p.(type) { 322 case *Pod_FieldTerminalPath: 323 switch tp.selector { 324 case Pod_FieldPathSelectorName: 325 result.Name = source.Name 326 case Pod_FieldPathSelectorDisplayName: 327 result.DisplayName = source.DisplayName 328 case Pod_FieldPathSelectorMetadata: 329 result.Metadata = source.Metadata 330 wholeMetadataAccepted = true 331 case Pod_FieldPathSelectorSpec: 332 result.Spec = source.Spec 333 wholeSpecAccepted = true 334 case Pod_FieldPathSelectorDistribution: 335 result.Distribution = source.Distribution 336 case Pod_FieldPathSelectorStatus: 337 result.Status = source.Status 338 wholeStatusAccepted = true 339 } 340 case *Pod_FieldSubPath: 341 switch tp.selector { 342 case Pod_FieldPathSelectorMetadata: 343 metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath)) 344 case Pod_FieldPathSelectorSpec: 345 specMask.AppendPath(tp.subPath.(common.PodSpec_FieldPath)) 346 case Pod_FieldPathSelectorStatus: 347 statusMask.AppendPath(tp.subPath.(PodStatus_FieldPath)) 348 } 349 } 350 } 351 if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 { 352 result.Metadata = metadataMask.Project(source.GetMetadata()) 353 } 354 if wholeSpecAccepted == false && len(specMask.Paths) > 0 { 355 result.Spec = specMask.Project(source.GetSpec()) 356 } 357 if wholeStatusAccepted == false && len(statusMask.Paths) > 0 { 358 result.Status = statusMask.Project(source.GetStatus()) 359 } 360 return result 361 } 362 363 func (fieldMask *Pod_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 364 return fieldMask.Project(source.(*Pod)) 365 } 366 367 func (fieldMask *Pod_FieldMask) PathsCount() int { 368 if fieldMask == nil { 369 return 0 370 } 371 return len(fieldMask.Paths) 372 } 373 374 type Pod_Status_FieldMask struct { 375 Paths []PodStatus_FieldPath 376 } 377 378 func FullPod_Status_FieldMask() *Pod_Status_FieldMask { 379 res := &Pod_Status_FieldMask{} 380 res.Paths = append(res.Paths, &PodStatus_FieldTerminalPath{selector: PodStatus_FieldPathSelectorPhase}) 381 res.Paths = append(res.Paths, &PodStatus_FieldTerminalPath{selector: PodStatus_FieldPathSelectorContainerStatuses}) 382 res.Paths = append(res.Paths, &PodStatus_FieldTerminalPath{selector: PodStatus_FieldPathSelectorError}) 383 return res 384 } 385 386 func (fieldMask *Pod_Status_FieldMask) String() string { 387 if fieldMask == nil { 388 return "<nil>" 389 } 390 pathsStr := make([]string, 0, len(fieldMask.Paths)) 391 for _, path := range fieldMask.Paths { 392 pathsStr = append(pathsStr, path.String()) 393 } 394 return strings.Join(pathsStr, ", ") 395 } 396 397 func (fieldMask *Pod_Status_FieldMask) IsFull() bool { 398 if fieldMask == nil { 399 return false 400 } 401 presentSelectors := make([]bool, 3) 402 for _, path := range fieldMask.Paths { 403 if asFinal, ok := path.(*PodStatus_FieldTerminalPath); ok { 404 presentSelectors[int(asFinal.selector)] = true 405 } 406 } 407 for _, flag := range presentSelectors { 408 if !flag { 409 return false 410 } 411 } 412 return true 413 } 414 415 func (fieldMask *Pod_Status_FieldMask) ProtoReflect() preflect.Message { 416 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 417 return ParsePodStatus_FieldPath(raw) 418 }) 419 } 420 421 func (fieldMask *Pod_Status_FieldMask) ProtoMessage() {} 422 423 func (fieldMask *Pod_Status_FieldMask) Reset() { 424 if fieldMask != nil { 425 fieldMask.Paths = nil 426 } 427 } 428 429 func (fieldMask *Pod_Status_FieldMask) Subtract(other *Pod_Status_FieldMask) *Pod_Status_FieldMask { 430 result := &Pod_Status_FieldMask{} 431 removedSelectors := make([]bool, 3) 432 otherSubMasks := map[PodStatus_FieldPathSelector]gotenobject.FieldMask{ 433 PodStatus_FieldPathSelectorContainerStatuses: &Pod_Status_Container_FieldMask{}, 434 } 435 mySubMasks := map[PodStatus_FieldPathSelector]gotenobject.FieldMask{ 436 PodStatus_FieldPathSelectorContainerStatuses: &Pod_Status_Container_FieldMask{}, 437 } 438 439 for _, path := range other.GetPaths() { 440 switch tp := path.(type) { 441 case *PodStatus_FieldTerminalPath: 442 removedSelectors[int(tp.selector)] = true 443 case *PodStatus_FieldSubPath: 444 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 445 } 446 } 447 for _, path := range fieldMask.GetPaths() { 448 if !removedSelectors[int(path.Selector())] { 449 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 450 if tp, ok := path.(*PodStatus_FieldTerminalPath); ok { 451 switch tp.selector { 452 case PodStatus_FieldPathSelectorContainerStatuses: 453 mySubMasks[PodStatus_FieldPathSelectorContainerStatuses] = FullPod_Status_Container_FieldMask() 454 } 455 } else if tp, ok := path.(*PodStatus_FieldSubPath); ok { 456 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 457 } 458 } else { 459 result.Paths = append(result.Paths, path) 460 } 461 } 462 } 463 for selector, mySubMask := range mySubMasks { 464 if mySubMask.PathsCount() > 0 { 465 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 466 result.Paths = append(result.Paths, &PodStatus_FieldSubPath{selector: selector, subPath: allowedPath}) 467 } 468 } 469 } 470 471 if len(result.Paths) == 0 { 472 return nil 473 } 474 return result 475 } 476 477 func (fieldMask *Pod_Status_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 478 return fieldMask.Subtract(other.(*Pod_Status_FieldMask)) 479 } 480 481 // FilterInputFields generates copy of field paths with output_only field paths removed 482 func (fieldMask *Pod_Status_FieldMask) FilterInputFields() *Pod_Status_FieldMask { 483 result := &Pod_Status_FieldMask{} 484 result.Paths = append(result.Paths, fieldMask.Paths...) 485 return result 486 } 487 488 // ToFieldMask is used for proto conversions 489 func (fieldMask *Pod_Status_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 490 protoFieldMask := &googlefieldmaskpb.FieldMask{} 491 for _, path := range fieldMask.Paths { 492 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 493 } 494 return protoFieldMask 495 } 496 497 func (fieldMask *Pod_Status_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 498 if fieldMask == nil { 499 return status.Error(codes.Internal, "target field mask is nil") 500 } 501 fieldMask.Paths = make([]PodStatus_FieldPath, 0, len(protoFieldMask.Paths)) 502 for _, strPath := range protoFieldMask.Paths { 503 path, err := ParsePodStatus_FieldPath(strPath) 504 if err != nil { 505 return err 506 } 507 fieldMask.Paths = append(fieldMask.Paths, path) 508 } 509 return nil 510 } 511 512 // implement methods required by customType 513 func (fieldMask Pod_Status_FieldMask) Marshal() ([]byte, error) { 514 protoFieldMask := fieldMask.ToProtoFieldMask() 515 return proto.Marshal(protoFieldMask) 516 } 517 518 func (fieldMask *Pod_Status_FieldMask) Unmarshal(data []byte) error { 519 protoFieldMask := &googlefieldmaskpb.FieldMask{} 520 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 521 return err 522 } 523 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 524 return err 525 } 526 return nil 527 } 528 529 func (fieldMask *Pod_Status_FieldMask) Size() int { 530 return proto.Size(fieldMask.ToProtoFieldMask()) 531 } 532 533 func (fieldMask Pod_Status_FieldMask) MarshalJSON() ([]byte, error) { 534 return json.Marshal(fieldMask.ToProtoFieldMask()) 535 } 536 537 func (fieldMask *Pod_Status_FieldMask) UnmarshalJSON(data []byte) error { 538 protoFieldMask := &googlefieldmaskpb.FieldMask{} 539 if err := json.Unmarshal(data, protoFieldMask); err != nil { 540 return err 541 } 542 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 543 return err 544 } 545 return nil 546 } 547 548 func (fieldMask *Pod_Status_FieldMask) AppendPath(path PodStatus_FieldPath) { 549 fieldMask.Paths = append(fieldMask.Paths, path) 550 } 551 552 func (fieldMask *Pod_Status_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 553 fieldMask.Paths = append(fieldMask.Paths, path.(PodStatus_FieldPath)) 554 } 555 556 func (fieldMask *Pod_Status_FieldMask) GetPaths() []PodStatus_FieldPath { 557 if fieldMask == nil { 558 return nil 559 } 560 return fieldMask.Paths 561 } 562 563 func (fieldMask *Pod_Status_FieldMask) GetRawPaths() []gotenobject.FieldPath { 564 if fieldMask == nil { 565 return nil 566 } 567 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 568 for _, path := range fieldMask.Paths { 569 rawPaths = append(rawPaths, path) 570 } 571 return rawPaths 572 } 573 574 func (fieldMask *Pod_Status_FieldMask) SetFromCliFlag(raw string) error { 575 path, err := ParsePodStatus_FieldPath(raw) 576 if err != nil { 577 return err 578 } 579 fieldMask.Paths = append(fieldMask.Paths, path) 580 return nil 581 } 582 583 func (fieldMask *Pod_Status_FieldMask) Set(target, source *Pod_Status) { 584 for _, path := range fieldMask.Paths { 585 val, _ := path.GetSingle(source) 586 // if val is nil, then field does not exist in source, skip 587 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 588 if val != nil { 589 path.WithIValue(val).SetTo(&target) 590 } 591 } 592 } 593 594 func (fieldMask *Pod_Status_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 595 fieldMask.Set(target.(*Pod_Status), source.(*Pod_Status)) 596 } 597 598 func (fieldMask *Pod_Status_FieldMask) Project(source *Pod_Status) *Pod_Status { 599 if source == nil { 600 return nil 601 } 602 if fieldMask == nil { 603 return source 604 } 605 result := &Pod_Status{} 606 containerStatusesMask := &Pod_Status_Container_FieldMask{} 607 wholeContainerStatusesAccepted := false 608 609 for _, p := range fieldMask.Paths { 610 switch tp := p.(type) { 611 case *PodStatus_FieldTerminalPath: 612 switch tp.selector { 613 case PodStatus_FieldPathSelectorPhase: 614 result.Phase = source.Phase 615 case PodStatus_FieldPathSelectorContainerStatuses: 616 result.ContainerStatuses = source.ContainerStatuses 617 wholeContainerStatusesAccepted = true 618 case PodStatus_FieldPathSelectorError: 619 result.Error = source.Error 620 } 621 case *PodStatus_FieldSubPath: 622 switch tp.selector { 623 case PodStatus_FieldPathSelectorContainerStatuses: 624 containerStatusesMask.AppendPath(tp.subPath.(PodStatusContainer_FieldPath)) 625 } 626 } 627 } 628 if wholeContainerStatusesAccepted == false && len(containerStatusesMask.Paths) > 0 { 629 for _, sourceItem := range source.GetContainerStatuses() { 630 result.ContainerStatuses = append(result.ContainerStatuses, containerStatusesMask.Project(sourceItem)) 631 } 632 } 633 return result 634 } 635 636 func (fieldMask *Pod_Status_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 637 return fieldMask.Project(source.(*Pod_Status)) 638 } 639 640 func (fieldMask *Pod_Status_FieldMask) PathsCount() int { 641 if fieldMask == nil { 642 return 0 643 } 644 return len(fieldMask.Paths) 645 } 646 647 type Pod_Status_Container_FieldMask struct { 648 Paths []PodStatusContainer_FieldPath 649 } 650 651 func FullPod_Status_Container_FieldMask() *Pod_Status_Container_FieldMask { 652 res := &Pod_Status_Container_FieldMask{} 653 res.Paths = append(res.Paths, &PodStatusContainer_FieldTerminalPath{selector: PodStatusContainer_FieldPathSelectorName}) 654 res.Paths = append(res.Paths, &PodStatusContainer_FieldTerminalPath{selector: PodStatusContainer_FieldPathSelectorState}) 655 res.Paths = append(res.Paths, &PodStatusContainer_FieldTerminalPath{selector: PodStatusContainer_FieldPathSelectorWaiting}) 656 res.Paths = append(res.Paths, &PodStatusContainer_FieldTerminalPath{selector: PodStatusContainer_FieldPathSelectorRunning}) 657 res.Paths = append(res.Paths, &PodStatusContainer_FieldTerminalPath{selector: PodStatusContainer_FieldPathSelectorTerminated}) 658 return res 659 } 660 661 func (fieldMask *Pod_Status_Container_FieldMask) String() string { 662 if fieldMask == nil { 663 return "<nil>" 664 } 665 pathsStr := make([]string, 0, len(fieldMask.Paths)) 666 for _, path := range fieldMask.Paths { 667 pathsStr = append(pathsStr, path.String()) 668 } 669 return strings.Join(pathsStr, ", ") 670 } 671 672 func (fieldMask *Pod_Status_Container_FieldMask) IsFull() bool { 673 if fieldMask == nil { 674 return false 675 } 676 presentSelectors := make([]bool, 5) 677 for _, path := range fieldMask.Paths { 678 if asFinal, ok := path.(*PodStatusContainer_FieldTerminalPath); ok { 679 presentSelectors[int(asFinal.selector)] = true 680 } 681 } 682 for _, flag := range presentSelectors { 683 if !flag { 684 return false 685 } 686 } 687 return true 688 } 689 690 func (fieldMask *Pod_Status_Container_FieldMask) ProtoReflect() preflect.Message { 691 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 692 return ParsePodStatusContainer_FieldPath(raw) 693 }) 694 } 695 696 func (fieldMask *Pod_Status_Container_FieldMask) ProtoMessage() {} 697 698 func (fieldMask *Pod_Status_Container_FieldMask) Reset() { 699 if fieldMask != nil { 700 fieldMask.Paths = nil 701 } 702 } 703 704 func (fieldMask *Pod_Status_Container_FieldMask) Subtract(other *Pod_Status_Container_FieldMask) *Pod_Status_Container_FieldMask { 705 result := &Pod_Status_Container_FieldMask{} 706 removedSelectors := make([]bool, 5) 707 otherSubMasks := map[PodStatusContainer_FieldPathSelector]gotenobject.FieldMask{ 708 PodStatusContainer_FieldPathSelectorWaiting: &Pod_Status_Container_StateWaiting_FieldMask{}, 709 PodStatusContainer_FieldPathSelectorRunning: &Pod_Status_Container_StateRunning_FieldMask{}, 710 PodStatusContainer_FieldPathSelectorTerminated: &Pod_Status_Container_StateTerminated_FieldMask{}, 711 } 712 mySubMasks := map[PodStatusContainer_FieldPathSelector]gotenobject.FieldMask{ 713 PodStatusContainer_FieldPathSelectorWaiting: &Pod_Status_Container_StateWaiting_FieldMask{}, 714 PodStatusContainer_FieldPathSelectorRunning: &Pod_Status_Container_StateRunning_FieldMask{}, 715 PodStatusContainer_FieldPathSelectorTerminated: &Pod_Status_Container_StateTerminated_FieldMask{}, 716 } 717 718 for _, path := range other.GetPaths() { 719 switch tp := path.(type) { 720 case *PodStatusContainer_FieldTerminalPath: 721 removedSelectors[int(tp.selector)] = true 722 case *PodStatusContainer_FieldSubPath: 723 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 724 } 725 } 726 for _, path := range fieldMask.GetPaths() { 727 if !removedSelectors[int(path.Selector())] { 728 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 729 if tp, ok := path.(*PodStatusContainer_FieldTerminalPath); ok { 730 switch tp.selector { 731 case PodStatusContainer_FieldPathSelectorWaiting: 732 mySubMasks[PodStatusContainer_FieldPathSelectorWaiting] = FullPod_Status_Container_StateWaiting_FieldMask() 733 case PodStatusContainer_FieldPathSelectorRunning: 734 mySubMasks[PodStatusContainer_FieldPathSelectorRunning] = FullPod_Status_Container_StateRunning_FieldMask() 735 case PodStatusContainer_FieldPathSelectorTerminated: 736 mySubMasks[PodStatusContainer_FieldPathSelectorTerminated] = FullPod_Status_Container_StateTerminated_FieldMask() 737 } 738 } else if tp, ok := path.(*PodStatusContainer_FieldSubPath); ok { 739 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 740 } 741 } else { 742 result.Paths = append(result.Paths, path) 743 } 744 } 745 } 746 for selector, mySubMask := range mySubMasks { 747 if mySubMask.PathsCount() > 0 { 748 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 749 result.Paths = append(result.Paths, &PodStatusContainer_FieldSubPath{selector: selector, subPath: allowedPath}) 750 } 751 } 752 } 753 754 if len(result.Paths) == 0 { 755 return nil 756 } 757 return result 758 } 759 760 func (fieldMask *Pod_Status_Container_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 761 return fieldMask.Subtract(other.(*Pod_Status_Container_FieldMask)) 762 } 763 764 // FilterInputFields generates copy of field paths with output_only field paths removed 765 func (fieldMask *Pod_Status_Container_FieldMask) FilterInputFields() *Pod_Status_Container_FieldMask { 766 result := &Pod_Status_Container_FieldMask{} 767 result.Paths = append(result.Paths, fieldMask.Paths...) 768 return result 769 } 770 771 // ToFieldMask is used for proto conversions 772 func (fieldMask *Pod_Status_Container_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 773 protoFieldMask := &googlefieldmaskpb.FieldMask{} 774 for _, path := range fieldMask.Paths { 775 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 776 } 777 return protoFieldMask 778 } 779 780 func (fieldMask *Pod_Status_Container_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 781 if fieldMask == nil { 782 return status.Error(codes.Internal, "target field mask is nil") 783 } 784 fieldMask.Paths = make([]PodStatusContainer_FieldPath, 0, len(protoFieldMask.Paths)) 785 for _, strPath := range protoFieldMask.Paths { 786 path, err := ParsePodStatusContainer_FieldPath(strPath) 787 if err != nil { 788 return err 789 } 790 fieldMask.Paths = append(fieldMask.Paths, path) 791 } 792 return nil 793 } 794 795 // implement methods required by customType 796 func (fieldMask Pod_Status_Container_FieldMask) Marshal() ([]byte, error) { 797 protoFieldMask := fieldMask.ToProtoFieldMask() 798 return proto.Marshal(protoFieldMask) 799 } 800 801 func (fieldMask *Pod_Status_Container_FieldMask) Unmarshal(data []byte) error { 802 protoFieldMask := &googlefieldmaskpb.FieldMask{} 803 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 804 return err 805 } 806 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 807 return err 808 } 809 return nil 810 } 811 812 func (fieldMask *Pod_Status_Container_FieldMask) Size() int { 813 return proto.Size(fieldMask.ToProtoFieldMask()) 814 } 815 816 func (fieldMask Pod_Status_Container_FieldMask) MarshalJSON() ([]byte, error) { 817 return json.Marshal(fieldMask.ToProtoFieldMask()) 818 } 819 820 func (fieldMask *Pod_Status_Container_FieldMask) UnmarshalJSON(data []byte) error { 821 protoFieldMask := &googlefieldmaskpb.FieldMask{} 822 if err := json.Unmarshal(data, protoFieldMask); err != nil { 823 return err 824 } 825 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 826 return err 827 } 828 return nil 829 } 830 831 func (fieldMask *Pod_Status_Container_FieldMask) AppendPath(path PodStatusContainer_FieldPath) { 832 fieldMask.Paths = append(fieldMask.Paths, path) 833 } 834 835 func (fieldMask *Pod_Status_Container_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 836 fieldMask.Paths = append(fieldMask.Paths, path.(PodStatusContainer_FieldPath)) 837 } 838 839 func (fieldMask *Pod_Status_Container_FieldMask) GetPaths() []PodStatusContainer_FieldPath { 840 if fieldMask == nil { 841 return nil 842 } 843 return fieldMask.Paths 844 } 845 846 func (fieldMask *Pod_Status_Container_FieldMask) GetRawPaths() []gotenobject.FieldPath { 847 if fieldMask == nil { 848 return nil 849 } 850 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 851 for _, path := range fieldMask.Paths { 852 rawPaths = append(rawPaths, path) 853 } 854 return rawPaths 855 } 856 857 func (fieldMask *Pod_Status_Container_FieldMask) SetFromCliFlag(raw string) error { 858 path, err := ParsePodStatusContainer_FieldPath(raw) 859 if err != nil { 860 return err 861 } 862 fieldMask.Paths = append(fieldMask.Paths, path) 863 return nil 864 } 865 866 func (fieldMask *Pod_Status_Container_FieldMask) Set(target, source *Pod_Status_Container) { 867 for _, path := range fieldMask.Paths { 868 val, _ := path.GetSingle(source) 869 // if val is nil, then field does not exist in source, skip 870 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 871 if val != nil { 872 path.WithIValue(val).SetTo(&target) 873 } 874 } 875 } 876 877 func (fieldMask *Pod_Status_Container_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 878 fieldMask.Set(target.(*Pod_Status_Container), source.(*Pod_Status_Container)) 879 } 880 881 func (fieldMask *Pod_Status_Container_FieldMask) Project(source *Pod_Status_Container) *Pod_Status_Container { 882 if source == nil { 883 return nil 884 } 885 if fieldMask == nil { 886 return source 887 } 888 result := &Pod_Status_Container{} 889 waitingMask := &Pod_Status_Container_StateWaiting_FieldMask{} 890 wholeWaitingAccepted := false 891 runningMask := &Pod_Status_Container_StateRunning_FieldMask{} 892 wholeRunningAccepted := false 893 terminatedMask := &Pod_Status_Container_StateTerminated_FieldMask{} 894 wholeTerminatedAccepted := false 895 896 for _, p := range fieldMask.Paths { 897 switch tp := p.(type) { 898 case *PodStatusContainer_FieldTerminalPath: 899 switch tp.selector { 900 case PodStatusContainer_FieldPathSelectorName: 901 result.Name = source.Name 902 case PodStatusContainer_FieldPathSelectorState: 903 result.State = source.State 904 case PodStatusContainer_FieldPathSelectorWaiting: 905 result.Waiting = source.Waiting 906 wholeWaitingAccepted = true 907 case PodStatusContainer_FieldPathSelectorRunning: 908 result.Running = source.Running 909 wholeRunningAccepted = true 910 case PodStatusContainer_FieldPathSelectorTerminated: 911 result.Terminated = source.Terminated 912 wholeTerminatedAccepted = true 913 } 914 case *PodStatusContainer_FieldSubPath: 915 switch tp.selector { 916 case PodStatusContainer_FieldPathSelectorWaiting: 917 waitingMask.AppendPath(tp.subPath.(PodStatusContainerStateWaiting_FieldPath)) 918 case PodStatusContainer_FieldPathSelectorRunning: 919 runningMask.AppendPath(tp.subPath.(PodStatusContainerStateRunning_FieldPath)) 920 case PodStatusContainer_FieldPathSelectorTerminated: 921 terminatedMask.AppendPath(tp.subPath.(PodStatusContainerStateTerminated_FieldPath)) 922 } 923 } 924 } 925 if wholeWaitingAccepted == false && len(waitingMask.Paths) > 0 { 926 result.Waiting = waitingMask.Project(source.GetWaiting()) 927 } 928 if wholeRunningAccepted == false && len(runningMask.Paths) > 0 { 929 result.Running = runningMask.Project(source.GetRunning()) 930 } 931 if wholeTerminatedAccepted == false && len(terminatedMask.Paths) > 0 { 932 result.Terminated = terminatedMask.Project(source.GetTerminated()) 933 } 934 return result 935 } 936 937 func (fieldMask *Pod_Status_Container_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 938 return fieldMask.Project(source.(*Pod_Status_Container)) 939 } 940 941 func (fieldMask *Pod_Status_Container_FieldMask) PathsCount() int { 942 if fieldMask == nil { 943 return 0 944 } 945 return len(fieldMask.Paths) 946 } 947 948 type Pod_Status_Container_StateWaiting_FieldMask struct { 949 Paths []PodStatusContainerStateWaiting_FieldPath 950 } 951 952 func FullPod_Status_Container_StateWaiting_FieldMask() *Pod_Status_Container_StateWaiting_FieldMask { 953 res := &Pod_Status_Container_StateWaiting_FieldMask{} 954 res.Paths = append(res.Paths, &PodStatusContainerStateWaiting_FieldTerminalPath{selector: PodStatusContainerStateWaiting_FieldPathSelectorReason}) 955 res.Paths = append(res.Paths, &PodStatusContainerStateWaiting_FieldTerminalPath{selector: PodStatusContainerStateWaiting_FieldPathSelectorMessage}) 956 return res 957 } 958 959 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) String() string { 960 if fieldMask == nil { 961 return "<nil>" 962 } 963 pathsStr := make([]string, 0, len(fieldMask.Paths)) 964 for _, path := range fieldMask.Paths { 965 pathsStr = append(pathsStr, path.String()) 966 } 967 return strings.Join(pathsStr, ", ") 968 } 969 970 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) IsFull() bool { 971 if fieldMask == nil { 972 return false 973 } 974 presentSelectors := make([]bool, 2) 975 for _, path := range fieldMask.Paths { 976 if asFinal, ok := path.(*PodStatusContainerStateWaiting_FieldTerminalPath); ok { 977 presentSelectors[int(asFinal.selector)] = true 978 } 979 } 980 for _, flag := range presentSelectors { 981 if !flag { 982 return false 983 } 984 } 985 return true 986 } 987 988 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) ProtoReflect() preflect.Message { 989 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 990 return ParsePodStatusContainerStateWaiting_FieldPath(raw) 991 }) 992 } 993 994 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) ProtoMessage() {} 995 996 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) Reset() { 997 if fieldMask != nil { 998 fieldMask.Paths = nil 999 } 1000 } 1001 1002 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) Subtract(other *Pod_Status_Container_StateWaiting_FieldMask) *Pod_Status_Container_StateWaiting_FieldMask { 1003 result := &Pod_Status_Container_StateWaiting_FieldMask{} 1004 removedSelectors := make([]bool, 2) 1005 1006 for _, path := range other.GetPaths() { 1007 switch tp := path.(type) { 1008 case *PodStatusContainerStateWaiting_FieldTerminalPath: 1009 removedSelectors[int(tp.selector)] = true 1010 } 1011 } 1012 for _, path := range fieldMask.GetPaths() { 1013 if !removedSelectors[int(path.Selector())] { 1014 result.Paths = append(result.Paths, path) 1015 } 1016 } 1017 1018 if len(result.Paths) == 0 { 1019 return nil 1020 } 1021 return result 1022 } 1023 1024 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1025 return fieldMask.Subtract(other.(*Pod_Status_Container_StateWaiting_FieldMask)) 1026 } 1027 1028 // FilterInputFields generates copy of field paths with output_only field paths removed 1029 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) FilterInputFields() *Pod_Status_Container_StateWaiting_FieldMask { 1030 result := &Pod_Status_Container_StateWaiting_FieldMask{} 1031 result.Paths = append(result.Paths, fieldMask.Paths...) 1032 return result 1033 } 1034 1035 // ToFieldMask is used for proto conversions 1036 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1037 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1038 for _, path := range fieldMask.Paths { 1039 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1040 } 1041 return protoFieldMask 1042 } 1043 1044 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1045 if fieldMask == nil { 1046 return status.Error(codes.Internal, "target field mask is nil") 1047 } 1048 fieldMask.Paths = make([]PodStatusContainerStateWaiting_FieldPath, 0, len(protoFieldMask.Paths)) 1049 for _, strPath := range protoFieldMask.Paths { 1050 path, err := ParsePodStatusContainerStateWaiting_FieldPath(strPath) 1051 if err != nil { 1052 return err 1053 } 1054 fieldMask.Paths = append(fieldMask.Paths, path) 1055 } 1056 return nil 1057 } 1058 1059 // implement methods required by customType 1060 func (fieldMask Pod_Status_Container_StateWaiting_FieldMask) Marshal() ([]byte, error) { 1061 protoFieldMask := fieldMask.ToProtoFieldMask() 1062 return proto.Marshal(protoFieldMask) 1063 } 1064 1065 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) Unmarshal(data []byte) error { 1066 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1067 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1068 return err 1069 } 1070 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1071 return err 1072 } 1073 return nil 1074 } 1075 1076 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) Size() int { 1077 return proto.Size(fieldMask.ToProtoFieldMask()) 1078 } 1079 1080 func (fieldMask Pod_Status_Container_StateWaiting_FieldMask) MarshalJSON() ([]byte, error) { 1081 return json.Marshal(fieldMask.ToProtoFieldMask()) 1082 } 1083 1084 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) UnmarshalJSON(data []byte) error { 1085 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1086 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1087 return err 1088 } 1089 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1090 return err 1091 } 1092 return nil 1093 } 1094 1095 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) AppendPath(path PodStatusContainerStateWaiting_FieldPath) { 1096 fieldMask.Paths = append(fieldMask.Paths, path) 1097 } 1098 1099 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1100 fieldMask.Paths = append(fieldMask.Paths, path.(PodStatusContainerStateWaiting_FieldPath)) 1101 } 1102 1103 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) GetPaths() []PodStatusContainerStateWaiting_FieldPath { 1104 if fieldMask == nil { 1105 return nil 1106 } 1107 return fieldMask.Paths 1108 } 1109 1110 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1111 if fieldMask == nil { 1112 return nil 1113 } 1114 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1115 for _, path := range fieldMask.Paths { 1116 rawPaths = append(rawPaths, path) 1117 } 1118 return rawPaths 1119 } 1120 1121 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) SetFromCliFlag(raw string) error { 1122 path, err := ParsePodStatusContainerStateWaiting_FieldPath(raw) 1123 if err != nil { 1124 return err 1125 } 1126 fieldMask.Paths = append(fieldMask.Paths, path) 1127 return nil 1128 } 1129 1130 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) Set(target, source *Pod_Status_Container_StateWaiting) { 1131 for _, path := range fieldMask.Paths { 1132 val, _ := path.GetSingle(source) 1133 // if val is nil, then field does not exist in source, skip 1134 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1135 if val != nil { 1136 path.WithIValue(val).SetTo(&target) 1137 } 1138 } 1139 } 1140 1141 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1142 fieldMask.Set(target.(*Pod_Status_Container_StateWaiting), source.(*Pod_Status_Container_StateWaiting)) 1143 } 1144 1145 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) Project(source *Pod_Status_Container_StateWaiting) *Pod_Status_Container_StateWaiting { 1146 if source == nil { 1147 return nil 1148 } 1149 if fieldMask == nil { 1150 return source 1151 } 1152 result := &Pod_Status_Container_StateWaiting{} 1153 1154 for _, p := range fieldMask.Paths { 1155 switch tp := p.(type) { 1156 case *PodStatusContainerStateWaiting_FieldTerminalPath: 1157 switch tp.selector { 1158 case PodStatusContainerStateWaiting_FieldPathSelectorReason: 1159 result.Reason = source.Reason 1160 case PodStatusContainerStateWaiting_FieldPathSelectorMessage: 1161 result.Message = source.Message 1162 } 1163 } 1164 } 1165 return result 1166 } 1167 1168 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1169 return fieldMask.Project(source.(*Pod_Status_Container_StateWaiting)) 1170 } 1171 1172 func (fieldMask *Pod_Status_Container_StateWaiting_FieldMask) PathsCount() int { 1173 if fieldMask == nil { 1174 return 0 1175 } 1176 return len(fieldMask.Paths) 1177 } 1178 1179 type Pod_Status_Container_StateRunning_FieldMask struct { 1180 Paths []PodStatusContainerStateRunning_FieldPath 1181 } 1182 1183 func FullPod_Status_Container_StateRunning_FieldMask() *Pod_Status_Container_StateRunning_FieldMask { 1184 res := &Pod_Status_Container_StateRunning_FieldMask{} 1185 res.Paths = append(res.Paths, &PodStatusContainerStateRunning_FieldTerminalPath{selector: PodStatusContainerStateRunning_FieldPathSelectorStartedAt}) 1186 return res 1187 } 1188 1189 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) String() string { 1190 if fieldMask == nil { 1191 return "<nil>" 1192 } 1193 pathsStr := make([]string, 0, len(fieldMask.Paths)) 1194 for _, path := range fieldMask.Paths { 1195 pathsStr = append(pathsStr, path.String()) 1196 } 1197 return strings.Join(pathsStr, ", ") 1198 } 1199 1200 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) IsFull() bool { 1201 if fieldMask == nil { 1202 return false 1203 } 1204 presentSelectors := make([]bool, 1) 1205 for _, path := range fieldMask.Paths { 1206 if asFinal, ok := path.(*PodStatusContainerStateRunning_FieldTerminalPath); ok { 1207 presentSelectors[int(asFinal.selector)] = true 1208 } 1209 } 1210 for _, flag := range presentSelectors { 1211 if !flag { 1212 return false 1213 } 1214 } 1215 return true 1216 } 1217 1218 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) ProtoReflect() preflect.Message { 1219 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 1220 return ParsePodStatusContainerStateRunning_FieldPath(raw) 1221 }) 1222 } 1223 1224 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) ProtoMessage() {} 1225 1226 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) Reset() { 1227 if fieldMask != nil { 1228 fieldMask.Paths = nil 1229 } 1230 } 1231 1232 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) Subtract(other *Pod_Status_Container_StateRunning_FieldMask) *Pod_Status_Container_StateRunning_FieldMask { 1233 result := &Pod_Status_Container_StateRunning_FieldMask{} 1234 removedSelectors := make([]bool, 1) 1235 1236 for _, path := range other.GetPaths() { 1237 switch tp := path.(type) { 1238 case *PodStatusContainerStateRunning_FieldTerminalPath: 1239 removedSelectors[int(tp.selector)] = true 1240 } 1241 } 1242 for _, path := range fieldMask.GetPaths() { 1243 if !removedSelectors[int(path.Selector())] { 1244 result.Paths = append(result.Paths, path) 1245 } 1246 } 1247 1248 if len(result.Paths) == 0 { 1249 return nil 1250 } 1251 return result 1252 } 1253 1254 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1255 return fieldMask.Subtract(other.(*Pod_Status_Container_StateRunning_FieldMask)) 1256 } 1257 1258 // FilterInputFields generates copy of field paths with output_only field paths removed 1259 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) FilterInputFields() *Pod_Status_Container_StateRunning_FieldMask { 1260 result := &Pod_Status_Container_StateRunning_FieldMask{} 1261 result.Paths = append(result.Paths, fieldMask.Paths...) 1262 return result 1263 } 1264 1265 // ToFieldMask is used for proto conversions 1266 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1267 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1268 for _, path := range fieldMask.Paths { 1269 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1270 } 1271 return protoFieldMask 1272 } 1273 1274 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1275 if fieldMask == nil { 1276 return status.Error(codes.Internal, "target field mask is nil") 1277 } 1278 fieldMask.Paths = make([]PodStatusContainerStateRunning_FieldPath, 0, len(protoFieldMask.Paths)) 1279 for _, strPath := range protoFieldMask.Paths { 1280 path, err := ParsePodStatusContainerStateRunning_FieldPath(strPath) 1281 if err != nil { 1282 return err 1283 } 1284 fieldMask.Paths = append(fieldMask.Paths, path) 1285 } 1286 return nil 1287 } 1288 1289 // implement methods required by customType 1290 func (fieldMask Pod_Status_Container_StateRunning_FieldMask) Marshal() ([]byte, error) { 1291 protoFieldMask := fieldMask.ToProtoFieldMask() 1292 return proto.Marshal(protoFieldMask) 1293 } 1294 1295 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) Unmarshal(data []byte) error { 1296 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1297 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1298 return err 1299 } 1300 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1301 return err 1302 } 1303 return nil 1304 } 1305 1306 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) Size() int { 1307 return proto.Size(fieldMask.ToProtoFieldMask()) 1308 } 1309 1310 func (fieldMask Pod_Status_Container_StateRunning_FieldMask) MarshalJSON() ([]byte, error) { 1311 return json.Marshal(fieldMask.ToProtoFieldMask()) 1312 } 1313 1314 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) UnmarshalJSON(data []byte) error { 1315 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1316 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1317 return err 1318 } 1319 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1320 return err 1321 } 1322 return nil 1323 } 1324 1325 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) AppendPath(path PodStatusContainerStateRunning_FieldPath) { 1326 fieldMask.Paths = append(fieldMask.Paths, path) 1327 } 1328 1329 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1330 fieldMask.Paths = append(fieldMask.Paths, path.(PodStatusContainerStateRunning_FieldPath)) 1331 } 1332 1333 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) GetPaths() []PodStatusContainerStateRunning_FieldPath { 1334 if fieldMask == nil { 1335 return nil 1336 } 1337 return fieldMask.Paths 1338 } 1339 1340 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1341 if fieldMask == nil { 1342 return nil 1343 } 1344 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1345 for _, path := range fieldMask.Paths { 1346 rawPaths = append(rawPaths, path) 1347 } 1348 return rawPaths 1349 } 1350 1351 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) SetFromCliFlag(raw string) error { 1352 path, err := ParsePodStatusContainerStateRunning_FieldPath(raw) 1353 if err != nil { 1354 return err 1355 } 1356 fieldMask.Paths = append(fieldMask.Paths, path) 1357 return nil 1358 } 1359 1360 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) Set(target, source *Pod_Status_Container_StateRunning) { 1361 for _, path := range fieldMask.Paths { 1362 val, _ := path.GetSingle(source) 1363 // if val is nil, then field does not exist in source, skip 1364 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1365 if val != nil { 1366 path.WithIValue(val).SetTo(&target) 1367 } 1368 } 1369 } 1370 1371 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1372 fieldMask.Set(target.(*Pod_Status_Container_StateRunning), source.(*Pod_Status_Container_StateRunning)) 1373 } 1374 1375 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) Project(source *Pod_Status_Container_StateRunning) *Pod_Status_Container_StateRunning { 1376 if source == nil { 1377 return nil 1378 } 1379 if fieldMask == nil { 1380 return source 1381 } 1382 result := &Pod_Status_Container_StateRunning{} 1383 1384 for _, p := range fieldMask.Paths { 1385 switch tp := p.(type) { 1386 case *PodStatusContainerStateRunning_FieldTerminalPath: 1387 switch tp.selector { 1388 case PodStatusContainerStateRunning_FieldPathSelectorStartedAt: 1389 result.StartedAt = source.StartedAt 1390 } 1391 } 1392 } 1393 return result 1394 } 1395 1396 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1397 return fieldMask.Project(source.(*Pod_Status_Container_StateRunning)) 1398 } 1399 1400 func (fieldMask *Pod_Status_Container_StateRunning_FieldMask) PathsCount() int { 1401 if fieldMask == nil { 1402 return 0 1403 } 1404 return len(fieldMask.Paths) 1405 } 1406 1407 type Pod_Status_Container_StateTerminated_FieldMask struct { 1408 Paths []PodStatusContainerStateTerminated_FieldPath 1409 } 1410 1411 func FullPod_Status_Container_StateTerminated_FieldMask() *Pod_Status_Container_StateTerminated_FieldMask { 1412 res := &Pod_Status_Container_StateTerminated_FieldMask{} 1413 res.Paths = append(res.Paths, &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorExitCode}) 1414 res.Paths = append(res.Paths, &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorSignal}) 1415 res.Paths = append(res.Paths, &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorReason}) 1416 res.Paths = append(res.Paths, &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorMessage}) 1417 res.Paths = append(res.Paths, &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorStartedAt}) 1418 res.Paths = append(res.Paths, &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt}) 1419 res.Paths = append(res.Paths, &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorContainerId}) 1420 return res 1421 } 1422 1423 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) String() string { 1424 if fieldMask == nil { 1425 return "<nil>" 1426 } 1427 pathsStr := make([]string, 0, len(fieldMask.Paths)) 1428 for _, path := range fieldMask.Paths { 1429 pathsStr = append(pathsStr, path.String()) 1430 } 1431 return strings.Join(pathsStr, ", ") 1432 } 1433 1434 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) IsFull() bool { 1435 if fieldMask == nil { 1436 return false 1437 } 1438 presentSelectors := make([]bool, 7) 1439 for _, path := range fieldMask.Paths { 1440 if asFinal, ok := path.(*PodStatusContainerStateTerminated_FieldTerminalPath); ok { 1441 presentSelectors[int(asFinal.selector)] = true 1442 } 1443 } 1444 for _, flag := range presentSelectors { 1445 if !flag { 1446 return false 1447 } 1448 } 1449 return true 1450 } 1451 1452 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) ProtoReflect() preflect.Message { 1453 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 1454 return ParsePodStatusContainerStateTerminated_FieldPath(raw) 1455 }) 1456 } 1457 1458 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) ProtoMessage() {} 1459 1460 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) Reset() { 1461 if fieldMask != nil { 1462 fieldMask.Paths = nil 1463 } 1464 } 1465 1466 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) Subtract(other *Pod_Status_Container_StateTerminated_FieldMask) *Pod_Status_Container_StateTerminated_FieldMask { 1467 result := &Pod_Status_Container_StateTerminated_FieldMask{} 1468 removedSelectors := make([]bool, 7) 1469 1470 for _, path := range other.GetPaths() { 1471 switch tp := path.(type) { 1472 case *PodStatusContainerStateTerminated_FieldTerminalPath: 1473 removedSelectors[int(tp.selector)] = true 1474 } 1475 } 1476 for _, path := range fieldMask.GetPaths() { 1477 if !removedSelectors[int(path.Selector())] { 1478 result.Paths = append(result.Paths, path) 1479 } 1480 } 1481 1482 if len(result.Paths) == 0 { 1483 return nil 1484 } 1485 return result 1486 } 1487 1488 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1489 return fieldMask.Subtract(other.(*Pod_Status_Container_StateTerminated_FieldMask)) 1490 } 1491 1492 // FilterInputFields generates copy of field paths with output_only field paths removed 1493 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) FilterInputFields() *Pod_Status_Container_StateTerminated_FieldMask { 1494 result := &Pod_Status_Container_StateTerminated_FieldMask{} 1495 result.Paths = append(result.Paths, fieldMask.Paths...) 1496 return result 1497 } 1498 1499 // ToFieldMask is used for proto conversions 1500 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1501 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1502 for _, path := range fieldMask.Paths { 1503 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1504 } 1505 return protoFieldMask 1506 } 1507 1508 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1509 if fieldMask == nil { 1510 return status.Error(codes.Internal, "target field mask is nil") 1511 } 1512 fieldMask.Paths = make([]PodStatusContainerStateTerminated_FieldPath, 0, len(protoFieldMask.Paths)) 1513 for _, strPath := range protoFieldMask.Paths { 1514 path, err := ParsePodStatusContainerStateTerminated_FieldPath(strPath) 1515 if err != nil { 1516 return err 1517 } 1518 fieldMask.Paths = append(fieldMask.Paths, path) 1519 } 1520 return nil 1521 } 1522 1523 // implement methods required by customType 1524 func (fieldMask Pod_Status_Container_StateTerminated_FieldMask) Marshal() ([]byte, error) { 1525 protoFieldMask := fieldMask.ToProtoFieldMask() 1526 return proto.Marshal(protoFieldMask) 1527 } 1528 1529 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) Unmarshal(data []byte) error { 1530 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1531 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1532 return err 1533 } 1534 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1535 return err 1536 } 1537 return nil 1538 } 1539 1540 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) Size() int { 1541 return proto.Size(fieldMask.ToProtoFieldMask()) 1542 } 1543 1544 func (fieldMask Pod_Status_Container_StateTerminated_FieldMask) MarshalJSON() ([]byte, error) { 1545 return json.Marshal(fieldMask.ToProtoFieldMask()) 1546 } 1547 1548 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) UnmarshalJSON(data []byte) error { 1549 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1550 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1551 return err 1552 } 1553 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1554 return err 1555 } 1556 return nil 1557 } 1558 1559 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) AppendPath(path PodStatusContainerStateTerminated_FieldPath) { 1560 fieldMask.Paths = append(fieldMask.Paths, path) 1561 } 1562 1563 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1564 fieldMask.Paths = append(fieldMask.Paths, path.(PodStatusContainerStateTerminated_FieldPath)) 1565 } 1566 1567 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) GetPaths() []PodStatusContainerStateTerminated_FieldPath { 1568 if fieldMask == nil { 1569 return nil 1570 } 1571 return fieldMask.Paths 1572 } 1573 1574 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1575 if fieldMask == nil { 1576 return nil 1577 } 1578 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1579 for _, path := range fieldMask.Paths { 1580 rawPaths = append(rawPaths, path) 1581 } 1582 return rawPaths 1583 } 1584 1585 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) SetFromCliFlag(raw string) error { 1586 path, err := ParsePodStatusContainerStateTerminated_FieldPath(raw) 1587 if err != nil { 1588 return err 1589 } 1590 fieldMask.Paths = append(fieldMask.Paths, path) 1591 return nil 1592 } 1593 1594 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) Set(target, source *Pod_Status_Container_StateTerminated) { 1595 for _, path := range fieldMask.Paths { 1596 val, _ := path.GetSingle(source) 1597 // if val is nil, then field does not exist in source, skip 1598 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1599 if val != nil { 1600 path.WithIValue(val).SetTo(&target) 1601 } 1602 } 1603 } 1604 1605 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1606 fieldMask.Set(target.(*Pod_Status_Container_StateTerminated), source.(*Pod_Status_Container_StateTerminated)) 1607 } 1608 1609 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) Project(source *Pod_Status_Container_StateTerminated) *Pod_Status_Container_StateTerminated { 1610 if source == nil { 1611 return nil 1612 } 1613 if fieldMask == nil { 1614 return source 1615 } 1616 result := &Pod_Status_Container_StateTerminated{} 1617 1618 for _, p := range fieldMask.Paths { 1619 switch tp := p.(type) { 1620 case *PodStatusContainerStateTerminated_FieldTerminalPath: 1621 switch tp.selector { 1622 case PodStatusContainerStateTerminated_FieldPathSelectorExitCode: 1623 result.ExitCode = source.ExitCode 1624 case PodStatusContainerStateTerminated_FieldPathSelectorSignal: 1625 result.Signal = source.Signal 1626 case PodStatusContainerStateTerminated_FieldPathSelectorReason: 1627 result.Reason = source.Reason 1628 case PodStatusContainerStateTerminated_FieldPathSelectorMessage: 1629 result.Message = source.Message 1630 case PodStatusContainerStateTerminated_FieldPathSelectorStartedAt: 1631 result.StartedAt = source.StartedAt 1632 case PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt: 1633 result.FinishedAt = source.FinishedAt 1634 case PodStatusContainerStateTerminated_FieldPathSelectorContainerId: 1635 result.ContainerId = source.ContainerId 1636 } 1637 } 1638 } 1639 return result 1640 } 1641 1642 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1643 return fieldMask.Project(source.(*Pod_Status_Container_StateTerminated)) 1644 } 1645 1646 func (fieldMask *Pod_Status_Container_StateTerminated_FieldMask) PathsCount() int { 1647 if fieldMask == nil { 1648 return 0 1649 } 1650 return len(fieldMask.Paths) 1651 }