github.com/cloudwan/edgelq-sdk@v1.15.4/devices/resources/v1/device/device.pb.fieldmask.go (about)

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/devices/proto/v1/device.proto
     3  // DO NOT EDIT!!!
     4  
     5  package device
     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  	api "github.com/cloudwan/edgelq-sdk/common/api"
    23  	project "github.com/cloudwan/edgelq-sdk/devices/resources/v1/project"
    24  	iam_attestation_domain "github.com/cloudwan/edgelq-sdk/iam/resources/v1/attestation_domain"
    25  	iam_iam_common "github.com/cloudwan/edgelq-sdk/iam/resources/v1/common"
    26  	iam_service_account "github.com/cloudwan/edgelq-sdk/iam/resources/v1/service_account"
    27  	logging_bucket "github.com/cloudwan/edgelq-sdk/logging/resources/v1/bucket"
    28  	monitoring_bucket "github.com/cloudwan/edgelq-sdk/monitoring/resources/v4/bucket"
    29  	meta "github.com/cloudwan/goten-sdk/types/meta"
    30  	latlng "google.golang.org/genproto/googleapis/type/latlng"
    31  	durationpb "google.golang.org/protobuf/types/known/durationpb"
    32  	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
    33  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    34  )
    35  
    36  // ensure the imports are used
    37  var (
    38  	_ = new(json.Marshaler)
    39  	_ = strings.Builder{}
    40  
    41  	_ = codes.NotFound
    42  	_ = status.Status{}
    43  	_ = new(proto.Message)
    44  	_ = new(preflect.Message)
    45  	_ = googlefieldmaskpb.FieldMask{}
    46  
    47  	_ = new(gotenobject.FieldMask)
    48  )
    49  
    50  // make sure we're using proto imports
    51  var (
    52  	_ = &api.HealthCheckSpec{}
    53  	_ = &project.Project{}
    54  	_ = &iam_attestation_domain.AttestationDomain{}
    55  	_ = &iam_iam_common.PCR{}
    56  	_ = &iam_service_account.ServiceAccount{}
    57  	_ = &logging_bucket.Bucket{}
    58  	_ = &monitoring_bucket.Bucket{}
    59  	_ = &durationpb.Duration{}
    60  	_ = &fieldmaskpb.FieldMask{}
    61  	_ = &timestamppb.Timestamp{}
    62  	_ = &latlng.LatLng{}
    63  	_ = &meta.Meta{}
    64  )
    65  
    66  type Device_FieldMask struct {
    67  	Paths []Device_FieldPath
    68  }
    69  
    70  func FullDevice_FieldMask() *Device_FieldMask {
    71  	res := &Device_FieldMask{}
    72  	res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorName})
    73  	res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorMetadata})
    74  	res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorDisplayName})
    75  	res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorDescription})
    76  	res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorSpec})
    77  	res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorStatus})
    78  	res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorPublicListingSpec})
    79  	return res
    80  }
    81  
    82  func (fieldMask *Device_FieldMask) String() string {
    83  	if fieldMask == nil {
    84  		return "<nil>"
    85  	}
    86  	pathsStr := make([]string, 0, len(fieldMask.Paths))
    87  	for _, path := range fieldMask.Paths {
    88  		pathsStr = append(pathsStr, path.String())
    89  	}
    90  	return strings.Join(pathsStr, ", ")
    91  }
    92  
    93  func (fieldMask *Device_FieldMask) IsFull() bool {
    94  	if fieldMask == nil {
    95  		return false
    96  	}
    97  	presentSelectors := make([]bool, 7)
    98  	for _, path := range fieldMask.Paths {
    99  		if asFinal, ok := path.(*Device_FieldTerminalPath); ok {
   100  			presentSelectors[int(asFinal.selector)] = true
   101  		}
   102  	}
   103  	for _, flag := range presentSelectors {
   104  		if !flag {
   105  			return false
   106  		}
   107  	}
   108  	return true
   109  }
   110  
   111  func (fieldMask *Device_FieldMask) ProtoReflect() preflect.Message {
   112  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   113  		return ParseDevice_FieldPath(raw)
   114  	})
   115  }
   116  
   117  func (fieldMask *Device_FieldMask) ProtoMessage() {}
   118  
   119  func (fieldMask *Device_FieldMask) Reset() {
   120  	if fieldMask != nil {
   121  		fieldMask.Paths = nil
   122  	}
   123  }
   124  
   125  func (fieldMask *Device_FieldMask) Subtract(other *Device_FieldMask) *Device_FieldMask {
   126  	result := &Device_FieldMask{}
   127  	removedSelectors := make([]bool, 7)
   128  	otherSubMasks := map[Device_FieldPathSelector]gotenobject.FieldMask{
   129  		Device_FieldPathSelectorMetadata:          &meta.Meta_FieldMask{},
   130  		Device_FieldPathSelectorSpec:              &Device_Spec_FieldMask{},
   131  		Device_FieldPathSelectorStatus:            &Device_Status_FieldMask{},
   132  		Device_FieldPathSelectorPublicListingSpec: &Device_PublicListingSpec_FieldMask{},
   133  	}
   134  	mySubMasks := map[Device_FieldPathSelector]gotenobject.FieldMask{
   135  		Device_FieldPathSelectorMetadata:          &meta.Meta_FieldMask{},
   136  		Device_FieldPathSelectorSpec:              &Device_Spec_FieldMask{},
   137  		Device_FieldPathSelectorStatus:            &Device_Status_FieldMask{},
   138  		Device_FieldPathSelectorPublicListingSpec: &Device_PublicListingSpec_FieldMask{},
   139  	}
   140  
   141  	for _, path := range other.GetPaths() {
   142  		switch tp := path.(type) {
   143  		case *Device_FieldTerminalPath:
   144  			removedSelectors[int(tp.selector)] = true
   145  		case *Device_FieldSubPath:
   146  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
   147  		}
   148  	}
   149  	for _, path := range fieldMask.GetPaths() {
   150  		if !removedSelectors[int(path.Selector())] {
   151  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
   152  				if tp, ok := path.(*Device_FieldTerminalPath); ok {
   153  					switch tp.selector {
   154  					case Device_FieldPathSelectorMetadata:
   155  						mySubMasks[Device_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask()
   156  					case Device_FieldPathSelectorSpec:
   157  						mySubMasks[Device_FieldPathSelectorSpec] = FullDevice_Spec_FieldMask()
   158  					case Device_FieldPathSelectorStatus:
   159  						mySubMasks[Device_FieldPathSelectorStatus] = FullDevice_Status_FieldMask()
   160  					case Device_FieldPathSelectorPublicListingSpec:
   161  						mySubMasks[Device_FieldPathSelectorPublicListingSpec] = FullDevice_PublicListingSpec_FieldMask()
   162  					}
   163  				} else if tp, ok := path.(*Device_FieldSubPath); ok {
   164  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
   165  				}
   166  			} else {
   167  				result.Paths = append(result.Paths, path)
   168  			}
   169  		}
   170  	}
   171  	for selector, mySubMask := range mySubMasks {
   172  		if mySubMask.PathsCount() > 0 {
   173  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
   174  				result.Paths = append(result.Paths, &Device_FieldSubPath{selector: selector, subPath: allowedPath})
   175  			}
   176  		}
   177  	}
   178  
   179  	if len(result.Paths) == 0 {
   180  		return nil
   181  	}
   182  	return result
   183  }
   184  
   185  func (fieldMask *Device_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   186  	return fieldMask.Subtract(other.(*Device_FieldMask))
   187  }
   188  
   189  // FilterInputFields generates copy of field paths with output_only field paths removed
   190  func (fieldMask *Device_FieldMask) FilterInputFields() *Device_FieldMask {
   191  	result := &Device_FieldMask{}
   192  	for _, path := range fieldMask.Paths {
   193  		switch path.Selector() {
   194  		case Device_FieldPathSelectorMetadata:
   195  			if _, ok := path.(*Device_FieldTerminalPath); ok {
   196  				for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths {
   197  					result.Paths = append(result.Paths, &Device_FieldSubPath{selector: path.Selector(), subPath: subpath})
   198  				}
   199  			} else if sub, ok := path.(*Device_FieldSubPath); ok {
   200  				selectedMask := &meta.Meta_FieldMask{
   201  					Paths: []meta.Meta_FieldPath{sub.subPath.(meta.Meta_FieldPath)},
   202  				}
   203  				for _, allowedPath := range selectedMask.FilterInputFields().Paths {
   204  					result.Paths = append(result.Paths, &Device_FieldSubPath{selector: Device_FieldPathSelectorMetadata, subPath: allowedPath})
   205  				}
   206  			}
   207  		case Device_FieldPathSelectorSpec:
   208  			if _, ok := path.(*Device_FieldTerminalPath); ok {
   209  				for _, subpath := range FullDevice_Spec_FieldMask().FilterInputFields().Paths {
   210  					result.Paths = append(result.Paths, &Device_FieldSubPath{selector: path.Selector(), subPath: subpath})
   211  				}
   212  			} else if sub, ok := path.(*Device_FieldSubPath); ok {
   213  				selectedMask := &Device_Spec_FieldMask{
   214  					Paths: []DeviceSpec_FieldPath{sub.subPath.(DeviceSpec_FieldPath)},
   215  				}
   216  				for _, allowedPath := range selectedMask.FilterInputFields().Paths {
   217  					result.Paths = append(result.Paths, &Device_FieldSubPath{selector: Device_FieldPathSelectorSpec, subPath: allowedPath})
   218  				}
   219  			}
   220  		default:
   221  			result.Paths = append(result.Paths, path)
   222  		}
   223  	}
   224  	return result
   225  }
   226  
   227  // ToFieldMask is used for proto conversions
   228  func (fieldMask *Device_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   229  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   230  	for _, path := range fieldMask.Paths {
   231  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   232  	}
   233  	return protoFieldMask
   234  }
   235  
   236  func (fieldMask *Device_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   237  	if fieldMask == nil {
   238  		return status.Error(codes.Internal, "target field mask is nil")
   239  	}
   240  	fieldMask.Paths = make([]Device_FieldPath, 0, len(protoFieldMask.Paths))
   241  	for _, strPath := range protoFieldMask.Paths {
   242  		path, err := ParseDevice_FieldPath(strPath)
   243  		if err != nil {
   244  			return err
   245  		}
   246  		fieldMask.Paths = append(fieldMask.Paths, path)
   247  	}
   248  	return nil
   249  }
   250  
   251  // implement methods required by customType
   252  func (fieldMask Device_FieldMask) Marshal() ([]byte, error) {
   253  	protoFieldMask := fieldMask.ToProtoFieldMask()
   254  	return proto.Marshal(protoFieldMask)
   255  }
   256  
   257  func (fieldMask *Device_FieldMask) Unmarshal(data []byte) error {
   258  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   259  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   260  		return err
   261  	}
   262  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   263  		return err
   264  	}
   265  	return nil
   266  }
   267  
   268  func (fieldMask *Device_FieldMask) Size() int {
   269  	return proto.Size(fieldMask.ToProtoFieldMask())
   270  }
   271  
   272  func (fieldMask Device_FieldMask) MarshalJSON() ([]byte, error) {
   273  	return json.Marshal(fieldMask.ToProtoFieldMask())
   274  }
   275  
   276  func (fieldMask *Device_FieldMask) UnmarshalJSON(data []byte) error {
   277  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   278  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   279  		return err
   280  	}
   281  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   282  		return err
   283  	}
   284  	return nil
   285  }
   286  
   287  func (fieldMask *Device_FieldMask) AppendPath(path Device_FieldPath) {
   288  	fieldMask.Paths = append(fieldMask.Paths, path)
   289  }
   290  
   291  func (fieldMask *Device_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   292  	fieldMask.Paths = append(fieldMask.Paths, path.(Device_FieldPath))
   293  }
   294  
   295  func (fieldMask *Device_FieldMask) GetPaths() []Device_FieldPath {
   296  	if fieldMask == nil {
   297  		return nil
   298  	}
   299  	return fieldMask.Paths
   300  }
   301  
   302  func (fieldMask *Device_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   303  	if fieldMask == nil {
   304  		return nil
   305  	}
   306  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   307  	for _, path := range fieldMask.Paths {
   308  		rawPaths = append(rawPaths, path)
   309  	}
   310  	return rawPaths
   311  }
   312  
   313  func (fieldMask *Device_FieldMask) SetFromCliFlag(raw string) error {
   314  	path, err := ParseDevice_FieldPath(raw)
   315  	if err != nil {
   316  		return err
   317  	}
   318  	fieldMask.Paths = append(fieldMask.Paths, path)
   319  	return nil
   320  }
   321  
   322  func (fieldMask *Device_FieldMask) Set(target, source *Device) {
   323  	for _, path := range fieldMask.Paths {
   324  		val, _ := path.GetSingle(source)
   325  		// if val is nil, then field does not exist in source, skip
   326  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   327  		if val != nil {
   328  			path.WithIValue(val).SetTo(&target)
   329  		}
   330  	}
   331  }
   332  
   333  func (fieldMask *Device_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   334  	fieldMask.Set(target.(*Device), source.(*Device))
   335  }
   336  
   337  func (fieldMask *Device_FieldMask) Project(source *Device) *Device {
   338  	if source == nil {
   339  		return nil
   340  	}
   341  	if fieldMask == nil {
   342  		return source
   343  	}
   344  	result := &Device{}
   345  	metadataMask := &meta.Meta_FieldMask{}
   346  	wholeMetadataAccepted := false
   347  	specMask := &Device_Spec_FieldMask{}
   348  	wholeSpecAccepted := false
   349  	statusMask := &Device_Status_FieldMask{}
   350  	wholeStatusAccepted := false
   351  	publicListingSpecMask := &Device_PublicListingSpec_FieldMask{}
   352  	wholePublicListingSpecAccepted := false
   353  
   354  	for _, p := range fieldMask.Paths {
   355  		switch tp := p.(type) {
   356  		case *Device_FieldTerminalPath:
   357  			switch tp.selector {
   358  			case Device_FieldPathSelectorName:
   359  				result.Name = source.Name
   360  			case Device_FieldPathSelectorMetadata:
   361  				result.Metadata = source.Metadata
   362  				wholeMetadataAccepted = true
   363  			case Device_FieldPathSelectorDisplayName:
   364  				result.DisplayName = source.DisplayName
   365  			case Device_FieldPathSelectorDescription:
   366  				result.Description = source.Description
   367  			case Device_FieldPathSelectorSpec:
   368  				result.Spec = source.Spec
   369  				wholeSpecAccepted = true
   370  			case Device_FieldPathSelectorStatus:
   371  				result.Status = source.Status
   372  				wholeStatusAccepted = true
   373  			case Device_FieldPathSelectorPublicListingSpec:
   374  				result.PublicListingSpec = source.PublicListingSpec
   375  				wholePublicListingSpecAccepted = true
   376  			}
   377  		case *Device_FieldSubPath:
   378  			switch tp.selector {
   379  			case Device_FieldPathSelectorMetadata:
   380  				metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath))
   381  			case Device_FieldPathSelectorSpec:
   382  				specMask.AppendPath(tp.subPath.(DeviceSpec_FieldPath))
   383  			case Device_FieldPathSelectorStatus:
   384  				statusMask.AppendPath(tp.subPath.(DeviceStatus_FieldPath))
   385  			case Device_FieldPathSelectorPublicListingSpec:
   386  				publicListingSpecMask.AppendPath(tp.subPath.(DevicePublicListingSpec_FieldPath))
   387  			}
   388  		}
   389  	}
   390  	if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 {
   391  		result.Metadata = metadataMask.Project(source.GetMetadata())
   392  	}
   393  	if wholeSpecAccepted == false && len(specMask.Paths) > 0 {
   394  		result.Spec = specMask.Project(source.GetSpec())
   395  	}
   396  	if wholeStatusAccepted == false && len(statusMask.Paths) > 0 {
   397  		result.Status = statusMask.Project(source.GetStatus())
   398  	}
   399  	if wholePublicListingSpecAccepted == false && len(publicListingSpecMask.Paths) > 0 {
   400  		result.PublicListingSpec = publicListingSpecMask.Project(source.GetPublicListingSpec())
   401  	}
   402  	return result
   403  }
   404  
   405  func (fieldMask *Device_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   406  	return fieldMask.Project(source.(*Device))
   407  }
   408  
   409  func (fieldMask *Device_FieldMask) PathsCount() int {
   410  	if fieldMask == nil {
   411  		return 0
   412  	}
   413  	return len(fieldMask.Paths)
   414  }
   415  
   416  type Device_Spec_FieldMask struct {
   417  	Paths []DeviceSpec_FieldPath
   418  }
   419  
   420  func FullDevice_Spec_FieldMask() *Device_Spec_FieldMask {
   421  	res := &Device_Spec_FieldMask{}
   422  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorServiceAccount})
   423  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorLogBucket})
   424  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorMetricsBucket})
   425  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorOsVersion})
   426  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorNetplanYamlConfig})
   427  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorNetplanApiConfigMode})
   428  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorOsImageUrl})
   429  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorSshConfig})
   430  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorAttestationConfig})
   431  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorDisableDeviceDiscovery})
   432  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorLoggingConfig})
   433  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorProxyConfig})
   434  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorLocation})
   435  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorUsbGuard})
   436  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorHealthChecks})
   437  	res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorDisableNetworkConfigFallback})
   438  	return res
   439  }
   440  
   441  func (fieldMask *Device_Spec_FieldMask) String() string {
   442  	if fieldMask == nil {
   443  		return "<nil>"
   444  	}
   445  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   446  	for _, path := range fieldMask.Paths {
   447  		pathsStr = append(pathsStr, path.String())
   448  	}
   449  	return strings.Join(pathsStr, ", ")
   450  }
   451  
   452  func (fieldMask *Device_Spec_FieldMask) IsFull() bool {
   453  	if fieldMask == nil {
   454  		return false
   455  	}
   456  	presentSelectors := make([]bool, 16)
   457  	for _, path := range fieldMask.Paths {
   458  		if asFinal, ok := path.(*DeviceSpec_FieldTerminalPath); ok {
   459  			presentSelectors[int(asFinal.selector)] = true
   460  		}
   461  	}
   462  	for _, flag := range presentSelectors {
   463  		if !flag {
   464  			return false
   465  		}
   466  	}
   467  	return true
   468  }
   469  
   470  func (fieldMask *Device_Spec_FieldMask) ProtoReflect() preflect.Message {
   471  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   472  		return ParseDeviceSpec_FieldPath(raw)
   473  	})
   474  }
   475  
   476  func (fieldMask *Device_Spec_FieldMask) ProtoMessage() {}
   477  
   478  func (fieldMask *Device_Spec_FieldMask) Reset() {
   479  	if fieldMask != nil {
   480  		fieldMask.Paths = nil
   481  	}
   482  }
   483  
   484  func (fieldMask *Device_Spec_FieldMask) Subtract(other *Device_Spec_FieldMask) *Device_Spec_FieldMask {
   485  	result := &Device_Spec_FieldMask{}
   486  	removedSelectors := make([]bool, 16)
   487  	otherSubMasks := map[DeviceSpec_FieldPathSelector]gotenobject.FieldMask{
   488  		DeviceSpec_FieldPathSelectorSshConfig:         &Device_Spec_SSHConfig_FieldMask{},
   489  		DeviceSpec_FieldPathSelectorAttestationConfig: &Device_Spec_AttestationConfig_FieldMask{},
   490  		DeviceSpec_FieldPathSelectorLoggingConfig:     &Device_Spec_LoggingConfig_FieldMask{},
   491  		DeviceSpec_FieldPathSelectorProxyConfig:       &Device_Spec_ProxyConfig_FieldMask{},
   492  		DeviceSpec_FieldPathSelectorLocation:          &Device_Spec_Location_FieldMask{},
   493  		DeviceSpec_FieldPathSelectorUsbGuard:          &Device_Spec_USBGuard_FieldMask{},
   494  	}
   495  	mySubMasks := map[DeviceSpec_FieldPathSelector]gotenobject.FieldMask{
   496  		DeviceSpec_FieldPathSelectorSshConfig:         &Device_Spec_SSHConfig_FieldMask{},
   497  		DeviceSpec_FieldPathSelectorAttestationConfig: &Device_Spec_AttestationConfig_FieldMask{},
   498  		DeviceSpec_FieldPathSelectorLoggingConfig:     &Device_Spec_LoggingConfig_FieldMask{},
   499  		DeviceSpec_FieldPathSelectorProxyConfig:       &Device_Spec_ProxyConfig_FieldMask{},
   500  		DeviceSpec_FieldPathSelectorLocation:          &Device_Spec_Location_FieldMask{},
   501  		DeviceSpec_FieldPathSelectorUsbGuard:          &Device_Spec_USBGuard_FieldMask{},
   502  	}
   503  
   504  	for _, path := range other.GetPaths() {
   505  		switch tp := path.(type) {
   506  		case *DeviceSpec_FieldTerminalPath:
   507  			removedSelectors[int(tp.selector)] = true
   508  		case *DeviceSpec_FieldSubPath:
   509  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
   510  		}
   511  	}
   512  	for _, path := range fieldMask.GetPaths() {
   513  		if !removedSelectors[int(path.Selector())] {
   514  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
   515  				if tp, ok := path.(*DeviceSpec_FieldTerminalPath); ok {
   516  					switch tp.selector {
   517  					case DeviceSpec_FieldPathSelectorSshConfig:
   518  						mySubMasks[DeviceSpec_FieldPathSelectorSshConfig] = FullDevice_Spec_SSHConfig_FieldMask()
   519  					case DeviceSpec_FieldPathSelectorAttestationConfig:
   520  						mySubMasks[DeviceSpec_FieldPathSelectorAttestationConfig] = FullDevice_Spec_AttestationConfig_FieldMask()
   521  					case DeviceSpec_FieldPathSelectorLoggingConfig:
   522  						mySubMasks[DeviceSpec_FieldPathSelectorLoggingConfig] = FullDevice_Spec_LoggingConfig_FieldMask()
   523  					case DeviceSpec_FieldPathSelectorProxyConfig:
   524  						mySubMasks[DeviceSpec_FieldPathSelectorProxyConfig] = FullDevice_Spec_ProxyConfig_FieldMask()
   525  					case DeviceSpec_FieldPathSelectorLocation:
   526  						mySubMasks[DeviceSpec_FieldPathSelectorLocation] = FullDevice_Spec_Location_FieldMask()
   527  					case DeviceSpec_FieldPathSelectorUsbGuard:
   528  						mySubMasks[DeviceSpec_FieldPathSelectorUsbGuard] = FullDevice_Spec_USBGuard_FieldMask()
   529  					}
   530  				} else if tp, ok := path.(*DeviceSpec_FieldSubPath); ok {
   531  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
   532  				}
   533  			} else {
   534  				result.Paths = append(result.Paths, path)
   535  			}
   536  		}
   537  	}
   538  	for selector, mySubMask := range mySubMasks {
   539  		if mySubMask.PathsCount() > 0 {
   540  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
   541  				result.Paths = append(result.Paths, &DeviceSpec_FieldSubPath{selector: selector, subPath: allowedPath})
   542  			}
   543  		}
   544  	}
   545  
   546  	if len(result.Paths) == 0 {
   547  		return nil
   548  	}
   549  	return result
   550  }
   551  
   552  func (fieldMask *Device_Spec_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   553  	return fieldMask.Subtract(other.(*Device_Spec_FieldMask))
   554  }
   555  
   556  // FilterInputFields generates copy of field paths with output_only field paths removed
   557  func (fieldMask *Device_Spec_FieldMask) FilterInputFields() *Device_Spec_FieldMask {
   558  	result := &Device_Spec_FieldMask{}
   559  	for _, path := range fieldMask.Paths {
   560  		switch path.Selector() {
   561  		case DeviceSpec_FieldPathSelectorLogBucket:
   562  		case DeviceSpec_FieldPathSelectorMetricsBucket:
   563  		default:
   564  			result.Paths = append(result.Paths, path)
   565  		}
   566  	}
   567  	return result
   568  }
   569  
   570  // ToFieldMask is used for proto conversions
   571  func (fieldMask *Device_Spec_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   572  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   573  	for _, path := range fieldMask.Paths {
   574  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   575  	}
   576  	return protoFieldMask
   577  }
   578  
   579  func (fieldMask *Device_Spec_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   580  	if fieldMask == nil {
   581  		return status.Error(codes.Internal, "target field mask is nil")
   582  	}
   583  	fieldMask.Paths = make([]DeviceSpec_FieldPath, 0, len(protoFieldMask.Paths))
   584  	for _, strPath := range protoFieldMask.Paths {
   585  		path, err := ParseDeviceSpec_FieldPath(strPath)
   586  		if err != nil {
   587  			return err
   588  		}
   589  		fieldMask.Paths = append(fieldMask.Paths, path)
   590  	}
   591  	return nil
   592  }
   593  
   594  // implement methods required by customType
   595  func (fieldMask Device_Spec_FieldMask) Marshal() ([]byte, error) {
   596  	protoFieldMask := fieldMask.ToProtoFieldMask()
   597  	return proto.Marshal(protoFieldMask)
   598  }
   599  
   600  func (fieldMask *Device_Spec_FieldMask) Unmarshal(data []byte) error {
   601  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   602  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   603  		return err
   604  	}
   605  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   606  		return err
   607  	}
   608  	return nil
   609  }
   610  
   611  func (fieldMask *Device_Spec_FieldMask) Size() int {
   612  	return proto.Size(fieldMask.ToProtoFieldMask())
   613  }
   614  
   615  func (fieldMask Device_Spec_FieldMask) MarshalJSON() ([]byte, error) {
   616  	return json.Marshal(fieldMask.ToProtoFieldMask())
   617  }
   618  
   619  func (fieldMask *Device_Spec_FieldMask) UnmarshalJSON(data []byte) error {
   620  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   621  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   622  		return err
   623  	}
   624  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   625  		return err
   626  	}
   627  	return nil
   628  }
   629  
   630  func (fieldMask *Device_Spec_FieldMask) AppendPath(path DeviceSpec_FieldPath) {
   631  	fieldMask.Paths = append(fieldMask.Paths, path)
   632  }
   633  
   634  func (fieldMask *Device_Spec_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   635  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceSpec_FieldPath))
   636  }
   637  
   638  func (fieldMask *Device_Spec_FieldMask) GetPaths() []DeviceSpec_FieldPath {
   639  	if fieldMask == nil {
   640  		return nil
   641  	}
   642  	return fieldMask.Paths
   643  }
   644  
   645  func (fieldMask *Device_Spec_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   646  	if fieldMask == nil {
   647  		return nil
   648  	}
   649  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   650  	for _, path := range fieldMask.Paths {
   651  		rawPaths = append(rawPaths, path)
   652  	}
   653  	return rawPaths
   654  }
   655  
   656  func (fieldMask *Device_Spec_FieldMask) SetFromCliFlag(raw string) error {
   657  	path, err := ParseDeviceSpec_FieldPath(raw)
   658  	if err != nil {
   659  		return err
   660  	}
   661  	fieldMask.Paths = append(fieldMask.Paths, path)
   662  	return nil
   663  }
   664  
   665  func (fieldMask *Device_Spec_FieldMask) Set(target, source *Device_Spec) {
   666  	for _, path := range fieldMask.Paths {
   667  		val, _ := path.GetSingle(source)
   668  		// if val is nil, then field does not exist in source, skip
   669  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   670  		if val != nil {
   671  			path.WithIValue(val).SetTo(&target)
   672  		}
   673  	}
   674  }
   675  
   676  func (fieldMask *Device_Spec_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   677  	fieldMask.Set(target.(*Device_Spec), source.(*Device_Spec))
   678  }
   679  
   680  func (fieldMask *Device_Spec_FieldMask) Project(source *Device_Spec) *Device_Spec {
   681  	if source == nil {
   682  		return nil
   683  	}
   684  	if fieldMask == nil {
   685  		return source
   686  	}
   687  	result := &Device_Spec{}
   688  	sshConfigMask := &Device_Spec_SSHConfig_FieldMask{}
   689  	wholeSshConfigAccepted := false
   690  	attestationConfigMask := &Device_Spec_AttestationConfig_FieldMask{}
   691  	wholeAttestationConfigAccepted := false
   692  	loggingConfigMask := &Device_Spec_LoggingConfig_FieldMask{}
   693  	wholeLoggingConfigAccepted := false
   694  	proxyConfigMask := &Device_Spec_ProxyConfig_FieldMask{}
   695  	wholeProxyConfigAccepted := false
   696  	locationMask := &Device_Spec_Location_FieldMask{}
   697  	wholeLocationAccepted := false
   698  	usbGuardMask := &Device_Spec_USBGuard_FieldMask{}
   699  	wholeUsbGuardAccepted := false
   700  
   701  	for _, p := range fieldMask.Paths {
   702  		switch tp := p.(type) {
   703  		case *DeviceSpec_FieldTerminalPath:
   704  			switch tp.selector {
   705  			case DeviceSpec_FieldPathSelectorServiceAccount:
   706  				result.ServiceAccount = source.ServiceAccount
   707  			case DeviceSpec_FieldPathSelectorLogBucket:
   708  				result.LogBucket = source.LogBucket
   709  			case DeviceSpec_FieldPathSelectorMetricsBucket:
   710  				result.MetricsBucket = source.MetricsBucket
   711  			case DeviceSpec_FieldPathSelectorOsVersion:
   712  				result.OsVersion = source.OsVersion
   713  			case DeviceSpec_FieldPathSelectorNetplanYamlConfig:
   714  				result.NetplanYamlConfig = source.NetplanYamlConfig
   715  			case DeviceSpec_FieldPathSelectorNetplanApiConfigMode:
   716  				result.NetplanApiConfigMode = source.NetplanApiConfigMode
   717  			case DeviceSpec_FieldPathSelectorOsImageUrl:
   718  				result.OsImageUrl = source.OsImageUrl
   719  			case DeviceSpec_FieldPathSelectorSshConfig:
   720  				result.SshConfig = source.SshConfig
   721  				wholeSshConfigAccepted = true
   722  			case DeviceSpec_FieldPathSelectorAttestationConfig:
   723  				result.AttestationConfig = source.AttestationConfig
   724  				wholeAttestationConfigAccepted = true
   725  			case DeviceSpec_FieldPathSelectorDisableDeviceDiscovery:
   726  				result.DisableDeviceDiscovery = source.DisableDeviceDiscovery
   727  			case DeviceSpec_FieldPathSelectorLoggingConfig:
   728  				result.LoggingConfig = source.LoggingConfig
   729  				wholeLoggingConfigAccepted = true
   730  			case DeviceSpec_FieldPathSelectorProxyConfig:
   731  				result.ProxyConfig = source.ProxyConfig
   732  				wholeProxyConfigAccepted = true
   733  			case DeviceSpec_FieldPathSelectorLocation:
   734  				result.Location = source.Location
   735  				wholeLocationAccepted = true
   736  			case DeviceSpec_FieldPathSelectorUsbGuard:
   737  				result.UsbGuard = source.UsbGuard
   738  				wholeUsbGuardAccepted = true
   739  			case DeviceSpec_FieldPathSelectorHealthChecks:
   740  				result.HealthChecks = source.HealthChecks
   741  			case DeviceSpec_FieldPathSelectorDisableNetworkConfigFallback:
   742  				result.DisableNetworkConfigFallback = source.DisableNetworkConfigFallback
   743  			}
   744  		case *DeviceSpec_FieldSubPath:
   745  			switch tp.selector {
   746  			case DeviceSpec_FieldPathSelectorSshConfig:
   747  				sshConfigMask.AppendPath(tp.subPath.(DeviceSpecSSHConfig_FieldPath))
   748  			case DeviceSpec_FieldPathSelectorAttestationConfig:
   749  				attestationConfigMask.AppendPath(tp.subPath.(DeviceSpecAttestationConfig_FieldPath))
   750  			case DeviceSpec_FieldPathSelectorLoggingConfig:
   751  				loggingConfigMask.AppendPath(tp.subPath.(DeviceSpecLoggingConfig_FieldPath))
   752  			case DeviceSpec_FieldPathSelectorProxyConfig:
   753  				proxyConfigMask.AppendPath(tp.subPath.(DeviceSpecProxyConfig_FieldPath))
   754  			case DeviceSpec_FieldPathSelectorLocation:
   755  				locationMask.AppendPath(tp.subPath.(DeviceSpecLocation_FieldPath))
   756  			case DeviceSpec_FieldPathSelectorUsbGuard:
   757  				usbGuardMask.AppendPath(tp.subPath.(DeviceSpecUSBGuard_FieldPath))
   758  			}
   759  		}
   760  	}
   761  	if wholeSshConfigAccepted == false && len(sshConfigMask.Paths) > 0 {
   762  		result.SshConfig = sshConfigMask.Project(source.GetSshConfig())
   763  	}
   764  	if wholeAttestationConfigAccepted == false && len(attestationConfigMask.Paths) > 0 {
   765  		result.AttestationConfig = attestationConfigMask.Project(source.GetAttestationConfig())
   766  	}
   767  	if wholeLoggingConfigAccepted == false && len(loggingConfigMask.Paths) > 0 {
   768  		result.LoggingConfig = loggingConfigMask.Project(source.GetLoggingConfig())
   769  	}
   770  	if wholeProxyConfigAccepted == false && len(proxyConfigMask.Paths) > 0 {
   771  		result.ProxyConfig = proxyConfigMask.Project(source.GetProxyConfig())
   772  	}
   773  	if wholeLocationAccepted == false && len(locationMask.Paths) > 0 {
   774  		result.Location = locationMask.Project(source.GetLocation())
   775  	}
   776  	if wholeUsbGuardAccepted == false && len(usbGuardMask.Paths) > 0 {
   777  		result.UsbGuard = usbGuardMask.Project(source.GetUsbGuard())
   778  	}
   779  	return result
   780  }
   781  
   782  func (fieldMask *Device_Spec_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   783  	return fieldMask.Project(source.(*Device_Spec))
   784  }
   785  
   786  func (fieldMask *Device_Spec_FieldMask) PathsCount() int {
   787  	if fieldMask == nil {
   788  		return 0
   789  	}
   790  	return len(fieldMask.Paths)
   791  }
   792  
   793  type Device_Status_FieldMask struct {
   794  	Paths []DeviceStatus_FieldPath
   795  }
   796  
   797  func FullDevice_Status_FieldMask() *Device_Status_FieldMask {
   798  	res := &Device_Status_FieldMask{}
   799  	res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorAddresses})
   800  	res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorConditions})
   801  	res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorNetworkConfigState})
   802  	res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorProxyConfigStatus})
   803  	res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorDeviceInfo})
   804  	res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorAttestationStatus})
   805  	res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorNormalizedAddress})
   806  	res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorConnectionStatus})
   807  	res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorConnectionStatusChangeTime})
   808  	return res
   809  }
   810  
   811  func (fieldMask *Device_Status_FieldMask) String() string {
   812  	if fieldMask == nil {
   813  		return "<nil>"
   814  	}
   815  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   816  	for _, path := range fieldMask.Paths {
   817  		pathsStr = append(pathsStr, path.String())
   818  	}
   819  	return strings.Join(pathsStr, ", ")
   820  }
   821  
   822  func (fieldMask *Device_Status_FieldMask) IsFull() bool {
   823  	if fieldMask == nil {
   824  		return false
   825  	}
   826  	presentSelectors := make([]bool, 9)
   827  	for _, path := range fieldMask.Paths {
   828  		if asFinal, ok := path.(*DeviceStatus_FieldTerminalPath); ok {
   829  			presentSelectors[int(asFinal.selector)] = true
   830  		}
   831  	}
   832  	for _, flag := range presentSelectors {
   833  		if !flag {
   834  			return false
   835  		}
   836  	}
   837  	return true
   838  }
   839  
   840  func (fieldMask *Device_Status_FieldMask) ProtoReflect() preflect.Message {
   841  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   842  		return ParseDeviceStatus_FieldPath(raw)
   843  	})
   844  }
   845  
   846  func (fieldMask *Device_Status_FieldMask) ProtoMessage() {}
   847  
   848  func (fieldMask *Device_Status_FieldMask) Reset() {
   849  	if fieldMask != nil {
   850  		fieldMask.Paths = nil
   851  	}
   852  }
   853  
   854  func (fieldMask *Device_Status_FieldMask) Subtract(other *Device_Status_FieldMask) *Device_Status_FieldMask {
   855  	result := &Device_Status_FieldMask{}
   856  	removedSelectors := make([]bool, 9)
   857  	otherSubMasks := map[DeviceStatus_FieldPathSelector]gotenobject.FieldMask{
   858  		DeviceStatus_FieldPathSelectorAddresses:          &Device_Status_Address_FieldMask{},
   859  		DeviceStatus_FieldPathSelectorConditions:         &Device_Status_Condition_FieldMask{},
   860  		DeviceStatus_FieldPathSelectorNetworkConfigState: &Device_Status_NetworkConfigState_FieldMask{},
   861  		DeviceStatus_FieldPathSelectorProxyConfigStatus:  &Device_Status_ProxyConfigStatus_FieldMask{},
   862  		DeviceStatus_FieldPathSelectorDeviceInfo:         &Device_Status_DeviceInfo_FieldMask{},
   863  		DeviceStatus_FieldPathSelectorAttestationStatus:  &iam_iam_common.PCR_FieldMask{},
   864  		DeviceStatus_FieldPathSelectorNormalizedAddress:  &Device_Status_NormalizedAddress_FieldMask{},
   865  	}
   866  	mySubMasks := map[DeviceStatus_FieldPathSelector]gotenobject.FieldMask{
   867  		DeviceStatus_FieldPathSelectorAddresses:          &Device_Status_Address_FieldMask{},
   868  		DeviceStatus_FieldPathSelectorConditions:         &Device_Status_Condition_FieldMask{},
   869  		DeviceStatus_FieldPathSelectorNetworkConfigState: &Device_Status_NetworkConfigState_FieldMask{},
   870  		DeviceStatus_FieldPathSelectorProxyConfigStatus:  &Device_Status_ProxyConfigStatus_FieldMask{},
   871  		DeviceStatus_FieldPathSelectorDeviceInfo:         &Device_Status_DeviceInfo_FieldMask{},
   872  		DeviceStatus_FieldPathSelectorAttestationStatus:  &iam_iam_common.PCR_FieldMask{},
   873  		DeviceStatus_FieldPathSelectorNormalizedAddress:  &Device_Status_NormalizedAddress_FieldMask{},
   874  	}
   875  
   876  	for _, path := range other.GetPaths() {
   877  		switch tp := path.(type) {
   878  		case *DeviceStatus_FieldTerminalPath:
   879  			removedSelectors[int(tp.selector)] = true
   880  		case *DeviceStatus_FieldSubPath:
   881  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
   882  		}
   883  	}
   884  	for _, path := range fieldMask.GetPaths() {
   885  		if !removedSelectors[int(path.Selector())] {
   886  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
   887  				if tp, ok := path.(*DeviceStatus_FieldTerminalPath); ok {
   888  					switch tp.selector {
   889  					case DeviceStatus_FieldPathSelectorAddresses:
   890  						mySubMasks[DeviceStatus_FieldPathSelectorAddresses] = FullDevice_Status_Address_FieldMask()
   891  					case DeviceStatus_FieldPathSelectorConditions:
   892  						mySubMasks[DeviceStatus_FieldPathSelectorConditions] = FullDevice_Status_Condition_FieldMask()
   893  					case DeviceStatus_FieldPathSelectorNetworkConfigState:
   894  						mySubMasks[DeviceStatus_FieldPathSelectorNetworkConfigState] = FullDevice_Status_NetworkConfigState_FieldMask()
   895  					case DeviceStatus_FieldPathSelectorProxyConfigStatus:
   896  						mySubMasks[DeviceStatus_FieldPathSelectorProxyConfigStatus] = FullDevice_Status_ProxyConfigStatus_FieldMask()
   897  					case DeviceStatus_FieldPathSelectorDeviceInfo:
   898  						mySubMasks[DeviceStatus_FieldPathSelectorDeviceInfo] = FullDevice_Status_DeviceInfo_FieldMask()
   899  					case DeviceStatus_FieldPathSelectorAttestationStatus:
   900  						mySubMasks[DeviceStatus_FieldPathSelectorAttestationStatus] = iam_iam_common.FullPCR_FieldMask()
   901  					case DeviceStatus_FieldPathSelectorNormalizedAddress:
   902  						mySubMasks[DeviceStatus_FieldPathSelectorNormalizedAddress] = FullDevice_Status_NormalizedAddress_FieldMask()
   903  					}
   904  				} else if tp, ok := path.(*DeviceStatus_FieldSubPath); ok {
   905  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
   906  				}
   907  			} else {
   908  				result.Paths = append(result.Paths, path)
   909  			}
   910  		}
   911  	}
   912  	for selector, mySubMask := range mySubMasks {
   913  		if mySubMask.PathsCount() > 0 {
   914  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
   915  				result.Paths = append(result.Paths, &DeviceStatus_FieldSubPath{selector: selector, subPath: allowedPath})
   916  			}
   917  		}
   918  	}
   919  
   920  	if len(result.Paths) == 0 {
   921  		return nil
   922  	}
   923  	return result
   924  }
   925  
   926  func (fieldMask *Device_Status_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   927  	return fieldMask.Subtract(other.(*Device_Status_FieldMask))
   928  }
   929  
   930  // FilterInputFields generates copy of field paths with output_only field paths removed
   931  func (fieldMask *Device_Status_FieldMask) FilterInputFields() *Device_Status_FieldMask {
   932  	result := &Device_Status_FieldMask{}
   933  	result.Paths = append(result.Paths, fieldMask.Paths...)
   934  	return result
   935  }
   936  
   937  // ToFieldMask is used for proto conversions
   938  func (fieldMask *Device_Status_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   939  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   940  	for _, path := range fieldMask.Paths {
   941  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   942  	}
   943  	return protoFieldMask
   944  }
   945  
   946  func (fieldMask *Device_Status_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   947  	if fieldMask == nil {
   948  		return status.Error(codes.Internal, "target field mask is nil")
   949  	}
   950  	fieldMask.Paths = make([]DeviceStatus_FieldPath, 0, len(protoFieldMask.Paths))
   951  	for _, strPath := range protoFieldMask.Paths {
   952  		path, err := ParseDeviceStatus_FieldPath(strPath)
   953  		if err != nil {
   954  			return err
   955  		}
   956  		fieldMask.Paths = append(fieldMask.Paths, path)
   957  	}
   958  	return nil
   959  }
   960  
   961  // implement methods required by customType
   962  func (fieldMask Device_Status_FieldMask) Marshal() ([]byte, error) {
   963  	protoFieldMask := fieldMask.ToProtoFieldMask()
   964  	return proto.Marshal(protoFieldMask)
   965  }
   966  
   967  func (fieldMask *Device_Status_FieldMask) Unmarshal(data []byte) error {
   968  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   969  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   970  		return err
   971  	}
   972  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   973  		return err
   974  	}
   975  	return nil
   976  }
   977  
   978  func (fieldMask *Device_Status_FieldMask) Size() int {
   979  	return proto.Size(fieldMask.ToProtoFieldMask())
   980  }
   981  
   982  func (fieldMask Device_Status_FieldMask) MarshalJSON() ([]byte, error) {
   983  	return json.Marshal(fieldMask.ToProtoFieldMask())
   984  }
   985  
   986  func (fieldMask *Device_Status_FieldMask) UnmarshalJSON(data []byte) error {
   987  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   988  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   989  		return err
   990  	}
   991  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   992  		return err
   993  	}
   994  	return nil
   995  }
   996  
   997  func (fieldMask *Device_Status_FieldMask) AppendPath(path DeviceStatus_FieldPath) {
   998  	fieldMask.Paths = append(fieldMask.Paths, path)
   999  }
  1000  
  1001  func (fieldMask *Device_Status_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  1002  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatus_FieldPath))
  1003  }
  1004  
  1005  func (fieldMask *Device_Status_FieldMask) GetPaths() []DeviceStatus_FieldPath {
  1006  	if fieldMask == nil {
  1007  		return nil
  1008  	}
  1009  	return fieldMask.Paths
  1010  }
  1011  
  1012  func (fieldMask *Device_Status_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  1013  	if fieldMask == nil {
  1014  		return nil
  1015  	}
  1016  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  1017  	for _, path := range fieldMask.Paths {
  1018  		rawPaths = append(rawPaths, path)
  1019  	}
  1020  	return rawPaths
  1021  }
  1022  
  1023  func (fieldMask *Device_Status_FieldMask) SetFromCliFlag(raw string) error {
  1024  	path, err := ParseDeviceStatus_FieldPath(raw)
  1025  	if err != nil {
  1026  		return err
  1027  	}
  1028  	fieldMask.Paths = append(fieldMask.Paths, path)
  1029  	return nil
  1030  }
  1031  
  1032  func (fieldMask *Device_Status_FieldMask) Set(target, source *Device_Status) {
  1033  	for _, path := range fieldMask.Paths {
  1034  		val, _ := path.GetSingle(source)
  1035  		// if val is nil, then field does not exist in source, skip
  1036  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  1037  		if val != nil {
  1038  			path.WithIValue(val).SetTo(&target)
  1039  		}
  1040  	}
  1041  }
  1042  
  1043  func (fieldMask *Device_Status_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  1044  	fieldMask.Set(target.(*Device_Status), source.(*Device_Status))
  1045  }
  1046  
  1047  func (fieldMask *Device_Status_FieldMask) Project(source *Device_Status) *Device_Status {
  1048  	if source == nil {
  1049  		return nil
  1050  	}
  1051  	if fieldMask == nil {
  1052  		return source
  1053  	}
  1054  	result := &Device_Status{}
  1055  	addressesMask := &Device_Status_Address_FieldMask{}
  1056  	wholeAddressesAccepted := false
  1057  	conditionsMask := &Device_Status_Condition_FieldMask{}
  1058  	wholeConditionsAccepted := false
  1059  	networkConfigStateMask := &Device_Status_NetworkConfigState_FieldMask{}
  1060  	wholeNetworkConfigStateAccepted := false
  1061  	proxyConfigStatusMask := &Device_Status_ProxyConfigStatus_FieldMask{}
  1062  	wholeProxyConfigStatusAccepted := false
  1063  	deviceInfoMask := &Device_Status_DeviceInfo_FieldMask{}
  1064  	wholeDeviceInfoAccepted := false
  1065  	attestationStatusMask := &iam_iam_common.PCR_FieldMask{}
  1066  	wholeAttestationStatusAccepted := false
  1067  	normalizedAddressMask := &Device_Status_NormalizedAddress_FieldMask{}
  1068  	wholeNormalizedAddressAccepted := false
  1069  
  1070  	for _, p := range fieldMask.Paths {
  1071  		switch tp := p.(type) {
  1072  		case *DeviceStatus_FieldTerminalPath:
  1073  			switch tp.selector {
  1074  			case DeviceStatus_FieldPathSelectorAddresses:
  1075  				result.Addresses = source.Addresses
  1076  				wholeAddressesAccepted = true
  1077  			case DeviceStatus_FieldPathSelectorConditions:
  1078  				result.Conditions = source.Conditions
  1079  				wholeConditionsAccepted = true
  1080  			case DeviceStatus_FieldPathSelectorNetworkConfigState:
  1081  				result.NetworkConfigState = source.NetworkConfigState
  1082  				wholeNetworkConfigStateAccepted = true
  1083  			case DeviceStatus_FieldPathSelectorProxyConfigStatus:
  1084  				result.ProxyConfigStatus = source.ProxyConfigStatus
  1085  				wholeProxyConfigStatusAccepted = true
  1086  			case DeviceStatus_FieldPathSelectorDeviceInfo:
  1087  				result.DeviceInfo = source.DeviceInfo
  1088  				wholeDeviceInfoAccepted = true
  1089  			case DeviceStatus_FieldPathSelectorAttestationStatus:
  1090  				result.AttestationStatus = source.AttestationStatus
  1091  				wholeAttestationStatusAccepted = true
  1092  			case DeviceStatus_FieldPathSelectorNormalizedAddress:
  1093  				result.NormalizedAddress = source.NormalizedAddress
  1094  				wholeNormalizedAddressAccepted = true
  1095  			case DeviceStatus_FieldPathSelectorConnectionStatus:
  1096  				result.ConnectionStatus = source.ConnectionStatus
  1097  			case DeviceStatus_FieldPathSelectorConnectionStatusChangeTime:
  1098  				result.ConnectionStatusChangeTime = source.ConnectionStatusChangeTime
  1099  			}
  1100  		case *DeviceStatus_FieldSubPath:
  1101  			switch tp.selector {
  1102  			case DeviceStatus_FieldPathSelectorAddresses:
  1103  				addressesMask.AppendPath(tp.subPath.(DeviceStatusAddress_FieldPath))
  1104  			case DeviceStatus_FieldPathSelectorConditions:
  1105  				conditionsMask.AppendPath(tp.subPath.(DeviceStatusCondition_FieldPath))
  1106  			case DeviceStatus_FieldPathSelectorNetworkConfigState:
  1107  				networkConfigStateMask.AppendPath(tp.subPath.(DeviceStatusNetworkConfigState_FieldPath))
  1108  			case DeviceStatus_FieldPathSelectorProxyConfigStatus:
  1109  				proxyConfigStatusMask.AppendPath(tp.subPath.(DeviceStatusProxyConfigStatus_FieldPath))
  1110  			case DeviceStatus_FieldPathSelectorDeviceInfo:
  1111  				deviceInfoMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfo_FieldPath))
  1112  			case DeviceStatus_FieldPathSelectorAttestationStatus:
  1113  				attestationStatusMask.AppendPath(tp.subPath.(iam_iam_common.PCR_FieldPath))
  1114  			case DeviceStatus_FieldPathSelectorNormalizedAddress:
  1115  				normalizedAddressMask.AppendPath(tp.subPath.(DeviceStatusNormalizedAddress_FieldPath))
  1116  			}
  1117  		}
  1118  	}
  1119  	if wholeAddressesAccepted == false && len(addressesMask.Paths) > 0 {
  1120  		for _, sourceItem := range source.GetAddresses() {
  1121  			result.Addresses = append(result.Addresses, addressesMask.Project(sourceItem))
  1122  		}
  1123  	}
  1124  	if wholeConditionsAccepted == false && len(conditionsMask.Paths) > 0 {
  1125  		for _, sourceItem := range source.GetConditions() {
  1126  			result.Conditions = append(result.Conditions, conditionsMask.Project(sourceItem))
  1127  		}
  1128  	}
  1129  	if wholeNetworkConfigStateAccepted == false && len(networkConfigStateMask.Paths) > 0 {
  1130  		result.NetworkConfigState = networkConfigStateMask.Project(source.GetNetworkConfigState())
  1131  	}
  1132  	if wholeProxyConfigStatusAccepted == false && len(proxyConfigStatusMask.Paths) > 0 {
  1133  		result.ProxyConfigStatus = proxyConfigStatusMask.Project(source.GetProxyConfigStatus())
  1134  	}
  1135  	if wholeDeviceInfoAccepted == false && len(deviceInfoMask.Paths) > 0 {
  1136  		result.DeviceInfo = deviceInfoMask.Project(source.GetDeviceInfo())
  1137  	}
  1138  	if wholeAttestationStatusAccepted == false && len(attestationStatusMask.Paths) > 0 {
  1139  		for _, sourceItem := range source.GetAttestationStatus() {
  1140  			result.AttestationStatus = append(result.AttestationStatus, attestationStatusMask.Project(sourceItem))
  1141  		}
  1142  	}
  1143  	if wholeNormalizedAddressAccepted == false && len(normalizedAddressMask.Paths) > 0 {
  1144  		result.NormalizedAddress = normalizedAddressMask.Project(source.GetNormalizedAddress())
  1145  	}
  1146  	return result
  1147  }
  1148  
  1149  func (fieldMask *Device_Status_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  1150  	return fieldMask.Project(source.(*Device_Status))
  1151  }
  1152  
  1153  func (fieldMask *Device_Status_FieldMask) PathsCount() int {
  1154  	if fieldMask == nil {
  1155  		return 0
  1156  	}
  1157  	return len(fieldMask.Paths)
  1158  }
  1159  
  1160  type Device_PublicListingSpec_FieldMask struct {
  1161  	Paths []DevicePublicListingSpec_FieldPath
  1162  }
  1163  
  1164  func FullDevice_PublicListingSpec_FieldMask() *Device_PublicListingSpec_FieldMask {
  1165  	res := &Device_PublicListingSpec_FieldMask{}
  1166  	res.Paths = append(res.Paths, &DevicePublicListingSpec_FieldTerminalPath{selector: DevicePublicListingSpec_FieldPathSelectorEnabled})
  1167  	res.Paths = append(res.Paths, &DevicePublicListingSpec_FieldTerminalPath{selector: DevicePublicListingSpec_FieldPathSelectorFieldMask})
  1168  	return res
  1169  }
  1170  
  1171  func (fieldMask *Device_PublicListingSpec_FieldMask) String() string {
  1172  	if fieldMask == nil {
  1173  		return "<nil>"
  1174  	}
  1175  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  1176  	for _, path := range fieldMask.Paths {
  1177  		pathsStr = append(pathsStr, path.String())
  1178  	}
  1179  	return strings.Join(pathsStr, ", ")
  1180  }
  1181  
  1182  func (fieldMask *Device_PublicListingSpec_FieldMask) IsFull() bool {
  1183  	if fieldMask == nil {
  1184  		return false
  1185  	}
  1186  	presentSelectors := make([]bool, 2)
  1187  	for _, path := range fieldMask.Paths {
  1188  		if asFinal, ok := path.(*DevicePublicListingSpec_FieldTerminalPath); ok {
  1189  			presentSelectors[int(asFinal.selector)] = true
  1190  		}
  1191  	}
  1192  	for _, flag := range presentSelectors {
  1193  		if !flag {
  1194  			return false
  1195  		}
  1196  	}
  1197  	return true
  1198  }
  1199  
  1200  func (fieldMask *Device_PublicListingSpec_FieldMask) ProtoReflect() preflect.Message {
  1201  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  1202  		return ParseDevicePublicListingSpec_FieldPath(raw)
  1203  	})
  1204  }
  1205  
  1206  func (fieldMask *Device_PublicListingSpec_FieldMask) ProtoMessage() {}
  1207  
  1208  func (fieldMask *Device_PublicListingSpec_FieldMask) Reset() {
  1209  	if fieldMask != nil {
  1210  		fieldMask.Paths = nil
  1211  	}
  1212  }
  1213  
  1214  func (fieldMask *Device_PublicListingSpec_FieldMask) Subtract(other *Device_PublicListingSpec_FieldMask) *Device_PublicListingSpec_FieldMask {
  1215  	result := &Device_PublicListingSpec_FieldMask{}
  1216  	removedSelectors := make([]bool, 2)
  1217  
  1218  	for _, path := range other.GetPaths() {
  1219  		switch tp := path.(type) {
  1220  		case *DevicePublicListingSpec_FieldTerminalPath:
  1221  			removedSelectors[int(tp.selector)] = true
  1222  		}
  1223  	}
  1224  	for _, path := range fieldMask.GetPaths() {
  1225  		if !removedSelectors[int(path.Selector())] {
  1226  			result.Paths = append(result.Paths, path)
  1227  		}
  1228  	}
  1229  
  1230  	if len(result.Paths) == 0 {
  1231  		return nil
  1232  	}
  1233  	return result
  1234  }
  1235  
  1236  func (fieldMask *Device_PublicListingSpec_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  1237  	return fieldMask.Subtract(other.(*Device_PublicListingSpec_FieldMask))
  1238  }
  1239  
  1240  // FilterInputFields generates copy of field paths with output_only field paths removed
  1241  func (fieldMask *Device_PublicListingSpec_FieldMask) FilterInputFields() *Device_PublicListingSpec_FieldMask {
  1242  	result := &Device_PublicListingSpec_FieldMask{}
  1243  	result.Paths = append(result.Paths, fieldMask.Paths...)
  1244  	return result
  1245  }
  1246  
  1247  // ToFieldMask is used for proto conversions
  1248  func (fieldMask *Device_PublicListingSpec_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  1249  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1250  	for _, path := range fieldMask.Paths {
  1251  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  1252  	}
  1253  	return protoFieldMask
  1254  }
  1255  
  1256  func (fieldMask *Device_PublicListingSpec_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  1257  	if fieldMask == nil {
  1258  		return status.Error(codes.Internal, "target field mask is nil")
  1259  	}
  1260  	fieldMask.Paths = make([]DevicePublicListingSpec_FieldPath, 0, len(protoFieldMask.Paths))
  1261  	for _, strPath := range protoFieldMask.Paths {
  1262  		path, err := ParseDevicePublicListingSpec_FieldPath(strPath)
  1263  		if err != nil {
  1264  			return err
  1265  		}
  1266  		fieldMask.Paths = append(fieldMask.Paths, path)
  1267  	}
  1268  	return nil
  1269  }
  1270  
  1271  // implement methods required by customType
  1272  func (fieldMask Device_PublicListingSpec_FieldMask) Marshal() ([]byte, error) {
  1273  	protoFieldMask := fieldMask.ToProtoFieldMask()
  1274  	return proto.Marshal(protoFieldMask)
  1275  }
  1276  
  1277  func (fieldMask *Device_PublicListingSpec_FieldMask) Unmarshal(data []byte) error {
  1278  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1279  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  1280  		return err
  1281  	}
  1282  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  1283  		return err
  1284  	}
  1285  	return nil
  1286  }
  1287  
  1288  func (fieldMask *Device_PublicListingSpec_FieldMask) Size() int {
  1289  	return proto.Size(fieldMask.ToProtoFieldMask())
  1290  }
  1291  
  1292  func (fieldMask Device_PublicListingSpec_FieldMask) MarshalJSON() ([]byte, error) {
  1293  	return json.Marshal(fieldMask.ToProtoFieldMask())
  1294  }
  1295  
  1296  func (fieldMask *Device_PublicListingSpec_FieldMask) UnmarshalJSON(data []byte) error {
  1297  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1298  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  1299  		return err
  1300  	}
  1301  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  1302  		return err
  1303  	}
  1304  	return nil
  1305  }
  1306  
  1307  func (fieldMask *Device_PublicListingSpec_FieldMask) AppendPath(path DevicePublicListingSpec_FieldPath) {
  1308  	fieldMask.Paths = append(fieldMask.Paths, path)
  1309  }
  1310  
  1311  func (fieldMask *Device_PublicListingSpec_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  1312  	fieldMask.Paths = append(fieldMask.Paths, path.(DevicePublicListingSpec_FieldPath))
  1313  }
  1314  
  1315  func (fieldMask *Device_PublicListingSpec_FieldMask) GetPaths() []DevicePublicListingSpec_FieldPath {
  1316  	if fieldMask == nil {
  1317  		return nil
  1318  	}
  1319  	return fieldMask.Paths
  1320  }
  1321  
  1322  func (fieldMask *Device_PublicListingSpec_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  1323  	if fieldMask == nil {
  1324  		return nil
  1325  	}
  1326  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  1327  	for _, path := range fieldMask.Paths {
  1328  		rawPaths = append(rawPaths, path)
  1329  	}
  1330  	return rawPaths
  1331  }
  1332  
  1333  func (fieldMask *Device_PublicListingSpec_FieldMask) SetFromCliFlag(raw string) error {
  1334  	path, err := ParseDevicePublicListingSpec_FieldPath(raw)
  1335  	if err != nil {
  1336  		return err
  1337  	}
  1338  	fieldMask.Paths = append(fieldMask.Paths, path)
  1339  	return nil
  1340  }
  1341  
  1342  func (fieldMask *Device_PublicListingSpec_FieldMask) Set(target, source *Device_PublicListingSpec) {
  1343  	for _, path := range fieldMask.Paths {
  1344  		val, _ := path.GetSingle(source)
  1345  		// if val is nil, then field does not exist in source, skip
  1346  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  1347  		if val != nil {
  1348  			path.WithIValue(val).SetTo(&target)
  1349  		}
  1350  	}
  1351  }
  1352  
  1353  func (fieldMask *Device_PublicListingSpec_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  1354  	fieldMask.Set(target.(*Device_PublicListingSpec), source.(*Device_PublicListingSpec))
  1355  }
  1356  
  1357  func (fieldMask *Device_PublicListingSpec_FieldMask) Project(source *Device_PublicListingSpec) *Device_PublicListingSpec {
  1358  	if source == nil {
  1359  		return nil
  1360  	}
  1361  	if fieldMask == nil {
  1362  		return source
  1363  	}
  1364  	result := &Device_PublicListingSpec{}
  1365  
  1366  	for _, p := range fieldMask.Paths {
  1367  		switch tp := p.(type) {
  1368  		case *DevicePublicListingSpec_FieldTerminalPath:
  1369  			switch tp.selector {
  1370  			case DevicePublicListingSpec_FieldPathSelectorEnabled:
  1371  				result.Enabled = source.Enabled
  1372  			case DevicePublicListingSpec_FieldPathSelectorFieldMask:
  1373  				result.FieldMask = source.FieldMask
  1374  			}
  1375  		}
  1376  	}
  1377  	return result
  1378  }
  1379  
  1380  func (fieldMask *Device_PublicListingSpec_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  1381  	return fieldMask.Project(source.(*Device_PublicListingSpec))
  1382  }
  1383  
  1384  func (fieldMask *Device_PublicListingSpec_FieldMask) PathsCount() int {
  1385  	if fieldMask == nil {
  1386  		return 0
  1387  	}
  1388  	return len(fieldMask.Paths)
  1389  }
  1390  
  1391  type Device_Spec_SSHConfig_FieldMask struct {
  1392  	Paths []DeviceSpecSSHConfig_FieldPath
  1393  }
  1394  
  1395  func FullDevice_Spec_SSHConfig_FieldMask() *Device_Spec_SSHConfig_FieldMask {
  1396  	res := &Device_Spec_SSHConfig_FieldMask{}
  1397  	res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorDisableSshServer})
  1398  	res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorDisableSshPassword})
  1399  	res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorSshAuthorized})
  1400  	res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorIpAllowList})
  1401  	res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorIpDenyList})
  1402  	res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorRejectPeriod})
  1403  	res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorDisableSshAuthkey})
  1404  	return res
  1405  }
  1406  
  1407  func (fieldMask *Device_Spec_SSHConfig_FieldMask) String() string {
  1408  	if fieldMask == nil {
  1409  		return "<nil>"
  1410  	}
  1411  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  1412  	for _, path := range fieldMask.Paths {
  1413  		pathsStr = append(pathsStr, path.String())
  1414  	}
  1415  	return strings.Join(pathsStr, ", ")
  1416  }
  1417  
  1418  func (fieldMask *Device_Spec_SSHConfig_FieldMask) IsFull() bool {
  1419  	if fieldMask == nil {
  1420  		return false
  1421  	}
  1422  	presentSelectors := make([]bool, 7)
  1423  	for _, path := range fieldMask.Paths {
  1424  		if asFinal, ok := path.(*DeviceSpecSSHConfig_FieldTerminalPath); ok {
  1425  			presentSelectors[int(asFinal.selector)] = true
  1426  		}
  1427  	}
  1428  	for _, flag := range presentSelectors {
  1429  		if !flag {
  1430  			return false
  1431  		}
  1432  	}
  1433  	return true
  1434  }
  1435  
  1436  func (fieldMask *Device_Spec_SSHConfig_FieldMask) ProtoReflect() preflect.Message {
  1437  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  1438  		return ParseDeviceSpecSSHConfig_FieldPath(raw)
  1439  	})
  1440  }
  1441  
  1442  func (fieldMask *Device_Spec_SSHConfig_FieldMask) ProtoMessage() {}
  1443  
  1444  func (fieldMask *Device_Spec_SSHConfig_FieldMask) Reset() {
  1445  	if fieldMask != nil {
  1446  		fieldMask.Paths = nil
  1447  	}
  1448  }
  1449  
  1450  func (fieldMask *Device_Spec_SSHConfig_FieldMask) Subtract(other *Device_Spec_SSHConfig_FieldMask) *Device_Spec_SSHConfig_FieldMask {
  1451  	result := &Device_Spec_SSHConfig_FieldMask{}
  1452  	removedSelectors := make([]bool, 7)
  1453  	otherSubMasks := map[DeviceSpecSSHConfig_FieldPathSelector]gotenobject.FieldMask{
  1454  		DeviceSpecSSHConfig_FieldPathSelectorSshAuthorized: &Device_Spec_SSHConfig_AuthKey_FieldMask{},
  1455  	}
  1456  	mySubMasks := map[DeviceSpecSSHConfig_FieldPathSelector]gotenobject.FieldMask{
  1457  		DeviceSpecSSHConfig_FieldPathSelectorSshAuthorized: &Device_Spec_SSHConfig_AuthKey_FieldMask{},
  1458  	}
  1459  
  1460  	for _, path := range other.GetPaths() {
  1461  		switch tp := path.(type) {
  1462  		case *DeviceSpecSSHConfig_FieldTerminalPath:
  1463  			removedSelectors[int(tp.selector)] = true
  1464  		case *DeviceSpecSSHConfig_FieldSubPath:
  1465  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  1466  		}
  1467  	}
  1468  	for _, path := range fieldMask.GetPaths() {
  1469  		if !removedSelectors[int(path.Selector())] {
  1470  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  1471  				if tp, ok := path.(*DeviceSpecSSHConfig_FieldTerminalPath); ok {
  1472  					switch tp.selector {
  1473  					case DeviceSpecSSHConfig_FieldPathSelectorSshAuthorized:
  1474  						mySubMasks[DeviceSpecSSHConfig_FieldPathSelectorSshAuthorized] = FullDevice_Spec_SSHConfig_AuthKey_FieldMask()
  1475  					}
  1476  				} else if tp, ok := path.(*DeviceSpecSSHConfig_FieldSubPath); ok {
  1477  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  1478  				}
  1479  			} else {
  1480  				result.Paths = append(result.Paths, path)
  1481  			}
  1482  		}
  1483  	}
  1484  	for selector, mySubMask := range mySubMasks {
  1485  		if mySubMask.PathsCount() > 0 {
  1486  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  1487  				result.Paths = append(result.Paths, &DeviceSpecSSHConfig_FieldSubPath{selector: selector, subPath: allowedPath})
  1488  			}
  1489  		}
  1490  	}
  1491  
  1492  	if len(result.Paths) == 0 {
  1493  		return nil
  1494  	}
  1495  	return result
  1496  }
  1497  
  1498  func (fieldMask *Device_Spec_SSHConfig_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  1499  	return fieldMask.Subtract(other.(*Device_Spec_SSHConfig_FieldMask))
  1500  }
  1501  
  1502  // FilterInputFields generates copy of field paths with output_only field paths removed
  1503  func (fieldMask *Device_Spec_SSHConfig_FieldMask) FilterInputFields() *Device_Spec_SSHConfig_FieldMask {
  1504  	result := &Device_Spec_SSHConfig_FieldMask{}
  1505  	result.Paths = append(result.Paths, fieldMask.Paths...)
  1506  	return result
  1507  }
  1508  
  1509  // ToFieldMask is used for proto conversions
  1510  func (fieldMask *Device_Spec_SSHConfig_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  1511  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1512  	for _, path := range fieldMask.Paths {
  1513  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  1514  	}
  1515  	return protoFieldMask
  1516  }
  1517  
  1518  func (fieldMask *Device_Spec_SSHConfig_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  1519  	if fieldMask == nil {
  1520  		return status.Error(codes.Internal, "target field mask is nil")
  1521  	}
  1522  	fieldMask.Paths = make([]DeviceSpecSSHConfig_FieldPath, 0, len(protoFieldMask.Paths))
  1523  	for _, strPath := range protoFieldMask.Paths {
  1524  		path, err := ParseDeviceSpecSSHConfig_FieldPath(strPath)
  1525  		if err != nil {
  1526  			return err
  1527  		}
  1528  		fieldMask.Paths = append(fieldMask.Paths, path)
  1529  	}
  1530  	return nil
  1531  }
  1532  
  1533  // implement methods required by customType
  1534  func (fieldMask Device_Spec_SSHConfig_FieldMask) Marshal() ([]byte, error) {
  1535  	protoFieldMask := fieldMask.ToProtoFieldMask()
  1536  	return proto.Marshal(protoFieldMask)
  1537  }
  1538  
  1539  func (fieldMask *Device_Spec_SSHConfig_FieldMask) Unmarshal(data []byte) error {
  1540  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1541  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  1542  		return err
  1543  	}
  1544  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  1545  		return err
  1546  	}
  1547  	return nil
  1548  }
  1549  
  1550  func (fieldMask *Device_Spec_SSHConfig_FieldMask) Size() int {
  1551  	return proto.Size(fieldMask.ToProtoFieldMask())
  1552  }
  1553  
  1554  func (fieldMask Device_Spec_SSHConfig_FieldMask) MarshalJSON() ([]byte, error) {
  1555  	return json.Marshal(fieldMask.ToProtoFieldMask())
  1556  }
  1557  
  1558  func (fieldMask *Device_Spec_SSHConfig_FieldMask) UnmarshalJSON(data []byte) error {
  1559  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1560  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  1561  		return err
  1562  	}
  1563  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  1564  		return err
  1565  	}
  1566  	return nil
  1567  }
  1568  
  1569  func (fieldMask *Device_Spec_SSHConfig_FieldMask) AppendPath(path DeviceSpecSSHConfig_FieldPath) {
  1570  	fieldMask.Paths = append(fieldMask.Paths, path)
  1571  }
  1572  
  1573  func (fieldMask *Device_Spec_SSHConfig_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  1574  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceSpecSSHConfig_FieldPath))
  1575  }
  1576  
  1577  func (fieldMask *Device_Spec_SSHConfig_FieldMask) GetPaths() []DeviceSpecSSHConfig_FieldPath {
  1578  	if fieldMask == nil {
  1579  		return nil
  1580  	}
  1581  	return fieldMask.Paths
  1582  }
  1583  
  1584  func (fieldMask *Device_Spec_SSHConfig_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  1585  	if fieldMask == nil {
  1586  		return nil
  1587  	}
  1588  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  1589  	for _, path := range fieldMask.Paths {
  1590  		rawPaths = append(rawPaths, path)
  1591  	}
  1592  	return rawPaths
  1593  }
  1594  
  1595  func (fieldMask *Device_Spec_SSHConfig_FieldMask) SetFromCliFlag(raw string) error {
  1596  	path, err := ParseDeviceSpecSSHConfig_FieldPath(raw)
  1597  	if err != nil {
  1598  		return err
  1599  	}
  1600  	fieldMask.Paths = append(fieldMask.Paths, path)
  1601  	return nil
  1602  }
  1603  
  1604  func (fieldMask *Device_Spec_SSHConfig_FieldMask) Set(target, source *Device_Spec_SSHConfig) {
  1605  	for _, path := range fieldMask.Paths {
  1606  		val, _ := path.GetSingle(source)
  1607  		// if val is nil, then field does not exist in source, skip
  1608  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  1609  		if val != nil {
  1610  			path.WithIValue(val).SetTo(&target)
  1611  		}
  1612  	}
  1613  }
  1614  
  1615  func (fieldMask *Device_Spec_SSHConfig_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  1616  	fieldMask.Set(target.(*Device_Spec_SSHConfig), source.(*Device_Spec_SSHConfig))
  1617  }
  1618  
  1619  func (fieldMask *Device_Spec_SSHConfig_FieldMask) Project(source *Device_Spec_SSHConfig) *Device_Spec_SSHConfig {
  1620  	if source == nil {
  1621  		return nil
  1622  	}
  1623  	if fieldMask == nil {
  1624  		return source
  1625  	}
  1626  	result := &Device_Spec_SSHConfig{}
  1627  	sshAuthorizedMask := &Device_Spec_SSHConfig_AuthKey_FieldMask{}
  1628  	wholeSshAuthorizedAccepted := false
  1629  
  1630  	for _, p := range fieldMask.Paths {
  1631  		switch tp := p.(type) {
  1632  		case *DeviceSpecSSHConfig_FieldTerminalPath:
  1633  			switch tp.selector {
  1634  			case DeviceSpecSSHConfig_FieldPathSelectorDisableSshServer:
  1635  				result.DisableSshServer = source.DisableSshServer
  1636  			case DeviceSpecSSHConfig_FieldPathSelectorDisableSshPassword:
  1637  				result.DisableSshPassword = source.DisableSshPassword
  1638  			case DeviceSpecSSHConfig_FieldPathSelectorSshAuthorized:
  1639  				result.SshAuthorized = source.SshAuthorized
  1640  				wholeSshAuthorizedAccepted = true
  1641  			case DeviceSpecSSHConfig_FieldPathSelectorIpAllowList:
  1642  				result.IpAllowList = source.IpAllowList
  1643  			case DeviceSpecSSHConfig_FieldPathSelectorIpDenyList:
  1644  				result.IpDenyList = source.IpDenyList
  1645  			case DeviceSpecSSHConfig_FieldPathSelectorRejectPeriod:
  1646  				result.RejectPeriod = source.RejectPeriod
  1647  			case DeviceSpecSSHConfig_FieldPathSelectorDisableSshAuthkey:
  1648  				result.DisableSshAuthkey = source.DisableSshAuthkey
  1649  			}
  1650  		case *DeviceSpecSSHConfig_FieldSubPath:
  1651  			switch tp.selector {
  1652  			case DeviceSpecSSHConfig_FieldPathSelectorSshAuthorized:
  1653  				sshAuthorizedMask.AppendPath(tp.subPath.(DeviceSpecSSHConfigAuthKey_FieldPath))
  1654  			}
  1655  		}
  1656  	}
  1657  	if wholeSshAuthorizedAccepted == false && len(sshAuthorizedMask.Paths) > 0 {
  1658  		for _, sourceItem := range source.GetSshAuthorized() {
  1659  			result.SshAuthorized = append(result.SshAuthorized, sshAuthorizedMask.Project(sourceItem))
  1660  		}
  1661  	}
  1662  	return result
  1663  }
  1664  
  1665  func (fieldMask *Device_Spec_SSHConfig_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  1666  	return fieldMask.Project(source.(*Device_Spec_SSHConfig))
  1667  }
  1668  
  1669  func (fieldMask *Device_Spec_SSHConfig_FieldMask) PathsCount() int {
  1670  	if fieldMask == nil {
  1671  		return 0
  1672  	}
  1673  	return len(fieldMask.Paths)
  1674  }
  1675  
  1676  type Device_Spec_AttestationConfig_FieldMask struct {
  1677  	Paths []DeviceSpecAttestationConfig_FieldPath
  1678  }
  1679  
  1680  func FullDevice_Spec_AttestationConfig_FieldMask() *Device_Spec_AttestationConfig_FieldMask {
  1681  	res := &Device_Spec_AttestationConfig_FieldMask{}
  1682  	res.Paths = append(res.Paths, &DeviceSpecAttestationConfig_FieldTerminalPath{selector: DeviceSpecAttestationConfig_FieldPathSelectorAttestationExpected})
  1683  	res.Paths = append(res.Paths, &DeviceSpecAttestationConfig_FieldTerminalPath{selector: DeviceSpecAttestationConfig_FieldPathSelectorAttestationDomain})
  1684  	return res
  1685  }
  1686  
  1687  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) String() string {
  1688  	if fieldMask == nil {
  1689  		return "<nil>"
  1690  	}
  1691  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  1692  	for _, path := range fieldMask.Paths {
  1693  		pathsStr = append(pathsStr, path.String())
  1694  	}
  1695  	return strings.Join(pathsStr, ", ")
  1696  }
  1697  
  1698  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) IsFull() bool {
  1699  	if fieldMask == nil {
  1700  		return false
  1701  	}
  1702  	presentSelectors := make([]bool, 2)
  1703  	for _, path := range fieldMask.Paths {
  1704  		if asFinal, ok := path.(*DeviceSpecAttestationConfig_FieldTerminalPath); ok {
  1705  			presentSelectors[int(asFinal.selector)] = true
  1706  		}
  1707  	}
  1708  	for _, flag := range presentSelectors {
  1709  		if !flag {
  1710  			return false
  1711  		}
  1712  	}
  1713  	return true
  1714  }
  1715  
  1716  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) ProtoReflect() preflect.Message {
  1717  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  1718  		return ParseDeviceSpecAttestationConfig_FieldPath(raw)
  1719  	})
  1720  }
  1721  
  1722  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) ProtoMessage() {}
  1723  
  1724  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) Reset() {
  1725  	if fieldMask != nil {
  1726  		fieldMask.Paths = nil
  1727  	}
  1728  }
  1729  
  1730  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) Subtract(other *Device_Spec_AttestationConfig_FieldMask) *Device_Spec_AttestationConfig_FieldMask {
  1731  	result := &Device_Spec_AttestationConfig_FieldMask{}
  1732  	removedSelectors := make([]bool, 2)
  1733  
  1734  	for _, path := range other.GetPaths() {
  1735  		switch tp := path.(type) {
  1736  		case *DeviceSpecAttestationConfig_FieldTerminalPath:
  1737  			removedSelectors[int(tp.selector)] = true
  1738  		}
  1739  	}
  1740  	for _, path := range fieldMask.GetPaths() {
  1741  		if !removedSelectors[int(path.Selector())] {
  1742  			result.Paths = append(result.Paths, path)
  1743  		}
  1744  	}
  1745  
  1746  	if len(result.Paths) == 0 {
  1747  		return nil
  1748  	}
  1749  	return result
  1750  }
  1751  
  1752  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  1753  	return fieldMask.Subtract(other.(*Device_Spec_AttestationConfig_FieldMask))
  1754  }
  1755  
  1756  // FilterInputFields generates copy of field paths with output_only field paths removed
  1757  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) FilterInputFields() *Device_Spec_AttestationConfig_FieldMask {
  1758  	result := &Device_Spec_AttestationConfig_FieldMask{}
  1759  	result.Paths = append(result.Paths, fieldMask.Paths...)
  1760  	return result
  1761  }
  1762  
  1763  // ToFieldMask is used for proto conversions
  1764  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  1765  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1766  	for _, path := range fieldMask.Paths {
  1767  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  1768  	}
  1769  	return protoFieldMask
  1770  }
  1771  
  1772  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  1773  	if fieldMask == nil {
  1774  		return status.Error(codes.Internal, "target field mask is nil")
  1775  	}
  1776  	fieldMask.Paths = make([]DeviceSpecAttestationConfig_FieldPath, 0, len(protoFieldMask.Paths))
  1777  	for _, strPath := range protoFieldMask.Paths {
  1778  		path, err := ParseDeviceSpecAttestationConfig_FieldPath(strPath)
  1779  		if err != nil {
  1780  			return err
  1781  		}
  1782  		fieldMask.Paths = append(fieldMask.Paths, path)
  1783  	}
  1784  	return nil
  1785  }
  1786  
  1787  // implement methods required by customType
  1788  func (fieldMask Device_Spec_AttestationConfig_FieldMask) Marshal() ([]byte, error) {
  1789  	protoFieldMask := fieldMask.ToProtoFieldMask()
  1790  	return proto.Marshal(protoFieldMask)
  1791  }
  1792  
  1793  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) Unmarshal(data []byte) error {
  1794  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1795  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  1796  		return err
  1797  	}
  1798  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  1799  		return err
  1800  	}
  1801  	return nil
  1802  }
  1803  
  1804  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) Size() int {
  1805  	return proto.Size(fieldMask.ToProtoFieldMask())
  1806  }
  1807  
  1808  func (fieldMask Device_Spec_AttestationConfig_FieldMask) MarshalJSON() ([]byte, error) {
  1809  	return json.Marshal(fieldMask.ToProtoFieldMask())
  1810  }
  1811  
  1812  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) UnmarshalJSON(data []byte) error {
  1813  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1814  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  1815  		return err
  1816  	}
  1817  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  1818  		return err
  1819  	}
  1820  	return nil
  1821  }
  1822  
  1823  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) AppendPath(path DeviceSpecAttestationConfig_FieldPath) {
  1824  	fieldMask.Paths = append(fieldMask.Paths, path)
  1825  }
  1826  
  1827  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  1828  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceSpecAttestationConfig_FieldPath))
  1829  }
  1830  
  1831  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) GetPaths() []DeviceSpecAttestationConfig_FieldPath {
  1832  	if fieldMask == nil {
  1833  		return nil
  1834  	}
  1835  	return fieldMask.Paths
  1836  }
  1837  
  1838  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  1839  	if fieldMask == nil {
  1840  		return nil
  1841  	}
  1842  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  1843  	for _, path := range fieldMask.Paths {
  1844  		rawPaths = append(rawPaths, path)
  1845  	}
  1846  	return rawPaths
  1847  }
  1848  
  1849  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) SetFromCliFlag(raw string) error {
  1850  	path, err := ParseDeviceSpecAttestationConfig_FieldPath(raw)
  1851  	if err != nil {
  1852  		return err
  1853  	}
  1854  	fieldMask.Paths = append(fieldMask.Paths, path)
  1855  	return nil
  1856  }
  1857  
  1858  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) Set(target, source *Device_Spec_AttestationConfig) {
  1859  	for _, path := range fieldMask.Paths {
  1860  		val, _ := path.GetSingle(source)
  1861  		// if val is nil, then field does not exist in source, skip
  1862  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  1863  		if val != nil {
  1864  			path.WithIValue(val).SetTo(&target)
  1865  		}
  1866  	}
  1867  }
  1868  
  1869  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  1870  	fieldMask.Set(target.(*Device_Spec_AttestationConfig), source.(*Device_Spec_AttestationConfig))
  1871  }
  1872  
  1873  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) Project(source *Device_Spec_AttestationConfig) *Device_Spec_AttestationConfig {
  1874  	if source == nil {
  1875  		return nil
  1876  	}
  1877  	if fieldMask == nil {
  1878  		return source
  1879  	}
  1880  	result := &Device_Spec_AttestationConfig{}
  1881  
  1882  	for _, p := range fieldMask.Paths {
  1883  		switch tp := p.(type) {
  1884  		case *DeviceSpecAttestationConfig_FieldTerminalPath:
  1885  			switch tp.selector {
  1886  			case DeviceSpecAttestationConfig_FieldPathSelectorAttestationExpected:
  1887  				result.AttestationExpected = source.AttestationExpected
  1888  			case DeviceSpecAttestationConfig_FieldPathSelectorAttestationDomain:
  1889  				result.AttestationDomain = source.AttestationDomain
  1890  			}
  1891  		}
  1892  	}
  1893  	return result
  1894  }
  1895  
  1896  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  1897  	return fieldMask.Project(source.(*Device_Spec_AttestationConfig))
  1898  }
  1899  
  1900  func (fieldMask *Device_Spec_AttestationConfig_FieldMask) PathsCount() int {
  1901  	if fieldMask == nil {
  1902  		return 0
  1903  	}
  1904  	return len(fieldMask.Paths)
  1905  }
  1906  
  1907  type Device_Spec_LoggingConfig_FieldMask struct {
  1908  	Paths []DeviceSpecLoggingConfig_FieldPath
  1909  }
  1910  
  1911  func FullDevice_Spec_LoggingConfig_FieldMask() *Device_Spec_LoggingConfig_FieldMask {
  1912  	res := &Device_Spec_LoggingConfig_FieldMask{}
  1913  	res.Paths = append(res.Paths, &DeviceSpecLoggingConfig_FieldTerminalPath{selector: DeviceSpecLoggingConfig_FieldPathSelectorPriority})
  1914  	res.Paths = append(res.Paths, &DeviceSpecLoggingConfig_FieldTerminalPath{selector: DeviceSpecLoggingConfig_FieldPathSelectorUnits})
  1915  	res.Paths = append(res.Paths, &DeviceSpecLoggingConfig_FieldTerminalPath{selector: DeviceSpecLoggingConfig_FieldPathSelectorEnableJournalExport})
  1916  	res.Paths = append(res.Paths, &DeviceSpecLoggingConfig_FieldTerminalPath{selector: DeviceSpecLoggingConfig_FieldPathSelectorContainerLoggingConfig})
  1917  	return res
  1918  }
  1919  
  1920  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) String() string {
  1921  	if fieldMask == nil {
  1922  		return "<nil>"
  1923  	}
  1924  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  1925  	for _, path := range fieldMask.Paths {
  1926  		pathsStr = append(pathsStr, path.String())
  1927  	}
  1928  	return strings.Join(pathsStr, ", ")
  1929  }
  1930  
  1931  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) IsFull() bool {
  1932  	if fieldMask == nil {
  1933  		return false
  1934  	}
  1935  	presentSelectors := make([]bool, 4)
  1936  	for _, path := range fieldMask.Paths {
  1937  		if asFinal, ok := path.(*DeviceSpecLoggingConfig_FieldTerminalPath); ok {
  1938  			presentSelectors[int(asFinal.selector)] = true
  1939  		}
  1940  	}
  1941  	for _, flag := range presentSelectors {
  1942  		if !flag {
  1943  			return false
  1944  		}
  1945  	}
  1946  	return true
  1947  }
  1948  
  1949  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) ProtoReflect() preflect.Message {
  1950  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  1951  		return ParseDeviceSpecLoggingConfig_FieldPath(raw)
  1952  	})
  1953  }
  1954  
  1955  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) ProtoMessage() {}
  1956  
  1957  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) Reset() {
  1958  	if fieldMask != nil {
  1959  		fieldMask.Paths = nil
  1960  	}
  1961  }
  1962  
  1963  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) Subtract(other *Device_Spec_LoggingConfig_FieldMask) *Device_Spec_LoggingConfig_FieldMask {
  1964  	result := &Device_Spec_LoggingConfig_FieldMask{}
  1965  	removedSelectors := make([]bool, 4)
  1966  	otherSubMasks := map[DeviceSpecLoggingConfig_FieldPathSelector]gotenobject.FieldMask{
  1967  		DeviceSpecLoggingConfig_FieldPathSelectorContainerLoggingConfig: &Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask{},
  1968  	}
  1969  	mySubMasks := map[DeviceSpecLoggingConfig_FieldPathSelector]gotenobject.FieldMask{
  1970  		DeviceSpecLoggingConfig_FieldPathSelectorContainerLoggingConfig: &Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask{},
  1971  	}
  1972  
  1973  	for _, path := range other.GetPaths() {
  1974  		switch tp := path.(type) {
  1975  		case *DeviceSpecLoggingConfig_FieldTerminalPath:
  1976  			removedSelectors[int(tp.selector)] = true
  1977  		case *DeviceSpecLoggingConfig_FieldSubPath:
  1978  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  1979  		}
  1980  	}
  1981  	for _, path := range fieldMask.GetPaths() {
  1982  		if !removedSelectors[int(path.Selector())] {
  1983  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  1984  				if tp, ok := path.(*DeviceSpecLoggingConfig_FieldTerminalPath); ok {
  1985  					switch tp.selector {
  1986  					case DeviceSpecLoggingConfig_FieldPathSelectorContainerLoggingConfig:
  1987  						mySubMasks[DeviceSpecLoggingConfig_FieldPathSelectorContainerLoggingConfig] = FullDevice_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask()
  1988  					}
  1989  				} else if tp, ok := path.(*DeviceSpecLoggingConfig_FieldSubPath); ok {
  1990  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  1991  				}
  1992  			} else {
  1993  				result.Paths = append(result.Paths, path)
  1994  			}
  1995  		}
  1996  	}
  1997  	for selector, mySubMask := range mySubMasks {
  1998  		if mySubMask.PathsCount() > 0 {
  1999  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  2000  				result.Paths = append(result.Paths, &DeviceSpecLoggingConfig_FieldSubPath{selector: selector, subPath: allowedPath})
  2001  			}
  2002  		}
  2003  	}
  2004  
  2005  	if len(result.Paths) == 0 {
  2006  		return nil
  2007  	}
  2008  	return result
  2009  }
  2010  
  2011  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  2012  	return fieldMask.Subtract(other.(*Device_Spec_LoggingConfig_FieldMask))
  2013  }
  2014  
  2015  // FilterInputFields generates copy of field paths with output_only field paths removed
  2016  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) FilterInputFields() *Device_Spec_LoggingConfig_FieldMask {
  2017  	result := &Device_Spec_LoggingConfig_FieldMask{}
  2018  	result.Paths = append(result.Paths, fieldMask.Paths...)
  2019  	return result
  2020  }
  2021  
  2022  // ToFieldMask is used for proto conversions
  2023  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  2024  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  2025  	for _, path := range fieldMask.Paths {
  2026  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  2027  	}
  2028  	return protoFieldMask
  2029  }
  2030  
  2031  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  2032  	if fieldMask == nil {
  2033  		return status.Error(codes.Internal, "target field mask is nil")
  2034  	}
  2035  	fieldMask.Paths = make([]DeviceSpecLoggingConfig_FieldPath, 0, len(protoFieldMask.Paths))
  2036  	for _, strPath := range protoFieldMask.Paths {
  2037  		path, err := ParseDeviceSpecLoggingConfig_FieldPath(strPath)
  2038  		if err != nil {
  2039  			return err
  2040  		}
  2041  		fieldMask.Paths = append(fieldMask.Paths, path)
  2042  	}
  2043  	return nil
  2044  }
  2045  
  2046  // implement methods required by customType
  2047  func (fieldMask Device_Spec_LoggingConfig_FieldMask) Marshal() ([]byte, error) {
  2048  	protoFieldMask := fieldMask.ToProtoFieldMask()
  2049  	return proto.Marshal(protoFieldMask)
  2050  }
  2051  
  2052  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) Unmarshal(data []byte) error {
  2053  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  2054  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  2055  		return err
  2056  	}
  2057  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  2058  		return err
  2059  	}
  2060  	return nil
  2061  }
  2062  
  2063  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) Size() int {
  2064  	return proto.Size(fieldMask.ToProtoFieldMask())
  2065  }
  2066  
  2067  func (fieldMask Device_Spec_LoggingConfig_FieldMask) MarshalJSON() ([]byte, error) {
  2068  	return json.Marshal(fieldMask.ToProtoFieldMask())
  2069  }
  2070  
  2071  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) UnmarshalJSON(data []byte) error {
  2072  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  2073  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  2074  		return err
  2075  	}
  2076  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  2077  		return err
  2078  	}
  2079  	return nil
  2080  }
  2081  
  2082  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) AppendPath(path DeviceSpecLoggingConfig_FieldPath) {
  2083  	fieldMask.Paths = append(fieldMask.Paths, path)
  2084  }
  2085  
  2086  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  2087  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceSpecLoggingConfig_FieldPath))
  2088  }
  2089  
  2090  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) GetPaths() []DeviceSpecLoggingConfig_FieldPath {
  2091  	if fieldMask == nil {
  2092  		return nil
  2093  	}
  2094  	return fieldMask.Paths
  2095  }
  2096  
  2097  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  2098  	if fieldMask == nil {
  2099  		return nil
  2100  	}
  2101  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  2102  	for _, path := range fieldMask.Paths {
  2103  		rawPaths = append(rawPaths, path)
  2104  	}
  2105  	return rawPaths
  2106  }
  2107  
  2108  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) SetFromCliFlag(raw string) error {
  2109  	path, err := ParseDeviceSpecLoggingConfig_FieldPath(raw)
  2110  	if err != nil {
  2111  		return err
  2112  	}
  2113  	fieldMask.Paths = append(fieldMask.Paths, path)
  2114  	return nil
  2115  }
  2116  
  2117  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) Set(target, source *Device_Spec_LoggingConfig) {
  2118  	for _, path := range fieldMask.Paths {
  2119  		val, _ := path.GetSingle(source)
  2120  		// if val is nil, then field does not exist in source, skip
  2121  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  2122  		if val != nil {
  2123  			path.WithIValue(val).SetTo(&target)
  2124  		}
  2125  	}
  2126  }
  2127  
  2128  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  2129  	fieldMask.Set(target.(*Device_Spec_LoggingConfig), source.(*Device_Spec_LoggingConfig))
  2130  }
  2131  
  2132  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) Project(source *Device_Spec_LoggingConfig) *Device_Spec_LoggingConfig {
  2133  	if source == nil {
  2134  		return nil
  2135  	}
  2136  	if fieldMask == nil {
  2137  		return source
  2138  	}
  2139  	result := &Device_Spec_LoggingConfig{}
  2140  	containerLoggingConfigMask := &Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask{}
  2141  	wholeContainerLoggingConfigAccepted := false
  2142  
  2143  	for _, p := range fieldMask.Paths {
  2144  		switch tp := p.(type) {
  2145  		case *DeviceSpecLoggingConfig_FieldTerminalPath:
  2146  			switch tp.selector {
  2147  			case DeviceSpecLoggingConfig_FieldPathSelectorPriority:
  2148  				result.Priority = source.Priority
  2149  			case DeviceSpecLoggingConfig_FieldPathSelectorUnits:
  2150  				result.Units = source.Units
  2151  			case DeviceSpecLoggingConfig_FieldPathSelectorEnableJournalExport:
  2152  				result.EnableJournalExport = source.EnableJournalExport
  2153  			case DeviceSpecLoggingConfig_FieldPathSelectorContainerLoggingConfig:
  2154  				result.ContainerLoggingConfig = source.ContainerLoggingConfig
  2155  				wholeContainerLoggingConfigAccepted = true
  2156  			}
  2157  		case *DeviceSpecLoggingConfig_FieldSubPath:
  2158  			switch tp.selector {
  2159  			case DeviceSpecLoggingConfig_FieldPathSelectorContainerLoggingConfig:
  2160  				containerLoggingConfigMask.AppendPath(tp.subPath.(DeviceSpecLoggingConfigContainerLoggingConfig_FieldPath))
  2161  			}
  2162  		}
  2163  	}
  2164  	if wholeContainerLoggingConfigAccepted == false && len(containerLoggingConfigMask.Paths) > 0 {
  2165  		result.ContainerLoggingConfig = containerLoggingConfigMask.Project(source.GetContainerLoggingConfig())
  2166  	}
  2167  	return result
  2168  }
  2169  
  2170  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  2171  	return fieldMask.Project(source.(*Device_Spec_LoggingConfig))
  2172  }
  2173  
  2174  func (fieldMask *Device_Spec_LoggingConfig_FieldMask) PathsCount() int {
  2175  	if fieldMask == nil {
  2176  		return 0
  2177  	}
  2178  	return len(fieldMask.Paths)
  2179  }
  2180  
  2181  type Device_Spec_ProxyConfig_FieldMask struct {
  2182  	Paths []DeviceSpecProxyConfig_FieldPath
  2183  }
  2184  
  2185  func FullDevice_Spec_ProxyConfig_FieldMask() *Device_Spec_ProxyConfig_FieldMask {
  2186  	res := &Device_Spec_ProxyConfig_FieldMask{}
  2187  	res.Paths = append(res.Paths, &DeviceSpecProxyConfig_FieldTerminalPath{selector: DeviceSpecProxyConfig_FieldPathSelectorHttpProxy})
  2188  	res.Paths = append(res.Paths, &DeviceSpecProxyConfig_FieldTerminalPath{selector: DeviceSpecProxyConfig_FieldPathSelectorHttpsProxy})
  2189  	res.Paths = append(res.Paths, &DeviceSpecProxyConfig_FieldTerminalPath{selector: DeviceSpecProxyConfig_FieldPathSelectorNoProxy})
  2190  	res.Paths = append(res.Paths, &DeviceSpecProxyConfig_FieldTerminalPath{selector: DeviceSpecProxyConfig_FieldPathSelectorProxyInterfaces})
  2191  	return res
  2192  }
  2193  
  2194  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) String() string {
  2195  	if fieldMask == nil {
  2196  		return "<nil>"
  2197  	}
  2198  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  2199  	for _, path := range fieldMask.Paths {
  2200  		pathsStr = append(pathsStr, path.String())
  2201  	}
  2202  	return strings.Join(pathsStr, ", ")
  2203  }
  2204  
  2205  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) IsFull() bool {
  2206  	if fieldMask == nil {
  2207  		return false
  2208  	}
  2209  	presentSelectors := make([]bool, 4)
  2210  	for _, path := range fieldMask.Paths {
  2211  		if asFinal, ok := path.(*DeviceSpecProxyConfig_FieldTerminalPath); ok {
  2212  			presentSelectors[int(asFinal.selector)] = true
  2213  		}
  2214  	}
  2215  	for _, flag := range presentSelectors {
  2216  		if !flag {
  2217  			return false
  2218  		}
  2219  	}
  2220  	return true
  2221  }
  2222  
  2223  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) ProtoReflect() preflect.Message {
  2224  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  2225  		return ParseDeviceSpecProxyConfig_FieldPath(raw)
  2226  	})
  2227  }
  2228  
  2229  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) ProtoMessage() {}
  2230  
  2231  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) Reset() {
  2232  	if fieldMask != nil {
  2233  		fieldMask.Paths = nil
  2234  	}
  2235  }
  2236  
  2237  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) Subtract(other *Device_Spec_ProxyConfig_FieldMask) *Device_Spec_ProxyConfig_FieldMask {
  2238  	result := &Device_Spec_ProxyConfig_FieldMask{}
  2239  	removedSelectors := make([]bool, 4)
  2240  
  2241  	for _, path := range other.GetPaths() {
  2242  		switch tp := path.(type) {
  2243  		case *DeviceSpecProxyConfig_FieldTerminalPath:
  2244  			removedSelectors[int(tp.selector)] = true
  2245  		}
  2246  	}
  2247  	for _, path := range fieldMask.GetPaths() {
  2248  		if !removedSelectors[int(path.Selector())] {
  2249  			result.Paths = append(result.Paths, path)
  2250  		}
  2251  	}
  2252  
  2253  	if len(result.Paths) == 0 {
  2254  		return nil
  2255  	}
  2256  	return result
  2257  }
  2258  
  2259  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  2260  	return fieldMask.Subtract(other.(*Device_Spec_ProxyConfig_FieldMask))
  2261  }
  2262  
  2263  // FilterInputFields generates copy of field paths with output_only field paths removed
  2264  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) FilterInputFields() *Device_Spec_ProxyConfig_FieldMask {
  2265  	result := &Device_Spec_ProxyConfig_FieldMask{}
  2266  	result.Paths = append(result.Paths, fieldMask.Paths...)
  2267  	return result
  2268  }
  2269  
  2270  // ToFieldMask is used for proto conversions
  2271  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  2272  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  2273  	for _, path := range fieldMask.Paths {
  2274  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  2275  	}
  2276  	return protoFieldMask
  2277  }
  2278  
  2279  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  2280  	if fieldMask == nil {
  2281  		return status.Error(codes.Internal, "target field mask is nil")
  2282  	}
  2283  	fieldMask.Paths = make([]DeviceSpecProxyConfig_FieldPath, 0, len(protoFieldMask.Paths))
  2284  	for _, strPath := range protoFieldMask.Paths {
  2285  		path, err := ParseDeviceSpecProxyConfig_FieldPath(strPath)
  2286  		if err != nil {
  2287  			return err
  2288  		}
  2289  		fieldMask.Paths = append(fieldMask.Paths, path)
  2290  	}
  2291  	return nil
  2292  }
  2293  
  2294  // implement methods required by customType
  2295  func (fieldMask Device_Spec_ProxyConfig_FieldMask) Marshal() ([]byte, error) {
  2296  	protoFieldMask := fieldMask.ToProtoFieldMask()
  2297  	return proto.Marshal(protoFieldMask)
  2298  }
  2299  
  2300  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) Unmarshal(data []byte) error {
  2301  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  2302  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  2303  		return err
  2304  	}
  2305  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  2306  		return err
  2307  	}
  2308  	return nil
  2309  }
  2310  
  2311  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) Size() int {
  2312  	return proto.Size(fieldMask.ToProtoFieldMask())
  2313  }
  2314  
  2315  func (fieldMask Device_Spec_ProxyConfig_FieldMask) MarshalJSON() ([]byte, error) {
  2316  	return json.Marshal(fieldMask.ToProtoFieldMask())
  2317  }
  2318  
  2319  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) UnmarshalJSON(data []byte) error {
  2320  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  2321  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  2322  		return err
  2323  	}
  2324  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  2325  		return err
  2326  	}
  2327  	return nil
  2328  }
  2329  
  2330  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) AppendPath(path DeviceSpecProxyConfig_FieldPath) {
  2331  	fieldMask.Paths = append(fieldMask.Paths, path)
  2332  }
  2333  
  2334  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  2335  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceSpecProxyConfig_FieldPath))
  2336  }
  2337  
  2338  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) GetPaths() []DeviceSpecProxyConfig_FieldPath {
  2339  	if fieldMask == nil {
  2340  		return nil
  2341  	}
  2342  	return fieldMask.Paths
  2343  }
  2344  
  2345  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  2346  	if fieldMask == nil {
  2347  		return nil
  2348  	}
  2349  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  2350  	for _, path := range fieldMask.Paths {
  2351  		rawPaths = append(rawPaths, path)
  2352  	}
  2353  	return rawPaths
  2354  }
  2355  
  2356  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) SetFromCliFlag(raw string) error {
  2357  	path, err := ParseDeviceSpecProxyConfig_FieldPath(raw)
  2358  	if err != nil {
  2359  		return err
  2360  	}
  2361  	fieldMask.Paths = append(fieldMask.Paths, path)
  2362  	return nil
  2363  }
  2364  
  2365  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) Set(target, source *Device_Spec_ProxyConfig) {
  2366  	for _, path := range fieldMask.Paths {
  2367  		val, _ := path.GetSingle(source)
  2368  		// if val is nil, then field does not exist in source, skip
  2369  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  2370  		if val != nil {
  2371  			path.WithIValue(val).SetTo(&target)
  2372  		}
  2373  	}
  2374  }
  2375  
  2376  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  2377  	fieldMask.Set(target.(*Device_Spec_ProxyConfig), source.(*Device_Spec_ProxyConfig))
  2378  }
  2379  
  2380  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) Project(source *Device_Spec_ProxyConfig) *Device_Spec_ProxyConfig {
  2381  	if source == nil {
  2382  		return nil
  2383  	}
  2384  	if fieldMask == nil {
  2385  		return source
  2386  	}
  2387  	result := &Device_Spec_ProxyConfig{}
  2388  
  2389  	for _, p := range fieldMask.Paths {
  2390  		switch tp := p.(type) {
  2391  		case *DeviceSpecProxyConfig_FieldTerminalPath:
  2392  			switch tp.selector {
  2393  			case DeviceSpecProxyConfig_FieldPathSelectorHttpProxy:
  2394  				result.HttpProxy = source.HttpProxy
  2395  			case DeviceSpecProxyConfig_FieldPathSelectorHttpsProxy:
  2396  				result.HttpsProxy = source.HttpsProxy
  2397  			case DeviceSpecProxyConfig_FieldPathSelectorNoProxy:
  2398  				result.NoProxy = source.NoProxy
  2399  			case DeviceSpecProxyConfig_FieldPathSelectorProxyInterfaces:
  2400  				result.ProxyInterfaces = source.ProxyInterfaces
  2401  			}
  2402  		}
  2403  	}
  2404  	return result
  2405  }
  2406  
  2407  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  2408  	return fieldMask.Project(source.(*Device_Spec_ProxyConfig))
  2409  }
  2410  
  2411  func (fieldMask *Device_Spec_ProxyConfig_FieldMask) PathsCount() int {
  2412  	if fieldMask == nil {
  2413  		return 0
  2414  	}
  2415  	return len(fieldMask.Paths)
  2416  }
  2417  
  2418  type Device_Spec_Location_FieldMask struct {
  2419  	Paths []DeviceSpecLocation_FieldPath
  2420  }
  2421  
  2422  func FullDevice_Spec_Location_FieldMask() *Device_Spec_Location_FieldMask {
  2423  	res := &Device_Spec_Location_FieldMask{}
  2424  	res.Paths = append(res.Paths, &DeviceSpecLocation_FieldTerminalPath{selector: DeviceSpecLocation_FieldPathSelectorAddress})
  2425  	res.Paths = append(res.Paths, &DeviceSpecLocation_FieldTerminalPath{selector: DeviceSpecLocation_FieldPathSelectorPlacement})
  2426  	return res
  2427  }
  2428  
  2429  func (fieldMask *Device_Spec_Location_FieldMask) String() string {
  2430  	if fieldMask == nil {
  2431  		return "<nil>"
  2432  	}
  2433  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  2434  	for _, path := range fieldMask.Paths {
  2435  		pathsStr = append(pathsStr, path.String())
  2436  	}
  2437  	return strings.Join(pathsStr, ", ")
  2438  }
  2439  
  2440  func (fieldMask *Device_Spec_Location_FieldMask) IsFull() bool {
  2441  	if fieldMask == nil {
  2442  		return false
  2443  	}
  2444  	presentSelectors := make([]bool, 2)
  2445  	for _, path := range fieldMask.Paths {
  2446  		if asFinal, ok := path.(*DeviceSpecLocation_FieldTerminalPath); ok {
  2447  			presentSelectors[int(asFinal.selector)] = true
  2448  		}
  2449  	}
  2450  	for _, flag := range presentSelectors {
  2451  		if !flag {
  2452  			return false
  2453  		}
  2454  	}
  2455  	return true
  2456  }
  2457  
  2458  func (fieldMask *Device_Spec_Location_FieldMask) ProtoReflect() preflect.Message {
  2459  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  2460  		return ParseDeviceSpecLocation_FieldPath(raw)
  2461  	})
  2462  }
  2463  
  2464  func (fieldMask *Device_Spec_Location_FieldMask) ProtoMessage() {}
  2465  
  2466  func (fieldMask *Device_Spec_Location_FieldMask) Reset() {
  2467  	if fieldMask != nil {
  2468  		fieldMask.Paths = nil
  2469  	}
  2470  }
  2471  
  2472  func (fieldMask *Device_Spec_Location_FieldMask) Subtract(other *Device_Spec_Location_FieldMask) *Device_Spec_Location_FieldMask {
  2473  	result := &Device_Spec_Location_FieldMask{}
  2474  	removedSelectors := make([]bool, 2)
  2475  
  2476  	for _, path := range other.GetPaths() {
  2477  		switch tp := path.(type) {
  2478  		case *DeviceSpecLocation_FieldTerminalPath:
  2479  			removedSelectors[int(tp.selector)] = true
  2480  		}
  2481  	}
  2482  	for _, path := range fieldMask.GetPaths() {
  2483  		if !removedSelectors[int(path.Selector())] {
  2484  			result.Paths = append(result.Paths, path)
  2485  		}
  2486  	}
  2487  
  2488  	if len(result.Paths) == 0 {
  2489  		return nil
  2490  	}
  2491  	return result
  2492  }
  2493  
  2494  func (fieldMask *Device_Spec_Location_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  2495  	return fieldMask.Subtract(other.(*Device_Spec_Location_FieldMask))
  2496  }
  2497  
  2498  // FilterInputFields generates copy of field paths with output_only field paths removed
  2499  func (fieldMask *Device_Spec_Location_FieldMask) FilterInputFields() *Device_Spec_Location_FieldMask {
  2500  	result := &Device_Spec_Location_FieldMask{}
  2501  	result.Paths = append(result.Paths, fieldMask.Paths...)
  2502  	return result
  2503  }
  2504  
  2505  // ToFieldMask is used for proto conversions
  2506  func (fieldMask *Device_Spec_Location_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  2507  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  2508  	for _, path := range fieldMask.Paths {
  2509  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  2510  	}
  2511  	return protoFieldMask
  2512  }
  2513  
  2514  func (fieldMask *Device_Spec_Location_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  2515  	if fieldMask == nil {
  2516  		return status.Error(codes.Internal, "target field mask is nil")
  2517  	}
  2518  	fieldMask.Paths = make([]DeviceSpecLocation_FieldPath, 0, len(protoFieldMask.Paths))
  2519  	for _, strPath := range protoFieldMask.Paths {
  2520  		path, err := ParseDeviceSpecLocation_FieldPath(strPath)
  2521  		if err != nil {
  2522  			return err
  2523  		}
  2524  		fieldMask.Paths = append(fieldMask.Paths, path)
  2525  	}
  2526  	return nil
  2527  }
  2528  
  2529  // implement methods required by customType
  2530  func (fieldMask Device_Spec_Location_FieldMask) Marshal() ([]byte, error) {
  2531  	protoFieldMask := fieldMask.ToProtoFieldMask()
  2532  	return proto.Marshal(protoFieldMask)
  2533  }
  2534  
  2535  func (fieldMask *Device_Spec_Location_FieldMask) Unmarshal(data []byte) error {
  2536  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  2537  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  2538  		return err
  2539  	}
  2540  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  2541  		return err
  2542  	}
  2543  	return nil
  2544  }
  2545  
  2546  func (fieldMask *Device_Spec_Location_FieldMask) Size() int {
  2547  	return proto.Size(fieldMask.ToProtoFieldMask())
  2548  }
  2549  
  2550  func (fieldMask Device_Spec_Location_FieldMask) MarshalJSON() ([]byte, error) {
  2551  	return json.Marshal(fieldMask.ToProtoFieldMask())
  2552  }
  2553  
  2554  func (fieldMask *Device_Spec_Location_FieldMask) UnmarshalJSON(data []byte) error {
  2555  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  2556  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  2557  		return err
  2558  	}
  2559  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  2560  		return err
  2561  	}
  2562  	return nil
  2563  }
  2564  
  2565  func (fieldMask *Device_Spec_Location_FieldMask) AppendPath(path DeviceSpecLocation_FieldPath) {
  2566  	fieldMask.Paths = append(fieldMask.Paths, path)
  2567  }
  2568  
  2569  func (fieldMask *Device_Spec_Location_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  2570  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceSpecLocation_FieldPath))
  2571  }
  2572  
  2573  func (fieldMask *Device_Spec_Location_FieldMask) GetPaths() []DeviceSpecLocation_FieldPath {
  2574  	if fieldMask == nil {
  2575  		return nil
  2576  	}
  2577  	return fieldMask.Paths
  2578  }
  2579  
  2580  func (fieldMask *Device_Spec_Location_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  2581  	if fieldMask == nil {
  2582  		return nil
  2583  	}
  2584  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  2585  	for _, path := range fieldMask.Paths {
  2586  		rawPaths = append(rawPaths, path)
  2587  	}
  2588  	return rawPaths
  2589  }
  2590  
  2591  func (fieldMask *Device_Spec_Location_FieldMask) SetFromCliFlag(raw string) error {
  2592  	path, err := ParseDeviceSpecLocation_FieldPath(raw)
  2593  	if err != nil {
  2594  		return err
  2595  	}
  2596  	fieldMask.Paths = append(fieldMask.Paths, path)
  2597  	return nil
  2598  }
  2599  
  2600  func (fieldMask *Device_Spec_Location_FieldMask) Set(target, source *Device_Spec_Location) {
  2601  	for _, path := range fieldMask.Paths {
  2602  		val, _ := path.GetSingle(source)
  2603  		// if val is nil, then field does not exist in source, skip
  2604  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  2605  		if val != nil {
  2606  			path.WithIValue(val).SetTo(&target)
  2607  		}
  2608  	}
  2609  }
  2610  
  2611  func (fieldMask *Device_Spec_Location_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  2612  	fieldMask.Set(target.(*Device_Spec_Location), source.(*Device_Spec_Location))
  2613  }
  2614  
  2615  func (fieldMask *Device_Spec_Location_FieldMask) Project(source *Device_Spec_Location) *Device_Spec_Location {
  2616  	if source == nil {
  2617  		return nil
  2618  	}
  2619  	if fieldMask == nil {
  2620  		return source
  2621  	}
  2622  	result := &Device_Spec_Location{}
  2623  
  2624  	for _, p := range fieldMask.Paths {
  2625  		switch tp := p.(type) {
  2626  		case *DeviceSpecLocation_FieldTerminalPath:
  2627  			switch tp.selector {
  2628  			case DeviceSpecLocation_FieldPathSelectorAddress:
  2629  				result.Address = source.Address
  2630  			case DeviceSpecLocation_FieldPathSelectorPlacement:
  2631  				result.Placement = source.Placement
  2632  			}
  2633  		}
  2634  	}
  2635  	return result
  2636  }
  2637  
  2638  func (fieldMask *Device_Spec_Location_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  2639  	return fieldMask.Project(source.(*Device_Spec_Location))
  2640  }
  2641  
  2642  func (fieldMask *Device_Spec_Location_FieldMask) PathsCount() int {
  2643  	if fieldMask == nil {
  2644  		return 0
  2645  	}
  2646  	return len(fieldMask.Paths)
  2647  }
  2648  
  2649  type Device_Spec_USBGuard_FieldMask struct {
  2650  	Paths []DeviceSpecUSBGuard_FieldPath
  2651  }
  2652  
  2653  func FullDevice_Spec_USBGuard_FieldMask() *Device_Spec_USBGuard_FieldMask {
  2654  	res := &Device_Spec_USBGuard_FieldMask{}
  2655  	res.Paths = append(res.Paths, &DeviceSpecUSBGuard_FieldTerminalPath{selector: DeviceSpecUSBGuard_FieldPathSelectorEnable})
  2656  	res.Paths = append(res.Paths, &DeviceSpecUSBGuard_FieldTerminalPath{selector: DeviceSpecUSBGuard_FieldPathSelectorWhiteList})
  2657  	return res
  2658  }
  2659  
  2660  func (fieldMask *Device_Spec_USBGuard_FieldMask) String() string {
  2661  	if fieldMask == nil {
  2662  		return "<nil>"
  2663  	}
  2664  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  2665  	for _, path := range fieldMask.Paths {
  2666  		pathsStr = append(pathsStr, path.String())
  2667  	}
  2668  	return strings.Join(pathsStr, ", ")
  2669  }
  2670  
  2671  func (fieldMask *Device_Spec_USBGuard_FieldMask) IsFull() bool {
  2672  	if fieldMask == nil {
  2673  		return false
  2674  	}
  2675  	presentSelectors := make([]bool, 2)
  2676  	for _, path := range fieldMask.Paths {
  2677  		if asFinal, ok := path.(*DeviceSpecUSBGuard_FieldTerminalPath); ok {
  2678  			presentSelectors[int(asFinal.selector)] = true
  2679  		}
  2680  	}
  2681  	for _, flag := range presentSelectors {
  2682  		if !flag {
  2683  			return false
  2684  		}
  2685  	}
  2686  	return true
  2687  }
  2688  
  2689  func (fieldMask *Device_Spec_USBGuard_FieldMask) ProtoReflect() preflect.Message {
  2690  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  2691  		return ParseDeviceSpecUSBGuard_FieldPath(raw)
  2692  	})
  2693  }
  2694  
  2695  func (fieldMask *Device_Spec_USBGuard_FieldMask) ProtoMessage() {}
  2696  
  2697  func (fieldMask *Device_Spec_USBGuard_FieldMask) Reset() {
  2698  	if fieldMask != nil {
  2699  		fieldMask.Paths = nil
  2700  	}
  2701  }
  2702  
  2703  func (fieldMask *Device_Spec_USBGuard_FieldMask) Subtract(other *Device_Spec_USBGuard_FieldMask) *Device_Spec_USBGuard_FieldMask {
  2704  	result := &Device_Spec_USBGuard_FieldMask{}
  2705  	removedSelectors := make([]bool, 2)
  2706  	otherSubMasks := map[DeviceSpecUSBGuard_FieldPathSelector]gotenobject.FieldMask{
  2707  		DeviceSpecUSBGuard_FieldPathSelectorWhiteList: &Device_Spec_USBGuard_WhiteList_FieldMask{},
  2708  	}
  2709  	mySubMasks := map[DeviceSpecUSBGuard_FieldPathSelector]gotenobject.FieldMask{
  2710  		DeviceSpecUSBGuard_FieldPathSelectorWhiteList: &Device_Spec_USBGuard_WhiteList_FieldMask{},
  2711  	}
  2712  
  2713  	for _, path := range other.GetPaths() {
  2714  		switch tp := path.(type) {
  2715  		case *DeviceSpecUSBGuard_FieldTerminalPath:
  2716  			removedSelectors[int(tp.selector)] = true
  2717  		case *DeviceSpecUSBGuard_FieldSubPath:
  2718  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  2719  		}
  2720  	}
  2721  	for _, path := range fieldMask.GetPaths() {
  2722  		if !removedSelectors[int(path.Selector())] {
  2723  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  2724  				if tp, ok := path.(*DeviceSpecUSBGuard_FieldTerminalPath); ok {
  2725  					switch tp.selector {
  2726  					case DeviceSpecUSBGuard_FieldPathSelectorWhiteList:
  2727  						mySubMasks[DeviceSpecUSBGuard_FieldPathSelectorWhiteList] = FullDevice_Spec_USBGuard_WhiteList_FieldMask()
  2728  					}
  2729  				} else if tp, ok := path.(*DeviceSpecUSBGuard_FieldSubPath); ok {
  2730  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  2731  				}
  2732  			} else {
  2733  				result.Paths = append(result.Paths, path)
  2734  			}
  2735  		}
  2736  	}
  2737  	for selector, mySubMask := range mySubMasks {
  2738  		if mySubMask.PathsCount() > 0 {
  2739  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  2740  				result.Paths = append(result.Paths, &DeviceSpecUSBGuard_FieldSubPath{selector: selector, subPath: allowedPath})
  2741  			}
  2742  		}
  2743  	}
  2744  
  2745  	if len(result.Paths) == 0 {
  2746  		return nil
  2747  	}
  2748  	return result
  2749  }
  2750  
  2751  func (fieldMask *Device_Spec_USBGuard_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  2752  	return fieldMask.Subtract(other.(*Device_Spec_USBGuard_FieldMask))
  2753  }
  2754  
  2755  // FilterInputFields generates copy of field paths with output_only field paths removed
  2756  func (fieldMask *Device_Spec_USBGuard_FieldMask) FilterInputFields() *Device_Spec_USBGuard_FieldMask {
  2757  	result := &Device_Spec_USBGuard_FieldMask{}
  2758  	result.Paths = append(result.Paths, fieldMask.Paths...)
  2759  	return result
  2760  }
  2761  
  2762  // ToFieldMask is used for proto conversions
  2763  func (fieldMask *Device_Spec_USBGuard_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  2764  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  2765  	for _, path := range fieldMask.Paths {
  2766  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  2767  	}
  2768  	return protoFieldMask
  2769  }
  2770  
  2771  func (fieldMask *Device_Spec_USBGuard_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  2772  	if fieldMask == nil {
  2773  		return status.Error(codes.Internal, "target field mask is nil")
  2774  	}
  2775  	fieldMask.Paths = make([]DeviceSpecUSBGuard_FieldPath, 0, len(protoFieldMask.Paths))
  2776  	for _, strPath := range protoFieldMask.Paths {
  2777  		path, err := ParseDeviceSpecUSBGuard_FieldPath(strPath)
  2778  		if err != nil {
  2779  			return err
  2780  		}
  2781  		fieldMask.Paths = append(fieldMask.Paths, path)
  2782  	}
  2783  	return nil
  2784  }
  2785  
  2786  // implement methods required by customType
  2787  func (fieldMask Device_Spec_USBGuard_FieldMask) Marshal() ([]byte, error) {
  2788  	protoFieldMask := fieldMask.ToProtoFieldMask()
  2789  	return proto.Marshal(protoFieldMask)
  2790  }
  2791  
  2792  func (fieldMask *Device_Spec_USBGuard_FieldMask) Unmarshal(data []byte) error {
  2793  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  2794  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  2795  		return err
  2796  	}
  2797  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  2798  		return err
  2799  	}
  2800  	return nil
  2801  }
  2802  
  2803  func (fieldMask *Device_Spec_USBGuard_FieldMask) Size() int {
  2804  	return proto.Size(fieldMask.ToProtoFieldMask())
  2805  }
  2806  
  2807  func (fieldMask Device_Spec_USBGuard_FieldMask) MarshalJSON() ([]byte, error) {
  2808  	return json.Marshal(fieldMask.ToProtoFieldMask())
  2809  }
  2810  
  2811  func (fieldMask *Device_Spec_USBGuard_FieldMask) UnmarshalJSON(data []byte) error {
  2812  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  2813  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  2814  		return err
  2815  	}
  2816  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  2817  		return err
  2818  	}
  2819  	return nil
  2820  }
  2821  
  2822  func (fieldMask *Device_Spec_USBGuard_FieldMask) AppendPath(path DeviceSpecUSBGuard_FieldPath) {
  2823  	fieldMask.Paths = append(fieldMask.Paths, path)
  2824  }
  2825  
  2826  func (fieldMask *Device_Spec_USBGuard_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  2827  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceSpecUSBGuard_FieldPath))
  2828  }
  2829  
  2830  func (fieldMask *Device_Spec_USBGuard_FieldMask) GetPaths() []DeviceSpecUSBGuard_FieldPath {
  2831  	if fieldMask == nil {
  2832  		return nil
  2833  	}
  2834  	return fieldMask.Paths
  2835  }
  2836  
  2837  func (fieldMask *Device_Spec_USBGuard_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  2838  	if fieldMask == nil {
  2839  		return nil
  2840  	}
  2841  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  2842  	for _, path := range fieldMask.Paths {
  2843  		rawPaths = append(rawPaths, path)
  2844  	}
  2845  	return rawPaths
  2846  }
  2847  
  2848  func (fieldMask *Device_Spec_USBGuard_FieldMask) SetFromCliFlag(raw string) error {
  2849  	path, err := ParseDeviceSpecUSBGuard_FieldPath(raw)
  2850  	if err != nil {
  2851  		return err
  2852  	}
  2853  	fieldMask.Paths = append(fieldMask.Paths, path)
  2854  	return nil
  2855  }
  2856  
  2857  func (fieldMask *Device_Spec_USBGuard_FieldMask) Set(target, source *Device_Spec_USBGuard) {
  2858  	for _, path := range fieldMask.Paths {
  2859  		val, _ := path.GetSingle(source)
  2860  		// if val is nil, then field does not exist in source, skip
  2861  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  2862  		if val != nil {
  2863  			path.WithIValue(val).SetTo(&target)
  2864  		}
  2865  	}
  2866  }
  2867  
  2868  func (fieldMask *Device_Spec_USBGuard_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  2869  	fieldMask.Set(target.(*Device_Spec_USBGuard), source.(*Device_Spec_USBGuard))
  2870  }
  2871  
  2872  func (fieldMask *Device_Spec_USBGuard_FieldMask) Project(source *Device_Spec_USBGuard) *Device_Spec_USBGuard {
  2873  	if source == nil {
  2874  		return nil
  2875  	}
  2876  	if fieldMask == nil {
  2877  		return source
  2878  	}
  2879  	result := &Device_Spec_USBGuard{}
  2880  	whiteListMask := &Device_Spec_USBGuard_WhiteList_FieldMask{}
  2881  	wholeWhiteListAccepted := false
  2882  
  2883  	for _, p := range fieldMask.Paths {
  2884  		switch tp := p.(type) {
  2885  		case *DeviceSpecUSBGuard_FieldTerminalPath:
  2886  			switch tp.selector {
  2887  			case DeviceSpecUSBGuard_FieldPathSelectorEnable:
  2888  				result.Enable = source.Enable
  2889  			case DeviceSpecUSBGuard_FieldPathSelectorWhiteList:
  2890  				result.WhiteList = source.WhiteList
  2891  				wholeWhiteListAccepted = true
  2892  			}
  2893  		case *DeviceSpecUSBGuard_FieldSubPath:
  2894  			switch tp.selector {
  2895  			case DeviceSpecUSBGuard_FieldPathSelectorWhiteList:
  2896  				whiteListMask.AppendPath(tp.subPath.(DeviceSpecUSBGuardWhiteList_FieldPath))
  2897  			}
  2898  		}
  2899  	}
  2900  	if wholeWhiteListAccepted == false && len(whiteListMask.Paths) > 0 {
  2901  		for _, sourceItem := range source.GetWhiteList() {
  2902  			result.WhiteList = append(result.WhiteList, whiteListMask.Project(sourceItem))
  2903  		}
  2904  	}
  2905  	return result
  2906  }
  2907  
  2908  func (fieldMask *Device_Spec_USBGuard_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  2909  	return fieldMask.Project(source.(*Device_Spec_USBGuard))
  2910  }
  2911  
  2912  func (fieldMask *Device_Spec_USBGuard_FieldMask) PathsCount() int {
  2913  	if fieldMask == nil {
  2914  		return 0
  2915  	}
  2916  	return len(fieldMask.Paths)
  2917  }
  2918  
  2919  type Device_Spec_SSHConfig_AuthKey_FieldMask struct {
  2920  	Paths []DeviceSpecSSHConfigAuthKey_FieldPath
  2921  }
  2922  
  2923  func FullDevice_Spec_SSHConfig_AuthKey_FieldMask() *Device_Spec_SSHConfig_AuthKey_FieldMask {
  2924  	res := &Device_Spec_SSHConfig_AuthKey_FieldMask{}
  2925  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorSshaKey})
  2926  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorCertAuthority})
  2927  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorCommand})
  2928  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorEnvironment})
  2929  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorFrom})
  2930  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoAgentForwarding})
  2931  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoPortForwarding})
  2932  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoPty})
  2933  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoUserRc})
  2934  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoX11Forwarding})
  2935  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorPermitopen})
  2936  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorPrincipals})
  2937  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorTunnel})
  2938  	res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorRestrict})
  2939  	return res
  2940  }
  2941  
  2942  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) String() string {
  2943  	if fieldMask == nil {
  2944  		return "<nil>"
  2945  	}
  2946  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  2947  	for _, path := range fieldMask.Paths {
  2948  		pathsStr = append(pathsStr, path.String())
  2949  	}
  2950  	return strings.Join(pathsStr, ", ")
  2951  }
  2952  
  2953  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) IsFull() bool {
  2954  	if fieldMask == nil {
  2955  		return false
  2956  	}
  2957  	presentSelectors := make([]bool, 14)
  2958  	for _, path := range fieldMask.Paths {
  2959  		if asFinal, ok := path.(*DeviceSpecSSHConfigAuthKey_FieldTerminalPath); ok {
  2960  			presentSelectors[int(asFinal.selector)] = true
  2961  		}
  2962  	}
  2963  	for _, flag := range presentSelectors {
  2964  		if !flag {
  2965  			return false
  2966  		}
  2967  	}
  2968  	return true
  2969  }
  2970  
  2971  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) ProtoReflect() preflect.Message {
  2972  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  2973  		return ParseDeviceSpecSSHConfigAuthKey_FieldPath(raw)
  2974  	})
  2975  }
  2976  
  2977  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) ProtoMessage() {}
  2978  
  2979  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) Reset() {
  2980  	if fieldMask != nil {
  2981  		fieldMask.Paths = nil
  2982  	}
  2983  }
  2984  
  2985  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) Subtract(other *Device_Spec_SSHConfig_AuthKey_FieldMask) *Device_Spec_SSHConfig_AuthKey_FieldMask {
  2986  	result := &Device_Spec_SSHConfig_AuthKey_FieldMask{}
  2987  	removedSelectors := make([]bool, 14)
  2988  
  2989  	for _, path := range other.GetPaths() {
  2990  		switch tp := path.(type) {
  2991  		case *DeviceSpecSSHConfigAuthKey_FieldTerminalPath:
  2992  			removedSelectors[int(tp.selector)] = true
  2993  		}
  2994  	}
  2995  	for _, path := range fieldMask.GetPaths() {
  2996  		if !removedSelectors[int(path.Selector())] {
  2997  			result.Paths = append(result.Paths, path)
  2998  		}
  2999  	}
  3000  
  3001  	if len(result.Paths) == 0 {
  3002  		return nil
  3003  	}
  3004  	return result
  3005  }
  3006  
  3007  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  3008  	return fieldMask.Subtract(other.(*Device_Spec_SSHConfig_AuthKey_FieldMask))
  3009  }
  3010  
  3011  // FilterInputFields generates copy of field paths with output_only field paths removed
  3012  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) FilterInputFields() *Device_Spec_SSHConfig_AuthKey_FieldMask {
  3013  	result := &Device_Spec_SSHConfig_AuthKey_FieldMask{}
  3014  	result.Paths = append(result.Paths, fieldMask.Paths...)
  3015  	return result
  3016  }
  3017  
  3018  // ToFieldMask is used for proto conversions
  3019  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  3020  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  3021  	for _, path := range fieldMask.Paths {
  3022  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  3023  	}
  3024  	return protoFieldMask
  3025  }
  3026  
  3027  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  3028  	if fieldMask == nil {
  3029  		return status.Error(codes.Internal, "target field mask is nil")
  3030  	}
  3031  	fieldMask.Paths = make([]DeviceSpecSSHConfigAuthKey_FieldPath, 0, len(protoFieldMask.Paths))
  3032  	for _, strPath := range protoFieldMask.Paths {
  3033  		path, err := ParseDeviceSpecSSHConfigAuthKey_FieldPath(strPath)
  3034  		if err != nil {
  3035  			return err
  3036  		}
  3037  		fieldMask.Paths = append(fieldMask.Paths, path)
  3038  	}
  3039  	return nil
  3040  }
  3041  
  3042  // implement methods required by customType
  3043  func (fieldMask Device_Spec_SSHConfig_AuthKey_FieldMask) Marshal() ([]byte, error) {
  3044  	protoFieldMask := fieldMask.ToProtoFieldMask()
  3045  	return proto.Marshal(protoFieldMask)
  3046  }
  3047  
  3048  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) Unmarshal(data []byte) error {
  3049  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  3050  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  3051  		return err
  3052  	}
  3053  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  3054  		return err
  3055  	}
  3056  	return nil
  3057  }
  3058  
  3059  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) Size() int {
  3060  	return proto.Size(fieldMask.ToProtoFieldMask())
  3061  }
  3062  
  3063  func (fieldMask Device_Spec_SSHConfig_AuthKey_FieldMask) MarshalJSON() ([]byte, error) {
  3064  	return json.Marshal(fieldMask.ToProtoFieldMask())
  3065  }
  3066  
  3067  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) UnmarshalJSON(data []byte) error {
  3068  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  3069  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  3070  		return err
  3071  	}
  3072  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  3073  		return err
  3074  	}
  3075  	return nil
  3076  }
  3077  
  3078  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) AppendPath(path DeviceSpecSSHConfigAuthKey_FieldPath) {
  3079  	fieldMask.Paths = append(fieldMask.Paths, path)
  3080  }
  3081  
  3082  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  3083  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceSpecSSHConfigAuthKey_FieldPath))
  3084  }
  3085  
  3086  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) GetPaths() []DeviceSpecSSHConfigAuthKey_FieldPath {
  3087  	if fieldMask == nil {
  3088  		return nil
  3089  	}
  3090  	return fieldMask.Paths
  3091  }
  3092  
  3093  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  3094  	if fieldMask == nil {
  3095  		return nil
  3096  	}
  3097  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  3098  	for _, path := range fieldMask.Paths {
  3099  		rawPaths = append(rawPaths, path)
  3100  	}
  3101  	return rawPaths
  3102  }
  3103  
  3104  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) SetFromCliFlag(raw string) error {
  3105  	path, err := ParseDeviceSpecSSHConfigAuthKey_FieldPath(raw)
  3106  	if err != nil {
  3107  		return err
  3108  	}
  3109  	fieldMask.Paths = append(fieldMask.Paths, path)
  3110  	return nil
  3111  }
  3112  
  3113  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) Set(target, source *Device_Spec_SSHConfig_AuthKey) {
  3114  	for _, path := range fieldMask.Paths {
  3115  		val, _ := path.GetSingle(source)
  3116  		// if val is nil, then field does not exist in source, skip
  3117  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  3118  		if val != nil {
  3119  			path.WithIValue(val).SetTo(&target)
  3120  		}
  3121  	}
  3122  }
  3123  
  3124  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  3125  	fieldMask.Set(target.(*Device_Spec_SSHConfig_AuthKey), source.(*Device_Spec_SSHConfig_AuthKey))
  3126  }
  3127  
  3128  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) Project(source *Device_Spec_SSHConfig_AuthKey) *Device_Spec_SSHConfig_AuthKey {
  3129  	if source == nil {
  3130  		return nil
  3131  	}
  3132  	if fieldMask == nil {
  3133  		return source
  3134  	}
  3135  	result := &Device_Spec_SSHConfig_AuthKey{}
  3136  
  3137  	for _, p := range fieldMask.Paths {
  3138  		switch tp := p.(type) {
  3139  		case *DeviceSpecSSHConfigAuthKey_FieldTerminalPath:
  3140  			switch tp.selector {
  3141  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorSshaKey:
  3142  				result.SshaKey = source.SshaKey
  3143  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorCertAuthority:
  3144  				result.CertAuthority = source.CertAuthority
  3145  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorCommand:
  3146  				result.Command = source.Command
  3147  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorEnvironment:
  3148  				result.Environment = source.Environment
  3149  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorFrom:
  3150  				result.From = source.From
  3151  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoAgentForwarding:
  3152  				result.NoAgentForwarding = source.NoAgentForwarding
  3153  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoPortForwarding:
  3154  				result.NoPortForwarding = source.NoPortForwarding
  3155  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoPty:
  3156  				result.NoPty = source.NoPty
  3157  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoUserRc:
  3158  				result.NoUserRc = source.NoUserRc
  3159  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoX11Forwarding:
  3160  				result.NoX11Forwarding = source.NoX11Forwarding
  3161  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorPermitopen:
  3162  				result.Permitopen = source.Permitopen
  3163  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorPrincipals:
  3164  				result.Principals = source.Principals
  3165  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorTunnel:
  3166  				result.Tunnel = source.Tunnel
  3167  			case DeviceSpecSSHConfigAuthKey_FieldPathSelectorRestrict:
  3168  				result.Restrict = source.Restrict
  3169  			}
  3170  		}
  3171  	}
  3172  	return result
  3173  }
  3174  
  3175  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  3176  	return fieldMask.Project(source.(*Device_Spec_SSHConfig_AuthKey))
  3177  }
  3178  
  3179  func (fieldMask *Device_Spec_SSHConfig_AuthKey_FieldMask) PathsCount() int {
  3180  	if fieldMask == nil {
  3181  		return 0
  3182  	}
  3183  	return len(fieldMask.Paths)
  3184  }
  3185  
  3186  type Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask struct {
  3187  	Paths []DeviceSpecLoggingConfigContainerLoggingConfig_FieldPath
  3188  }
  3189  
  3190  func FullDevice_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask() *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask {
  3191  	res := &Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask{}
  3192  	res.Paths = append(res.Paths, &DeviceSpecLoggingConfigContainerLoggingConfig_FieldTerminalPath{selector: DeviceSpecLoggingConfigContainerLoggingConfig_FieldPathSelectorEnableContainerLogExport})
  3193  	return res
  3194  }
  3195  
  3196  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) String() string {
  3197  	if fieldMask == nil {
  3198  		return "<nil>"
  3199  	}
  3200  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  3201  	for _, path := range fieldMask.Paths {
  3202  		pathsStr = append(pathsStr, path.String())
  3203  	}
  3204  	return strings.Join(pathsStr, ", ")
  3205  }
  3206  
  3207  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) IsFull() bool {
  3208  	if fieldMask == nil {
  3209  		return false
  3210  	}
  3211  	presentSelectors := make([]bool, 1)
  3212  	for _, path := range fieldMask.Paths {
  3213  		if asFinal, ok := path.(*DeviceSpecLoggingConfigContainerLoggingConfig_FieldTerminalPath); ok {
  3214  			presentSelectors[int(asFinal.selector)] = true
  3215  		}
  3216  	}
  3217  	for _, flag := range presentSelectors {
  3218  		if !flag {
  3219  			return false
  3220  		}
  3221  	}
  3222  	return true
  3223  }
  3224  
  3225  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) ProtoReflect() preflect.Message {
  3226  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  3227  		return ParseDeviceSpecLoggingConfigContainerLoggingConfig_FieldPath(raw)
  3228  	})
  3229  }
  3230  
  3231  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) ProtoMessage() {}
  3232  
  3233  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) Reset() {
  3234  	if fieldMask != nil {
  3235  		fieldMask.Paths = nil
  3236  	}
  3237  }
  3238  
  3239  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) Subtract(other *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask {
  3240  	result := &Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask{}
  3241  	removedSelectors := make([]bool, 1)
  3242  
  3243  	for _, path := range other.GetPaths() {
  3244  		switch tp := path.(type) {
  3245  		case *DeviceSpecLoggingConfigContainerLoggingConfig_FieldTerminalPath:
  3246  			removedSelectors[int(tp.selector)] = true
  3247  		}
  3248  	}
  3249  	for _, path := range fieldMask.GetPaths() {
  3250  		if !removedSelectors[int(path.Selector())] {
  3251  			result.Paths = append(result.Paths, path)
  3252  		}
  3253  	}
  3254  
  3255  	if len(result.Paths) == 0 {
  3256  		return nil
  3257  	}
  3258  	return result
  3259  }
  3260  
  3261  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  3262  	return fieldMask.Subtract(other.(*Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask))
  3263  }
  3264  
  3265  // FilterInputFields generates copy of field paths with output_only field paths removed
  3266  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) FilterInputFields() *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask {
  3267  	result := &Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask{}
  3268  	result.Paths = append(result.Paths, fieldMask.Paths...)
  3269  	return result
  3270  }
  3271  
  3272  // ToFieldMask is used for proto conversions
  3273  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  3274  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  3275  	for _, path := range fieldMask.Paths {
  3276  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  3277  	}
  3278  	return protoFieldMask
  3279  }
  3280  
  3281  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  3282  	if fieldMask == nil {
  3283  		return status.Error(codes.Internal, "target field mask is nil")
  3284  	}
  3285  	fieldMask.Paths = make([]DeviceSpecLoggingConfigContainerLoggingConfig_FieldPath, 0, len(protoFieldMask.Paths))
  3286  	for _, strPath := range protoFieldMask.Paths {
  3287  		path, err := ParseDeviceSpecLoggingConfigContainerLoggingConfig_FieldPath(strPath)
  3288  		if err != nil {
  3289  			return err
  3290  		}
  3291  		fieldMask.Paths = append(fieldMask.Paths, path)
  3292  	}
  3293  	return nil
  3294  }
  3295  
  3296  // implement methods required by customType
  3297  func (fieldMask Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) Marshal() ([]byte, error) {
  3298  	protoFieldMask := fieldMask.ToProtoFieldMask()
  3299  	return proto.Marshal(protoFieldMask)
  3300  }
  3301  
  3302  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) Unmarshal(data []byte) error {
  3303  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  3304  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  3305  		return err
  3306  	}
  3307  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  3308  		return err
  3309  	}
  3310  	return nil
  3311  }
  3312  
  3313  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) Size() int {
  3314  	return proto.Size(fieldMask.ToProtoFieldMask())
  3315  }
  3316  
  3317  func (fieldMask Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) MarshalJSON() ([]byte, error) {
  3318  	return json.Marshal(fieldMask.ToProtoFieldMask())
  3319  }
  3320  
  3321  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) UnmarshalJSON(data []byte) error {
  3322  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  3323  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  3324  		return err
  3325  	}
  3326  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  3327  		return err
  3328  	}
  3329  	return nil
  3330  }
  3331  
  3332  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) AppendPath(path DeviceSpecLoggingConfigContainerLoggingConfig_FieldPath) {
  3333  	fieldMask.Paths = append(fieldMask.Paths, path)
  3334  }
  3335  
  3336  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  3337  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceSpecLoggingConfigContainerLoggingConfig_FieldPath))
  3338  }
  3339  
  3340  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) GetPaths() []DeviceSpecLoggingConfigContainerLoggingConfig_FieldPath {
  3341  	if fieldMask == nil {
  3342  		return nil
  3343  	}
  3344  	return fieldMask.Paths
  3345  }
  3346  
  3347  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  3348  	if fieldMask == nil {
  3349  		return nil
  3350  	}
  3351  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  3352  	for _, path := range fieldMask.Paths {
  3353  		rawPaths = append(rawPaths, path)
  3354  	}
  3355  	return rawPaths
  3356  }
  3357  
  3358  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) SetFromCliFlag(raw string) error {
  3359  	path, err := ParseDeviceSpecLoggingConfigContainerLoggingConfig_FieldPath(raw)
  3360  	if err != nil {
  3361  		return err
  3362  	}
  3363  	fieldMask.Paths = append(fieldMask.Paths, path)
  3364  	return nil
  3365  }
  3366  
  3367  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) Set(target, source *Device_Spec_LoggingConfig_ContainerLoggingConfig) {
  3368  	for _, path := range fieldMask.Paths {
  3369  		val, _ := path.GetSingle(source)
  3370  		// if val is nil, then field does not exist in source, skip
  3371  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  3372  		if val != nil {
  3373  			path.WithIValue(val).SetTo(&target)
  3374  		}
  3375  	}
  3376  }
  3377  
  3378  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  3379  	fieldMask.Set(target.(*Device_Spec_LoggingConfig_ContainerLoggingConfig), source.(*Device_Spec_LoggingConfig_ContainerLoggingConfig))
  3380  }
  3381  
  3382  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) Project(source *Device_Spec_LoggingConfig_ContainerLoggingConfig) *Device_Spec_LoggingConfig_ContainerLoggingConfig {
  3383  	if source == nil {
  3384  		return nil
  3385  	}
  3386  	if fieldMask == nil {
  3387  		return source
  3388  	}
  3389  	result := &Device_Spec_LoggingConfig_ContainerLoggingConfig{}
  3390  
  3391  	for _, p := range fieldMask.Paths {
  3392  		switch tp := p.(type) {
  3393  		case *DeviceSpecLoggingConfigContainerLoggingConfig_FieldTerminalPath:
  3394  			switch tp.selector {
  3395  			case DeviceSpecLoggingConfigContainerLoggingConfig_FieldPathSelectorEnableContainerLogExport:
  3396  				result.EnableContainerLogExport = source.EnableContainerLogExport
  3397  			}
  3398  		}
  3399  	}
  3400  	return result
  3401  }
  3402  
  3403  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  3404  	return fieldMask.Project(source.(*Device_Spec_LoggingConfig_ContainerLoggingConfig))
  3405  }
  3406  
  3407  func (fieldMask *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask) PathsCount() int {
  3408  	if fieldMask == nil {
  3409  		return 0
  3410  	}
  3411  	return len(fieldMask.Paths)
  3412  }
  3413  
  3414  type Device_Spec_USBGuard_Port_FieldMask struct {
  3415  	Paths []DeviceSpecUSBGuardPort_FieldPath
  3416  }
  3417  
  3418  func FullDevice_Spec_USBGuard_Port_FieldMask() *Device_Spec_USBGuard_Port_FieldMask {
  3419  	res := &Device_Spec_USBGuard_Port_FieldMask{}
  3420  	res.Paths = append(res.Paths, &DeviceSpecUSBGuardPort_FieldTerminalPath{selector: DeviceSpecUSBGuardPort_FieldPathSelectorEquals})
  3421  	res.Paths = append(res.Paths, &DeviceSpecUSBGuardPort_FieldTerminalPath{selector: DeviceSpecUSBGuardPort_FieldPathSelectorOneOf})
  3422  	return res
  3423  }
  3424  
  3425  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) String() string {
  3426  	if fieldMask == nil {
  3427  		return "<nil>"
  3428  	}
  3429  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  3430  	for _, path := range fieldMask.Paths {
  3431  		pathsStr = append(pathsStr, path.String())
  3432  	}
  3433  	return strings.Join(pathsStr, ", ")
  3434  }
  3435  
  3436  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) IsFull() bool {
  3437  	if fieldMask == nil {
  3438  		return false
  3439  	}
  3440  	presentSelectors := make([]bool, 2)
  3441  	for _, path := range fieldMask.Paths {
  3442  		if asFinal, ok := path.(*DeviceSpecUSBGuardPort_FieldTerminalPath); ok {
  3443  			presentSelectors[int(asFinal.selector)] = true
  3444  		}
  3445  	}
  3446  	for _, flag := range presentSelectors {
  3447  		if !flag {
  3448  			return false
  3449  		}
  3450  	}
  3451  	return true
  3452  }
  3453  
  3454  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) ProtoReflect() preflect.Message {
  3455  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  3456  		return ParseDeviceSpecUSBGuardPort_FieldPath(raw)
  3457  	})
  3458  }
  3459  
  3460  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) ProtoMessage() {}
  3461  
  3462  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) Reset() {
  3463  	if fieldMask != nil {
  3464  		fieldMask.Paths = nil
  3465  	}
  3466  }
  3467  
  3468  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) Subtract(other *Device_Spec_USBGuard_Port_FieldMask) *Device_Spec_USBGuard_Port_FieldMask {
  3469  	result := &Device_Spec_USBGuard_Port_FieldMask{}
  3470  	removedSelectors := make([]bool, 2)
  3471  
  3472  	for _, path := range other.GetPaths() {
  3473  		switch tp := path.(type) {
  3474  		case *DeviceSpecUSBGuardPort_FieldTerminalPath:
  3475  			removedSelectors[int(tp.selector)] = true
  3476  		}
  3477  	}
  3478  	for _, path := range fieldMask.GetPaths() {
  3479  		if !removedSelectors[int(path.Selector())] {
  3480  			result.Paths = append(result.Paths, path)
  3481  		}
  3482  	}
  3483  
  3484  	if len(result.Paths) == 0 {
  3485  		return nil
  3486  	}
  3487  	return result
  3488  }
  3489  
  3490  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  3491  	return fieldMask.Subtract(other.(*Device_Spec_USBGuard_Port_FieldMask))
  3492  }
  3493  
  3494  // FilterInputFields generates copy of field paths with output_only field paths removed
  3495  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) FilterInputFields() *Device_Spec_USBGuard_Port_FieldMask {
  3496  	result := &Device_Spec_USBGuard_Port_FieldMask{}
  3497  	result.Paths = append(result.Paths, fieldMask.Paths...)
  3498  	return result
  3499  }
  3500  
  3501  // ToFieldMask is used for proto conversions
  3502  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  3503  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  3504  	for _, path := range fieldMask.Paths {
  3505  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  3506  	}
  3507  	return protoFieldMask
  3508  }
  3509  
  3510  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  3511  	if fieldMask == nil {
  3512  		return status.Error(codes.Internal, "target field mask is nil")
  3513  	}
  3514  	fieldMask.Paths = make([]DeviceSpecUSBGuardPort_FieldPath, 0, len(protoFieldMask.Paths))
  3515  	for _, strPath := range protoFieldMask.Paths {
  3516  		path, err := ParseDeviceSpecUSBGuardPort_FieldPath(strPath)
  3517  		if err != nil {
  3518  			return err
  3519  		}
  3520  		fieldMask.Paths = append(fieldMask.Paths, path)
  3521  	}
  3522  	return nil
  3523  }
  3524  
  3525  // implement methods required by customType
  3526  func (fieldMask Device_Spec_USBGuard_Port_FieldMask) Marshal() ([]byte, error) {
  3527  	protoFieldMask := fieldMask.ToProtoFieldMask()
  3528  	return proto.Marshal(protoFieldMask)
  3529  }
  3530  
  3531  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) Unmarshal(data []byte) error {
  3532  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  3533  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  3534  		return err
  3535  	}
  3536  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  3537  		return err
  3538  	}
  3539  	return nil
  3540  }
  3541  
  3542  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) Size() int {
  3543  	return proto.Size(fieldMask.ToProtoFieldMask())
  3544  }
  3545  
  3546  func (fieldMask Device_Spec_USBGuard_Port_FieldMask) MarshalJSON() ([]byte, error) {
  3547  	return json.Marshal(fieldMask.ToProtoFieldMask())
  3548  }
  3549  
  3550  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) UnmarshalJSON(data []byte) error {
  3551  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  3552  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  3553  		return err
  3554  	}
  3555  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  3556  		return err
  3557  	}
  3558  	return nil
  3559  }
  3560  
  3561  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) AppendPath(path DeviceSpecUSBGuardPort_FieldPath) {
  3562  	fieldMask.Paths = append(fieldMask.Paths, path)
  3563  }
  3564  
  3565  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  3566  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceSpecUSBGuardPort_FieldPath))
  3567  }
  3568  
  3569  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) GetPaths() []DeviceSpecUSBGuardPort_FieldPath {
  3570  	if fieldMask == nil {
  3571  		return nil
  3572  	}
  3573  	return fieldMask.Paths
  3574  }
  3575  
  3576  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  3577  	if fieldMask == nil {
  3578  		return nil
  3579  	}
  3580  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  3581  	for _, path := range fieldMask.Paths {
  3582  		rawPaths = append(rawPaths, path)
  3583  	}
  3584  	return rawPaths
  3585  }
  3586  
  3587  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) SetFromCliFlag(raw string) error {
  3588  	path, err := ParseDeviceSpecUSBGuardPort_FieldPath(raw)
  3589  	if err != nil {
  3590  		return err
  3591  	}
  3592  	fieldMask.Paths = append(fieldMask.Paths, path)
  3593  	return nil
  3594  }
  3595  
  3596  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) Set(target, source *Device_Spec_USBGuard_Port) {
  3597  	for _, path := range fieldMask.Paths {
  3598  		val, _ := path.GetSingle(source)
  3599  		// if val is nil, then field does not exist in source, skip
  3600  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  3601  		if val != nil {
  3602  			path.WithIValue(val).SetTo(&target)
  3603  		}
  3604  	}
  3605  }
  3606  
  3607  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  3608  	fieldMask.Set(target.(*Device_Spec_USBGuard_Port), source.(*Device_Spec_USBGuard_Port))
  3609  }
  3610  
  3611  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) Project(source *Device_Spec_USBGuard_Port) *Device_Spec_USBGuard_Port {
  3612  	if source == nil {
  3613  		return nil
  3614  	}
  3615  	if fieldMask == nil {
  3616  		return source
  3617  	}
  3618  	result := &Device_Spec_USBGuard_Port{}
  3619  
  3620  	for _, p := range fieldMask.Paths {
  3621  		switch tp := p.(type) {
  3622  		case *DeviceSpecUSBGuardPort_FieldTerminalPath:
  3623  			switch tp.selector {
  3624  			case DeviceSpecUSBGuardPort_FieldPathSelectorEquals:
  3625  				result.Equals = source.Equals
  3626  			case DeviceSpecUSBGuardPort_FieldPathSelectorOneOf:
  3627  				result.OneOf = source.OneOf
  3628  			}
  3629  		}
  3630  	}
  3631  	return result
  3632  }
  3633  
  3634  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  3635  	return fieldMask.Project(source.(*Device_Spec_USBGuard_Port))
  3636  }
  3637  
  3638  func (fieldMask *Device_Spec_USBGuard_Port_FieldMask) PathsCount() int {
  3639  	if fieldMask == nil {
  3640  		return 0
  3641  	}
  3642  	return len(fieldMask.Paths)
  3643  }
  3644  
  3645  type Device_Spec_USBGuard_Interface_FieldMask struct {
  3646  	Paths []DeviceSpecUSBGuardInterface_FieldPath
  3647  }
  3648  
  3649  func FullDevice_Spec_USBGuard_Interface_FieldMask() *Device_Spec_USBGuard_Interface_FieldMask {
  3650  	res := &Device_Spec_USBGuard_Interface_FieldMask{}
  3651  	res.Paths = append(res.Paths, &DeviceSpecUSBGuardInterface_FieldTerminalPath{selector: DeviceSpecUSBGuardInterface_FieldPathSelectorEquals})
  3652  	res.Paths = append(res.Paths, &DeviceSpecUSBGuardInterface_FieldTerminalPath{selector: DeviceSpecUSBGuardInterface_FieldPathSelectorOneOf})
  3653  	return res
  3654  }
  3655  
  3656  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) String() string {
  3657  	if fieldMask == nil {
  3658  		return "<nil>"
  3659  	}
  3660  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  3661  	for _, path := range fieldMask.Paths {
  3662  		pathsStr = append(pathsStr, path.String())
  3663  	}
  3664  	return strings.Join(pathsStr, ", ")
  3665  }
  3666  
  3667  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) IsFull() bool {
  3668  	if fieldMask == nil {
  3669  		return false
  3670  	}
  3671  	presentSelectors := make([]bool, 2)
  3672  	for _, path := range fieldMask.Paths {
  3673  		if asFinal, ok := path.(*DeviceSpecUSBGuardInterface_FieldTerminalPath); ok {
  3674  			presentSelectors[int(asFinal.selector)] = true
  3675  		}
  3676  	}
  3677  	for _, flag := range presentSelectors {
  3678  		if !flag {
  3679  			return false
  3680  		}
  3681  	}
  3682  	return true
  3683  }
  3684  
  3685  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) ProtoReflect() preflect.Message {
  3686  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  3687  		return ParseDeviceSpecUSBGuardInterface_FieldPath(raw)
  3688  	})
  3689  }
  3690  
  3691  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) ProtoMessage() {}
  3692  
  3693  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) Reset() {
  3694  	if fieldMask != nil {
  3695  		fieldMask.Paths = nil
  3696  	}
  3697  }
  3698  
  3699  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) Subtract(other *Device_Spec_USBGuard_Interface_FieldMask) *Device_Spec_USBGuard_Interface_FieldMask {
  3700  	result := &Device_Spec_USBGuard_Interface_FieldMask{}
  3701  	removedSelectors := make([]bool, 2)
  3702  
  3703  	for _, path := range other.GetPaths() {
  3704  		switch tp := path.(type) {
  3705  		case *DeviceSpecUSBGuardInterface_FieldTerminalPath:
  3706  			removedSelectors[int(tp.selector)] = true
  3707  		}
  3708  	}
  3709  	for _, path := range fieldMask.GetPaths() {
  3710  		if !removedSelectors[int(path.Selector())] {
  3711  			result.Paths = append(result.Paths, path)
  3712  		}
  3713  	}
  3714  
  3715  	if len(result.Paths) == 0 {
  3716  		return nil
  3717  	}
  3718  	return result
  3719  }
  3720  
  3721  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  3722  	return fieldMask.Subtract(other.(*Device_Spec_USBGuard_Interface_FieldMask))
  3723  }
  3724  
  3725  // FilterInputFields generates copy of field paths with output_only field paths removed
  3726  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) FilterInputFields() *Device_Spec_USBGuard_Interface_FieldMask {
  3727  	result := &Device_Spec_USBGuard_Interface_FieldMask{}
  3728  	result.Paths = append(result.Paths, fieldMask.Paths...)
  3729  	return result
  3730  }
  3731  
  3732  // ToFieldMask is used for proto conversions
  3733  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  3734  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  3735  	for _, path := range fieldMask.Paths {
  3736  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  3737  	}
  3738  	return protoFieldMask
  3739  }
  3740  
  3741  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  3742  	if fieldMask == nil {
  3743  		return status.Error(codes.Internal, "target field mask is nil")
  3744  	}
  3745  	fieldMask.Paths = make([]DeviceSpecUSBGuardInterface_FieldPath, 0, len(protoFieldMask.Paths))
  3746  	for _, strPath := range protoFieldMask.Paths {
  3747  		path, err := ParseDeviceSpecUSBGuardInterface_FieldPath(strPath)
  3748  		if err != nil {
  3749  			return err
  3750  		}
  3751  		fieldMask.Paths = append(fieldMask.Paths, path)
  3752  	}
  3753  	return nil
  3754  }
  3755  
  3756  // implement methods required by customType
  3757  func (fieldMask Device_Spec_USBGuard_Interface_FieldMask) Marshal() ([]byte, error) {
  3758  	protoFieldMask := fieldMask.ToProtoFieldMask()
  3759  	return proto.Marshal(protoFieldMask)
  3760  }
  3761  
  3762  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) Unmarshal(data []byte) error {
  3763  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  3764  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  3765  		return err
  3766  	}
  3767  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  3768  		return err
  3769  	}
  3770  	return nil
  3771  }
  3772  
  3773  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) Size() int {
  3774  	return proto.Size(fieldMask.ToProtoFieldMask())
  3775  }
  3776  
  3777  func (fieldMask Device_Spec_USBGuard_Interface_FieldMask) MarshalJSON() ([]byte, error) {
  3778  	return json.Marshal(fieldMask.ToProtoFieldMask())
  3779  }
  3780  
  3781  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) UnmarshalJSON(data []byte) error {
  3782  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  3783  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  3784  		return err
  3785  	}
  3786  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  3787  		return err
  3788  	}
  3789  	return nil
  3790  }
  3791  
  3792  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) AppendPath(path DeviceSpecUSBGuardInterface_FieldPath) {
  3793  	fieldMask.Paths = append(fieldMask.Paths, path)
  3794  }
  3795  
  3796  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  3797  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceSpecUSBGuardInterface_FieldPath))
  3798  }
  3799  
  3800  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) GetPaths() []DeviceSpecUSBGuardInterface_FieldPath {
  3801  	if fieldMask == nil {
  3802  		return nil
  3803  	}
  3804  	return fieldMask.Paths
  3805  }
  3806  
  3807  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  3808  	if fieldMask == nil {
  3809  		return nil
  3810  	}
  3811  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  3812  	for _, path := range fieldMask.Paths {
  3813  		rawPaths = append(rawPaths, path)
  3814  	}
  3815  	return rawPaths
  3816  }
  3817  
  3818  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) SetFromCliFlag(raw string) error {
  3819  	path, err := ParseDeviceSpecUSBGuardInterface_FieldPath(raw)
  3820  	if err != nil {
  3821  		return err
  3822  	}
  3823  	fieldMask.Paths = append(fieldMask.Paths, path)
  3824  	return nil
  3825  }
  3826  
  3827  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) Set(target, source *Device_Spec_USBGuard_Interface) {
  3828  	for _, path := range fieldMask.Paths {
  3829  		val, _ := path.GetSingle(source)
  3830  		// if val is nil, then field does not exist in source, skip
  3831  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  3832  		if val != nil {
  3833  			path.WithIValue(val).SetTo(&target)
  3834  		}
  3835  	}
  3836  }
  3837  
  3838  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  3839  	fieldMask.Set(target.(*Device_Spec_USBGuard_Interface), source.(*Device_Spec_USBGuard_Interface))
  3840  }
  3841  
  3842  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) Project(source *Device_Spec_USBGuard_Interface) *Device_Spec_USBGuard_Interface {
  3843  	if source == nil {
  3844  		return nil
  3845  	}
  3846  	if fieldMask == nil {
  3847  		return source
  3848  	}
  3849  	result := &Device_Spec_USBGuard_Interface{}
  3850  
  3851  	for _, p := range fieldMask.Paths {
  3852  		switch tp := p.(type) {
  3853  		case *DeviceSpecUSBGuardInterface_FieldTerminalPath:
  3854  			switch tp.selector {
  3855  			case DeviceSpecUSBGuardInterface_FieldPathSelectorEquals:
  3856  				result.Equals = source.Equals
  3857  			case DeviceSpecUSBGuardInterface_FieldPathSelectorOneOf:
  3858  				result.OneOf = source.OneOf
  3859  			}
  3860  		}
  3861  	}
  3862  	return result
  3863  }
  3864  
  3865  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  3866  	return fieldMask.Project(source.(*Device_Spec_USBGuard_Interface))
  3867  }
  3868  
  3869  func (fieldMask *Device_Spec_USBGuard_Interface_FieldMask) PathsCount() int {
  3870  	if fieldMask == nil {
  3871  		return 0
  3872  	}
  3873  	return len(fieldMask.Paths)
  3874  }
  3875  
  3876  type Device_Spec_USBGuard_WhiteList_FieldMask struct {
  3877  	Paths []DeviceSpecUSBGuardWhiteList_FieldPath
  3878  }
  3879  
  3880  func FullDevice_Spec_USBGuard_WhiteList_FieldMask() *Device_Spec_USBGuard_WhiteList_FieldMask {
  3881  	res := &Device_Spec_USBGuard_WhiteList_FieldMask{}
  3882  	res.Paths = append(res.Paths, &DeviceSpecUSBGuardWhiteList_FieldTerminalPath{selector: DeviceSpecUSBGuardWhiteList_FieldPathSelectorDeviceName})
  3883  	res.Paths = append(res.Paths, &DeviceSpecUSBGuardWhiteList_FieldTerminalPath{selector: DeviceSpecUSBGuardWhiteList_FieldPathSelectorDeviceId})
  3884  	res.Paths = append(res.Paths, &DeviceSpecUSBGuardWhiteList_FieldTerminalPath{selector: DeviceSpecUSBGuardWhiteList_FieldPathSelectorViaPort})
  3885  	res.Paths = append(res.Paths, &DeviceSpecUSBGuardWhiteList_FieldTerminalPath{selector: DeviceSpecUSBGuardWhiteList_FieldPathSelectorWithInterface})
  3886  	res.Paths = append(res.Paths, &DeviceSpecUSBGuardWhiteList_FieldTerminalPath{selector: DeviceSpecUSBGuardWhiteList_FieldPathSelectorWithConnectType})
  3887  	return res
  3888  }
  3889  
  3890  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) String() string {
  3891  	if fieldMask == nil {
  3892  		return "<nil>"
  3893  	}
  3894  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  3895  	for _, path := range fieldMask.Paths {
  3896  		pathsStr = append(pathsStr, path.String())
  3897  	}
  3898  	return strings.Join(pathsStr, ", ")
  3899  }
  3900  
  3901  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) IsFull() bool {
  3902  	if fieldMask == nil {
  3903  		return false
  3904  	}
  3905  	presentSelectors := make([]bool, 5)
  3906  	for _, path := range fieldMask.Paths {
  3907  		if asFinal, ok := path.(*DeviceSpecUSBGuardWhiteList_FieldTerminalPath); ok {
  3908  			presentSelectors[int(asFinal.selector)] = true
  3909  		}
  3910  	}
  3911  	for _, flag := range presentSelectors {
  3912  		if !flag {
  3913  			return false
  3914  		}
  3915  	}
  3916  	return true
  3917  }
  3918  
  3919  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) ProtoReflect() preflect.Message {
  3920  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  3921  		return ParseDeviceSpecUSBGuardWhiteList_FieldPath(raw)
  3922  	})
  3923  }
  3924  
  3925  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) ProtoMessage() {}
  3926  
  3927  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) Reset() {
  3928  	if fieldMask != nil {
  3929  		fieldMask.Paths = nil
  3930  	}
  3931  }
  3932  
  3933  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) Subtract(other *Device_Spec_USBGuard_WhiteList_FieldMask) *Device_Spec_USBGuard_WhiteList_FieldMask {
  3934  	result := &Device_Spec_USBGuard_WhiteList_FieldMask{}
  3935  	removedSelectors := make([]bool, 5)
  3936  	otherSubMasks := map[DeviceSpecUSBGuardWhiteList_FieldPathSelector]gotenobject.FieldMask{
  3937  		DeviceSpecUSBGuardWhiteList_FieldPathSelectorViaPort:       &Device_Spec_USBGuard_Port_FieldMask{},
  3938  		DeviceSpecUSBGuardWhiteList_FieldPathSelectorWithInterface: &Device_Spec_USBGuard_Interface_FieldMask{},
  3939  	}
  3940  	mySubMasks := map[DeviceSpecUSBGuardWhiteList_FieldPathSelector]gotenobject.FieldMask{
  3941  		DeviceSpecUSBGuardWhiteList_FieldPathSelectorViaPort:       &Device_Spec_USBGuard_Port_FieldMask{},
  3942  		DeviceSpecUSBGuardWhiteList_FieldPathSelectorWithInterface: &Device_Spec_USBGuard_Interface_FieldMask{},
  3943  	}
  3944  
  3945  	for _, path := range other.GetPaths() {
  3946  		switch tp := path.(type) {
  3947  		case *DeviceSpecUSBGuardWhiteList_FieldTerminalPath:
  3948  			removedSelectors[int(tp.selector)] = true
  3949  		case *DeviceSpecUSBGuardWhiteList_FieldSubPath:
  3950  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  3951  		}
  3952  	}
  3953  	for _, path := range fieldMask.GetPaths() {
  3954  		if !removedSelectors[int(path.Selector())] {
  3955  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  3956  				if tp, ok := path.(*DeviceSpecUSBGuardWhiteList_FieldTerminalPath); ok {
  3957  					switch tp.selector {
  3958  					case DeviceSpecUSBGuardWhiteList_FieldPathSelectorViaPort:
  3959  						mySubMasks[DeviceSpecUSBGuardWhiteList_FieldPathSelectorViaPort] = FullDevice_Spec_USBGuard_Port_FieldMask()
  3960  					case DeviceSpecUSBGuardWhiteList_FieldPathSelectorWithInterface:
  3961  						mySubMasks[DeviceSpecUSBGuardWhiteList_FieldPathSelectorWithInterface] = FullDevice_Spec_USBGuard_Interface_FieldMask()
  3962  					}
  3963  				} else if tp, ok := path.(*DeviceSpecUSBGuardWhiteList_FieldSubPath); ok {
  3964  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  3965  				}
  3966  			} else {
  3967  				result.Paths = append(result.Paths, path)
  3968  			}
  3969  		}
  3970  	}
  3971  	for selector, mySubMask := range mySubMasks {
  3972  		if mySubMask.PathsCount() > 0 {
  3973  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  3974  				result.Paths = append(result.Paths, &DeviceSpecUSBGuardWhiteList_FieldSubPath{selector: selector, subPath: allowedPath})
  3975  			}
  3976  		}
  3977  	}
  3978  
  3979  	if len(result.Paths) == 0 {
  3980  		return nil
  3981  	}
  3982  	return result
  3983  }
  3984  
  3985  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  3986  	return fieldMask.Subtract(other.(*Device_Spec_USBGuard_WhiteList_FieldMask))
  3987  }
  3988  
  3989  // FilterInputFields generates copy of field paths with output_only field paths removed
  3990  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) FilterInputFields() *Device_Spec_USBGuard_WhiteList_FieldMask {
  3991  	result := &Device_Spec_USBGuard_WhiteList_FieldMask{}
  3992  	result.Paths = append(result.Paths, fieldMask.Paths...)
  3993  	return result
  3994  }
  3995  
  3996  // ToFieldMask is used for proto conversions
  3997  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  3998  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  3999  	for _, path := range fieldMask.Paths {
  4000  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  4001  	}
  4002  	return protoFieldMask
  4003  }
  4004  
  4005  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  4006  	if fieldMask == nil {
  4007  		return status.Error(codes.Internal, "target field mask is nil")
  4008  	}
  4009  	fieldMask.Paths = make([]DeviceSpecUSBGuardWhiteList_FieldPath, 0, len(protoFieldMask.Paths))
  4010  	for _, strPath := range protoFieldMask.Paths {
  4011  		path, err := ParseDeviceSpecUSBGuardWhiteList_FieldPath(strPath)
  4012  		if err != nil {
  4013  			return err
  4014  		}
  4015  		fieldMask.Paths = append(fieldMask.Paths, path)
  4016  	}
  4017  	return nil
  4018  }
  4019  
  4020  // implement methods required by customType
  4021  func (fieldMask Device_Spec_USBGuard_WhiteList_FieldMask) Marshal() ([]byte, error) {
  4022  	protoFieldMask := fieldMask.ToProtoFieldMask()
  4023  	return proto.Marshal(protoFieldMask)
  4024  }
  4025  
  4026  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) Unmarshal(data []byte) error {
  4027  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  4028  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  4029  		return err
  4030  	}
  4031  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  4032  		return err
  4033  	}
  4034  	return nil
  4035  }
  4036  
  4037  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) Size() int {
  4038  	return proto.Size(fieldMask.ToProtoFieldMask())
  4039  }
  4040  
  4041  func (fieldMask Device_Spec_USBGuard_WhiteList_FieldMask) MarshalJSON() ([]byte, error) {
  4042  	return json.Marshal(fieldMask.ToProtoFieldMask())
  4043  }
  4044  
  4045  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) UnmarshalJSON(data []byte) error {
  4046  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  4047  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  4048  		return err
  4049  	}
  4050  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  4051  		return err
  4052  	}
  4053  	return nil
  4054  }
  4055  
  4056  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) AppendPath(path DeviceSpecUSBGuardWhiteList_FieldPath) {
  4057  	fieldMask.Paths = append(fieldMask.Paths, path)
  4058  }
  4059  
  4060  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  4061  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceSpecUSBGuardWhiteList_FieldPath))
  4062  }
  4063  
  4064  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) GetPaths() []DeviceSpecUSBGuardWhiteList_FieldPath {
  4065  	if fieldMask == nil {
  4066  		return nil
  4067  	}
  4068  	return fieldMask.Paths
  4069  }
  4070  
  4071  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  4072  	if fieldMask == nil {
  4073  		return nil
  4074  	}
  4075  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  4076  	for _, path := range fieldMask.Paths {
  4077  		rawPaths = append(rawPaths, path)
  4078  	}
  4079  	return rawPaths
  4080  }
  4081  
  4082  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) SetFromCliFlag(raw string) error {
  4083  	path, err := ParseDeviceSpecUSBGuardWhiteList_FieldPath(raw)
  4084  	if err != nil {
  4085  		return err
  4086  	}
  4087  	fieldMask.Paths = append(fieldMask.Paths, path)
  4088  	return nil
  4089  }
  4090  
  4091  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) Set(target, source *Device_Spec_USBGuard_WhiteList) {
  4092  	for _, path := range fieldMask.Paths {
  4093  		val, _ := path.GetSingle(source)
  4094  		// if val is nil, then field does not exist in source, skip
  4095  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  4096  		if val != nil {
  4097  			path.WithIValue(val).SetTo(&target)
  4098  		}
  4099  	}
  4100  }
  4101  
  4102  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  4103  	fieldMask.Set(target.(*Device_Spec_USBGuard_WhiteList), source.(*Device_Spec_USBGuard_WhiteList))
  4104  }
  4105  
  4106  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) Project(source *Device_Spec_USBGuard_WhiteList) *Device_Spec_USBGuard_WhiteList {
  4107  	if source == nil {
  4108  		return nil
  4109  	}
  4110  	if fieldMask == nil {
  4111  		return source
  4112  	}
  4113  	result := &Device_Spec_USBGuard_WhiteList{}
  4114  	viaPortMask := &Device_Spec_USBGuard_Port_FieldMask{}
  4115  	wholeViaPortAccepted := false
  4116  	withInterfaceMask := &Device_Spec_USBGuard_Interface_FieldMask{}
  4117  	wholeWithInterfaceAccepted := false
  4118  
  4119  	for _, p := range fieldMask.Paths {
  4120  		switch tp := p.(type) {
  4121  		case *DeviceSpecUSBGuardWhiteList_FieldTerminalPath:
  4122  			switch tp.selector {
  4123  			case DeviceSpecUSBGuardWhiteList_FieldPathSelectorDeviceName:
  4124  				result.DeviceName = source.DeviceName
  4125  			case DeviceSpecUSBGuardWhiteList_FieldPathSelectorDeviceId:
  4126  				result.DeviceId = source.DeviceId
  4127  			case DeviceSpecUSBGuardWhiteList_FieldPathSelectorViaPort:
  4128  				result.ViaPort = source.ViaPort
  4129  				wholeViaPortAccepted = true
  4130  			case DeviceSpecUSBGuardWhiteList_FieldPathSelectorWithInterface:
  4131  				result.WithInterface = source.WithInterface
  4132  				wholeWithInterfaceAccepted = true
  4133  			case DeviceSpecUSBGuardWhiteList_FieldPathSelectorWithConnectType:
  4134  				result.WithConnectType = source.WithConnectType
  4135  			}
  4136  		case *DeviceSpecUSBGuardWhiteList_FieldSubPath:
  4137  			switch tp.selector {
  4138  			case DeviceSpecUSBGuardWhiteList_FieldPathSelectorViaPort:
  4139  				viaPortMask.AppendPath(tp.subPath.(DeviceSpecUSBGuardPort_FieldPath))
  4140  			case DeviceSpecUSBGuardWhiteList_FieldPathSelectorWithInterface:
  4141  				withInterfaceMask.AppendPath(tp.subPath.(DeviceSpecUSBGuardInterface_FieldPath))
  4142  			}
  4143  		}
  4144  	}
  4145  	if wholeViaPortAccepted == false && len(viaPortMask.Paths) > 0 {
  4146  		result.ViaPort = viaPortMask.Project(source.GetViaPort())
  4147  	}
  4148  	if wholeWithInterfaceAccepted == false && len(withInterfaceMask.Paths) > 0 {
  4149  		result.WithInterface = withInterfaceMask.Project(source.GetWithInterface())
  4150  	}
  4151  	return result
  4152  }
  4153  
  4154  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  4155  	return fieldMask.Project(source.(*Device_Spec_USBGuard_WhiteList))
  4156  }
  4157  
  4158  func (fieldMask *Device_Spec_USBGuard_WhiteList_FieldMask) PathsCount() int {
  4159  	if fieldMask == nil {
  4160  		return 0
  4161  	}
  4162  	return len(fieldMask.Paths)
  4163  }
  4164  
  4165  type Device_Status_Address_FieldMask struct {
  4166  	Paths []DeviceStatusAddress_FieldPath
  4167  }
  4168  
  4169  func FullDevice_Status_Address_FieldMask() *Device_Status_Address_FieldMask {
  4170  	res := &Device_Status_Address_FieldMask{}
  4171  	res.Paths = append(res.Paths, &DeviceStatusAddress_FieldTerminalPath{selector: DeviceStatusAddress_FieldPathSelectorAddress})
  4172  	res.Paths = append(res.Paths, &DeviceStatusAddress_FieldTerminalPath{selector: DeviceStatusAddress_FieldPathSelectorType})
  4173  	return res
  4174  }
  4175  
  4176  func (fieldMask *Device_Status_Address_FieldMask) String() string {
  4177  	if fieldMask == nil {
  4178  		return "<nil>"
  4179  	}
  4180  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  4181  	for _, path := range fieldMask.Paths {
  4182  		pathsStr = append(pathsStr, path.String())
  4183  	}
  4184  	return strings.Join(pathsStr, ", ")
  4185  }
  4186  
  4187  func (fieldMask *Device_Status_Address_FieldMask) IsFull() bool {
  4188  	if fieldMask == nil {
  4189  		return false
  4190  	}
  4191  	presentSelectors := make([]bool, 2)
  4192  	for _, path := range fieldMask.Paths {
  4193  		if asFinal, ok := path.(*DeviceStatusAddress_FieldTerminalPath); ok {
  4194  			presentSelectors[int(asFinal.selector)] = true
  4195  		}
  4196  	}
  4197  	for _, flag := range presentSelectors {
  4198  		if !flag {
  4199  			return false
  4200  		}
  4201  	}
  4202  	return true
  4203  }
  4204  
  4205  func (fieldMask *Device_Status_Address_FieldMask) ProtoReflect() preflect.Message {
  4206  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  4207  		return ParseDeviceStatusAddress_FieldPath(raw)
  4208  	})
  4209  }
  4210  
  4211  func (fieldMask *Device_Status_Address_FieldMask) ProtoMessage() {}
  4212  
  4213  func (fieldMask *Device_Status_Address_FieldMask) Reset() {
  4214  	if fieldMask != nil {
  4215  		fieldMask.Paths = nil
  4216  	}
  4217  }
  4218  
  4219  func (fieldMask *Device_Status_Address_FieldMask) Subtract(other *Device_Status_Address_FieldMask) *Device_Status_Address_FieldMask {
  4220  	result := &Device_Status_Address_FieldMask{}
  4221  	removedSelectors := make([]bool, 2)
  4222  
  4223  	for _, path := range other.GetPaths() {
  4224  		switch tp := path.(type) {
  4225  		case *DeviceStatusAddress_FieldTerminalPath:
  4226  			removedSelectors[int(tp.selector)] = true
  4227  		}
  4228  	}
  4229  	for _, path := range fieldMask.GetPaths() {
  4230  		if !removedSelectors[int(path.Selector())] {
  4231  			result.Paths = append(result.Paths, path)
  4232  		}
  4233  	}
  4234  
  4235  	if len(result.Paths) == 0 {
  4236  		return nil
  4237  	}
  4238  	return result
  4239  }
  4240  
  4241  func (fieldMask *Device_Status_Address_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  4242  	return fieldMask.Subtract(other.(*Device_Status_Address_FieldMask))
  4243  }
  4244  
  4245  // FilterInputFields generates copy of field paths with output_only field paths removed
  4246  func (fieldMask *Device_Status_Address_FieldMask) FilterInputFields() *Device_Status_Address_FieldMask {
  4247  	result := &Device_Status_Address_FieldMask{}
  4248  	result.Paths = append(result.Paths, fieldMask.Paths...)
  4249  	return result
  4250  }
  4251  
  4252  // ToFieldMask is used for proto conversions
  4253  func (fieldMask *Device_Status_Address_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  4254  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  4255  	for _, path := range fieldMask.Paths {
  4256  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  4257  	}
  4258  	return protoFieldMask
  4259  }
  4260  
  4261  func (fieldMask *Device_Status_Address_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  4262  	if fieldMask == nil {
  4263  		return status.Error(codes.Internal, "target field mask is nil")
  4264  	}
  4265  	fieldMask.Paths = make([]DeviceStatusAddress_FieldPath, 0, len(protoFieldMask.Paths))
  4266  	for _, strPath := range protoFieldMask.Paths {
  4267  		path, err := ParseDeviceStatusAddress_FieldPath(strPath)
  4268  		if err != nil {
  4269  			return err
  4270  		}
  4271  		fieldMask.Paths = append(fieldMask.Paths, path)
  4272  	}
  4273  	return nil
  4274  }
  4275  
  4276  // implement methods required by customType
  4277  func (fieldMask Device_Status_Address_FieldMask) Marshal() ([]byte, error) {
  4278  	protoFieldMask := fieldMask.ToProtoFieldMask()
  4279  	return proto.Marshal(protoFieldMask)
  4280  }
  4281  
  4282  func (fieldMask *Device_Status_Address_FieldMask) Unmarshal(data []byte) error {
  4283  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  4284  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  4285  		return err
  4286  	}
  4287  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  4288  		return err
  4289  	}
  4290  	return nil
  4291  }
  4292  
  4293  func (fieldMask *Device_Status_Address_FieldMask) Size() int {
  4294  	return proto.Size(fieldMask.ToProtoFieldMask())
  4295  }
  4296  
  4297  func (fieldMask Device_Status_Address_FieldMask) MarshalJSON() ([]byte, error) {
  4298  	return json.Marshal(fieldMask.ToProtoFieldMask())
  4299  }
  4300  
  4301  func (fieldMask *Device_Status_Address_FieldMask) UnmarshalJSON(data []byte) error {
  4302  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  4303  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  4304  		return err
  4305  	}
  4306  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  4307  		return err
  4308  	}
  4309  	return nil
  4310  }
  4311  
  4312  func (fieldMask *Device_Status_Address_FieldMask) AppendPath(path DeviceStatusAddress_FieldPath) {
  4313  	fieldMask.Paths = append(fieldMask.Paths, path)
  4314  }
  4315  
  4316  func (fieldMask *Device_Status_Address_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  4317  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusAddress_FieldPath))
  4318  }
  4319  
  4320  func (fieldMask *Device_Status_Address_FieldMask) GetPaths() []DeviceStatusAddress_FieldPath {
  4321  	if fieldMask == nil {
  4322  		return nil
  4323  	}
  4324  	return fieldMask.Paths
  4325  }
  4326  
  4327  func (fieldMask *Device_Status_Address_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  4328  	if fieldMask == nil {
  4329  		return nil
  4330  	}
  4331  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  4332  	for _, path := range fieldMask.Paths {
  4333  		rawPaths = append(rawPaths, path)
  4334  	}
  4335  	return rawPaths
  4336  }
  4337  
  4338  func (fieldMask *Device_Status_Address_FieldMask) SetFromCliFlag(raw string) error {
  4339  	path, err := ParseDeviceStatusAddress_FieldPath(raw)
  4340  	if err != nil {
  4341  		return err
  4342  	}
  4343  	fieldMask.Paths = append(fieldMask.Paths, path)
  4344  	return nil
  4345  }
  4346  
  4347  func (fieldMask *Device_Status_Address_FieldMask) Set(target, source *Device_Status_Address) {
  4348  	for _, path := range fieldMask.Paths {
  4349  		val, _ := path.GetSingle(source)
  4350  		// if val is nil, then field does not exist in source, skip
  4351  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  4352  		if val != nil {
  4353  			path.WithIValue(val).SetTo(&target)
  4354  		}
  4355  	}
  4356  }
  4357  
  4358  func (fieldMask *Device_Status_Address_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  4359  	fieldMask.Set(target.(*Device_Status_Address), source.(*Device_Status_Address))
  4360  }
  4361  
  4362  func (fieldMask *Device_Status_Address_FieldMask) Project(source *Device_Status_Address) *Device_Status_Address {
  4363  	if source == nil {
  4364  		return nil
  4365  	}
  4366  	if fieldMask == nil {
  4367  		return source
  4368  	}
  4369  	result := &Device_Status_Address{}
  4370  
  4371  	for _, p := range fieldMask.Paths {
  4372  		switch tp := p.(type) {
  4373  		case *DeviceStatusAddress_FieldTerminalPath:
  4374  			switch tp.selector {
  4375  			case DeviceStatusAddress_FieldPathSelectorAddress:
  4376  				result.Address = source.Address
  4377  			case DeviceStatusAddress_FieldPathSelectorType:
  4378  				result.Type = source.Type
  4379  			}
  4380  		}
  4381  	}
  4382  	return result
  4383  }
  4384  
  4385  func (fieldMask *Device_Status_Address_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  4386  	return fieldMask.Project(source.(*Device_Status_Address))
  4387  }
  4388  
  4389  func (fieldMask *Device_Status_Address_FieldMask) PathsCount() int {
  4390  	if fieldMask == nil {
  4391  		return 0
  4392  	}
  4393  	return len(fieldMask.Paths)
  4394  }
  4395  
  4396  type Device_Status_Condition_FieldMask struct {
  4397  	Paths []DeviceStatusCondition_FieldPath
  4398  }
  4399  
  4400  func FullDevice_Status_Condition_FieldMask() *Device_Status_Condition_FieldMask {
  4401  	res := &Device_Status_Condition_FieldMask{}
  4402  	res.Paths = append(res.Paths, &DeviceStatusCondition_FieldTerminalPath{selector: DeviceStatusCondition_FieldPathSelectorMessage})
  4403  	res.Paths = append(res.Paths, &DeviceStatusCondition_FieldTerminalPath{selector: DeviceStatusCondition_FieldPathSelectorReason})
  4404  	res.Paths = append(res.Paths, &DeviceStatusCondition_FieldTerminalPath{selector: DeviceStatusCondition_FieldPathSelectorStatus})
  4405  	res.Paths = append(res.Paths, &DeviceStatusCondition_FieldTerminalPath{selector: DeviceStatusCondition_FieldPathSelectorType})
  4406  	res.Paths = append(res.Paths, &DeviceStatusCondition_FieldTerminalPath{selector: DeviceStatusCondition_FieldPathSelectorLastHeartBeatTime})
  4407  	res.Paths = append(res.Paths, &DeviceStatusCondition_FieldTerminalPath{selector: DeviceStatusCondition_FieldPathSelectorLastTransitionTime})
  4408  	return res
  4409  }
  4410  
  4411  func (fieldMask *Device_Status_Condition_FieldMask) String() string {
  4412  	if fieldMask == nil {
  4413  		return "<nil>"
  4414  	}
  4415  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  4416  	for _, path := range fieldMask.Paths {
  4417  		pathsStr = append(pathsStr, path.String())
  4418  	}
  4419  	return strings.Join(pathsStr, ", ")
  4420  }
  4421  
  4422  func (fieldMask *Device_Status_Condition_FieldMask) IsFull() bool {
  4423  	if fieldMask == nil {
  4424  		return false
  4425  	}
  4426  	presentSelectors := make([]bool, 6)
  4427  	for _, path := range fieldMask.Paths {
  4428  		if asFinal, ok := path.(*DeviceStatusCondition_FieldTerminalPath); ok {
  4429  			presentSelectors[int(asFinal.selector)] = true
  4430  		}
  4431  	}
  4432  	for _, flag := range presentSelectors {
  4433  		if !flag {
  4434  			return false
  4435  		}
  4436  	}
  4437  	return true
  4438  }
  4439  
  4440  func (fieldMask *Device_Status_Condition_FieldMask) ProtoReflect() preflect.Message {
  4441  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  4442  		return ParseDeviceStatusCondition_FieldPath(raw)
  4443  	})
  4444  }
  4445  
  4446  func (fieldMask *Device_Status_Condition_FieldMask) ProtoMessage() {}
  4447  
  4448  func (fieldMask *Device_Status_Condition_FieldMask) Reset() {
  4449  	if fieldMask != nil {
  4450  		fieldMask.Paths = nil
  4451  	}
  4452  }
  4453  
  4454  func (fieldMask *Device_Status_Condition_FieldMask) Subtract(other *Device_Status_Condition_FieldMask) *Device_Status_Condition_FieldMask {
  4455  	result := &Device_Status_Condition_FieldMask{}
  4456  	removedSelectors := make([]bool, 6)
  4457  
  4458  	for _, path := range other.GetPaths() {
  4459  		switch tp := path.(type) {
  4460  		case *DeviceStatusCondition_FieldTerminalPath:
  4461  			removedSelectors[int(tp.selector)] = true
  4462  		}
  4463  	}
  4464  	for _, path := range fieldMask.GetPaths() {
  4465  		if !removedSelectors[int(path.Selector())] {
  4466  			result.Paths = append(result.Paths, path)
  4467  		}
  4468  	}
  4469  
  4470  	if len(result.Paths) == 0 {
  4471  		return nil
  4472  	}
  4473  	return result
  4474  }
  4475  
  4476  func (fieldMask *Device_Status_Condition_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  4477  	return fieldMask.Subtract(other.(*Device_Status_Condition_FieldMask))
  4478  }
  4479  
  4480  // FilterInputFields generates copy of field paths with output_only field paths removed
  4481  func (fieldMask *Device_Status_Condition_FieldMask) FilterInputFields() *Device_Status_Condition_FieldMask {
  4482  	result := &Device_Status_Condition_FieldMask{}
  4483  	result.Paths = append(result.Paths, fieldMask.Paths...)
  4484  	return result
  4485  }
  4486  
  4487  // ToFieldMask is used for proto conversions
  4488  func (fieldMask *Device_Status_Condition_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  4489  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  4490  	for _, path := range fieldMask.Paths {
  4491  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  4492  	}
  4493  	return protoFieldMask
  4494  }
  4495  
  4496  func (fieldMask *Device_Status_Condition_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  4497  	if fieldMask == nil {
  4498  		return status.Error(codes.Internal, "target field mask is nil")
  4499  	}
  4500  	fieldMask.Paths = make([]DeviceStatusCondition_FieldPath, 0, len(protoFieldMask.Paths))
  4501  	for _, strPath := range protoFieldMask.Paths {
  4502  		path, err := ParseDeviceStatusCondition_FieldPath(strPath)
  4503  		if err != nil {
  4504  			return err
  4505  		}
  4506  		fieldMask.Paths = append(fieldMask.Paths, path)
  4507  	}
  4508  	return nil
  4509  }
  4510  
  4511  // implement methods required by customType
  4512  func (fieldMask Device_Status_Condition_FieldMask) Marshal() ([]byte, error) {
  4513  	protoFieldMask := fieldMask.ToProtoFieldMask()
  4514  	return proto.Marshal(protoFieldMask)
  4515  }
  4516  
  4517  func (fieldMask *Device_Status_Condition_FieldMask) Unmarshal(data []byte) error {
  4518  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  4519  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  4520  		return err
  4521  	}
  4522  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  4523  		return err
  4524  	}
  4525  	return nil
  4526  }
  4527  
  4528  func (fieldMask *Device_Status_Condition_FieldMask) Size() int {
  4529  	return proto.Size(fieldMask.ToProtoFieldMask())
  4530  }
  4531  
  4532  func (fieldMask Device_Status_Condition_FieldMask) MarshalJSON() ([]byte, error) {
  4533  	return json.Marshal(fieldMask.ToProtoFieldMask())
  4534  }
  4535  
  4536  func (fieldMask *Device_Status_Condition_FieldMask) UnmarshalJSON(data []byte) error {
  4537  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  4538  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  4539  		return err
  4540  	}
  4541  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  4542  		return err
  4543  	}
  4544  	return nil
  4545  }
  4546  
  4547  func (fieldMask *Device_Status_Condition_FieldMask) AppendPath(path DeviceStatusCondition_FieldPath) {
  4548  	fieldMask.Paths = append(fieldMask.Paths, path)
  4549  }
  4550  
  4551  func (fieldMask *Device_Status_Condition_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  4552  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusCondition_FieldPath))
  4553  }
  4554  
  4555  func (fieldMask *Device_Status_Condition_FieldMask) GetPaths() []DeviceStatusCondition_FieldPath {
  4556  	if fieldMask == nil {
  4557  		return nil
  4558  	}
  4559  	return fieldMask.Paths
  4560  }
  4561  
  4562  func (fieldMask *Device_Status_Condition_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  4563  	if fieldMask == nil {
  4564  		return nil
  4565  	}
  4566  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  4567  	for _, path := range fieldMask.Paths {
  4568  		rawPaths = append(rawPaths, path)
  4569  	}
  4570  	return rawPaths
  4571  }
  4572  
  4573  func (fieldMask *Device_Status_Condition_FieldMask) SetFromCliFlag(raw string) error {
  4574  	path, err := ParseDeviceStatusCondition_FieldPath(raw)
  4575  	if err != nil {
  4576  		return err
  4577  	}
  4578  	fieldMask.Paths = append(fieldMask.Paths, path)
  4579  	return nil
  4580  }
  4581  
  4582  func (fieldMask *Device_Status_Condition_FieldMask) Set(target, source *Device_Status_Condition) {
  4583  	for _, path := range fieldMask.Paths {
  4584  		val, _ := path.GetSingle(source)
  4585  		// if val is nil, then field does not exist in source, skip
  4586  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  4587  		if val != nil {
  4588  			path.WithIValue(val).SetTo(&target)
  4589  		}
  4590  	}
  4591  }
  4592  
  4593  func (fieldMask *Device_Status_Condition_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  4594  	fieldMask.Set(target.(*Device_Status_Condition), source.(*Device_Status_Condition))
  4595  }
  4596  
  4597  func (fieldMask *Device_Status_Condition_FieldMask) Project(source *Device_Status_Condition) *Device_Status_Condition {
  4598  	if source == nil {
  4599  		return nil
  4600  	}
  4601  	if fieldMask == nil {
  4602  		return source
  4603  	}
  4604  	result := &Device_Status_Condition{}
  4605  
  4606  	for _, p := range fieldMask.Paths {
  4607  		switch tp := p.(type) {
  4608  		case *DeviceStatusCondition_FieldTerminalPath:
  4609  			switch tp.selector {
  4610  			case DeviceStatusCondition_FieldPathSelectorMessage:
  4611  				result.Message = source.Message
  4612  			case DeviceStatusCondition_FieldPathSelectorReason:
  4613  				result.Reason = source.Reason
  4614  			case DeviceStatusCondition_FieldPathSelectorStatus:
  4615  				result.Status = source.Status
  4616  			case DeviceStatusCondition_FieldPathSelectorType:
  4617  				result.Type = source.Type
  4618  			case DeviceStatusCondition_FieldPathSelectorLastHeartBeatTime:
  4619  				result.LastHeartBeatTime = source.LastHeartBeatTime
  4620  			case DeviceStatusCondition_FieldPathSelectorLastTransitionTime:
  4621  				result.LastTransitionTime = source.LastTransitionTime
  4622  			}
  4623  		}
  4624  	}
  4625  	return result
  4626  }
  4627  
  4628  func (fieldMask *Device_Status_Condition_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  4629  	return fieldMask.Project(source.(*Device_Status_Condition))
  4630  }
  4631  
  4632  func (fieldMask *Device_Status_Condition_FieldMask) PathsCount() int {
  4633  	if fieldMask == nil {
  4634  		return 0
  4635  	}
  4636  	return len(fieldMask.Paths)
  4637  }
  4638  
  4639  type Device_Status_NetworkConfigState_FieldMask struct {
  4640  	Paths []DeviceStatusNetworkConfigState_FieldPath
  4641  }
  4642  
  4643  func FullDevice_Status_NetworkConfigState_FieldMask() *Device_Status_NetworkConfigState_FieldMask {
  4644  	res := &Device_Status_NetworkConfigState_FieldMask{}
  4645  	res.Paths = append(res.Paths, &DeviceStatusNetworkConfigState_FieldTerminalPath{selector: DeviceStatusNetworkConfigState_FieldPathSelectorActiveNetworkConfigSource})
  4646  	res.Paths = append(res.Paths, &DeviceStatusNetworkConfigState_FieldTerminalPath{selector: DeviceStatusNetworkConfigState_FieldPathSelectorDesiredNetworkConfigSource})
  4647  	res.Paths = append(res.Paths, &DeviceStatusNetworkConfigState_FieldTerminalPath{selector: DeviceStatusNetworkConfigState_FieldPathSelectorDesiredNetworkConfigError})
  4648  	res.Paths = append(res.Paths, &DeviceStatusNetworkConfigState_FieldTerminalPath{selector: DeviceStatusNetworkConfigState_FieldPathSelectorDefaultNetplanConfig})
  4649  	res.Paths = append(res.Paths, &DeviceStatusNetworkConfigState_FieldTerminalPath{selector: DeviceStatusNetworkConfigState_FieldPathSelectorActiveNetplanConfig})
  4650  	res.Paths = append(res.Paths, &DeviceStatusNetworkConfigState_FieldTerminalPath{selector: DeviceStatusNetworkConfigState_FieldPathSelectorDesiredNetplanConfig})
  4651  	return res
  4652  }
  4653  
  4654  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) String() string {
  4655  	if fieldMask == nil {
  4656  		return "<nil>"
  4657  	}
  4658  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  4659  	for _, path := range fieldMask.Paths {
  4660  		pathsStr = append(pathsStr, path.String())
  4661  	}
  4662  	return strings.Join(pathsStr, ", ")
  4663  }
  4664  
  4665  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) IsFull() bool {
  4666  	if fieldMask == nil {
  4667  		return false
  4668  	}
  4669  	presentSelectors := make([]bool, 6)
  4670  	for _, path := range fieldMask.Paths {
  4671  		if asFinal, ok := path.(*DeviceStatusNetworkConfigState_FieldTerminalPath); ok {
  4672  			presentSelectors[int(asFinal.selector)] = true
  4673  		}
  4674  	}
  4675  	for _, flag := range presentSelectors {
  4676  		if !flag {
  4677  			return false
  4678  		}
  4679  	}
  4680  	return true
  4681  }
  4682  
  4683  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) ProtoReflect() preflect.Message {
  4684  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  4685  		return ParseDeviceStatusNetworkConfigState_FieldPath(raw)
  4686  	})
  4687  }
  4688  
  4689  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) ProtoMessage() {}
  4690  
  4691  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) Reset() {
  4692  	if fieldMask != nil {
  4693  		fieldMask.Paths = nil
  4694  	}
  4695  }
  4696  
  4697  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) Subtract(other *Device_Status_NetworkConfigState_FieldMask) *Device_Status_NetworkConfigState_FieldMask {
  4698  	result := &Device_Status_NetworkConfigState_FieldMask{}
  4699  	removedSelectors := make([]bool, 6)
  4700  
  4701  	for _, path := range other.GetPaths() {
  4702  		switch tp := path.(type) {
  4703  		case *DeviceStatusNetworkConfigState_FieldTerminalPath:
  4704  			removedSelectors[int(tp.selector)] = true
  4705  		}
  4706  	}
  4707  	for _, path := range fieldMask.GetPaths() {
  4708  		if !removedSelectors[int(path.Selector())] {
  4709  			result.Paths = append(result.Paths, path)
  4710  		}
  4711  	}
  4712  
  4713  	if len(result.Paths) == 0 {
  4714  		return nil
  4715  	}
  4716  	return result
  4717  }
  4718  
  4719  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  4720  	return fieldMask.Subtract(other.(*Device_Status_NetworkConfigState_FieldMask))
  4721  }
  4722  
  4723  // FilterInputFields generates copy of field paths with output_only field paths removed
  4724  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) FilterInputFields() *Device_Status_NetworkConfigState_FieldMask {
  4725  	result := &Device_Status_NetworkConfigState_FieldMask{}
  4726  	result.Paths = append(result.Paths, fieldMask.Paths...)
  4727  	return result
  4728  }
  4729  
  4730  // ToFieldMask is used for proto conversions
  4731  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  4732  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  4733  	for _, path := range fieldMask.Paths {
  4734  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  4735  	}
  4736  	return protoFieldMask
  4737  }
  4738  
  4739  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  4740  	if fieldMask == nil {
  4741  		return status.Error(codes.Internal, "target field mask is nil")
  4742  	}
  4743  	fieldMask.Paths = make([]DeviceStatusNetworkConfigState_FieldPath, 0, len(protoFieldMask.Paths))
  4744  	for _, strPath := range protoFieldMask.Paths {
  4745  		path, err := ParseDeviceStatusNetworkConfigState_FieldPath(strPath)
  4746  		if err != nil {
  4747  			return err
  4748  		}
  4749  		fieldMask.Paths = append(fieldMask.Paths, path)
  4750  	}
  4751  	return nil
  4752  }
  4753  
  4754  // implement methods required by customType
  4755  func (fieldMask Device_Status_NetworkConfigState_FieldMask) Marshal() ([]byte, error) {
  4756  	protoFieldMask := fieldMask.ToProtoFieldMask()
  4757  	return proto.Marshal(protoFieldMask)
  4758  }
  4759  
  4760  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) Unmarshal(data []byte) error {
  4761  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  4762  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  4763  		return err
  4764  	}
  4765  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  4766  		return err
  4767  	}
  4768  	return nil
  4769  }
  4770  
  4771  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) Size() int {
  4772  	return proto.Size(fieldMask.ToProtoFieldMask())
  4773  }
  4774  
  4775  func (fieldMask Device_Status_NetworkConfigState_FieldMask) MarshalJSON() ([]byte, error) {
  4776  	return json.Marshal(fieldMask.ToProtoFieldMask())
  4777  }
  4778  
  4779  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) UnmarshalJSON(data []byte) error {
  4780  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  4781  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  4782  		return err
  4783  	}
  4784  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  4785  		return err
  4786  	}
  4787  	return nil
  4788  }
  4789  
  4790  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) AppendPath(path DeviceStatusNetworkConfigState_FieldPath) {
  4791  	fieldMask.Paths = append(fieldMask.Paths, path)
  4792  }
  4793  
  4794  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  4795  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusNetworkConfigState_FieldPath))
  4796  }
  4797  
  4798  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) GetPaths() []DeviceStatusNetworkConfigState_FieldPath {
  4799  	if fieldMask == nil {
  4800  		return nil
  4801  	}
  4802  	return fieldMask.Paths
  4803  }
  4804  
  4805  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  4806  	if fieldMask == nil {
  4807  		return nil
  4808  	}
  4809  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  4810  	for _, path := range fieldMask.Paths {
  4811  		rawPaths = append(rawPaths, path)
  4812  	}
  4813  	return rawPaths
  4814  }
  4815  
  4816  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) SetFromCliFlag(raw string) error {
  4817  	path, err := ParseDeviceStatusNetworkConfigState_FieldPath(raw)
  4818  	if err != nil {
  4819  		return err
  4820  	}
  4821  	fieldMask.Paths = append(fieldMask.Paths, path)
  4822  	return nil
  4823  }
  4824  
  4825  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) Set(target, source *Device_Status_NetworkConfigState) {
  4826  	for _, path := range fieldMask.Paths {
  4827  		val, _ := path.GetSingle(source)
  4828  		// if val is nil, then field does not exist in source, skip
  4829  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  4830  		if val != nil {
  4831  			path.WithIValue(val).SetTo(&target)
  4832  		}
  4833  	}
  4834  }
  4835  
  4836  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  4837  	fieldMask.Set(target.(*Device_Status_NetworkConfigState), source.(*Device_Status_NetworkConfigState))
  4838  }
  4839  
  4840  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) Project(source *Device_Status_NetworkConfigState) *Device_Status_NetworkConfigState {
  4841  	if source == nil {
  4842  		return nil
  4843  	}
  4844  	if fieldMask == nil {
  4845  		return source
  4846  	}
  4847  	result := &Device_Status_NetworkConfigState{}
  4848  
  4849  	for _, p := range fieldMask.Paths {
  4850  		switch tp := p.(type) {
  4851  		case *DeviceStatusNetworkConfigState_FieldTerminalPath:
  4852  			switch tp.selector {
  4853  			case DeviceStatusNetworkConfigState_FieldPathSelectorActiveNetworkConfigSource:
  4854  				result.ActiveNetworkConfigSource = source.ActiveNetworkConfigSource
  4855  			case DeviceStatusNetworkConfigState_FieldPathSelectorDesiredNetworkConfigSource:
  4856  				result.DesiredNetworkConfigSource = source.DesiredNetworkConfigSource
  4857  			case DeviceStatusNetworkConfigState_FieldPathSelectorDesiredNetworkConfigError:
  4858  				result.DesiredNetworkConfigError = source.DesiredNetworkConfigError
  4859  			case DeviceStatusNetworkConfigState_FieldPathSelectorDefaultNetplanConfig:
  4860  				result.DefaultNetplanConfig = source.DefaultNetplanConfig
  4861  			case DeviceStatusNetworkConfigState_FieldPathSelectorActiveNetplanConfig:
  4862  				result.ActiveNetplanConfig = source.ActiveNetplanConfig
  4863  			case DeviceStatusNetworkConfigState_FieldPathSelectorDesiredNetplanConfig:
  4864  				result.DesiredNetplanConfig = source.DesiredNetplanConfig
  4865  			}
  4866  		}
  4867  	}
  4868  	return result
  4869  }
  4870  
  4871  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  4872  	return fieldMask.Project(source.(*Device_Status_NetworkConfigState))
  4873  }
  4874  
  4875  func (fieldMask *Device_Status_NetworkConfigState_FieldMask) PathsCount() int {
  4876  	if fieldMask == nil {
  4877  		return 0
  4878  	}
  4879  	return len(fieldMask.Paths)
  4880  }
  4881  
  4882  type Device_Status_ProxyConfigStatus_FieldMask struct {
  4883  	Paths []DeviceStatusProxyConfigStatus_FieldPath
  4884  }
  4885  
  4886  func FullDevice_Status_ProxyConfigStatus_FieldMask() *Device_Status_ProxyConfigStatus_FieldMask {
  4887  	res := &Device_Status_ProxyConfigStatus_FieldMask{}
  4888  	res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldTerminalPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorActiveConfigSource})
  4889  	res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldTerminalPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorDesiredConfigSource})
  4890  	res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldTerminalPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorProxyConfigError})
  4891  	res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldTerminalPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorDefaultConfig})
  4892  	res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldTerminalPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorActiveConfig})
  4893  	res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldTerminalPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorApiConfig})
  4894  	return res
  4895  }
  4896  
  4897  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) String() string {
  4898  	if fieldMask == nil {
  4899  		return "<nil>"
  4900  	}
  4901  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  4902  	for _, path := range fieldMask.Paths {
  4903  		pathsStr = append(pathsStr, path.String())
  4904  	}
  4905  	return strings.Join(pathsStr, ", ")
  4906  }
  4907  
  4908  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) IsFull() bool {
  4909  	if fieldMask == nil {
  4910  		return false
  4911  	}
  4912  	presentSelectors := make([]bool, 6)
  4913  	for _, path := range fieldMask.Paths {
  4914  		if asFinal, ok := path.(*DeviceStatusProxyConfigStatus_FieldTerminalPath); ok {
  4915  			presentSelectors[int(asFinal.selector)] = true
  4916  		}
  4917  	}
  4918  	for _, flag := range presentSelectors {
  4919  		if !flag {
  4920  			return false
  4921  		}
  4922  	}
  4923  	return true
  4924  }
  4925  
  4926  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) ProtoReflect() preflect.Message {
  4927  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  4928  		return ParseDeviceStatusProxyConfigStatus_FieldPath(raw)
  4929  	})
  4930  }
  4931  
  4932  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) ProtoMessage() {}
  4933  
  4934  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) Reset() {
  4935  	if fieldMask != nil {
  4936  		fieldMask.Paths = nil
  4937  	}
  4938  }
  4939  
  4940  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) Subtract(other *Device_Status_ProxyConfigStatus_FieldMask) *Device_Status_ProxyConfigStatus_FieldMask {
  4941  	result := &Device_Status_ProxyConfigStatus_FieldMask{}
  4942  	removedSelectors := make([]bool, 6)
  4943  	otherSubMasks := map[DeviceStatusProxyConfigStatus_FieldPathSelector]gotenobject.FieldMask{
  4944  		DeviceStatusProxyConfigStatus_FieldPathSelectorDefaultConfig: &Device_Spec_ProxyConfig_FieldMask{},
  4945  		DeviceStatusProxyConfigStatus_FieldPathSelectorActiveConfig:  &Device_Spec_ProxyConfig_FieldMask{},
  4946  		DeviceStatusProxyConfigStatus_FieldPathSelectorApiConfig:     &Device_Spec_ProxyConfig_FieldMask{},
  4947  	}
  4948  	mySubMasks := map[DeviceStatusProxyConfigStatus_FieldPathSelector]gotenobject.FieldMask{
  4949  		DeviceStatusProxyConfigStatus_FieldPathSelectorDefaultConfig: &Device_Spec_ProxyConfig_FieldMask{},
  4950  		DeviceStatusProxyConfigStatus_FieldPathSelectorActiveConfig:  &Device_Spec_ProxyConfig_FieldMask{},
  4951  		DeviceStatusProxyConfigStatus_FieldPathSelectorApiConfig:     &Device_Spec_ProxyConfig_FieldMask{},
  4952  	}
  4953  
  4954  	for _, path := range other.GetPaths() {
  4955  		switch tp := path.(type) {
  4956  		case *DeviceStatusProxyConfigStatus_FieldTerminalPath:
  4957  			removedSelectors[int(tp.selector)] = true
  4958  		case *DeviceStatusProxyConfigStatus_FieldSubPath:
  4959  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  4960  		}
  4961  	}
  4962  	for _, path := range fieldMask.GetPaths() {
  4963  		if !removedSelectors[int(path.Selector())] {
  4964  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  4965  				if tp, ok := path.(*DeviceStatusProxyConfigStatus_FieldTerminalPath); ok {
  4966  					switch tp.selector {
  4967  					case DeviceStatusProxyConfigStatus_FieldPathSelectorDefaultConfig:
  4968  						mySubMasks[DeviceStatusProxyConfigStatus_FieldPathSelectorDefaultConfig] = FullDevice_Spec_ProxyConfig_FieldMask()
  4969  					case DeviceStatusProxyConfigStatus_FieldPathSelectorActiveConfig:
  4970  						mySubMasks[DeviceStatusProxyConfigStatus_FieldPathSelectorActiveConfig] = FullDevice_Spec_ProxyConfig_FieldMask()
  4971  					case DeviceStatusProxyConfigStatus_FieldPathSelectorApiConfig:
  4972  						mySubMasks[DeviceStatusProxyConfigStatus_FieldPathSelectorApiConfig] = FullDevice_Spec_ProxyConfig_FieldMask()
  4973  					}
  4974  				} else if tp, ok := path.(*DeviceStatusProxyConfigStatus_FieldSubPath); ok {
  4975  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  4976  				}
  4977  			} else {
  4978  				result.Paths = append(result.Paths, path)
  4979  			}
  4980  		}
  4981  	}
  4982  	for selector, mySubMask := range mySubMasks {
  4983  		if mySubMask.PathsCount() > 0 {
  4984  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  4985  				result.Paths = append(result.Paths, &DeviceStatusProxyConfigStatus_FieldSubPath{selector: selector, subPath: allowedPath})
  4986  			}
  4987  		}
  4988  	}
  4989  
  4990  	if len(result.Paths) == 0 {
  4991  		return nil
  4992  	}
  4993  	return result
  4994  }
  4995  
  4996  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  4997  	return fieldMask.Subtract(other.(*Device_Status_ProxyConfigStatus_FieldMask))
  4998  }
  4999  
  5000  // FilterInputFields generates copy of field paths with output_only field paths removed
  5001  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) FilterInputFields() *Device_Status_ProxyConfigStatus_FieldMask {
  5002  	result := &Device_Status_ProxyConfigStatus_FieldMask{}
  5003  	result.Paths = append(result.Paths, fieldMask.Paths...)
  5004  	return result
  5005  }
  5006  
  5007  // ToFieldMask is used for proto conversions
  5008  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  5009  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  5010  	for _, path := range fieldMask.Paths {
  5011  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  5012  	}
  5013  	return protoFieldMask
  5014  }
  5015  
  5016  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  5017  	if fieldMask == nil {
  5018  		return status.Error(codes.Internal, "target field mask is nil")
  5019  	}
  5020  	fieldMask.Paths = make([]DeviceStatusProxyConfigStatus_FieldPath, 0, len(protoFieldMask.Paths))
  5021  	for _, strPath := range protoFieldMask.Paths {
  5022  		path, err := ParseDeviceStatusProxyConfigStatus_FieldPath(strPath)
  5023  		if err != nil {
  5024  			return err
  5025  		}
  5026  		fieldMask.Paths = append(fieldMask.Paths, path)
  5027  	}
  5028  	return nil
  5029  }
  5030  
  5031  // implement methods required by customType
  5032  func (fieldMask Device_Status_ProxyConfigStatus_FieldMask) Marshal() ([]byte, error) {
  5033  	protoFieldMask := fieldMask.ToProtoFieldMask()
  5034  	return proto.Marshal(protoFieldMask)
  5035  }
  5036  
  5037  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) Unmarshal(data []byte) error {
  5038  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  5039  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  5040  		return err
  5041  	}
  5042  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  5043  		return err
  5044  	}
  5045  	return nil
  5046  }
  5047  
  5048  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) Size() int {
  5049  	return proto.Size(fieldMask.ToProtoFieldMask())
  5050  }
  5051  
  5052  func (fieldMask Device_Status_ProxyConfigStatus_FieldMask) MarshalJSON() ([]byte, error) {
  5053  	return json.Marshal(fieldMask.ToProtoFieldMask())
  5054  }
  5055  
  5056  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) UnmarshalJSON(data []byte) error {
  5057  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  5058  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  5059  		return err
  5060  	}
  5061  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  5062  		return err
  5063  	}
  5064  	return nil
  5065  }
  5066  
  5067  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) AppendPath(path DeviceStatusProxyConfigStatus_FieldPath) {
  5068  	fieldMask.Paths = append(fieldMask.Paths, path)
  5069  }
  5070  
  5071  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  5072  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusProxyConfigStatus_FieldPath))
  5073  }
  5074  
  5075  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) GetPaths() []DeviceStatusProxyConfigStatus_FieldPath {
  5076  	if fieldMask == nil {
  5077  		return nil
  5078  	}
  5079  	return fieldMask.Paths
  5080  }
  5081  
  5082  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  5083  	if fieldMask == nil {
  5084  		return nil
  5085  	}
  5086  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  5087  	for _, path := range fieldMask.Paths {
  5088  		rawPaths = append(rawPaths, path)
  5089  	}
  5090  	return rawPaths
  5091  }
  5092  
  5093  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) SetFromCliFlag(raw string) error {
  5094  	path, err := ParseDeviceStatusProxyConfigStatus_FieldPath(raw)
  5095  	if err != nil {
  5096  		return err
  5097  	}
  5098  	fieldMask.Paths = append(fieldMask.Paths, path)
  5099  	return nil
  5100  }
  5101  
  5102  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) Set(target, source *Device_Status_ProxyConfigStatus) {
  5103  	for _, path := range fieldMask.Paths {
  5104  		val, _ := path.GetSingle(source)
  5105  		// if val is nil, then field does not exist in source, skip
  5106  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  5107  		if val != nil {
  5108  			path.WithIValue(val).SetTo(&target)
  5109  		}
  5110  	}
  5111  }
  5112  
  5113  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  5114  	fieldMask.Set(target.(*Device_Status_ProxyConfigStatus), source.(*Device_Status_ProxyConfigStatus))
  5115  }
  5116  
  5117  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) Project(source *Device_Status_ProxyConfigStatus) *Device_Status_ProxyConfigStatus {
  5118  	if source == nil {
  5119  		return nil
  5120  	}
  5121  	if fieldMask == nil {
  5122  		return source
  5123  	}
  5124  	result := &Device_Status_ProxyConfigStatus{}
  5125  	defaultConfigMask := &Device_Spec_ProxyConfig_FieldMask{}
  5126  	wholeDefaultConfigAccepted := false
  5127  	activeConfigMask := &Device_Spec_ProxyConfig_FieldMask{}
  5128  	wholeActiveConfigAccepted := false
  5129  	apiConfigMask := &Device_Spec_ProxyConfig_FieldMask{}
  5130  	wholeApiConfigAccepted := false
  5131  
  5132  	for _, p := range fieldMask.Paths {
  5133  		switch tp := p.(type) {
  5134  		case *DeviceStatusProxyConfigStatus_FieldTerminalPath:
  5135  			switch tp.selector {
  5136  			case DeviceStatusProxyConfigStatus_FieldPathSelectorActiveConfigSource:
  5137  				result.ActiveConfigSource = source.ActiveConfigSource
  5138  			case DeviceStatusProxyConfigStatus_FieldPathSelectorDesiredConfigSource:
  5139  				result.DesiredConfigSource = source.DesiredConfigSource
  5140  			case DeviceStatusProxyConfigStatus_FieldPathSelectorProxyConfigError:
  5141  				result.ProxyConfigError = source.ProxyConfigError
  5142  			case DeviceStatusProxyConfigStatus_FieldPathSelectorDefaultConfig:
  5143  				result.DefaultConfig = source.DefaultConfig
  5144  				wholeDefaultConfigAccepted = true
  5145  			case DeviceStatusProxyConfigStatus_FieldPathSelectorActiveConfig:
  5146  				result.ActiveConfig = source.ActiveConfig
  5147  				wholeActiveConfigAccepted = true
  5148  			case DeviceStatusProxyConfigStatus_FieldPathSelectorApiConfig:
  5149  				result.ApiConfig = source.ApiConfig
  5150  				wholeApiConfigAccepted = true
  5151  			}
  5152  		case *DeviceStatusProxyConfigStatus_FieldSubPath:
  5153  			switch tp.selector {
  5154  			case DeviceStatusProxyConfigStatus_FieldPathSelectorDefaultConfig:
  5155  				defaultConfigMask.AppendPath(tp.subPath.(DeviceSpecProxyConfig_FieldPath))
  5156  			case DeviceStatusProxyConfigStatus_FieldPathSelectorActiveConfig:
  5157  				activeConfigMask.AppendPath(tp.subPath.(DeviceSpecProxyConfig_FieldPath))
  5158  			case DeviceStatusProxyConfigStatus_FieldPathSelectorApiConfig:
  5159  				apiConfigMask.AppendPath(tp.subPath.(DeviceSpecProxyConfig_FieldPath))
  5160  			}
  5161  		}
  5162  	}
  5163  	if wholeDefaultConfigAccepted == false && len(defaultConfigMask.Paths) > 0 {
  5164  		result.DefaultConfig = defaultConfigMask.Project(source.GetDefaultConfig())
  5165  	}
  5166  	if wholeActiveConfigAccepted == false && len(activeConfigMask.Paths) > 0 {
  5167  		result.ActiveConfig = activeConfigMask.Project(source.GetActiveConfig())
  5168  	}
  5169  	if wholeApiConfigAccepted == false && len(apiConfigMask.Paths) > 0 {
  5170  		result.ApiConfig = apiConfigMask.Project(source.GetApiConfig())
  5171  	}
  5172  	return result
  5173  }
  5174  
  5175  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  5176  	return fieldMask.Project(source.(*Device_Status_ProxyConfigStatus))
  5177  }
  5178  
  5179  func (fieldMask *Device_Status_ProxyConfigStatus_FieldMask) PathsCount() int {
  5180  	if fieldMask == nil {
  5181  		return 0
  5182  	}
  5183  	return len(fieldMask.Paths)
  5184  }
  5185  
  5186  type Device_Status_DeviceInfo_FieldMask struct {
  5187  	Paths []DeviceStatusDeviceInfo_FieldPath
  5188  }
  5189  
  5190  func FullDevice_Status_DeviceInfo_FieldMask() *Device_Status_DeviceInfo_FieldMask {
  5191  	res := &Device_Status_DeviceInfo_FieldMask{}
  5192  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorArchitecture})
  5193  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorHardware})
  5194  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorOperatingSystem})
  5195  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorKernelVersion})
  5196  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorOsImage})
  5197  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorContainerRuntimeVersion})
  5198  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorOsVersion})
  5199  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorDriver})
  5200  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorHardwareInformation})
  5201  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorNetworkInterfaces})
  5202  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorControlPlaneInterfaceInfo})
  5203  	return res
  5204  }
  5205  
  5206  func (fieldMask *Device_Status_DeviceInfo_FieldMask) String() string {
  5207  	if fieldMask == nil {
  5208  		return "<nil>"
  5209  	}
  5210  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  5211  	for _, path := range fieldMask.Paths {
  5212  		pathsStr = append(pathsStr, path.String())
  5213  	}
  5214  	return strings.Join(pathsStr, ", ")
  5215  }
  5216  
  5217  func (fieldMask *Device_Status_DeviceInfo_FieldMask) IsFull() bool {
  5218  	if fieldMask == nil {
  5219  		return false
  5220  	}
  5221  	presentSelectors := make([]bool, 11)
  5222  	for _, path := range fieldMask.Paths {
  5223  		if asFinal, ok := path.(*DeviceStatusDeviceInfo_FieldTerminalPath); ok {
  5224  			presentSelectors[int(asFinal.selector)] = true
  5225  		}
  5226  	}
  5227  	for _, flag := range presentSelectors {
  5228  		if !flag {
  5229  			return false
  5230  		}
  5231  	}
  5232  	return true
  5233  }
  5234  
  5235  func (fieldMask *Device_Status_DeviceInfo_FieldMask) ProtoReflect() preflect.Message {
  5236  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  5237  		return ParseDeviceStatusDeviceInfo_FieldPath(raw)
  5238  	})
  5239  }
  5240  
  5241  func (fieldMask *Device_Status_DeviceInfo_FieldMask) ProtoMessage() {}
  5242  
  5243  func (fieldMask *Device_Status_DeviceInfo_FieldMask) Reset() {
  5244  	if fieldMask != nil {
  5245  		fieldMask.Paths = nil
  5246  	}
  5247  }
  5248  
  5249  func (fieldMask *Device_Status_DeviceInfo_FieldMask) Subtract(other *Device_Status_DeviceInfo_FieldMask) *Device_Status_DeviceInfo_FieldMask {
  5250  	result := &Device_Status_DeviceInfo_FieldMask{}
  5251  	removedSelectors := make([]bool, 11)
  5252  	otherSubMasks := map[DeviceStatusDeviceInfo_FieldPathSelector]gotenobject.FieldMask{
  5253  		DeviceStatusDeviceInfo_FieldPathSelectorHardwareInformation:       &Device_Status_DeviceInfo_HardwareInformation_FieldMask{},
  5254  		DeviceStatusDeviceInfo_FieldPathSelectorControlPlaneInterfaceInfo: &Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask{},
  5255  	}
  5256  	mySubMasks := map[DeviceStatusDeviceInfo_FieldPathSelector]gotenobject.FieldMask{
  5257  		DeviceStatusDeviceInfo_FieldPathSelectorHardwareInformation:       &Device_Status_DeviceInfo_HardwareInformation_FieldMask{},
  5258  		DeviceStatusDeviceInfo_FieldPathSelectorControlPlaneInterfaceInfo: &Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask{},
  5259  	}
  5260  
  5261  	for _, path := range other.GetPaths() {
  5262  		switch tp := path.(type) {
  5263  		case *DeviceStatusDeviceInfo_FieldTerminalPath:
  5264  			removedSelectors[int(tp.selector)] = true
  5265  		case *DeviceStatusDeviceInfo_FieldSubPath:
  5266  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  5267  		}
  5268  	}
  5269  	for _, path := range fieldMask.GetPaths() {
  5270  		if !removedSelectors[int(path.Selector())] {
  5271  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  5272  				if tp, ok := path.(*DeviceStatusDeviceInfo_FieldTerminalPath); ok {
  5273  					switch tp.selector {
  5274  					case DeviceStatusDeviceInfo_FieldPathSelectorHardwareInformation:
  5275  						mySubMasks[DeviceStatusDeviceInfo_FieldPathSelectorHardwareInformation] = FullDevice_Status_DeviceInfo_HardwareInformation_FieldMask()
  5276  					case DeviceStatusDeviceInfo_FieldPathSelectorControlPlaneInterfaceInfo:
  5277  						mySubMasks[DeviceStatusDeviceInfo_FieldPathSelectorControlPlaneInterfaceInfo] = FullDevice_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask()
  5278  					}
  5279  				} else if tp, ok := path.(*DeviceStatusDeviceInfo_FieldSubPath); ok {
  5280  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  5281  				}
  5282  			} else {
  5283  				result.Paths = append(result.Paths, path)
  5284  			}
  5285  		}
  5286  	}
  5287  	for selector, mySubMask := range mySubMasks {
  5288  		if mySubMask.PathsCount() > 0 {
  5289  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  5290  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfo_FieldSubPath{selector: selector, subPath: allowedPath})
  5291  			}
  5292  		}
  5293  	}
  5294  
  5295  	if len(result.Paths) == 0 {
  5296  		return nil
  5297  	}
  5298  	return result
  5299  }
  5300  
  5301  func (fieldMask *Device_Status_DeviceInfo_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  5302  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_FieldMask))
  5303  }
  5304  
  5305  // FilterInputFields generates copy of field paths with output_only field paths removed
  5306  func (fieldMask *Device_Status_DeviceInfo_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_FieldMask {
  5307  	result := &Device_Status_DeviceInfo_FieldMask{}
  5308  	result.Paths = append(result.Paths, fieldMask.Paths...)
  5309  	return result
  5310  }
  5311  
  5312  // ToFieldMask is used for proto conversions
  5313  func (fieldMask *Device_Status_DeviceInfo_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  5314  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  5315  	for _, path := range fieldMask.Paths {
  5316  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  5317  	}
  5318  	return protoFieldMask
  5319  }
  5320  
  5321  func (fieldMask *Device_Status_DeviceInfo_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  5322  	if fieldMask == nil {
  5323  		return status.Error(codes.Internal, "target field mask is nil")
  5324  	}
  5325  	fieldMask.Paths = make([]DeviceStatusDeviceInfo_FieldPath, 0, len(protoFieldMask.Paths))
  5326  	for _, strPath := range protoFieldMask.Paths {
  5327  		path, err := ParseDeviceStatusDeviceInfo_FieldPath(strPath)
  5328  		if err != nil {
  5329  			return err
  5330  		}
  5331  		fieldMask.Paths = append(fieldMask.Paths, path)
  5332  	}
  5333  	return nil
  5334  }
  5335  
  5336  // implement methods required by customType
  5337  func (fieldMask Device_Status_DeviceInfo_FieldMask) Marshal() ([]byte, error) {
  5338  	protoFieldMask := fieldMask.ToProtoFieldMask()
  5339  	return proto.Marshal(protoFieldMask)
  5340  }
  5341  
  5342  func (fieldMask *Device_Status_DeviceInfo_FieldMask) Unmarshal(data []byte) error {
  5343  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  5344  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  5345  		return err
  5346  	}
  5347  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  5348  		return err
  5349  	}
  5350  	return nil
  5351  }
  5352  
  5353  func (fieldMask *Device_Status_DeviceInfo_FieldMask) Size() int {
  5354  	return proto.Size(fieldMask.ToProtoFieldMask())
  5355  }
  5356  
  5357  func (fieldMask Device_Status_DeviceInfo_FieldMask) MarshalJSON() ([]byte, error) {
  5358  	return json.Marshal(fieldMask.ToProtoFieldMask())
  5359  }
  5360  
  5361  func (fieldMask *Device_Status_DeviceInfo_FieldMask) UnmarshalJSON(data []byte) error {
  5362  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  5363  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  5364  		return err
  5365  	}
  5366  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  5367  		return err
  5368  	}
  5369  	return nil
  5370  }
  5371  
  5372  func (fieldMask *Device_Status_DeviceInfo_FieldMask) AppendPath(path DeviceStatusDeviceInfo_FieldPath) {
  5373  	fieldMask.Paths = append(fieldMask.Paths, path)
  5374  }
  5375  
  5376  func (fieldMask *Device_Status_DeviceInfo_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  5377  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfo_FieldPath))
  5378  }
  5379  
  5380  func (fieldMask *Device_Status_DeviceInfo_FieldMask) GetPaths() []DeviceStatusDeviceInfo_FieldPath {
  5381  	if fieldMask == nil {
  5382  		return nil
  5383  	}
  5384  	return fieldMask.Paths
  5385  }
  5386  
  5387  func (fieldMask *Device_Status_DeviceInfo_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  5388  	if fieldMask == nil {
  5389  		return nil
  5390  	}
  5391  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  5392  	for _, path := range fieldMask.Paths {
  5393  		rawPaths = append(rawPaths, path)
  5394  	}
  5395  	return rawPaths
  5396  }
  5397  
  5398  func (fieldMask *Device_Status_DeviceInfo_FieldMask) SetFromCliFlag(raw string) error {
  5399  	path, err := ParseDeviceStatusDeviceInfo_FieldPath(raw)
  5400  	if err != nil {
  5401  		return err
  5402  	}
  5403  	fieldMask.Paths = append(fieldMask.Paths, path)
  5404  	return nil
  5405  }
  5406  
  5407  func (fieldMask *Device_Status_DeviceInfo_FieldMask) Set(target, source *Device_Status_DeviceInfo) {
  5408  	for _, path := range fieldMask.Paths {
  5409  		val, _ := path.GetSingle(source)
  5410  		// if val is nil, then field does not exist in source, skip
  5411  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  5412  		if val != nil {
  5413  			path.WithIValue(val).SetTo(&target)
  5414  		}
  5415  	}
  5416  }
  5417  
  5418  func (fieldMask *Device_Status_DeviceInfo_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  5419  	fieldMask.Set(target.(*Device_Status_DeviceInfo), source.(*Device_Status_DeviceInfo))
  5420  }
  5421  
  5422  func (fieldMask *Device_Status_DeviceInfo_FieldMask) Project(source *Device_Status_DeviceInfo) *Device_Status_DeviceInfo {
  5423  	if source == nil {
  5424  		return nil
  5425  	}
  5426  	if fieldMask == nil {
  5427  		return source
  5428  	}
  5429  	result := &Device_Status_DeviceInfo{}
  5430  	hardwareInformationMask := &Device_Status_DeviceInfo_HardwareInformation_FieldMask{}
  5431  	wholeHardwareInformationAccepted := false
  5432  	controlPlaneInterfaceInfoMask := &Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask{}
  5433  	wholeControlPlaneInterfaceInfoAccepted := false
  5434  	var networkInterfacesMapKeys []string
  5435  	wholeNetworkInterfacesAccepted := false
  5436  
  5437  	for _, p := range fieldMask.Paths {
  5438  		switch tp := p.(type) {
  5439  		case *DeviceStatusDeviceInfo_FieldTerminalPath:
  5440  			switch tp.selector {
  5441  			case DeviceStatusDeviceInfo_FieldPathSelectorArchitecture:
  5442  				result.Architecture = source.Architecture
  5443  			case DeviceStatusDeviceInfo_FieldPathSelectorHardware:
  5444  				result.Hardware = source.Hardware
  5445  			case DeviceStatusDeviceInfo_FieldPathSelectorOperatingSystem:
  5446  				result.OperatingSystem = source.OperatingSystem
  5447  			case DeviceStatusDeviceInfo_FieldPathSelectorKernelVersion:
  5448  				result.KernelVersion = source.KernelVersion
  5449  			case DeviceStatusDeviceInfo_FieldPathSelectorOsImage:
  5450  				result.OsImage = source.OsImage
  5451  			case DeviceStatusDeviceInfo_FieldPathSelectorContainerRuntimeVersion:
  5452  				result.ContainerRuntimeVersion = source.ContainerRuntimeVersion
  5453  			case DeviceStatusDeviceInfo_FieldPathSelectorOsVersion:
  5454  				result.OsVersion = source.OsVersion
  5455  			case DeviceStatusDeviceInfo_FieldPathSelectorDriver:
  5456  				result.Driver = source.Driver
  5457  			case DeviceStatusDeviceInfo_FieldPathSelectorHardwareInformation:
  5458  				result.HardwareInformation = source.HardwareInformation
  5459  				wholeHardwareInformationAccepted = true
  5460  			case DeviceStatusDeviceInfo_FieldPathSelectorNetworkInterfaces:
  5461  				result.NetworkInterfaces = source.NetworkInterfaces
  5462  				wholeNetworkInterfacesAccepted = true
  5463  			case DeviceStatusDeviceInfo_FieldPathSelectorControlPlaneInterfaceInfo:
  5464  				result.ControlPlaneInterfaceInfo = source.ControlPlaneInterfaceInfo
  5465  				wholeControlPlaneInterfaceInfoAccepted = true
  5466  			}
  5467  		case *DeviceStatusDeviceInfo_FieldSubPath:
  5468  			switch tp.selector {
  5469  			case DeviceStatusDeviceInfo_FieldPathSelectorHardwareInformation:
  5470  				hardwareInformationMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformation_FieldPath))
  5471  			case DeviceStatusDeviceInfo_FieldPathSelectorControlPlaneInterfaceInfo:
  5472  				controlPlaneInterfaceInfoMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPath))
  5473  			}
  5474  		case *DeviceStatusDeviceInfo_FieldPathMap:
  5475  			switch tp.selector {
  5476  			case DeviceStatusDeviceInfo_FieldPathSelectorNetworkInterfaces:
  5477  				networkInterfacesMapKeys = append(networkInterfacesMapKeys, tp.key)
  5478  			}
  5479  		}
  5480  	}
  5481  	if wholeHardwareInformationAccepted == false && len(hardwareInformationMask.Paths) > 0 {
  5482  		result.HardwareInformation = hardwareInformationMask.Project(source.GetHardwareInformation())
  5483  	}
  5484  	if wholeNetworkInterfacesAccepted == false && len(networkInterfacesMapKeys) > 0 && source.GetNetworkInterfaces() != nil {
  5485  		copiedMap := map[string]*Device_Status_DeviceInfo_NetworkInterface{}
  5486  		sourceMap := source.GetNetworkInterfaces()
  5487  		for _, key := range networkInterfacesMapKeys {
  5488  			copiedMap[key] = sourceMap[key]
  5489  		}
  5490  		result.NetworkInterfaces = copiedMap
  5491  	}
  5492  	if wholeControlPlaneInterfaceInfoAccepted == false && len(controlPlaneInterfaceInfoMask.Paths) > 0 {
  5493  		result.ControlPlaneInterfaceInfo = controlPlaneInterfaceInfoMask.Project(source.GetControlPlaneInterfaceInfo())
  5494  	}
  5495  	return result
  5496  }
  5497  
  5498  func (fieldMask *Device_Status_DeviceInfo_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  5499  	return fieldMask.Project(source.(*Device_Status_DeviceInfo))
  5500  }
  5501  
  5502  func (fieldMask *Device_Status_DeviceInfo_FieldMask) PathsCount() int {
  5503  	if fieldMask == nil {
  5504  		return 0
  5505  	}
  5506  	return len(fieldMask.Paths)
  5507  }
  5508  
  5509  type Device_Status_NormalizedAddress_FieldMask struct {
  5510  	Paths []DeviceStatusNormalizedAddress_FieldPath
  5511  }
  5512  
  5513  func FullDevice_Status_NormalizedAddress_FieldMask() *Device_Status_NormalizedAddress_FieldMask {
  5514  	res := &Device_Status_NormalizedAddress_FieldMask{}
  5515  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorPostalCode})
  5516  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorCountryCode})
  5517  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorContinent})
  5518  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorContinentId})
  5519  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorCountry})
  5520  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorCountryId})
  5521  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea1})
  5522  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea1Id})
  5523  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea2})
  5524  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea2Id})
  5525  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea3})
  5526  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea3Id})
  5527  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea4})
  5528  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea4Id})
  5529  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAddress})
  5530  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorCoordinates})
  5531  	res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAccuracy})
  5532  	return res
  5533  }
  5534  
  5535  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) String() string {
  5536  	if fieldMask == nil {
  5537  		return "<nil>"
  5538  	}
  5539  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  5540  	for _, path := range fieldMask.Paths {
  5541  		pathsStr = append(pathsStr, path.String())
  5542  	}
  5543  	return strings.Join(pathsStr, ", ")
  5544  }
  5545  
  5546  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) IsFull() bool {
  5547  	if fieldMask == nil {
  5548  		return false
  5549  	}
  5550  	presentSelectors := make([]bool, 17)
  5551  	for _, path := range fieldMask.Paths {
  5552  		if asFinal, ok := path.(*DeviceStatusNormalizedAddress_FieldTerminalPath); ok {
  5553  			presentSelectors[int(asFinal.selector)] = true
  5554  		}
  5555  	}
  5556  	for _, flag := range presentSelectors {
  5557  		if !flag {
  5558  			return false
  5559  		}
  5560  	}
  5561  	return true
  5562  }
  5563  
  5564  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) ProtoReflect() preflect.Message {
  5565  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  5566  		return ParseDeviceStatusNormalizedAddress_FieldPath(raw)
  5567  	})
  5568  }
  5569  
  5570  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) ProtoMessage() {}
  5571  
  5572  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) Reset() {
  5573  	if fieldMask != nil {
  5574  		fieldMask.Paths = nil
  5575  	}
  5576  }
  5577  
  5578  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) Subtract(other *Device_Status_NormalizedAddress_FieldMask) *Device_Status_NormalizedAddress_FieldMask {
  5579  	result := &Device_Status_NormalizedAddress_FieldMask{}
  5580  	removedSelectors := make([]bool, 17)
  5581  
  5582  	for _, path := range other.GetPaths() {
  5583  		switch tp := path.(type) {
  5584  		case *DeviceStatusNormalizedAddress_FieldTerminalPath:
  5585  			removedSelectors[int(tp.selector)] = true
  5586  		}
  5587  	}
  5588  	for _, path := range fieldMask.GetPaths() {
  5589  		if !removedSelectors[int(path.Selector())] {
  5590  			result.Paths = append(result.Paths, path)
  5591  		}
  5592  	}
  5593  
  5594  	if len(result.Paths) == 0 {
  5595  		return nil
  5596  	}
  5597  	return result
  5598  }
  5599  
  5600  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  5601  	return fieldMask.Subtract(other.(*Device_Status_NormalizedAddress_FieldMask))
  5602  }
  5603  
  5604  // FilterInputFields generates copy of field paths with output_only field paths removed
  5605  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) FilterInputFields() *Device_Status_NormalizedAddress_FieldMask {
  5606  	result := &Device_Status_NormalizedAddress_FieldMask{}
  5607  	result.Paths = append(result.Paths, fieldMask.Paths...)
  5608  	return result
  5609  }
  5610  
  5611  // ToFieldMask is used for proto conversions
  5612  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  5613  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  5614  	for _, path := range fieldMask.Paths {
  5615  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  5616  	}
  5617  	return protoFieldMask
  5618  }
  5619  
  5620  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  5621  	if fieldMask == nil {
  5622  		return status.Error(codes.Internal, "target field mask is nil")
  5623  	}
  5624  	fieldMask.Paths = make([]DeviceStatusNormalizedAddress_FieldPath, 0, len(protoFieldMask.Paths))
  5625  	for _, strPath := range protoFieldMask.Paths {
  5626  		path, err := ParseDeviceStatusNormalizedAddress_FieldPath(strPath)
  5627  		if err != nil {
  5628  			return err
  5629  		}
  5630  		fieldMask.Paths = append(fieldMask.Paths, path)
  5631  	}
  5632  	return nil
  5633  }
  5634  
  5635  // implement methods required by customType
  5636  func (fieldMask Device_Status_NormalizedAddress_FieldMask) Marshal() ([]byte, error) {
  5637  	protoFieldMask := fieldMask.ToProtoFieldMask()
  5638  	return proto.Marshal(protoFieldMask)
  5639  }
  5640  
  5641  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) Unmarshal(data []byte) error {
  5642  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  5643  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  5644  		return err
  5645  	}
  5646  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  5647  		return err
  5648  	}
  5649  	return nil
  5650  }
  5651  
  5652  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) Size() int {
  5653  	return proto.Size(fieldMask.ToProtoFieldMask())
  5654  }
  5655  
  5656  func (fieldMask Device_Status_NormalizedAddress_FieldMask) MarshalJSON() ([]byte, error) {
  5657  	return json.Marshal(fieldMask.ToProtoFieldMask())
  5658  }
  5659  
  5660  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) UnmarshalJSON(data []byte) error {
  5661  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  5662  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  5663  		return err
  5664  	}
  5665  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  5666  		return err
  5667  	}
  5668  	return nil
  5669  }
  5670  
  5671  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) AppendPath(path DeviceStatusNormalizedAddress_FieldPath) {
  5672  	fieldMask.Paths = append(fieldMask.Paths, path)
  5673  }
  5674  
  5675  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  5676  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusNormalizedAddress_FieldPath))
  5677  }
  5678  
  5679  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) GetPaths() []DeviceStatusNormalizedAddress_FieldPath {
  5680  	if fieldMask == nil {
  5681  		return nil
  5682  	}
  5683  	return fieldMask.Paths
  5684  }
  5685  
  5686  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  5687  	if fieldMask == nil {
  5688  		return nil
  5689  	}
  5690  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  5691  	for _, path := range fieldMask.Paths {
  5692  		rawPaths = append(rawPaths, path)
  5693  	}
  5694  	return rawPaths
  5695  }
  5696  
  5697  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) SetFromCliFlag(raw string) error {
  5698  	path, err := ParseDeviceStatusNormalizedAddress_FieldPath(raw)
  5699  	if err != nil {
  5700  		return err
  5701  	}
  5702  	fieldMask.Paths = append(fieldMask.Paths, path)
  5703  	return nil
  5704  }
  5705  
  5706  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) Set(target, source *Device_Status_NormalizedAddress) {
  5707  	for _, path := range fieldMask.Paths {
  5708  		val, _ := path.GetSingle(source)
  5709  		// if val is nil, then field does not exist in source, skip
  5710  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  5711  		if val != nil {
  5712  			path.WithIValue(val).SetTo(&target)
  5713  		}
  5714  	}
  5715  }
  5716  
  5717  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  5718  	fieldMask.Set(target.(*Device_Status_NormalizedAddress), source.(*Device_Status_NormalizedAddress))
  5719  }
  5720  
  5721  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) Project(source *Device_Status_NormalizedAddress) *Device_Status_NormalizedAddress {
  5722  	if source == nil {
  5723  		return nil
  5724  	}
  5725  	if fieldMask == nil {
  5726  		return source
  5727  	}
  5728  	result := &Device_Status_NormalizedAddress{}
  5729  
  5730  	for _, p := range fieldMask.Paths {
  5731  		switch tp := p.(type) {
  5732  		case *DeviceStatusNormalizedAddress_FieldTerminalPath:
  5733  			switch tp.selector {
  5734  			case DeviceStatusNormalizedAddress_FieldPathSelectorPostalCode:
  5735  				result.PostalCode = source.PostalCode
  5736  			case DeviceStatusNormalizedAddress_FieldPathSelectorCountryCode:
  5737  				result.CountryCode = source.CountryCode
  5738  			case DeviceStatusNormalizedAddress_FieldPathSelectorContinent:
  5739  				result.Continent = source.Continent
  5740  			case DeviceStatusNormalizedAddress_FieldPathSelectorContinentId:
  5741  				result.ContinentId = source.ContinentId
  5742  			case DeviceStatusNormalizedAddress_FieldPathSelectorCountry:
  5743  				result.Country = source.Country
  5744  			case DeviceStatusNormalizedAddress_FieldPathSelectorCountryId:
  5745  				result.CountryId = source.CountryId
  5746  			case DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea1:
  5747  				result.AdminArea1 = source.AdminArea1
  5748  			case DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea1Id:
  5749  				result.AdminArea1Id = source.AdminArea1Id
  5750  			case DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea2:
  5751  				result.AdminArea2 = source.AdminArea2
  5752  			case DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea2Id:
  5753  				result.AdminArea2Id = source.AdminArea2Id
  5754  			case DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea3:
  5755  				result.AdminArea3 = source.AdminArea3
  5756  			case DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea3Id:
  5757  				result.AdminArea3Id = source.AdminArea3Id
  5758  			case DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea4:
  5759  				result.AdminArea4 = source.AdminArea4
  5760  			case DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea4Id:
  5761  				result.AdminArea4Id = source.AdminArea4Id
  5762  			case DeviceStatusNormalizedAddress_FieldPathSelectorAddress:
  5763  				result.Address = source.Address
  5764  			case DeviceStatusNormalizedAddress_FieldPathSelectorCoordinates:
  5765  				result.Coordinates = source.Coordinates
  5766  			case DeviceStatusNormalizedAddress_FieldPathSelectorAccuracy:
  5767  				result.Accuracy = source.Accuracy
  5768  			}
  5769  		}
  5770  	}
  5771  	return result
  5772  }
  5773  
  5774  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  5775  	return fieldMask.Project(source.(*Device_Status_NormalizedAddress))
  5776  }
  5777  
  5778  func (fieldMask *Device_Status_NormalizedAddress_FieldMask) PathsCount() int {
  5779  	if fieldMask == nil {
  5780  		return 0
  5781  	}
  5782  	return len(fieldMask.Paths)
  5783  }
  5784  
  5785  type Device_Status_DeviceInfo_HardwareInformation_FieldMask struct {
  5786  	Paths []DeviceStatusDeviceInfoHardwareInformation_FieldPath
  5787  }
  5788  
  5789  func FullDevice_Status_DeviceInfo_HardwareInformation_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_FieldMask {
  5790  	res := &Device_Status_DeviceInfo_HardwareInformation_FieldMask{}
  5791  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorOs})
  5792  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBios})
  5793  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorSystem})
  5794  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorCpu})
  5795  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBlock})
  5796  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNetwork})
  5797  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorGpu})
  5798  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorMemoryInfo})
  5799  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorHailoInfo})
  5800  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNvidiaInfo})
  5801  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorModemStatus})
  5802  	return res
  5803  }
  5804  
  5805  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) String() string {
  5806  	if fieldMask == nil {
  5807  		return "<nil>"
  5808  	}
  5809  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  5810  	for _, path := range fieldMask.Paths {
  5811  		pathsStr = append(pathsStr, path.String())
  5812  	}
  5813  	return strings.Join(pathsStr, ", ")
  5814  }
  5815  
  5816  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) IsFull() bool {
  5817  	if fieldMask == nil {
  5818  		return false
  5819  	}
  5820  	presentSelectors := make([]bool, 11)
  5821  	for _, path := range fieldMask.Paths {
  5822  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath); ok {
  5823  			presentSelectors[int(asFinal.selector)] = true
  5824  		}
  5825  	}
  5826  	for _, flag := range presentSelectors {
  5827  		if !flag {
  5828  			return false
  5829  		}
  5830  	}
  5831  	return true
  5832  }
  5833  
  5834  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) ProtoReflect() preflect.Message {
  5835  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  5836  		return ParseDeviceStatusDeviceInfoHardwareInformation_FieldPath(raw)
  5837  	})
  5838  }
  5839  
  5840  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) ProtoMessage() {}
  5841  
  5842  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) Reset() {
  5843  	if fieldMask != nil {
  5844  		fieldMask.Paths = nil
  5845  	}
  5846  }
  5847  
  5848  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_FieldMask {
  5849  	result := &Device_Status_DeviceInfo_HardwareInformation_FieldMask{}
  5850  	removedSelectors := make([]bool, 11)
  5851  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformation_FieldPathSelector]gotenobject.FieldMask{
  5852  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorOs:          &Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask{},
  5853  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBios:        &Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask{},
  5854  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorSystem:      &Device_Status_DeviceInfo_HardwareInformation_System_FieldMask{},
  5855  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorCpu:         &Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask{},
  5856  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBlock:       &Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask{},
  5857  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNetwork:     &Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask{},
  5858  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorGpu:         &Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask{},
  5859  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorMemoryInfo:  &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask{},
  5860  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorHailoInfo:   &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask{},
  5861  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNvidiaInfo:  &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask{},
  5862  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorModemStatus: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask{},
  5863  	}
  5864  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformation_FieldPathSelector]gotenobject.FieldMask{
  5865  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorOs:          &Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask{},
  5866  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBios:        &Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask{},
  5867  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorSystem:      &Device_Status_DeviceInfo_HardwareInformation_System_FieldMask{},
  5868  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorCpu:         &Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask{},
  5869  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBlock:       &Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask{},
  5870  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNetwork:     &Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask{},
  5871  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorGpu:         &Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask{},
  5872  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorMemoryInfo:  &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask{},
  5873  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorHailoInfo:   &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask{},
  5874  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNvidiaInfo:  &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask{},
  5875  		DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorModemStatus: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask{},
  5876  	}
  5877  
  5878  	for _, path := range other.GetPaths() {
  5879  		switch tp := path.(type) {
  5880  		case *DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath:
  5881  			removedSelectors[int(tp.selector)] = true
  5882  		case *DeviceStatusDeviceInfoHardwareInformation_FieldSubPath:
  5883  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  5884  		}
  5885  	}
  5886  	for _, path := range fieldMask.GetPaths() {
  5887  		if !removedSelectors[int(path.Selector())] {
  5888  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  5889  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath); ok {
  5890  					switch tp.selector {
  5891  					case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorOs:
  5892  						mySubMasks[DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorOs] = FullDevice_Status_DeviceInfo_HardwareInformation_OS_FieldMask()
  5893  					case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBios:
  5894  						mySubMasks[DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBios] = FullDevice_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask()
  5895  					case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorSystem:
  5896  						mySubMasks[DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorSystem] = FullDevice_Status_DeviceInfo_HardwareInformation_System_FieldMask()
  5897  					case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorCpu:
  5898  						mySubMasks[DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorCpu] = FullDevice_Status_DeviceInfo_HardwareInformation_CPU_FieldMask()
  5899  					case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBlock:
  5900  						mySubMasks[DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBlock] = FullDevice_Status_DeviceInfo_HardwareInformation_Block_FieldMask()
  5901  					case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNetwork:
  5902  						mySubMasks[DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNetwork] = FullDevice_Status_DeviceInfo_HardwareInformation_Network_FieldMask()
  5903  					case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorGpu:
  5904  						mySubMasks[DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorGpu] = FullDevice_Status_DeviceInfo_HardwareInformation_GPU_FieldMask()
  5905  					case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorMemoryInfo:
  5906  						mySubMasks[DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorMemoryInfo] = FullDevice_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask()
  5907  					case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorHailoInfo:
  5908  						mySubMasks[DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorHailoInfo] = FullDevice_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask()
  5909  					case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNvidiaInfo:
  5910  						mySubMasks[DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNvidiaInfo] = FullDevice_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask()
  5911  					case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorModemStatus:
  5912  						mySubMasks[DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorModemStatus] = FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask()
  5913  					}
  5914  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformation_FieldSubPath); ok {
  5915  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  5916  				}
  5917  			} else {
  5918  				result.Paths = append(result.Paths, path)
  5919  			}
  5920  		}
  5921  	}
  5922  	for selector, mySubMask := range mySubMasks {
  5923  		if mySubMask.PathsCount() > 0 {
  5924  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  5925  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldSubPath{selector: selector, subPath: allowedPath})
  5926  			}
  5927  		}
  5928  	}
  5929  
  5930  	if len(result.Paths) == 0 {
  5931  		return nil
  5932  	}
  5933  	return result
  5934  }
  5935  
  5936  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  5937  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_FieldMask))
  5938  }
  5939  
  5940  // FilterInputFields generates copy of field paths with output_only field paths removed
  5941  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_FieldMask {
  5942  	result := &Device_Status_DeviceInfo_HardwareInformation_FieldMask{}
  5943  	result.Paths = append(result.Paths, fieldMask.Paths...)
  5944  	return result
  5945  }
  5946  
  5947  // ToFieldMask is used for proto conversions
  5948  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  5949  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  5950  	for _, path := range fieldMask.Paths {
  5951  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  5952  	}
  5953  	return protoFieldMask
  5954  }
  5955  
  5956  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  5957  	if fieldMask == nil {
  5958  		return status.Error(codes.Internal, "target field mask is nil")
  5959  	}
  5960  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformation_FieldPath, 0, len(protoFieldMask.Paths))
  5961  	for _, strPath := range protoFieldMask.Paths {
  5962  		path, err := ParseDeviceStatusDeviceInfoHardwareInformation_FieldPath(strPath)
  5963  		if err != nil {
  5964  			return err
  5965  		}
  5966  		fieldMask.Paths = append(fieldMask.Paths, path)
  5967  	}
  5968  	return nil
  5969  }
  5970  
  5971  // implement methods required by customType
  5972  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_FieldMask) Marshal() ([]byte, error) {
  5973  	protoFieldMask := fieldMask.ToProtoFieldMask()
  5974  	return proto.Marshal(protoFieldMask)
  5975  }
  5976  
  5977  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) Unmarshal(data []byte) error {
  5978  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  5979  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  5980  		return err
  5981  	}
  5982  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  5983  		return err
  5984  	}
  5985  	return nil
  5986  }
  5987  
  5988  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) Size() int {
  5989  	return proto.Size(fieldMask.ToProtoFieldMask())
  5990  }
  5991  
  5992  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_FieldMask) MarshalJSON() ([]byte, error) {
  5993  	return json.Marshal(fieldMask.ToProtoFieldMask())
  5994  }
  5995  
  5996  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) UnmarshalJSON(data []byte) error {
  5997  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  5998  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  5999  		return err
  6000  	}
  6001  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  6002  		return err
  6003  	}
  6004  	return nil
  6005  }
  6006  
  6007  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformation_FieldPath) {
  6008  	fieldMask.Paths = append(fieldMask.Paths, path)
  6009  }
  6010  
  6011  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  6012  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformation_FieldPath))
  6013  }
  6014  
  6015  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformation_FieldPath {
  6016  	if fieldMask == nil {
  6017  		return nil
  6018  	}
  6019  	return fieldMask.Paths
  6020  }
  6021  
  6022  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  6023  	if fieldMask == nil {
  6024  		return nil
  6025  	}
  6026  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  6027  	for _, path := range fieldMask.Paths {
  6028  		rawPaths = append(rawPaths, path)
  6029  	}
  6030  	return rawPaths
  6031  }
  6032  
  6033  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) SetFromCliFlag(raw string) error {
  6034  	path, err := ParseDeviceStatusDeviceInfoHardwareInformation_FieldPath(raw)
  6035  	if err != nil {
  6036  		return err
  6037  	}
  6038  	fieldMask.Paths = append(fieldMask.Paths, path)
  6039  	return nil
  6040  }
  6041  
  6042  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation) {
  6043  	for _, path := range fieldMask.Paths {
  6044  		val, _ := path.GetSingle(source)
  6045  		// if val is nil, then field does not exist in source, skip
  6046  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  6047  		if val != nil {
  6048  			path.WithIValue(val).SetTo(&target)
  6049  		}
  6050  	}
  6051  }
  6052  
  6053  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  6054  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation), source.(*Device_Status_DeviceInfo_HardwareInformation))
  6055  }
  6056  
  6057  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation) *Device_Status_DeviceInfo_HardwareInformation {
  6058  	if source == nil {
  6059  		return nil
  6060  	}
  6061  	if fieldMask == nil {
  6062  		return source
  6063  	}
  6064  	result := &Device_Status_DeviceInfo_HardwareInformation{}
  6065  	osMask := &Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask{}
  6066  	wholeOsAccepted := false
  6067  	biosMask := &Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask{}
  6068  	wholeBiosAccepted := false
  6069  	systemMask := &Device_Status_DeviceInfo_HardwareInformation_System_FieldMask{}
  6070  	wholeSystemAccepted := false
  6071  	cpuMask := &Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask{}
  6072  	wholeCpuAccepted := false
  6073  	blockMask := &Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask{}
  6074  	wholeBlockAccepted := false
  6075  	networkMask := &Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask{}
  6076  	wholeNetworkAccepted := false
  6077  	gpuMask := &Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask{}
  6078  	wholeGpuAccepted := false
  6079  	memoryInfoMask := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask{}
  6080  	wholeMemoryInfoAccepted := false
  6081  	hailoInfoMask := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask{}
  6082  	wholeHailoInfoAccepted := false
  6083  	nvidiaInfoMask := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask{}
  6084  	wholeNvidiaInfoAccepted := false
  6085  	modemStatusMask := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask{}
  6086  	wholeModemStatusAccepted := false
  6087  
  6088  	for _, p := range fieldMask.Paths {
  6089  		switch tp := p.(type) {
  6090  		case *DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath:
  6091  			switch tp.selector {
  6092  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorOs:
  6093  				result.Os = source.Os
  6094  				wholeOsAccepted = true
  6095  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBios:
  6096  				result.Bios = source.Bios
  6097  				wholeBiosAccepted = true
  6098  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorSystem:
  6099  				result.System = source.System
  6100  				wholeSystemAccepted = true
  6101  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorCpu:
  6102  				result.Cpu = source.Cpu
  6103  				wholeCpuAccepted = true
  6104  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBlock:
  6105  				result.Block = source.Block
  6106  				wholeBlockAccepted = true
  6107  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNetwork:
  6108  				result.Network = source.Network
  6109  				wholeNetworkAccepted = true
  6110  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorGpu:
  6111  				result.Gpu = source.Gpu
  6112  				wholeGpuAccepted = true
  6113  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorMemoryInfo:
  6114  				result.MemoryInfo = source.MemoryInfo
  6115  				wholeMemoryInfoAccepted = true
  6116  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorHailoInfo:
  6117  				result.HailoInfo = source.HailoInfo
  6118  				wholeHailoInfoAccepted = true
  6119  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNvidiaInfo:
  6120  				result.NvidiaInfo = source.NvidiaInfo
  6121  				wholeNvidiaInfoAccepted = true
  6122  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorModemStatus:
  6123  				result.ModemStatus = source.ModemStatus
  6124  				wholeModemStatusAccepted = true
  6125  			}
  6126  		case *DeviceStatusDeviceInfoHardwareInformation_FieldSubPath:
  6127  			switch tp.selector {
  6128  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorOs:
  6129  				osMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationOS_FieldPath))
  6130  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBios:
  6131  				biosMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPath))
  6132  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorSystem:
  6133  				systemMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationSystem_FieldPath))
  6134  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorCpu:
  6135  				cpuMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationCPU_FieldPath))
  6136  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBlock:
  6137  				blockMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationBlock_FieldPath))
  6138  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNetwork:
  6139  				networkMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPath))
  6140  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorGpu:
  6141  				gpuMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationGPU_FieldPath))
  6142  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorMemoryInfo:
  6143  				memoryInfoMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPath))
  6144  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorHailoInfo:
  6145  				hailoInfoMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPath))
  6146  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNvidiaInfo:
  6147  				nvidiaInfoMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPath))
  6148  			case DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorModemStatus:
  6149  				modemStatusMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPath))
  6150  			}
  6151  		}
  6152  	}
  6153  	if wholeOsAccepted == false && len(osMask.Paths) > 0 {
  6154  		result.Os = osMask.Project(source.GetOs())
  6155  	}
  6156  	if wholeBiosAccepted == false && len(biosMask.Paths) > 0 {
  6157  		result.Bios = biosMask.Project(source.GetBios())
  6158  	}
  6159  	if wholeSystemAccepted == false && len(systemMask.Paths) > 0 {
  6160  		result.System = systemMask.Project(source.GetSystem())
  6161  	}
  6162  	if wholeCpuAccepted == false && len(cpuMask.Paths) > 0 {
  6163  		result.Cpu = cpuMask.Project(source.GetCpu())
  6164  	}
  6165  	if wholeBlockAccepted == false && len(blockMask.Paths) > 0 {
  6166  		result.Block = blockMask.Project(source.GetBlock())
  6167  	}
  6168  	if wholeNetworkAccepted == false && len(networkMask.Paths) > 0 {
  6169  		result.Network = networkMask.Project(source.GetNetwork())
  6170  	}
  6171  	if wholeGpuAccepted == false && len(gpuMask.Paths) > 0 {
  6172  		result.Gpu = gpuMask.Project(source.GetGpu())
  6173  	}
  6174  	if wholeMemoryInfoAccepted == false && len(memoryInfoMask.Paths) > 0 {
  6175  		result.MemoryInfo = memoryInfoMask.Project(source.GetMemoryInfo())
  6176  	}
  6177  	if wholeHailoInfoAccepted == false && len(hailoInfoMask.Paths) > 0 {
  6178  		result.HailoInfo = hailoInfoMask.Project(source.GetHailoInfo())
  6179  	}
  6180  	if wholeNvidiaInfoAccepted == false && len(nvidiaInfoMask.Paths) > 0 {
  6181  		result.NvidiaInfo = nvidiaInfoMask.Project(source.GetNvidiaInfo())
  6182  	}
  6183  	if wholeModemStatusAccepted == false && len(modemStatusMask.Paths) > 0 {
  6184  		for _, sourceItem := range source.GetModemStatus() {
  6185  			result.ModemStatus = append(result.ModemStatus, modemStatusMask.Project(sourceItem))
  6186  		}
  6187  	}
  6188  	return result
  6189  }
  6190  
  6191  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  6192  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation))
  6193  }
  6194  
  6195  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_FieldMask) PathsCount() int {
  6196  	if fieldMask == nil {
  6197  		return 0
  6198  	}
  6199  	return len(fieldMask.Paths)
  6200  }
  6201  
  6202  type Device_Status_DeviceInfo_NetworkInterface_FieldMask struct {
  6203  	Paths []DeviceStatusDeviceInfoNetworkInterface_FieldPath
  6204  }
  6205  
  6206  func FullDevice_Status_DeviceInfo_NetworkInterface_FieldMask() *Device_Status_DeviceInfo_NetworkInterface_FieldMask {
  6207  	res := &Device_Status_DeviceInfo_NetworkInterface_FieldMask{}
  6208  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorInterfaceName})
  6209  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorIpAddressV4})
  6210  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorExternalIpAddressV4})
  6211  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorIpAddressV6})
  6212  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorExternalIpAddressV6})
  6213  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorAsInfo})
  6214  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorCarrier})
  6215  	return res
  6216  }
  6217  
  6218  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) String() string {
  6219  	if fieldMask == nil {
  6220  		return "<nil>"
  6221  	}
  6222  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  6223  	for _, path := range fieldMask.Paths {
  6224  		pathsStr = append(pathsStr, path.String())
  6225  	}
  6226  	return strings.Join(pathsStr, ", ")
  6227  }
  6228  
  6229  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) IsFull() bool {
  6230  	if fieldMask == nil {
  6231  		return false
  6232  	}
  6233  	presentSelectors := make([]bool, 7)
  6234  	for _, path := range fieldMask.Paths {
  6235  		if asFinal, ok := path.(*DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath); ok {
  6236  			presentSelectors[int(asFinal.selector)] = true
  6237  		}
  6238  	}
  6239  	for _, flag := range presentSelectors {
  6240  		if !flag {
  6241  			return false
  6242  		}
  6243  	}
  6244  	return true
  6245  }
  6246  
  6247  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) ProtoReflect() preflect.Message {
  6248  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  6249  		return ParseDeviceStatusDeviceInfoNetworkInterface_FieldPath(raw)
  6250  	})
  6251  }
  6252  
  6253  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) ProtoMessage() {}
  6254  
  6255  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) Reset() {
  6256  	if fieldMask != nil {
  6257  		fieldMask.Paths = nil
  6258  	}
  6259  }
  6260  
  6261  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) Subtract(other *Device_Status_DeviceInfo_NetworkInterface_FieldMask) *Device_Status_DeviceInfo_NetworkInterface_FieldMask {
  6262  	result := &Device_Status_DeviceInfo_NetworkInterface_FieldMask{}
  6263  	removedSelectors := make([]bool, 7)
  6264  	otherSubMasks := map[DeviceStatusDeviceInfoNetworkInterface_FieldPathSelector]gotenobject.FieldMask{
  6265  		DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorAsInfo:  &Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask{},
  6266  		DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorCarrier: &Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask{},
  6267  	}
  6268  	mySubMasks := map[DeviceStatusDeviceInfoNetworkInterface_FieldPathSelector]gotenobject.FieldMask{
  6269  		DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorAsInfo:  &Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask{},
  6270  		DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorCarrier: &Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask{},
  6271  	}
  6272  
  6273  	for _, path := range other.GetPaths() {
  6274  		switch tp := path.(type) {
  6275  		case *DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath:
  6276  			removedSelectors[int(tp.selector)] = true
  6277  		case *DeviceStatusDeviceInfoNetworkInterface_FieldSubPath:
  6278  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  6279  		}
  6280  	}
  6281  	for _, path := range fieldMask.GetPaths() {
  6282  		if !removedSelectors[int(path.Selector())] {
  6283  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  6284  				if tp, ok := path.(*DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath); ok {
  6285  					switch tp.selector {
  6286  					case DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorAsInfo:
  6287  						mySubMasks[DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorAsInfo] = FullDevice_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask()
  6288  					case DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorCarrier:
  6289  						mySubMasks[DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorCarrier] = FullDevice_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask()
  6290  					}
  6291  				} else if tp, ok := path.(*DeviceStatusDeviceInfoNetworkInterface_FieldSubPath); ok {
  6292  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  6293  				}
  6294  			} else {
  6295  				result.Paths = append(result.Paths, path)
  6296  			}
  6297  		}
  6298  	}
  6299  	for selector, mySubMask := range mySubMasks {
  6300  		if mySubMask.PathsCount() > 0 {
  6301  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  6302  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldSubPath{selector: selector, subPath: allowedPath})
  6303  			}
  6304  		}
  6305  	}
  6306  
  6307  	if len(result.Paths) == 0 {
  6308  		return nil
  6309  	}
  6310  	return result
  6311  }
  6312  
  6313  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  6314  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_NetworkInterface_FieldMask))
  6315  }
  6316  
  6317  // FilterInputFields generates copy of field paths with output_only field paths removed
  6318  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_NetworkInterface_FieldMask {
  6319  	result := &Device_Status_DeviceInfo_NetworkInterface_FieldMask{}
  6320  	result.Paths = append(result.Paths, fieldMask.Paths...)
  6321  	return result
  6322  }
  6323  
  6324  // ToFieldMask is used for proto conversions
  6325  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  6326  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  6327  	for _, path := range fieldMask.Paths {
  6328  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  6329  	}
  6330  	return protoFieldMask
  6331  }
  6332  
  6333  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  6334  	if fieldMask == nil {
  6335  		return status.Error(codes.Internal, "target field mask is nil")
  6336  	}
  6337  	fieldMask.Paths = make([]DeviceStatusDeviceInfoNetworkInterface_FieldPath, 0, len(protoFieldMask.Paths))
  6338  	for _, strPath := range protoFieldMask.Paths {
  6339  		path, err := ParseDeviceStatusDeviceInfoNetworkInterface_FieldPath(strPath)
  6340  		if err != nil {
  6341  			return err
  6342  		}
  6343  		fieldMask.Paths = append(fieldMask.Paths, path)
  6344  	}
  6345  	return nil
  6346  }
  6347  
  6348  // implement methods required by customType
  6349  func (fieldMask Device_Status_DeviceInfo_NetworkInterface_FieldMask) Marshal() ([]byte, error) {
  6350  	protoFieldMask := fieldMask.ToProtoFieldMask()
  6351  	return proto.Marshal(protoFieldMask)
  6352  }
  6353  
  6354  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) Unmarshal(data []byte) error {
  6355  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  6356  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  6357  		return err
  6358  	}
  6359  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  6360  		return err
  6361  	}
  6362  	return nil
  6363  }
  6364  
  6365  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) Size() int {
  6366  	return proto.Size(fieldMask.ToProtoFieldMask())
  6367  }
  6368  
  6369  func (fieldMask Device_Status_DeviceInfo_NetworkInterface_FieldMask) MarshalJSON() ([]byte, error) {
  6370  	return json.Marshal(fieldMask.ToProtoFieldMask())
  6371  }
  6372  
  6373  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) UnmarshalJSON(data []byte) error {
  6374  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  6375  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  6376  		return err
  6377  	}
  6378  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  6379  		return err
  6380  	}
  6381  	return nil
  6382  }
  6383  
  6384  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) AppendPath(path DeviceStatusDeviceInfoNetworkInterface_FieldPath) {
  6385  	fieldMask.Paths = append(fieldMask.Paths, path)
  6386  }
  6387  
  6388  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  6389  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoNetworkInterface_FieldPath))
  6390  }
  6391  
  6392  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) GetPaths() []DeviceStatusDeviceInfoNetworkInterface_FieldPath {
  6393  	if fieldMask == nil {
  6394  		return nil
  6395  	}
  6396  	return fieldMask.Paths
  6397  }
  6398  
  6399  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  6400  	if fieldMask == nil {
  6401  		return nil
  6402  	}
  6403  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  6404  	for _, path := range fieldMask.Paths {
  6405  		rawPaths = append(rawPaths, path)
  6406  	}
  6407  	return rawPaths
  6408  }
  6409  
  6410  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) SetFromCliFlag(raw string) error {
  6411  	path, err := ParseDeviceStatusDeviceInfoNetworkInterface_FieldPath(raw)
  6412  	if err != nil {
  6413  		return err
  6414  	}
  6415  	fieldMask.Paths = append(fieldMask.Paths, path)
  6416  	return nil
  6417  }
  6418  
  6419  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) Set(target, source *Device_Status_DeviceInfo_NetworkInterface) {
  6420  	for _, path := range fieldMask.Paths {
  6421  		val, _ := path.GetSingle(source)
  6422  		// if val is nil, then field does not exist in source, skip
  6423  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  6424  		if val != nil {
  6425  			path.WithIValue(val).SetTo(&target)
  6426  		}
  6427  	}
  6428  }
  6429  
  6430  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  6431  	fieldMask.Set(target.(*Device_Status_DeviceInfo_NetworkInterface), source.(*Device_Status_DeviceInfo_NetworkInterface))
  6432  }
  6433  
  6434  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) Project(source *Device_Status_DeviceInfo_NetworkInterface) *Device_Status_DeviceInfo_NetworkInterface {
  6435  	if source == nil {
  6436  		return nil
  6437  	}
  6438  	if fieldMask == nil {
  6439  		return source
  6440  	}
  6441  	result := &Device_Status_DeviceInfo_NetworkInterface{}
  6442  	asInfoMask := &Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask{}
  6443  	wholeAsInfoAccepted := false
  6444  	carrierMask := &Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask{}
  6445  	wholeCarrierAccepted := false
  6446  
  6447  	for _, p := range fieldMask.Paths {
  6448  		switch tp := p.(type) {
  6449  		case *DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath:
  6450  			switch tp.selector {
  6451  			case DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorInterfaceName:
  6452  				result.InterfaceName = source.InterfaceName
  6453  			case DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorIpAddressV4:
  6454  				result.IpAddressV4 = source.IpAddressV4
  6455  			case DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorExternalIpAddressV4:
  6456  				result.ExternalIpAddressV4 = source.ExternalIpAddressV4
  6457  			case DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorIpAddressV6:
  6458  				result.IpAddressV6 = source.IpAddressV6
  6459  			case DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorExternalIpAddressV6:
  6460  				result.ExternalIpAddressV6 = source.ExternalIpAddressV6
  6461  			case DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorAsInfo:
  6462  				result.AsInfo = source.AsInfo
  6463  				wholeAsInfoAccepted = true
  6464  			case DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorCarrier:
  6465  				result.Carrier = source.Carrier
  6466  				wholeCarrierAccepted = true
  6467  			}
  6468  		case *DeviceStatusDeviceInfoNetworkInterface_FieldSubPath:
  6469  			switch tp.selector {
  6470  			case DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorAsInfo:
  6471  				asInfoMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPath))
  6472  			case DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorCarrier:
  6473  				carrierMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPath))
  6474  			}
  6475  		}
  6476  	}
  6477  	if wholeAsInfoAccepted == false && len(asInfoMask.Paths) > 0 {
  6478  		result.AsInfo = asInfoMask.Project(source.GetAsInfo())
  6479  	}
  6480  	if wholeCarrierAccepted == false && len(carrierMask.Paths) > 0 {
  6481  		result.Carrier = carrierMask.Project(source.GetCarrier())
  6482  	}
  6483  	return result
  6484  }
  6485  
  6486  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  6487  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_NetworkInterface))
  6488  }
  6489  
  6490  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_FieldMask) PathsCount() int {
  6491  	if fieldMask == nil {
  6492  		return 0
  6493  	}
  6494  	return len(fieldMask.Paths)
  6495  }
  6496  
  6497  type Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask struct {
  6498  	Paths []DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPath
  6499  }
  6500  
  6501  func FullDevice_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask() *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask {
  6502  	res := &Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask{}
  6503  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPathSelectorActiveControlPlaneInterface})
  6504  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPathSelectorUsesProxy})
  6505  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPathSelectorIsFallback})
  6506  	return res
  6507  }
  6508  
  6509  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) String() string {
  6510  	if fieldMask == nil {
  6511  		return "<nil>"
  6512  	}
  6513  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  6514  	for _, path := range fieldMask.Paths {
  6515  		pathsStr = append(pathsStr, path.String())
  6516  	}
  6517  	return strings.Join(pathsStr, ", ")
  6518  }
  6519  
  6520  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) IsFull() bool {
  6521  	if fieldMask == nil {
  6522  		return false
  6523  	}
  6524  	presentSelectors := make([]bool, 3)
  6525  	for _, path := range fieldMask.Paths {
  6526  		if asFinal, ok := path.(*DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldTerminalPath); ok {
  6527  			presentSelectors[int(asFinal.selector)] = true
  6528  		}
  6529  	}
  6530  	for _, flag := range presentSelectors {
  6531  		if !flag {
  6532  			return false
  6533  		}
  6534  	}
  6535  	return true
  6536  }
  6537  
  6538  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) ProtoReflect() preflect.Message {
  6539  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  6540  		return ParseDeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPath(raw)
  6541  	})
  6542  }
  6543  
  6544  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) ProtoMessage() {}
  6545  
  6546  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) Reset() {
  6547  	if fieldMask != nil {
  6548  		fieldMask.Paths = nil
  6549  	}
  6550  }
  6551  
  6552  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) Subtract(other *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask {
  6553  	result := &Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask{}
  6554  	removedSelectors := make([]bool, 3)
  6555  
  6556  	for _, path := range other.GetPaths() {
  6557  		switch tp := path.(type) {
  6558  		case *DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldTerminalPath:
  6559  			removedSelectors[int(tp.selector)] = true
  6560  		}
  6561  	}
  6562  	for _, path := range fieldMask.GetPaths() {
  6563  		if !removedSelectors[int(path.Selector())] {
  6564  			result.Paths = append(result.Paths, path)
  6565  		}
  6566  	}
  6567  
  6568  	if len(result.Paths) == 0 {
  6569  		return nil
  6570  	}
  6571  	return result
  6572  }
  6573  
  6574  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  6575  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask))
  6576  }
  6577  
  6578  // FilterInputFields generates copy of field paths with output_only field paths removed
  6579  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask {
  6580  	result := &Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask{}
  6581  	result.Paths = append(result.Paths, fieldMask.Paths...)
  6582  	return result
  6583  }
  6584  
  6585  // ToFieldMask is used for proto conversions
  6586  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  6587  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  6588  	for _, path := range fieldMask.Paths {
  6589  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  6590  	}
  6591  	return protoFieldMask
  6592  }
  6593  
  6594  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  6595  	if fieldMask == nil {
  6596  		return status.Error(codes.Internal, "target field mask is nil")
  6597  	}
  6598  	fieldMask.Paths = make([]DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPath, 0, len(protoFieldMask.Paths))
  6599  	for _, strPath := range protoFieldMask.Paths {
  6600  		path, err := ParseDeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPath(strPath)
  6601  		if err != nil {
  6602  			return err
  6603  		}
  6604  		fieldMask.Paths = append(fieldMask.Paths, path)
  6605  	}
  6606  	return nil
  6607  }
  6608  
  6609  // implement methods required by customType
  6610  func (fieldMask Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) Marshal() ([]byte, error) {
  6611  	protoFieldMask := fieldMask.ToProtoFieldMask()
  6612  	return proto.Marshal(protoFieldMask)
  6613  }
  6614  
  6615  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) Unmarshal(data []byte) error {
  6616  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  6617  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  6618  		return err
  6619  	}
  6620  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  6621  		return err
  6622  	}
  6623  	return nil
  6624  }
  6625  
  6626  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) Size() int {
  6627  	return proto.Size(fieldMask.ToProtoFieldMask())
  6628  }
  6629  
  6630  func (fieldMask Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) MarshalJSON() ([]byte, error) {
  6631  	return json.Marshal(fieldMask.ToProtoFieldMask())
  6632  }
  6633  
  6634  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) UnmarshalJSON(data []byte) error {
  6635  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  6636  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  6637  		return err
  6638  	}
  6639  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  6640  		return err
  6641  	}
  6642  	return nil
  6643  }
  6644  
  6645  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) AppendPath(path DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPath) {
  6646  	fieldMask.Paths = append(fieldMask.Paths, path)
  6647  }
  6648  
  6649  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  6650  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPath))
  6651  }
  6652  
  6653  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) GetPaths() []DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPath {
  6654  	if fieldMask == nil {
  6655  		return nil
  6656  	}
  6657  	return fieldMask.Paths
  6658  }
  6659  
  6660  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  6661  	if fieldMask == nil {
  6662  		return nil
  6663  	}
  6664  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  6665  	for _, path := range fieldMask.Paths {
  6666  		rawPaths = append(rawPaths, path)
  6667  	}
  6668  	return rawPaths
  6669  }
  6670  
  6671  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) SetFromCliFlag(raw string) error {
  6672  	path, err := ParseDeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPath(raw)
  6673  	if err != nil {
  6674  		return err
  6675  	}
  6676  	fieldMask.Paths = append(fieldMask.Paths, path)
  6677  	return nil
  6678  }
  6679  
  6680  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) Set(target, source *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo) {
  6681  	for _, path := range fieldMask.Paths {
  6682  		val, _ := path.GetSingle(source)
  6683  		// if val is nil, then field does not exist in source, skip
  6684  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  6685  		if val != nil {
  6686  			path.WithIValue(val).SetTo(&target)
  6687  		}
  6688  	}
  6689  }
  6690  
  6691  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  6692  	fieldMask.Set(target.(*Device_Status_DeviceInfo_ControlPlaneInterfaceInfo), source.(*Device_Status_DeviceInfo_ControlPlaneInterfaceInfo))
  6693  }
  6694  
  6695  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) Project(source *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo) *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo {
  6696  	if source == nil {
  6697  		return nil
  6698  	}
  6699  	if fieldMask == nil {
  6700  		return source
  6701  	}
  6702  	result := &Device_Status_DeviceInfo_ControlPlaneInterfaceInfo{}
  6703  
  6704  	for _, p := range fieldMask.Paths {
  6705  		switch tp := p.(type) {
  6706  		case *DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldTerminalPath:
  6707  			switch tp.selector {
  6708  			case DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPathSelectorActiveControlPlaneInterface:
  6709  				result.ActiveControlPlaneInterface = source.ActiveControlPlaneInterface
  6710  			case DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPathSelectorUsesProxy:
  6711  				result.UsesProxy = source.UsesProxy
  6712  			case DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPathSelectorIsFallback:
  6713  				result.IsFallback = source.IsFallback
  6714  			}
  6715  		}
  6716  	}
  6717  	return result
  6718  }
  6719  
  6720  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  6721  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_ControlPlaneInterfaceInfo))
  6722  }
  6723  
  6724  func (fieldMask *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask) PathsCount() int {
  6725  	if fieldMask == nil {
  6726  		return 0
  6727  	}
  6728  	return len(fieldMask.Paths)
  6729  }
  6730  
  6731  type Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask struct {
  6732  	Paths []DeviceStatusDeviceInfoHardwareInformationCapability_FieldPath
  6733  }
  6734  
  6735  func FullDevice_Status_DeviceInfo_HardwareInformation_Capability_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask {
  6736  	res := &Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask{}
  6737  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCapability_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCapability_FieldPathSelectorName})
  6738  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCapability_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCapability_FieldPathSelectorDescription})
  6739  	return res
  6740  }
  6741  
  6742  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) String() string {
  6743  	if fieldMask == nil {
  6744  		return "<nil>"
  6745  	}
  6746  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  6747  	for _, path := range fieldMask.Paths {
  6748  		pathsStr = append(pathsStr, path.String())
  6749  	}
  6750  	return strings.Join(pathsStr, ", ")
  6751  }
  6752  
  6753  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) IsFull() bool {
  6754  	if fieldMask == nil {
  6755  		return false
  6756  	}
  6757  	presentSelectors := make([]bool, 2)
  6758  	for _, path := range fieldMask.Paths {
  6759  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationCapability_FieldTerminalPath); ok {
  6760  			presentSelectors[int(asFinal.selector)] = true
  6761  		}
  6762  	}
  6763  	for _, flag := range presentSelectors {
  6764  		if !flag {
  6765  			return false
  6766  		}
  6767  	}
  6768  	return true
  6769  }
  6770  
  6771  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) ProtoReflect() preflect.Message {
  6772  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  6773  		return ParseDeviceStatusDeviceInfoHardwareInformationCapability_FieldPath(raw)
  6774  	})
  6775  }
  6776  
  6777  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) ProtoMessage() {}
  6778  
  6779  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) Reset() {
  6780  	if fieldMask != nil {
  6781  		fieldMask.Paths = nil
  6782  	}
  6783  }
  6784  
  6785  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask {
  6786  	result := &Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask{}
  6787  	removedSelectors := make([]bool, 2)
  6788  
  6789  	for _, path := range other.GetPaths() {
  6790  		switch tp := path.(type) {
  6791  		case *DeviceStatusDeviceInfoHardwareInformationCapability_FieldTerminalPath:
  6792  			removedSelectors[int(tp.selector)] = true
  6793  		}
  6794  	}
  6795  	for _, path := range fieldMask.GetPaths() {
  6796  		if !removedSelectors[int(path.Selector())] {
  6797  			result.Paths = append(result.Paths, path)
  6798  		}
  6799  	}
  6800  
  6801  	if len(result.Paths) == 0 {
  6802  		return nil
  6803  	}
  6804  	return result
  6805  }
  6806  
  6807  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  6808  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask))
  6809  }
  6810  
  6811  // FilterInputFields generates copy of field paths with output_only field paths removed
  6812  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask {
  6813  	result := &Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask{}
  6814  	result.Paths = append(result.Paths, fieldMask.Paths...)
  6815  	return result
  6816  }
  6817  
  6818  // ToFieldMask is used for proto conversions
  6819  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  6820  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  6821  	for _, path := range fieldMask.Paths {
  6822  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  6823  	}
  6824  	return protoFieldMask
  6825  }
  6826  
  6827  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  6828  	if fieldMask == nil {
  6829  		return status.Error(codes.Internal, "target field mask is nil")
  6830  	}
  6831  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationCapability_FieldPath, 0, len(protoFieldMask.Paths))
  6832  	for _, strPath := range protoFieldMask.Paths {
  6833  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationCapability_FieldPath(strPath)
  6834  		if err != nil {
  6835  			return err
  6836  		}
  6837  		fieldMask.Paths = append(fieldMask.Paths, path)
  6838  	}
  6839  	return nil
  6840  }
  6841  
  6842  // implement methods required by customType
  6843  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) Marshal() ([]byte, error) {
  6844  	protoFieldMask := fieldMask.ToProtoFieldMask()
  6845  	return proto.Marshal(protoFieldMask)
  6846  }
  6847  
  6848  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) Unmarshal(data []byte) error {
  6849  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  6850  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  6851  		return err
  6852  	}
  6853  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  6854  		return err
  6855  	}
  6856  	return nil
  6857  }
  6858  
  6859  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) Size() int {
  6860  	return proto.Size(fieldMask.ToProtoFieldMask())
  6861  }
  6862  
  6863  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) MarshalJSON() ([]byte, error) {
  6864  	return json.Marshal(fieldMask.ToProtoFieldMask())
  6865  }
  6866  
  6867  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) UnmarshalJSON(data []byte) error {
  6868  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  6869  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  6870  		return err
  6871  	}
  6872  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  6873  		return err
  6874  	}
  6875  	return nil
  6876  }
  6877  
  6878  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationCapability_FieldPath) {
  6879  	fieldMask.Paths = append(fieldMask.Paths, path)
  6880  }
  6881  
  6882  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  6883  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationCapability_FieldPath))
  6884  }
  6885  
  6886  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationCapability_FieldPath {
  6887  	if fieldMask == nil {
  6888  		return nil
  6889  	}
  6890  	return fieldMask.Paths
  6891  }
  6892  
  6893  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  6894  	if fieldMask == nil {
  6895  		return nil
  6896  	}
  6897  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  6898  	for _, path := range fieldMask.Paths {
  6899  		rawPaths = append(rawPaths, path)
  6900  	}
  6901  	return rawPaths
  6902  }
  6903  
  6904  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) SetFromCliFlag(raw string) error {
  6905  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationCapability_FieldPath(raw)
  6906  	if err != nil {
  6907  		return err
  6908  	}
  6909  	fieldMask.Paths = append(fieldMask.Paths, path)
  6910  	return nil
  6911  }
  6912  
  6913  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_Capability) {
  6914  	for _, path := range fieldMask.Paths {
  6915  		val, _ := path.GetSingle(source)
  6916  		// if val is nil, then field does not exist in source, skip
  6917  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  6918  		if val != nil {
  6919  			path.WithIValue(val).SetTo(&target)
  6920  		}
  6921  	}
  6922  }
  6923  
  6924  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  6925  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_Capability), source.(*Device_Status_DeviceInfo_HardwareInformation_Capability))
  6926  }
  6927  
  6928  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_Capability) *Device_Status_DeviceInfo_HardwareInformation_Capability {
  6929  	if source == nil {
  6930  		return nil
  6931  	}
  6932  	if fieldMask == nil {
  6933  		return source
  6934  	}
  6935  	result := &Device_Status_DeviceInfo_HardwareInformation_Capability{}
  6936  
  6937  	for _, p := range fieldMask.Paths {
  6938  		switch tp := p.(type) {
  6939  		case *DeviceStatusDeviceInfoHardwareInformationCapability_FieldTerminalPath:
  6940  			switch tp.selector {
  6941  			case DeviceStatusDeviceInfoHardwareInformationCapability_FieldPathSelectorName:
  6942  				result.Name = source.Name
  6943  			case DeviceStatusDeviceInfoHardwareInformationCapability_FieldPathSelectorDescription:
  6944  				result.Description = source.Description
  6945  			}
  6946  		}
  6947  	}
  6948  	return result
  6949  }
  6950  
  6951  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  6952  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_Capability))
  6953  }
  6954  
  6955  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask) PathsCount() int {
  6956  	if fieldMask == nil {
  6957  		return 0
  6958  	}
  6959  	return len(fieldMask.Paths)
  6960  }
  6961  
  6962  type Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask struct {
  6963  	Paths []DeviceStatusDeviceInfoHardwareInformationOS_FieldPath
  6964  }
  6965  
  6966  func FullDevice_Status_DeviceInfo_HardwareInformation_OS_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask {
  6967  	res := &Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask{}
  6968  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationOS_FieldPathSelectorOperatingSystem})
  6969  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationOS_FieldPathSelectorKernelVersion})
  6970  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationOS_FieldPathSelectorOsImage})
  6971  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationOS_FieldPathSelectorContainerRuntimeVersion})
  6972  	return res
  6973  }
  6974  
  6975  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) String() string {
  6976  	if fieldMask == nil {
  6977  		return "<nil>"
  6978  	}
  6979  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  6980  	for _, path := range fieldMask.Paths {
  6981  		pathsStr = append(pathsStr, path.String())
  6982  	}
  6983  	return strings.Join(pathsStr, ", ")
  6984  }
  6985  
  6986  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) IsFull() bool {
  6987  	if fieldMask == nil {
  6988  		return false
  6989  	}
  6990  	presentSelectors := make([]bool, 4)
  6991  	for _, path := range fieldMask.Paths {
  6992  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationOS_FieldTerminalPath); ok {
  6993  			presentSelectors[int(asFinal.selector)] = true
  6994  		}
  6995  	}
  6996  	for _, flag := range presentSelectors {
  6997  		if !flag {
  6998  			return false
  6999  		}
  7000  	}
  7001  	return true
  7002  }
  7003  
  7004  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) ProtoReflect() preflect.Message {
  7005  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  7006  		return ParseDeviceStatusDeviceInfoHardwareInformationOS_FieldPath(raw)
  7007  	})
  7008  }
  7009  
  7010  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) ProtoMessage() {}
  7011  
  7012  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) Reset() {
  7013  	if fieldMask != nil {
  7014  		fieldMask.Paths = nil
  7015  	}
  7016  }
  7017  
  7018  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask {
  7019  	result := &Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask{}
  7020  	removedSelectors := make([]bool, 4)
  7021  
  7022  	for _, path := range other.GetPaths() {
  7023  		switch tp := path.(type) {
  7024  		case *DeviceStatusDeviceInfoHardwareInformationOS_FieldTerminalPath:
  7025  			removedSelectors[int(tp.selector)] = true
  7026  		}
  7027  	}
  7028  	for _, path := range fieldMask.GetPaths() {
  7029  		if !removedSelectors[int(path.Selector())] {
  7030  			result.Paths = append(result.Paths, path)
  7031  		}
  7032  	}
  7033  
  7034  	if len(result.Paths) == 0 {
  7035  		return nil
  7036  	}
  7037  	return result
  7038  }
  7039  
  7040  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  7041  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask))
  7042  }
  7043  
  7044  // FilterInputFields generates copy of field paths with output_only field paths removed
  7045  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask {
  7046  	result := &Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask{}
  7047  	result.Paths = append(result.Paths, fieldMask.Paths...)
  7048  	return result
  7049  }
  7050  
  7051  // ToFieldMask is used for proto conversions
  7052  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  7053  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  7054  	for _, path := range fieldMask.Paths {
  7055  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  7056  	}
  7057  	return protoFieldMask
  7058  }
  7059  
  7060  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  7061  	if fieldMask == nil {
  7062  		return status.Error(codes.Internal, "target field mask is nil")
  7063  	}
  7064  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationOS_FieldPath, 0, len(protoFieldMask.Paths))
  7065  	for _, strPath := range protoFieldMask.Paths {
  7066  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationOS_FieldPath(strPath)
  7067  		if err != nil {
  7068  			return err
  7069  		}
  7070  		fieldMask.Paths = append(fieldMask.Paths, path)
  7071  	}
  7072  	return nil
  7073  }
  7074  
  7075  // implement methods required by customType
  7076  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) Marshal() ([]byte, error) {
  7077  	protoFieldMask := fieldMask.ToProtoFieldMask()
  7078  	return proto.Marshal(protoFieldMask)
  7079  }
  7080  
  7081  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) Unmarshal(data []byte) error {
  7082  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  7083  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  7084  		return err
  7085  	}
  7086  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  7087  		return err
  7088  	}
  7089  	return nil
  7090  }
  7091  
  7092  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) Size() int {
  7093  	return proto.Size(fieldMask.ToProtoFieldMask())
  7094  }
  7095  
  7096  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) MarshalJSON() ([]byte, error) {
  7097  	return json.Marshal(fieldMask.ToProtoFieldMask())
  7098  }
  7099  
  7100  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) UnmarshalJSON(data []byte) error {
  7101  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  7102  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  7103  		return err
  7104  	}
  7105  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  7106  		return err
  7107  	}
  7108  	return nil
  7109  }
  7110  
  7111  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationOS_FieldPath) {
  7112  	fieldMask.Paths = append(fieldMask.Paths, path)
  7113  }
  7114  
  7115  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  7116  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationOS_FieldPath))
  7117  }
  7118  
  7119  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationOS_FieldPath {
  7120  	if fieldMask == nil {
  7121  		return nil
  7122  	}
  7123  	return fieldMask.Paths
  7124  }
  7125  
  7126  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  7127  	if fieldMask == nil {
  7128  		return nil
  7129  	}
  7130  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  7131  	for _, path := range fieldMask.Paths {
  7132  		rawPaths = append(rawPaths, path)
  7133  	}
  7134  	return rawPaths
  7135  }
  7136  
  7137  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) SetFromCliFlag(raw string) error {
  7138  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationOS_FieldPath(raw)
  7139  	if err != nil {
  7140  		return err
  7141  	}
  7142  	fieldMask.Paths = append(fieldMask.Paths, path)
  7143  	return nil
  7144  }
  7145  
  7146  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_OS) {
  7147  	for _, path := range fieldMask.Paths {
  7148  		val, _ := path.GetSingle(source)
  7149  		// if val is nil, then field does not exist in source, skip
  7150  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  7151  		if val != nil {
  7152  			path.WithIValue(val).SetTo(&target)
  7153  		}
  7154  	}
  7155  }
  7156  
  7157  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  7158  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_OS), source.(*Device_Status_DeviceInfo_HardwareInformation_OS))
  7159  }
  7160  
  7161  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_OS) *Device_Status_DeviceInfo_HardwareInformation_OS {
  7162  	if source == nil {
  7163  		return nil
  7164  	}
  7165  	if fieldMask == nil {
  7166  		return source
  7167  	}
  7168  	result := &Device_Status_DeviceInfo_HardwareInformation_OS{}
  7169  
  7170  	for _, p := range fieldMask.Paths {
  7171  		switch tp := p.(type) {
  7172  		case *DeviceStatusDeviceInfoHardwareInformationOS_FieldTerminalPath:
  7173  			switch tp.selector {
  7174  			case DeviceStatusDeviceInfoHardwareInformationOS_FieldPathSelectorOperatingSystem:
  7175  				result.OperatingSystem = source.OperatingSystem
  7176  			case DeviceStatusDeviceInfoHardwareInformationOS_FieldPathSelectorKernelVersion:
  7177  				result.KernelVersion = source.KernelVersion
  7178  			case DeviceStatusDeviceInfoHardwareInformationOS_FieldPathSelectorOsImage:
  7179  				result.OsImage = source.OsImage
  7180  			case DeviceStatusDeviceInfoHardwareInformationOS_FieldPathSelectorContainerRuntimeVersion:
  7181  				result.ContainerRuntimeVersion = source.ContainerRuntimeVersion
  7182  			}
  7183  		}
  7184  	}
  7185  	return result
  7186  }
  7187  
  7188  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  7189  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_OS))
  7190  }
  7191  
  7192  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask) PathsCount() int {
  7193  	if fieldMask == nil {
  7194  		return 0
  7195  	}
  7196  	return len(fieldMask.Paths)
  7197  }
  7198  
  7199  type Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask struct {
  7200  	Paths []DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPath
  7201  }
  7202  
  7203  func FullDevice_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask {
  7204  	res := &Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask{}
  7205  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBIOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPathSelectorVendor})
  7206  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBIOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPathSelectorBiosVersion})
  7207  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBIOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPathSelectorReleaseDate})
  7208  	return res
  7209  }
  7210  
  7211  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) String() string {
  7212  	if fieldMask == nil {
  7213  		return "<nil>"
  7214  	}
  7215  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  7216  	for _, path := range fieldMask.Paths {
  7217  		pathsStr = append(pathsStr, path.String())
  7218  	}
  7219  	return strings.Join(pathsStr, ", ")
  7220  }
  7221  
  7222  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) IsFull() bool {
  7223  	if fieldMask == nil {
  7224  		return false
  7225  	}
  7226  	presentSelectors := make([]bool, 3)
  7227  	for _, path := range fieldMask.Paths {
  7228  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationBIOS_FieldTerminalPath); ok {
  7229  			presentSelectors[int(asFinal.selector)] = true
  7230  		}
  7231  	}
  7232  	for _, flag := range presentSelectors {
  7233  		if !flag {
  7234  			return false
  7235  		}
  7236  	}
  7237  	return true
  7238  }
  7239  
  7240  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) ProtoReflect() preflect.Message {
  7241  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  7242  		return ParseDeviceStatusDeviceInfoHardwareInformationBIOS_FieldPath(raw)
  7243  	})
  7244  }
  7245  
  7246  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) ProtoMessage() {}
  7247  
  7248  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) Reset() {
  7249  	if fieldMask != nil {
  7250  		fieldMask.Paths = nil
  7251  	}
  7252  }
  7253  
  7254  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask {
  7255  	result := &Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask{}
  7256  	removedSelectors := make([]bool, 3)
  7257  
  7258  	for _, path := range other.GetPaths() {
  7259  		switch tp := path.(type) {
  7260  		case *DeviceStatusDeviceInfoHardwareInformationBIOS_FieldTerminalPath:
  7261  			removedSelectors[int(tp.selector)] = true
  7262  		}
  7263  	}
  7264  	for _, path := range fieldMask.GetPaths() {
  7265  		if !removedSelectors[int(path.Selector())] {
  7266  			result.Paths = append(result.Paths, path)
  7267  		}
  7268  	}
  7269  
  7270  	if len(result.Paths) == 0 {
  7271  		return nil
  7272  	}
  7273  	return result
  7274  }
  7275  
  7276  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  7277  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask))
  7278  }
  7279  
  7280  // FilterInputFields generates copy of field paths with output_only field paths removed
  7281  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask {
  7282  	result := &Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask{}
  7283  	result.Paths = append(result.Paths, fieldMask.Paths...)
  7284  	return result
  7285  }
  7286  
  7287  // ToFieldMask is used for proto conversions
  7288  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  7289  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  7290  	for _, path := range fieldMask.Paths {
  7291  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  7292  	}
  7293  	return protoFieldMask
  7294  }
  7295  
  7296  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  7297  	if fieldMask == nil {
  7298  		return status.Error(codes.Internal, "target field mask is nil")
  7299  	}
  7300  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPath, 0, len(protoFieldMask.Paths))
  7301  	for _, strPath := range protoFieldMask.Paths {
  7302  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationBIOS_FieldPath(strPath)
  7303  		if err != nil {
  7304  			return err
  7305  		}
  7306  		fieldMask.Paths = append(fieldMask.Paths, path)
  7307  	}
  7308  	return nil
  7309  }
  7310  
  7311  // implement methods required by customType
  7312  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) Marshal() ([]byte, error) {
  7313  	protoFieldMask := fieldMask.ToProtoFieldMask()
  7314  	return proto.Marshal(protoFieldMask)
  7315  }
  7316  
  7317  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) Unmarshal(data []byte) error {
  7318  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  7319  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  7320  		return err
  7321  	}
  7322  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  7323  		return err
  7324  	}
  7325  	return nil
  7326  }
  7327  
  7328  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) Size() int {
  7329  	return proto.Size(fieldMask.ToProtoFieldMask())
  7330  }
  7331  
  7332  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) MarshalJSON() ([]byte, error) {
  7333  	return json.Marshal(fieldMask.ToProtoFieldMask())
  7334  }
  7335  
  7336  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) UnmarshalJSON(data []byte) error {
  7337  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  7338  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  7339  		return err
  7340  	}
  7341  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  7342  		return err
  7343  	}
  7344  	return nil
  7345  }
  7346  
  7347  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPath) {
  7348  	fieldMask.Paths = append(fieldMask.Paths, path)
  7349  }
  7350  
  7351  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  7352  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPath))
  7353  }
  7354  
  7355  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPath {
  7356  	if fieldMask == nil {
  7357  		return nil
  7358  	}
  7359  	return fieldMask.Paths
  7360  }
  7361  
  7362  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  7363  	if fieldMask == nil {
  7364  		return nil
  7365  	}
  7366  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  7367  	for _, path := range fieldMask.Paths {
  7368  		rawPaths = append(rawPaths, path)
  7369  	}
  7370  	return rawPaths
  7371  }
  7372  
  7373  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) SetFromCliFlag(raw string) error {
  7374  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationBIOS_FieldPath(raw)
  7375  	if err != nil {
  7376  		return err
  7377  	}
  7378  	fieldMask.Paths = append(fieldMask.Paths, path)
  7379  	return nil
  7380  }
  7381  
  7382  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_BIOS) {
  7383  	for _, path := range fieldMask.Paths {
  7384  		val, _ := path.GetSingle(source)
  7385  		// if val is nil, then field does not exist in source, skip
  7386  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  7387  		if val != nil {
  7388  			path.WithIValue(val).SetTo(&target)
  7389  		}
  7390  	}
  7391  }
  7392  
  7393  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  7394  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_BIOS), source.(*Device_Status_DeviceInfo_HardwareInformation_BIOS))
  7395  }
  7396  
  7397  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_BIOS) *Device_Status_DeviceInfo_HardwareInformation_BIOS {
  7398  	if source == nil {
  7399  		return nil
  7400  	}
  7401  	if fieldMask == nil {
  7402  		return source
  7403  	}
  7404  	result := &Device_Status_DeviceInfo_HardwareInformation_BIOS{}
  7405  
  7406  	for _, p := range fieldMask.Paths {
  7407  		switch tp := p.(type) {
  7408  		case *DeviceStatusDeviceInfoHardwareInformationBIOS_FieldTerminalPath:
  7409  			switch tp.selector {
  7410  			case DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPathSelectorVendor:
  7411  				result.Vendor = source.Vendor
  7412  			case DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPathSelectorBiosVersion:
  7413  				result.BiosVersion = source.BiosVersion
  7414  			case DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPathSelectorReleaseDate:
  7415  				result.ReleaseDate = source.ReleaseDate
  7416  			}
  7417  		}
  7418  	}
  7419  	return result
  7420  }
  7421  
  7422  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  7423  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_BIOS))
  7424  }
  7425  
  7426  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask) PathsCount() int {
  7427  	if fieldMask == nil {
  7428  		return 0
  7429  	}
  7430  	return len(fieldMask.Paths)
  7431  }
  7432  
  7433  type Device_Status_DeviceInfo_HardwareInformation_System_FieldMask struct {
  7434  	Paths []DeviceStatusDeviceInfoHardwareInformationSystem_FieldPath
  7435  }
  7436  
  7437  func FullDevice_Status_DeviceInfo_HardwareInformation_System_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask {
  7438  	res := &Device_Status_DeviceInfo_HardwareInformation_System_FieldMask{}
  7439  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorManufacturer})
  7440  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorProductName})
  7441  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorVersion})
  7442  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorSerialNumber})
  7443  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorConfiguration})
  7444  	return res
  7445  }
  7446  
  7447  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) String() string {
  7448  	if fieldMask == nil {
  7449  		return "<nil>"
  7450  	}
  7451  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  7452  	for _, path := range fieldMask.Paths {
  7453  		pathsStr = append(pathsStr, path.String())
  7454  	}
  7455  	return strings.Join(pathsStr, ", ")
  7456  }
  7457  
  7458  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) IsFull() bool {
  7459  	if fieldMask == nil {
  7460  		return false
  7461  	}
  7462  	presentSelectors := make([]bool, 5)
  7463  	for _, path := range fieldMask.Paths {
  7464  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath); ok {
  7465  			presentSelectors[int(asFinal.selector)] = true
  7466  		}
  7467  	}
  7468  	for _, flag := range presentSelectors {
  7469  		if !flag {
  7470  			return false
  7471  		}
  7472  	}
  7473  	return true
  7474  }
  7475  
  7476  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) ProtoReflect() preflect.Message {
  7477  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  7478  		return ParseDeviceStatusDeviceInfoHardwareInformationSystem_FieldPath(raw)
  7479  	})
  7480  }
  7481  
  7482  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) ProtoMessage() {}
  7483  
  7484  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) Reset() {
  7485  	if fieldMask != nil {
  7486  		fieldMask.Paths = nil
  7487  	}
  7488  }
  7489  
  7490  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask {
  7491  	result := &Device_Status_DeviceInfo_HardwareInformation_System_FieldMask{}
  7492  	removedSelectors := make([]bool, 5)
  7493  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelector]gotenobject.FieldMask{
  7494  		DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorConfiguration: &Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask{},
  7495  	}
  7496  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelector]gotenobject.FieldMask{
  7497  		DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorConfiguration: &Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask{},
  7498  	}
  7499  
  7500  	for _, path := range other.GetPaths() {
  7501  		switch tp := path.(type) {
  7502  		case *DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath:
  7503  			removedSelectors[int(tp.selector)] = true
  7504  		case *DeviceStatusDeviceInfoHardwareInformationSystem_FieldSubPath:
  7505  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  7506  		}
  7507  	}
  7508  	for _, path := range fieldMask.GetPaths() {
  7509  		if !removedSelectors[int(path.Selector())] {
  7510  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  7511  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath); ok {
  7512  					switch tp.selector {
  7513  					case DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorConfiguration:
  7514  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorConfiguration] = FullDevice_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask()
  7515  					}
  7516  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationSystem_FieldSubPath); ok {
  7517  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  7518  				}
  7519  			} else {
  7520  				result.Paths = append(result.Paths, path)
  7521  			}
  7522  		}
  7523  	}
  7524  	for selector, mySubMask := range mySubMasks {
  7525  		if mySubMask.PathsCount() > 0 {
  7526  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  7527  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationSystem_FieldSubPath{selector: selector, subPath: allowedPath})
  7528  			}
  7529  		}
  7530  	}
  7531  
  7532  	if len(result.Paths) == 0 {
  7533  		return nil
  7534  	}
  7535  	return result
  7536  }
  7537  
  7538  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  7539  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_System_FieldMask))
  7540  }
  7541  
  7542  // FilterInputFields generates copy of field paths with output_only field paths removed
  7543  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask {
  7544  	result := &Device_Status_DeviceInfo_HardwareInformation_System_FieldMask{}
  7545  	result.Paths = append(result.Paths, fieldMask.Paths...)
  7546  	return result
  7547  }
  7548  
  7549  // ToFieldMask is used for proto conversions
  7550  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  7551  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  7552  	for _, path := range fieldMask.Paths {
  7553  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  7554  	}
  7555  	return protoFieldMask
  7556  }
  7557  
  7558  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  7559  	if fieldMask == nil {
  7560  		return status.Error(codes.Internal, "target field mask is nil")
  7561  	}
  7562  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationSystem_FieldPath, 0, len(protoFieldMask.Paths))
  7563  	for _, strPath := range protoFieldMask.Paths {
  7564  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationSystem_FieldPath(strPath)
  7565  		if err != nil {
  7566  			return err
  7567  		}
  7568  		fieldMask.Paths = append(fieldMask.Paths, path)
  7569  	}
  7570  	return nil
  7571  }
  7572  
  7573  // implement methods required by customType
  7574  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) Marshal() ([]byte, error) {
  7575  	protoFieldMask := fieldMask.ToProtoFieldMask()
  7576  	return proto.Marshal(protoFieldMask)
  7577  }
  7578  
  7579  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) Unmarshal(data []byte) error {
  7580  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  7581  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  7582  		return err
  7583  	}
  7584  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  7585  		return err
  7586  	}
  7587  	return nil
  7588  }
  7589  
  7590  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) Size() int {
  7591  	return proto.Size(fieldMask.ToProtoFieldMask())
  7592  }
  7593  
  7594  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) MarshalJSON() ([]byte, error) {
  7595  	return json.Marshal(fieldMask.ToProtoFieldMask())
  7596  }
  7597  
  7598  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) UnmarshalJSON(data []byte) error {
  7599  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  7600  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  7601  		return err
  7602  	}
  7603  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  7604  		return err
  7605  	}
  7606  	return nil
  7607  }
  7608  
  7609  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationSystem_FieldPath) {
  7610  	fieldMask.Paths = append(fieldMask.Paths, path)
  7611  }
  7612  
  7613  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  7614  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationSystem_FieldPath))
  7615  }
  7616  
  7617  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationSystem_FieldPath {
  7618  	if fieldMask == nil {
  7619  		return nil
  7620  	}
  7621  	return fieldMask.Paths
  7622  }
  7623  
  7624  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  7625  	if fieldMask == nil {
  7626  		return nil
  7627  	}
  7628  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  7629  	for _, path := range fieldMask.Paths {
  7630  		rawPaths = append(rawPaths, path)
  7631  	}
  7632  	return rawPaths
  7633  }
  7634  
  7635  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) SetFromCliFlag(raw string) error {
  7636  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationSystem_FieldPath(raw)
  7637  	if err != nil {
  7638  		return err
  7639  	}
  7640  	fieldMask.Paths = append(fieldMask.Paths, path)
  7641  	return nil
  7642  }
  7643  
  7644  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_System) {
  7645  	for _, path := range fieldMask.Paths {
  7646  		val, _ := path.GetSingle(source)
  7647  		// if val is nil, then field does not exist in source, skip
  7648  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  7649  		if val != nil {
  7650  			path.WithIValue(val).SetTo(&target)
  7651  		}
  7652  	}
  7653  }
  7654  
  7655  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  7656  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_System), source.(*Device_Status_DeviceInfo_HardwareInformation_System))
  7657  }
  7658  
  7659  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_System) *Device_Status_DeviceInfo_HardwareInformation_System {
  7660  	if source == nil {
  7661  		return nil
  7662  	}
  7663  	if fieldMask == nil {
  7664  		return source
  7665  	}
  7666  	result := &Device_Status_DeviceInfo_HardwareInformation_System{}
  7667  	configurationMask := &Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask{}
  7668  	wholeConfigurationAccepted := false
  7669  
  7670  	for _, p := range fieldMask.Paths {
  7671  		switch tp := p.(type) {
  7672  		case *DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath:
  7673  			switch tp.selector {
  7674  			case DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorManufacturer:
  7675  				result.Manufacturer = source.Manufacturer
  7676  			case DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorProductName:
  7677  				result.ProductName = source.ProductName
  7678  			case DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorVersion:
  7679  				result.Version = source.Version
  7680  			case DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorSerialNumber:
  7681  				result.SerialNumber = source.SerialNumber
  7682  			case DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorConfiguration:
  7683  				result.Configuration = source.Configuration
  7684  				wholeConfigurationAccepted = true
  7685  			}
  7686  		case *DeviceStatusDeviceInfoHardwareInformationSystem_FieldSubPath:
  7687  			switch tp.selector {
  7688  			case DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorConfiguration:
  7689  				configurationMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPath))
  7690  			}
  7691  		}
  7692  	}
  7693  	if wholeConfigurationAccepted == false && len(configurationMask.Paths) > 0 {
  7694  		result.Configuration = configurationMask.Project(source.GetConfiguration())
  7695  	}
  7696  	return result
  7697  }
  7698  
  7699  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  7700  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_System))
  7701  }
  7702  
  7703  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask) PathsCount() int {
  7704  	if fieldMask == nil {
  7705  		return 0
  7706  	}
  7707  	return len(fieldMask.Paths)
  7708  }
  7709  
  7710  type Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask struct {
  7711  	Paths []DeviceStatusDeviceInfoHardwareInformationCPU_FieldPath
  7712  }
  7713  
  7714  func FullDevice_Status_DeviceInfo_HardwareInformation_CPU_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask {
  7715  	res := &Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask{}
  7716  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPU_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPU_FieldPathSelectorProcessors})
  7717  	return res
  7718  }
  7719  
  7720  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) String() string {
  7721  	if fieldMask == nil {
  7722  		return "<nil>"
  7723  	}
  7724  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  7725  	for _, path := range fieldMask.Paths {
  7726  		pathsStr = append(pathsStr, path.String())
  7727  	}
  7728  	return strings.Join(pathsStr, ", ")
  7729  }
  7730  
  7731  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) IsFull() bool {
  7732  	if fieldMask == nil {
  7733  		return false
  7734  	}
  7735  	presentSelectors := make([]bool, 1)
  7736  	for _, path := range fieldMask.Paths {
  7737  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationCPU_FieldTerminalPath); ok {
  7738  			presentSelectors[int(asFinal.selector)] = true
  7739  		}
  7740  	}
  7741  	for _, flag := range presentSelectors {
  7742  		if !flag {
  7743  			return false
  7744  		}
  7745  	}
  7746  	return true
  7747  }
  7748  
  7749  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) ProtoReflect() preflect.Message {
  7750  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  7751  		return ParseDeviceStatusDeviceInfoHardwareInformationCPU_FieldPath(raw)
  7752  	})
  7753  }
  7754  
  7755  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) ProtoMessage() {}
  7756  
  7757  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) Reset() {
  7758  	if fieldMask != nil {
  7759  		fieldMask.Paths = nil
  7760  	}
  7761  }
  7762  
  7763  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask {
  7764  	result := &Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask{}
  7765  	removedSelectors := make([]bool, 1)
  7766  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationCPU_FieldPathSelector]gotenobject.FieldMask{
  7767  		DeviceStatusDeviceInfoHardwareInformationCPU_FieldPathSelectorProcessors: &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask{},
  7768  	}
  7769  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationCPU_FieldPathSelector]gotenobject.FieldMask{
  7770  		DeviceStatusDeviceInfoHardwareInformationCPU_FieldPathSelectorProcessors: &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask{},
  7771  	}
  7772  
  7773  	for _, path := range other.GetPaths() {
  7774  		switch tp := path.(type) {
  7775  		case *DeviceStatusDeviceInfoHardwareInformationCPU_FieldTerminalPath:
  7776  			removedSelectors[int(tp.selector)] = true
  7777  		case *DeviceStatusDeviceInfoHardwareInformationCPU_FieldSubPath:
  7778  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  7779  		}
  7780  	}
  7781  	for _, path := range fieldMask.GetPaths() {
  7782  		if !removedSelectors[int(path.Selector())] {
  7783  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  7784  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationCPU_FieldTerminalPath); ok {
  7785  					switch tp.selector {
  7786  					case DeviceStatusDeviceInfoHardwareInformationCPU_FieldPathSelectorProcessors:
  7787  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationCPU_FieldPathSelectorProcessors] = FullDevice_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask()
  7788  					}
  7789  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationCPU_FieldSubPath); ok {
  7790  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  7791  				}
  7792  			} else {
  7793  				result.Paths = append(result.Paths, path)
  7794  			}
  7795  		}
  7796  	}
  7797  	for selector, mySubMask := range mySubMasks {
  7798  		if mySubMask.PathsCount() > 0 {
  7799  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  7800  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationCPU_FieldSubPath{selector: selector, subPath: allowedPath})
  7801  			}
  7802  		}
  7803  	}
  7804  
  7805  	if len(result.Paths) == 0 {
  7806  		return nil
  7807  	}
  7808  	return result
  7809  }
  7810  
  7811  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  7812  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask))
  7813  }
  7814  
  7815  // FilterInputFields generates copy of field paths with output_only field paths removed
  7816  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask {
  7817  	result := &Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask{}
  7818  	result.Paths = append(result.Paths, fieldMask.Paths...)
  7819  	return result
  7820  }
  7821  
  7822  // ToFieldMask is used for proto conversions
  7823  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  7824  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  7825  	for _, path := range fieldMask.Paths {
  7826  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  7827  	}
  7828  	return protoFieldMask
  7829  }
  7830  
  7831  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  7832  	if fieldMask == nil {
  7833  		return status.Error(codes.Internal, "target field mask is nil")
  7834  	}
  7835  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationCPU_FieldPath, 0, len(protoFieldMask.Paths))
  7836  	for _, strPath := range protoFieldMask.Paths {
  7837  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationCPU_FieldPath(strPath)
  7838  		if err != nil {
  7839  			return err
  7840  		}
  7841  		fieldMask.Paths = append(fieldMask.Paths, path)
  7842  	}
  7843  	return nil
  7844  }
  7845  
  7846  // implement methods required by customType
  7847  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) Marshal() ([]byte, error) {
  7848  	protoFieldMask := fieldMask.ToProtoFieldMask()
  7849  	return proto.Marshal(protoFieldMask)
  7850  }
  7851  
  7852  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) Unmarshal(data []byte) error {
  7853  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  7854  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  7855  		return err
  7856  	}
  7857  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  7858  		return err
  7859  	}
  7860  	return nil
  7861  }
  7862  
  7863  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) Size() int {
  7864  	return proto.Size(fieldMask.ToProtoFieldMask())
  7865  }
  7866  
  7867  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) MarshalJSON() ([]byte, error) {
  7868  	return json.Marshal(fieldMask.ToProtoFieldMask())
  7869  }
  7870  
  7871  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) UnmarshalJSON(data []byte) error {
  7872  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  7873  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  7874  		return err
  7875  	}
  7876  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  7877  		return err
  7878  	}
  7879  	return nil
  7880  }
  7881  
  7882  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationCPU_FieldPath) {
  7883  	fieldMask.Paths = append(fieldMask.Paths, path)
  7884  }
  7885  
  7886  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  7887  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationCPU_FieldPath))
  7888  }
  7889  
  7890  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationCPU_FieldPath {
  7891  	if fieldMask == nil {
  7892  		return nil
  7893  	}
  7894  	return fieldMask.Paths
  7895  }
  7896  
  7897  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  7898  	if fieldMask == nil {
  7899  		return nil
  7900  	}
  7901  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  7902  	for _, path := range fieldMask.Paths {
  7903  		rawPaths = append(rawPaths, path)
  7904  	}
  7905  	return rawPaths
  7906  }
  7907  
  7908  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) SetFromCliFlag(raw string) error {
  7909  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationCPU_FieldPath(raw)
  7910  	if err != nil {
  7911  		return err
  7912  	}
  7913  	fieldMask.Paths = append(fieldMask.Paths, path)
  7914  	return nil
  7915  }
  7916  
  7917  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_CPU) {
  7918  	for _, path := range fieldMask.Paths {
  7919  		val, _ := path.GetSingle(source)
  7920  		// if val is nil, then field does not exist in source, skip
  7921  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  7922  		if val != nil {
  7923  			path.WithIValue(val).SetTo(&target)
  7924  		}
  7925  	}
  7926  }
  7927  
  7928  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  7929  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_CPU), source.(*Device_Status_DeviceInfo_HardwareInformation_CPU))
  7930  }
  7931  
  7932  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_CPU) *Device_Status_DeviceInfo_HardwareInformation_CPU {
  7933  	if source == nil {
  7934  		return nil
  7935  	}
  7936  	if fieldMask == nil {
  7937  		return source
  7938  	}
  7939  	result := &Device_Status_DeviceInfo_HardwareInformation_CPU{}
  7940  	processorsMask := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask{}
  7941  	wholeProcessorsAccepted := false
  7942  
  7943  	for _, p := range fieldMask.Paths {
  7944  		switch tp := p.(type) {
  7945  		case *DeviceStatusDeviceInfoHardwareInformationCPU_FieldTerminalPath:
  7946  			switch tp.selector {
  7947  			case DeviceStatusDeviceInfoHardwareInformationCPU_FieldPathSelectorProcessors:
  7948  				result.Processors = source.Processors
  7949  				wholeProcessorsAccepted = true
  7950  			}
  7951  		case *DeviceStatusDeviceInfoHardwareInformationCPU_FieldSubPath:
  7952  			switch tp.selector {
  7953  			case DeviceStatusDeviceInfoHardwareInformationCPU_FieldPathSelectorProcessors:
  7954  				processorsMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPath))
  7955  			}
  7956  		}
  7957  	}
  7958  	if wholeProcessorsAccepted == false && len(processorsMask.Paths) > 0 {
  7959  		for _, sourceItem := range source.GetProcessors() {
  7960  			result.Processors = append(result.Processors, processorsMask.Project(sourceItem))
  7961  		}
  7962  	}
  7963  	return result
  7964  }
  7965  
  7966  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  7967  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_CPU))
  7968  }
  7969  
  7970  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask) PathsCount() int {
  7971  	if fieldMask == nil {
  7972  		return 0
  7973  	}
  7974  	return len(fieldMask.Paths)
  7975  }
  7976  
  7977  type Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask struct {
  7978  	Paths []DeviceStatusDeviceInfoHardwareInformationBlock_FieldPath
  7979  }
  7980  
  7981  func FullDevice_Status_DeviceInfo_HardwareInformation_Block_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask {
  7982  	res := &Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask{}
  7983  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlock_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlock_FieldPathSelectorDisks})
  7984  	return res
  7985  }
  7986  
  7987  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) String() string {
  7988  	if fieldMask == nil {
  7989  		return "<nil>"
  7990  	}
  7991  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  7992  	for _, path := range fieldMask.Paths {
  7993  		pathsStr = append(pathsStr, path.String())
  7994  	}
  7995  	return strings.Join(pathsStr, ", ")
  7996  }
  7997  
  7998  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) IsFull() bool {
  7999  	if fieldMask == nil {
  8000  		return false
  8001  	}
  8002  	presentSelectors := make([]bool, 1)
  8003  	for _, path := range fieldMask.Paths {
  8004  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationBlock_FieldTerminalPath); ok {
  8005  			presentSelectors[int(asFinal.selector)] = true
  8006  		}
  8007  	}
  8008  	for _, flag := range presentSelectors {
  8009  		if !flag {
  8010  			return false
  8011  		}
  8012  	}
  8013  	return true
  8014  }
  8015  
  8016  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) ProtoReflect() preflect.Message {
  8017  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  8018  		return ParseDeviceStatusDeviceInfoHardwareInformationBlock_FieldPath(raw)
  8019  	})
  8020  }
  8021  
  8022  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) ProtoMessage() {}
  8023  
  8024  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) Reset() {
  8025  	if fieldMask != nil {
  8026  		fieldMask.Paths = nil
  8027  	}
  8028  }
  8029  
  8030  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask {
  8031  	result := &Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask{}
  8032  	removedSelectors := make([]bool, 1)
  8033  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationBlock_FieldPathSelector]gotenobject.FieldMask{
  8034  		DeviceStatusDeviceInfoHardwareInformationBlock_FieldPathSelectorDisks: &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask{},
  8035  	}
  8036  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationBlock_FieldPathSelector]gotenobject.FieldMask{
  8037  		DeviceStatusDeviceInfoHardwareInformationBlock_FieldPathSelectorDisks: &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask{},
  8038  	}
  8039  
  8040  	for _, path := range other.GetPaths() {
  8041  		switch tp := path.(type) {
  8042  		case *DeviceStatusDeviceInfoHardwareInformationBlock_FieldTerminalPath:
  8043  			removedSelectors[int(tp.selector)] = true
  8044  		case *DeviceStatusDeviceInfoHardwareInformationBlock_FieldSubPath:
  8045  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  8046  		}
  8047  	}
  8048  	for _, path := range fieldMask.GetPaths() {
  8049  		if !removedSelectors[int(path.Selector())] {
  8050  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  8051  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationBlock_FieldTerminalPath); ok {
  8052  					switch tp.selector {
  8053  					case DeviceStatusDeviceInfoHardwareInformationBlock_FieldPathSelectorDisks:
  8054  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationBlock_FieldPathSelectorDisks] = FullDevice_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask()
  8055  					}
  8056  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationBlock_FieldSubPath); ok {
  8057  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  8058  				}
  8059  			} else {
  8060  				result.Paths = append(result.Paths, path)
  8061  			}
  8062  		}
  8063  	}
  8064  	for selector, mySubMask := range mySubMasks {
  8065  		if mySubMask.PathsCount() > 0 {
  8066  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  8067  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationBlock_FieldSubPath{selector: selector, subPath: allowedPath})
  8068  			}
  8069  		}
  8070  	}
  8071  
  8072  	if len(result.Paths) == 0 {
  8073  		return nil
  8074  	}
  8075  	return result
  8076  }
  8077  
  8078  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  8079  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask))
  8080  }
  8081  
  8082  // FilterInputFields generates copy of field paths with output_only field paths removed
  8083  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask {
  8084  	result := &Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask{}
  8085  	result.Paths = append(result.Paths, fieldMask.Paths...)
  8086  	return result
  8087  }
  8088  
  8089  // ToFieldMask is used for proto conversions
  8090  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  8091  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  8092  	for _, path := range fieldMask.Paths {
  8093  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  8094  	}
  8095  	return protoFieldMask
  8096  }
  8097  
  8098  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  8099  	if fieldMask == nil {
  8100  		return status.Error(codes.Internal, "target field mask is nil")
  8101  	}
  8102  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationBlock_FieldPath, 0, len(protoFieldMask.Paths))
  8103  	for _, strPath := range protoFieldMask.Paths {
  8104  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationBlock_FieldPath(strPath)
  8105  		if err != nil {
  8106  			return err
  8107  		}
  8108  		fieldMask.Paths = append(fieldMask.Paths, path)
  8109  	}
  8110  	return nil
  8111  }
  8112  
  8113  // implement methods required by customType
  8114  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) Marshal() ([]byte, error) {
  8115  	protoFieldMask := fieldMask.ToProtoFieldMask()
  8116  	return proto.Marshal(protoFieldMask)
  8117  }
  8118  
  8119  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) Unmarshal(data []byte) error {
  8120  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  8121  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  8122  		return err
  8123  	}
  8124  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  8125  		return err
  8126  	}
  8127  	return nil
  8128  }
  8129  
  8130  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) Size() int {
  8131  	return proto.Size(fieldMask.ToProtoFieldMask())
  8132  }
  8133  
  8134  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) MarshalJSON() ([]byte, error) {
  8135  	return json.Marshal(fieldMask.ToProtoFieldMask())
  8136  }
  8137  
  8138  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) UnmarshalJSON(data []byte) error {
  8139  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  8140  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  8141  		return err
  8142  	}
  8143  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  8144  		return err
  8145  	}
  8146  	return nil
  8147  }
  8148  
  8149  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationBlock_FieldPath) {
  8150  	fieldMask.Paths = append(fieldMask.Paths, path)
  8151  }
  8152  
  8153  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  8154  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationBlock_FieldPath))
  8155  }
  8156  
  8157  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationBlock_FieldPath {
  8158  	if fieldMask == nil {
  8159  		return nil
  8160  	}
  8161  	return fieldMask.Paths
  8162  }
  8163  
  8164  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  8165  	if fieldMask == nil {
  8166  		return nil
  8167  	}
  8168  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  8169  	for _, path := range fieldMask.Paths {
  8170  		rawPaths = append(rawPaths, path)
  8171  	}
  8172  	return rawPaths
  8173  }
  8174  
  8175  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) SetFromCliFlag(raw string) error {
  8176  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationBlock_FieldPath(raw)
  8177  	if err != nil {
  8178  		return err
  8179  	}
  8180  	fieldMask.Paths = append(fieldMask.Paths, path)
  8181  	return nil
  8182  }
  8183  
  8184  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_Block) {
  8185  	for _, path := range fieldMask.Paths {
  8186  		val, _ := path.GetSingle(source)
  8187  		// if val is nil, then field does not exist in source, skip
  8188  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  8189  		if val != nil {
  8190  			path.WithIValue(val).SetTo(&target)
  8191  		}
  8192  	}
  8193  }
  8194  
  8195  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  8196  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_Block), source.(*Device_Status_DeviceInfo_HardwareInformation_Block))
  8197  }
  8198  
  8199  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_Block) *Device_Status_DeviceInfo_HardwareInformation_Block {
  8200  	if source == nil {
  8201  		return nil
  8202  	}
  8203  	if fieldMask == nil {
  8204  		return source
  8205  	}
  8206  	result := &Device_Status_DeviceInfo_HardwareInformation_Block{}
  8207  	disksMask := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask{}
  8208  	wholeDisksAccepted := false
  8209  
  8210  	for _, p := range fieldMask.Paths {
  8211  		switch tp := p.(type) {
  8212  		case *DeviceStatusDeviceInfoHardwareInformationBlock_FieldTerminalPath:
  8213  			switch tp.selector {
  8214  			case DeviceStatusDeviceInfoHardwareInformationBlock_FieldPathSelectorDisks:
  8215  				result.Disks = source.Disks
  8216  				wholeDisksAccepted = true
  8217  			}
  8218  		case *DeviceStatusDeviceInfoHardwareInformationBlock_FieldSubPath:
  8219  			switch tp.selector {
  8220  			case DeviceStatusDeviceInfoHardwareInformationBlock_FieldPathSelectorDisks:
  8221  				disksMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPath))
  8222  			}
  8223  		}
  8224  	}
  8225  	if wholeDisksAccepted == false && len(disksMask.Paths) > 0 {
  8226  		for _, sourceItem := range source.GetDisks() {
  8227  			result.Disks = append(result.Disks, disksMask.Project(sourceItem))
  8228  		}
  8229  	}
  8230  	return result
  8231  }
  8232  
  8233  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  8234  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_Block))
  8235  }
  8236  
  8237  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask) PathsCount() int {
  8238  	if fieldMask == nil {
  8239  		return 0
  8240  	}
  8241  	return len(fieldMask.Paths)
  8242  }
  8243  
  8244  type Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask struct {
  8245  	Paths []DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPath
  8246  }
  8247  
  8248  func FullDevice_Status_DeviceInfo_HardwareInformation_Network_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask {
  8249  	res := &Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask{}
  8250  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetwork_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPathSelectorNics})
  8251  	return res
  8252  }
  8253  
  8254  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) String() string {
  8255  	if fieldMask == nil {
  8256  		return "<nil>"
  8257  	}
  8258  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  8259  	for _, path := range fieldMask.Paths {
  8260  		pathsStr = append(pathsStr, path.String())
  8261  	}
  8262  	return strings.Join(pathsStr, ", ")
  8263  }
  8264  
  8265  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) IsFull() bool {
  8266  	if fieldMask == nil {
  8267  		return false
  8268  	}
  8269  	presentSelectors := make([]bool, 1)
  8270  	for _, path := range fieldMask.Paths {
  8271  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationNetwork_FieldTerminalPath); ok {
  8272  			presentSelectors[int(asFinal.selector)] = true
  8273  		}
  8274  	}
  8275  	for _, flag := range presentSelectors {
  8276  		if !flag {
  8277  			return false
  8278  		}
  8279  	}
  8280  	return true
  8281  }
  8282  
  8283  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) ProtoReflect() preflect.Message {
  8284  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  8285  		return ParseDeviceStatusDeviceInfoHardwareInformationNetwork_FieldPath(raw)
  8286  	})
  8287  }
  8288  
  8289  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) ProtoMessage() {}
  8290  
  8291  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) Reset() {
  8292  	if fieldMask != nil {
  8293  		fieldMask.Paths = nil
  8294  	}
  8295  }
  8296  
  8297  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask {
  8298  	result := &Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask{}
  8299  	removedSelectors := make([]bool, 1)
  8300  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPathSelector]gotenobject.FieldMask{
  8301  		DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPathSelectorNics: &Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask{},
  8302  	}
  8303  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPathSelector]gotenobject.FieldMask{
  8304  		DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPathSelectorNics: &Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask{},
  8305  	}
  8306  
  8307  	for _, path := range other.GetPaths() {
  8308  		switch tp := path.(type) {
  8309  		case *DeviceStatusDeviceInfoHardwareInformationNetwork_FieldTerminalPath:
  8310  			removedSelectors[int(tp.selector)] = true
  8311  		case *DeviceStatusDeviceInfoHardwareInformationNetwork_FieldSubPath:
  8312  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  8313  		}
  8314  	}
  8315  	for _, path := range fieldMask.GetPaths() {
  8316  		if !removedSelectors[int(path.Selector())] {
  8317  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  8318  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationNetwork_FieldTerminalPath); ok {
  8319  					switch tp.selector {
  8320  					case DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPathSelectorNics:
  8321  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPathSelectorNics] = FullDevice_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask()
  8322  					}
  8323  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationNetwork_FieldSubPath); ok {
  8324  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  8325  				}
  8326  			} else {
  8327  				result.Paths = append(result.Paths, path)
  8328  			}
  8329  		}
  8330  	}
  8331  	for selector, mySubMask := range mySubMasks {
  8332  		if mySubMask.PathsCount() > 0 {
  8333  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  8334  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationNetwork_FieldSubPath{selector: selector, subPath: allowedPath})
  8335  			}
  8336  		}
  8337  	}
  8338  
  8339  	if len(result.Paths) == 0 {
  8340  		return nil
  8341  	}
  8342  	return result
  8343  }
  8344  
  8345  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  8346  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask))
  8347  }
  8348  
  8349  // FilterInputFields generates copy of field paths with output_only field paths removed
  8350  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask {
  8351  	result := &Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask{}
  8352  	result.Paths = append(result.Paths, fieldMask.Paths...)
  8353  	return result
  8354  }
  8355  
  8356  // ToFieldMask is used for proto conversions
  8357  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  8358  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  8359  	for _, path := range fieldMask.Paths {
  8360  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  8361  	}
  8362  	return protoFieldMask
  8363  }
  8364  
  8365  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  8366  	if fieldMask == nil {
  8367  		return status.Error(codes.Internal, "target field mask is nil")
  8368  	}
  8369  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPath, 0, len(protoFieldMask.Paths))
  8370  	for _, strPath := range protoFieldMask.Paths {
  8371  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationNetwork_FieldPath(strPath)
  8372  		if err != nil {
  8373  			return err
  8374  		}
  8375  		fieldMask.Paths = append(fieldMask.Paths, path)
  8376  	}
  8377  	return nil
  8378  }
  8379  
  8380  // implement methods required by customType
  8381  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) Marshal() ([]byte, error) {
  8382  	protoFieldMask := fieldMask.ToProtoFieldMask()
  8383  	return proto.Marshal(protoFieldMask)
  8384  }
  8385  
  8386  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) Unmarshal(data []byte) error {
  8387  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  8388  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  8389  		return err
  8390  	}
  8391  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  8392  		return err
  8393  	}
  8394  	return nil
  8395  }
  8396  
  8397  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) Size() int {
  8398  	return proto.Size(fieldMask.ToProtoFieldMask())
  8399  }
  8400  
  8401  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) MarshalJSON() ([]byte, error) {
  8402  	return json.Marshal(fieldMask.ToProtoFieldMask())
  8403  }
  8404  
  8405  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) UnmarshalJSON(data []byte) error {
  8406  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  8407  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  8408  		return err
  8409  	}
  8410  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  8411  		return err
  8412  	}
  8413  	return nil
  8414  }
  8415  
  8416  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPath) {
  8417  	fieldMask.Paths = append(fieldMask.Paths, path)
  8418  }
  8419  
  8420  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  8421  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPath))
  8422  }
  8423  
  8424  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPath {
  8425  	if fieldMask == nil {
  8426  		return nil
  8427  	}
  8428  	return fieldMask.Paths
  8429  }
  8430  
  8431  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  8432  	if fieldMask == nil {
  8433  		return nil
  8434  	}
  8435  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  8436  	for _, path := range fieldMask.Paths {
  8437  		rawPaths = append(rawPaths, path)
  8438  	}
  8439  	return rawPaths
  8440  }
  8441  
  8442  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) SetFromCliFlag(raw string) error {
  8443  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationNetwork_FieldPath(raw)
  8444  	if err != nil {
  8445  		return err
  8446  	}
  8447  	fieldMask.Paths = append(fieldMask.Paths, path)
  8448  	return nil
  8449  }
  8450  
  8451  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_Network) {
  8452  	for _, path := range fieldMask.Paths {
  8453  		val, _ := path.GetSingle(source)
  8454  		// if val is nil, then field does not exist in source, skip
  8455  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  8456  		if val != nil {
  8457  			path.WithIValue(val).SetTo(&target)
  8458  		}
  8459  	}
  8460  }
  8461  
  8462  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  8463  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_Network), source.(*Device_Status_DeviceInfo_HardwareInformation_Network))
  8464  }
  8465  
  8466  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_Network) *Device_Status_DeviceInfo_HardwareInformation_Network {
  8467  	if source == nil {
  8468  		return nil
  8469  	}
  8470  	if fieldMask == nil {
  8471  		return source
  8472  	}
  8473  	result := &Device_Status_DeviceInfo_HardwareInformation_Network{}
  8474  	nicsMask := &Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask{}
  8475  	wholeNicsAccepted := false
  8476  
  8477  	for _, p := range fieldMask.Paths {
  8478  		switch tp := p.(type) {
  8479  		case *DeviceStatusDeviceInfoHardwareInformationNetwork_FieldTerminalPath:
  8480  			switch tp.selector {
  8481  			case DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPathSelectorNics:
  8482  				result.Nics = source.Nics
  8483  				wholeNicsAccepted = true
  8484  			}
  8485  		case *DeviceStatusDeviceInfoHardwareInformationNetwork_FieldSubPath:
  8486  			switch tp.selector {
  8487  			case DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPathSelectorNics:
  8488  				nicsMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPath))
  8489  			}
  8490  		}
  8491  	}
  8492  	if wholeNicsAccepted == false && len(nicsMask.Paths) > 0 {
  8493  		for _, sourceItem := range source.GetNics() {
  8494  			result.Nics = append(result.Nics, nicsMask.Project(sourceItem))
  8495  		}
  8496  	}
  8497  	return result
  8498  }
  8499  
  8500  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  8501  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_Network))
  8502  }
  8503  
  8504  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask) PathsCount() int {
  8505  	if fieldMask == nil {
  8506  		return 0
  8507  	}
  8508  	return len(fieldMask.Paths)
  8509  }
  8510  
  8511  type Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask struct {
  8512  	Paths []DeviceStatusDeviceInfoHardwareInformationGPU_FieldPath
  8513  }
  8514  
  8515  func FullDevice_Status_DeviceInfo_HardwareInformation_GPU_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask {
  8516  	res := &Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask{}
  8517  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationGPU_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationGPU_FieldPathSelectorGraphicCards})
  8518  	return res
  8519  }
  8520  
  8521  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) String() string {
  8522  	if fieldMask == nil {
  8523  		return "<nil>"
  8524  	}
  8525  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  8526  	for _, path := range fieldMask.Paths {
  8527  		pathsStr = append(pathsStr, path.String())
  8528  	}
  8529  	return strings.Join(pathsStr, ", ")
  8530  }
  8531  
  8532  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) IsFull() bool {
  8533  	if fieldMask == nil {
  8534  		return false
  8535  	}
  8536  	presentSelectors := make([]bool, 1)
  8537  	for _, path := range fieldMask.Paths {
  8538  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationGPU_FieldTerminalPath); ok {
  8539  			presentSelectors[int(asFinal.selector)] = true
  8540  		}
  8541  	}
  8542  	for _, flag := range presentSelectors {
  8543  		if !flag {
  8544  			return false
  8545  		}
  8546  	}
  8547  	return true
  8548  }
  8549  
  8550  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) ProtoReflect() preflect.Message {
  8551  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  8552  		return ParseDeviceStatusDeviceInfoHardwareInformationGPU_FieldPath(raw)
  8553  	})
  8554  }
  8555  
  8556  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) ProtoMessage() {}
  8557  
  8558  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) Reset() {
  8559  	if fieldMask != nil {
  8560  		fieldMask.Paths = nil
  8561  	}
  8562  }
  8563  
  8564  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask {
  8565  	result := &Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask{}
  8566  	removedSelectors := make([]bool, 1)
  8567  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationGPU_FieldPathSelector]gotenobject.FieldMask{
  8568  		DeviceStatusDeviceInfoHardwareInformationGPU_FieldPathSelectorGraphicCards: &Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask{},
  8569  	}
  8570  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationGPU_FieldPathSelector]gotenobject.FieldMask{
  8571  		DeviceStatusDeviceInfoHardwareInformationGPU_FieldPathSelectorGraphicCards: &Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask{},
  8572  	}
  8573  
  8574  	for _, path := range other.GetPaths() {
  8575  		switch tp := path.(type) {
  8576  		case *DeviceStatusDeviceInfoHardwareInformationGPU_FieldTerminalPath:
  8577  			removedSelectors[int(tp.selector)] = true
  8578  		case *DeviceStatusDeviceInfoHardwareInformationGPU_FieldSubPath:
  8579  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  8580  		}
  8581  	}
  8582  	for _, path := range fieldMask.GetPaths() {
  8583  		if !removedSelectors[int(path.Selector())] {
  8584  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  8585  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationGPU_FieldTerminalPath); ok {
  8586  					switch tp.selector {
  8587  					case DeviceStatusDeviceInfoHardwareInformationGPU_FieldPathSelectorGraphicCards:
  8588  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationGPU_FieldPathSelectorGraphicCards] = FullDevice_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask()
  8589  					}
  8590  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationGPU_FieldSubPath); ok {
  8591  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  8592  				}
  8593  			} else {
  8594  				result.Paths = append(result.Paths, path)
  8595  			}
  8596  		}
  8597  	}
  8598  	for selector, mySubMask := range mySubMasks {
  8599  		if mySubMask.PathsCount() > 0 {
  8600  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  8601  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationGPU_FieldSubPath{selector: selector, subPath: allowedPath})
  8602  			}
  8603  		}
  8604  	}
  8605  
  8606  	if len(result.Paths) == 0 {
  8607  		return nil
  8608  	}
  8609  	return result
  8610  }
  8611  
  8612  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  8613  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask))
  8614  }
  8615  
  8616  // FilterInputFields generates copy of field paths with output_only field paths removed
  8617  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask {
  8618  	result := &Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask{}
  8619  	result.Paths = append(result.Paths, fieldMask.Paths...)
  8620  	return result
  8621  }
  8622  
  8623  // ToFieldMask is used for proto conversions
  8624  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  8625  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  8626  	for _, path := range fieldMask.Paths {
  8627  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  8628  	}
  8629  	return protoFieldMask
  8630  }
  8631  
  8632  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  8633  	if fieldMask == nil {
  8634  		return status.Error(codes.Internal, "target field mask is nil")
  8635  	}
  8636  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationGPU_FieldPath, 0, len(protoFieldMask.Paths))
  8637  	for _, strPath := range protoFieldMask.Paths {
  8638  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationGPU_FieldPath(strPath)
  8639  		if err != nil {
  8640  			return err
  8641  		}
  8642  		fieldMask.Paths = append(fieldMask.Paths, path)
  8643  	}
  8644  	return nil
  8645  }
  8646  
  8647  // implement methods required by customType
  8648  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) Marshal() ([]byte, error) {
  8649  	protoFieldMask := fieldMask.ToProtoFieldMask()
  8650  	return proto.Marshal(protoFieldMask)
  8651  }
  8652  
  8653  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) Unmarshal(data []byte) error {
  8654  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  8655  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  8656  		return err
  8657  	}
  8658  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  8659  		return err
  8660  	}
  8661  	return nil
  8662  }
  8663  
  8664  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) Size() int {
  8665  	return proto.Size(fieldMask.ToProtoFieldMask())
  8666  }
  8667  
  8668  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) MarshalJSON() ([]byte, error) {
  8669  	return json.Marshal(fieldMask.ToProtoFieldMask())
  8670  }
  8671  
  8672  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) UnmarshalJSON(data []byte) error {
  8673  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  8674  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  8675  		return err
  8676  	}
  8677  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  8678  		return err
  8679  	}
  8680  	return nil
  8681  }
  8682  
  8683  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationGPU_FieldPath) {
  8684  	fieldMask.Paths = append(fieldMask.Paths, path)
  8685  }
  8686  
  8687  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  8688  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationGPU_FieldPath))
  8689  }
  8690  
  8691  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationGPU_FieldPath {
  8692  	if fieldMask == nil {
  8693  		return nil
  8694  	}
  8695  	return fieldMask.Paths
  8696  }
  8697  
  8698  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  8699  	if fieldMask == nil {
  8700  		return nil
  8701  	}
  8702  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  8703  	for _, path := range fieldMask.Paths {
  8704  		rawPaths = append(rawPaths, path)
  8705  	}
  8706  	return rawPaths
  8707  }
  8708  
  8709  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) SetFromCliFlag(raw string) error {
  8710  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationGPU_FieldPath(raw)
  8711  	if err != nil {
  8712  		return err
  8713  	}
  8714  	fieldMask.Paths = append(fieldMask.Paths, path)
  8715  	return nil
  8716  }
  8717  
  8718  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_GPU) {
  8719  	for _, path := range fieldMask.Paths {
  8720  		val, _ := path.GetSingle(source)
  8721  		// if val is nil, then field does not exist in source, skip
  8722  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  8723  		if val != nil {
  8724  			path.WithIValue(val).SetTo(&target)
  8725  		}
  8726  	}
  8727  }
  8728  
  8729  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  8730  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_GPU), source.(*Device_Status_DeviceInfo_HardwareInformation_GPU))
  8731  }
  8732  
  8733  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_GPU) *Device_Status_DeviceInfo_HardwareInformation_GPU {
  8734  	if source == nil {
  8735  		return nil
  8736  	}
  8737  	if fieldMask == nil {
  8738  		return source
  8739  	}
  8740  	result := &Device_Status_DeviceInfo_HardwareInformation_GPU{}
  8741  	graphicCardsMask := &Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask{}
  8742  	wholeGraphicCardsAccepted := false
  8743  
  8744  	for _, p := range fieldMask.Paths {
  8745  		switch tp := p.(type) {
  8746  		case *DeviceStatusDeviceInfoHardwareInformationGPU_FieldTerminalPath:
  8747  			switch tp.selector {
  8748  			case DeviceStatusDeviceInfoHardwareInformationGPU_FieldPathSelectorGraphicCards:
  8749  				result.GraphicCards = source.GraphicCards
  8750  				wholeGraphicCardsAccepted = true
  8751  			}
  8752  		case *DeviceStatusDeviceInfoHardwareInformationGPU_FieldSubPath:
  8753  			switch tp.selector {
  8754  			case DeviceStatusDeviceInfoHardwareInformationGPU_FieldPathSelectorGraphicCards:
  8755  				graphicCardsMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPath))
  8756  			}
  8757  		}
  8758  	}
  8759  	if wholeGraphicCardsAccepted == false && len(graphicCardsMask.Paths) > 0 {
  8760  		for _, sourceItem := range source.GetGraphicCards() {
  8761  			result.GraphicCards = append(result.GraphicCards, graphicCardsMask.Project(sourceItem))
  8762  		}
  8763  	}
  8764  	return result
  8765  }
  8766  
  8767  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  8768  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_GPU))
  8769  }
  8770  
  8771  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask) PathsCount() int {
  8772  	if fieldMask == nil {
  8773  		return 0
  8774  	}
  8775  	return len(fieldMask.Paths)
  8776  }
  8777  
  8778  type Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask struct {
  8779  	Paths []DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPath
  8780  }
  8781  
  8782  func FullDevice_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask {
  8783  	res := &Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask{}
  8784  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorAddress})
  8785  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorVendor})
  8786  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorProduct})
  8787  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorName})
  8788  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorSubvendor})
  8789  	return res
  8790  }
  8791  
  8792  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) String() string {
  8793  	if fieldMask == nil {
  8794  		return "<nil>"
  8795  	}
  8796  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  8797  	for _, path := range fieldMask.Paths {
  8798  		pathsStr = append(pathsStr, path.String())
  8799  	}
  8800  	return strings.Join(pathsStr, ", ")
  8801  }
  8802  
  8803  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) IsFull() bool {
  8804  	if fieldMask == nil {
  8805  		return false
  8806  	}
  8807  	presentSelectors := make([]bool, 5)
  8808  	for _, path := range fieldMask.Paths {
  8809  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldTerminalPath); ok {
  8810  			presentSelectors[int(asFinal.selector)] = true
  8811  		}
  8812  	}
  8813  	for _, flag := range presentSelectors {
  8814  		if !flag {
  8815  			return false
  8816  		}
  8817  	}
  8818  	return true
  8819  }
  8820  
  8821  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) ProtoReflect() preflect.Message {
  8822  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  8823  		return ParseDeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPath(raw)
  8824  	})
  8825  }
  8826  
  8827  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) ProtoMessage() {}
  8828  
  8829  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) Reset() {
  8830  	if fieldMask != nil {
  8831  		fieldMask.Paths = nil
  8832  	}
  8833  }
  8834  
  8835  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask {
  8836  	result := &Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask{}
  8837  	removedSelectors := make([]bool, 5)
  8838  
  8839  	for _, path := range other.GetPaths() {
  8840  		switch tp := path.(type) {
  8841  		case *DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldTerminalPath:
  8842  			removedSelectors[int(tp.selector)] = true
  8843  		}
  8844  	}
  8845  	for _, path := range fieldMask.GetPaths() {
  8846  		if !removedSelectors[int(path.Selector())] {
  8847  			result.Paths = append(result.Paths, path)
  8848  		}
  8849  	}
  8850  
  8851  	if len(result.Paths) == 0 {
  8852  		return nil
  8853  	}
  8854  	return result
  8855  }
  8856  
  8857  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  8858  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask))
  8859  }
  8860  
  8861  // FilterInputFields generates copy of field paths with output_only field paths removed
  8862  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask {
  8863  	result := &Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask{}
  8864  	result.Paths = append(result.Paths, fieldMask.Paths...)
  8865  	return result
  8866  }
  8867  
  8868  // ToFieldMask is used for proto conversions
  8869  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  8870  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  8871  	for _, path := range fieldMask.Paths {
  8872  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  8873  	}
  8874  	return protoFieldMask
  8875  }
  8876  
  8877  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  8878  	if fieldMask == nil {
  8879  		return status.Error(codes.Internal, "target field mask is nil")
  8880  	}
  8881  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPath, 0, len(protoFieldMask.Paths))
  8882  	for _, strPath := range protoFieldMask.Paths {
  8883  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPath(strPath)
  8884  		if err != nil {
  8885  			return err
  8886  		}
  8887  		fieldMask.Paths = append(fieldMask.Paths, path)
  8888  	}
  8889  	return nil
  8890  }
  8891  
  8892  // implement methods required by customType
  8893  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) Marshal() ([]byte, error) {
  8894  	protoFieldMask := fieldMask.ToProtoFieldMask()
  8895  	return proto.Marshal(protoFieldMask)
  8896  }
  8897  
  8898  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) Unmarshal(data []byte) error {
  8899  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  8900  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  8901  		return err
  8902  	}
  8903  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  8904  		return err
  8905  	}
  8906  	return nil
  8907  }
  8908  
  8909  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) Size() int {
  8910  	return proto.Size(fieldMask.ToProtoFieldMask())
  8911  }
  8912  
  8913  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) MarshalJSON() ([]byte, error) {
  8914  	return json.Marshal(fieldMask.ToProtoFieldMask())
  8915  }
  8916  
  8917  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) UnmarshalJSON(data []byte) error {
  8918  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  8919  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  8920  		return err
  8921  	}
  8922  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  8923  		return err
  8924  	}
  8925  	return nil
  8926  }
  8927  
  8928  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPath) {
  8929  	fieldMask.Paths = append(fieldMask.Paths, path)
  8930  }
  8931  
  8932  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  8933  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPath))
  8934  }
  8935  
  8936  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPath {
  8937  	if fieldMask == nil {
  8938  		return nil
  8939  	}
  8940  	return fieldMask.Paths
  8941  }
  8942  
  8943  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  8944  	if fieldMask == nil {
  8945  		return nil
  8946  	}
  8947  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  8948  	for _, path := range fieldMask.Paths {
  8949  		rawPaths = append(rawPaths, path)
  8950  	}
  8951  	return rawPaths
  8952  }
  8953  
  8954  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) SetFromCliFlag(raw string) error {
  8955  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPath(raw)
  8956  	if err != nil {
  8957  		return err
  8958  	}
  8959  	fieldMask.Paths = append(fieldMask.Paths, path)
  8960  	return nil
  8961  }
  8962  
  8963  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_PCIDevice) {
  8964  	for _, path := range fieldMask.Paths {
  8965  		val, _ := path.GetSingle(source)
  8966  		// if val is nil, then field does not exist in source, skip
  8967  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  8968  		if val != nil {
  8969  			path.WithIValue(val).SetTo(&target)
  8970  		}
  8971  	}
  8972  }
  8973  
  8974  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  8975  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_PCIDevice), source.(*Device_Status_DeviceInfo_HardwareInformation_PCIDevice))
  8976  }
  8977  
  8978  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_PCIDevice) *Device_Status_DeviceInfo_HardwareInformation_PCIDevice {
  8979  	if source == nil {
  8980  		return nil
  8981  	}
  8982  	if fieldMask == nil {
  8983  		return source
  8984  	}
  8985  	result := &Device_Status_DeviceInfo_HardwareInformation_PCIDevice{}
  8986  
  8987  	for _, p := range fieldMask.Paths {
  8988  		switch tp := p.(type) {
  8989  		case *DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldTerminalPath:
  8990  			switch tp.selector {
  8991  			case DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorAddress:
  8992  				result.Address = source.Address
  8993  			case DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorVendor:
  8994  				result.Vendor = source.Vendor
  8995  			case DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorProduct:
  8996  				result.Product = source.Product
  8997  			case DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorName:
  8998  				result.Name = source.Name
  8999  			case DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorSubvendor:
  9000  				result.Subvendor = source.Subvendor
  9001  			}
  9002  		}
  9003  	}
  9004  	return result
  9005  }
  9006  
  9007  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  9008  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_PCIDevice))
  9009  }
  9010  
  9011  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask) PathsCount() int {
  9012  	if fieldMask == nil {
  9013  		return 0
  9014  	}
  9015  	return len(fieldMask.Paths)
  9016  }
  9017  
  9018  type Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask struct {
  9019  	Paths []DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPath
  9020  }
  9021  
  9022  func FullDevice_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask {
  9023  	res := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask{}
  9024  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorDescription})
  9025  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorSizeBytes})
  9026  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorMemoryBanks})
  9027  	return res
  9028  }
  9029  
  9030  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) String() string {
  9031  	if fieldMask == nil {
  9032  		return "<nil>"
  9033  	}
  9034  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  9035  	for _, path := range fieldMask.Paths {
  9036  		pathsStr = append(pathsStr, path.String())
  9037  	}
  9038  	return strings.Join(pathsStr, ", ")
  9039  }
  9040  
  9041  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) IsFull() bool {
  9042  	if fieldMask == nil {
  9043  		return false
  9044  	}
  9045  	presentSelectors := make([]bool, 3)
  9046  	for _, path := range fieldMask.Paths {
  9047  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldTerminalPath); ok {
  9048  			presentSelectors[int(asFinal.selector)] = true
  9049  		}
  9050  	}
  9051  	for _, flag := range presentSelectors {
  9052  		if !flag {
  9053  			return false
  9054  		}
  9055  	}
  9056  	return true
  9057  }
  9058  
  9059  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) ProtoReflect() preflect.Message {
  9060  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  9061  		return ParseDeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPath(raw)
  9062  	})
  9063  }
  9064  
  9065  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) ProtoMessage() {}
  9066  
  9067  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) Reset() {
  9068  	if fieldMask != nil {
  9069  		fieldMask.Paths = nil
  9070  	}
  9071  }
  9072  
  9073  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask {
  9074  	result := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask{}
  9075  	removedSelectors := make([]bool, 3)
  9076  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelector]gotenobject.FieldMask{
  9077  		DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorMemoryBanks: &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask{},
  9078  	}
  9079  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelector]gotenobject.FieldMask{
  9080  		DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorMemoryBanks: &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask{},
  9081  	}
  9082  
  9083  	for _, path := range other.GetPaths() {
  9084  		switch tp := path.(type) {
  9085  		case *DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldTerminalPath:
  9086  			removedSelectors[int(tp.selector)] = true
  9087  		case *DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldSubPath:
  9088  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  9089  		}
  9090  	}
  9091  	for _, path := range fieldMask.GetPaths() {
  9092  		if !removedSelectors[int(path.Selector())] {
  9093  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  9094  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldTerminalPath); ok {
  9095  					switch tp.selector {
  9096  					case DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorMemoryBanks:
  9097  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorMemoryBanks] = FullDevice_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask()
  9098  					}
  9099  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldSubPath); ok {
  9100  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  9101  				}
  9102  			} else {
  9103  				result.Paths = append(result.Paths, path)
  9104  			}
  9105  		}
  9106  	}
  9107  	for selector, mySubMask := range mySubMasks {
  9108  		if mySubMask.PathsCount() > 0 {
  9109  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  9110  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldSubPath{selector: selector, subPath: allowedPath})
  9111  			}
  9112  		}
  9113  	}
  9114  
  9115  	if len(result.Paths) == 0 {
  9116  		return nil
  9117  	}
  9118  	return result
  9119  }
  9120  
  9121  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  9122  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask))
  9123  }
  9124  
  9125  // FilterInputFields generates copy of field paths with output_only field paths removed
  9126  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask {
  9127  	result := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask{}
  9128  	result.Paths = append(result.Paths, fieldMask.Paths...)
  9129  	return result
  9130  }
  9131  
  9132  // ToFieldMask is used for proto conversions
  9133  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  9134  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  9135  	for _, path := range fieldMask.Paths {
  9136  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  9137  	}
  9138  	return protoFieldMask
  9139  }
  9140  
  9141  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  9142  	if fieldMask == nil {
  9143  		return status.Error(codes.Internal, "target field mask is nil")
  9144  	}
  9145  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPath, 0, len(protoFieldMask.Paths))
  9146  	for _, strPath := range protoFieldMask.Paths {
  9147  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPath(strPath)
  9148  		if err != nil {
  9149  			return err
  9150  		}
  9151  		fieldMask.Paths = append(fieldMask.Paths, path)
  9152  	}
  9153  	return nil
  9154  }
  9155  
  9156  // implement methods required by customType
  9157  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) Marshal() ([]byte, error) {
  9158  	protoFieldMask := fieldMask.ToProtoFieldMask()
  9159  	return proto.Marshal(protoFieldMask)
  9160  }
  9161  
  9162  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) Unmarshal(data []byte) error {
  9163  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  9164  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  9165  		return err
  9166  	}
  9167  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  9168  		return err
  9169  	}
  9170  	return nil
  9171  }
  9172  
  9173  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) Size() int {
  9174  	return proto.Size(fieldMask.ToProtoFieldMask())
  9175  }
  9176  
  9177  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) MarshalJSON() ([]byte, error) {
  9178  	return json.Marshal(fieldMask.ToProtoFieldMask())
  9179  }
  9180  
  9181  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) UnmarshalJSON(data []byte) error {
  9182  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  9183  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  9184  		return err
  9185  	}
  9186  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  9187  		return err
  9188  	}
  9189  	return nil
  9190  }
  9191  
  9192  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPath) {
  9193  	fieldMask.Paths = append(fieldMask.Paths, path)
  9194  }
  9195  
  9196  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  9197  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPath))
  9198  }
  9199  
  9200  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPath {
  9201  	if fieldMask == nil {
  9202  		return nil
  9203  	}
  9204  	return fieldMask.Paths
  9205  }
  9206  
  9207  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  9208  	if fieldMask == nil {
  9209  		return nil
  9210  	}
  9211  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  9212  	for _, path := range fieldMask.Paths {
  9213  		rawPaths = append(rawPaths, path)
  9214  	}
  9215  	return rawPaths
  9216  }
  9217  
  9218  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) SetFromCliFlag(raw string) error {
  9219  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPath(raw)
  9220  	if err != nil {
  9221  		return err
  9222  	}
  9223  	fieldMask.Paths = append(fieldMask.Paths, path)
  9224  	return nil
  9225  }
  9226  
  9227  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo) {
  9228  	for _, path := range fieldMask.Paths {
  9229  		val, _ := path.GetSingle(source)
  9230  		// if val is nil, then field does not exist in source, skip
  9231  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  9232  		if val != nil {
  9233  			path.WithIValue(val).SetTo(&target)
  9234  		}
  9235  	}
  9236  }
  9237  
  9238  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  9239  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_MemoryInfo), source.(*Device_Status_DeviceInfo_HardwareInformation_MemoryInfo))
  9240  }
  9241  
  9242  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo) *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo {
  9243  	if source == nil {
  9244  		return nil
  9245  	}
  9246  	if fieldMask == nil {
  9247  		return source
  9248  	}
  9249  	result := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo{}
  9250  	memoryBanksMask := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask{}
  9251  	wholeMemoryBanksAccepted := false
  9252  
  9253  	for _, p := range fieldMask.Paths {
  9254  		switch tp := p.(type) {
  9255  		case *DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldTerminalPath:
  9256  			switch tp.selector {
  9257  			case DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorDescription:
  9258  				result.Description = source.Description
  9259  			case DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorSizeBytes:
  9260  				result.SizeBytes = source.SizeBytes
  9261  			case DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorMemoryBanks:
  9262  				result.MemoryBanks = source.MemoryBanks
  9263  				wholeMemoryBanksAccepted = true
  9264  			}
  9265  		case *DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldSubPath:
  9266  			switch tp.selector {
  9267  			case DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorMemoryBanks:
  9268  				memoryBanksMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPath))
  9269  			}
  9270  		}
  9271  	}
  9272  	if wholeMemoryBanksAccepted == false && len(memoryBanksMask.Paths) > 0 {
  9273  		for _, sourceItem := range source.GetMemoryBanks() {
  9274  			result.MemoryBanks = append(result.MemoryBanks, memoryBanksMask.Project(sourceItem))
  9275  		}
  9276  	}
  9277  	return result
  9278  }
  9279  
  9280  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  9281  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_MemoryInfo))
  9282  }
  9283  
  9284  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask) PathsCount() int {
  9285  	if fieldMask == nil {
  9286  		return 0
  9287  	}
  9288  	return len(fieldMask.Paths)
  9289  }
  9290  
  9291  type Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask struct {
  9292  	Paths []DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPath
  9293  }
  9294  
  9295  func FullDevice_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask {
  9296  	res := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask{}
  9297  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorStatus})
  9298  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorCliVersion})
  9299  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorModules})
  9300  	return res
  9301  }
  9302  
  9303  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) String() string {
  9304  	if fieldMask == nil {
  9305  		return "<nil>"
  9306  	}
  9307  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  9308  	for _, path := range fieldMask.Paths {
  9309  		pathsStr = append(pathsStr, path.String())
  9310  	}
  9311  	return strings.Join(pathsStr, ", ")
  9312  }
  9313  
  9314  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) IsFull() bool {
  9315  	if fieldMask == nil {
  9316  		return false
  9317  	}
  9318  	presentSelectors := make([]bool, 3)
  9319  	for _, path := range fieldMask.Paths {
  9320  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldTerminalPath); ok {
  9321  			presentSelectors[int(asFinal.selector)] = true
  9322  		}
  9323  	}
  9324  	for _, flag := range presentSelectors {
  9325  		if !flag {
  9326  			return false
  9327  		}
  9328  	}
  9329  	return true
  9330  }
  9331  
  9332  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) ProtoReflect() preflect.Message {
  9333  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  9334  		return ParseDeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPath(raw)
  9335  	})
  9336  }
  9337  
  9338  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) ProtoMessage() {}
  9339  
  9340  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) Reset() {
  9341  	if fieldMask != nil {
  9342  		fieldMask.Paths = nil
  9343  	}
  9344  }
  9345  
  9346  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask {
  9347  	result := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask{}
  9348  	removedSelectors := make([]bool, 3)
  9349  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelector]gotenobject.FieldMask{
  9350  		DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorModules: &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask{},
  9351  	}
  9352  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelector]gotenobject.FieldMask{
  9353  		DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorModules: &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask{},
  9354  	}
  9355  
  9356  	for _, path := range other.GetPaths() {
  9357  		switch tp := path.(type) {
  9358  		case *DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldTerminalPath:
  9359  			removedSelectors[int(tp.selector)] = true
  9360  		case *DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldSubPath:
  9361  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  9362  		}
  9363  	}
  9364  	for _, path := range fieldMask.GetPaths() {
  9365  		if !removedSelectors[int(path.Selector())] {
  9366  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  9367  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldTerminalPath); ok {
  9368  					switch tp.selector {
  9369  					case DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorModules:
  9370  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorModules] = FullDevice_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask()
  9371  					}
  9372  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldSubPath); ok {
  9373  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  9374  				}
  9375  			} else {
  9376  				result.Paths = append(result.Paths, path)
  9377  			}
  9378  		}
  9379  	}
  9380  	for selector, mySubMask := range mySubMasks {
  9381  		if mySubMask.PathsCount() > 0 {
  9382  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  9383  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldSubPath{selector: selector, subPath: allowedPath})
  9384  			}
  9385  		}
  9386  	}
  9387  
  9388  	if len(result.Paths) == 0 {
  9389  		return nil
  9390  	}
  9391  	return result
  9392  }
  9393  
  9394  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  9395  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask))
  9396  }
  9397  
  9398  // FilterInputFields generates copy of field paths with output_only field paths removed
  9399  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask {
  9400  	result := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask{}
  9401  	result.Paths = append(result.Paths, fieldMask.Paths...)
  9402  	return result
  9403  }
  9404  
  9405  // ToFieldMask is used for proto conversions
  9406  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  9407  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  9408  	for _, path := range fieldMask.Paths {
  9409  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  9410  	}
  9411  	return protoFieldMask
  9412  }
  9413  
  9414  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  9415  	if fieldMask == nil {
  9416  		return status.Error(codes.Internal, "target field mask is nil")
  9417  	}
  9418  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPath, 0, len(protoFieldMask.Paths))
  9419  	for _, strPath := range protoFieldMask.Paths {
  9420  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPath(strPath)
  9421  		if err != nil {
  9422  			return err
  9423  		}
  9424  		fieldMask.Paths = append(fieldMask.Paths, path)
  9425  	}
  9426  	return nil
  9427  }
  9428  
  9429  // implement methods required by customType
  9430  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) Marshal() ([]byte, error) {
  9431  	protoFieldMask := fieldMask.ToProtoFieldMask()
  9432  	return proto.Marshal(protoFieldMask)
  9433  }
  9434  
  9435  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) Unmarshal(data []byte) error {
  9436  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  9437  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  9438  		return err
  9439  	}
  9440  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  9441  		return err
  9442  	}
  9443  	return nil
  9444  }
  9445  
  9446  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) Size() int {
  9447  	return proto.Size(fieldMask.ToProtoFieldMask())
  9448  }
  9449  
  9450  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) MarshalJSON() ([]byte, error) {
  9451  	return json.Marshal(fieldMask.ToProtoFieldMask())
  9452  }
  9453  
  9454  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) UnmarshalJSON(data []byte) error {
  9455  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  9456  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  9457  		return err
  9458  	}
  9459  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  9460  		return err
  9461  	}
  9462  	return nil
  9463  }
  9464  
  9465  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPath) {
  9466  	fieldMask.Paths = append(fieldMask.Paths, path)
  9467  }
  9468  
  9469  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  9470  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPath))
  9471  }
  9472  
  9473  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPath {
  9474  	if fieldMask == nil {
  9475  		return nil
  9476  	}
  9477  	return fieldMask.Paths
  9478  }
  9479  
  9480  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  9481  	if fieldMask == nil {
  9482  		return nil
  9483  	}
  9484  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  9485  	for _, path := range fieldMask.Paths {
  9486  		rawPaths = append(rawPaths, path)
  9487  	}
  9488  	return rawPaths
  9489  }
  9490  
  9491  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) SetFromCliFlag(raw string) error {
  9492  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPath(raw)
  9493  	if err != nil {
  9494  		return err
  9495  	}
  9496  	fieldMask.Paths = append(fieldMask.Paths, path)
  9497  	return nil
  9498  }
  9499  
  9500  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_HailoInfo) {
  9501  	for _, path := range fieldMask.Paths {
  9502  		val, _ := path.GetSingle(source)
  9503  		// if val is nil, then field does not exist in source, skip
  9504  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  9505  		if val != nil {
  9506  			path.WithIValue(val).SetTo(&target)
  9507  		}
  9508  	}
  9509  }
  9510  
  9511  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  9512  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_HailoInfo), source.(*Device_Status_DeviceInfo_HardwareInformation_HailoInfo))
  9513  }
  9514  
  9515  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_HailoInfo) *Device_Status_DeviceInfo_HardwareInformation_HailoInfo {
  9516  	if source == nil {
  9517  		return nil
  9518  	}
  9519  	if fieldMask == nil {
  9520  		return source
  9521  	}
  9522  	result := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo{}
  9523  	modulesMask := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask{}
  9524  	wholeModulesAccepted := false
  9525  
  9526  	for _, p := range fieldMask.Paths {
  9527  		switch tp := p.(type) {
  9528  		case *DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldTerminalPath:
  9529  			switch tp.selector {
  9530  			case DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorStatus:
  9531  				result.Status = source.Status
  9532  			case DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorCliVersion:
  9533  				result.CliVersion = source.CliVersion
  9534  			case DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorModules:
  9535  				result.Modules = source.Modules
  9536  				wholeModulesAccepted = true
  9537  			}
  9538  		case *DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldSubPath:
  9539  			switch tp.selector {
  9540  			case DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorModules:
  9541  				modulesMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPath))
  9542  			}
  9543  		}
  9544  	}
  9545  	if wholeModulesAccepted == false && len(modulesMask.Paths) > 0 {
  9546  		for _, sourceItem := range source.GetModules() {
  9547  			result.Modules = append(result.Modules, modulesMask.Project(sourceItem))
  9548  		}
  9549  	}
  9550  	return result
  9551  }
  9552  
  9553  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  9554  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_HailoInfo))
  9555  }
  9556  
  9557  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask) PathsCount() int {
  9558  	if fieldMask == nil {
  9559  		return 0
  9560  	}
  9561  	return len(fieldMask.Paths)
  9562  }
  9563  
  9564  type Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask struct {
  9565  	Paths []DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPath
  9566  }
  9567  
  9568  func FullDevice_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask {
  9569  	res := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask{}
  9570  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorStatus})
  9571  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorDriverVersion})
  9572  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorCudaVersion})
  9573  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorGpus})
  9574  	return res
  9575  }
  9576  
  9577  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) String() string {
  9578  	if fieldMask == nil {
  9579  		return "<nil>"
  9580  	}
  9581  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  9582  	for _, path := range fieldMask.Paths {
  9583  		pathsStr = append(pathsStr, path.String())
  9584  	}
  9585  	return strings.Join(pathsStr, ", ")
  9586  }
  9587  
  9588  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) IsFull() bool {
  9589  	if fieldMask == nil {
  9590  		return false
  9591  	}
  9592  	presentSelectors := make([]bool, 4)
  9593  	for _, path := range fieldMask.Paths {
  9594  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldTerminalPath); ok {
  9595  			presentSelectors[int(asFinal.selector)] = true
  9596  		}
  9597  	}
  9598  	for _, flag := range presentSelectors {
  9599  		if !flag {
  9600  			return false
  9601  		}
  9602  	}
  9603  	return true
  9604  }
  9605  
  9606  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) ProtoReflect() preflect.Message {
  9607  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  9608  		return ParseDeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPath(raw)
  9609  	})
  9610  }
  9611  
  9612  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) ProtoMessage() {}
  9613  
  9614  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) Reset() {
  9615  	if fieldMask != nil {
  9616  		fieldMask.Paths = nil
  9617  	}
  9618  }
  9619  
  9620  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask {
  9621  	result := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask{}
  9622  	removedSelectors := make([]bool, 4)
  9623  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelector]gotenobject.FieldMask{
  9624  		DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorGpus: &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask{},
  9625  	}
  9626  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelector]gotenobject.FieldMask{
  9627  		DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorGpus: &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask{},
  9628  	}
  9629  
  9630  	for _, path := range other.GetPaths() {
  9631  		switch tp := path.(type) {
  9632  		case *DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldTerminalPath:
  9633  			removedSelectors[int(tp.selector)] = true
  9634  		case *DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldSubPath:
  9635  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  9636  		}
  9637  	}
  9638  	for _, path := range fieldMask.GetPaths() {
  9639  		if !removedSelectors[int(path.Selector())] {
  9640  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  9641  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldTerminalPath); ok {
  9642  					switch tp.selector {
  9643  					case DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorGpus:
  9644  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorGpus] = FullDevice_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask()
  9645  					}
  9646  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldSubPath); ok {
  9647  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  9648  				}
  9649  			} else {
  9650  				result.Paths = append(result.Paths, path)
  9651  			}
  9652  		}
  9653  	}
  9654  	for selector, mySubMask := range mySubMasks {
  9655  		if mySubMask.PathsCount() > 0 {
  9656  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  9657  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldSubPath{selector: selector, subPath: allowedPath})
  9658  			}
  9659  		}
  9660  	}
  9661  
  9662  	if len(result.Paths) == 0 {
  9663  		return nil
  9664  	}
  9665  	return result
  9666  }
  9667  
  9668  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  9669  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask))
  9670  }
  9671  
  9672  // FilterInputFields generates copy of field paths with output_only field paths removed
  9673  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask {
  9674  	result := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask{}
  9675  	result.Paths = append(result.Paths, fieldMask.Paths...)
  9676  	return result
  9677  }
  9678  
  9679  // ToFieldMask is used for proto conversions
  9680  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  9681  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  9682  	for _, path := range fieldMask.Paths {
  9683  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  9684  	}
  9685  	return protoFieldMask
  9686  }
  9687  
  9688  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  9689  	if fieldMask == nil {
  9690  		return status.Error(codes.Internal, "target field mask is nil")
  9691  	}
  9692  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPath, 0, len(protoFieldMask.Paths))
  9693  	for _, strPath := range protoFieldMask.Paths {
  9694  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPath(strPath)
  9695  		if err != nil {
  9696  			return err
  9697  		}
  9698  		fieldMask.Paths = append(fieldMask.Paths, path)
  9699  	}
  9700  	return nil
  9701  }
  9702  
  9703  // implement methods required by customType
  9704  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) Marshal() ([]byte, error) {
  9705  	protoFieldMask := fieldMask.ToProtoFieldMask()
  9706  	return proto.Marshal(protoFieldMask)
  9707  }
  9708  
  9709  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) Unmarshal(data []byte) error {
  9710  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  9711  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  9712  		return err
  9713  	}
  9714  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  9715  		return err
  9716  	}
  9717  	return nil
  9718  }
  9719  
  9720  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) Size() int {
  9721  	return proto.Size(fieldMask.ToProtoFieldMask())
  9722  }
  9723  
  9724  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) MarshalJSON() ([]byte, error) {
  9725  	return json.Marshal(fieldMask.ToProtoFieldMask())
  9726  }
  9727  
  9728  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) UnmarshalJSON(data []byte) error {
  9729  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  9730  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  9731  		return err
  9732  	}
  9733  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  9734  		return err
  9735  	}
  9736  	return nil
  9737  }
  9738  
  9739  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPath) {
  9740  	fieldMask.Paths = append(fieldMask.Paths, path)
  9741  }
  9742  
  9743  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  9744  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPath))
  9745  }
  9746  
  9747  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPath {
  9748  	if fieldMask == nil {
  9749  		return nil
  9750  	}
  9751  	return fieldMask.Paths
  9752  }
  9753  
  9754  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  9755  	if fieldMask == nil {
  9756  		return nil
  9757  	}
  9758  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  9759  	for _, path := range fieldMask.Paths {
  9760  		rawPaths = append(rawPaths, path)
  9761  	}
  9762  	return rawPaths
  9763  }
  9764  
  9765  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) SetFromCliFlag(raw string) error {
  9766  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPath(raw)
  9767  	if err != nil {
  9768  		return err
  9769  	}
  9770  	fieldMask.Paths = append(fieldMask.Paths, path)
  9771  	return nil
  9772  }
  9773  
  9774  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo) {
  9775  	for _, path := range fieldMask.Paths {
  9776  		val, _ := path.GetSingle(source)
  9777  		// if val is nil, then field does not exist in source, skip
  9778  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  9779  		if val != nil {
  9780  			path.WithIValue(val).SetTo(&target)
  9781  		}
  9782  	}
  9783  }
  9784  
  9785  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  9786  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo), source.(*Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo))
  9787  }
  9788  
  9789  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo) *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo {
  9790  	if source == nil {
  9791  		return nil
  9792  	}
  9793  	if fieldMask == nil {
  9794  		return source
  9795  	}
  9796  	result := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo{}
  9797  	gpusMask := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask{}
  9798  	wholeGpusAccepted := false
  9799  
  9800  	for _, p := range fieldMask.Paths {
  9801  		switch tp := p.(type) {
  9802  		case *DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldTerminalPath:
  9803  			switch tp.selector {
  9804  			case DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorStatus:
  9805  				result.Status = source.Status
  9806  			case DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorDriverVersion:
  9807  				result.DriverVersion = source.DriverVersion
  9808  			case DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorCudaVersion:
  9809  				result.CudaVersion = source.CudaVersion
  9810  			case DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorGpus:
  9811  				result.Gpus = source.Gpus
  9812  				wholeGpusAccepted = true
  9813  			}
  9814  		case *DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldSubPath:
  9815  			switch tp.selector {
  9816  			case DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorGpus:
  9817  				gpusMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPath))
  9818  			}
  9819  		}
  9820  	}
  9821  	if wholeGpusAccepted == false && len(gpusMask.Paths) > 0 {
  9822  		for _, sourceItem := range source.GetGpus() {
  9823  			result.Gpus = append(result.Gpus, gpusMask.Project(sourceItem))
  9824  		}
  9825  	}
  9826  	return result
  9827  }
  9828  
  9829  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  9830  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo))
  9831  }
  9832  
  9833  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask) PathsCount() int {
  9834  	if fieldMask == nil {
  9835  		return 0
  9836  	}
  9837  	return len(fieldMask.Paths)
  9838  }
  9839  
  9840  type Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask struct {
  9841  	Paths []DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPath
  9842  }
  9843  
  9844  func FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask {
  9845  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask{}
  9846  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPathSelectorModem})
  9847  	return res
  9848  }
  9849  
  9850  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) String() string {
  9851  	if fieldMask == nil {
  9852  		return "<nil>"
  9853  	}
  9854  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  9855  	for _, path := range fieldMask.Paths {
  9856  		pathsStr = append(pathsStr, path.String())
  9857  	}
  9858  	return strings.Join(pathsStr, ", ")
  9859  }
  9860  
  9861  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) IsFull() bool {
  9862  	if fieldMask == nil {
  9863  		return false
  9864  	}
  9865  	presentSelectors := make([]bool, 1)
  9866  	for _, path := range fieldMask.Paths {
  9867  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldTerminalPath); ok {
  9868  			presentSelectors[int(asFinal.selector)] = true
  9869  		}
  9870  	}
  9871  	for _, flag := range presentSelectors {
  9872  		if !flag {
  9873  			return false
  9874  		}
  9875  	}
  9876  	return true
  9877  }
  9878  
  9879  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) ProtoReflect() preflect.Message {
  9880  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  9881  		return ParseDeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPath(raw)
  9882  	})
  9883  }
  9884  
  9885  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) ProtoMessage() {}
  9886  
  9887  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) Reset() {
  9888  	if fieldMask != nil {
  9889  		fieldMask.Paths = nil
  9890  	}
  9891  }
  9892  
  9893  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask {
  9894  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask{}
  9895  	removedSelectors := make([]bool, 1)
  9896  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPathSelector]gotenobject.FieldMask{
  9897  		DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPathSelectorModem: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask{},
  9898  	}
  9899  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPathSelector]gotenobject.FieldMask{
  9900  		DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPathSelectorModem: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask{},
  9901  	}
  9902  
  9903  	for _, path := range other.GetPaths() {
  9904  		switch tp := path.(type) {
  9905  		case *DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldTerminalPath:
  9906  			removedSelectors[int(tp.selector)] = true
  9907  		case *DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldSubPath:
  9908  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
  9909  		}
  9910  	}
  9911  	for _, path := range fieldMask.GetPaths() {
  9912  		if !removedSelectors[int(path.Selector())] {
  9913  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
  9914  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldTerminalPath); ok {
  9915  					switch tp.selector {
  9916  					case DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPathSelectorModem:
  9917  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPathSelectorModem] = FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask()
  9918  					}
  9919  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldSubPath); ok {
  9920  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
  9921  				}
  9922  			} else {
  9923  				result.Paths = append(result.Paths, path)
  9924  			}
  9925  		}
  9926  	}
  9927  	for selector, mySubMask := range mySubMasks {
  9928  		if mySubMask.PathsCount() > 0 {
  9929  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
  9930  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldSubPath{selector: selector, subPath: allowedPath})
  9931  			}
  9932  		}
  9933  	}
  9934  
  9935  	if len(result.Paths) == 0 {
  9936  		return nil
  9937  	}
  9938  	return result
  9939  }
  9940  
  9941  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  9942  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask))
  9943  }
  9944  
  9945  // FilterInputFields generates copy of field paths with output_only field paths removed
  9946  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask {
  9947  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask{}
  9948  	result.Paths = append(result.Paths, fieldMask.Paths...)
  9949  	return result
  9950  }
  9951  
  9952  // ToFieldMask is used for proto conversions
  9953  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  9954  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  9955  	for _, path := range fieldMask.Paths {
  9956  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  9957  	}
  9958  	return protoFieldMask
  9959  }
  9960  
  9961  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  9962  	if fieldMask == nil {
  9963  		return status.Error(codes.Internal, "target field mask is nil")
  9964  	}
  9965  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPath, 0, len(protoFieldMask.Paths))
  9966  	for _, strPath := range protoFieldMask.Paths {
  9967  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPath(strPath)
  9968  		if err != nil {
  9969  			return err
  9970  		}
  9971  		fieldMask.Paths = append(fieldMask.Paths, path)
  9972  	}
  9973  	return nil
  9974  }
  9975  
  9976  // implement methods required by customType
  9977  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) Marshal() ([]byte, error) {
  9978  	protoFieldMask := fieldMask.ToProtoFieldMask()
  9979  	return proto.Marshal(protoFieldMask)
  9980  }
  9981  
  9982  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) Unmarshal(data []byte) error {
  9983  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  9984  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  9985  		return err
  9986  	}
  9987  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  9988  		return err
  9989  	}
  9990  	return nil
  9991  }
  9992  
  9993  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) Size() int {
  9994  	return proto.Size(fieldMask.ToProtoFieldMask())
  9995  }
  9996  
  9997  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) MarshalJSON() ([]byte, error) {
  9998  	return json.Marshal(fieldMask.ToProtoFieldMask())
  9999  }
 10000  
 10001  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) UnmarshalJSON(data []byte) error {
 10002  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 10003  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 10004  		return err
 10005  	}
 10006  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 10007  		return err
 10008  	}
 10009  	return nil
 10010  }
 10011  
 10012  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPath) {
 10013  	fieldMask.Paths = append(fieldMask.Paths, path)
 10014  }
 10015  
 10016  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 10017  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPath))
 10018  }
 10019  
 10020  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPath {
 10021  	if fieldMask == nil {
 10022  		return nil
 10023  	}
 10024  	return fieldMask.Paths
 10025  }
 10026  
 10027  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 10028  	if fieldMask == nil {
 10029  		return nil
 10030  	}
 10031  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 10032  	for _, path := range fieldMask.Paths {
 10033  		rawPaths = append(rawPaths, path)
 10034  	}
 10035  	return rawPaths
 10036  }
 10037  
 10038  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) SetFromCliFlag(raw string) error {
 10039  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPath(raw)
 10040  	if err != nil {
 10041  		return err
 10042  	}
 10043  	fieldMask.Paths = append(fieldMask.Paths, path)
 10044  	return nil
 10045  }
 10046  
 10047  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus) {
 10048  	for _, path := range fieldMask.Paths {
 10049  		val, _ := path.GetSingle(source)
 10050  		// if val is nil, then field does not exist in source, skip
 10051  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 10052  		if val != nil {
 10053  			path.WithIValue(val).SetTo(&target)
 10054  		}
 10055  	}
 10056  }
 10057  
 10058  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 10059  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus), source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus))
 10060  }
 10061  
 10062  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus {
 10063  	if source == nil {
 10064  		return nil
 10065  	}
 10066  	if fieldMask == nil {
 10067  		return source
 10068  	}
 10069  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus{}
 10070  	modemMask := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask{}
 10071  	wholeModemAccepted := false
 10072  
 10073  	for _, p := range fieldMask.Paths {
 10074  		switch tp := p.(type) {
 10075  		case *DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldTerminalPath:
 10076  			switch tp.selector {
 10077  			case DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPathSelectorModem:
 10078  				result.Modem = source.Modem
 10079  				wholeModemAccepted = true
 10080  			}
 10081  		case *DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldSubPath:
 10082  			switch tp.selector {
 10083  			case DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPathSelectorModem:
 10084  				modemMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPath))
 10085  			}
 10086  		}
 10087  	}
 10088  	if wholeModemAccepted == false && len(modemMask.Paths) > 0 {
 10089  		result.Modem = modemMask.Project(source.GetModem())
 10090  	}
 10091  	return result
 10092  }
 10093  
 10094  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 10095  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus))
 10096  }
 10097  
 10098  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask) PathsCount() int {
 10099  	if fieldMask == nil {
 10100  		return 0
 10101  	}
 10102  	return len(fieldMask.Paths)
 10103  }
 10104  
 10105  type Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask struct {
 10106  	Paths []DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPath
 10107  }
 10108  
 10109  func FullDevice_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask {
 10110  	res := &Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask{}
 10111  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPathSelectorChassis})
 10112  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPathSelectorUuid})
 10113  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPathSelectorSkuNumber})
 10114  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPathSelectorFamily})
 10115  	return res
 10116  }
 10117  
 10118  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) String() string {
 10119  	if fieldMask == nil {
 10120  		return "<nil>"
 10121  	}
 10122  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 10123  	for _, path := range fieldMask.Paths {
 10124  		pathsStr = append(pathsStr, path.String())
 10125  	}
 10126  	return strings.Join(pathsStr, ", ")
 10127  }
 10128  
 10129  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) IsFull() bool {
 10130  	if fieldMask == nil {
 10131  		return false
 10132  	}
 10133  	presentSelectors := make([]bool, 4)
 10134  	for _, path := range fieldMask.Paths {
 10135  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldTerminalPath); ok {
 10136  			presentSelectors[int(asFinal.selector)] = true
 10137  		}
 10138  	}
 10139  	for _, flag := range presentSelectors {
 10140  		if !flag {
 10141  			return false
 10142  		}
 10143  	}
 10144  	return true
 10145  }
 10146  
 10147  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) ProtoReflect() preflect.Message {
 10148  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 10149  		return ParseDeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPath(raw)
 10150  	})
 10151  }
 10152  
 10153  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) ProtoMessage() {
 10154  }
 10155  
 10156  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) Reset() {
 10157  	if fieldMask != nil {
 10158  		fieldMask.Paths = nil
 10159  	}
 10160  }
 10161  
 10162  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask {
 10163  	result := &Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask{}
 10164  	removedSelectors := make([]bool, 4)
 10165  
 10166  	for _, path := range other.GetPaths() {
 10167  		switch tp := path.(type) {
 10168  		case *DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldTerminalPath:
 10169  			removedSelectors[int(tp.selector)] = true
 10170  		}
 10171  	}
 10172  	for _, path := range fieldMask.GetPaths() {
 10173  		if !removedSelectors[int(path.Selector())] {
 10174  			result.Paths = append(result.Paths, path)
 10175  		}
 10176  	}
 10177  
 10178  	if len(result.Paths) == 0 {
 10179  		return nil
 10180  	}
 10181  	return result
 10182  }
 10183  
 10184  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 10185  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask))
 10186  }
 10187  
 10188  // FilterInputFields generates copy of field paths with output_only field paths removed
 10189  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask {
 10190  	result := &Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask{}
 10191  	result.Paths = append(result.Paths, fieldMask.Paths...)
 10192  	return result
 10193  }
 10194  
 10195  // ToFieldMask is used for proto conversions
 10196  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 10197  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 10198  	for _, path := range fieldMask.Paths {
 10199  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 10200  	}
 10201  	return protoFieldMask
 10202  }
 10203  
 10204  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 10205  	if fieldMask == nil {
 10206  		return status.Error(codes.Internal, "target field mask is nil")
 10207  	}
 10208  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPath, 0, len(protoFieldMask.Paths))
 10209  	for _, strPath := range protoFieldMask.Paths {
 10210  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPath(strPath)
 10211  		if err != nil {
 10212  			return err
 10213  		}
 10214  		fieldMask.Paths = append(fieldMask.Paths, path)
 10215  	}
 10216  	return nil
 10217  }
 10218  
 10219  // implement methods required by customType
 10220  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) Marshal() ([]byte, error) {
 10221  	protoFieldMask := fieldMask.ToProtoFieldMask()
 10222  	return proto.Marshal(protoFieldMask)
 10223  }
 10224  
 10225  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) Unmarshal(data []byte) error {
 10226  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 10227  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 10228  		return err
 10229  	}
 10230  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 10231  		return err
 10232  	}
 10233  	return nil
 10234  }
 10235  
 10236  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) Size() int {
 10237  	return proto.Size(fieldMask.ToProtoFieldMask())
 10238  }
 10239  
 10240  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) MarshalJSON() ([]byte, error) {
 10241  	return json.Marshal(fieldMask.ToProtoFieldMask())
 10242  }
 10243  
 10244  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) UnmarshalJSON(data []byte) error {
 10245  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 10246  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 10247  		return err
 10248  	}
 10249  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 10250  		return err
 10251  	}
 10252  	return nil
 10253  }
 10254  
 10255  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPath) {
 10256  	fieldMask.Paths = append(fieldMask.Paths, path)
 10257  }
 10258  
 10259  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 10260  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPath))
 10261  }
 10262  
 10263  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPath {
 10264  	if fieldMask == nil {
 10265  		return nil
 10266  	}
 10267  	return fieldMask.Paths
 10268  }
 10269  
 10270  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 10271  	if fieldMask == nil {
 10272  		return nil
 10273  	}
 10274  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 10275  	for _, path := range fieldMask.Paths {
 10276  		rawPaths = append(rawPaths, path)
 10277  	}
 10278  	return rawPaths
 10279  }
 10280  
 10281  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) SetFromCliFlag(raw string) error {
 10282  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPath(raw)
 10283  	if err != nil {
 10284  		return err
 10285  	}
 10286  	fieldMask.Paths = append(fieldMask.Paths, path)
 10287  	return nil
 10288  }
 10289  
 10290  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_System_Configuration) {
 10291  	for _, path := range fieldMask.Paths {
 10292  		val, _ := path.GetSingle(source)
 10293  		// if val is nil, then field does not exist in source, skip
 10294  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 10295  		if val != nil {
 10296  			path.WithIValue(val).SetTo(&target)
 10297  		}
 10298  	}
 10299  }
 10300  
 10301  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 10302  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_System_Configuration), source.(*Device_Status_DeviceInfo_HardwareInformation_System_Configuration))
 10303  }
 10304  
 10305  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_System_Configuration) *Device_Status_DeviceInfo_HardwareInformation_System_Configuration {
 10306  	if source == nil {
 10307  		return nil
 10308  	}
 10309  	if fieldMask == nil {
 10310  		return source
 10311  	}
 10312  	result := &Device_Status_DeviceInfo_HardwareInformation_System_Configuration{}
 10313  
 10314  	for _, p := range fieldMask.Paths {
 10315  		switch tp := p.(type) {
 10316  		case *DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldTerminalPath:
 10317  			switch tp.selector {
 10318  			case DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPathSelectorChassis:
 10319  				result.Chassis = source.Chassis
 10320  			case DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPathSelectorUuid:
 10321  				result.Uuid = source.Uuid
 10322  			case DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPathSelectorSkuNumber:
 10323  				result.SkuNumber = source.SkuNumber
 10324  			case DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPathSelectorFamily:
 10325  				result.Family = source.Family
 10326  			}
 10327  		}
 10328  	}
 10329  	return result
 10330  }
 10331  
 10332  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 10333  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_System_Configuration))
 10334  }
 10335  
 10336  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask) PathsCount() int {
 10337  	if fieldMask == nil {
 10338  		return 0
 10339  	}
 10340  	return len(fieldMask.Paths)
 10341  }
 10342  
 10343  type Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask struct {
 10344  	Paths []DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPath
 10345  }
 10346  
 10347  func FullDevice_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask {
 10348  	res := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask{}
 10349  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorVendor})
 10350  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorModel})
 10351  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCapabilities})
 10352  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorNumThreads})
 10353  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorNumCores})
 10354  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorNumEnabledCores})
 10355  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorName})
 10356  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorSerial})
 10357  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorFrequencyMhz})
 10358  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorMaxFrequencyMhz})
 10359  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCacheInfo})
 10360  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorDriver})
 10361  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorLatency})
 10362  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorClock})
 10363  	return res
 10364  }
 10365  
 10366  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) String() string {
 10367  	if fieldMask == nil {
 10368  		return "<nil>"
 10369  	}
 10370  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 10371  	for _, path := range fieldMask.Paths {
 10372  		pathsStr = append(pathsStr, path.String())
 10373  	}
 10374  	return strings.Join(pathsStr, ", ")
 10375  }
 10376  
 10377  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) IsFull() bool {
 10378  	if fieldMask == nil {
 10379  		return false
 10380  	}
 10381  	presentSelectors := make([]bool, 14)
 10382  	for _, path := range fieldMask.Paths {
 10383  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath); ok {
 10384  			presentSelectors[int(asFinal.selector)] = true
 10385  		}
 10386  	}
 10387  	for _, flag := range presentSelectors {
 10388  		if !flag {
 10389  			return false
 10390  		}
 10391  	}
 10392  	return true
 10393  }
 10394  
 10395  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) ProtoReflect() preflect.Message {
 10396  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 10397  		return ParseDeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPath(raw)
 10398  	})
 10399  }
 10400  
 10401  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) ProtoMessage() {
 10402  }
 10403  
 10404  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) Reset() {
 10405  	if fieldMask != nil {
 10406  		fieldMask.Paths = nil
 10407  	}
 10408  }
 10409  
 10410  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask {
 10411  	result := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask{}
 10412  	removedSelectors := make([]bool, 14)
 10413  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelector]gotenobject.FieldMask{
 10414  		DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCapabilities: &Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask{},
 10415  		DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCacheInfo:    &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask{},
 10416  	}
 10417  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelector]gotenobject.FieldMask{
 10418  		DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCapabilities: &Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask{},
 10419  		DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCacheInfo:    &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask{},
 10420  	}
 10421  
 10422  	for _, path := range other.GetPaths() {
 10423  		switch tp := path.(type) {
 10424  		case *DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath:
 10425  			removedSelectors[int(tp.selector)] = true
 10426  		case *DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldSubPath:
 10427  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
 10428  		}
 10429  	}
 10430  	for _, path := range fieldMask.GetPaths() {
 10431  		if !removedSelectors[int(path.Selector())] {
 10432  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
 10433  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath); ok {
 10434  					switch tp.selector {
 10435  					case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCapabilities:
 10436  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCapabilities] = FullDevice_Status_DeviceInfo_HardwareInformation_Capability_FieldMask()
 10437  					case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCacheInfo:
 10438  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCacheInfo] = FullDevice_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask()
 10439  					}
 10440  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldSubPath); ok {
 10441  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
 10442  				}
 10443  			} else {
 10444  				result.Paths = append(result.Paths, path)
 10445  			}
 10446  		}
 10447  	}
 10448  	for selector, mySubMask := range mySubMasks {
 10449  		if mySubMask.PathsCount() > 0 {
 10450  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
 10451  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldSubPath{selector: selector, subPath: allowedPath})
 10452  			}
 10453  		}
 10454  	}
 10455  
 10456  	if len(result.Paths) == 0 {
 10457  		return nil
 10458  	}
 10459  	return result
 10460  }
 10461  
 10462  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 10463  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask))
 10464  }
 10465  
 10466  // FilterInputFields generates copy of field paths with output_only field paths removed
 10467  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask {
 10468  	result := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask{}
 10469  	result.Paths = append(result.Paths, fieldMask.Paths...)
 10470  	return result
 10471  }
 10472  
 10473  // ToFieldMask is used for proto conversions
 10474  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 10475  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 10476  	for _, path := range fieldMask.Paths {
 10477  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 10478  	}
 10479  	return protoFieldMask
 10480  }
 10481  
 10482  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 10483  	if fieldMask == nil {
 10484  		return status.Error(codes.Internal, "target field mask is nil")
 10485  	}
 10486  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPath, 0, len(protoFieldMask.Paths))
 10487  	for _, strPath := range protoFieldMask.Paths {
 10488  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPath(strPath)
 10489  		if err != nil {
 10490  			return err
 10491  		}
 10492  		fieldMask.Paths = append(fieldMask.Paths, path)
 10493  	}
 10494  	return nil
 10495  }
 10496  
 10497  // implement methods required by customType
 10498  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) Marshal() ([]byte, error) {
 10499  	protoFieldMask := fieldMask.ToProtoFieldMask()
 10500  	return proto.Marshal(protoFieldMask)
 10501  }
 10502  
 10503  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) Unmarshal(data []byte) error {
 10504  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 10505  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 10506  		return err
 10507  	}
 10508  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 10509  		return err
 10510  	}
 10511  	return nil
 10512  }
 10513  
 10514  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) Size() int {
 10515  	return proto.Size(fieldMask.ToProtoFieldMask())
 10516  }
 10517  
 10518  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) MarshalJSON() ([]byte, error) {
 10519  	return json.Marshal(fieldMask.ToProtoFieldMask())
 10520  }
 10521  
 10522  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) UnmarshalJSON(data []byte) error {
 10523  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 10524  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 10525  		return err
 10526  	}
 10527  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 10528  		return err
 10529  	}
 10530  	return nil
 10531  }
 10532  
 10533  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPath) {
 10534  	fieldMask.Paths = append(fieldMask.Paths, path)
 10535  }
 10536  
 10537  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 10538  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPath))
 10539  }
 10540  
 10541  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPath {
 10542  	if fieldMask == nil {
 10543  		return nil
 10544  	}
 10545  	return fieldMask.Paths
 10546  }
 10547  
 10548  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 10549  	if fieldMask == nil {
 10550  		return nil
 10551  	}
 10552  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 10553  	for _, path := range fieldMask.Paths {
 10554  		rawPaths = append(rawPaths, path)
 10555  	}
 10556  	return rawPaths
 10557  }
 10558  
 10559  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) SetFromCliFlag(raw string) error {
 10560  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPath(raw)
 10561  	if err != nil {
 10562  		return err
 10563  	}
 10564  	fieldMask.Paths = append(fieldMask.Paths, path)
 10565  	return nil
 10566  }
 10567  
 10568  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor) {
 10569  	for _, path := range fieldMask.Paths {
 10570  		val, _ := path.GetSingle(source)
 10571  		// if val is nil, then field does not exist in source, skip
 10572  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 10573  		if val != nil {
 10574  			path.WithIValue(val).SetTo(&target)
 10575  		}
 10576  	}
 10577  }
 10578  
 10579  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 10580  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor), source.(*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor))
 10581  }
 10582  
 10583  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor) *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor {
 10584  	if source == nil {
 10585  		return nil
 10586  	}
 10587  	if fieldMask == nil {
 10588  		return source
 10589  	}
 10590  	result := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor{}
 10591  	capabilitiesMask := &Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask{}
 10592  	wholeCapabilitiesAccepted := false
 10593  	cacheInfoMask := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask{}
 10594  	wholeCacheInfoAccepted := false
 10595  
 10596  	for _, p := range fieldMask.Paths {
 10597  		switch tp := p.(type) {
 10598  		case *DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath:
 10599  			switch tp.selector {
 10600  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorVendor:
 10601  				result.Vendor = source.Vendor
 10602  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorModel:
 10603  				result.Model = source.Model
 10604  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCapabilities:
 10605  				result.Capabilities = source.Capabilities
 10606  				wholeCapabilitiesAccepted = true
 10607  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorNumThreads:
 10608  				result.NumThreads = source.NumThreads
 10609  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorNumCores:
 10610  				result.NumCores = source.NumCores
 10611  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorNumEnabledCores:
 10612  				result.NumEnabledCores = source.NumEnabledCores
 10613  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorName:
 10614  				result.Name = source.Name
 10615  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorSerial:
 10616  				result.Serial = source.Serial
 10617  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorFrequencyMhz:
 10618  				result.FrequencyMhz = source.FrequencyMhz
 10619  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorMaxFrequencyMhz:
 10620  				result.MaxFrequencyMhz = source.MaxFrequencyMhz
 10621  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCacheInfo:
 10622  				result.CacheInfo = source.CacheInfo
 10623  				wholeCacheInfoAccepted = true
 10624  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorDriver:
 10625  				result.Driver = source.Driver
 10626  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorLatency:
 10627  				result.Latency = source.Latency
 10628  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorClock:
 10629  				result.Clock = source.Clock
 10630  			}
 10631  		case *DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldSubPath:
 10632  			switch tp.selector {
 10633  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCapabilities:
 10634  				capabilitiesMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationCapability_FieldPath))
 10635  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCacheInfo:
 10636  				cacheInfoMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPath))
 10637  			}
 10638  		}
 10639  	}
 10640  	if wholeCapabilitiesAccepted == false && len(capabilitiesMask.Paths) > 0 {
 10641  		for _, sourceItem := range source.GetCapabilities() {
 10642  			result.Capabilities = append(result.Capabilities, capabilitiesMask.Project(sourceItem))
 10643  		}
 10644  	}
 10645  	if wholeCacheInfoAccepted == false && len(cacheInfoMask.Paths) > 0 {
 10646  		for _, sourceItem := range source.GetCacheInfo() {
 10647  			result.CacheInfo = append(result.CacheInfo, cacheInfoMask.Project(sourceItem))
 10648  		}
 10649  	}
 10650  	return result
 10651  }
 10652  
 10653  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 10654  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor))
 10655  }
 10656  
 10657  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask) PathsCount() int {
 10658  	if fieldMask == nil {
 10659  		return 0
 10660  	}
 10661  	return len(fieldMask.Paths)
 10662  }
 10663  
 10664  type Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask struct {
 10665  	Paths []DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPath
 10666  }
 10667  
 10668  func FullDevice_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask {
 10669  	res := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask{}
 10670  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPathSelectorType})
 10671  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPathSelectorSizeBytes})
 10672  	return res
 10673  }
 10674  
 10675  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) String() string {
 10676  	if fieldMask == nil {
 10677  		return "<nil>"
 10678  	}
 10679  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 10680  	for _, path := range fieldMask.Paths {
 10681  		pathsStr = append(pathsStr, path.String())
 10682  	}
 10683  	return strings.Join(pathsStr, ", ")
 10684  }
 10685  
 10686  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) IsFull() bool {
 10687  	if fieldMask == nil {
 10688  		return false
 10689  	}
 10690  	presentSelectors := make([]bool, 2)
 10691  	for _, path := range fieldMask.Paths {
 10692  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldTerminalPath); ok {
 10693  			presentSelectors[int(asFinal.selector)] = true
 10694  		}
 10695  	}
 10696  	for _, flag := range presentSelectors {
 10697  		if !flag {
 10698  			return false
 10699  		}
 10700  	}
 10701  	return true
 10702  }
 10703  
 10704  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) ProtoReflect() preflect.Message {
 10705  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 10706  		return ParseDeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPath(raw)
 10707  	})
 10708  }
 10709  
 10710  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) ProtoMessage() {
 10711  }
 10712  
 10713  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) Reset() {
 10714  	if fieldMask != nil {
 10715  		fieldMask.Paths = nil
 10716  	}
 10717  }
 10718  
 10719  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask {
 10720  	result := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask{}
 10721  	removedSelectors := make([]bool, 2)
 10722  
 10723  	for _, path := range other.GetPaths() {
 10724  		switch tp := path.(type) {
 10725  		case *DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldTerminalPath:
 10726  			removedSelectors[int(tp.selector)] = true
 10727  		}
 10728  	}
 10729  	for _, path := range fieldMask.GetPaths() {
 10730  		if !removedSelectors[int(path.Selector())] {
 10731  			result.Paths = append(result.Paths, path)
 10732  		}
 10733  	}
 10734  
 10735  	if len(result.Paths) == 0 {
 10736  		return nil
 10737  	}
 10738  	return result
 10739  }
 10740  
 10741  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 10742  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask))
 10743  }
 10744  
 10745  // FilterInputFields generates copy of field paths with output_only field paths removed
 10746  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask {
 10747  	result := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask{}
 10748  	result.Paths = append(result.Paths, fieldMask.Paths...)
 10749  	return result
 10750  }
 10751  
 10752  // ToFieldMask is used for proto conversions
 10753  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 10754  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 10755  	for _, path := range fieldMask.Paths {
 10756  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 10757  	}
 10758  	return protoFieldMask
 10759  }
 10760  
 10761  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 10762  	if fieldMask == nil {
 10763  		return status.Error(codes.Internal, "target field mask is nil")
 10764  	}
 10765  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPath, 0, len(protoFieldMask.Paths))
 10766  	for _, strPath := range protoFieldMask.Paths {
 10767  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPath(strPath)
 10768  		if err != nil {
 10769  			return err
 10770  		}
 10771  		fieldMask.Paths = append(fieldMask.Paths, path)
 10772  	}
 10773  	return nil
 10774  }
 10775  
 10776  // implement methods required by customType
 10777  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) Marshal() ([]byte, error) {
 10778  	protoFieldMask := fieldMask.ToProtoFieldMask()
 10779  	return proto.Marshal(protoFieldMask)
 10780  }
 10781  
 10782  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) Unmarshal(data []byte) error {
 10783  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 10784  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 10785  		return err
 10786  	}
 10787  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 10788  		return err
 10789  	}
 10790  	return nil
 10791  }
 10792  
 10793  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) Size() int {
 10794  	return proto.Size(fieldMask.ToProtoFieldMask())
 10795  }
 10796  
 10797  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) MarshalJSON() ([]byte, error) {
 10798  	return json.Marshal(fieldMask.ToProtoFieldMask())
 10799  }
 10800  
 10801  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) UnmarshalJSON(data []byte) error {
 10802  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 10803  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 10804  		return err
 10805  	}
 10806  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 10807  		return err
 10808  	}
 10809  	return nil
 10810  }
 10811  
 10812  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPath) {
 10813  	fieldMask.Paths = append(fieldMask.Paths, path)
 10814  }
 10815  
 10816  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 10817  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPath))
 10818  }
 10819  
 10820  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPath {
 10821  	if fieldMask == nil {
 10822  		return nil
 10823  	}
 10824  	return fieldMask.Paths
 10825  }
 10826  
 10827  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 10828  	if fieldMask == nil {
 10829  		return nil
 10830  	}
 10831  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 10832  	for _, path := range fieldMask.Paths {
 10833  		rawPaths = append(rawPaths, path)
 10834  	}
 10835  	return rawPaths
 10836  }
 10837  
 10838  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) SetFromCliFlag(raw string) error {
 10839  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPath(raw)
 10840  	if err != nil {
 10841  		return err
 10842  	}
 10843  	fieldMask.Paths = append(fieldMask.Paths, path)
 10844  	return nil
 10845  }
 10846  
 10847  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache) {
 10848  	for _, path := range fieldMask.Paths {
 10849  		val, _ := path.GetSingle(source)
 10850  		// if val is nil, then field does not exist in source, skip
 10851  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 10852  		if val != nil {
 10853  			path.WithIValue(val).SetTo(&target)
 10854  		}
 10855  	}
 10856  }
 10857  
 10858  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 10859  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache), source.(*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache))
 10860  }
 10861  
 10862  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache) *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache {
 10863  	if source == nil {
 10864  		return nil
 10865  	}
 10866  	if fieldMask == nil {
 10867  		return source
 10868  	}
 10869  	result := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache{}
 10870  
 10871  	for _, p := range fieldMask.Paths {
 10872  		switch tp := p.(type) {
 10873  		case *DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldTerminalPath:
 10874  			switch tp.selector {
 10875  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPathSelectorType:
 10876  				result.Type = source.Type
 10877  			case DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPathSelectorSizeBytes:
 10878  				result.SizeBytes = source.SizeBytes
 10879  			}
 10880  		}
 10881  	}
 10882  	return result
 10883  }
 10884  
 10885  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 10886  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache))
 10887  }
 10888  
 10889  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask) PathsCount() int {
 10890  	if fieldMask == nil {
 10891  		return 0
 10892  	}
 10893  	return len(fieldMask.Paths)
 10894  }
 10895  
 10896  type Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask struct {
 10897  	Paths []DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPath
 10898  }
 10899  
 10900  func FullDevice_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask {
 10901  	res := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask{}
 10902  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorName})
 10903  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorSizeBytes})
 10904  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorDriveType})
 10905  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorVendor})
 10906  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorModel})
 10907  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorSerialNumber})
 10908  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorWwn})
 10909  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorPartitions})
 10910  	return res
 10911  }
 10912  
 10913  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) String() string {
 10914  	if fieldMask == nil {
 10915  		return "<nil>"
 10916  	}
 10917  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 10918  	for _, path := range fieldMask.Paths {
 10919  		pathsStr = append(pathsStr, path.String())
 10920  	}
 10921  	return strings.Join(pathsStr, ", ")
 10922  }
 10923  
 10924  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) IsFull() bool {
 10925  	if fieldMask == nil {
 10926  		return false
 10927  	}
 10928  	presentSelectors := make([]bool, 8)
 10929  	for _, path := range fieldMask.Paths {
 10930  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath); ok {
 10931  			presentSelectors[int(asFinal.selector)] = true
 10932  		}
 10933  	}
 10934  	for _, flag := range presentSelectors {
 10935  		if !flag {
 10936  			return false
 10937  		}
 10938  	}
 10939  	return true
 10940  }
 10941  
 10942  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) ProtoReflect() preflect.Message {
 10943  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 10944  		return ParseDeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPath(raw)
 10945  	})
 10946  }
 10947  
 10948  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) ProtoMessage() {}
 10949  
 10950  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) Reset() {
 10951  	if fieldMask != nil {
 10952  		fieldMask.Paths = nil
 10953  	}
 10954  }
 10955  
 10956  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask {
 10957  	result := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask{}
 10958  	removedSelectors := make([]bool, 8)
 10959  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelector]gotenobject.FieldMask{
 10960  		DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorPartitions: &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask{},
 10961  	}
 10962  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelector]gotenobject.FieldMask{
 10963  		DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorPartitions: &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask{},
 10964  	}
 10965  
 10966  	for _, path := range other.GetPaths() {
 10967  		switch tp := path.(type) {
 10968  		case *DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath:
 10969  			removedSelectors[int(tp.selector)] = true
 10970  		case *DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldSubPath:
 10971  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
 10972  		}
 10973  	}
 10974  	for _, path := range fieldMask.GetPaths() {
 10975  		if !removedSelectors[int(path.Selector())] {
 10976  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
 10977  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath); ok {
 10978  					switch tp.selector {
 10979  					case DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorPartitions:
 10980  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorPartitions] = FullDevice_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask()
 10981  					}
 10982  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldSubPath); ok {
 10983  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
 10984  				}
 10985  			} else {
 10986  				result.Paths = append(result.Paths, path)
 10987  			}
 10988  		}
 10989  	}
 10990  	for selector, mySubMask := range mySubMasks {
 10991  		if mySubMask.PathsCount() > 0 {
 10992  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
 10993  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldSubPath{selector: selector, subPath: allowedPath})
 10994  			}
 10995  		}
 10996  	}
 10997  
 10998  	if len(result.Paths) == 0 {
 10999  		return nil
 11000  	}
 11001  	return result
 11002  }
 11003  
 11004  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 11005  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask))
 11006  }
 11007  
 11008  // FilterInputFields generates copy of field paths with output_only field paths removed
 11009  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask {
 11010  	result := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask{}
 11011  	result.Paths = append(result.Paths, fieldMask.Paths...)
 11012  	return result
 11013  }
 11014  
 11015  // ToFieldMask is used for proto conversions
 11016  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 11017  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 11018  	for _, path := range fieldMask.Paths {
 11019  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 11020  	}
 11021  	return protoFieldMask
 11022  }
 11023  
 11024  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 11025  	if fieldMask == nil {
 11026  		return status.Error(codes.Internal, "target field mask is nil")
 11027  	}
 11028  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPath, 0, len(protoFieldMask.Paths))
 11029  	for _, strPath := range protoFieldMask.Paths {
 11030  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPath(strPath)
 11031  		if err != nil {
 11032  			return err
 11033  		}
 11034  		fieldMask.Paths = append(fieldMask.Paths, path)
 11035  	}
 11036  	return nil
 11037  }
 11038  
 11039  // implement methods required by customType
 11040  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) Marshal() ([]byte, error) {
 11041  	protoFieldMask := fieldMask.ToProtoFieldMask()
 11042  	return proto.Marshal(protoFieldMask)
 11043  }
 11044  
 11045  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) Unmarshal(data []byte) error {
 11046  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 11047  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 11048  		return err
 11049  	}
 11050  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 11051  		return err
 11052  	}
 11053  	return nil
 11054  }
 11055  
 11056  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) Size() int {
 11057  	return proto.Size(fieldMask.ToProtoFieldMask())
 11058  }
 11059  
 11060  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) MarshalJSON() ([]byte, error) {
 11061  	return json.Marshal(fieldMask.ToProtoFieldMask())
 11062  }
 11063  
 11064  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) UnmarshalJSON(data []byte) error {
 11065  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 11066  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 11067  		return err
 11068  	}
 11069  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 11070  		return err
 11071  	}
 11072  	return nil
 11073  }
 11074  
 11075  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPath) {
 11076  	fieldMask.Paths = append(fieldMask.Paths, path)
 11077  }
 11078  
 11079  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 11080  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPath))
 11081  }
 11082  
 11083  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPath {
 11084  	if fieldMask == nil {
 11085  		return nil
 11086  	}
 11087  	return fieldMask.Paths
 11088  }
 11089  
 11090  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 11091  	if fieldMask == nil {
 11092  		return nil
 11093  	}
 11094  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 11095  	for _, path := range fieldMask.Paths {
 11096  		rawPaths = append(rawPaths, path)
 11097  	}
 11098  	return rawPaths
 11099  }
 11100  
 11101  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) SetFromCliFlag(raw string) error {
 11102  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPath(raw)
 11103  	if err != nil {
 11104  		return err
 11105  	}
 11106  	fieldMask.Paths = append(fieldMask.Paths, path)
 11107  	return nil
 11108  }
 11109  
 11110  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_Block_Disk) {
 11111  	for _, path := range fieldMask.Paths {
 11112  		val, _ := path.GetSingle(source)
 11113  		// if val is nil, then field does not exist in source, skip
 11114  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 11115  		if val != nil {
 11116  			path.WithIValue(val).SetTo(&target)
 11117  		}
 11118  	}
 11119  }
 11120  
 11121  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 11122  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_Block_Disk), source.(*Device_Status_DeviceInfo_HardwareInformation_Block_Disk))
 11123  }
 11124  
 11125  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_Block_Disk) *Device_Status_DeviceInfo_HardwareInformation_Block_Disk {
 11126  	if source == nil {
 11127  		return nil
 11128  	}
 11129  	if fieldMask == nil {
 11130  		return source
 11131  	}
 11132  	result := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk{}
 11133  	partitionsMask := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask{}
 11134  	wholePartitionsAccepted := false
 11135  
 11136  	for _, p := range fieldMask.Paths {
 11137  		switch tp := p.(type) {
 11138  		case *DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath:
 11139  			switch tp.selector {
 11140  			case DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorName:
 11141  				result.Name = source.Name
 11142  			case DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorSizeBytes:
 11143  				result.SizeBytes = source.SizeBytes
 11144  			case DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorDriveType:
 11145  				result.DriveType = source.DriveType
 11146  			case DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorVendor:
 11147  				result.Vendor = source.Vendor
 11148  			case DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorModel:
 11149  				result.Model = source.Model
 11150  			case DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorSerialNumber:
 11151  				result.SerialNumber = source.SerialNumber
 11152  			case DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorWwn:
 11153  				result.Wwn = source.Wwn
 11154  			case DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorPartitions:
 11155  				result.Partitions = source.Partitions
 11156  				wholePartitionsAccepted = true
 11157  			}
 11158  		case *DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldSubPath:
 11159  			switch tp.selector {
 11160  			case DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorPartitions:
 11161  				partitionsMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPath))
 11162  			}
 11163  		}
 11164  	}
 11165  	if wholePartitionsAccepted == false && len(partitionsMask.Paths) > 0 {
 11166  		for _, sourceItem := range source.GetPartitions() {
 11167  			result.Partitions = append(result.Partitions, partitionsMask.Project(sourceItem))
 11168  		}
 11169  	}
 11170  	return result
 11171  }
 11172  
 11173  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 11174  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_Block_Disk))
 11175  }
 11176  
 11177  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask) PathsCount() int {
 11178  	if fieldMask == nil {
 11179  		return 0
 11180  	}
 11181  	return len(fieldMask.Paths)
 11182  }
 11183  
 11184  type Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask struct {
 11185  	Paths []DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPath
 11186  }
 11187  
 11188  func FullDevice_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask {
 11189  	res := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask{}
 11190  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPathSelectorName})
 11191  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPathSelectorSizeBytes})
 11192  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPathSelectorMountPoint})
 11193  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPathSelectorType})
 11194  	return res
 11195  }
 11196  
 11197  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) String() string {
 11198  	if fieldMask == nil {
 11199  		return "<nil>"
 11200  	}
 11201  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 11202  	for _, path := range fieldMask.Paths {
 11203  		pathsStr = append(pathsStr, path.String())
 11204  	}
 11205  	return strings.Join(pathsStr, ", ")
 11206  }
 11207  
 11208  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) IsFull() bool {
 11209  	if fieldMask == nil {
 11210  		return false
 11211  	}
 11212  	presentSelectors := make([]bool, 4)
 11213  	for _, path := range fieldMask.Paths {
 11214  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldTerminalPath); ok {
 11215  			presentSelectors[int(asFinal.selector)] = true
 11216  		}
 11217  	}
 11218  	for _, flag := range presentSelectors {
 11219  		if !flag {
 11220  			return false
 11221  		}
 11222  	}
 11223  	return true
 11224  }
 11225  
 11226  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) ProtoReflect() preflect.Message {
 11227  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 11228  		return ParseDeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPath(raw)
 11229  	})
 11230  }
 11231  
 11232  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) ProtoMessage() {
 11233  }
 11234  
 11235  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) Reset() {
 11236  	if fieldMask != nil {
 11237  		fieldMask.Paths = nil
 11238  	}
 11239  }
 11240  
 11241  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask {
 11242  	result := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask{}
 11243  	removedSelectors := make([]bool, 4)
 11244  
 11245  	for _, path := range other.GetPaths() {
 11246  		switch tp := path.(type) {
 11247  		case *DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldTerminalPath:
 11248  			removedSelectors[int(tp.selector)] = true
 11249  		}
 11250  	}
 11251  	for _, path := range fieldMask.GetPaths() {
 11252  		if !removedSelectors[int(path.Selector())] {
 11253  			result.Paths = append(result.Paths, path)
 11254  		}
 11255  	}
 11256  
 11257  	if len(result.Paths) == 0 {
 11258  		return nil
 11259  	}
 11260  	return result
 11261  }
 11262  
 11263  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 11264  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask))
 11265  }
 11266  
 11267  // FilterInputFields generates copy of field paths with output_only field paths removed
 11268  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask {
 11269  	result := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask{}
 11270  	result.Paths = append(result.Paths, fieldMask.Paths...)
 11271  	return result
 11272  }
 11273  
 11274  // ToFieldMask is used for proto conversions
 11275  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 11276  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 11277  	for _, path := range fieldMask.Paths {
 11278  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 11279  	}
 11280  	return protoFieldMask
 11281  }
 11282  
 11283  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 11284  	if fieldMask == nil {
 11285  		return status.Error(codes.Internal, "target field mask is nil")
 11286  	}
 11287  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPath, 0, len(protoFieldMask.Paths))
 11288  	for _, strPath := range protoFieldMask.Paths {
 11289  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPath(strPath)
 11290  		if err != nil {
 11291  			return err
 11292  		}
 11293  		fieldMask.Paths = append(fieldMask.Paths, path)
 11294  	}
 11295  	return nil
 11296  }
 11297  
 11298  // implement methods required by customType
 11299  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) Marshal() ([]byte, error) {
 11300  	protoFieldMask := fieldMask.ToProtoFieldMask()
 11301  	return proto.Marshal(protoFieldMask)
 11302  }
 11303  
 11304  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) Unmarshal(data []byte) error {
 11305  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 11306  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 11307  		return err
 11308  	}
 11309  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 11310  		return err
 11311  	}
 11312  	return nil
 11313  }
 11314  
 11315  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) Size() int {
 11316  	return proto.Size(fieldMask.ToProtoFieldMask())
 11317  }
 11318  
 11319  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) MarshalJSON() ([]byte, error) {
 11320  	return json.Marshal(fieldMask.ToProtoFieldMask())
 11321  }
 11322  
 11323  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) UnmarshalJSON(data []byte) error {
 11324  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 11325  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 11326  		return err
 11327  	}
 11328  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 11329  		return err
 11330  	}
 11331  	return nil
 11332  }
 11333  
 11334  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPath) {
 11335  	fieldMask.Paths = append(fieldMask.Paths, path)
 11336  }
 11337  
 11338  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 11339  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPath))
 11340  }
 11341  
 11342  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPath {
 11343  	if fieldMask == nil {
 11344  		return nil
 11345  	}
 11346  	return fieldMask.Paths
 11347  }
 11348  
 11349  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 11350  	if fieldMask == nil {
 11351  		return nil
 11352  	}
 11353  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 11354  	for _, path := range fieldMask.Paths {
 11355  		rawPaths = append(rawPaths, path)
 11356  	}
 11357  	return rawPaths
 11358  }
 11359  
 11360  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) SetFromCliFlag(raw string) error {
 11361  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPath(raw)
 11362  	if err != nil {
 11363  		return err
 11364  	}
 11365  	fieldMask.Paths = append(fieldMask.Paths, path)
 11366  	return nil
 11367  }
 11368  
 11369  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition) {
 11370  	for _, path := range fieldMask.Paths {
 11371  		val, _ := path.GetSingle(source)
 11372  		// if val is nil, then field does not exist in source, skip
 11373  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 11374  		if val != nil {
 11375  			path.WithIValue(val).SetTo(&target)
 11376  		}
 11377  	}
 11378  }
 11379  
 11380  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 11381  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition), source.(*Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition))
 11382  }
 11383  
 11384  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition) *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition {
 11385  	if source == nil {
 11386  		return nil
 11387  	}
 11388  	if fieldMask == nil {
 11389  		return source
 11390  	}
 11391  	result := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition{}
 11392  
 11393  	for _, p := range fieldMask.Paths {
 11394  		switch tp := p.(type) {
 11395  		case *DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldTerminalPath:
 11396  			switch tp.selector {
 11397  			case DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPathSelectorName:
 11398  				result.Name = source.Name
 11399  			case DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPathSelectorSizeBytes:
 11400  				result.SizeBytes = source.SizeBytes
 11401  			case DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPathSelectorMountPoint:
 11402  				result.MountPoint = source.MountPoint
 11403  			case DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPathSelectorType:
 11404  				result.Type = source.Type
 11405  			}
 11406  		}
 11407  	}
 11408  	return result
 11409  }
 11410  
 11411  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 11412  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition))
 11413  }
 11414  
 11415  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask) PathsCount() int {
 11416  	if fieldMask == nil {
 11417  		return 0
 11418  	}
 11419  	return len(fieldMask.Paths)
 11420  }
 11421  
 11422  type Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask struct {
 11423  	Paths []DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPath
 11424  }
 11425  
 11426  func FullDevice_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask {
 11427  	res := &Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask{}
 11428  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorName})
 11429  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorMacAddress})
 11430  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorVirtual})
 11431  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorDescription})
 11432  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorProductName})
 11433  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorVendor})
 11434  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorSubvendor})
 11435  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorSetting})
 11436  	return res
 11437  }
 11438  
 11439  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) String() string {
 11440  	if fieldMask == nil {
 11441  		return "<nil>"
 11442  	}
 11443  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 11444  	for _, path := range fieldMask.Paths {
 11445  		pathsStr = append(pathsStr, path.String())
 11446  	}
 11447  	return strings.Join(pathsStr, ", ")
 11448  }
 11449  
 11450  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) IsFull() bool {
 11451  	if fieldMask == nil {
 11452  		return false
 11453  	}
 11454  	presentSelectors := make([]bool, 8)
 11455  	for _, path := range fieldMask.Paths {
 11456  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath); ok {
 11457  			presentSelectors[int(asFinal.selector)] = true
 11458  		}
 11459  	}
 11460  	for _, flag := range presentSelectors {
 11461  		if !flag {
 11462  			return false
 11463  		}
 11464  	}
 11465  	return true
 11466  }
 11467  
 11468  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) ProtoReflect() preflect.Message {
 11469  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 11470  		return ParseDeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPath(raw)
 11471  	})
 11472  }
 11473  
 11474  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) ProtoMessage() {}
 11475  
 11476  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) Reset() {
 11477  	if fieldMask != nil {
 11478  		fieldMask.Paths = nil
 11479  	}
 11480  }
 11481  
 11482  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask {
 11483  	result := &Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask{}
 11484  	removedSelectors := make([]bool, 8)
 11485  
 11486  	for _, path := range other.GetPaths() {
 11487  		switch tp := path.(type) {
 11488  		case *DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath:
 11489  			removedSelectors[int(tp.selector)] = true
 11490  		}
 11491  	}
 11492  	for _, path := range fieldMask.GetPaths() {
 11493  		if !removedSelectors[int(path.Selector())] {
 11494  			result.Paths = append(result.Paths, path)
 11495  		}
 11496  	}
 11497  
 11498  	if len(result.Paths) == 0 {
 11499  		return nil
 11500  	}
 11501  	return result
 11502  }
 11503  
 11504  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 11505  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask))
 11506  }
 11507  
 11508  // FilterInputFields generates copy of field paths with output_only field paths removed
 11509  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask {
 11510  	result := &Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask{}
 11511  	result.Paths = append(result.Paths, fieldMask.Paths...)
 11512  	return result
 11513  }
 11514  
 11515  // ToFieldMask is used for proto conversions
 11516  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 11517  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 11518  	for _, path := range fieldMask.Paths {
 11519  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 11520  	}
 11521  	return protoFieldMask
 11522  }
 11523  
 11524  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 11525  	if fieldMask == nil {
 11526  		return status.Error(codes.Internal, "target field mask is nil")
 11527  	}
 11528  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPath, 0, len(protoFieldMask.Paths))
 11529  	for _, strPath := range protoFieldMask.Paths {
 11530  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPath(strPath)
 11531  		if err != nil {
 11532  			return err
 11533  		}
 11534  		fieldMask.Paths = append(fieldMask.Paths, path)
 11535  	}
 11536  	return nil
 11537  }
 11538  
 11539  // implement methods required by customType
 11540  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) Marshal() ([]byte, error) {
 11541  	protoFieldMask := fieldMask.ToProtoFieldMask()
 11542  	return proto.Marshal(protoFieldMask)
 11543  }
 11544  
 11545  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) Unmarshal(data []byte) error {
 11546  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 11547  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 11548  		return err
 11549  	}
 11550  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 11551  		return err
 11552  	}
 11553  	return nil
 11554  }
 11555  
 11556  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) Size() int {
 11557  	return proto.Size(fieldMask.ToProtoFieldMask())
 11558  }
 11559  
 11560  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) MarshalJSON() ([]byte, error) {
 11561  	return json.Marshal(fieldMask.ToProtoFieldMask())
 11562  }
 11563  
 11564  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) UnmarshalJSON(data []byte) error {
 11565  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 11566  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 11567  		return err
 11568  	}
 11569  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 11570  		return err
 11571  	}
 11572  	return nil
 11573  }
 11574  
 11575  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPath) {
 11576  	fieldMask.Paths = append(fieldMask.Paths, path)
 11577  }
 11578  
 11579  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 11580  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPath))
 11581  }
 11582  
 11583  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPath {
 11584  	if fieldMask == nil {
 11585  		return nil
 11586  	}
 11587  	return fieldMask.Paths
 11588  }
 11589  
 11590  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 11591  	if fieldMask == nil {
 11592  		return nil
 11593  	}
 11594  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 11595  	for _, path := range fieldMask.Paths {
 11596  		rawPaths = append(rawPaths, path)
 11597  	}
 11598  	return rawPaths
 11599  }
 11600  
 11601  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) SetFromCliFlag(raw string) error {
 11602  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPath(raw)
 11603  	if err != nil {
 11604  		return err
 11605  	}
 11606  	fieldMask.Paths = append(fieldMask.Paths, path)
 11607  	return nil
 11608  }
 11609  
 11610  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_Network_NIC) {
 11611  	for _, path := range fieldMask.Paths {
 11612  		val, _ := path.GetSingle(source)
 11613  		// if val is nil, then field does not exist in source, skip
 11614  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 11615  		if val != nil {
 11616  			path.WithIValue(val).SetTo(&target)
 11617  		}
 11618  	}
 11619  }
 11620  
 11621  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 11622  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_Network_NIC), source.(*Device_Status_DeviceInfo_HardwareInformation_Network_NIC))
 11623  }
 11624  
 11625  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_Network_NIC) *Device_Status_DeviceInfo_HardwareInformation_Network_NIC {
 11626  	if source == nil {
 11627  		return nil
 11628  	}
 11629  	if fieldMask == nil {
 11630  		return source
 11631  	}
 11632  	result := &Device_Status_DeviceInfo_HardwareInformation_Network_NIC{}
 11633  	var settingMapKeys []string
 11634  	wholeSettingAccepted := false
 11635  
 11636  	for _, p := range fieldMask.Paths {
 11637  		switch tp := p.(type) {
 11638  		case *DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath:
 11639  			switch tp.selector {
 11640  			case DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorName:
 11641  				result.Name = source.Name
 11642  			case DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorMacAddress:
 11643  				result.MacAddress = source.MacAddress
 11644  			case DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorVirtual:
 11645  				result.Virtual = source.Virtual
 11646  			case DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorDescription:
 11647  				result.Description = source.Description
 11648  			case DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorProductName:
 11649  				result.ProductName = source.ProductName
 11650  			case DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorVendor:
 11651  				result.Vendor = source.Vendor
 11652  			case DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorSubvendor:
 11653  				result.Subvendor = source.Subvendor
 11654  			case DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorSetting:
 11655  				result.Setting = source.Setting
 11656  				wholeSettingAccepted = true
 11657  			}
 11658  		case *DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathMap:
 11659  			switch tp.selector {
 11660  			case DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorSetting:
 11661  				settingMapKeys = append(settingMapKeys, tp.key)
 11662  			}
 11663  		}
 11664  	}
 11665  	if wholeSettingAccepted == false && len(settingMapKeys) > 0 && source.GetSetting() != nil {
 11666  		copiedMap := map[string]string{}
 11667  		sourceMap := source.GetSetting()
 11668  		for _, key := range settingMapKeys {
 11669  			copiedMap[key] = sourceMap[key]
 11670  		}
 11671  		result.Setting = copiedMap
 11672  	}
 11673  	return result
 11674  }
 11675  
 11676  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 11677  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_Network_NIC))
 11678  }
 11679  
 11680  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask) PathsCount() int {
 11681  	if fieldMask == nil {
 11682  		return 0
 11683  	}
 11684  	return len(fieldMask.Paths)
 11685  }
 11686  
 11687  type Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask struct {
 11688  	Paths []DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPath
 11689  }
 11690  
 11691  func FullDevice_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask {
 11692  	res := &Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask{}
 11693  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelectorIndex})
 11694  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelectorDevice})
 11695  	return res
 11696  }
 11697  
 11698  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) String() string {
 11699  	if fieldMask == nil {
 11700  		return "<nil>"
 11701  	}
 11702  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 11703  	for _, path := range fieldMask.Paths {
 11704  		pathsStr = append(pathsStr, path.String())
 11705  	}
 11706  	return strings.Join(pathsStr, ", ")
 11707  }
 11708  
 11709  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) IsFull() bool {
 11710  	if fieldMask == nil {
 11711  		return false
 11712  	}
 11713  	presentSelectors := make([]bool, 2)
 11714  	for _, path := range fieldMask.Paths {
 11715  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldTerminalPath); ok {
 11716  			presentSelectors[int(asFinal.selector)] = true
 11717  		}
 11718  	}
 11719  	for _, flag := range presentSelectors {
 11720  		if !flag {
 11721  			return false
 11722  		}
 11723  	}
 11724  	return true
 11725  }
 11726  
 11727  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) ProtoReflect() preflect.Message {
 11728  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 11729  		return ParseDeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPath(raw)
 11730  	})
 11731  }
 11732  
 11733  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) ProtoMessage() {
 11734  }
 11735  
 11736  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) Reset() {
 11737  	if fieldMask != nil {
 11738  		fieldMask.Paths = nil
 11739  	}
 11740  }
 11741  
 11742  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask {
 11743  	result := &Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask{}
 11744  	removedSelectors := make([]bool, 2)
 11745  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelector]gotenobject.FieldMask{
 11746  		DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelectorDevice: &Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask{},
 11747  	}
 11748  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelector]gotenobject.FieldMask{
 11749  		DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelectorDevice: &Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask{},
 11750  	}
 11751  
 11752  	for _, path := range other.GetPaths() {
 11753  		switch tp := path.(type) {
 11754  		case *DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldTerminalPath:
 11755  			removedSelectors[int(tp.selector)] = true
 11756  		case *DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldSubPath:
 11757  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
 11758  		}
 11759  	}
 11760  	for _, path := range fieldMask.GetPaths() {
 11761  		if !removedSelectors[int(path.Selector())] {
 11762  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
 11763  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldTerminalPath); ok {
 11764  					switch tp.selector {
 11765  					case DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelectorDevice:
 11766  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelectorDevice] = FullDevice_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask()
 11767  					}
 11768  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldSubPath); ok {
 11769  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
 11770  				}
 11771  			} else {
 11772  				result.Paths = append(result.Paths, path)
 11773  			}
 11774  		}
 11775  	}
 11776  	for selector, mySubMask := range mySubMasks {
 11777  		if mySubMask.PathsCount() > 0 {
 11778  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
 11779  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldSubPath{selector: selector, subPath: allowedPath})
 11780  			}
 11781  		}
 11782  	}
 11783  
 11784  	if len(result.Paths) == 0 {
 11785  		return nil
 11786  	}
 11787  	return result
 11788  }
 11789  
 11790  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 11791  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask))
 11792  }
 11793  
 11794  // FilterInputFields generates copy of field paths with output_only field paths removed
 11795  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask {
 11796  	result := &Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask{}
 11797  	result.Paths = append(result.Paths, fieldMask.Paths...)
 11798  	return result
 11799  }
 11800  
 11801  // ToFieldMask is used for proto conversions
 11802  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 11803  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 11804  	for _, path := range fieldMask.Paths {
 11805  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 11806  	}
 11807  	return protoFieldMask
 11808  }
 11809  
 11810  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 11811  	if fieldMask == nil {
 11812  		return status.Error(codes.Internal, "target field mask is nil")
 11813  	}
 11814  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPath, 0, len(protoFieldMask.Paths))
 11815  	for _, strPath := range protoFieldMask.Paths {
 11816  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPath(strPath)
 11817  		if err != nil {
 11818  			return err
 11819  		}
 11820  		fieldMask.Paths = append(fieldMask.Paths, path)
 11821  	}
 11822  	return nil
 11823  }
 11824  
 11825  // implement methods required by customType
 11826  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) Marshal() ([]byte, error) {
 11827  	protoFieldMask := fieldMask.ToProtoFieldMask()
 11828  	return proto.Marshal(protoFieldMask)
 11829  }
 11830  
 11831  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) Unmarshal(data []byte) error {
 11832  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 11833  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 11834  		return err
 11835  	}
 11836  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 11837  		return err
 11838  	}
 11839  	return nil
 11840  }
 11841  
 11842  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) Size() int {
 11843  	return proto.Size(fieldMask.ToProtoFieldMask())
 11844  }
 11845  
 11846  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) MarshalJSON() ([]byte, error) {
 11847  	return json.Marshal(fieldMask.ToProtoFieldMask())
 11848  }
 11849  
 11850  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) UnmarshalJSON(data []byte) error {
 11851  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 11852  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 11853  		return err
 11854  	}
 11855  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 11856  		return err
 11857  	}
 11858  	return nil
 11859  }
 11860  
 11861  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPath) {
 11862  	fieldMask.Paths = append(fieldMask.Paths, path)
 11863  }
 11864  
 11865  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 11866  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPath))
 11867  }
 11868  
 11869  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPath {
 11870  	if fieldMask == nil {
 11871  		return nil
 11872  	}
 11873  	return fieldMask.Paths
 11874  }
 11875  
 11876  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 11877  	if fieldMask == nil {
 11878  		return nil
 11879  	}
 11880  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 11881  	for _, path := range fieldMask.Paths {
 11882  		rawPaths = append(rawPaths, path)
 11883  	}
 11884  	return rawPaths
 11885  }
 11886  
 11887  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) SetFromCliFlag(raw string) error {
 11888  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPath(raw)
 11889  	if err != nil {
 11890  		return err
 11891  	}
 11892  	fieldMask.Paths = append(fieldMask.Paths, path)
 11893  	return nil
 11894  }
 11895  
 11896  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard) {
 11897  	for _, path := range fieldMask.Paths {
 11898  		val, _ := path.GetSingle(source)
 11899  		// if val is nil, then field does not exist in source, skip
 11900  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 11901  		if val != nil {
 11902  			path.WithIValue(val).SetTo(&target)
 11903  		}
 11904  	}
 11905  }
 11906  
 11907  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 11908  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard), source.(*Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard))
 11909  }
 11910  
 11911  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard) *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard {
 11912  	if source == nil {
 11913  		return nil
 11914  	}
 11915  	if fieldMask == nil {
 11916  		return source
 11917  	}
 11918  	result := &Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard{}
 11919  	deviceMask := &Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask{}
 11920  	wholeDeviceAccepted := false
 11921  
 11922  	for _, p := range fieldMask.Paths {
 11923  		switch tp := p.(type) {
 11924  		case *DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldTerminalPath:
 11925  			switch tp.selector {
 11926  			case DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelectorIndex:
 11927  				result.Index = source.Index
 11928  			case DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelectorDevice:
 11929  				result.Device = source.Device
 11930  				wholeDeviceAccepted = true
 11931  			}
 11932  		case *DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldSubPath:
 11933  			switch tp.selector {
 11934  			case DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelectorDevice:
 11935  				deviceMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPath))
 11936  			}
 11937  		}
 11938  	}
 11939  	if wholeDeviceAccepted == false && len(deviceMask.Paths) > 0 {
 11940  		result.Device = deviceMask.Project(source.GetDevice())
 11941  	}
 11942  	return result
 11943  }
 11944  
 11945  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 11946  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard))
 11947  }
 11948  
 11949  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask) PathsCount() int {
 11950  	if fieldMask == nil {
 11951  		return 0
 11952  	}
 11953  	return len(fieldMask.Paths)
 11954  }
 11955  
 11956  type Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask struct {
 11957  	Paths []DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPath
 11958  }
 11959  
 11960  func FullDevice_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask {
 11961  	res := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask{}
 11962  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorDescription})
 11963  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorProduct})
 11964  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorVendor})
 11965  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorSerial})
 11966  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorSlot})
 11967  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorSizeBytes})
 11968  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorFrequencyHz})
 11969  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorWidthBits})
 11970  	return res
 11971  }
 11972  
 11973  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) String() string {
 11974  	if fieldMask == nil {
 11975  		return "<nil>"
 11976  	}
 11977  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 11978  	for _, path := range fieldMask.Paths {
 11979  		pathsStr = append(pathsStr, path.String())
 11980  	}
 11981  	return strings.Join(pathsStr, ", ")
 11982  }
 11983  
 11984  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) IsFull() bool {
 11985  	if fieldMask == nil {
 11986  		return false
 11987  	}
 11988  	presentSelectors := make([]bool, 8)
 11989  	for _, path := range fieldMask.Paths {
 11990  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath); ok {
 11991  			presentSelectors[int(asFinal.selector)] = true
 11992  		}
 11993  	}
 11994  	for _, flag := range presentSelectors {
 11995  		if !flag {
 11996  			return false
 11997  		}
 11998  	}
 11999  	return true
 12000  }
 12001  
 12002  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) ProtoReflect() preflect.Message {
 12003  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 12004  		return ParseDeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPath(raw)
 12005  	})
 12006  }
 12007  
 12008  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) ProtoMessage() {
 12009  }
 12010  
 12011  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) Reset() {
 12012  	if fieldMask != nil {
 12013  		fieldMask.Paths = nil
 12014  	}
 12015  }
 12016  
 12017  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask {
 12018  	result := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask{}
 12019  	removedSelectors := make([]bool, 8)
 12020  
 12021  	for _, path := range other.GetPaths() {
 12022  		switch tp := path.(type) {
 12023  		case *DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath:
 12024  			removedSelectors[int(tp.selector)] = true
 12025  		}
 12026  	}
 12027  	for _, path := range fieldMask.GetPaths() {
 12028  		if !removedSelectors[int(path.Selector())] {
 12029  			result.Paths = append(result.Paths, path)
 12030  		}
 12031  	}
 12032  
 12033  	if len(result.Paths) == 0 {
 12034  		return nil
 12035  	}
 12036  	return result
 12037  }
 12038  
 12039  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 12040  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask))
 12041  }
 12042  
 12043  // FilterInputFields generates copy of field paths with output_only field paths removed
 12044  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask {
 12045  	result := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask{}
 12046  	result.Paths = append(result.Paths, fieldMask.Paths...)
 12047  	return result
 12048  }
 12049  
 12050  // ToFieldMask is used for proto conversions
 12051  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 12052  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 12053  	for _, path := range fieldMask.Paths {
 12054  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 12055  	}
 12056  	return protoFieldMask
 12057  }
 12058  
 12059  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 12060  	if fieldMask == nil {
 12061  		return status.Error(codes.Internal, "target field mask is nil")
 12062  	}
 12063  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPath, 0, len(protoFieldMask.Paths))
 12064  	for _, strPath := range protoFieldMask.Paths {
 12065  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPath(strPath)
 12066  		if err != nil {
 12067  			return err
 12068  		}
 12069  		fieldMask.Paths = append(fieldMask.Paths, path)
 12070  	}
 12071  	return nil
 12072  }
 12073  
 12074  // implement methods required by customType
 12075  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) Marshal() ([]byte, error) {
 12076  	protoFieldMask := fieldMask.ToProtoFieldMask()
 12077  	return proto.Marshal(protoFieldMask)
 12078  }
 12079  
 12080  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) Unmarshal(data []byte) error {
 12081  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 12082  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 12083  		return err
 12084  	}
 12085  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 12086  		return err
 12087  	}
 12088  	return nil
 12089  }
 12090  
 12091  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) Size() int {
 12092  	return proto.Size(fieldMask.ToProtoFieldMask())
 12093  }
 12094  
 12095  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) MarshalJSON() ([]byte, error) {
 12096  	return json.Marshal(fieldMask.ToProtoFieldMask())
 12097  }
 12098  
 12099  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) UnmarshalJSON(data []byte) error {
 12100  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 12101  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 12102  		return err
 12103  	}
 12104  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 12105  		return err
 12106  	}
 12107  	return nil
 12108  }
 12109  
 12110  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPath) {
 12111  	fieldMask.Paths = append(fieldMask.Paths, path)
 12112  }
 12113  
 12114  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 12115  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPath))
 12116  }
 12117  
 12118  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPath {
 12119  	if fieldMask == nil {
 12120  		return nil
 12121  	}
 12122  	return fieldMask.Paths
 12123  }
 12124  
 12125  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 12126  	if fieldMask == nil {
 12127  		return nil
 12128  	}
 12129  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 12130  	for _, path := range fieldMask.Paths {
 12131  		rawPaths = append(rawPaths, path)
 12132  	}
 12133  	return rawPaths
 12134  }
 12135  
 12136  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) SetFromCliFlag(raw string) error {
 12137  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPath(raw)
 12138  	if err != nil {
 12139  		return err
 12140  	}
 12141  	fieldMask.Paths = append(fieldMask.Paths, path)
 12142  	return nil
 12143  }
 12144  
 12145  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank) {
 12146  	for _, path := range fieldMask.Paths {
 12147  		val, _ := path.GetSingle(source)
 12148  		// if val is nil, then field does not exist in source, skip
 12149  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 12150  		if val != nil {
 12151  			path.WithIValue(val).SetTo(&target)
 12152  		}
 12153  	}
 12154  }
 12155  
 12156  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 12157  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank), source.(*Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank))
 12158  }
 12159  
 12160  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank) *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank {
 12161  	if source == nil {
 12162  		return nil
 12163  	}
 12164  	if fieldMask == nil {
 12165  		return source
 12166  	}
 12167  	result := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank{}
 12168  
 12169  	for _, p := range fieldMask.Paths {
 12170  		switch tp := p.(type) {
 12171  		case *DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath:
 12172  			switch tp.selector {
 12173  			case DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorDescription:
 12174  				result.Description = source.Description
 12175  			case DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorProduct:
 12176  				result.Product = source.Product
 12177  			case DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorVendor:
 12178  				result.Vendor = source.Vendor
 12179  			case DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorSerial:
 12180  				result.Serial = source.Serial
 12181  			case DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorSlot:
 12182  				result.Slot = source.Slot
 12183  			case DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorSizeBytes:
 12184  				result.SizeBytes = source.SizeBytes
 12185  			case DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorFrequencyHz:
 12186  				result.FrequencyHz = source.FrequencyHz
 12187  			case DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorWidthBits:
 12188  				result.WidthBits = source.WidthBits
 12189  			}
 12190  		}
 12191  	}
 12192  	return result
 12193  }
 12194  
 12195  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 12196  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank))
 12197  }
 12198  
 12199  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask) PathsCount() int {
 12200  	if fieldMask == nil {
 12201  		return 0
 12202  	}
 12203  	return len(fieldMask.Paths)
 12204  }
 12205  
 12206  type Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask struct {
 12207  	Paths []DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPath
 12208  }
 12209  
 12210  func FullDevice_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask {
 12211  	res := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask{}
 12212  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorDevId})
 12213  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorControlProtoVersion})
 12214  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorFirmwareVersion})
 12215  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorLoggerVersion})
 12216  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorBoardName})
 12217  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorSerialNumber})
 12218  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorPartNumber})
 12219  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorProductName})
 12220  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorNeuralNetworkCoreClockRate})
 12221  	return res
 12222  }
 12223  
 12224  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) String() string {
 12225  	if fieldMask == nil {
 12226  		return "<nil>"
 12227  	}
 12228  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 12229  	for _, path := range fieldMask.Paths {
 12230  		pathsStr = append(pathsStr, path.String())
 12231  	}
 12232  	return strings.Join(pathsStr, ", ")
 12233  }
 12234  
 12235  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) IsFull() bool {
 12236  	if fieldMask == nil {
 12237  		return false
 12238  	}
 12239  	presentSelectors := make([]bool, 9)
 12240  	for _, path := range fieldMask.Paths {
 12241  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath); ok {
 12242  			presentSelectors[int(asFinal.selector)] = true
 12243  		}
 12244  	}
 12245  	for _, flag := range presentSelectors {
 12246  		if !flag {
 12247  			return false
 12248  		}
 12249  	}
 12250  	return true
 12251  }
 12252  
 12253  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) ProtoReflect() preflect.Message {
 12254  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 12255  		return ParseDeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPath(raw)
 12256  	})
 12257  }
 12258  
 12259  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) ProtoMessage() {
 12260  }
 12261  
 12262  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) Reset() {
 12263  	if fieldMask != nil {
 12264  		fieldMask.Paths = nil
 12265  	}
 12266  }
 12267  
 12268  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask {
 12269  	result := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask{}
 12270  	removedSelectors := make([]bool, 9)
 12271  
 12272  	for _, path := range other.GetPaths() {
 12273  		switch tp := path.(type) {
 12274  		case *DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath:
 12275  			removedSelectors[int(tp.selector)] = true
 12276  		}
 12277  	}
 12278  	for _, path := range fieldMask.GetPaths() {
 12279  		if !removedSelectors[int(path.Selector())] {
 12280  			result.Paths = append(result.Paths, path)
 12281  		}
 12282  	}
 12283  
 12284  	if len(result.Paths) == 0 {
 12285  		return nil
 12286  	}
 12287  	return result
 12288  }
 12289  
 12290  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 12291  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask))
 12292  }
 12293  
 12294  // FilterInputFields generates copy of field paths with output_only field paths removed
 12295  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask {
 12296  	result := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask{}
 12297  	result.Paths = append(result.Paths, fieldMask.Paths...)
 12298  	return result
 12299  }
 12300  
 12301  // ToFieldMask is used for proto conversions
 12302  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 12303  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 12304  	for _, path := range fieldMask.Paths {
 12305  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 12306  	}
 12307  	return protoFieldMask
 12308  }
 12309  
 12310  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 12311  	if fieldMask == nil {
 12312  		return status.Error(codes.Internal, "target field mask is nil")
 12313  	}
 12314  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPath, 0, len(protoFieldMask.Paths))
 12315  	for _, strPath := range protoFieldMask.Paths {
 12316  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPath(strPath)
 12317  		if err != nil {
 12318  			return err
 12319  		}
 12320  		fieldMask.Paths = append(fieldMask.Paths, path)
 12321  	}
 12322  	return nil
 12323  }
 12324  
 12325  // implement methods required by customType
 12326  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) Marshal() ([]byte, error) {
 12327  	protoFieldMask := fieldMask.ToProtoFieldMask()
 12328  	return proto.Marshal(protoFieldMask)
 12329  }
 12330  
 12331  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) Unmarshal(data []byte) error {
 12332  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 12333  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 12334  		return err
 12335  	}
 12336  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 12337  		return err
 12338  	}
 12339  	return nil
 12340  }
 12341  
 12342  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) Size() int {
 12343  	return proto.Size(fieldMask.ToProtoFieldMask())
 12344  }
 12345  
 12346  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) MarshalJSON() ([]byte, error) {
 12347  	return json.Marshal(fieldMask.ToProtoFieldMask())
 12348  }
 12349  
 12350  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) UnmarshalJSON(data []byte) error {
 12351  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 12352  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 12353  		return err
 12354  	}
 12355  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 12356  		return err
 12357  	}
 12358  	return nil
 12359  }
 12360  
 12361  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPath) {
 12362  	fieldMask.Paths = append(fieldMask.Paths, path)
 12363  }
 12364  
 12365  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 12366  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPath))
 12367  }
 12368  
 12369  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPath {
 12370  	if fieldMask == nil {
 12371  		return nil
 12372  	}
 12373  	return fieldMask.Paths
 12374  }
 12375  
 12376  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 12377  	if fieldMask == nil {
 12378  		return nil
 12379  	}
 12380  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 12381  	for _, path := range fieldMask.Paths {
 12382  		rawPaths = append(rawPaths, path)
 12383  	}
 12384  	return rawPaths
 12385  }
 12386  
 12387  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) SetFromCliFlag(raw string) error {
 12388  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPath(raw)
 12389  	if err != nil {
 12390  		return err
 12391  	}
 12392  	fieldMask.Paths = append(fieldMask.Paths, path)
 12393  	return nil
 12394  }
 12395  
 12396  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo) {
 12397  	for _, path := range fieldMask.Paths {
 12398  		val, _ := path.GetSingle(source)
 12399  		// if val is nil, then field does not exist in source, skip
 12400  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 12401  		if val != nil {
 12402  			path.WithIValue(val).SetTo(&target)
 12403  		}
 12404  	}
 12405  }
 12406  
 12407  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 12408  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo), source.(*Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo))
 12409  }
 12410  
 12411  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo) *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo {
 12412  	if source == nil {
 12413  		return nil
 12414  	}
 12415  	if fieldMask == nil {
 12416  		return source
 12417  	}
 12418  	result := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo{}
 12419  
 12420  	for _, p := range fieldMask.Paths {
 12421  		switch tp := p.(type) {
 12422  		case *DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath:
 12423  			switch tp.selector {
 12424  			case DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorDevId:
 12425  				result.DevId = source.DevId
 12426  			case DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorControlProtoVersion:
 12427  				result.ControlProtoVersion = source.ControlProtoVersion
 12428  			case DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorFirmwareVersion:
 12429  				result.FirmwareVersion = source.FirmwareVersion
 12430  			case DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorLoggerVersion:
 12431  				result.LoggerVersion = source.LoggerVersion
 12432  			case DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorBoardName:
 12433  				result.BoardName = source.BoardName
 12434  			case DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorSerialNumber:
 12435  				result.SerialNumber = source.SerialNumber
 12436  			case DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorPartNumber:
 12437  				result.PartNumber = source.PartNumber
 12438  			case DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorProductName:
 12439  				result.ProductName = source.ProductName
 12440  			case DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorNeuralNetworkCoreClockRate:
 12441  				result.NeuralNetworkCoreClockRate = source.NeuralNetworkCoreClockRate
 12442  			}
 12443  		}
 12444  	}
 12445  	return result
 12446  }
 12447  
 12448  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 12449  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo))
 12450  }
 12451  
 12452  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask) PathsCount() int {
 12453  	if fieldMask == nil {
 12454  		return 0
 12455  	}
 12456  	return len(fieldMask.Paths)
 12457  }
 12458  
 12459  type Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask struct {
 12460  	Paths []DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPath
 12461  }
 12462  
 12463  func FullDevice_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask {
 12464  	res := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask{}
 12465  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPathSelectorId})
 12466  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPathSelectorProductName})
 12467  	return res
 12468  }
 12469  
 12470  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) String() string {
 12471  	if fieldMask == nil {
 12472  		return "<nil>"
 12473  	}
 12474  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 12475  	for _, path := range fieldMask.Paths {
 12476  		pathsStr = append(pathsStr, path.String())
 12477  	}
 12478  	return strings.Join(pathsStr, ", ")
 12479  }
 12480  
 12481  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) IsFull() bool {
 12482  	if fieldMask == nil {
 12483  		return false
 12484  	}
 12485  	presentSelectors := make([]bool, 2)
 12486  	for _, path := range fieldMask.Paths {
 12487  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldTerminalPath); ok {
 12488  			presentSelectors[int(asFinal.selector)] = true
 12489  		}
 12490  	}
 12491  	for _, flag := range presentSelectors {
 12492  		if !flag {
 12493  			return false
 12494  		}
 12495  	}
 12496  	return true
 12497  }
 12498  
 12499  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) ProtoReflect() preflect.Message {
 12500  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 12501  		return ParseDeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPath(raw)
 12502  	})
 12503  }
 12504  
 12505  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) ProtoMessage() {
 12506  }
 12507  
 12508  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) Reset() {
 12509  	if fieldMask != nil {
 12510  		fieldMask.Paths = nil
 12511  	}
 12512  }
 12513  
 12514  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask {
 12515  	result := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask{}
 12516  	removedSelectors := make([]bool, 2)
 12517  
 12518  	for _, path := range other.GetPaths() {
 12519  		switch tp := path.(type) {
 12520  		case *DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldTerminalPath:
 12521  			removedSelectors[int(tp.selector)] = true
 12522  		}
 12523  	}
 12524  	for _, path := range fieldMask.GetPaths() {
 12525  		if !removedSelectors[int(path.Selector())] {
 12526  			result.Paths = append(result.Paths, path)
 12527  		}
 12528  	}
 12529  
 12530  	if len(result.Paths) == 0 {
 12531  		return nil
 12532  	}
 12533  	return result
 12534  }
 12535  
 12536  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 12537  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask))
 12538  }
 12539  
 12540  // FilterInputFields generates copy of field paths with output_only field paths removed
 12541  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask {
 12542  	result := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask{}
 12543  	result.Paths = append(result.Paths, fieldMask.Paths...)
 12544  	return result
 12545  }
 12546  
 12547  // ToFieldMask is used for proto conversions
 12548  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 12549  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 12550  	for _, path := range fieldMask.Paths {
 12551  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 12552  	}
 12553  	return protoFieldMask
 12554  }
 12555  
 12556  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 12557  	if fieldMask == nil {
 12558  		return status.Error(codes.Internal, "target field mask is nil")
 12559  	}
 12560  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPath, 0, len(protoFieldMask.Paths))
 12561  	for _, strPath := range protoFieldMask.Paths {
 12562  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPath(strPath)
 12563  		if err != nil {
 12564  			return err
 12565  		}
 12566  		fieldMask.Paths = append(fieldMask.Paths, path)
 12567  	}
 12568  	return nil
 12569  }
 12570  
 12571  // implement methods required by customType
 12572  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) Marshal() ([]byte, error) {
 12573  	protoFieldMask := fieldMask.ToProtoFieldMask()
 12574  	return proto.Marshal(protoFieldMask)
 12575  }
 12576  
 12577  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) Unmarshal(data []byte) error {
 12578  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 12579  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 12580  		return err
 12581  	}
 12582  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 12583  		return err
 12584  	}
 12585  	return nil
 12586  }
 12587  
 12588  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) Size() int {
 12589  	return proto.Size(fieldMask.ToProtoFieldMask())
 12590  }
 12591  
 12592  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) MarshalJSON() ([]byte, error) {
 12593  	return json.Marshal(fieldMask.ToProtoFieldMask())
 12594  }
 12595  
 12596  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) UnmarshalJSON(data []byte) error {
 12597  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 12598  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 12599  		return err
 12600  	}
 12601  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 12602  		return err
 12603  	}
 12604  	return nil
 12605  }
 12606  
 12607  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPath) {
 12608  	fieldMask.Paths = append(fieldMask.Paths, path)
 12609  }
 12610  
 12611  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 12612  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPath))
 12613  }
 12614  
 12615  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPath {
 12616  	if fieldMask == nil {
 12617  		return nil
 12618  	}
 12619  	return fieldMask.Paths
 12620  }
 12621  
 12622  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 12623  	if fieldMask == nil {
 12624  		return nil
 12625  	}
 12626  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 12627  	for _, path := range fieldMask.Paths {
 12628  		rawPaths = append(rawPaths, path)
 12629  	}
 12630  	return rawPaths
 12631  }
 12632  
 12633  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) SetFromCliFlag(raw string) error {
 12634  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPath(raw)
 12635  	if err != nil {
 12636  		return err
 12637  	}
 12638  	fieldMask.Paths = append(fieldMask.Paths, path)
 12639  	return nil
 12640  }
 12641  
 12642  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo) {
 12643  	for _, path := range fieldMask.Paths {
 12644  		val, _ := path.GetSingle(source)
 12645  		// if val is nil, then field does not exist in source, skip
 12646  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 12647  		if val != nil {
 12648  			path.WithIValue(val).SetTo(&target)
 12649  		}
 12650  	}
 12651  }
 12652  
 12653  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 12654  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo), source.(*Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo))
 12655  }
 12656  
 12657  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo) *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo {
 12658  	if source == nil {
 12659  		return nil
 12660  	}
 12661  	if fieldMask == nil {
 12662  		return source
 12663  	}
 12664  	result := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo{}
 12665  
 12666  	for _, p := range fieldMask.Paths {
 12667  		switch tp := p.(type) {
 12668  		case *DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldTerminalPath:
 12669  			switch tp.selector {
 12670  			case DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPathSelectorId:
 12671  				result.Id = source.Id
 12672  			case DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPathSelectorProductName:
 12673  				result.ProductName = source.ProductName
 12674  			}
 12675  		}
 12676  	}
 12677  	return result
 12678  }
 12679  
 12680  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 12681  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo))
 12682  }
 12683  
 12684  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask) PathsCount() int {
 12685  	if fieldMask == nil {
 12686  		return 0
 12687  	}
 12688  	return len(fieldMask.Paths)
 12689  }
 12690  
 12691  type Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask struct {
 12692  	Paths []DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPath
 12693  }
 12694  
 12695  func FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask {
 12696  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask{}
 12697  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPathSelectorDrxCycle})
 12698  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPathSelectorMicoMode})
 12699  	return res
 12700  }
 12701  
 12702  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) String() string {
 12703  	if fieldMask == nil {
 12704  		return "<nil>"
 12705  	}
 12706  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 12707  	for _, path := range fieldMask.Paths {
 12708  		pathsStr = append(pathsStr, path.String())
 12709  	}
 12710  	return strings.Join(pathsStr, ", ")
 12711  }
 12712  
 12713  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) IsFull() bool {
 12714  	if fieldMask == nil {
 12715  		return false
 12716  	}
 12717  	presentSelectors := make([]bool, 2)
 12718  	for _, path := range fieldMask.Paths {
 12719  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldTerminalPath); ok {
 12720  			presentSelectors[int(asFinal.selector)] = true
 12721  		}
 12722  	}
 12723  	for _, flag := range presentSelectors {
 12724  		if !flag {
 12725  			return false
 12726  		}
 12727  	}
 12728  	return true
 12729  }
 12730  
 12731  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) ProtoReflect() preflect.Message {
 12732  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 12733  		return ParseDeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPath(raw)
 12734  	})
 12735  }
 12736  
 12737  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) ProtoMessage() {
 12738  }
 12739  
 12740  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) Reset() {
 12741  	if fieldMask != nil {
 12742  		fieldMask.Paths = nil
 12743  	}
 12744  }
 12745  
 12746  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask {
 12747  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask{}
 12748  	removedSelectors := make([]bool, 2)
 12749  
 12750  	for _, path := range other.GetPaths() {
 12751  		switch tp := path.(type) {
 12752  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldTerminalPath:
 12753  			removedSelectors[int(tp.selector)] = true
 12754  		}
 12755  	}
 12756  	for _, path := range fieldMask.GetPaths() {
 12757  		if !removedSelectors[int(path.Selector())] {
 12758  			result.Paths = append(result.Paths, path)
 12759  		}
 12760  	}
 12761  
 12762  	if len(result.Paths) == 0 {
 12763  		return nil
 12764  	}
 12765  	return result
 12766  }
 12767  
 12768  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 12769  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask))
 12770  }
 12771  
 12772  // FilterInputFields generates copy of field paths with output_only field paths removed
 12773  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask {
 12774  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask{}
 12775  	result.Paths = append(result.Paths, fieldMask.Paths...)
 12776  	return result
 12777  }
 12778  
 12779  // ToFieldMask is used for proto conversions
 12780  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 12781  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 12782  	for _, path := range fieldMask.Paths {
 12783  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 12784  	}
 12785  	return protoFieldMask
 12786  }
 12787  
 12788  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 12789  	if fieldMask == nil {
 12790  		return status.Error(codes.Internal, "target field mask is nil")
 12791  	}
 12792  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPath, 0, len(protoFieldMask.Paths))
 12793  	for _, strPath := range protoFieldMask.Paths {
 12794  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPath(strPath)
 12795  		if err != nil {
 12796  			return err
 12797  		}
 12798  		fieldMask.Paths = append(fieldMask.Paths, path)
 12799  	}
 12800  	return nil
 12801  }
 12802  
 12803  // implement methods required by customType
 12804  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) Marshal() ([]byte, error) {
 12805  	protoFieldMask := fieldMask.ToProtoFieldMask()
 12806  	return proto.Marshal(protoFieldMask)
 12807  }
 12808  
 12809  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) Unmarshal(data []byte) error {
 12810  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 12811  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 12812  		return err
 12813  	}
 12814  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 12815  		return err
 12816  	}
 12817  	return nil
 12818  }
 12819  
 12820  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) Size() int {
 12821  	return proto.Size(fieldMask.ToProtoFieldMask())
 12822  }
 12823  
 12824  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) MarshalJSON() ([]byte, error) {
 12825  	return json.Marshal(fieldMask.ToProtoFieldMask())
 12826  }
 12827  
 12828  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) UnmarshalJSON(data []byte) error {
 12829  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 12830  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 12831  		return err
 12832  	}
 12833  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 12834  		return err
 12835  	}
 12836  	return nil
 12837  }
 12838  
 12839  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPath) {
 12840  	fieldMask.Paths = append(fieldMask.Paths, path)
 12841  }
 12842  
 12843  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 12844  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPath))
 12845  }
 12846  
 12847  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPath {
 12848  	if fieldMask == nil {
 12849  		return nil
 12850  	}
 12851  	return fieldMask.Paths
 12852  }
 12853  
 12854  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 12855  	if fieldMask == nil {
 12856  		return nil
 12857  	}
 12858  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 12859  	for _, path := range fieldMask.Paths {
 12860  		rawPaths = append(rawPaths, path)
 12861  	}
 12862  	return rawPaths
 12863  }
 12864  
 12865  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) SetFromCliFlag(raw string) error {
 12866  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPath(raw)
 12867  	if err != nil {
 12868  		return err
 12869  	}
 12870  	fieldMask.Paths = append(fieldMask.Paths, path)
 12871  	return nil
 12872  }
 12873  
 12874  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings) {
 12875  	for _, path := range fieldMask.Paths {
 12876  		val, _ := path.GetSingle(source)
 12877  		// if val is nil, then field does not exist in source, skip
 12878  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 12879  		if val != nil {
 12880  			path.WithIValue(val).SetTo(&target)
 12881  		}
 12882  	}
 12883  }
 12884  
 12885  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 12886  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings), source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings))
 12887  }
 12888  
 12889  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings {
 12890  	if source == nil {
 12891  		return nil
 12892  	}
 12893  	if fieldMask == nil {
 12894  		return source
 12895  	}
 12896  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings{}
 12897  
 12898  	for _, p := range fieldMask.Paths {
 12899  		switch tp := p.(type) {
 12900  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldTerminalPath:
 12901  			switch tp.selector {
 12902  			case DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPathSelectorDrxCycle:
 12903  				result.DrxCycle = source.DrxCycle
 12904  			case DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPathSelectorMicoMode:
 12905  				result.MicoMode = source.MicoMode
 12906  			}
 12907  		}
 12908  	}
 12909  	return result
 12910  }
 12911  
 12912  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 12913  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings))
 12914  }
 12915  
 12916  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask) PathsCount() int {
 12917  	if fieldMask == nil {
 12918  		return 0
 12919  	}
 12920  	return len(fieldMask.Paths)
 12921  }
 12922  
 12923  type Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask struct {
 12924  	Paths []DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPath
 12925  }
 12926  
 12927  func FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask {
 12928  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask{}
 12929  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPathSelectorRegistrationSettings})
 12930  	return res
 12931  }
 12932  
 12933  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) String() string {
 12934  	if fieldMask == nil {
 12935  		return "<nil>"
 12936  	}
 12937  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 12938  	for _, path := range fieldMask.Paths {
 12939  		pathsStr = append(pathsStr, path.String())
 12940  	}
 12941  	return strings.Join(pathsStr, ", ")
 12942  }
 12943  
 12944  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) IsFull() bool {
 12945  	if fieldMask == nil {
 12946  		return false
 12947  	}
 12948  	presentSelectors := make([]bool, 1)
 12949  	for _, path := range fieldMask.Paths {
 12950  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldTerminalPath); ok {
 12951  			presentSelectors[int(asFinal.selector)] = true
 12952  		}
 12953  	}
 12954  	for _, flag := range presentSelectors {
 12955  		if !flag {
 12956  			return false
 12957  		}
 12958  	}
 12959  	return true
 12960  }
 12961  
 12962  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) ProtoReflect() preflect.Message {
 12963  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 12964  		return ParseDeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPath(raw)
 12965  	})
 12966  }
 12967  
 12968  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) ProtoMessage() {
 12969  }
 12970  
 12971  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) Reset() {
 12972  	if fieldMask != nil {
 12973  		fieldMask.Paths = nil
 12974  	}
 12975  }
 12976  
 12977  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask {
 12978  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask{}
 12979  	removedSelectors := make([]bool, 1)
 12980  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPathSelector]gotenobject.FieldMask{
 12981  		DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPathSelectorRegistrationSettings: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask{},
 12982  	}
 12983  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPathSelector]gotenobject.FieldMask{
 12984  		DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPathSelectorRegistrationSettings: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask{},
 12985  	}
 12986  
 12987  	for _, path := range other.GetPaths() {
 12988  		switch tp := path.(type) {
 12989  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldTerminalPath:
 12990  			removedSelectors[int(tp.selector)] = true
 12991  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldSubPath:
 12992  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
 12993  		}
 12994  	}
 12995  	for _, path := range fieldMask.GetPaths() {
 12996  		if !removedSelectors[int(path.Selector())] {
 12997  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
 12998  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldTerminalPath); ok {
 12999  					switch tp.selector {
 13000  					case DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPathSelectorRegistrationSettings:
 13001  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPathSelectorRegistrationSettings] = FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask()
 13002  					}
 13003  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldSubPath); ok {
 13004  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
 13005  				}
 13006  			} else {
 13007  				result.Paths = append(result.Paths, path)
 13008  			}
 13009  		}
 13010  	}
 13011  	for selector, mySubMask := range mySubMasks {
 13012  		if mySubMask.PathsCount() > 0 {
 13013  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
 13014  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldSubPath{selector: selector, subPath: allowedPath})
 13015  			}
 13016  		}
 13017  	}
 13018  
 13019  	if len(result.Paths) == 0 {
 13020  		return nil
 13021  	}
 13022  	return result
 13023  }
 13024  
 13025  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 13026  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask))
 13027  }
 13028  
 13029  // FilterInputFields generates copy of field paths with output_only field paths removed
 13030  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask {
 13031  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask{}
 13032  	result.Paths = append(result.Paths, fieldMask.Paths...)
 13033  	return result
 13034  }
 13035  
 13036  // ToFieldMask is used for proto conversions
 13037  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 13038  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 13039  	for _, path := range fieldMask.Paths {
 13040  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 13041  	}
 13042  	return protoFieldMask
 13043  }
 13044  
 13045  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 13046  	if fieldMask == nil {
 13047  		return status.Error(codes.Internal, "target field mask is nil")
 13048  	}
 13049  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPath, 0, len(protoFieldMask.Paths))
 13050  	for _, strPath := range protoFieldMask.Paths {
 13051  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPath(strPath)
 13052  		if err != nil {
 13053  			return err
 13054  		}
 13055  		fieldMask.Paths = append(fieldMask.Paths, path)
 13056  	}
 13057  	return nil
 13058  }
 13059  
 13060  // implement methods required by customType
 13061  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) Marshal() ([]byte, error) {
 13062  	protoFieldMask := fieldMask.ToProtoFieldMask()
 13063  	return proto.Marshal(protoFieldMask)
 13064  }
 13065  
 13066  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) Unmarshal(data []byte) error {
 13067  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 13068  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 13069  		return err
 13070  	}
 13071  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 13072  		return err
 13073  	}
 13074  	return nil
 13075  }
 13076  
 13077  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) Size() int {
 13078  	return proto.Size(fieldMask.ToProtoFieldMask())
 13079  }
 13080  
 13081  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) MarshalJSON() ([]byte, error) {
 13082  	return json.Marshal(fieldMask.ToProtoFieldMask())
 13083  }
 13084  
 13085  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) UnmarshalJSON(data []byte) error {
 13086  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 13087  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 13088  		return err
 13089  	}
 13090  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 13091  		return err
 13092  	}
 13093  	return nil
 13094  }
 13095  
 13096  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPath) {
 13097  	fieldMask.Paths = append(fieldMask.Paths, path)
 13098  }
 13099  
 13100  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 13101  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPath))
 13102  }
 13103  
 13104  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPath {
 13105  	if fieldMask == nil {
 13106  		return nil
 13107  	}
 13108  	return fieldMask.Paths
 13109  }
 13110  
 13111  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 13112  	if fieldMask == nil {
 13113  		return nil
 13114  	}
 13115  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 13116  	for _, path := range fieldMask.Paths {
 13117  		rawPaths = append(rawPaths, path)
 13118  	}
 13119  	return rawPaths
 13120  }
 13121  
 13122  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) SetFromCliFlag(raw string) error {
 13123  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPath(raw)
 13124  	if err != nil {
 13125  		return err
 13126  	}
 13127  	fieldMask.Paths = append(fieldMask.Paths, path)
 13128  	return nil
 13129  }
 13130  
 13131  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr) {
 13132  	for _, path := range fieldMask.Paths {
 13133  		val, _ := path.GetSingle(source)
 13134  		// if val is nil, then field does not exist in source, skip
 13135  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 13136  		if val != nil {
 13137  			path.WithIValue(val).SetTo(&target)
 13138  		}
 13139  	}
 13140  }
 13141  
 13142  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 13143  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr), source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr))
 13144  }
 13145  
 13146  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr {
 13147  	if source == nil {
 13148  		return nil
 13149  	}
 13150  	if fieldMask == nil {
 13151  		return source
 13152  	}
 13153  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr{}
 13154  	registrationSettingsMask := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask{}
 13155  	wholeRegistrationSettingsAccepted := false
 13156  
 13157  	for _, p := range fieldMask.Paths {
 13158  		switch tp := p.(type) {
 13159  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldTerminalPath:
 13160  			switch tp.selector {
 13161  			case DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPathSelectorRegistrationSettings:
 13162  				result.RegistrationSettings = source.RegistrationSettings
 13163  				wholeRegistrationSettingsAccepted = true
 13164  			}
 13165  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldSubPath:
 13166  			switch tp.selector {
 13167  			case DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPathSelectorRegistrationSettings:
 13168  				registrationSettingsMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPath))
 13169  			}
 13170  		}
 13171  	}
 13172  	if wholeRegistrationSettingsAccepted == false && len(registrationSettingsMask.Paths) > 0 {
 13173  		result.RegistrationSettings = registrationSettingsMask.Project(source.GetRegistrationSettings())
 13174  	}
 13175  	return result
 13176  }
 13177  
 13178  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 13179  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr))
 13180  }
 13181  
 13182  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask) PathsCount() int {
 13183  	if fieldMask == nil {
 13184  		return 0
 13185  	}
 13186  	return len(fieldMask.Paths)
 13187  }
 13188  
 13189  type Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask struct {
 13190  	Paths []DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPath
 13191  }
 13192  
 13193  func FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask {
 13194  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask{}
 13195  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPathSelectorApn})
 13196  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPathSelectorIpType})
 13197  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPathSelectorPassword})
 13198  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPathSelectorUser})
 13199  	return res
 13200  }
 13201  
 13202  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) String() string {
 13203  	if fieldMask == nil {
 13204  		return "<nil>"
 13205  	}
 13206  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 13207  	for _, path := range fieldMask.Paths {
 13208  		pathsStr = append(pathsStr, path.String())
 13209  	}
 13210  	return strings.Join(pathsStr, ", ")
 13211  }
 13212  
 13213  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) IsFull() bool {
 13214  	if fieldMask == nil {
 13215  		return false
 13216  	}
 13217  	presentSelectors := make([]bool, 4)
 13218  	for _, path := range fieldMask.Paths {
 13219  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldTerminalPath); ok {
 13220  			presentSelectors[int(asFinal.selector)] = true
 13221  		}
 13222  	}
 13223  	for _, flag := range presentSelectors {
 13224  		if !flag {
 13225  			return false
 13226  		}
 13227  	}
 13228  	return true
 13229  }
 13230  
 13231  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) ProtoReflect() preflect.Message {
 13232  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 13233  		return ParseDeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPath(raw)
 13234  	})
 13235  }
 13236  
 13237  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) ProtoMessage() {
 13238  }
 13239  
 13240  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) Reset() {
 13241  	if fieldMask != nil {
 13242  		fieldMask.Paths = nil
 13243  	}
 13244  }
 13245  
 13246  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask {
 13247  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask{}
 13248  	removedSelectors := make([]bool, 4)
 13249  
 13250  	for _, path := range other.GetPaths() {
 13251  		switch tp := path.(type) {
 13252  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldTerminalPath:
 13253  			removedSelectors[int(tp.selector)] = true
 13254  		}
 13255  	}
 13256  	for _, path := range fieldMask.GetPaths() {
 13257  		if !removedSelectors[int(path.Selector())] {
 13258  			result.Paths = append(result.Paths, path)
 13259  		}
 13260  	}
 13261  
 13262  	if len(result.Paths) == 0 {
 13263  		return nil
 13264  	}
 13265  	return result
 13266  }
 13267  
 13268  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 13269  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask))
 13270  }
 13271  
 13272  // FilterInputFields generates copy of field paths with output_only field paths removed
 13273  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask {
 13274  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask{}
 13275  	result.Paths = append(result.Paths, fieldMask.Paths...)
 13276  	return result
 13277  }
 13278  
 13279  // ToFieldMask is used for proto conversions
 13280  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 13281  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 13282  	for _, path := range fieldMask.Paths {
 13283  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 13284  	}
 13285  	return protoFieldMask
 13286  }
 13287  
 13288  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 13289  	if fieldMask == nil {
 13290  		return status.Error(codes.Internal, "target field mask is nil")
 13291  	}
 13292  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPath, 0, len(protoFieldMask.Paths))
 13293  	for _, strPath := range protoFieldMask.Paths {
 13294  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPath(strPath)
 13295  		if err != nil {
 13296  			return err
 13297  		}
 13298  		fieldMask.Paths = append(fieldMask.Paths, path)
 13299  	}
 13300  	return nil
 13301  }
 13302  
 13303  // implement methods required by customType
 13304  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) Marshal() ([]byte, error) {
 13305  	protoFieldMask := fieldMask.ToProtoFieldMask()
 13306  	return proto.Marshal(protoFieldMask)
 13307  }
 13308  
 13309  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) Unmarshal(data []byte) error {
 13310  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 13311  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 13312  		return err
 13313  	}
 13314  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 13315  		return err
 13316  	}
 13317  	return nil
 13318  }
 13319  
 13320  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) Size() int {
 13321  	return proto.Size(fieldMask.ToProtoFieldMask())
 13322  }
 13323  
 13324  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) MarshalJSON() ([]byte, error) {
 13325  	return json.Marshal(fieldMask.ToProtoFieldMask())
 13326  }
 13327  
 13328  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) UnmarshalJSON(data []byte) error {
 13329  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 13330  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 13331  		return err
 13332  	}
 13333  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 13334  		return err
 13335  	}
 13336  	return nil
 13337  }
 13338  
 13339  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPath) {
 13340  	fieldMask.Paths = append(fieldMask.Paths, path)
 13341  }
 13342  
 13343  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 13344  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPath))
 13345  }
 13346  
 13347  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPath {
 13348  	if fieldMask == nil {
 13349  		return nil
 13350  	}
 13351  	return fieldMask.Paths
 13352  }
 13353  
 13354  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 13355  	if fieldMask == nil {
 13356  		return nil
 13357  	}
 13358  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 13359  	for _, path := range fieldMask.Paths {
 13360  		rawPaths = append(rawPaths, path)
 13361  	}
 13362  	return rawPaths
 13363  }
 13364  
 13365  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) SetFromCliFlag(raw string) error {
 13366  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPath(raw)
 13367  	if err != nil {
 13368  		return err
 13369  	}
 13370  	fieldMask.Paths = append(fieldMask.Paths, path)
 13371  	return nil
 13372  }
 13373  
 13374  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings) {
 13375  	for _, path := range fieldMask.Paths {
 13376  		val, _ := path.GetSingle(source)
 13377  		// if val is nil, then field does not exist in source, skip
 13378  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 13379  		if val != nil {
 13380  			path.WithIValue(val).SetTo(&target)
 13381  		}
 13382  	}
 13383  }
 13384  
 13385  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 13386  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings), source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings))
 13387  }
 13388  
 13389  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings {
 13390  	if source == nil {
 13391  		return nil
 13392  	}
 13393  	if fieldMask == nil {
 13394  		return source
 13395  	}
 13396  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings{}
 13397  
 13398  	for _, p := range fieldMask.Paths {
 13399  		switch tp := p.(type) {
 13400  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldTerminalPath:
 13401  			switch tp.selector {
 13402  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPathSelectorApn:
 13403  				result.Apn = source.Apn
 13404  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPathSelectorIpType:
 13405  				result.IpType = source.IpType
 13406  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPathSelectorPassword:
 13407  				result.Password = source.Password
 13408  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPathSelectorUser:
 13409  				result.User = source.User
 13410  			}
 13411  		}
 13412  	}
 13413  	return result
 13414  }
 13415  
 13416  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 13417  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings))
 13418  }
 13419  
 13420  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask) PathsCount() int {
 13421  	if fieldMask == nil {
 13422  		return 0
 13423  	}
 13424  	return len(fieldMask.Paths)
 13425  }
 13426  
 13427  type Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask struct {
 13428  	Paths []DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPath
 13429  }
 13430  
 13431  func FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask {
 13432  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask{}
 13433  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelectorDbusPath})
 13434  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelectorSettings})
 13435  	return res
 13436  }
 13437  
 13438  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) String() string {
 13439  	if fieldMask == nil {
 13440  		return "<nil>"
 13441  	}
 13442  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 13443  	for _, path := range fieldMask.Paths {
 13444  		pathsStr = append(pathsStr, path.String())
 13445  	}
 13446  	return strings.Join(pathsStr, ", ")
 13447  }
 13448  
 13449  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) IsFull() bool {
 13450  	if fieldMask == nil {
 13451  		return false
 13452  	}
 13453  	presentSelectors := make([]bool, 2)
 13454  	for _, path := range fieldMask.Paths {
 13455  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldTerminalPath); ok {
 13456  			presentSelectors[int(asFinal.selector)] = true
 13457  		}
 13458  	}
 13459  	for _, flag := range presentSelectors {
 13460  		if !flag {
 13461  			return false
 13462  		}
 13463  	}
 13464  	return true
 13465  }
 13466  
 13467  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) ProtoReflect() preflect.Message {
 13468  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 13469  		return ParseDeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPath(raw)
 13470  	})
 13471  }
 13472  
 13473  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) ProtoMessage() {
 13474  }
 13475  
 13476  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) Reset() {
 13477  	if fieldMask != nil {
 13478  		fieldMask.Paths = nil
 13479  	}
 13480  }
 13481  
 13482  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask {
 13483  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask{}
 13484  	removedSelectors := make([]bool, 2)
 13485  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelector]gotenobject.FieldMask{
 13486  		DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelectorSettings: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask{},
 13487  	}
 13488  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelector]gotenobject.FieldMask{
 13489  		DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelectorSettings: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask{},
 13490  	}
 13491  
 13492  	for _, path := range other.GetPaths() {
 13493  		switch tp := path.(type) {
 13494  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldTerminalPath:
 13495  			removedSelectors[int(tp.selector)] = true
 13496  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldSubPath:
 13497  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
 13498  		}
 13499  	}
 13500  	for _, path := range fieldMask.GetPaths() {
 13501  		if !removedSelectors[int(path.Selector())] {
 13502  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
 13503  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldTerminalPath); ok {
 13504  					switch tp.selector {
 13505  					case DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelectorSettings:
 13506  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelectorSettings] = FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask()
 13507  					}
 13508  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldSubPath); ok {
 13509  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
 13510  				}
 13511  			} else {
 13512  				result.Paths = append(result.Paths, path)
 13513  			}
 13514  		}
 13515  	}
 13516  	for selector, mySubMask := range mySubMasks {
 13517  		if mySubMask.PathsCount() > 0 {
 13518  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
 13519  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldSubPath{selector: selector, subPath: allowedPath})
 13520  			}
 13521  		}
 13522  	}
 13523  
 13524  	if len(result.Paths) == 0 {
 13525  		return nil
 13526  	}
 13527  	return result
 13528  }
 13529  
 13530  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 13531  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask))
 13532  }
 13533  
 13534  // FilterInputFields generates copy of field paths with output_only field paths removed
 13535  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask {
 13536  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask{}
 13537  	result.Paths = append(result.Paths, fieldMask.Paths...)
 13538  	return result
 13539  }
 13540  
 13541  // ToFieldMask is used for proto conversions
 13542  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 13543  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 13544  	for _, path := range fieldMask.Paths {
 13545  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 13546  	}
 13547  	return protoFieldMask
 13548  }
 13549  
 13550  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 13551  	if fieldMask == nil {
 13552  		return status.Error(codes.Internal, "target field mask is nil")
 13553  	}
 13554  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPath, 0, len(protoFieldMask.Paths))
 13555  	for _, strPath := range protoFieldMask.Paths {
 13556  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPath(strPath)
 13557  		if err != nil {
 13558  			return err
 13559  		}
 13560  		fieldMask.Paths = append(fieldMask.Paths, path)
 13561  	}
 13562  	return nil
 13563  }
 13564  
 13565  // implement methods required by customType
 13566  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) Marshal() ([]byte, error) {
 13567  	protoFieldMask := fieldMask.ToProtoFieldMask()
 13568  	return proto.Marshal(protoFieldMask)
 13569  }
 13570  
 13571  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) Unmarshal(data []byte) error {
 13572  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 13573  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 13574  		return err
 13575  	}
 13576  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 13577  		return err
 13578  	}
 13579  	return nil
 13580  }
 13581  
 13582  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) Size() int {
 13583  	return proto.Size(fieldMask.ToProtoFieldMask())
 13584  }
 13585  
 13586  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) MarshalJSON() ([]byte, error) {
 13587  	return json.Marshal(fieldMask.ToProtoFieldMask())
 13588  }
 13589  
 13590  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) UnmarshalJSON(data []byte) error {
 13591  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 13592  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 13593  		return err
 13594  	}
 13595  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 13596  		return err
 13597  	}
 13598  	return nil
 13599  }
 13600  
 13601  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPath) {
 13602  	fieldMask.Paths = append(fieldMask.Paths, path)
 13603  }
 13604  
 13605  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 13606  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPath))
 13607  }
 13608  
 13609  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPath {
 13610  	if fieldMask == nil {
 13611  		return nil
 13612  	}
 13613  	return fieldMask.Paths
 13614  }
 13615  
 13616  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 13617  	if fieldMask == nil {
 13618  		return nil
 13619  	}
 13620  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 13621  	for _, path := range fieldMask.Paths {
 13622  		rawPaths = append(rawPaths, path)
 13623  	}
 13624  	return rawPaths
 13625  }
 13626  
 13627  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) SetFromCliFlag(raw string) error {
 13628  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPath(raw)
 13629  	if err != nil {
 13630  		return err
 13631  	}
 13632  	fieldMask.Paths = append(fieldMask.Paths, path)
 13633  	return nil
 13634  }
 13635  
 13636  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer) {
 13637  	for _, path := range fieldMask.Paths {
 13638  		val, _ := path.GetSingle(source)
 13639  		// if val is nil, then field does not exist in source, skip
 13640  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 13641  		if val != nil {
 13642  			path.WithIValue(val).SetTo(&target)
 13643  		}
 13644  	}
 13645  }
 13646  
 13647  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 13648  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer), source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer))
 13649  }
 13650  
 13651  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer {
 13652  	if source == nil {
 13653  		return nil
 13654  	}
 13655  	if fieldMask == nil {
 13656  		return source
 13657  	}
 13658  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer{}
 13659  	settingsMask := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask{}
 13660  	wholeSettingsAccepted := false
 13661  
 13662  	for _, p := range fieldMask.Paths {
 13663  		switch tp := p.(type) {
 13664  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldTerminalPath:
 13665  			switch tp.selector {
 13666  			case DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelectorDbusPath:
 13667  				result.DbusPath = source.DbusPath
 13668  			case DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelectorSettings:
 13669  				result.Settings = source.Settings
 13670  				wholeSettingsAccepted = true
 13671  			}
 13672  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldSubPath:
 13673  			switch tp.selector {
 13674  			case DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelectorSettings:
 13675  				settingsMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPath))
 13676  			}
 13677  		}
 13678  	}
 13679  	if wholeSettingsAccepted == false && len(settingsMask.Paths) > 0 {
 13680  		result.Settings = settingsMask.Project(source.GetSettings())
 13681  	}
 13682  	return result
 13683  }
 13684  
 13685  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 13686  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer))
 13687  }
 13688  
 13689  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask) PathsCount() int {
 13690  	if fieldMask == nil {
 13691  		return 0
 13692  	}
 13693  	return len(fieldMask.Paths)
 13694  }
 13695  
 13696  type Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask struct {
 13697  	Paths []DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPath
 13698  }
 13699  
 13700  func FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask {
 13701  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask{}
 13702  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelectorInitialBearer})
 13703  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelectorUeModeOperation})
 13704  	return res
 13705  }
 13706  
 13707  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) String() string {
 13708  	if fieldMask == nil {
 13709  		return "<nil>"
 13710  	}
 13711  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 13712  	for _, path := range fieldMask.Paths {
 13713  		pathsStr = append(pathsStr, path.String())
 13714  	}
 13715  	return strings.Join(pathsStr, ", ")
 13716  }
 13717  
 13718  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) IsFull() bool {
 13719  	if fieldMask == nil {
 13720  		return false
 13721  	}
 13722  	presentSelectors := make([]bool, 2)
 13723  	for _, path := range fieldMask.Paths {
 13724  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldTerminalPath); ok {
 13725  			presentSelectors[int(asFinal.selector)] = true
 13726  		}
 13727  	}
 13728  	for _, flag := range presentSelectors {
 13729  		if !flag {
 13730  			return false
 13731  		}
 13732  	}
 13733  	return true
 13734  }
 13735  
 13736  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) ProtoReflect() preflect.Message {
 13737  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 13738  		return ParseDeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPath(raw)
 13739  	})
 13740  }
 13741  
 13742  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) ProtoMessage() {
 13743  }
 13744  
 13745  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) Reset() {
 13746  	if fieldMask != nil {
 13747  		fieldMask.Paths = nil
 13748  	}
 13749  }
 13750  
 13751  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask {
 13752  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask{}
 13753  	removedSelectors := make([]bool, 2)
 13754  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelector]gotenobject.FieldMask{
 13755  		DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelectorInitialBearer: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask{},
 13756  	}
 13757  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelector]gotenobject.FieldMask{
 13758  		DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelectorInitialBearer: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask{},
 13759  	}
 13760  
 13761  	for _, path := range other.GetPaths() {
 13762  		switch tp := path.(type) {
 13763  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldTerminalPath:
 13764  			removedSelectors[int(tp.selector)] = true
 13765  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldSubPath:
 13766  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
 13767  		}
 13768  	}
 13769  	for _, path := range fieldMask.GetPaths() {
 13770  		if !removedSelectors[int(path.Selector())] {
 13771  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
 13772  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldTerminalPath); ok {
 13773  					switch tp.selector {
 13774  					case DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelectorInitialBearer:
 13775  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelectorInitialBearer] = FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask()
 13776  					}
 13777  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldSubPath); ok {
 13778  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
 13779  				}
 13780  			} else {
 13781  				result.Paths = append(result.Paths, path)
 13782  			}
 13783  		}
 13784  	}
 13785  	for selector, mySubMask := range mySubMasks {
 13786  		if mySubMask.PathsCount() > 0 {
 13787  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
 13788  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldSubPath{selector: selector, subPath: allowedPath})
 13789  			}
 13790  		}
 13791  	}
 13792  
 13793  	if len(result.Paths) == 0 {
 13794  		return nil
 13795  	}
 13796  	return result
 13797  }
 13798  
 13799  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 13800  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask))
 13801  }
 13802  
 13803  // FilterInputFields generates copy of field paths with output_only field paths removed
 13804  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask {
 13805  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask{}
 13806  	result.Paths = append(result.Paths, fieldMask.Paths...)
 13807  	return result
 13808  }
 13809  
 13810  // ToFieldMask is used for proto conversions
 13811  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 13812  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 13813  	for _, path := range fieldMask.Paths {
 13814  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 13815  	}
 13816  	return protoFieldMask
 13817  }
 13818  
 13819  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 13820  	if fieldMask == nil {
 13821  		return status.Error(codes.Internal, "target field mask is nil")
 13822  	}
 13823  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPath, 0, len(protoFieldMask.Paths))
 13824  	for _, strPath := range protoFieldMask.Paths {
 13825  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPath(strPath)
 13826  		if err != nil {
 13827  			return err
 13828  		}
 13829  		fieldMask.Paths = append(fieldMask.Paths, path)
 13830  	}
 13831  	return nil
 13832  }
 13833  
 13834  // implement methods required by customType
 13835  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) Marshal() ([]byte, error) {
 13836  	protoFieldMask := fieldMask.ToProtoFieldMask()
 13837  	return proto.Marshal(protoFieldMask)
 13838  }
 13839  
 13840  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) Unmarshal(data []byte) error {
 13841  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 13842  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 13843  		return err
 13844  	}
 13845  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 13846  		return err
 13847  	}
 13848  	return nil
 13849  }
 13850  
 13851  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) Size() int {
 13852  	return proto.Size(fieldMask.ToProtoFieldMask())
 13853  }
 13854  
 13855  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) MarshalJSON() ([]byte, error) {
 13856  	return json.Marshal(fieldMask.ToProtoFieldMask())
 13857  }
 13858  
 13859  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) UnmarshalJSON(data []byte) error {
 13860  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 13861  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 13862  		return err
 13863  	}
 13864  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 13865  		return err
 13866  	}
 13867  	return nil
 13868  }
 13869  
 13870  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPath) {
 13871  	fieldMask.Paths = append(fieldMask.Paths, path)
 13872  }
 13873  
 13874  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 13875  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPath))
 13876  }
 13877  
 13878  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPath {
 13879  	if fieldMask == nil {
 13880  		return nil
 13881  	}
 13882  	return fieldMask.Paths
 13883  }
 13884  
 13885  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 13886  	if fieldMask == nil {
 13887  		return nil
 13888  	}
 13889  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 13890  	for _, path := range fieldMask.Paths {
 13891  		rawPaths = append(rawPaths, path)
 13892  	}
 13893  	return rawPaths
 13894  }
 13895  
 13896  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) SetFromCliFlag(raw string) error {
 13897  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPath(raw)
 13898  	if err != nil {
 13899  		return err
 13900  	}
 13901  	fieldMask.Paths = append(fieldMask.Paths, path)
 13902  	return nil
 13903  }
 13904  
 13905  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps) {
 13906  	for _, path := range fieldMask.Paths {
 13907  		val, _ := path.GetSingle(source)
 13908  		// if val is nil, then field does not exist in source, skip
 13909  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 13910  		if val != nil {
 13911  			path.WithIValue(val).SetTo(&target)
 13912  		}
 13913  	}
 13914  }
 13915  
 13916  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 13917  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps), source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps))
 13918  }
 13919  
 13920  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps {
 13921  	if source == nil {
 13922  		return nil
 13923  	}
 13924  	if fieldMask == nil {
 13925  		return source
 13926  	}
 13927  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps{}
 13928  	initialBearerMask := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask{}
 13929  	wholeInitialBearerAccepted := false
 13930  
 13931  	for _, p := range fieldMask.Paths {
 13932  		switch tp := p.(type) {
 13933  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldTerminalPath:
 13934  			switch tp.selector {
 13935  			case DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelectorInitialBearer:
 13936  				result.InitialBearer = source.InitialBearer
 13937  				wholeInitialBearerAccepted = true
 13938  			case DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelectorUeModeOperation:
 13939  				result.UeModeOperation = source.UeModeOperation
 13940  			}
 13941  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldSubPath:
 13942  			switch tp.selector {
 13943  			case DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelectorInitialBearer:
 13944  				initialBearerMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPath))
 13945  			}
 13946  		}
 13947  	}
 13948  	if wholeInitialBearerAccepted == false && len(initialBearerMask.Paths) > 0 {
 13949  		result.InitialBearer = initialBearerMask.Project(source.GetInitialBearer())
 13950  	}
 13951  	return result
 13952  }
 13953  
 13954  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 13955  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps))
 13956  }
 13957  
 13958  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask) PathsCount() int {
 13959  	if fieldMask == nil {
 13960  		return 0
 13961  	}
 13962  	return len(fieldMask.Paths)
 13963  }
 13964  
 13965  type Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask struct {
 13966  	Paths []DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPath
 13967  }
 13968  
 13969  func FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask {
 13970  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask{}
 13971  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorFivegNr})
 13972  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorEnabledLocks})
 13973  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorEps})
 13974  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorImei})
 13975  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorOperatorCode})
 13976  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorOperatorName})
 13977  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorPacketServiceState})
 13978  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorPco})
 13979  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorRegistrationState})
 13980  	return res
 13981  }
 13982  
 13983  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) String() string {
 13984  	if fieldMask == nil {
 13985  		return "<nil>"
 13986  	}
 13987  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 13988  	for _, path := range fieldMask.Paths {
 13989  		pathsStr = append(pathsStr, path.String())
 13990  	}
 13991  	return strings.Join(pathsStr, ", ")
 13992  }
 13993  
 13994  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) IsFull() bool {
 13995  	if fieldMask == nil {
 13996  		return false
 13997  	}
 13998  	presentSelectors := make([]bool, 9)
 13999  	for _, path := range fieldMask.Paths {
 14000  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath); ok {
 14001  			presentSelectors[int(asFinal.selector)] = true
 14002  		}
 14003  	}
 14004  	for _, flag := range presentSelectors {
 14005  		if !flag {
 14006  			return false
 14007  		}
 14008  	}
 14009  	return true
 14010  }
 14011  
 14012  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) ProtoReflect() preflect.Message {
 14013  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 14014  		return ParseDeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPath(raw)
 14015  	})
 14016  }
 14017  
 14018  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) ProtoMessage() {
 14019  }
 14020  
 14021  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) Reset() {
 14022  	if fieldMask != nil {
 14023  		fieldMask.Paths = nil
 14024  	}
 14025  }
 14026  
 14027  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask {
 14028  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask{}
 14029  	removedSelectors := make([]bool, 9)
 14030  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelector]gotenobject.FieldMask{
 14031  		DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorFivegNr: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask{},
 14032  		DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorEps:     &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask{},
 14033  	}
 14034  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelector]gotenobject.FieldMask{
 14035  		DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorFivegNr: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask{},
 14036  		DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorEps:     &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask{},
 14037  	}
 14038  
 14039  	for _, path := range other.GetPaths() {
 14040  		switch tp := path.(type) {
 14041  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath:
 14042  			removedSelectors[int(tp.selector)] = true
 14043  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldSubPath:
 14044  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
 14045  		}
 14046  	}
 14047  	for _, path := range fieldMask.GetPaths() {
 14048  		if !removedSelectors[int(path.Selector())] {
 14049  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
 14050  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath); ok {
 14051  					switch tp.selector {
 14052  					case DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorFivegNr:
 14053  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorFivegNr] = FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask()
 14054  					case DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorEps:
 14055  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorEps] = FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask()
 14056  					}
 14057  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldSubPath); ok {
 14058  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
 14059  				}
 14060  			} else {
 14061  				result.Paths = append(result.Paths, path)
 14062  			}
 14063  		}
 14064  	}
 14065  	for selector, mySubMask := range mySubMasks {
 14066  		if mySubMask.PathsCount() > 0 {
 14067  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
 14068  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldSubPath{selector: selector, subPath: allowedPath})
 14069  			}
 14070  		}
 14071  	}
 14072  
 14073  	if len(result.Paths) == 0 {
 14074  		return nil
 14075  	}
 14076  	return result
 14077  }
 14078  
 14079  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 14080  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask))
 14081  }
 14082  
 14083  // FilterInputFields generates copy of field paths with output_only field paths removed
 14084  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask {
 14085  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask{}
 14086  	result.Paths = append(result.Paths, fieldMask.Paths...)
 14087  	return result
 14088  }
 14089  
 14090  // ToFieldMask is used for proto conversions
 14091  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 14092  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 14093  	for _, path := range fieldMask.Paths {
 14094  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 14095  	}
 14096  	return protoFieldMask
 14097  }
 14098  
 14099  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 14100  	if fieldMask == nil {
 14101  		return status.Error(codes.Internal, "target field mask is nil")
 14102  	}
 14103  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPath, 0, len(protoFieldMask.Paths))
 14104  	for _, strPath := range protoFieldMask.Paths {
 14105  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPath(strPath)
 14106  		if err != nil {
 14107  			return err
 14108  		}
 14109  		fieldMask.Paths = append(fieldMask.Paths, path)
 14110  	}
 14111  	return nil
 14112  }
 14113  
 14114  // implement methods required by customType
 14115  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) Marshal() ([]byte, error) {
 14116  	protoFieldMask := fieldMask.ToProtoFieldMask()
 14117  	return proto.Marshal(protoFieldMask)
 14118  }
 14119  
 14120  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) Unmarshal(data []byte) error {
 14121  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 14122  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 14123  		return err
 14124  	}
 14125  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 14126  		return err
 14127  	}
 14128  	return nil
 14129  }
 14130  
 14131  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) Size() int {
 14132  	return proto.Size(fieldMask.ToProtoFieldMask())
 14133  }
 14134  
 14135  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) MarshalJSON() ([]byte, error) {
 14136  	return json.Marshal(fieldMask.ToProtoFieldMask())
 14137  }
 14138  
 14139  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) UnmarshalJSON(data []byte) error {
 14140  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 14141  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 14142  		return err
 14143  	}
 14144  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 14145  		return err
 14146  	}
 14147  	return nil
 14148  }
 14149  
 14150  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPath) {
 14151  	fieldMask.Paths = append(fieldMask.Paths, path)
 14152  }
 14153  
 14154  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 14155  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPath))
 14156  }
 14157  
 14158  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPath {
 14159  	if fieldMask == nil {
 14160  		return nil
 14161  	}
 14162  	return fieldMask.Paths
 14163  }
 14164  
 14165  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 14166  	if fieldMask == nil {
 14167  		return nil
 14168  	}
 14169  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 14170  	for _, path := range fieldMask.Paths {
 14171  		rawPaths = append(rawPaths, path)
 14172  	}
 14173  	return rawPaths
 14174  }
 14175  
 14176  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) SetFromCliFlag(raw string) error {
 14177  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPath(raw)
 14178  	if err != nil {
 14179  		return err
 14180  	}
 14181  	fieldMask.Paths = append(fieldMask.Paths, path)
 14182  	return nil
 14183  }
 14184  
 14185  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp) {
 14186  	for _, path := range fieldMask.Paths {
 14187  		val, _ := path.GetSingle(source)
 14188  		// if val is nil, then field does not exist in source, skip
 14189  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 14190  		if val != nil {
 14191  			path.WithIValue(val).SetTo(&target)
 14192  		}
 14193  	}
 14194  }
 14195  
 14196  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 14197  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp), source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp))
 14198  }
 14199  
 14200  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp {
 14201  	if source == nil {
 14202  		return nil
 14203  	}
 14204  	if fieldMask == nil {
 14205  		return source
 14206  	}
 14207  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp{}
 14208  	fivegNrMask := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask{}
 14209  	wholeFivegNrAccepted := false
 14210  	epsMask := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask{}
 14211  	wholeEpsAccepted := false
 14212  
 14213  	for _, p := range fieldMask.Paths {
 14214  		switch tp := p.(type) {
 14215  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath:
 14216  			switch tp.selector {
 14217  			case DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorFivegNr:
 14218  				result.FivegNr = source.FivegNr
 14219  				wholeFivegNrAccepted = true
 14220  			case DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorEnabledLocks:
 14221  				result.EnabledLocks = source.EnabledLocks
 14222  			case DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorEps:
 14223  				result.Eps = source.Eps
 14224  				wholeEpsAccepted = true
 14225  			case DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorImei:
 14226  				result.Imei = source.Imei
 14227  			case DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorOperatorCode:
 14228  				result.OperatorCode = source.OperatorCode
 14229  			case DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorOperatorName:
 14230  				result.OperatorName = source.OperatorName
 14231  			case DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorPacketServiceState:
 14232  				result.PacketServiceState = source.PacketServiceState
 14233  			case DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorPco:
 14234  				result.Pco = source.Pco
 14235  			case DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorRegistrationState:
 14236  				result.RegistrationState = source.RegistrationState
 14237  			}
 14238  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldSubPath:
 14239  			switch tp.selector {
 14240  			case DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorFivegNr:
 14241  				fivegNrMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPath))
 14242  			case DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorEps:
 14243  				epsMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPath))
 14244  			}
 14245  		}
 14246  	}
 14247  	if wholeFivegNrAccepted == false && len(fivegNrMask.Paths) > 0 {
 14248  		result.FivegNr = fivegNrMask.Project(source.GetFivegNr())
 14249  	}
 14250  	if wholeEpsAccepted == false && len(epsMask.Paths) > 0 {
 14251  		result.Eps = epsMask.Project(source.GetEps())
 14252  	}
 14253  	return result
 14254  }
 14255  
 14256  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 14257  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp))
 14258  }
 14259  
 14260  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask) PathsCount() int {
 14261  	if fieldMask == nil {
 14262  		return 0
 14263  	}
 14264  	return len(fieldMask.Paths)
 14265  }
 14266  
 14267  type Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask struct {
 14268  	Paths []DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPath
 14269  }
 14270  
 14271  func FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask {
 14272  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask{}
 14273  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorActivationState})
 14274  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorCdma1xRegistrationState})
 14275  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorEsn})
 14276  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorEvdoRegistrationState})
 14277  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorMeid})
 14278  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorNid})
 14279  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorSid})
 14280  	return res
 14281  }
 14282  
 14283  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) String() string {
 14284  	if fieldMask == nil {
 14285  		return "<nil>"
 14286  	}
 14287  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 14288  	for _, path := range fieldMask.Paths {
 14289  		pathsStr = append(pathsStr, path.String())
 14290  	}
 14291  	return strings.Join(pathsStr, ", ")
 14292  }
 14293  
 14294  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) IsFull() bool {
 14295  	if fieldMask == nil {
 14296  		return false
 14297  	}
 14298  	presentSelectors := make([]bool, 7)
 14299  	for _, path := range fieldMask.Paths {
 14300  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath); ok {
 14301  			presentSelectors[int(asFinal.selector)] = true
 14302  		}
 14303  	}
 14304  	for _, flag := range presentSelectors {
 14305  		if !flag {
 14306  			return false
 14307  		}
 14308  	}
 14309  	return true
 14310  }
 14311  
 14312  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) ProtoReflect() preflect.Message {
 14313  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 14314  		return ParseDeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPath(raw)
 14315  	})
 14316  }
 14317  
 14318  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) ProtoMessage() {
 14319  }
 14320  
 14321  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) Reset() {
 14322  	if fieldMask != nil {
 14323  		fieldMask.Paths = nil
 14324  	}
 14325  }
 14326  
 14327  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask {
 14328  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask{}
 14329  	removedSelectors := make([]bool, 7)
 14330  
 14331  	for _, path := range other.GetPaths() {
 14332  		switch tp := path.(type) {
 14333  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath:
 14334  			removedSelectors[int(tp.selector)] = true
 14335  		}
 14336  	}
 14337  	for _, path := range fieldMask.GetPaths() {
 14338  		if !removedSelectors[int(path.Selector())] {
 14339  			result.Paths = append(result.Paths, path)
 14340  		}
 14341  	}
 14342  
 14343  	if len(result.Paths) == 0 {
 14344  		return nil
 14345  	}
 14346  	return result
 14347  }
 14348  
 14349  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 14350  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask))
 14351  }
 14352  
 14353  // FilterInputFields generates copy of field paths with output_only field paths removed
 14354  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask {
 14355  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask{}
 14356  	result.Paths = append(result.Paths, fieldMask.Paths...)
 14357  	return result
 14358  }
 14359  
 14360  // ToFieldMask is used for proto conversions
 14361  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 14362  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 14363  	for _, path := range fieldMask.Paths {
 14364  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 14365  	}
 14366  	return protoFieldMask
 14367  }
 14368  
 14369  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 14370  	if fieldMask == nil {
 14371  		return status.Error(codes.Internal, "target field mask is nil")
 14372  	}
 14373  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPath, 0, len(protoFieldMask.Paths))
 14374  	for _, strPath := range protoFieldMask.Paths {
 14375  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPath(strPath)
 14376  		if err != nil {
 14377  			return err
 14378  		}
 14379  		fieldMask.Paths = append(fieldMask.Paths, path)
 14380  	}
 14381  	return nil
 14382  }
 14383  
 14384  // implement methods required by customType
 14385  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) Marshal() ([]byte, error) {
 14386  	protoFieldMask := fieldMask.ToProtoFieldMask()
 14387  	return proto.Marshal(protoFieldMask)
 14388  }
 14389  
 14390  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) Unmarshal(data []byte) error {
 14391  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 14392  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 14393  		return err
 14394  	}
 14395  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 14396  		return err
 14397  	}
 14398  	return nil
 14399  }
 14400  
 14401  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) Size() int {
 14402  	return proto.Size(fieldMask.ToProtoFieldMask())
 14403  }
 14404  
 14405  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) MarshalJSON() ([]byte, error) {
 14406  	return json.Marshal(fieldMask.ToProtoFieldMask())
 14407  }
 14408  
 14409  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) UnmarshalJSON(data []byte) error {
 14410  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 14411  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 14412  		return err
 14413  	}
 14414  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 14415  		return err
 14416  	}
 14417  	return nil
 14418  }
 14419  
 14420  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPath) {
 14421  	fieldMask.Paths = append(fieldMask.Paths, path)
 14422  }
 14423  
 14424  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 14425  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPath))
 14426  }
 14427  
 14428  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPath {
 14429  	if fieldMask == nil {
 14430  		return nil
 14431  	}
 14432  	return fieldMask.Paths
 14433  }
 14434  
 14435  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 14436  	if fieldMask == nil {
 14437  		return nil
 14438  	}
 14439  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 14440  	for _, path := range fieldMask.Paths {
 14441  		rawPaths = append(rawPaths, path)
 14442  	}
 14443  	return rawPaths
 14444  }
 14445  
 14446  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) SetFromCliFlag(raw string) error {
 14447  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPath(raw)
 14448  	if err != nil {
 14449  		return err
 14450  	}
 14451  	fieldMask.Paths = append(fieldMask.Paths, path)
 14452  	return nil
 14453  }
 14454  
 14455  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma) {
 14456  	for _, path := range fieldMask.Paths {
 14457  		val, _ := path.GetSingle(source)
 14458  		// if val is nil, then field does not exist in source, skip
 14459  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 14460  		if val != nil {
 14461  			path.WithIValue(val).SetTo(&target)
 14462  		}
 14463  	}
 14464  }
 14465  
 14466  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 14467  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma), source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma))
 14468  }
 14469  
 14470  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma {
 14471  	if source == nil {
 14472  		return nil
 14473  	}
 14474  	if fieldMask == nil {
 14475  		return source
 14476  	}
 14477  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma{}
 14478  
 14479  	for _, p := range fieldMask.Paths {
 14480  		switch tp := p.(type) {
 14481  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath:
 14482  			switch tp.selector {
 14483  			case DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorActivationState:
 14484  				result.ActivationState = source.ActivationState
 14485  			case DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorCdma1xRegistrationState:
 14486  				result.Cdma1XRegistrationState = source.Cdma1XRegistrationState
 14487  			case DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorEsn:
 14488  				result.Esn = source.Esn
 14489  			case DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorEvdoRegistrationState:
 14490  				result.EvdoRegistrationState = source.EvdoRegistrationState
 14491  			case DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorMeid:
 14492  				result.Meid = source.Meid
 14493  			case DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorNid:
 14494  				result.Nid = source.Nid
 14495  			case DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorSid:
 14496  				result.Sid = source.Sid
 14497  			}
 14498  		}
 14499  	}
 14500  	return result
 14501  }
 14502  
 14503  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 14504  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma))
 14505  }
 14506  
 14507  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask) PathsCount() int {
 14508  	if fieldMask == nil {
 14509  		return 0
 14510  	}
 14511  	return len(fieldMask.Paths)
 14512  }
 14513  
 14514  type Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask struct {
 14515  	Paths []DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPath
 14516  }
 14517  
 14518  func FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask {
 14519  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask{}
 14520  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPathSelectorRecent})
 14521  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPathSelectorValue})
 14522  	return res
 14523  }
 14524  
 14525  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) String() string {
 14526  	if fieldMask == nil {
 14527  		return "<nil>"
 14528  	}
 14529  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 14530  	for _, path := range fieldMask.Paths {
 14531  		pathsStr = append(pathsStr, path.String())
 14532  	}
 14533  	return strings.Join(pathsStr, ", ")
 14534  }
 14535  
 14536  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) IsFull() bool {
 14537  	if fieldMask == nil {
 14538  		return false
 14539  	}
 14540  	presentSelectors := make([]bool, 2)
 14541  	for _, path := range fieldMask.Paths {
 14542  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldTerminalPath); ok {
 14543  			presentSelectors[int(asFinal.selector)] = true
 14544  		}
 14545  	}
 14546  	for _, flag := range presentSelectors {
 14547  		if !flag {
 14548  			return false
 14549  		}
 14550  	}
 14551  	return true
 14552  }
 14553  
 14554  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) ProtoReflect() preflect.Message {
 14555  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 14556  		return ParseDeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPath(raw)
 14557  	})
 14558  }
 14559  
 14560  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) ProtoMessage() {
 14561  }
 14562  
 14563  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) Reset() {
 14564  	if fieldMask != nil {
 14565  		fieldMask.Paths = nil
 14566  	}
 14567  }
 14568  
 14569  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask {
 14570  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask{}
 14571  	removedSelectors := make([]bool, 2)
 14572  
 14573  	for _, path := range other.GetPaths() {
 14574  		switch tp := path.(type) {
 14575  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldTerminalPath:
 14576  			removedSelectors[int(tp.selector)] = true
 14577  		}
 14578  	}
 14579  	for _, path := range fieldMask.GetPaths() {
 14580  		if !removedSelectors[int(path.Selector())] {
 14581  			result.Paths = append(result.Paths, path)
 14582  		}
 14583  	}
 14584  
 14585  	if len(result.Paths) == 0 {
 14586  		return nil
 14587  	}
 14588  	return result
 14589  }
 14590  
 14591  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 14592  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask))
 14593  }
 14594  
 14595  // FilterInputFields generates copy of field paths with output_only field paths removed
 14596  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask {
 14597  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask{}
 14598  	result.Paths = append(result.Paths, fieldMask.Paths...)
 14599  	return result
 14600  }
 14601  
 14602  // ToFieldMask is used for proto conversions
 14603  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 14604  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 14605  	for _, path := range fieldMask.Paths {
 14606  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 14607  	}
 14608  	return protoFieldMask
 14609  }
 14610  
 14611  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 14612  	if fieldMask == nil {
 14613  		return status.Error(codes.Internal, "target field mask is nil")
 14614  	}
 14615  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPath, 0, len(protoFieldMask.Paths))
 14616  	for _, strPath := range protoFieldMask.Paths {
 14617  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPath(strPath)
 14618  		if err != nil {
 14619  			return err
 14620  		}
 14621  		fieldMask.Paths = append(fieldMask.Paths, path)
 14622  	}
 14623  	return nil
 14624  }
 14625  
 14626  // implement methods required by customType
 14627  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) Marshal() ([]byte, error) {
 14628  	protoFieldMask := fieldMask.ToProtoFieldMask()
 14629  	return proto.Marshal(protoFieldMask)
 14630  }
 14631  
 14632  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) Unmarshal(data []byte) error {
 14633  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 14634  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 14635  		return err
 14636  	}
 14637  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 14638  		return err
 14639  	}
 14640  	return nil
 14641  }
 14642  
 14643  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) Size() int {
 14644  	return proto.Size(fieldMask.ToProtoFieldMask())
 14645  }
 14646  
 14647  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) MarshalJSON() ([]byte, error) {
 14648  	return json.Marshal(fieldMask.ToProtoFieldMask())
 14649  }
 14650  
 14651  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) UnmarshalJSON(data []byte) error {
 14652  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 14653  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 14654  		return err
 14655  	}
 14656  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 14657  		return err
 14658  	}
 14659  	return nil
 14660  }
 14661  
 14662  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPath) {
 14663  	fieldMask.Paths = append(fieldMask.Paths, path)
 14664  }
 14665  
 14666  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 14667  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPath))
 14668  }
 14669  
 14670  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPath {
 14671  	if fieldMask == nil {
 14672  		return nil
 14673  	}
 14674  	return fieldMask.Paths
 14675  }
 14676  
 14677  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 14678  	if fieldMask == nil {
 14679  		return nil
 14680  	}
 14681  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 14682  	for _, path := range fieldMask.Paths {
 14683  		rawPaths = append(rawPaths, path)
 14684  	}
 14685  	return rawPaths
 14686  }
 14687  
 14688  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) SetFromCliFlag(raw string) error {
 14689  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPath(raw)
 14690  	if err != nil {
 14691  		return err
 14692  	}
 14693  	fieldMask.Paths = append(fieldMask.Paths, path)
 14694  	return nil
 14695  }
 14696  
 14697  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality) {
 14698  	for _, path := range fieldMask.Paths {
 14699  		val, _ := path.GetSingle(source)
 14700  		// if val is nil, then field does not exist in source, skip
 14701  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 14702  		if val != nil {
 14703  			path.WithIValue(val).SetTo(&target)
 14704  		}
 14705  	}
 14706  }
 14707  
 14708  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 14709  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality), source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality))
 14710  }
 14711  
 14712  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality {
 14713  	if source == nil {
 14714  		return nil
 14715  	}
 14716  	if fieldMask == nil {
 14717  		return source
 14718  	}
 14719  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality{}
 14720  
 14721  	for _, p := range fieldMask.Paths {
 14722  		switch tp := p.(type) {
 14723  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldTerminalPath:
 14724  			switch tp.selector {
 14725  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPathSelectorRecent:
 14726  				result.Recent = source.Recent
 14727  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPathSelectorValue:
 14728  				result.Value = source.Value
 14729  			}
 14730  		}
 14731  	}
 14732  	return result
 14733  }
 14734  
 14735  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 14736  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality))
 14737  }
 14738  
 14739  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask) PathsCount() int {
 14740  	if fieldMask == nil {
 14741  		return 0
 14742  	}
 14743  	return len(fieldMask.Paths)
 14744  }
 14745  
 14746  type Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask struct {
 14747  	Paths []DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPath
 14748  }
 14749  
 14750  func FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask {
 14751  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask{}
 14752  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorAccessTechnologies})
 14753  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorBearers})
 14754  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCarrierConfiguration})
 14755  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCarrierConfigurationRevision})
 14756  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCurrentBands})
 14757  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCurrentCapabilities})
 14758  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCurrentModes})
 14759  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorDevice})
 14760  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorDeviceIdentifier})
 14761  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorDrivers})
 14762  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorEquipmentIdentifier})
 14763  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorHardwareRevision})
 14764  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorManufacturer})
 14765  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorModel})
 14766  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorOwnNumbers})
 14767  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPlugin})
 14768  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPorts})
 14769  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPowerState})
 14770  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPrimaryPort})
 14771  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPrimarySimSlot})
 14772  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorRevision})
 14773  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSignalQuality})
 14774  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSim})
 14775  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSimSlots})
 14776  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorState})
 14777  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorStateFailedReason})
 14778  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedBands})
 14779  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedCapabilities})
 14780  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedIpFamilies})
 14781  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedModes})
 14782  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorUnlockRequired})
 14783  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorUnlockRetries})
 14784  	return res
 14785  }
 14786  
 14787  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) String() string {
 14788  	if fieldMask == nil {
 14789  		return "<nil>"
 14790  	}
 14791  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 14792  	for _, path := range fieldMask.Paths {
 14793  		pathsStr = append(pathsStr, path.String())
 14794  	}
 14795  	return strings.Join(pathsStr, ", ")
 14796  }
 14797  
 14798  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) IsFull() bool {
 14799  	if fieldMask == nil {
 14800  		return false
 14801  	}
 14802  	presentSelectors := make([]bool, 32)
 14803  	for _, path := range fieldMask.Paths {
 14804  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath); ok {
 14805  			presentSelectors[int(asFinal.selector)] = true
 14806  		}
 14807  	}
 14808  	for _, flag := range presentSelectors {
 14809  		if !flag {
 14810  			return false
 14811  		}
 14812  	}
 14813  	return true
 14814  }
 14815  
 14816  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) ProtoReflect() preflect.Message {
 14817  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 14818  		return ParseDeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPath(raw)
 14819  	})
 14820  }
 14821  
 14822  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) ProtoMessage() {
 14823  }
 14824  
 14825  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) Reset() {
 14826  	if fieldMask != nil {
 14827  		fieldMask.Paths = nil
 14828  	}
 14829  }
 14830  
 14831  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask {
 14832  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask{}
 14833  	removedSelectors := make([]bool, 32)
 14834  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelector]gotenobject.FieldMask{
 14835  		DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSignalQuality: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask{},
 14836  	}
 14837  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelector]gotenobject.FieldMask{
 14838  		DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSignalQuality: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask{},
 14839  	}
 14840  
 14841  	for _, path := range other.GetPaths() {
 14842  		switch tp := path.(type) {
 14843  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath:
 14844  			removedSelectors[int(tp.selector)] = true
 14845  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldSubPath:
 14846  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
 14847  		}
 14848  	}
 14849  	for _, path := range fieldMask.GetPaths() {
 14850  		if !removedSelectors[int(path.Selector())] {
 14851  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
 14852  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath); ok {
 14853  					switch tp.selector {
 14854  					case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSignalQuality:
 14855  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSignalQuality] = FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask()
 14856  					}
 14857  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldSubPath); ok {
 14858  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
 14859  				}
 14860  			} else {
 14861  				result.Paths = append(result.Paths, path)
 14862  			}
 14863  		}
 14864  	}
 14865  	for selector, mySubMask := range mySubMasks {
 14866  		if mySubMask.PathsCount() > 0 {
 14867  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
 14868  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldSubPath{selector: selector, subPath: allowedPath})
 14869  			}
 14870  		}
 14871  	}
 14872  
 14873  	if len(result.Paths) == 0 {
 14874  		return nil
 14875  	}
 14876  	return result
 14877  }
 14878  
 14879  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 14880  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask))
 14881  }
 14882  
 14883  // FilterInputFields generates copy of field paths with output_only field paths removed
 14884  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask {
 14885  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask{}
 14886  	result.Paths = append(result.Paths, fieldMask.Paths...)
 14887  	return result
 14888  }
 14889  
 14890  // ToFieldMask is used for proto conversions
 14891  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 14892  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 14893  	for _, path := range fieldMask.Paths {
 14894  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 14895  	}
 14896  	return protoFieldMask
 14897  }
 14898  
 14899  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 14900  	if fieldMask == nil {
 14901  		return status.Error(codes.Internal, "target field mask is nil")
 14902  	}
 14903  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPath, 0, len(protoFieldMask.Paths))
 14904  	for _, strPath := range protoFieldMask.Paths {
 14905  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPath(strPath)
 14906  		if err != nil {
 14907  			return err
 14908  		}
 14909  		fieldMask.Paths = append(fieldMask.Paths, path)
 14910  	}
 14911  	return nil
 14912  }
 14913  
 14914  // implement methods required by customType
 14915  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) Marshal() ([]byte, error) {
 14916  	protoFieldMask := fieldMask.ToProtoFieldMask()
 14917  	return proto.Marshal(protoFieldMask)
 14918  }
 14919  
 14920  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) Unmarshal(data []byte) error {
 14921  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 14922  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 14923  		return err
 14924  	}
 14925  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 14926  		return err
 14927  	}
 14928  	return nil
 14929  }
 14930  
 14931  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) Size() int {
 14932  	return proto.Size(fieldMask.ToProtoFieldMask())
 14933  }
 14934  
 14935  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) MarshalJSON() ([]byte, error) {
 14936  	return json.Marshal(fieldMask.ToProtoFieldMask())
 14937  }
 14938  
 14939  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) UnmarshalJSON(data []byte) error {
 14940  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 14941  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 14942  		return err
 14943  	}
 14944  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 14945  		return err
 14946  	}
 14947  	return nil
 14948  }
 14949  
 14950  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPath) {
 14951  	fieldMask.Paths = append(fieldMask.Paths, path)
 14952  }
 14953  
 14954  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 14955  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPath))
 14956  }
 14957  
 14958  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPath {
 14959  	if fieldMask == nil {
 14960  		return nil
 14961  	}
 14962  	return fieldMask.Paths
 14963  }
 14964  
 14965  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 14966  	if fieldMask == nil {
 14967  		return nil
 14968  	}
 14969  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 14970  	for _, path := range fieldMask.Paths {
 14971  		rawPaths = append(rawPaths, path)
 14972  	}
 14973  	return rawPaths
 14974  }
 14975  
 14976  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) SetFromCliFlag(raw string) error {
 14977  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPath(raw)
 14978  	if err != nil {
 14979  		return err
 14980  	}
 14981  	fieldMask.Paths = append(fieldMask.Paths, path)
 14982  	return nil
 14983  }
 14984  
 14985  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic) {
 14986  	for _, path := range fieldMask.Paths {
 14987  		val, _ := path.GetSingle(source)
 14988  		// if val is nil, then field does not exist in source, skip
 14989  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 14990  		if val != nil {
 14991  			path.WithIValue(val).SetTo(&target)
 14992  		}
 14993  	}
 14994  }
 14995  
 14996  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 14997  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic), source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic))
 14998  }
 14999  
 15000  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic {
 15001  	if source == nil {
 15002  		return nil
 15003  	}
 15004  	if fieldMask == nil {
 15005  		return source
 15006  	}
 15007  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic{}
 15008  	signalQualityMask := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask{}
 15009  	wholeSignalQualityAccepted := false
 15010  
 15011  	for _, p := range fieldMask.Paths {
 15012  		switch tp := p.(type) {
 15013  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath:
 15014  			switch tp.selector {
 15015  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorAccessTechnologies:
 15016  				result.AccessTechnologies = source.AccessTechnologies
 15017  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorBearers:
 15018  				result.Bearers = source.Bearers
 15019  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCarrierConfiguration:
 15020  				result.CarrierConfiguration = source.CarrierConfiguration
 15021  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCarrierConfigurationRevision:
 15022  				result.CarrierConfigurationRevision = source.CarrierConfigurationRevision
 15023  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCurrentBands:
 15024  				result.CurrentBands = source.CurrentBands
 15025  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCurrentCapabilities:
 15026  				result.CurrentCapabilities = source.CurrentCapabilities
 15027  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCurrentModes:
 15028  				result.CurrentModes = source.CurrentModes
 15029  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorDevice:
 15030  				result.Device = source.Device
 15031  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorDeviceIdentifier:
 15032  				result.DeviceIdentifier = source.DeviceIdentifier
 15033  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorDrivers:
 15034  				result.Drivers = source.Drivers
 15035  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorEquipmentIdentifier:
 15036  				result.EquipmentIdentifier = source.EquipmentIdentifier
 15037  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorHardwareRevision:
 15038  				result.HardwareRevision = source.HardwareRevision
 15039  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorManufacturer:
 15040  				result.Manufacturer = source.Manufacturer
 15041  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorModel:
 15042  				result.Model = source.Model
 15043  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorOwnNumbers:
 15044  				result.OwnNumbers = source.OwnNumbers
 15045  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPlugin:
 15046  				result.Plugin = source.Plugin
 15047  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPorts:
 15048  				result.Ports = source.Ports
 15049  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPowerState:
 15050  				result.PowerState = source.PowerState
 15051  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPrimaryPort:
 15052  				result.PrimaryPort = source.PrimaryPort
 15053  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPrimarySimSlot:
 15054  				result.PrimarySimSlot = source.PrimarySimSlot
 15055  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorRevision:
 15056  				result.Revision = source.Revision
 15057  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSignalQuality:
 15058  				result.SignalQuality = source.SignalQuality
 15059  				wholeSignalQualityAccepted = true
 15060  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSim:
 15061  				result.Sim = source.Sim
 15062  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSimSlots:
 15063  				result.SimSlots = source.SimSlots
 15064  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorState:
 15065  				result.State = source.State
 15066  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorStateFailedReason:
 15067  				result.StateFailedReason = source.StateFailedReason
 15068  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedBands:
 15069  				result.SupportedBands = source.SupportedBands
 15070  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedCapabilities:
 15071  				result.SupportedCapabilities = source.SupportedCapabilities
 15072  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedIpFamilies:
 15073  				result.SupportedIpFamilies = source.SupportedIpFamilies
 15074  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedModes:
 15075  				result.SupportedModes = source.SupportedModes
 15076  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorUnlockRequired:
 15077  				result.UnlockRequired = source.UnlockRequired
 15078  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorUnlockRetries:
 15079  				result.UnlockRetries = source.UnlockRetries
 15080  			}
 15081  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldSubPath:
 15082  			switch tp.selector {
 15083  			case DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSignalQuality:
 15084  				signalQualityMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPath))
 15085  			}
 15086  		}
 15087  	}
 15088  	if wholeSignalQualityAccepted == false && len(signalQualityMask.Paths) > 0 {
 15089  		result.SignalQuality = signalQualityMask.Project(source.GetSignalQuality())
 15090  	}
 15091  	return result
 15092  }
 15093  
 15094  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 15095  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic))
 15096  }
 15097  
 15098  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask) PathsCount() int {
 15099  	if fieldMask == nil {
 15100  		return 0
 15101  	}
 15102  	return len(fieldMask.Paths)
 15103  }
 15104  
 15105  type Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask struct {
 15106  	Paths []DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPath
 15107  }
 15108  
 15109  func FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask {
 15110  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask{}
 15111  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorDbusPath})
 15112  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorActive})
 15113  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorEid})
 15114  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorEmergencyNumbers})
 15115  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorEsimStatus})
 15116  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorGid1})
 15117  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorGid2})
 15118  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorIccid})
 15119  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorImsi})
 15120  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorOperatorCode})
 15121  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorOperatorName})
 15122  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorRemovability})
 15123  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorSimType})
 15124  	return res
 15125  }
 15126  
 15127  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) String() string {
 15128  	if fieldMask == nil {
 15129  		return "<nil>"
 15130  	}
 15131  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 15132  	for _, path := range fieldMask.Paths {
 15133  		pathsStr = append(pathsStr, path.String())
 15134  	}
 15135  	return strings.Join(pathsStr, ", ")
 15136  }
 15137  
 15138  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) IsFull() bool {
 15139  	if fieldMask == nil {
 15140  		return false
 15141  	}
 15142  	presentSelectors := make([]bool, 13)
 15143  	for _, path := range fieldMask.Paths {
 15144  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath); ok {
 15145  			presentSelectors[int(asFinal.selector)] = true
 15146  		}
 15147  	}
 15148  	for _, flag := range presentSelectors {
 15149  		if !flag {
 15150  			return false
 15151  		}
 15152  	}
 15153  	return true
 15154  }
 15155  
 15156  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) ProtoReflect() preflect.Message {
 15157  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 15158  		return ParseDeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPath(raw)
 15159  	})
 15160  }
 15161  
 15162  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) ProtoMessage() {
 15163  }
 15164  
 15165  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) Reset() {
 15166  	if fieldMask != nil {
 15167  		fieldMask.Paths = nil
 15168  	}
 15169  }
 15170  
 15171  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask {
 15172  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask{}
 15173  	removedSelectors := make([]bool, 13)
 15174  
 15175  	for _, path := range other.GetPaths() {
 15176  		switch tp := path.(type) {
 15177  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath:
 15178  			removedSelectors[int(tp.selector)] = true
 15179  		}
 15180  	}
 15181  	for _, path := range fieldMask.GetPaths() {
 15182  		if !removedSelectors[int(path.Selector())] {
 15183  			result.Paths = append(result.Paths, path)
 15184  		}
 15185  	}
 15186  
 15187  	if len(result.Paths) == 0 {
 15188  		return nil
 15189  	}
 15190  	return result
 15191  }
 15192  
 15193  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 15194  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask))
 15195  }
 15196  
 15197  // FilterInputFields generates copy of field paths with output_only field paths removed
 15198  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask {
 15199  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask{}
 15200  	result.Paths = append(result.Paths, fieldMask.Paths...)
 15201  	return result
 15202  }
 15203  
 15204  // ToFieldMask is used for proto conversions
 15205  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 15206  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 15207  	for _, path := range fieldMask.Paths {
 15208  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 15209  	}
 15210  	return protoFieldMask
 15211  }
 15212  
 15213  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 15214  	if fieldMask == nil {
 15215  		return status.Error(codes.Internal, "target field mask is nil")
 15216  	}
 15217  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPath, 0, len(protoFieldMask.Paths))
 15218  	for _, strPath := range protoFieldMask.Paths {
 15219  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPath(strPath)
 15220  		if err != nil {
 15221  			return err
 15222  		}
 15223  		fieldMask.Paths = append(fieldMask.Paths, path)
 15224  	}
 15225  	return nil
 15226  }
 15227  
 15228  // implement methods required by customType
 15229  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) Marshal() ([]byte, error) {
 15230  	protoFieldMask := fieldMask.ToProtoFieldMask()
 15231  	return proto.Marshal(protoFieldMask)
 15232  }
 15233  
 15234  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) Unmarshal(data []byte) error {
 15235  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 15236  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 15237  		return err
 15238  	}
 15239  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 15240  		return err
 15241  	}
 15242  	return nil
 15243  }
 15244  
 15245  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) Size() int {
 15246  	return proto.Size(fieldMask.ToProtoFieldMask())
 15247  }
 15248  
 15249  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) MarshalJSON() ([]byte, error) {
 15250  	return json.Marshal(fieldMask.ToProtoFieldMask())
 15251  }
 15252  
 15253  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) UnmarshalJSON(data []byte) error {
 15254  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 15255  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 15256  		return err
 15257  	}
 15258  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 15259  		return err
 15260  	}
 15261  	return nil
 15262  }
 15263  
 15264  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPath) {
 15265  	fieldMask.Paths = append(fieldMask.Paths, path)
 15266  }
 15267  
 15268  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 15269  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPath))
 15270  }
 15271  
 15272  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPath {
 15273  	if fieldMask == nil {
 15274  		return nil
 15275  	}
 15276  	return fieldMask.Paths
 15277  }
 15278  
 15279  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 15280  	if fieldMask == nil {
 15281  		return nil
 15282  	}
 15283  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 15284  	for _, path := range fieldMask.Paths {
 15285  		rawPaths = append(rawPaths, path)
 15286  	}
 15287  	return rawPaths
 15288  }
 15289  
 15290  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) SetFromCliFlag(raw string) error {
 15291  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPath(raw)
 15292  	if err != nil {
 15293  		return err
 15294  	}
 15295  	fieldMask.Paths = append(fieldMask.Paths, path)
 15296  	return nil
 15297  }
 15298  
 15299  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus) {
 15300  	for _, path := range fieldMask.Paths {
 15301  		val, _ := path.GetSingle(source)
 15302  		// if val is nil, then field does not exist in source, skip
 15303  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 15304  		if val != nil {
 15305  			path.WithIValue(val).SetTo(&target)
 15306  		}
 15307  	}
 15308  }
 15309  
 15310  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 15311  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus), source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus))
 15312  }
 15313  
 15314  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus {
 15315  	if source == nil {
 15316  		return nil
 15317  	}
 15318  	if fieldMask == nil {
 15319  		return source
 15320  	}
 15321  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus{}
 15322  
 15323  	for _, p := range fieldMask.Paths {
 15324  		switch tp := p.(type) {
 15325  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath:
 15326  			switch tp.selector {
 15327  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorDbusPath:
 15328  				result.DbusPath = source.DbusPath
 15329  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorActive:
 15330  				result.Active = source.Active
 15331  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorEid:
 15332  				result.Eid = source.Eid
 15333  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorEmergencyNumbers:
 15334  				result.EmergencyNumbers = source.EmergencyNumbers
 15335  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorEsimStatus:
 15336  				result.EsimStatus = source.EsimStatus
 15337  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorGid1:
 15338  				result.Gid1 = source.Gid1
 15339  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorGid2:
 15340  				result.Gid2 = source.Gid2
 15341  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorIccid:
 15342  				result.Iccid = source.Iccid
 15343  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorImsi:
 15344  				result.Imsi = source.Imsi
 15345  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorOperatorCode:
 15346  				result.OperatorCode = source.OperatorCode
 15347  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorOperatorName:
 15348  				result.OperatorName = source.OperatorName
 15349  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorRemovability:
 15350  				result.Removability = source.Removability
 15351  			case DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorSimType:
 15352  				result.SimType = source.SimType
 15353  			}
 15354  		}
 15355  	}
 15356  	return result
 15357  }
 15358  
 15359  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 15360  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus))
 15361  }
 15362  
 15363  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask) PathsCount() int {
 15364  	if fieldMask == nil {
 15365  		return 0
 15366  	}
 15367  	return len(fieldMask.Paths)
 15368  }
 15369  
 15370  type Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask struct {
 15371  	Paths []DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPath
 15372  }
 15373  
 15374  func FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask {
 15375  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask{}
 15376  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorThreeGPp})
 15377  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorCdma})
 15378  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorDbusPath})
 15379  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorGeneric})
 15380  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorSimStatus})
 15381  	return res
 15382  }
 15383  
 15384  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) String() string {
 15385  	if fieldMask == nil {
 15386  		return "<nil>"
 15387  	}
 15388  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 15389  	for _, path := range fieldMask.Paths {
 15390  		pathsStr = append(pathsStr, path.String())
 15391  	}
 15392  	return strings.Join(pathsStr, ", ")
 15393  }
 15394  
 15395  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) IsFull() bool {
 15396  	if fieldMask == nil {
 15397  		return false
 15398  	}
 15399  	presentSelectors := make([]bool, 5)
 15400  	for _, path := range fieldMask.Paths {
 15401  		if asFinal, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath); ok {
 15402  			presentSelectors[int(asFinal.selector)] = true
 15403  		}
 15404  	}
 15405  	for _, flag := range presentSelectors {
 15406  		if !flag {
 15407  			return false
 15408  		}
 15409  	}
 15410  	return true
 15411  }
 15412  
 15413  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) ProtoReflect() preflect.Message {
 15414  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 15415  		return ParseDeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPath(raw)
 15416  	})
 15417  }
 15418  
 15419  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) ProtoMessage() {
 15420  }
 15421  
 15422  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) Reset() {
 15423  	if fieldMask != nil {
 15424  		fieldMask.Paths = nil
 15425  	}
 15426  }
 15427  
 15428  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) Subtract(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask {
 15429  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask{}
 15430  	removedSelectors := make([]bool, 5)
 15431  	otherSubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelector]gotenobject.FieldMask{
 15432  		DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorThreeGPp: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask{},
 15433  		DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorCdma:     &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask{},
 15434  		DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorGeneric:  &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask{},
 15435  	}
 15436  	mySubMasks := map[DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelector]gotenobject.FieldMask{
 15437  		DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorThreeGPp: &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask{},
 15438  		DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorCdma:     &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask{},
 15439  		DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorGeneric:  &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask{},
 15440  	}
 15441  
 15442  	for _, path := range other.GetPaths() {
 15443  		switch tp := path.(type) {
 15444  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath:
 15445  			removedSelectors[int(tp.selector)] = true
 15446  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldSubPath:
 15447  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
 15448  		}
 15449  	}
 15450  	for _, path := range fieldMask.GetPaths() {
 15451  		if !removedSelectors[int(path.Selector())] {
 15452  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
 15453  				if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath); ok {
 15454  					switch tp.selector {
 15455  					case DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorThreeGPp:
 15456  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorThreeGPp] = FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask()
 15457  					case DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorCdma:
 15458  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorCdma] = FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask()
 15459  					case DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorGeneric:
 15460  						mySubMasks[DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorGeneric] = FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask()
 15461  					}
 15462  				} else if tp, ok := path.(*DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldSubPath); ok {
 15463  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
 15464  				}
 15465  			} else {
 15466  				result.Paths = append(result.Paths, path)
 15467  			}
 15468  		}
 15469  	}
 15470  	for selector, mySubMask := range mySubMasks {
 15471  		if mySubMask.PathsCount() > 0 {
 15472  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
 15473  				result.Paths = append(result.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldSubPath{selector: selector, subPath: allowedPath})
 15474  			}
 15475  		}
 15476  	}
 15477  
 15478  	if len(result.Paths) == 0 {
 15479  		return nil
 15480  	}
 15481  	return result
 15482  }
 15483  
 15484  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 15485  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask))
 15486  }
 15487  
 15488  // FilterInputFields generates copy of field paths with output_only field paths removed
 15489  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask {
 15490  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask{}
 15491  	result.Paths = append(result.Paths, fieldMask.Paths...)
 15492  	return result
 15493  }
 15494  
 15495  // ToFieldMask is used for proto conversions
 15496  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 15497  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 15498  	for _, path := range fieldMask.Paths {
 15499  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 15500  	}
 15501  	return protoFieldMask
 15502  }
 15503  
 15504  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 15505  	if fieldMask == nil {
 15506  		return status.Error(codes.Internal, "target field mask is nil")
 15507  	}
 15508  	fieldMask.Paths = make([]DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPath, 0, len(protoFieldMask.Paths))
 15509  	for _, strPath := range protoFieldMask.Paths {
 15510  		path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPath(strPath)
 15511  		if err != nil {
 15512  			return err
 15513  		}
 15514  		fieldMask.Paths = append(fieldMask.Paths, path)
 15515  	}
 15516  	return nil
 15517  }
 15518  
 15519  // implement methods required by customType
 15520  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) Marshal() ([]byte, error) {
 15521  	protoFieldMask := fieldMask.ToProtoFieldMask()
 15522  	return proto.Marshal(protoFieldMask)
 15523  }
 15524  
 15525  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) Unmarshal(data []byte) error {
 15526  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 15527  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 15528  		return err
 15529  	}
 15530  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 15531  		return err
 15532  	}
 15533  	return nil
 15534  }
 15535  
 15536  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) Size() int {
 15537  	return proto.Size(fieldMask.ToProtoFieldMask())
 15538  }
 15539  
 15540  func (fieldMask Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) MarshalJSON() ([]byte, error) {
 15541  	return json.Marshal(fieldMask.ToProtoFieldMask())
 15542  }
 15543  
 15544  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) UnmarshalJSON(data []byte) error {
 15545  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 15546  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 15547  		return err
 15548  	}
 15549  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 15550  		return err
 15551  	}
 15552  	return nil
 15553  }
 15554  
 15555  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) AppendPath(path DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPath) {
 15556  	fieldMask.Paths = append(fieldMask.Paths, path)
 15557  }
 15558  
 15559  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 15560  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPath))
 15561  }
 15562  
 15563  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) GetPaths() []DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPath {
 15564  	if fieldMask == nil {
 15565  		return nil
 15566  	}
 15567  	return fieldMask.Paths
 15568  }
 15569  
 15570  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 15571  	if fieldMask == nil {
 15572  		return nil
 15573  	}
 15574  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 15575  	for _, path := range fieldMask.Paths {
 15576  		rawPaths = append(rawPaths, path)
 15577  	}
 15578  	return rawPaths
 15579  }
 15580  
 15581  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) SetFromCliFlag(raw string) error {
 15582  	path, err := ParseDeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPath(raw)
 15583  	if err != nil {
 15584  		return err
 15585  	}
 15586  	fieldMask.Paths = append(fieldMask.Paths, path)
 15587  	return nil
 15588  }
 15589  
 15590  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) Set(target, source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem) {
 15591  	for _, path := range fieldMask.Paths {
 15592  		val, _ := path.GetSingle(source)
 15593  		// if val is nil, then field does not exist in source, skip
 15594  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 15595  		if val != nil {
 15596  			path.WithIValue(val).SetTo(&target)
 15597  		}
 15598  	}
 15599  }
 15600  
 15601  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 15602  	fieldMask.Set(target.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem), source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem))
 15603  }
 15604  
 15605  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) Project(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem {
 15606  	if source == nil {
 15607  		return nil
 15608  	}
 15609  	if fieldMask == nil {
 15610  		return source
 15611  	}
 15612  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem{}
 15613  	threeGPpMask := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask{}
 15614  	wholeThreeGPpAccepted := false
 15615  	cdmaMask := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask{}
 15616  	wholeCdmaAccepted := false
 15617  	genericMask := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask{}
 15618  	wholeGenericAccepted := false
 15619  	var simStatusMapKeys []string
 15620  	wholeSimStatusAccepted := false
 15621  
 15622  	for _, p := range fieldMask.Paths {
 15623  		switch tp := p.(type) {
 15624  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath:
 15625  			switch tp.selector {
 15626  			case DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorThreeGPp:
 15627  				result.ThreeGPp = source.ThreeGPp
 15628  				wholeThreeGPpAccepted = true
 15629  			case DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorCdma:
 15630  				result.Cdma = source.Cdma
 15631  				wholeCdmaAccepted = true
 15632  			case DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorDbusPath:
 15633  				result.DbusPath = source.DbusPath
 15634  			case DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorGeneric:
 15635  				result.Generic = source.Generic
 15636  				wholeGenericAccepted = true
 15637  			case DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorSimStatus:
 15638  				result.SimStatus = source.SimStatus
 15639  				wholeSimStatusAccepted = true
 15640  			}
 15641  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldSubPath:
 15642  			switch tp.selector {
 15643  			case DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorThreeGPp:
 15644  				threeGPpMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPath))
 15645  			case DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorCdma:
 15646  				cdmaMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPath))
 15647  			case DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorGeneric:
 15648  				genericMask.AppendPath(tp.subPath.(DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPath))
 15649  			}
 15650  		case *DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathMap:
 15651  			switch tp.selector {
 15652  			case DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorSimStatus:
 15653  				simStatusMapKeys = append(simStatusMapKeys, tp.key)
 15654  			}
 15655  		}
 15656  	}
 15657  	if wholeThreeGPpAccepted == false && len(threeGPpMask.Paths) > 0 {
 15658  		result.ThreeGPp = threeGPpMask.Project(source.GetThreeGPp())
 15659  	}
 15660  	if wholeCdmaAccepted == false && len(cdmaMask.Paths) > 0 {
 15661  		result.Cdma = cdmaMask.Project(source.GetCdma())
 15662  	}
 15663  	if wholeGenericAccepted == false && len(genericMask.Paths) > 0 {
 15664  		result.Generic = genericMask.Project(source.GetGeneric())
 15665  	}
 15666  	if wholeSimStatusAccepted == false && len(simStatusMapKeys) > 0 && source.GetSimStatus() != nil {
 15667  		copiedMap := map[string]*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus{}
 15668  		sourceMap := source.GetSimStatus()
 15669  		for _, key := range simStatusMapKeys {
 15670  			copiedMap[key] = sourceMap[key]
 15671  		}
 15672  		result.SimStatus = copiedMap
 15673  	}
 15674  	return result
 15675  }
 15676  
 15677  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 15678  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem))
 15679  }
 15680  
 15681  func (fieldMask *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask) PathsCount() int {
 15682  	if fieldMask == nil {
 15683  		return 0
 15684  	}
 15685  	return len(fieldMask.Paths)
 15686  }
 15687  
 15688  type Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask struct {
 15689  	Paths []DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPath
 15690  }
 15691  
 15692  func FullDevice_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask() *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask {
 15693  	res := &Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask{}
 15694  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorAsn})
 15695  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorName})
 15696  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorDomain})
 15697  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorRoutes})
 15698  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorAsnType})
 15699  	return res
 15700  }
 15701  
 15702  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) String() string {
 15703  	if fieldMask == nil {
 15704  		return "<nil>"
 15705  	}
 15706  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 15707  	for _, path := range fieldMask.Paths {
 15708  		pathsStr = append(pathsStr, path.String())
 15709  	}
 15710  	return strings.Join(pathsStr, ", ")
 15711  }
 15712  
 15713  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) IsFull() bool {
 15714  	if fieldMask == nil {
 15715  		return false
 15716  	}
 15717  	presentSelectors := make([]bool, 5)
 15718  	for _, path := range fieldMask.Paths {
 15719  		if asFinal, ok := path.(*DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath); ok {
 15720  			presentSelectors[int(asFinal.selector)] = true
 15721  		}
 15722  	}
 15723  	for _, flag := range presentSelectors {
 15724  		if !flag {
 15725  			return false
 15726  		}
 15727  	}
 15728  	return true
 15729  }
 15730  
 15731  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) ProtoReflect() preflect.Message {
 15732  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 15733  		return ParseDeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPath(raw)
 15734  	})
 15735  }
 15736  
 15737  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) ProtoMessage() {}
 15738  
 15739  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) Reset() {
 15740  	if fieldMask != nil {
 15741  		fieldMask.Paths = nil
 15742  	}
 15743  }
 15744  
 15745  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) Subtract(other *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask {
 15746  	result := &Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask{}
 15747  	removedSelectors := make([]bool, 5)
 15748  
 15749  	for _, path := range other.GetPaths() {
 15750  		switch tp := path.(type) {
 15751  		case *DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath:
 15752  			removedSelectors[int(tp.selector)] = true
 15753  		}
 15754  	}
 15755  	for _, path := range fieldMask.GetPaths() {
 15756  		if !removedSelectors[int(path.Selector())] {
 15757  			result.Paths = append(result.Paths, path)
 15758  		}
 15759  	}
 15760  
 15761  	if len(result.Paths) == 0 {
 15762  		return nil
 15763  	}
 15764  	return result
 15765  }
 15766  
 15767  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 15768  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask))
 15769  }
 15770  
 15771  // FilterInputFields generates copy of field paths with output_only field paths removed
 15772  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask {
 15773  	result := &Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask{}
 15774  	result.Paths = append(result.Paths, fieldMask.Paths...)
 15775  	return result
 15776  }
 15777  
 15778  // ToFieldMask is used for proto conversions
 15779  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 15780  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 15781  	for _, path := range fieldMask.Paths {
 15782  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 15783  	}
 15784  	return protoFieldMask
 15785  }
 15786  
 15787  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 15788  	if fieldMask == nil {
 15789  		return status.Error(codes.Internal, "target field mask is nil")
 15790  	}
 15791  	fieldMask.Paths = make([]DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPath, 0, len(protoFieldMask.Paths))
 15792  	for _, strPath := range protoFieldMask.Paths {
 15793  		path, err := ParseDeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPath(strPath)
 15794  		if err != nil {
 15795  			return err
 15796  		}
 15797  		fieldMask.Paths = append(fieldMask.Paths, path)
 15798  	}
 15799  	return nil
 15800  }
 15801  
 15802  // implement methods required by customType
 15803  func (fieldMask Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) Marshal() ([]byte, error) {
 15804  	protoFieldMask := fieldMask.ToProtoFieldMask()
 15805  	return proto.Marshal(protoFieldMask)
 15806  }
 15807  
 15808  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) Unmarshal(data []byte) error {
 15809  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 15810  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 15811  		return err
 15812  	}
 15813  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 15814  		return err
 15815  	}
 15816  	return nil
 15817  }
 15818  
 15819  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) Size() int {
 15820  	return proto.Size(fieldMask.ToProtoFieldMask())
 15821  }
 15822  
 15823  func (fieldMask Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) MarshalJSON() ([]byte, error) {
 15824  	return json.Marshal(fieldMask.ToProtoFieldMask())
 15825  }
 15826  
 15827  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) UnmarshalJSON(data []byte) error {
 15828  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 15829  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 15830  		return err
 15831  	}
 15832  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 15833  		return err
 15834  	}
 15835  	return nil
 15836  }
 15837  
 15838  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) AppendPath(path DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPath) {
 15839  	fieldMask.Paths = append(fieldMask.Paths, path)
 15840  }
 15841  
 15842  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 15843  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPath))
 15844  }
 15845  
 15846  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) GetPaths() []DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPath {
 15847  	if fieldMask == nil {
 15848  		return nil
 15849  	}
 15850  	return fieldMask.Paths
 15851  }
 15852  
 15853  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 15854  	if fieldMask == nil {
 15855  		return nil
 15856  	}
 15857  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 15858  	for _, path := range fieldMask.Paths {
 15859  		rawPaths = append(rawPaths, path)
 15860  	}
 15861  	return rawPaths
 15862  }
 15863  
 15864  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) SetFromCliFlag(raw string) error {
 15865  	path, err := ParseDeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPath(raw)
 15866  	if err != nil {
 15867  		return err
 15868  	}
 15869  	fieldMask.Paths = append(fieldMask.Paths, path)
 15870  	return nil
 15871  }
 15872  
 15873  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) Set(target, source *Device_Status_DeviceInfo_NetworkInterface_ASInfo) {
 15874  	for _, path := range fieldMask.Paths {
 15875  		val, _ := path.GetSingle(source)
 15876  		// if val is nil, then field does not exist in source, skip
 15877  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 15878  		if val != nil {
 15879  			path.WithIValue(val).SetTo(&target)
 15880  		}
 15881  	}
 15882  }
 15883  
 15884  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 15885  	fieldMask.Set(target.(*Device_Status_DeviceInfo_NetworkInterface_ASInfo), source.(*Device_Status_DeviceInfo_NetworkInterface_ASInfo))
 15886  }
 15887  
 15888  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) Project(source *Device_Status_DeviceInfo_NetworkInterface_ASInfo) *Device_Status_DeviceInfo_NetworkInterface_ASInfo {
 15889  	if source == nil {
 15890  		return nil
 15891  	}
 15892  	if fieldMask == nil {
 15893  		return source
 15894  	}
 15895  	result := &Device_Status_DeviceInfo_NetworkInterface_ASInfo{}
 15896  
 15897  	for _, p := range fieldMask.Paths {
 15898  		switch tp := p.(type) {
 15899  		case *DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath:
 15900  			switch tp.selector {
 15901  			case DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorAsn:
 15902  				result.Asn = source.Asn
 15903  			case DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorName:
 15904  				result.Name = source.Name
 15905  			case DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorDomain:
 15906  				result.Domain = source.Domain
 15907  			case DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorRoutes:
 15908  				result.Routes = source.Routes
 15909  			case DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorAsnType:
 15910  				result.AsnType = source.AsnType
 15911  			}
 15912  		}
 15913  	}
 15914  	return result
 15915  }
 15916  
 15917  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 15918  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_NetworkInterface_ASInfo))
 15919  }
 15920  
 15921  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask) PathsCount() int {
 15922  	if fieldMask == nil {
 15923  		return 0
 15924  	}
 15925  	return len(fieldMask.Paths)
 15926  }
 15927  
 15928  type Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask struct {
 15929  	Paths []DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPath
 15930  }
 15931  
 15932  func FullDevice_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask() *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask {
 15933  	res := &Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask{}
 15934  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPathSelectorName})
 15935  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPathSelectorMobileCountryCode})
 15936  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPathSelectorMobileNetworkCode})
 15937  	res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPathSelectorLocationAreaCode})
 15938  	return res
 15939  }
 15940  
 15941  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) String() string {
 15942  	if fieldMask == nil {
 15943  		return "<nil>"
 15944  	}
 15945  	pathsStr := make([]string, 0, len(fieldMask.Paths))
 15946  	for _, path := range fieldMask.Paths {
 15947  		pathsStr = append(pathsStr, path.String())
 15948  	}
 15949  	return strings.Join(pathsStr, ", ")
 15950  }
 15951  
 15952  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) IsFull() bool {
 15953  	if fieldMask == nil {
 15954  		return false
 15955  	}
 15956  	presentSelectors := make([]bool, 4)
 15957  	for _, path := range fieldMask.Paths {
 15958  		if asFinal, ok := path.(*DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldTerminalPath); ok {
 15959  			presentSelectors[int(asFinal.selector)] = true
 15960  		}
 15961  	}
 15962  	for _, flag := range presentSelectors {
 15963  		if !flag {
 15964  			return false
 15965  		}
 15966  	}
 15967  	return true
 15968  }
 15969  
 15970  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) ProtoReflect() preflect.Message {
 15971  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
 15972  		return ParseDeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPath(raw)
 15973  	})
 15974  }
 15975  
 15976  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) ProtoMessage() {}
 15977  
 15978  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) Reset() {
 15979  	if fieldMask != nil {
 15980  		fieldMask.Paths = nil
 15981  	}
 15982  }
 15983  
 15984  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) Subtract(other *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask {
 15985  	result := &Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask{}
 15986  	removedSelectors := make([]bool, 4)
 15987  
 15988  	for _, path := range other.GetPaths() {
 15989  		switch tp := path.(type) {
 15990  		case *DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldTerminalPath:
 15991  			removedSelectors[int(tp.selector)] = true
 15992  		}
 15993  	}
 15994  	for _, path := range fieldMask.GetPaths() {
 15995  		if !removedSelectors[int(path.Selector())] {
 15996  			result.Paths = append(result.Paths, path)
 15997  		}
 15998  	}
 15999  
 16000  	if len(result.Paths) == 0 {
 16001  		return nil
 16002  	}
 16003  	return result
 16004  }
 16005  
 16006  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
 16007  	return fieldMask.Subtract(other.(*Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask))
 16008  }
 16009  
 16010  // FilterInputFields generates copy of field paths with output_only field paths removed
 16011  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) FilterInputFields() *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask {
 16012  	result := &Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask{}
 16013  	result.Paths = append(result.Paths, fieldMask.Paths...)
 16014  	return result
 16015  }
 16016  
 16017  // ToFieldMask is used for proto conversions
 16018  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
 16019  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 16020  	for _, path := range fieldMask.Paths {
 16021  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
 16022  	}
 16023  	return protoFieldMask
 16024  }
 16025  
 16026  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
 16027  	if fieldMask == nil {
 16028  		return status.Error(codes.Internal, "target field mask is nil")
 16029  	}
 16030  	fieldMask.Paths = make([]DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPath, 0, len(protoFieldMask.Paths))
 16031  	for _, strPath := range protoFieldMask.Paths {
 16032  		path, err := ParseDeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPath(strPath)
 16033  		if err != nil {
 16034  			return err
 16035  		}
 16036  		fieldMask.Paths = append(fieldMask.Paths, path)
 16037  	}
 16038  	return nil
 16039  }
 16040  
 16041  // implement methods required by customType
 16042  func (fieldMask Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) Marshal() ([]byte, error) {
 16043  	protoFieldMask := fieldMask.ToProtoFieldMask()
 16044  	return proto.Marshal(protoFieldMask)
 16045  }
 16046  
 16047  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) Unmarshal(data []byte) error {
 16048  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 16049  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
 16050  		return err
 16051  	}
 16052  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 16053  		return err
 16054  	}
 16055  	return nil
 16056  }
 16057  
 16058  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) Size() int {
 16059  	return proto.Size(fieldMask.ToProtoFieldMask())
 16060  }
 16061  
 16062  func (fieldMask Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) MarshalJSON() ([]byte, error) {
 16063  	return json.Marshal(fieldMask.ToProtoFieldMask())
 16064  }
 16065  
 16066  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) UnmarshalJSON(data []byte) error {
 16067  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
 16068  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
 16069  		return err
 16070  	}
 16071  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
 16072  		return err
 16073  	}
 16074  	return nil
 16075  }
 16076  
 16077  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) AppendPath(path DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPath) {
 16078  	fieldMask.Paths = append(fieldMask.Paths, path)
 16079  }
 16080  
 16081  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
 16082  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPath))
 16083  }
 16084  
 16085  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) GetPaths() []DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPath {
 16086  	if fieldMask == nil {
 16087  		return nil
 16088  	}
 16089  	return fieldMask.Paths
 16090  }
 16091  
 16092  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) GetRawPaths() []gotenobject.FieldPath {
 16093  	if fieldMask == nil {
 16094  		return nil
 16095  	}
 16096  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
 16097  	for _, path := range fieldMask.Paths {
 16098  		rawPaths = append(rawPaths, path)
 16099  	}
 16100  	return rawPaths
 16101  }
 16102  
 16103  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) SetFromCliFlag(raw string) error {
 16104  	path, err := ParseDeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPath(raw)
 16105  	if err != nil {
 16106  		return err
 16107  	}
 16108  	fieldMask.Paths = append(fieldMask.Paths, path)
 16109  	return nil
 16110  }
 16111  
 16112  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) Set(target, source *Device_Status_DeviceInfo_NetworkInterface_Carrier) {
 16113  	for _, path := range fieldMask.Paths {
 16114  		val, _ := path.GetSingle(source)
 16115  		// if val is nil, then field does not exist in source, skip
 16116  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
 16117  		if val != nil {
 16118  			path.WithIValue(val).SetTo(&target)
 16119  		}
 16120  	}
 16121  }
 16122  
 16123  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
 16124  	fieldMask.Set(target.(*Device_Status_DeviceInfo_NetworkInterface_Carrier), source.(*Device_Status_DeviceInfo_NetworkInterface_Carrier))
 16125  }
 16126  
 16127  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) Project(source *Device_Status_DeviceInfo_NetworkInterface_Carrier) *Device_Status_DeviceInfo_NetworkInterface_Carrier {
 16128  	if source == nil {
 16129  		return nil
 16130  	}
 16131  	if fieldMask == nil {
 16132  		return source
 16133  	}
 16134  	result := &Device_Status_DeviceInfo_NetworkInterface_Carrier{}
 16135  
 16136  	for _, p := range fieldMask.Paths {
 16137  		switch tp := p.(type) {
 16138  		case *DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldTerminalPath:
 16139  			switch tp.selector {
 16140  			case DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPathSelectorName:
 16141  				result.Name = source.Name
 16142  			case DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPathSelectorMobileCountryCode:
 16143  				result.MobileCountryCode = source.MobileCountryCode
 16144  			case DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPathSelectorMobileNetworkCode:
 16145  				result.MobileNetworkCode = source.MobileNetworkCode
 16146  			case DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPathSelectorLocationAreaCode:
 16147  				result.LocationAreaCode = source.LocationAreaCode
 16148  			}
 16149  		}
 16150  	}
 16151  	return result
 16152  }
 16153  
 16154  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
 16155  	return fieldMask.Project(source.(*Device_Status_DeviceInfo_NetworkInterface_Carrier))
 16156  }
 16157  
 16158  func (fieldMask *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask) PathsCount() int {
 16159  	if fieldMask == nil {
 16160  		return 0
 16161  	}
 16162  	return len(fieldMask.Paths)
 16163  }