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  	_ = &timestamppb.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  }