github.com/cloudwan/edgelq-sdk@v1.15.4/devices/resources/v1/device/device.pb.object_ext.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  	"fmt"
     9  	"sort"
    10  
    11  	"google.golang.org/protobuf/proto"
    12  	googlefieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
    13  
    14  	gotenobject "github.com/cloudwan/goten-sdk/runtime/object"
    15  )
    16  
    17  // proto imports
    18  import (
    19  	api "github.com/cloudwan/edgelq-sdk/common/api"
    20  	project "github.com/cloudwan/edgelq-sdk/devices/resources/v1/project"
    21  	iam_attestation_domain "github.com/cloudwan/edgelq-sdk/iam/resources/v1/attestation_domain"
    22  	iam_iam_common "github.com/cloudwan/edgelq-sdk/iam/resources/v1/common"
    23  	iam_service_account "github.com/cloudwan/edgelq-sdk/iam/resources/v1/service_account"
    24  	logging_bucket "github.com/cloudwan/edgelq-sdk/logging/resources/v1/bucket"
    25  	monitoring_bucket "github.com/cloudwan/edgelq-sdk/monitoring/resources/v4/bucket"
    26  	meta "github.com/cloudwan/goten-sdk/types/meta"
    27  	latlng "google.golang.org/genproto/googleapis/type/latlng"
    28  	durationpb "google.golang.org/protobuf/types/known/durationpb"
    29  	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
    30  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    31  )
    32  
    33  // ensure the imports are used
    34  var (
    35  	_ = new(fmt.Stringer)
    36  	_ = new(sort.Interface)
    37  
    38  	_ = new(proto.Message)
    39  	_ = googlefieldmaskpb.FieldMask{}
    40  
    41  	_ = new(gotenobject.FieldPath)
    42  )
    43  
    44  // make sure we're using proto imports
    45  var (
    46  	_ = &api.HealthCheckSpec{}
    47  	_ = &project.Project{}
    48  	_ = &iam_attestation_domain.AttestationDomain{}
    49  	_ = &iam_iam_common.PCR{}
    50  	_ = &iam_service_account.ServiceAccount{}
    51  	_ = &logging_bucket.Bucket{}
    52  	_ = &monitoring_bucket.Bucket{}
    53  	_ = &durationpb.Duration{}
    54  	_ = &fieldmaskpb.FieldMask{}
    55  	_ = &timestamppb.Timestamp{}
    56  	_ = &latlng.LatLng{}
    57  	_ = &meta.Meta{}
    58  )
    59  
    60  func (o *Device) GotenObjectExt() {}
    61  
    62  func (o *Device) MakeFullFieldMask() *Device_FieldMask {
    63  	return FullDevice_FieldMask()
    64  }
    65  
    66  func (o *Device) MakeRawFullFieldMask() gotenobject.FieldMask {
    67  	return FullDevice_FieldMask()
    68  }
    69  
    70  func (o *Device) MakeDiffFieldMask(other *Device) *Device_FieldMask {
    71  	if o == nil && other == nil {
    72  		return &Device_FieldMask{}
    73  	}
    74  	if o == nil || other == nil {
    75  		return FullDevice_FieldMask()
    76  	}
    77  
    78  	res := &Device_FieldMask{}
    79  	if o.GetName().String() != other.GetName().String() {
    80  		res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorName})
    81  	}
    82  	{
    83  		subMask := o.GetMetadata().MakeDiffFieldMask(other.GetMetadata())
    84  		if subMask.IsFull() {
    85  			res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorMetadata})
    86  		} else {
    87  			for _, subpath := range subMask.Paths {
    88  				res.Paths = append(res.Paths, &Device_FieldSubPath{selector: Device_FieldPathSelectorMetadata, subPath: subpath})
    89  			}
    90  		}
    91  	}
    92  	if o.GetDisplayName() != other.GetDisplayName() {
    93  		res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorDisplayName})
    94  	}
    95  	if o.GetDescription() != other.GetDescription() {
    96  		res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorDescription})
    97  	}
    98  	{
    99  		subMask := o.GetSpec().MakeDiffFieldMask(other.GetSpec())
   100  		if subMask.IsFull() {
   101  			res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorSpec})
   102  		} else {
   103  			for _, subpath := range subMask.Paths {
   104  				res.Paths = append(res.Paths, &Device_FieldSubPath{selector: Device_FieldPathSelectorSpec, subPath: subpath})
   105  			}
   106  		}
   107  	}
   108  	{
   109  		subMask := o.GetStatus().MakeDiffFieldMask(other.GetStatus())
   110  		if subMask.IsFull() {
   111  			res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorStatus})
   112  		} else {
   113  			for _, subpath := range subMask.Paths {
   114  				res.Paths = append(res.Paths, &Device_FieldSubPath{selector: Device_FieldPathSelectorStatus, subPath: subpath})
   115  			}
   116  		}
   117  	}
   118  	{
   119  		subMask := o.GetPublicListingSpec().MakeDiffFieldMask(other.GetPublicListingSpec())
   120  		if subMask.IsFull() {
   121  			res.Paths = append(res.Paths, &Device_FieldTerminalPath{selector: Device_FieldPathSelectorPublicListingSpec})
   122  		} else {
   123  			for _, subpath := range subMask.Paths {
   124  				res.Paths = append(res.Paths, &Device_FieldSubPath{selector: Device_FieldPathSelectorPublicListingSpec, subPath: subpath})
   125  			}
   126  		}
   127  	}
   128  	return res
   129  }
   130  
   131  func (o *Device) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   132  	return o.MakeDiffFieldMask(other.(*Device))
   133  }
   134  
   135  func (o *Device) Clone() *Device {
   136  	if o == nil {
   137  		return nil
   138  	}
   139  	result := &Device{}
   140  	if o.Name == nil {
   141  		result.Name = nil
   142  	} else if data, err := o.Name.ProtoString(); err != nil {
   143  		panic(err)
   144  	} else {
   145  		result.Name = &Name{}
   146  		if err := result.Name.ParseProtoString(data); err != nil {
   147  			panic(err)
   148  		}
   149  	}
   150  	result.Metadata = o.Metadata.Clone()
   151  	result.DisplayName = o.DisplayName
   152  	result.Description = o.Description
   153  	result.Spec = o.Spec.Clone()
   154  	result.Status = o.Status.Clone()
   155  	result.PublicListingSpec = o.PublicListingSpec.Clone()
   156  	return result
   157  }
   158  
   159  func (o *Device) CloneRaw() gotenobject.GotenObjectExt {
   160  	return o.Clone()
   161  }
   162  
   163  func (o *Device) Merge(source *Device) {
   164  	if source.GetName() != nil {
   165  		if data, err := source.GetName().ProtoString(); err != nil {
   166  			panic(err)
   167  		} else {
   168  			o.Name = &Name{}
   169  			if err := o.Name.ParseProtoString(data); err != nil {
   170  				panic(err)
   171  			}
   172  		}
   173  	} else {
   174  		o.Name = nil
   175  	}
   176  	if source.GetMetadata() != nil {
   177  		if o.Metadata == nil {
   178  			o.Metadata = new(meta.Meta)
   179  		}
   180  		o.Metadata.Merge(source.GetMetadata())
   181  	}
   182  	o.DisplayName = source.GetDisplayName()
   183  	o.Description = source.GetDescription()
   184  	if source.GetSpec() != nil {
   185  		if o.Spec == nil {
   186  			o.Spec = new(Device_Spec)
   187  		}
   188  		o.Spec.Merge(source.GetSpec())
   189  	}
   190  	if source.GetStatus() != nil {
   191  		if o.Status == nil {
   192  			o.Status = new(Device_Status)
   193  		}
   194  		o.Status.Merge(source.GetStatus())
   195  	}
   196  	if source.GetPublicListingSpec() != nil {
   197  		if o.PublicListingSpec == nil {
   198  			o.PublicListingSpec = new(Device_PublicListingSpec)
   199  		}
   200  		o.PublicListingSpec.Merge(source.GetPublicListingSpec())
   201  	}
   202  }
   203  
   204  func (o *Device) MergeRaw(source gotenobject.GotenObjectExt) {
   205  	o.Merge(source.(*Device))
   206  }
   207  
   208  func (o *Device_Spec) GotenObjectExt() {}
   209  
   210  func (o *Device_Spec) MakeFullFieldMask() *Device_Spec_FieldMask {
   211  	return FullDevice_Spec_FieldMask()
   212  }
   213  
   214  func (o *Device_Spec) MakeRawFullFieldMask() gotenobject.FieldMask {
   215  	return FullDevice_Spec_FieldMask()
   216  }
   217  
   218  func (o *Device_Spec) MakeDiffFieldMask(other *Device_Spec) *Device_Spec_FieldMask {
   219  	if o == nil && other == nil {
   220  		return &Device_Spec_FieldMask{}
   221  	}
   222  	if o == nil || other == nil {
   223  		return FullDevice_Spec_FieldMask()
   224  	}
   225  
   226  	res := &Device_Spec_FieldMask{}
   227  	if o.GetServiceAccount().String() != other.GetServiceAccount().String() {
   228  		res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorServiceAccount})
   229  	}
   230  	if o.GetLogBucket().String() != other.GetLogBucket().String() {
   231  		res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorLogBucket})
   232  	}
   233  	if o.GetMetricsBucket().String() != other.GetMetricsBucket().String() {
   234  		res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorMetricsBucket})
   235  	}
   236  	if o.GetOsVersion() != other.GetOsVersion() {
   237  		res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorOsVersion})
   238  	}
   239  	if o.GetNetplanYamlConfig() != other.GetNetplanYamlConfig() {
   240  		res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorNetplanYamlConfig})
   241  	}
   242  	if o.GetNetplanApiConfigMode() != other.GetNetplanApiConfigMode() {
   243  		res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorNetplanApiConfigMode})
   244  	}
   245  	if o.GetOsImageUrl() != other.GetOsImageUrl() {
   246  		res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorOsImageUrl})
   247  	}
   248  	{
   249  		subMask := o.GetSshConfig().MakeDiffFieldMask(other.GetSshConfig())
   250  		if subMask.IsFull() {
   251  			res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorSshConfig})
   252  		} else {
   253  			for _, subpath := range subMask.Paths {
   254  				res.Paths = append(res.Paths, &DeviceSpec_FieldSubPath{selector: DeviceSpec_FieldPathSelectorSshConfig, subPath: subpath})
   255  			}
   256  		}
   257  	}
   258  	{
   259  		subMask := o.GetAttestationConfig().MakeDiffFieldMask(other.GetAttestationConfig())
   260  		if subMask.IsFull() {
   261  			res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorAttestationConfig})
   262  		} else {
   263  			for _, subpath := range subMask.Paths {
   264  				res.Paths = append(res.Paths, &DeviceSpec_FieldSubPath{selector: DeviceSpec_FieldPathSelectorAttestationConfig, subPath: subpath})
   265  			}
   266  		}
   267  	}
   268  	if o.GetDisableDeviceDiscovery() != other.GetDisableDeviceDiscovery() {
   269  		res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorDisableDeviceDiscovery})
   270  	}
   271  	{
   272  		subMask := o.GetLoggingConfig().MakeDiffFieldMask(other.GetLoggingConfig())
   273  		if subMask.IsFull() {
   274  			res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorLoggingConfig})
   275  		} else {
   276  			for _, subpath := range subMask.Paths {
   277  				res.Paths = append(res.Paths, &DeviceSpec_FieldSubPath{selector: DeviceSpec_FieldPathSelectorLoggingConfig, subPath: subpath})
   278  			}
   279  		}
   280  	}
   281  	{
   282  		subMask := o.GetProxyConfig().MakeDiffFieldMask(other.GetProxyConfig())
   283  		if subMask.IsFull() {
   284  			res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorProxyConfig})
   285  		} else {
   286  			for _, subpath := range subMask.Paths {
   287  				res.Paths = append(res.Paths, &DeviceSpec_FieldSubPath{selector: DeviceSpec_FieldPathSelectorProxyConfig, subPath: subpath})
   288  			}
   289  		}
   290  	}
   291  	{
   292  		subMask := o.GetLocation().MakeDiffFieldMask(other.GetLocation())
   293  		if subMask.IsFull() {
   294  			res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorLocation})
   295  		} else {
   296  			for _, subpath := range subMask.Paths {
   297  				res.Paths = append(res.Paths, &DeviceSpec_FieldSubPath{selector: DeviceSpec_FieldPathSelectorLocation, subPath: subpath})
   298  			}
   299  		}
   300  	}
   301  	{
   302  		subMask := o.GetUsbGuard().MakeDiffFieldMask(other.GetUsbGuard())
   303  		if subMask.IsFull() {
   304  			res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorUsbGuard})
   305  		} else {
   306  			for _, subpath := range subMask.Paths {
   307  				res.Paths = append(res.Paths, &DeviceSpec_FieldSubPath{selector: DeviceSpec_FieldPathSelectorUsbGuard, subPath: subpath})
   308  			}
   309  		}
   310  	}
   311  
   312  	if len(o.GetHealthChecks()) == len(other.GetHealthChecks()) {
   313  		for i, lValue := range o.GetHealthChecks() {
   314  			rValue := other.GetHealthChecks()[i]
   315  			if !proto.Equal(lValue, rValue) {
   316  				res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorHealthChecks})
   317  				break
   318  			}
   319  		}
   320  	} else {
   321  		res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorHealthChecks})
   322  	}
   323  	if o.GetDisableNetworkConfigFallback() != other.GetDisableNetworkConfigFallback() {
   324  		res.Paths = append(res.Paths, &DeviceSpec_FieldTerminalPath{selector: DeviceSpec_FieldPathSelectorDisableNetworkConfigFallback})
   325  	}
   326  	return res
   327  }
   328  
   329  func (o *Device_Spec) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   330  	return o.MakeDiffFieldMask(other.(*Device_Spec))
   331  }
   332  
   333  func (o *Device_Spec) Clone() *Device_Spec {
   334  	if o == nil {
   335  		return nil
   336  	}
   337  	result := &Device_Spec{}
   338  	if o.ServiceAccount == nil {
   339  		result.ServiceAccount = nil
   340  	} else if data, err := o.ServiceAccount.ProtoString(); err != nil {
   341  		panic(err)
   342  	} else {
   343  		result.ServiceAccount = &iam_service_account.Reference{}
   344  		if err := result.ServiceAccount.ParseProtoString(data); err != nil {
   345  			panic(err)
   346  		}
   347  	}
   348  	if o.LogBucket == nil {
   349  		result.LogBucket = nil
   350  	} else if data, err := o.LogBucket.ProtoString(); err != nil {
   351  		panic(err)
   352  	} else {
   353  		result.LogBucket = &logging_bucket.Reference{}
   354  		if err := result.LogBucket.ParseProtoString(data); err != nil {
   355  			panic(err)
   356  		}
   357  	}
   358  	if o.MetricsBucket == nil {
   359  		result.MetricsBucket = nil
   360  	} else if data, err := o.MetricsBucket.ProtoString(); err != nil {
   361  		panic(err)
   362  	} else {
   363  		result.MetricsBucket = &monitoring_bucket.Reference{}
   364  		if err := result.MetricsBucket.ParseProtoString(data); err != nil {
   365  			panic(err)
   366  		}
   367  	}
   368  	result.OsVersion = o.OsVersion
   369  	result.NetplanYamlConfig = o.NetplanYamlConfig
   370  	result.NetplanApiConfigMode = o.NetplanApiConfigMode
   371  	result.OsImageUrl = o.OsImageUrl
   372  	result.SshConfig = o.SshConfig.Clone()
   373  	result.AttestationConfig = o.AttestationConfig.Clone()
   374  	result.DisableDeviceDiscovery = o.DisableDeviceDiscovery
   375  	result.LoggingConfig = o.LoggingConfig.Clone()
   376  	result.ProxyConfig = o.ProxyConfig.Clone()
   377  	result.Location = o.Location.Clone()
   378  	result.UsbGuard = o.UsbGuard.Clone()
   379  	result.HealthChecks = make([]*api.HealthCheckSpec, len(o.HealthChecks))
   380  	for i, sourceValue := range o.HealthChecks {
   381  		result.HealthChecks[i] = proto.Clone(sourceValue).(*api.HealthCheckSpec)
   382  	}
   383  	result.DisableNetworkConfigFallback = o.DisableNetworkConfigFallback
   384  	return result
   385  }
   386  
   387  func (o *Device_Spec) CloneRaw() gotenobject.GotenObjectExt {
   388  	return o.Clone()
   389  }
   390  
   391  func (o *Device_Spec) Merge(source *Device_Spec) {
   392  	if source.GetServiceAccount() != nil {
   393  		if data, err := source.GetServiceAccount().ProtoString(); err != nil {
   394  			panic(err)
   395  		} else {
   396  			o.ServiceAccount = &iam_service_account.Reference{}
   397  			if err := o.ServiceAccount.ParseProtoString(data); err != nil {
   398  				panic(err)
   399  			}
   400  		}
   401  	} else {
   402  		o.ServiceAccount = nil
   403  	}
   404  	if source.GetLogBucket() != nil {
   405  		if data, err := source.GetLogBucket().ProtoString(); err != nil {
   406  			panic(err)
   407  		} else {
   408  			o.LogBucket = &logging_bucket.Reference{}
   409  			if err := o.LogBucket.ParseProtoString(data); err != nil {
   410  				panic(err)
   411  			}
   412  		}
   413  	} else {
   414  		o.LogBucket = nil
   415  	}
   416  	if source.GetMetricsBucket() != nil {
   417  		if data, err := source.GetMetricsBucket().ProtoString(); err != nil {
   418  			panic(err)
   419  		} else {
   420  			o.MetricsBucket = &monitoring_bucket.Reference{}
   421  			if err := o.MetricsBucket.ParseProtoString(data); err != nil {
   422  				panic(err)
   423  			}
   424  		}
   425  	} else {
   426  		o.MetricsBucket = nil
   427  	}
   428  	o.OsVersion = source.GetOsVersion()
   429  	o.NetplanYamlConfig = source.GetNetplanYamlConfig()
   430  	o.NetplanApiConfigMode = source.GetNetplanApiConfigMode()
   431  	o.OsImageUrl = source.GetOsImageUrl()
   432  	if source.GetSshConfig() != nil {
   433  		if o.SshConfig == nil {
   434  			o.SshConfig = new(Device_Spec_SSHConfig)
   435  		}
   436  		o.SshConfig.Merge(source.GetSshConfig())
   437  	}
   438  	if source.GetAttestationConfig() != nil {
   439  		if o.AttestationConfig == nil {
   440  			o.AttestationConfig = new(Device_Spec_AttestationConfig)
   441  		}
   442  		o.AttestationConfig.Merge(source.GetAttestationConfig())
   443  	}
   444  	o.DisableDeviceDiscovery = source.GetDisableDeviceDiscovery()
   445  	if source.GetLoggingConfig() != nil {
   446  		if o.LoggingConfig == nil {
   447  			o.LoggingConfig = new(Device_Spec_LoggingConfig)
   448  		}
   449  		o.LoggingConfig.Merge(source.GetLoggingConfig())
   450  	}
   451  	if source.GetProxyConfig() != nil {
   452  		if o.ProxyConfig == nil {
   453  			o.ProxyConfig = new(Device_Spec_ProxyConfig)
   454  		}
   455  		o.ProxyConfig.Merge(source.GetProxyConfig())
   456  	}
   457  	if source.GetLocation() != nil {
   458  		if o.Location == nil {
   459  			o.Location = new(Device_Spec_Location)
   460  		}
   461  		o.Location.Merge(source.GetLocation())
   462  	}
   463  	if source.GetUsbGuard() != nil {
   464  		if o.UsbGuard == nil {
   465  			o.UsbGuard = new(Device_Spec_USBGuard)
   466  		}
   467  		o.UsbGuard.Merge(source.GetUsbGuard())
   468  	}
   469  	for _, sourceValue := range source.GetHealthChecks() {
   470  		exists := false
   471  		for _, currentValue := range o.HealthChecks {
   472  			if proto.Equal(sourceValue, currentValue) {
   473  				exists = true
   474  				break
   475  			}
   476  		}
   477  		if !exists {
   478  			var newDstElement *api.HealthCheckSpec
   479  			if sourceValue != nil {
   480  				newDstElement = new(api.HealthCheckSpec)
   481  				proto.Merge(newDstElement, sourceValue)
   482  			}
   483  			o.HealthChecks = append(o.HealthChecks, newDstElement)
   484  		}
   485  	}
   486  
   487  	o.DisableNetworkConfigFallback = source.GetDisableNetworkConfigFallback()
   488  }
   489  
   490  func (o *Device_Spec) MergeRaw(source gotenobject.GotenObjectExt) {
   491  	o.Merge(source.(*Device_Spec))
   492  }
   493  
   494  func (o *Device_Status) GotenObjectExt() {}
   495  
   496  func (o *Device_Status) MakeFullFieldMask() *Device_Status_FieldMask {
   497  	return FullDevice_Status_FieldMask()
   498  }
   499  
   500  func (o *Device_Status) MakeRawFullFieldMask() gotenobject.FieldMask {
   501  	return FullDevice_Status_FieldMask()
   502  }
   503  
   504  func (o *Device_Status) MakeDiffFieldMask(other *Device_Status) *Device_Status_FieldMask {
   505  	if o == nil && other == nil {
   506  		return &Device_Status_FieldMask{}
   507  	}
   508  	if o == nil || other == nil {
   509  		return FullDevice_Status_FieldMask()
   510  	}
   511  
   512  	res := &Device_Status_FieldMask{}
   513  
   514  	if len(o.GetAddresses()) == len(other.GetAddresses()) {
   515  		for i, lValue := range o.GetAddresses() {
   516  			rValue := other.GetAddresses()[i]
   517  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
   518  				res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorAddresses})
   519  				break
   520  			}
   521  		}
   522  	} else {
   523  		res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorAddresses})
   524  	}
   525  
   526  	if len(o.GetConditions()) == len(other.GetConditions()) {
   527  		for i, lValue := range o.GetConditions() {
   528  			rValue := other.GetConditions()[i]
   529  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
   530  				res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorConditions})
   531  				break
   532  			}
   533  		}
   534  	} else {
   535  		res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorConditions})
   536  	}
   537  	{
   538  		subMask := o.GetNetworkConfigState().MakeDiffFieldMask(other.GetNetworkConfigState())
   539  		if subMask.IsFull() {
   540  			res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorNetworkConfigState})
   541  		} else {
   542  			for _, subpath := range subMask.Paths {
   543  				res.Paths = append(res.Paths, &DeviceStatus_FieldSubPath{selector: DeviceStatus_FieldPathSelectorNetworkConfigState, subPath: subpath})
   544  			}
   545  		}
   546  	}
   547  	{
   548  		subMask := o.GetProxyConfigStatus().MakeDiffFieldMask(other.GetProxyConfigStatus())
   549  		if subMask.IsFull() {
   550  			res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorProxyConfigStatus})
   551  		} else {
   552  			for _, subpath := range subMask.Paths {
   553  				res.Paths = append(res.Paths, &DeviceStatus_FieldSubPath{selector: DeviceStatus_FieldPathSelectorProxyConfigStatus, subPath: subpath})
   554  			}
   555  		}
   556  	}
   557  	{
   558  		subMask := o.GetDeviceInfo().MakeDiffFieldMask(other.GetDeviceInfo())
   559  		if subMask.IsFull() {
   560  			res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorDeviceInfo})
   561  		} else {
   562  			for _, subpath := range subMask.Paths {
   563  				res.Paths = append(res.Paths, &DeviceStatus_FieldSubPath{selector: DeviceStatus_FieldPathSelectorDeviceInfo, subPath: subpath})
   564  			}
   565  		}
   566  	}
   567  
   568  	if len(o.GetAttestationStatus()) == len(other.GetAttestationStatus()) {
   569  		for i, lValue := range o.GetAttestationStatus() {
   570  			rValue := other.GetAttestationStatus()[i]
   571  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
   572  				res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorAttestationStatus})
   573  				break
   574  			}
   575  		}
   576  	} else {
   577  		res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorAttestationStatus})
   578  	}
   579  	{
   580  		subMask := o.GetNormalizedAddress().MakeDiffFieldMask(other.GetNormalizedAddress())
   581  		if subMask.IsFull() {
   582  			res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorNormalizedAddress})
   583  		} else {
   584  			for _, subpath := range subMask.Paths {
   585  				res.Paths = append(res.Paths, &DeviceStatus_FieldSubPath{selector: DeviceStatus_FieldPathSelectorNormalizedAddress, subPath: subpath})
   586  			}
   587  		}
   588  	}
   589  	if o.GetConnectionStatus() != other.GetConnectionStatus() {
   590  		res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorConnectionStatus})
   591  	}
   592  	if !proto.Equal(o.GetConnectionStatusChangeTime(), other.GetConnectionStatusChangeTime()) {
   593  		res.Paths = append(res.Paths, &DeviceStatus_FieldTerminalPath{selector: DeviceStatus_FieldPathSelectorConnectionStatusChangeTime})
   594  	}
   595  	return res
   596  }
   597  
   598  func (o *Device_Status) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   599  	return o.MakeDiffFieldMask(other.(*Device_Status))
   600  }
   601  
   602  func (o *Device_Status) Clone() *Device_Status {
   603  	if o == nil {
   604  		return nil
   605  	}
   606  	result := &Device_Status{}
   607  	result.Addresses = make([]*Device_Status_Address, len(o.Addresses))
   608  	for i, sourceValue := range o.Addresses {
   609  		result.Addresses[i] = sourceValue.Clone()
   610  	}
   611  	result.Conditions = make([]*Device_Status_Condition, len(o.Conditions))
   612  	for i, sourceValue := range o.Conditions {
   613  		result.Conditions[i] = sourceValue.Clone()
   614  	}
   615  	result.NetworkConfigState = o.NetworkConfigState.Clone()
   616  	result.ProxyConfigStatus = o.ProxyConfigStatus.Clone()
   617  	result.DeviceInfo = o.DeviceInfo.Clone()
   618  	result.AttestationStatus = make([]*iam_iam_common.PCR, len(o.AttestationStatus))
   619  	for i, sourceValue := range o.AttestationStatus {
   620  		result.AttestationStatus[i] = sourceValue.Clone()
   621  	}
   622  	result.NormalizedAddress = o.NormalizedAddress.Clone()
   623  	result.ConnectionStatus = o.ConnectionStatus
   624  	result.ConnectionStatusChangeTime = proto.Clone(o.ConnectionStatusChangeTime).(*timestamppb.Timestamp)
   625  	return result
   626  }
   627  
   628  func (o *Device_Status) CloneRaw() gotenobject.GotenObjectExt {
   629  	return o.Clone()
   630  }
   631  
   632  func (o *Device_Status) Merge(source *Device_Status) {
   633  	for _, sourceValue := range source.GetAddresses() {
   634  		exists := false
   635  		for _, currentValue := range o.Addresses {
   636  			if proto.Equal(sourceValue, currentValue) {
   637  				exists = true
   638  				break
   639  			}
   640  		}
   641  		if !exists {
   642  			var newDstElement *Device_Status_Address
   643  			if sourceValue != nil {
   644  				newDstElement = new(Device_Status_Address)
   645  				newDstElement.Merge(sourceValue)
   646  			}
   647  			o.Addresses = append(o.Addresses, newDstElement)
   648  		}
   649  	}
   650  
   651  	for _, sourceValue := range source.GetConditions() {
   652  		exists := false
   653  		for _, currentValue := range o.Conditions {
   654  			if proto.Equal(sourceValue, currentValue) {
   655  				exists = true
   656  				break
   657  			}
   658  		}
   659  		if !exists {
   660  			var newDstElement *Device_Status_Condition
   661  			if sourceValue != nil {
   662  				newDstElement = new(Device_Status_Condition)
   663  				newDstElement.Merge(sourceValue)
   664  			}
   665  			o.Conditions = append(o.Conditions, newDstElement)
   666  		}
   667  	}
   668  
   669  	if source.GetNetworkConfigState() != nil {
   670  		if o.NetworkConfigState == nil {
   671  			o.NetworkConfigState = new(Device_Status_NetworkConfigState)
   672  		}
   673  		o.NetworkConfigState.Merge(source.GetNetworkConfigState())
   674  	}
   675  	if source.GetProxyConfigStatus() != nil {
   676  		if o.ProxyConfigStatus == nil {
   677  			o.ProxyConfigStatus = new(Device_Status_ProxyConfigStatus)
   678  		}
   679  		o.ProxyConfigStatus.Merge(source.GetProxyConfigStatus())
   680  	}
   681  	if source.GetDeviceInfo() != nil {
   682  		if o.DeviceInfo == nil {
   683  			o.DeviceInfo = new(Device_Status_DeviceInfo)
   684  		}
   685  		o.DeviceInfo.Merge(source.GetDeviceInfo())
   686  	}
   687  	for _, sourceValue := range source.GetAttestationStatus() {
   688  		exists := false
   689  		for _, currentValue := range o.AttestationStatus {
   690  			if proto.Equal(sourceValue, currentValue) {
   691  				exists = true
   692  				break
   693  			}
   694  		}
   695  		if !exists {
   696  			var newDstElement *iam_iam_common.PCR
   697  			if sourceValue != nil {
   698  				newDstElement = new(iam_iam_common.PCR)
   699  				newDstElement.Merge(sourceValue)
   700  			}
   701  			o.AttestationStatus = append(o.AttestationStatus, newDstElement)
   702  		}
   703  	}
   704  
   705  	if source.GetNormalizedAddress() != nil {
   706  		if o.NormalizedAddress == nil {
   707  			o.NormalizedAddress = new(Device_Status_NormalizedAddress)
   708  		}
   709  		o.NormalizedAddress.Merge(source.GetNormalizedAddress())
   710  	}
   711  	o.ConnectionStatus = source.GetConnectionStatus()
   712  	if source.GetConnectionStatusChangeTime() != nil {
   713  		if o.ConnectionStatusChangeTime == nil {
   714  			o.ConnectionStatusChangeTime = new(timestamppb.Timestamp)
   715  		}
   716  		proto.Merge(o.ConnectionStatusChangeTime, source.GetConnectionStatusChangeTime())
   717  	}
   718  }
   719  
   720  func (o *Device_Status) MergeRaw(source gotenobject.GotenObjectExt) {
   721  	o.Merge(source.(*Device_Status))
   722  }
   723  
   724  func (o *Device_PublicListingSpec) GotenObjectExt() {}
   725  
   726  func (o *Device_PublicListingSpec) MakeFullFieldMask() *Device_PublicListingSpec_FieldMask {
   727  	return FullDevice_PublicListingSpec_FieldMask()
   728  }
   729  
   730  func (o *Device_PublicListingSpec) MakeRawFullFieldMask() gotenobject.FieldMask {
   731  	return FullDevice_PublicListingSpec_FieldMask()
   732  }
   733  
   734  func (o *Device_PublicListingSpec) MakeDiffFieldMask(other *Device_PublicListingSpec) *Device_PublicListingSpec_FieldMask {
   735  	if o == nil && other == nil {
   736  		return &Device_PublicListingSpec_FieldMask{}
   737  	}
   738  	if o == nil || other == nil {
   739  		return FullDevice_PublicListingSpec_FieldMask()
   740  	}
   741  
   742  	res := &Device_PublicListingSpec_FieldMask{}
   743  	if o.GetEnabled() != other.GetEnabled() {
   744  		res.Paths = append(res.Paths, &DevicePublicListingSpec_FieldTerminalPath{selector: DevicePublicListingSpec_FieldPathSelectorEnabled})
   745  	}
   746  	if !proto.Equal(o.GetFieldMask(), other.GetFieldMask()) {
   747  		res.Paths = append(res.Paths, &DevicePublicListingSpec_FieldTerminalPath{selector: DevicePublicListingSpec_FieldPathSelectorFieldMask})
   748  	}
   749  	return res
   750  }
   751  
   752  func (o *Device_PublicListingSpec) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   753  	return o.MakeDiffFieldMask(other.(*Device_PublicListingSpec))
   754  }
   755  
   756  func (o *Device_PublicListingSpec) Clone() *Device_PublicListingSpec {
   757  	if o == nil {
   758  		return nil
   759  	}
   760  	result := &Device_PublicListingSpec{}
   761  	result.Enabled = o.Enabled
   762  	result.FieldMask = proto.Clone(o.FieldMask).(*Device_FieldMask)
   763  	return result
   764  }
   765  
   766  func (o *Device_PublicListingSpec) CloneRaw() gotenobject.GotenObjectExt {
   767  	return o.Clone()
   768  }
   769  
   770  func (o *Device_PublicListingSpec) Merge(source *Device_PublicListingSpec) {
   771  	o.Enabled = source.GetEnabled()
   772  	if source.GetFieldMask() != nil {
   773  		if o.FieldMask == nil {
   774  			o.FieldMask = new(Device_FieldMask)
   775  		}
   776  		mergedMask := googlefieldmaskpb.Union(source.GetFieldMask().ToProtoFieldMask(), o.FieldMask.ToProtoFieldMask())
   777  		if err := o.FieldMask.FromProtoFieldMask(mergedMask); err != nil {
   778  			panic(err)
   779  		}
   780  	}
   781  }
   782  
   783  func (o *Device_PublicListingSpec) MergeRaw(source gotenobject.GotenObjectExt) {
   784  	o.Merge(source.(*Device_PublicListingSpec))
   785  }
   786  
   787  func (o *Device_Spec_SSHConfig) GotenObjectExt() {}
   788  
   789  func (o *Device_Spec_SSHConfig) MakeFullFieldMask() *Device_Spec_SSHConfig_FieldMask {
   790  	return FullDevice_Spec_SSHConfig_FieldMask()
   791  }
   792  
   793  func (o *Device_Spec_SSHConfig) MakeRawFullFieldMask() gotenobject.FieldMask {
   794  	return FullDevice_Spec_SSHConfig_FieldMask()
   795  }
   796  
   797  func (o *Device_Spec_SSHConfig) MakeDiffFieldMask(other *Device_Spec_SSHConfig) *Device_Spec_SSHConfig_FieldMask {
   798  	if o == nil && other == nil {
   799  		return &Device_Spec_SSHConfig_FieldMask{}
   800  	}
   801  	if o == nil || other == nil {
   802  		return FullDevice_Spec_SSHConfig_FieldMask()
   803  	}
   804  
   805  	res := &Device_Spec_SSHConfig_FieldMask{}
   806  	if o.GetDisableSshServer() != other.GetDisableSshServer() {
   807  		res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorDisableSshServer})
   808  	}
   809  	if o.GetDisableSshPassword() != other.GetDisableSshPassword() {
   810  		res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorDisableSshPassword})
   811  	}
   812  
   813  	if len(o.GetSshAuthorized()) == len(other.GetSshAuthorized()) {
   814  		for i, lValue := range o.GetSshAuthorized() {
   815  			rValue := other.GetSshAuthorized()[i]
   816  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
   817  				res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorSshAuthorized})
   818  				break
   819  			}
   820  		}
   821  	} else {
   822  		res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorSshAuthorized})
   823  	}
   824  
   825  	if len(o.GetIpAllowList()) == len(other.GetIpAllowList()) {
   826  		for i, lValue := range o.GetIpAllowList() {
   827  			rValue := other.GetIpAllowList()[i]
   828  			if lValue != rValue {
   829  				res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorIpAllowList})
   830  				break
   831  			}
   832  		}
   833  	} else {
   834  		res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorIpAllowList})
   835  	}
   836  
   837  	if len(o.GetIpDenyList()) == len(other.GetIpDenyList()) {
   838  		for i, lValue := range o.GetIpDenyList() {
   839  			rValue := other.GetIpDenyList()[i]
   840  			if lValue != rValue {
   841  				res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorIpDenyList})
   842  				break
   843  			}
   844  		}
   845  	} else {
   846  		res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorIpDenyList})
   847  	}
   848  	if !proto.Equal(o.GetRejectPeriod(), other.GetRejectPeriod()) {
   849  		res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorRejectPeriod})
   850  	}
   851  	if o.GetDisableSshAuthkey() != other.GetDisableSshAuthkey() {
   852  		res.Paths = append(res.Paths, &DeviceSpecSSHConfig_FieldTerminalPath{selector: DeviceSpecSSHConfig_FieldPathSelectorDisableSshAuthkey})
   853  	}
   854  	return res
   855  }
   856  
   857  func (o *Device_Spec_SSHConfig) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   858  	return o.MakeDiffFieldMask(other.(*Device_Spec_SSHConfig))
   859  }
   860  
   861  func (o *Device_Spec_SSHConfig) Clone() *Device_Spec_SSHConfig {
   862  	if o == nil {
   863  		return nil
   864  	}
   865  	result := &Device_Spec_SSHConfig{}
   866  	result.DisableSshServer = o.DisableSshServer
   867  	result.DisableSshPassword = o.DisableSshPassword
   868  	result.SshAuthorized = make([]*Device_Spec_SSHConfig_AuthKey, len(o.SshAuthorized))
   869  	for i, sourceValue := range o.SshAuthorized {
   870  		result.SshAuthorized[i] = sourceValue.Clone()
   871  	}
   872  	result.IpAllowList = make([]string, len(o.IpAllowList))
   873  	for i, sourceValue := range o.IpAllowList {
   874  		result.IpAllowList[i] = sourceValue
   875  	}
   876  	result.IpDenyList = make([]string, len(o.IpDenyList))
   877  	for i, sourceValue := range o.IpDenyList {
   878  		result.IpDenyList[i] = sourceValue
   879  	}
   880  	result.RejectPeriod = proto.Clone(o.RejectPeriod).(*durationpb.Duration)
   881  	result.DisableSshAuthkey = o.DisableSshAuthkey
   882  	return result
   883  }
   884  
   885  func (o *Device_Spec_SSHConfig) CloneRaw() gotenobject.GotenObjectExt {
   886  	return o.Clone()
   887  }
   888  
   889  func (o *Device_Spec_SSHConfig) Merge(source *Device_Spec_SSHConfig) {
   890  	o.DisableSshServer = source.GetDisableSshServer()
   891  	o.DisableSshPassword = source.GetDisableSshPassword()
   892  	for _, sourceValue := range source.GetSshAuthorized() {
   893  		exists := false
   894  		for _, currentValue := range o.SshAuthorized {
   895  			if proto.Equal(sourceValue, currentValue) {
   896  				exists = true
   897  				break
   898  			}
   899  		}
   900  		if !exists {
   901  			var newDstElement *Device_Spec_SSHConfig_AuthKey
   902  			if sourceValue != nil {
   903  				newDstElement = new(Device_Spec_SSHConfig_AuthKey)
   904  				newDstElement.Merge(sourceValue)
   905  			}
   906  			o.SshAuthorized = append(o.SshAuthorized, newDstElement)
   907  		}
   908  	}
   909  
   910  	for _, sourceValue := range source.GetIpAllowList() {
   911  		exists := false
   912  		for _, currentValue := range o.IpAllowList {
   913  			if currentValue == sourceValue {
   914  				exists = true
   915  				break
   916  			}
   917  		}
   918  		if !exists {
   919  			var newDstElement string
   920  			newDstElement = sourceValue
   921  			o.IpAllowList = append(o.IpAllowList, newDstElement)
   922  		}
   923  	}
   924  
   925  	for _, sourceValue := range source.GetIpDenyList() {
   926  		exists := false
   927  		for _, currentValue := range o.IpDenyList {
   928  			if currentValue == sourceValue {
   929  				exists = true
   930  				break
   931  			}
   932  		}
   933  		if !exists {
   934  			var newDstElement string
   935  			newDstElement = sourceValue
   936  			o.IpDenyList = append(o.IpDenyList, newDstElement)
   937  		}
   938  	}
   939  
   940  	if source.GetRejectPeriod() != nil {
   941  		if o.RejectPeriod == nil {
   942  			o.RejectPeriod = new(durationpb.Duration)
   943  		}
   944  		proto.Merge(o.RejectPeriod, source.GetRejectPeriod())
   945  	}
   946  	o.DisableSshAuthkey = source.GetDisableSshAuthkey()
   947  }
   948  
   949  func (o *Device_Spec_SSHConfig) MergeRaw(source gotenobject.GotenObjectExt) {
   950  	o.Merge(source.(*Device_Spec_SSHConfig))
   951  }
   952  
   953  func (o *Device_Spec_AttestationConfig) GotenObjectExt() {}
   954  
   955  func (o *Device_Spec_AttestationConfig) MakeFullFieldMask() *Device_Spec_AttestationConfig_FieldMask {
   956  	return FullDevice_Spec_AttestationConfig_FieldMask()
   957  }
   958  
   959  func (o *Device_Spec_AttestationConfig) MakeRawFullFieldMask() gotenobject.FieldMask {
   960  	return FullDevice_Spec_AttestationConfig_FieldMask()
   961  }
   962  
   963  func (o *Device_Spec_AttestationConfig) MakeDiffFieldMask(other *Device_Spec_AttestationConfig) *Device_Spec_AttestationConfig_FieldMask {
   964  	if o == nil && other == nil {
   965  		return &Device_Spec_AttestationConfig_FieldMask{}
   966  	}
   967  	if o == nil || other == nil {
   968  		return FullDevice_Spec_AttestationConfig_FieldMask()
   969  	}
   970  
   971  	res := &Device_Spec_AttestationConfig_FieldMask{}
   972  	if o.GetAttestationExpected() != other.GetAttestationExpected() {
   973  		res.Paths = append(res.Paths, &DeviceSpecAttestationConfig_FieldTerminalPath{selector: DeviceSpecAttestationConfig_FieldPathSelectorAttestationExpected})
   974  	}
   975  	if o.GetAttestationDomain().String() != other.GetAttestationDomain().String() {
   976  		res.Paths = append(res.Paths, &DeviceSpecAttestationConfig_FieldTerminalPath{selector: DeviceSpecAttestationConfig_FieldPathSelectorAttestationDomain})
   977  	}
   978  	return res
   979  }
   980  
   981  func (o *Device_Spec_AttestationConfig) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   982  	return o.MakeDiffFieldMask(other.(*Device_Spec_AttestationConfig))
   983  }
   984  
   985  func (o *Device_Spec_AttestationConfig) Clone() *Device_Spec_AttestationConfig {
   986  	if o == nil {
   987  		return nil
   988  	}
   989  	result := &Device_Spec_AttestationConfig{}
   990  	result.AttestationExpected = o.AttestationExpected
   991  	if o.AttestationDomain == nil {
   992  		result.AttestationDomain = nil
   993  	} else if data, err := o.AttestationDomain.ProtoString(); err != nil {
   994  		panic(err)
   995  	} else {
   996  		result.AttestationDomain = &iam_attestation_domain.Reference{}
   997  		if err := result.AttestationDomain.ParseProtoString(data); err != nil {
   998  			panic(err)
   999  		}
  1000  	}
  1001  	return result
  1002  }
  1003  
  1004  func (o *Device_Spec_AttestationConfig) CloneRaw() gotenobject.GotenObjectExt {
  1005  	return o.Clone()
  1006  }
  1007  
  1008  func (o *Device_Spec_AttestationConfig) Merge(source *Device_Spec_AttestationConfig) {
  1009  	o.AttestationExpected = source.GetAttestationExpected()
  1010  	if source.GetAttestationDomain() != nil {
  1011  		if data, err := source.GetAttestationDomain().ProtoString(); err != nil {
  1012  			panic(err)
  1013  		} else {
  1014  			o.AttestationDomain = &iam_attestation_domain.Reference{}
  1015  			if err := o.AttestationDomain.ParseProtoString(data); err != nil {
  1016  				panic(err)
  1017  			}
  1018  		}
  1019  	} else {
  1020  		o.AttestationDomain = nil
  1021  	}
  1022  }
  1023  
  1024  func (o *Device_Spec_AttestationConfig) MergeRaw(source gotenobject.GotenObjectExt) {
  1025  	o.Merge(source.(*Device_Spec_AttestationConfig))
  1026  }
  1027  
  1028  func (o *Device_Spec_LoggingConfig) GotenObjectExt() {}
  1029  
  1030  func (o *Device_Spec_LoggingConfig) MakeFullFieldMask() *Device_Spec_LoggingConfig_FieldMask {
  1031  	return FullDevice_Spec_LoggingConfig_FieldMask()
  1032  }
  1033  
  1034  func (o *Device_Spec_LoggingConfig) MakeRawFullFieldMask() gotenobject.FieldMask {
  1035  	return FullDevice_Spec_LoggingConfig_FieldMask()
  1036  }
  1037  
  1038  func (o *Device_Spec_LoggingConfig) MakeDiffFieldMask(other *Device_Spec_LoggingConfig) *Device_Spec_LoggingConfig_FieldMask {
  1039  	if o == nil && other == nil {
  1040  		return &Device_Spec_LoggingConfig_FieldMask{}
  1041  	}
  1042  	if o == nil || other == nil {
  1043  		return FullDevice_Spec_LoggingConfig_FieldMask()
  1044  	}
  1045  
  1046  	res := &Device_Spec_LoggingConfig_FieldMask{}
  1047  	if o.GetPriority() != other.GetPriority() {
  1048  		res.Paths = append(res.Paths, &DeviceSpecLoggingConfig_FieldTerminalPath{selector: DeviceSpecLoggingConfig_FieldPathSelectorPriority})
  1049  	}
  1050  
  1051  	if len(o.GetUnits()) == len(other.GetUnits()) {
  1052  		for i, lValue := range o.GetUnits() {
  1053  			rValue := other.GetUnits()[i]
  1054  			if lValue != rValue {
  1055  				res.Paths = append(res.Paths, &DeviceSpecLoggingConfig_FieldTerminalPath{selector: DeviceSpecLoggingConfig_FieldPathSelectorUnits})
  1056  				break
  1057  			}
  1058  		}
  1059  	} else {
  1060  		res.Paths = append(res.Paths, &DeviceSpecLoggingConfig_FieldTerminalPath{selector: DeviceSpecLoggingConfig_FieldPathSelectorUnits})
  1061  	}
  1062  	if o.GetEnableJournalExport() != other.GetEnableJournalExport() {
  1063  		res.Paths = append(res.Paths, &DeviceSpecLoggingConfig_FieldTerminalPath{selector: DeviceSpecLoggingConfig_FieldPathSelectorEnableJournalExport})
  1064  	}
  1065  	{
  1066  		subMask := o.GetContainerLoggingConfig().MakeDiffFieldMask(other.GetContainerLoggingConfig())
  1067  		if subMask.IsFull() {
  1068  			res.Paths = append(res.Paths, &DeviceSpecLoggingConfig_FieldTerminalPath{selector: DeviceSpecLoggingConfig_FieldPathSelectorContainerLoggingConfig})
  1069  		} else {
  1070  			for _, subpath := range subMask.Paths {
  1071  				res.Paths = append(res.Paths, &DeviceSpecLoggingConfig_FieldSubPath{selector: DeviceSpecLoggingConfig_FieldPathSelectorContainerLoggingConfig, subPath: subpath})
  1072  			}
  1073  		}
  1074  	}
  1075  	return res
  1076  }
  1077  
  1078  func (o *Device_Spec_LoggingConfig) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1079  	return o.MakeDiffFieldMask(other.(*Device_Spec_LoggingConfig))
  1080  }
  1081  
  1082  func (o *Device_Spec_LoggingConfig) Clone() *Device_Spec_LoggingConfig {
  1083  	if o == nil {
  1084  		return nil
  1085  	}
  1086  	result := &Device_Spec_LoggingConfig{}
  1087  	result.Priority = o.Priority
  1088  	result.Units = make([]string, len(o.Units))
  1089  	for i, sourceValue := range o.Units {
  1090  		result.Units[i] = sourceValue
  1091  	}
  1092  	result.EnableJournalExport = o.EnableJournalExport
  1093  	result.ContainerLoggingConfig = o.ContainerLoggingConfig.Clone()
  1094  	return result
  1095  }
  1096  
  1097  func (o *Device_Spec_LoggingConfig) CloneRaw() gotenobject.GotenObjectExt {
  1098  	return o.Clone()
  1099  }
  1100  
  1101  func (o *Device_Spec_LoggingConfig) Merge(source *Device_Spec_LoggingConfig) {
  1102  	o.Priority = source.GetPriority()
  1103  	for _, sourceValue := range source.GetUnits() {
  1104  		exists := false
  1105  		for _, currentValue := range o.Units {
  1106  			if currentValue == sourceValue {
  1107  				exists = true
  1108  				break
  1109  			}
  1110  		}
  1111  		if !exists {
  1112  			var newDstElement string
  1113  			newDstElement = sourceValue
  1114  			o.Units = append(o.Units, newDstElement)
  1115  		}
  1116  	}
  1117  
  1118  	o.EnableJournalExport = source.GetEnableJournalExport()
  1119  	if source.GetContainerLoggingConfig() != nil {
  1120  		if o.ContainerLoggingConfig == nil {
  1121  			o.ContainerLoggingConfig = new(Device_Spec_LoggingConfig_ContainerLoggingConfig)
  1122  		}
  1123  		o.ContainerLoggingConfig.Merge(source.GetContainerLoggingConfig())
  1124  	}
  1125  }
  1126  
  1127  func (o *Device_Spec_LoggingConfig) MergeRaw(source gotenobject.GotenObjectExt) {
  1128  	o.Merge(source.(*Device_Spec_LoggingConfig))
  1129  }
  1130  
  1131  func (o *Device_Spec_ProxyConfig) GotenObjectExt() {}
  1132  
  1133  func (o *Device_Spec_ProxyConfig) MakeFullFieldMask() *Device_Spec_ProxyConfig_FieldMask {
  1134  	return FullDevice_Spec_ProxyConfig_FieldMask()
  1135  }
  1136  
  1137  func (o *Device_Spec_ProxyConfig) MakeRawFullFieldMask() gotenobject.FieldMask {
  1138  	return FullDevice_Spec_ProxyConfig_FieldMask()
  1139  }
  1140  
  1141  func (o *Device_Spec_ProxyConfig) MakeDiffFieldMask(other *Device_Spec_ProxyConfig) *Device_Spec_ProxyConfig_FieldMask {
  1142  	if o == nil && other == nil {
  1143  		return &Device_Spec_ProxyConfig_FieldMask{}
  1144  	}
  1145  	if o == nil || other == nil {
  1146  		return FullDevice_Spec_ProxyConfig_FieldMask()
  1147  	}
  1148  
  1149  	res := &Device_Spec_ProxyConfig_FieldMask{}
  1150  	if o.GetHttpProxy() != other.GetHttpProxy() {
  1151  		res.Paths = append(res.Paths, &DeviceSpecProxyConfig_FieldTerminalPath{selector: DeviceSpecProxyConfig_FieldPathSelectorHttpProxy})
  1152  	}
  1153  	if o.GetHttpsProxy() != other.GetHttpsProxy() {
  1154  		res.Paths = append(res.Paths, &DeviceSpecProxyConfig_FieldTerminalPath{selector: DeviceSpecProxyConfig_FieldPathSelectorHttpsProxy})
  1155  	}
  1156  	if o.GetNoProxy() != other.GetNoProxy() {
  1157  		res.Paths = append(res.Paths, &DeviceSpecProxyConfig_FieldTerminalPath{selector: DeviceSpecProxyConfig_FieldPathSelectorNoProxy})
  1158  	}
  1159  
  1160  	if len(o.GetProxyInterfaces()) == len(other.GetProxyInterfaces()) {
  1161  		for i, lValue := range o.GetProxyInterfaces() {
  1162  			rValue := other.GetProxyInterfaces()[i]
  1163  			if lValue != rValue {
  1164  				res.Paths = append(res.Paths, &DeviceSpecProxyConfig_FieldTerminalPath{selector: DeviceSpecProxyConfig_FieldPathSelectorProxyInterfaces})
  1165  				break
  1166  			}
  1167  		}
  1168  	} else {
  1169  		res.Paths = append(res.Paths, &DeviceSpecProxyConfig_FieldTerminalPath{selector: DeviceSpecProxyConfig_FieldPathSelectorProxyInterfaces})
  1170  	}
  1171  	return res
  1172  }
  1173  
  1174  func (o *Device_Spec_ProxyConfig) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1175  	return o.MakeDiffFieldMask(other.(*Device_Spec_ProxyConfig))
  1176  }
  1177  
  1178  func (o *Device_Spec_ProxyConfig) Clone() *Device_Spec_ProxyConfig {
  1179  	if o == nil {
  1180  		return nil
  1181  	}
  1182  	result := &Device_Spec_ProxyConfig{}
  1183  	result.HttpProxy = o.HttpProxy
  1184  	result.HttpsProxy = o.HttpsProxy
  1185  	result.NoProxy = o.NoProxy
  1186  	result.ProxyInterfaces = make([]string, len(o.ProxyInterfaces))
  1187  	for i, sourceValue := range o.ProxyInterfaces {
  1188  		result.ProxyInterfaces[i] = sourceValue
  1189  	}
  1190  	return result
  1191  }
  1192  
  1193  func (o *Device_Spec_ProxyConfig) CloneRaw() gotenobject.GotenObjectExt {
  1194  	return o.Clone()
  1195  }
  1196  
  1197  func (o *Device_Spec_ProxyConfig) Merge(source *Device_Spec_ProxyConfig) {
  1198  	o.HttpProxy = source.GetHttpProxy()
  1199  	o.HttpsProxy = source.GetHttpsProxy()
  1200  	o.NoProxy = source.GetNoProxy()
  1201  	for _, sourceValue := range source.GetProxyInterfaces() {
  1202  		exists := false
  1203  		for _, currentValue := range o.ProxyInterfaces {
  1204  			if currentValue == sourceValue {
  1205  				exists = true
  1206  				break
  1207  			}
  1208  		}
  1209  		if !exists {
  1210  			var newDstElement string
  1211  			newDstElement = sourceValue
  1212  			o.ProxyInterfaces = append(o.ProxyInterfaces, newDstElement)
  1213  		}
  1214  	}
  1215  
  1216  }
  1217  
  1218  func (o *Device_Spec_ProxyConfig) MergeRaw(source gotenobject.GotenObjectExt) {
  1219  	o.Merge(source.(*Device_Spec_ProxyConfig))
  1220  }
  1221  
  1222  func (o *Device_Spec_Location) GotenObjectExt() {}
  1223  
  1224  func (o *Device_Spec_Location) MakeFullFieldMask() *Device_Spec_Location_FieldMask {
  1225  	return FullDevice_Spec_Location_FieldMask()
  1226  }
  1227  
  1228  func (o *Device_Spec_Location) MakeRawFullFieldMask() gotenobject.FieldMask {
  1229  	return FullDevice_Spec_Location_FieldMask()
  1230  }
  1231  
  1232  func (o *Device_Spec_Location) MakeDiffFieldMask(other *Device_Spec_Location) *Device_Spec_Location_FieldMask {
  1233  	if o == nil && other == nil {
  1234  		return &Device_Spec_Location_FieldMask{}
  1235  	}
  1236  	if o == nil || other == nil {
  1237  		return FullDevice_Spec_Location_FieldMask()
  1238  	}
  1239  
  1240  	res := &Device_Spec_Location_FieldMask{}
  1241  	if o.GetAddress() != other.GetAddress() {
  1242  		res.Paths = append(res.Paths, &DeviceSpecLocation_FieldTerminalPath{selector: DeviceSpecLocation_FieldPathSelectorAddress})
  1243  	}
  1244  	if o.GetPlacement() != other.GetPlacement() {
  1245  		res.Paths = append(res.Paths, &DeviceSpecLocation_FieldTerminalPath{selector: DeviceSpecLocation_FieldPathSelectorPlacement})
  1246  	}
  1247  	return res
  1248  }
  1249  
  1250  func (o *Device_Spec_Location) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1251  	return o.MakeDiffFieldMask(other.(*Device_Spec_Location))
  1252  }
  1253  
  1254  func (o *Device_Spec_Location) Clone() *Device_Spec_Location {
  1255  	if o == nil {
  1256  		return nil
  1257  	}
  1258  	result := &Device_Spec_Location{}
  1259  	result.Address = o.Address
  1260  	result.Placement = o.Placement
  1261  	return result
  1262  }
  1263  
  1264  func (o *Device_Spec_Location) CloneRaw() gotenobject.GotenObjectExt {
  1265  	return o.Clone()
  1266  }
  1267  
  1268  func (o *Device_Spec_Location) Merge(source *Device_Spec_Location) {
  1269  	o.Address = source.GetAddress()
  1270  	o.Placement = source.GetPlacement()
  1271  }
  1272  
  1273  func (o *Device_Spec_Location) MergeRaw(source gotenobject.GotenObjectExt) {
  1274  	o.Merge(source.(*Device_Spec_Location))
  1275  }
  1276  
  1277  func (o *Device_Spec_USBGuard) GotenObjectExt() {}
  1278  
  1279  func (o *Device_Spec_USBGuard) MakeFullFieldMask() *Device_Spec_USBGuard_FieldMask {
  1280  	return FullDevice_Spec_USBGuard_FieldMask()
  1281  }
  1282  
  1283  func (o *Device_Spec_USBGuard) MakeRawFullFieldMask() gotenobject.FieldMask {
  1284  	return FullDevice_Spec_USBGuard_FieldMask()
  1285  }
  1286  
  1287  func (o *Device_Spec_USBGuard) MakeDiffFieldMask(other *Device_Spec_USBGuard) *Device_Spec_USBGuard_FieldMask {
  1288  	if o == nil && other == nil {
  1289  		return &Device_Spec_USBGuard_FieldMask{}
  1290  	}
  1291  	if o == nil || other == nil {
  1292  		return FullDevice_Spec_USBGuard_FieldMask()
  1293  	}
  1294  
  1295  	res := &Device_Spec_USBGuard_FieldMask{}
  1296  	if o.GetEnable() != other.GetEnable() {
  1297  		res.Paths = append(res.Paths, &DeviceSpecUSBGuard_FieldTerminalPath{selector: DeviceSpecUSBGuard_FieldPathSelectorEnable})
  1298  	}
  1299  
  1300  	if len(o.GetWhiteList()) == len(other.GetWhiteList()) {
  1301  		for i, lValue := range o.GetWhiteList() {
  1302  			rValue := other.GetWhiteList()[i]
  1303  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  1304  				res.Paths = append(res.Paths, &DeviceSpecUSBGuard_FieldTerminalPath{selector: DeviceSpecUSBGuard_FieldPathSelectorWhiteList})
  1305  				break
  1306  			}
  1307  		}
  1308  	} else {
  1309  		res.Paths = append(res.Paths, &DeviceSpecUSBGuard_FieldTerminalPath{selector: DeviceSpecUSBGuard_FieldPathSelectorWhiteList})
  1310  	}
  1311  	return res
  1312  }
  1313  
  1314  func (o *Device_Spec_USBGuard) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1315  	return o.MakeDiffFieldMask(other.(*Device_Spec_USBGuard))
  1316  }
  1317  
  1318  func (o *Device_Spec_USBGuard) Clone() *Device_Spec_USBGuard {
  1319  	if o == nil {
  1320  		return nil
  1321  	}
  1322  	result := &Device_Spec_USBGuard{}
  1323  	result.Enable = o.Enable
  1324  	result.WhiteList = make([]*Device_Spec_USBGuard_WhiteList, len(o.WhiteList))
  1325  	for i, sourceValue := range o.WhiteList {
  1326  		result.WhiteList[i] = sourceValue.Clone()
  1327  	}
  1328  	return result
  1329  }
  1330  
  1331  func (o *Device_Spec_USBGuard) CloneRaw() gotenobject.GotenObjectExt {
  1332  	return o.Clone()
  1333  }
  1334  
  1335  func (o *Device_Spec_USBGuard) Merge(source *Device_Spec_USBGuard) {
  1336  	o.Enable = source.GetEnable()
  1337  	for _, sourceValue := range source.GetWhiteList() {
  1338  		exists := false
  1339  		for _, currentValue := range o.WhiteList {
  1340  			if proto.Equal(sourceValue, currentValue) {
  1341  				exists = true
  1342  				break
  1343  			}
  1344  		}
  1345  		if !exists {
  1346  			var newDstElement *Device_Spec_USBGuard_WhiteList
  1347  			if sourceValue != nil {
  1348  				newDstElement = new(Device_Spec_USBGuard_WhiteList)
  1349  				newDstElement.Merge(sourceValue)
  1350  			}
  1351  			o.WhiteList = append(o.WhiteList, newDstElement)
  1352  		}
  1353  	}
  1354  
  1355  }
  1356  
  1357  func (o *Device_Spec_USBGuard) MergeRaw(source gotenobject.GotenObjectExt) {
  1358  	o.Merge(source.(*Device_Spec_USBGuard))
  1359  }
  1360  
  1361  func (o *Device_Spec_SSHConfig_AuthKey) GotenObjectExt() {}
  1362  
  1363  func (o *Device_Spec_SSHConfig_AuthKey) MakeFullFieldMask() *Device_Spec_SSHConfig_AuthKey_FieldMask {
  1364  	return FullDevice_Spec_SSHConfig_AuthKey_FieldMask()
  1365  }
  1366  
  1367  func (o *Device_Spec_SSHConfig_AuthKey) MakeRawFullFieldMask() gotenobject.FieldMask {
  1368  	return FullDevice_Spec_SSHConfig_AuthKey_FieldMask()
  1369  }
  1370  
  1371  func (o *Device_Spec_SSHConfig_AuthKey) MakeDiffFieldMask(other *Device_Spec_SSHConfig_AuthKey) *Device_Spec_SSHConfig_AuthKey_FieldMask {
  1372  	if o == nil && other == nil {
  1373  		return &Device_Spec_SSHConfig_AuthKey_FieldMask{}
  1374  	}
  1375  	if o == nil || other == nil {
  1376  		return FullDevice_Spec_SSHConfig_AuthKey_FieldMask()
  1377  	}
  1378  
  1379  	res := &Device_Spec_SSHConfig_AuthKey_FieldMask{}
  1380  	if o.GetSshaKey() != other.GetSshaKey() {
  1381  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorSshaKey})
  1382  	}
  1383  	if o.GetCertAuthority() != other.GetCertAuthority() {
  1384  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorCertAuthority})
  1385  	}
  1386  	if o.GetCommand() != other.GetCommand() {
  1387  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorCommand})
  1388  	}
  1389  	if o.GetEnvironment() != other.GetEnvironment() {
  1390  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorEnvironment})
  1391  	}
  1392  	if o.GetFrom() != other.GetFrom() {
  1393  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorFrom})
  1394  	}
  1395  	if o.GetNoAgentForwarding() != other.GetNoAgentForwarding() {
  1396  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoAgentForwarding})
  1397  	}
  1398  	if o.GetNoPortForwarding() != other.GetNoPortForwarding() {
  1399  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoPortForwarding})
  1400  	}
  1401  	if o.GetNoPty() != other.GetNoPty() {
  1402  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoPty})
  1403  	}
  1404  	if o.GetNoUserRc() != other.GetNoUserRc() {
  1405  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoUserRc})
  1406  	}
  1407  	if o.GetNoX11Forwarding() != other.GetNoX11Forwarding() {
  1408  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorNoX11Forwarding})
  1409  	}
  1410  	if o.GetPermitopen() != other.GetPermitopen() {
  1411  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorPermitopen})
  1412  	}
  1413  	if o.GetPrincipals() != other.GetPrincipals() {
  1414  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorPrincipals})
  1415  	}
  1416  	if o.GetTunnel() != other.GetTunnel() {
  1417  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorTunnel})
  1418  	}
  1419  	if o.GetRestrict() != other.GetRestrict() {
  1420  		res.Paths = append(res.Paths, &DeviceSpecSSHConfigAuthKey_FieldTerminalPath{selector: DeviceSpecSSHConfigAuthKey_FieldPathSelectorRestrict})
  1421  	}
  1422  	return res
  1423  }
  1424  
  1425  func (o *Device_Spec_SSHConfig_AuthKey) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1426  	return o.MakeDiffFieldMask(other.(*Device_Spec_SSHConfig_AuthKey))
  1427  }
  1428  
  1429  func (o *Device_Spec_SSHConfig_AuthKey) Clone() *Device_Spec_SSHConfig_AuthKey {
  1430  	if o == nil {
  1431  		return nil
  1432  	}
  1433  	result := &Device_Spec_SSHConfig_AuthKey{}
  1434  	result.SshaKey = o.SshaKey
  1435  	result.CertAuthority = o.CertAuthority
  1436  	result.Command = o.Command
  1437  	result.Environment = o.Environment
  1438  	result.From = o.From
  1439  	result.NoAgentForwarding = o.NoAgentForwarding
  1440  	result.NoPortForwarding = o.NoPortForwarding
  1441  	result.NoPty = o.NoPty
  1442  	result.NoUserRc = o.NoUserRc
  1443  	result.NoX11Forwarding = o.NoX11Forwarding
  1444  	result.Permitopen = o.Permitopen
  1445  	result.Principals = o.Principals
  1446  	result.Tunnel = o.Tunnel
  1447  	result.Restrict = o.Restrict
  1448  	return result
  1449  }
  1450  
  1451  func (o *Device_Spec_SSHConfig_AuthKey) CloneRaw() gotenobject.GotenObjectExt {
  1452  	return o.Clone()
  1453  }
  1454  
  1455  func (o *Device_Spec_SSHConfig_AuthKey) Merge(source *Device_Spec_SSHConfig_AuthKey) {
  1456  	o.SshaKey = source.GetSshaKey()
  1457  	o.CertAuthority = source.GetCertAuthority()
  1458  	o.Command = source.GetCommand()
  1459  	o.Environment = source.GetEnvironment()
  1460  	o.From = source.GetFrom()
  1461  	o.NoAgentForwarding = source.GetNoAgentForwarding()
  1462  	o.NoPortForwarding = source.GetNoPortForwarding()
  1463  	o.NoPty = source.GetNoPty()
  1464  	o.NoUserRc = source.GetNoUserRc()
  1465  	o.NoX11Forwarding = source.GetNoX11Forwarding()
  1466  	o.Permitopen = source.GetPermitopen()
  1467  	o.Principals = source.GetPrincipals()
  1468  	o.Tunnel = source.GetTunnel()
  1469  	o.Restrict = source.GetRestrict()
  1470  }
  1471  
  1472  func (o *Device_Spec_SSHConfig_AuthKey) MergeRaw(source gotenobject.GotenObjectExt) {
  1473  	o.Merge(source.(*Device_Spec_SSHConfig_AuthKey))
  1474  }
  1475  
  1476  func (o *Device_Spec_LoggingConfig_ContainerLoggingConfig) GotenObjectExt() {}
  1477  
  1478  func (o *Device_Spec_LoggingConfig_ContainerLoggingConfig) MakeFullFieldMask() *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask {
  1479  	return FullDevice_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask()
  1480  }
  1481  
  1482  func (o *Device_Spec_LoggingConfig_ContainerLoggingConfig) MakeRawFullFieldMask() gotenobject.FieldMask {
  1483  	return FullDevice_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask()
  1484  }
  1485  
  1486  func (o *Device_Spec_LoggingConfig_ContainerLoggingConfig) MakeDiffFieldMask(other *Device_Spec_LoggingConfig_ContainerLoggingConfig) *Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask {
  1487  	if o == nil && other == nil {
  1488  		return &Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask{}
  1489  	}
  1490  	if o == nil || other == nil {
  1491  		return FullDevice_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask()
  1492  	}
  1493  
  1494  	res := &Device_Spec_LoggingConfig_ContainerLoggingConfig_FieldMask{}
  1495  	if o.GetEnableContainerLogExport() != other.GetEnableContainerLogExport() {
  1496  		res.Paths = append(res.Paths, &DeviceSpecLoggingConfigContainerLoggingConfig_FieldTerminalPath{selector: DeviceSpecLoggingConfigContainerLoggingConfig_FieldPathSelectorEnableContainerLogExport})
  1497  	}
  1498  	return res
  1499  }
  1500  
  1501  func (o *Device_Spec_LoggingConfig_ContainerLoggingConfig) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1502  	return o.MakeDiffFieldMask(other.(*Device_Spec_LoggingConfig_ContainerLoggingConfig))
  1503  }
  1504  
  1505  func (o *Device_Spec_LoggingConfig_ContainerLoggingConfig) Clone() *Device_Spec_LoggingConfig_ContainerLoggingConfig {
  1506  	if o == nil {
  1507  		return nil
  1508  	}
  1509  	result := &Device_Spec_LoggingConfig_ContainerLoggingConfig{}
  1510  	result.EnableContainerLogExport = o.EnableContainerLogExport
  1511  	return result
  1512  }
  1513  
  1514  func (o *Device_Spec_LoggingConfig_ContainerLoggingConfig) CloneRaw() gotenobject.GotenObjectExt {
  1515  	return o.Clone()
  1516  }
  1517  
  1518  func (o *Device_Spec_LoggingConfig_ContainerLoggingConfig) Merge(source *Device_Spec_LoggingConfig_ContainerLoggingConfig) {
  1519  	o.EnableContainerLogExport = source.GetEnableContainerLogExport()
  1520  }
  1521  
  1522  func (o *Device_Spec_LoggingConfig_ContainerLoggingConfig) MergeRaw(source gotenobject.GotenObjectExt) {
  1523  	o.Merge(source.(*Device_Spec_LoggingConfig_ContainerLoggingConfig))
  1524  }
  1525  
  1526  func (o *Device_Spec_USBGuard_Port) GotenObjectExt() {}
  1527  
  1528  func (o *Device_Spec_USBGuard_Port) MakeFullFieldMask() *Device_Spec_USBGuard_Port_FieldMask {
  1529  	return FullDevice_Spec_USBGuard_Port_FieldMask()
  1530  }
  1531  
  1532  func (o *Device_Spec_USBGuard_Port) MakeRawFullFieldMask() gotenobject.FieldMask {
  1533  	return FullDevice_Spec_USBGuard_Port_FieldMask()
  1534  }
  1535  
  1536  func (o *Device_Spec_USBGuard_Port) MakeDiffFieldMask(other *Device_Spec_USBGuard_Port) *Device_Spec_USBGuard_Port_FieldMask {
  1537  	if o == nil && other == nil {
  1538  		return &Device_Spec_USBGuard_Port_FieldMask{}
  1539  	}
  1540  	if o == nil || other == nil {
  1541  		return FullDevice_Spec_USBGuard_Port_FieldMask()
  1542  	}
  1543  
  1544  	res := &Device_Spec_USBGuard_Port_FieldMask{}
  1545  
  1546  	if len(o.GetEquals()) == len(other.GetEquals()) {
  1547  		for i, lValue := range o.GetEquals() {
  1548  			rValue := other.GetEquals()[i]
  1549  			if lValue != rValue {
  1550  				res.Paths = append(res.Paths, &DeviceSpecUSBGuardPort_FieldTerminalPath{selector: DeviceSpecUSBGuardPort_FieldPathSelectorEquals})
  1551  				break
  1552  			}
  1553  		}
  1554  	} else {
  1555  		res.Paths = append(res.Paths, &DeviceSpecUSBGuardPort_FieldTerminalPath{selector: DeviceSpecUSBGuardPort_FieldPathSelectorEquals})
  1556  	}
  1557  
  1558  	if len(o.GetOneOf()) == len(other.GetOneOf()) {
  1559  		for i, lValue := range o.GetOneOf() {
  1560  			rValue := other.GetOneOf()[i]
  1561  			if lValue != rValue {
  1562  				res.Paths = append(res.Paths, &DeviceSpecUSBGuardPort_FieldTerminalPath{selector: DeviceSpecUSBGuardPort_FieldPathSelectorOneOf})
  1563  				break
  1564  			}
  1565  		}
  1566  	} else {
  1567  		res.Paths = append(res.Paths, &DeviceSpecUSBGuardPort_FieldTerminalPath{selector: DeviceSpecUSBGuardPort_FieldPathSelectorOneOf})
  1568  	}
  1569  	return res
  1570  }
  1571  
  1572  func (o *Device_Spec_USBGuard_Port) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1573  	return o.MakeDiffFieldMask(other.(*Device_Spec_USBGuard_Port))
  1574  }
  1575  
  1576  func (o *Device_Spec_USBGuard_Port) Clone() *Device_Spec_USBGuard_Port {
  1577  	if o == nil {
  1578  		return nil
  1579  	}
  1580  	result := &Device_Spec_USBGuard_Port{}
  1581  	result.Equals = make([]string, len(o.Equals))
  1582  	for i, sourceValue := range o.Equals {
  1583  		result.Equals[i] = sourceValue
  1584  	}
  1585  	result.OneOf = make([]string, len(o.OneOf))
  1586  	for i, sourceValue := range o.OneOf {
  1587  		result.OneOf[i] = sourceValue
  1588  	}
  1589  	return result
  1590  }
  1591  
  1592  func (o *Device_Spec_USBGuard_Port) CloneRaw() gotenobject.GotenObjectExt {
  1593  	return o.Clone()
  1594  }
  1595  
  1596  func (o *Device_Spec_USBGuard_Port) Merge(source *Device_Spec_USBGuard_Port) {
  1597  	for _, sourceValue := range source.GetEquals() {
  1598  		exists := false
  1599  		for _, currentValue := range o.Equals {
  1600  			if currentValue == sourceValue {
  1601  				exists = true
  1602  				break
  1603  			}
  1604  		}
  1605  		if !exists {
  1606  			var newDstElement string
  1607  			newDstElement = sourceValue
  1608  			o.Equals = append(o.Equals, newDstElement)
  1609  		}
  1610  	}
  1611  
  1612  	for _, sourceValue := range source.GetOneOf() {
  1613  		exists := false
  1614  		for _, currentValue := range o.OneOf {
  1615  			if currentValue == sourceValue {
  1616  				exists = true
  1617  				break
  1618  			}
  1619  		}
  1620  		if !exists {
  1621  			var newDstElement string
  1622  			newDstElement = sourceValue
  1623  			o.OneOf = append(o.OneOf, newDstElement)
  1624  		}
  1625  	}
  1626  
  1627  }
  1628  
  1629  func (o *Device_Spec_USBGuard_Port) MergeRaw(source gotenobject.GotenObjectExt) {
  1630  	o.Merge(source.(*Device_Spec_USBGuard_Port))
  1631  }
  1632  
  1633  func (o *Device_Spec_USBGuard_Interface) GotenObjectExt() {}
  1634  
  1635  func (o *Device_Spec_USBGuard_Interface) MakeFullFieldMask() *Device_Spec_USBGuard_Interface_FieldMask {
  1636  	return FullDevice_Spec_USBGuard_Interface_FieldMask()
  1637  }
  1638  
  1639  func (o *Device_Spec_USBGuard_Interface) MakeRawFullFieldMask() gotenobject.FieldMask {
  1640  	return FullDevice_Spec_USBGuard_Interface_FieldMask()
  1641  }
  1642  
  1643  func (o *Device_Spec_USBGuard_Interface) MakeDiffFieldMask(other *Device_Spec_USBGuard_Interface) *Device_Spec_USBGuard_Interface_FieldMask {
  1644  	if o == nil && other == nil {
  1645  		return &Device_Spec_USBGuard_Interface_FieldMask{}
  1646  	}
  1647  	if o == nil || other == nil {
  1648  		return FullDevice_Spec_USBGuard_Interface_FieldMask()
  1649  	}
  1650  
  1651  	res := &Device_Spec_USBGuard_Interface_FieldMask{}
  1652  
  1653  	if len(o.GetEquals()) == len(other.GetEquals()) {
  1654  		for i, lValue := range o.GetEquals() {
  1655  			rValue := other.GetEquals()[i]
  1656  			if lValue != rValue {
  1657  				res.Paths = append(res.Paths, &DeviceSpecUSBGuardInterface_FieldTerminalPath{selector: DeviceSpecUSBGuardInterface_FieldPathSelectorEquals})
  1658  				break
  1659  			}
  1660  		}
  1661  	} else {
  1662  		res.Paths = append(res.Paths, &DeviceSpecUSBGuardInterface_FieldTerminalPath{selector: DeviceSpecUSBGuardInterface_FieldPathSelectorEquals})
  1663  	}
  1664  
  1665  	if len(o.GetOneOf()) == len(other.GetOneOf()) {
  1666  		for i, lValue := range o.GetOneOf() {
  1667  			rValue := other.GetOneOf()[i]
  1668  			if lValue != rValue {
  1669  				res.Paths = append(res.Paths, &DeviceSpecUSBGuardInterface_FieldTerminalPath{selector: DeviceSpecUSBGuardInterface_FieldPathSelectorOneOf})
  1670  				break
  1671  			}
  1672  		}
  1673  	} else {
  1674  		res.Paths = append(res.Paths, &DeviceSpecUSBGuardInterface_FieldTerminalPath{selector: DeviceSpecUSBGuardInterface_FieldPathSelectorOneOf})
  1675  	}
  1676  	return res
  1677  }
  1678  
  1679  func (o *Device_Spec_USBGuard_Interface) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1680  	return o.MakeDiffFieldMask(other.(*Device_Spec_USBGuard_Interface))
  1681  }
  1682  
  1683  func (o *Device_Spec_USBGuard_Interface) Clone() *Device_Spec_USBGuard_Interface {
  1684  	if o == nil {
  1685  		return nil
  1686  	}
  1687  	result := &Device_Spec_USBGuard_Interface{}
  1688  	result.Equals = make([]string, len(o.Equals))
  1689  	for i, sourceValue := range o.Equals {
  1690  		result.Equals[i] = sourceValue
  1691  	}
  1692  	result.OneOf = make([]string, len(o.OneOf))
  1693  	for i, sourceValue := range o.OneOf {
  1694  		result.OneOf[i] = sourceValue
  1695  	}
  1696  	return result
  1697  }
  1698  
  1699  func (o *Device_Spec_USBGuard_Interface) CloneRaw() gotenobject.GotenObjectExt {
  1700  	return o.Clone()
  1701  }
  1702  
  1703  func (o *Device_Spec_USBGuard_Interface) Merge(source *Device_Spec_USBGuard_Interface) {
  1704  	for _, sourceValue := range source.GetEquals() {
  1705  		exists := false
  1706  		for _, currentValue := range o.Equals {
  1707  			if currentValue == sourceValue {
  1708  				exists = true
  1709  				break
  1710  			}
  1711  		}
  1712  		if !exists {
  1713  			var newDstElement string
  1714  			newDstElement = sourceValue
  1715  			o.Equals = append(o.Equals, newDstElement)
  1716  		}
  1717  	}
  1718  
  1719  	for _, sourceValue := range source.GetOneOf() {
  1720  		exists := false
  1721  		for _, currentValue := range o.OneOf {
  1722  			if currentValue == sourceValue {
  1723  				exists = true
  1724  				break
  1725  			}
  1726  		}
  1727  		if !exists {
  1728  			var newDstElement string
  1729  			newDstElement = sourceValue
  1730  			o.OneOf = append(o.OneOf, newDstElement)
  1731  		}
  1732  	}
  1733  
  1734  }
  1735  
  1736  func (o *Device_Spec_USBGuard_Interface) MergeRaw(source gotenobject.GotenObjectExt) {
  1737  	o.Merge(source.(*Device_Spec_USBGuard_Interface))
  1738  }
  1739  
  1740  func (o *Device_Spec_USBGuard_WhiteList) GotenObjectExt() {}
  1741  
  1742  func (o *Device_Spec_USBGuard_WhiteList) MakeFullFieldMask() *Device_Spec_USBGuard_WhiteList_FieldMask {
  1743  	return FullDevice_Spec_USBGuard_WhiteList_FieldMask()
  1744  }
  1745  
  1746  func (o *Device_Spec_USBGuard_WhiteList) MakeRawFullFieldMask() gotenobject.FieldMask {
  1747  	return FullDevice_Spec_USBGuard_WhiteList_FieldMask()
  1748  }
  1749  
  1750  func (o *Device_Spec_USBGuard_WhiteList) MakeDiffFieldMask(other *Device_Spec_USBGuard_WhiteList) *Device_Spec_USBGuard_WhiteList_FieldMask {
  1751  	if o == nil && other == nil {
  1752  		return &Device_Spec_USBGuard_WhiteList_FieldMask{}
  1753  	}
  1754  	if o == nil || other == nil {
  1755  		return FullDevice_Spec_USBGuard_WhiteList_FieldMask()
  1756  	}
  1757  
  1758  	res := &Device_Spec_USBGuard_WhiteList_FieldMask{}
  1759  	if o.GetDeviceName() != other.GetDeviceName() {
  1760  		res.Paths = append(res.Paths, &DeviceSpecUSBGuardWhiteList_FieldTerminalPath{selector: DeviceSpecUSBGuardWhiteList_FieldPathSelectorDeviceName})
  1761  	}
  1762  	if o.GetDeviceId() != other.GetDeviceId() {
  1763  		res.Paths = append(res.Paths, &DeviceSpecUSBGuardWhiteList_FieldTerminalPath{selector: DeviceSpecUSBGuardWhiteList_FieldPathSelectorDeviceId})
  1764  	}
  1765  	{
  1766  		subMask := o.GetViaPort().MakeDiffFieldMask(other.GetViaPort())
  1767  		if subMask.IsFull() {
  1768  			res.Paths = append(res.Paths, &DeviceSpecUSBGuardWhiteList_FieldTerminalPath{selector: DeviceSpecUSBGuardWhiteList_FieldPathSelectorViaPort})
  1769  		} else {
  1770  			for _, subpath := range subMask.Paths {
  1771  				res.Paths = append(res.Paths, &DeviceSpecUSBGuardWhiteList_FieldSubPath{selector: DeviceSpecUSBGuardWhiteList_FieldPathSelectorViaPort, subPath: subpath})
  1772  			}
  1773  		}
  1774  	}
  1775  	{
  1776  		subMask := o.GetWithInterface().MakeDiffFieldMask(other.GetWithInterface())
  1777  		if subMask.IsFull() {
  1778  			res.Paths = append(res.Paths, &DeviceSpecUSBGuardWhiteList_FieldTerminalPath{selector: DeviceSpecUSBGuardWhiteList_FieldPathSelectorWithInterface})
  1779  		} else {
  1780  			for _, subpath := range subMask.Paths {
  1781  				res.Paths = append(res.Paths, &DeviceSpecUSBGuardWhiteList_FieldSubPath{selector: DeviceSpecUSBGuardWhiteList_FieldPathSelectorWithInterface, subPath: subpath})
  1782  			}
  1783  		}
  1784  	}
  1785  	if o.GetWithConnectType() != other.GetWithConnectType() {
  1786  		res.Paths = append(res.Paths, &DeviceSpecUSBGuardWhiteList_FieldTerminalPath{selector: DeviceSpecUSBGuardWhiteList_FieldPathSelectorWithConnectType})
  1787  	}
  1788  	return res
  1789  }
  1790  
  1791  func (o *Device_Spec_USBGuard_WhiteList) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1792  	return o.MakeDiffFieldMask(other.(*Device_Spec_USBGuard_WhiteList))
  1793  }
  1794  
  1795  func (o *Device_Spec_USBGuard_WhiteList) Clone() *Device_Spec_USBGuard_WhiteList {
  1796  	if o == nil {
  1797  		return nil
  1798  	}
  1799  	result := &Device_Spec_USBGuard_WhiteList{}
  1800  	result.DeviceName = o.DeviceName
  1801  	result.DeviceId = o.DeviceId
  1802  	result.ViaPort = o.ViaPort.Clone()
  1803  	result.WithInterface = o.WithInterface.Clone()
  1804  	result.WithConnectType = o.WithConnectType
  1805  	return result
  1806  }
  1807  
  1808  func (o *Device_Spec_USBGuard_WhiteList) CloneRaw() gotenobject.GotenObjectExt {
  1809  	return o.Clone()
  1810  }
  1811  
  1812  func (o *Device_Spec_USBGuard_WhiteList) Merge(source *Device_Spec_USBGuard_WhiteList) {
  1813  	o.DeviceName = source.GetDeviceName()
  1814  	o.DeviceId = source.GetDeviceId()
  1815  	if source.GetViaPort() != nil {
  1816  		if o.ViaPort == nil {
  1817  			o.ViaPort = new(Device_Spec_USBGuard_Port)
  1818  		}
  1819  		o.ViaPort.Merge(source.GetViaPort())
  1820  	}
  1821  	if source.GetWithInterface() != nil {
  1822  		if o.WithInterface == nil {
  1823  			o.WithInterface = new(Device_Spec_USBGuard_Interface)
  1824  		}
  1825  		o.WithInterface.Merge(source.GetWithInterface())
  1826  	}
  1827  	o.WithConnectType = source.GetWithConnectType()
  1828  }
  1829  
  1830  func (o *Device_Spec_USBGuard_WhiteList) MergeRaw(source gotenobject.GotenObjectExt) {
  1831  	o.Merge(source.(*Device_Spec_USBGuard_WhiteList))
  1832  }
  1833  
  1834  func (o *Device_Status_Address) GotenObjectExt() {}
  1835  
  1836  func (o *Device_Status_Address) MakeFullFieldMask() *Device_Status_Address_FieldMask {
  1837  	return FullDevice_Status_Address_FieldMask()
  1838  }
  1839  
  1840  func (o *Device_Status_Address) MakeRawFullFieldMask() gotenobject.FieldMask {
  1841  	return FullDevice_Status_Address_FieldMask()
  1842  }
  1843  
  1844  func (o *Device_Status_Address) MakeDiffFieldMask(other *Device_Status_Address) *Device_Status_Address_FieldMask {
  1845  	if o == nil && other == nil {
  1846  		return &Device_Status_Address_FieldMask{}
  1847  	}
  1848  	if o == nil || other == nil {
  1849  		return FullDevice_Status_Address_FieldMask()
  1850  	}
  1851  
  1852  	res := &Device_Status_Address_FieldMask{}
  1853  	if o.GetAddress() != other.GetAddress() {
  1854  		res.Paths = append(res.Paths, &DeviceStatusAddress_FieldTerminalPath{selector: DeviceStatusAddress_FieldPathSelectorAddress})
  1855  	}
  1856  	if o.GetType() != other.GetType() {
  1857  		res.Paths = append(res.Paths, &DeviceStatusAddress_FieldTerminalPath{selector: DeviceStatusAddress_FieldPathSelectorType})
  1858  	}
  1859  	return res
  1860  }
  1861  
  1862  func (o *Device_Status_Address) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1863  	return o.MakeDiffFieldMask(other.(*Device_Status_Address))
  1864  }
  1865  
  1866  func (o *Device_Status_Address) Clone() *Device_Status_Address {
  1867  	if o == nil {
  1868  		return nil
  1869  	}
  1870  	result := &Device_Status_Address{}
  1871  	result.Address = o.Address
  1872  	result.Type = o.Type
  1873  	return result
  1874  }
  1875  
  1876  func (o *Device_Status_Address) CloneRaw() gotenobject.GotenObjectExt {
  1877  	return o.Clone()
  1878  }
  1879  
  1880  func (o *Device_Status_Address) Merge(source *Device_Status_Address) {
  1881  	o.Address = source.GetAddress()
  1882  	o.Type = source.GetType()
  1883  }
  1884  
  1885  func (o *Device_Status_Address) MergeRaw(source gotenobject.GotenObjectExt) {
  1886  	o.Merge(source.(*Device_Status_Address))
  1887  }
  1888  
  1889  func (o *Device_Status_Condition) GotenObjectExt() {}
  1890  
  1891  func (o *Device_Status_Condition) MakeFullFieldMask() *Device_Status_Condition_FieldMask {
  1892  	return FullDevice_Status_Condition_FieldMask()
  1893  }
  1894  
  1895  func (o *Device_Status_Condition) MakeRawFullFieldMask() gotenobject.FieldMask {
  1896  	return FullDevice_Status_Condition_FieldMask()
  1897  }
  1898  
  1899  func (o *Device_Status_Condition) MakeDiffFieldMask(other *Device_Status_Condition) *Device_Status_Condition_FieldMask {
  1900  	if o == nil && other == nil {
  1901  		return &Device_Status_Condition_FieldMask{}
  1902  	}
  1903  	if o == nil || other == nil {
  1904  		return FullDevice_Status_Condition_FieldMask()
  1905  	}
  1906  
  1907  	res := &Device_Status_Condition_FieldMask{}
  1908  	if o.GetMessage() != other.GetMessage() {
  1909  		res.Paths = append(res.Paths, &DeviceStatusCondition_FieldTerminalPath{selector: DeviceStatusCondition_FieldPathSelectorMessage})
  1910  	}
  1911  	if o.GetReason() != other.GetReason() {
  1912  		res.Paths = append(res.Paths, &DeviceStatusCondition_FieldTerminalPath{selector: DeviceStatusCondition_FieldPathSelectorReason})
  1913  	}
  1914  	if o.GetStatus() != other.GetStatus() {
  1915  		res.Paths = append(res.Paths, &DeviceStatusCondition_FieldTerminalPath{selector: DeviceStatusCondition_FieldPathSelectorStatus})
  1916  	}
  1917  	if o.GetType() != other.GetType() {
  1918  		res.Paths = append(res.Paths, &DeviceStatusCondition_FieldTerminalPath{selector: DeviceStatusCondition_FieldPathSelectorType})
  1919  	}
  1920  	if !proto.Equal(o.GetLastHeartBeatTime(), other.GetLastHeartBeatTime()) {
  1921  		res.Paths = append(res.Paths, &DeviceStatusCondition_FieldTerminalPath{selector: DeviceStatusCondition_FieldPathSelectorLastHeartBeatTime})
  1922  	}
  1923  	if !proto.Equal(o.GetLastTransitionTime(), other.GetLastTransitionTime()) {
  1924  		res.Paths = append(res.Paths, &DeviceStatusCondition_FieldTerminalPath{selector: DeviceStatusCondition_FieldPathSelectorLastTransitionTime})
  1925  	}
  1926  	return res
  1927  }
  1928  
  1929  func (o *Device_Status_Condition) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1930  	return o.MakeDiffFieldMask(other.(*Device_Status_Condition))
  1931  }
  1932  
  1933  func (o *Device_Status_Condition) Clone() *Device_Status_Condition {
  1934  	if o == nil {
  1935  		return nil
  1936  	}
  1937  	result := &Device_Status_Condition{}
  1938  	result.Message = o.Message
  1939  	result.Reason = o.Reason
  1940  	result.Status = o.Status
  1941  	result.Type = o.Type
  1942  	result.LastHeartBeatTime = proto.Clone(o.LastHeartBeatTime).(*timestamppb.Timestamp)
  1943  	result.LastTransitionTime = proto.Clone(o.LastTransitionTime).(*timestamppb.Timestamp)
  1944  	return result
  1945  }
  1946  
  1947  func (o *Device_Status_Condition) CloneRaw() gotenobject.GotenObjectExt {
  1948  	return o.Clone()
  1949  }
  1950  
  1951  func (o *Device_Status_Condition) Merge(source *Device_Status_Condition) {
  1952  	o.Message = source.GetMessage()
  1953  	o.Reason = source.GetReason()
  1954  	o.Status = source.GetStatus()
  1955  	o.Type = source.GetType()
  1956  	if source.GetLastHeartBeatTime() != nil {
  1957  		if o.LastHeartBeatTime == nil {
  1958  			o.LastHeartBeatTime = new(timestamppb.Timestamp)
  1959  		}
  1960  		proto.Merge(o.LastHeartBeatTime, source.GetLastHeartBeatTime())
  1961  	}
  1962  	if source.GetLastTransitionTime() != nil {
  1963  		if o.LastTransitionTime == nil {
  1964  			o.LastTransitionTime = new(timestamppb.Timestamp)
  1965  		}
  1966  		proto.Merge(o.LastTransitionTime, source.GetLastTransitionTime())
  1967  	}
  1968  }
  1969  
  1970  func (o *Device_Status_Condition) MergeRaw(source gotenobject.GotenObjectExt) {
  1971  	o.Merge(source.(*Device_Status_Condition))
  1972  }
  1973  
  1974  func (o *Device_Status_NetworkConfigState) GotenObjectExt() {}
  1975  
  1976  func (o *Device_Status_NetworkConfigState) MakeFullFieldMask() *Device_Status_NetworkConfigState_FieldMask {
  1977  	return FullDevice_Status_NetworkConfigState_FieldMask()
  1978  }
  1979  
  1980  func (o *Device_Status_NetworkConfigState) MakeRawFullFieldMask() gotenobject.FieldMask {
  1981  	return FullDevice_Status_NetworkConfigState_FieldMask()
  1982  }
  1983  
  1984  func (o *Device_Status_NetworkConfigState) MakeDiffFieldMask(other *Device_Status_NetworkConfigState) *Device_Status_NetworkConfigState_FieldMask {
  1985  	if o == nil && other == nil {
  1986  		return &Device_Status_NetworkConfigState_FieldMask{}
  1987  	}
  1988  	if o == nil || other == nil {
  1989  		return FullDevice_Status_NetworkConfigState_FieldMask()
  1990  	}
  1991  
  1992  	res := &Device_Status_NetworkConfigState_FieldMask{}
  1993  	if o.GetActiveNetworkConfigSource() != other.GetActiveNetworkConfigSource() {
  1994  		res.Paths = append(res.Paths, &DeviceStatusNetworkConfigState_FieldTerminalPath{selector: DeviceStatusNetworkConfigState_FieldPathSelectorActiveNetworkConfigSource})
  1995  	}
  1996  	if o.GetDesiredNetworkConfigSource() != other.GetDesiredNetworkConfigSource() {
  1997  		res.Paths = append(res.Paths, &DeviceStatusNetworkConfigState_FieldTerminalPath{selector: DeviceStatusNetworkConfigState_FieldPathSelectorDesiredNetworkConfigSource})
  1998  	}
  1999  	if o.GetDesiredNetworkConfigError() != other.GetDesiredNetworkConfigError() {
  2000  		res.Paths = append(res.Paths, &DeviceStatusNetworkConfigState_FieldTerminalPath{selector: DeviceStatusNetworkConfigState_FieldPathSelectorDesiredNetworkConfigError})
  2001  	}
  2002  	if o.GetDefaultNetplanConfig() != other.GetDefaultNetplanConfig() {
  2003  		res.Paths = append(res.Paths, &DeviceStatusNetworkConfigState_FieldTerminalPath{selector: DeviceStatusNetworkConfigState_FieldPathSelectorDefaultNetplanConfig})
  2004  	}
  2005  	if o.GetActiveNetplanConfig() != other.GetActiveNetplanConfig() {
  2006  		res.Paths = append(res.Paths, &DeviceStatusNetworkConfigState_FieldTerminalPath{selector: DeviceStatusNetworkConfigState_FieldPathSelectorActiveNetplanConfig})
  2007  	}
  2008  	if o.GetDesiredNetplanConfig() != other.GetDesiredNetplanConfig() {
  2009  		res.Paths = append(res.Paths, &DeviceStatusNetworkConfigState_FieldTerminalPath{selector: DeviceStatusNetworkConfigState_FieldPathSelectorDesiredNetplanConfig})
  2010  	}
  2011  	return res
  2012  }
  2013  
  2014  func (o *Device_Status_NetworkConfigState) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  2015  	return o.MakeDiffFieldMask(other.(*Device_Status_NetworkConfigState))
  2016  }
  2017  
  2018  func (o *Device_Status_NetworkConfigState) Clone() *Device_Status_NetworkConfigState {
  2019  	if o == nil {
  2020  		return nil
  2021  	}
  2022  	result := &Device_Status_NetworkConfigState{}
  2023  	result.ActiveNetworkConfigSource = o.ActiveNetworkConfigSource
  2024  	result.DesiredNetworkConfigSource = o.DesiredNetworkConfigSource
  2025  	result.DesiredNetworkConfigError = o.DesiredNetworkConfigError
  2026  	result.DefaultNetplanConfig = o.DefaultNetplanConfig
  2027  	result.ActiveNetplanConfig = o.ActiveNetplanConfig
  2028  	result.DesiredNetplanConfig = o.DesiredNetplanConfig
  2029  	return result
  2030  }
  2031  
  2032  func (o *Device_Status_NetworkConfigState) CloneRaw() gotenobject.GotenObjectExt {
  2033  	return o.Clone()
  2034  }
  2035  
  2036  func (o *Device_Status_NetworkConfigState) Merge(source *Device_Status_NetworkConfigState) {
  2037  	o.ActiveNetworkConfigSource = source.GetActiveNetworkConfigSource()
  2038  	o.DesiredNetworkConfigSource = source.GetDesiredNetworkConfigSource()
  2039  	o.DesiredNetworkConfigError = source.GetDesiredNetworkConfigError()
  2040  	o.DefaultNetplanConfig = source.GetDefaultNetplanConfig()
  2041  	o.ActiveNetplanConfig = source.GetActiveNetplanConfig()
  2042  	o.DesiredNetplanConfig = source.GetDesiredNetplanConfig()
  2043  }
  2044  
  2045  func (o *Device_Status_NetworkConfigState) MergeRaw(source gotenobject.GotenObjectExt) {
  2046  	o.Merge(source.(*Device_Status_NetworkConfigState))
  2047  }
  2048  
  2049  func (o *Device_Status_ProxyConfigStatus) GotenObjectExt() {}
  2050  
  2051  func (o *Device_Status_ProxyConfigStatus) MakeFullFieldMask() *Device_Status_ProxyConfigStatus_FieldMask {
  2052  	return FullDevice_Status_ProxyConfigStatus_FieldMask()
  2053  }
  2054  
  2055  func (o *Device_Status_ProxyConfigStatus) MakeRawFullFieldMask() gotenobject.FieldMask {
  2056  	return FullDevice_Status_ProxyConfigStatus_FieldMask()
  2057  }
  2058  
  2059  func (o *Device_Status_ProxyConfigStatus) MakeDiffFieldMask(other *Device_Status_ProxyConfigStatus) *Device_Status_ProxyConfigStatus_FieldMask {
  2060  	if o == nil && other == nil {
  2061  		return &Device_Status_ProxyConfigStatus_FieldMask{}
  2062  	}
  2063  	if o == nil || other == nil {
  2064  		return FullDevice_Status_ProxyConfigStatus_FieldMask()
  2065  	}
  2066  
  2067  	res := &Device_Status_ProxyConfigStatus_FieldMask{}
  2068  	if o.GetActiveConfigSource() != other.GetActiveConfigSource() {
  2069  		res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldTerminalPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorActiveConfigSource})
  2070  	}
  2071  	if o.GetDesiredConfigSource() != other.GetDesiredConfigSource() {
  2072  		res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldTerminalPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorDesiredConfigSource})
  2073  	}
  2074  	if o.GetProxyConfigError() != other.GetProxyConfigError() {
  2075  		res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldTerminalPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorProxyConfigError})
  2076  	}
  2077  	{
  2078  		subMask := o.GetDefaultConfig().MakeDiffFieldMask(other.GetDefaultConfig())
  2079  		if subMask.IsFull() {
  2080  			res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldTerminalPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorDefaultConfig})
  2081  		} else {
  2082  			for _, subpath := range subMask.Paths {
  2083  				res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldSubPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorDefaultConfig, subPath: subpath})
  2084  			}
  2085  		}
  2086  	}
  2087  	{
  2088  		subMask := o.GetActiveConfig().MakeDiffFieldMask(other.GetActiveConfig())
  2089  		if subMask.IsFull() {
  2090  			res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldTerminalPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorActiveConfig})
  2091  		} else {
  2092  			for _, subpath := range subMask.Paths {
  2093  				res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldSubPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorActiveConfig, subPath: subpath})
  2094  			}
  2095  		}
  2096  	}
  2097  	{
  2098  		subMask := o.GetApiConfig().MakeDiffFieldMask(other.GetApiConfig())
  2099  		if subMask.IsFull() {
  2100  			res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldTerminalPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorApiConfig})
  2101  		} else {
  2102  			for _, subpath := range subMask.Paths {
  2103  				res.Paths = append(res.Paths, &DeviceStatusProxyConfigStatus_FieldSubPath{selector: DeviceStatusProxyConfigStatus_FieldPathSelectorApiConfig, subPath: subpath})
  2104  			}
  2105  		}
  2106  	}
  2107  	return res
  2108  }
  2109  
  2110  func (o *Device_Status_ProxyConfigStatus) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  2111  	return o.MakeDiffFieldMask(other.(*Device_Status_ProxyConfigStatus))
  2112  }
  2113  
  2114  func (o *Device_Status_ProxyConfigStatus) Clone() *Device_Status_ProxyConfigStatus {
  2115  	if o == nil {
  2116  		return nil
  2117  	}
  2118  	result := &Device_Status_ProxyConfigStatus{}
  2119  	result.ActiveConfigSource = o.ActiveConfigSource
  2120  	result.DesiredConfigSource = o.DesiredConfigSource
  2121  	result.ProxyConfigError = o.ProxyConfigError
  2122  	result.DefaultConfig = o.DefaultConfig.Clone()
  2123  	result.ActiveConfig = o.ActiveConfig.Clone()
  2124  	result.ApiConfig = o.ApiConfig.Clone()
  2125  	return result
  2126  }
  2127  
  2128  func (o *Device_Status_ProxyConfigStatus) CloneRaw() gotenobject.GotenObjectExt {
  2129  	return o.Clone()
  2130  }
  2131  
  2132  func (o *Device_Status_ProxyConfigStatus) Merge(source *Device_Status_ProxyConfigStatus) {
  2133  	o.ActiveConfigSource = source.GetActiveConfigSource()
  2134  	o.DesiredConfigSource = source.GetDesiredConfigSource()
  2135  	o.ProxyConfigError = source.GetProxyConfigError()
  2136  	if source.GetDefaultConfig() != nil {
  2137  		if o.DefaultConfig == nil {
  2138  			o.DefaultConfig = new(Device_Spec_ProxyConfig)
  2139  		}
  2140  		o.DefaultConfig.Merge(source.GetDefaultConfig())
  2141  	}
  2142  	if source.GetActiveConfig() != nil {
  2143  		if o.ActiveConfig == nil {
  2144  			o.ActiveConfig = new(Device_Spec_ProxyConfig)
  2145  		}
  2146  		o.ActiveConfig.Merge(source.GetActiveConfig())
  2147  	}
  2148  	if source.GetApiConfig() != nil {
  2149  		if o.ApiConfig == nil {
  2150  			o.ApiConfig = new(Device_Spec_ProxyConfig)
  2151  		}
  2152  		o.ApiConfig.Merge(source.GetApiConfig())
  2153  	}
  2154  }
  2155  
  2156  func (o *Device_Status_ProxyConfigStatus) MergeRaw(source gotenobject.GotenObjectExt) {
  2157  	o.Merge(source.(*Device_Status_ProxyConfigStatus))
  2158  }
  2159  
  2160  func (o *Device_Status_DeviceInfo) GotenObjectExt() {}
  2161  
  2162  func (o *Device_Status_DeviceInfo) MakeFullFieldMask() *Device_Status_DeviceInfo_FieldMask {
  2163  	return FullDevice_Status_DeviceInfo_FieldMask()
  2164  }
  2165  
  2166  func (o *Device_Status_DeviceInfo) MakeRawFullFieldMask() gotenobject.FieldMask {
  2167  	return FullDevice_Status_DeviceInfo_FieldMask()
  2168  }
  2169  
  2170  func (o *Device_Status_DeviceInfo) MakeDiffFieldMask(other *Device_Status_DeviceInfo) *Device_Status_DeviceInfo_FieldMask {
  2171  	if o == nil && other == nil {
  2172  		return &Device_Status_DeviceInfo_FieldMask{}
  2173  	}
  2174  	if o == nil || other == nil {
  2175  		return FullDevice_Status_DeviceInfo_FieldMask()
  2176  	}
  2177  
  2178  	res := &Device_Status_DeviceInfo_FieldMask{}
  2179  	if o.GetArchitecture() != other.GetArchitecture() {
  2180  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorArchitecture})
  2181  	}
  2182  	if o.GetHardware() != other.GetHardware() {
  2183  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorHardware})
  2184  	}
  2185  	if o.GetOperatingSystem() != other.GetOperatingSystem() {
  2186  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorOperatingSystem})
  2187  	}
  2188  	if o.GetKernelVersion() != other.GetKernelVersion() {
  2189  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorKernelVersion})
  2190  	}
  2191  	if o.GetOsImage() != other.GetOsImage() {
  2192  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorOsImage})
  2193  	}
  2194  	if o.GetContainerRuntimeVersion() != other.GetContainerRuntimeVersion() {
  2195  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorContainerRuntimeVersion})
  2196  	}
  2197  	if o.GetOsVersion() != other.GetOsVersion() {
  2198  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorOsVersion})
  2199  	}
  2200  	if o.GetDriver() != other.GetDriver() {
  2201  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorDriver})
  2202  	}
  2203  	{
  2204  		subMask := o.GetHardwareInformation().MakeDiffFieldMask(other.GetHardwareInformation())
  2205  		if subMask.IsFull() {
  2206  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorHardwareInformation})
  2207  		} else {
  2208  			for _, subpath := range subMask.Paths {
  2209  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldSubPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorHardwareInformation, subPath: subpath})
  2210  			}
  2211  		}
  2212  	}
  2213  
  2214  	if len(o.GetNetworkInterfaces()) == len(other.GetNetworkInterfaces()) {
  2215  		for i, lValue := range o.GetNetworkInterfaces() {
  2216  			rValue := other.GetNetworkInterfaces()[i]
  2217  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  2218  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorNetworkInterfaces})
  2219  				break
  2220  			}
  2221  		}
  2222  	} else {
  2223  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorNetworkInterfaces})
  2224  	}
  2225  	{
  2226  		subMask := o.GetControlPlaneInterfaceInfo().MakeDiffFieldMask(other.GetControlPlaneInterfaceInfo())
  2227  		if subMask.IsFull() {
  2228  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorControlPlaneInterfaceInfo})
  2229  		} else {
  2230  			for _, subpath := range subMask.Paths {
  2231  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfo_FieldSubPath{selector: DeviceStatusDeviceInfo_FieldPathSelectorControlPlaneInterfaceInfo, subPath: subpath})
  2232  			}
  2233  		}
  2234  	}
  2235  	return res
  2236  }
  2237  
  2238  func (o *Device_Status_DeviceInfo) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  2239  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo))
  2240  }
  2241  
  2242  func (o *Device_Status_DeviceInfo) Clone() *Device_Status_DeviceInfo {
  2243  	if o == nil {
  2244  		return nil
  2245  	}
  2246  	result := &Device_Status_DeviceInfo{}
  2247  	result.Architecture = o.Architecture
  2248  	result.Hardware = o.Hardware
  2249  	result.OperatingSystem = o.OperatingSystem
  2250  	result.KernelVersion = o.KernelVersion
  2251  	result.OsImage = o.OsImage
  2252  	result.ContainerRuntimeVersion = o.ContainerRuntimeVersion
  2253  	result.OsVersion = o.OsVersion
  2254  	result.Driver = o.Driver
  2255  	result.HardwareInformation = o.HardwareInformation.Clone()
  2256  	result.NetworkInterfaces = map[string]*Device_Status_DeviceInfo_NetworkInterface{}
  2257  	for key, sourceValue := range o.NetworkInterfaces {
  2258  		result.NetworkInterfaces[key] = sourceValue.Clone()
  2259  	}
  2260  	result.ControlPlaneInterfaceInfo = o.ControlPlaneInterfaceInfo.Clone()
  2261  	return result
  2262  }
  2263  
  2264  func (o *Device_Status_DeviceInfo) CloneRaw() gotenobject.GotenObjectExt {
  2265  	return o.Clone()
  2266  }
  2267  
  2268  func (o *Device_Status_DeviceInfo) Merge(source *Device_Status_DeviceInfo) {
  2269  	o.Architecture = source.GetArchitecture()
  2270  	o.Hardware = source.GetHardware()
  2271  	o.OperatingSystem = source.GetOperatingSystem()
  2272  	o.KernelVersion = source.GetKernelVersion()
  2273  	o.OsImage = source.GetOsImage()
  2274  	o.ContainerRuntimeVersion = source.GetContainerRuntimeVersion()
  2275  	o.OsVersion = source.GetOsVersion()
  2276  	o.Driver = source.GetDriver()
  2277  	if source.GetHardwareInformation() != nil {
  2278  		if o.HardwareInformation == nil {
  2279  			o.HardwareInformation = new(Device_Status_DeviceInfo_HardwareInformation)
  2280  		}
  2281  		o.HardwareInformation.Merge(source.GetHardwareInformation())
  2282  	}
  2283  	if source.GetNetworkInterfaces() != nil {
  2284  		if o.NetworkInterfaces == nil {
  2285  			o.NetworkInterfaces = make(map[string]*Device_Status_DeviceInfo_NetworkInterface, len(source.GetNetworkInterfaces()))
  2286  		}
  2287  		for key, sourceValue := range source.GetNetworkInterfaces() {
  2288  			if sourceValue != nil {
  2289  				if o.NetworkInterfaces[key] == nil {
  2290  					o.NetworkInterfaces[key] = new(Device_Status_DeviceInfo_NetworkInterface)
  2291  				}
  2292  				o.NetworkInterfaces[key].Merge(sourceValue)
  2293  			}
  2294  		}
  2295  	}
  2296  	if source.GetControlPlaneInterfaceInfo() != nil {
  2297  		if o.ControlPlaneInterfaceInfo == nil {
  2298  			o.ControlPlaneInterfaceInfo = new(Device_Status_DeviceInfo_ControlPlaneInterfaceInfo)
  2299  		}
  2300  		o.ControlPlaneInterfaceInfo.Merge(source.GetControlPlaneInterfaceInfo())
  2301  	}
  2302  }
  2303  
  2304  func (o *Device_Status_DeviceInfo) MergeRaw(source gotenobject.GotenObjectExt) {
  2305  	o.Merge(source.(*Device_Status_DeviceInfo))
  2306  }
  2307  
  2308  func (o *Device_Status_NormalizedAddress) GotenObjectExt() {}
  2309  
  2310  func (o *Device_Status_NormalizedAddress) MakeFullFieldMask() *Device_Status_NormalizedAddress_FieldMask {
  2311  	return FullDevice_Status_NormalizedAddress_FieldMask()
  2312  }
  2313  
  2314  func (o *Device_Status_NormalizedAddress) MakeRawFullFieldMask() gotenobject.FieldMask {
  2315  	return FullDevice_Status_NormalizedAddress_FieldMask()
  2316  }
  2317  
  2318  func (o *Device_Status_NormalizedAddress) MakeDiffFieldMask(other *Device_Status_NormalizedAddress) *Device_Status_NormalizedAddress_FieldMask {
  2319  	if o == nil && other == nil {
  2320  		return &Device_Status_NormalizedAddress_FieldMask{}
  2321  	}
  2322  	if o == nil || other == nil {
  2323  		return FullDevice_Status_NormalizedAddress_FieldMask()
  2324  	}
  2325  
  2326  	res := &Device_Status_NormalizedAddress_FieldMask{}
  2327  	if o.GetPostalCode() != other.GetPostalCode() {
  2328  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorPostalCode})
  2329  	}
  2330  	if o.GetCountryCode() != other.GetCountryCode() {
  2331  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorCountryCode})
  2332  	}
  2333  	if o.GetContinent() != other.GetContinent() {
  2334  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorContinent})
  2335  	}
  2336  	if o.GetContinentId() != other.GetContinentId() {
  2337  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorContinentId})
  2338  	}
  2339  	if o.GetCountry() != other.GetCountry() {
  2340  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorCountry})
  2341  	}
  2342  	if o.GetCountryId() != other.GetCountryId() {
  2343  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorCountryId})
  2344  	}
  2345  	if o.GetAdminArea1() != other.GetAdminArea1() {
  2346  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea1})
  2347  	}
  2348  	if o.GetAdminArea1Id() != other.GetAdminArea1Id() {
  2349  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea1Id})
  2350  	}
  2351  	if o.GetAdminArea2() != other.GetAdminArea2() {
  2352  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea2})
  2353  	}
  2354  	if o.GetAdminArea2Id() != other.GetAdminArea2Id() {
  2355  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea2Id})
  2356  	}
  2357  	if o.GetAdminArea3() != other.GetAdminArea3() {
  2358  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea3})
  2359  	}
  2360  	if o.GetAdminArea3Id() != other.GetAdminArea3Id() {
  2361  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea3Id})
  2362  	}
  2363  	if o.GetAdminArea4() != other.GetAdminArea4() {
  2364  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea4})
  2365  	}
  2366  	if o.GetAdminArea4Id() != other.GetAdminArea4Id() {
  2367  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAdminArea4Id})
  2368  	}
  2369  	if o.GetAddress() != other.GetAddress() {
  2370  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAddress})
  2371  	}
  2372  	if !proto.Equal(o.GetCoordinates(), other.GetCoordinates()) {
  2373  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorCoordinates})
  2374  	}
  2375  	if o.GetAccuracy() != other.GetAccuracy() {
  2376  		res.Paths = append(res.Paths, &DeviceStatusNormalizedAddress_FieldTerminalPath{selector: DeviceStatusNormalizedAddress_FieldPathSelectorAccuracy})
  2377  	}
  2378  	return res
  2379  }
  2380  
  2381  func (o *Device_Status_NormalizedAddress) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  2382  	return o.MakeDiffFieldMask(other.(*Device_Status_NormalizedAddress))
  2383  }
  2384  
  2385  func (o *Device_Status_NormalizedAddress) Clone() *Device_Status_NormalizedAddress {
  2386  	if o == nil {
  2387  		return nil
  2388  	}
  2389  	result := &Device_Status_NormalizedAddress{}
  2390  	result.PostalCode = o.PostalCode
  2391  	result.CountryCode = o.CountryCode
  2392  	result.Continent = o.Continent
  2393  	result.ContinentId = o.ContinentId
  2394  	result.Country = o.Country
  2395  	result.CountryId = o.CountryId
  2396  	result.AdminArea1 = o.AdminArea1
  2397  	result.AdminArea1Id = o.AdminArea1Id
  2398  	result.AdminArea2 = o.AdminArea2
  2399  	result.AdminArea2Id = o.AdminArea2Id
  2400  	result.AdminArea3 = o.AdminArea3
  2401  	result.AdminArea3Id = o.AdminArea3Id
  2402  	result.AdminArea4 = o.AdminArea4
  2403  	result.AdminArea4Id = o.AdminArea4Id
  2404  	result.Address = o.Address
  2405  	result.Coordinates = proto.Clone(o.Coordinates).(*latlng.LatLng)
  2406  	result.Accuracy = o.Accuracy
  2407  	return result
  2408  }
  2409  
  2410  func (o *Device_Status_NormalizedAddress) CloneRaw() gotenobject.GotenObjectExt {
  2411  	return o.Clone()
  2412  }
  2413  
  2414  func (o *Device_Status_NormalizedAddress) Merge(source *Device_Status_NormalizedAddress) {
  2415  	o.PostalCode = source.GetPostalCode()
  2416  	o.CountryCode = source.GetCountryCode()
  2417  	o.Continent = source.GetContinent()
  2418  	o.ContinentId = source.GetContinentId()
  2419  	o.Country = source.GetCountry()
  2420  	o.CountryId = source.GetCountryId()
  2421  	o.AdminArea1 = source.GetAdminArea1()
  2422  	o.AdminArea1Id = source.GetAdminArea1Id()
  2423  	o.AdminArea2 = source.GetAdminArea2()
  2424  	o.AdminArea2Id = source.GetAdminArea2Id()
  2425  	o.AdminArea3 = source.GetAdminArea3()
  2426  	o.AdminArea3Id = source.GetAdminArea3Id()
  2427  	o.AdminArea4 = source.GetAdminArea4()
  2428  	o.AdminArea4Id = source.GetAdminArea4Id()
  2429  	o.Address = source.GetAddress()
  2430  	if source.GetCoordinates() != nil {
  2431  		if o.Coordinates == nil {
  2432  			o.Coordinates = new(latlng.LatLng)
  2433  		}
  2434  		proto.Merge(o.Coordinates, source.GetCoordinates())
  2435  	}
  2436  	o.Accuracy = source.GetAccuracy()
  2437  }
  2438  
  2439  func (o *Device_Status_NormalizedAddress) MergeRaw(source gotenobject.GotenObjectExt) {
  2440  	o.Merge(source.(*Device_Status_NormalizedAddress))
  2441  }
  2442  
  2443  func (o *Device_Status_DeviceInfo_HardwareInformation) GotenObjectExt() {}
  2444  
  2445  func (o *Device_Status_DeviceInfo_HardwareInformation) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_FieldMask {
  2446  	return FullDevice_Status_DeviceInfo_HardwareInformation_FieldMask()
  2447  }
  2448  
  2449  func (o *Device_Status_DeviceInfo_HardwareInformation) MakeRawFullFieldMask() gotenobject.FieldMask {
  2450  	return FullDevice_Status_DeviceInfo_HardwareInformation_FieldMask()
  2451  }
  2452  
  2453  func (o *Device_Status_DeviceInfo_HardwareInformation) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation) *Device_Status_DeviceInfo_HardwareInformation_FieldMask {
  2454  	if o == nil && other == nil {
  2455  		return &Device_Status_DeviceInfo_HardwareInformation_FieldMask{}
  2456  	}
  2457  	if o == nil || other == nil {
  2458  		return FullDevice_Status_DeviceInfo_HardwareInformation_FieldMask()
  2459  	}
  2460  
  2461  	res := &Device_Status_DeviceInfo_HardwareInformation_FieldMask{}
  2462  	{
  2463  		subMask := o.GetOs().MakeDiffFieldMask(other.GetOs())
  2464  		if subMask.IsFull() {
  2465  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorOs})
  2466  		} else {
  2467  			for _, subpath := range subMask.Paths {
  2468  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorOs, subPath: subpath})
  2469  			}
  2470  		}
  2471  	}
  2472  	{
  2473  		subMask := o.GetBios().MakeDiffFieldMask(other.GetBios())
  2474  		if subMask.IsFull() {
  2475  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBios})
  2476  		} else {
  2477  			for _, subpath := range subMask.Paths {
  2478  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBios, subPath: subpath})
  2479  			}
  2480  		}
  2481  	}
  2482  	{
  2483  		subMask := o.GetSystem().MakeDiffFieldMask(other.GetSystem())
  2484  		if subMask.IsFull() {
  2485  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorSystem})
  2486  		} else {
  2487  			for _, subpath := range subMask.Paths {
  2488  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorSystem, subPath: subpath})
  2489  			}
  2490  		}
  2491  	}
  2492  	{
  2493  		subMask := o.GetCpu().MakeDiffFieldMask(other.GetCpu())
  2494  		if subMask.IsFull() {
  2495  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorCpu})
  2496  		} else {
  2497  			for _, subpath := range subMask.Paths {
  2498  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorCpu, subPath: subpath})
  2499  			}
  2500  		}
  2501  	}
  2502  	{
  2503  		subMask := o.GetBlock().MakeDiffFieldMask(other.GetBlock())
  2504  		if subMask.IsFull() {
  2505  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBlock})
  2506  		} else {
  2507  			for _, subpath := range subMask.Paths {
  2508  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorBlock, subPath: subpath})
  2509  			}
  2510  		}
  2511  	}
  2512  	{
  2513  		subMask := o.GetNetwork().MakeDiffFieldMask(other.GetNetwork())
  2514  		if subMask.IsFull() {
  2515  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNetwork})
  2516  		} else {
  2517  			for _, subpath := range subMask.Paths {
  2518  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNetwork, subPath: subpath})
  2519  			}
  2520  		}
  2521  	}
  2522  	{
  2523  		subMask := o.GetGpu().MakeDiffFieldMask(other.GetGpu())
  2524  		if subMask.IsFull() {
  2525  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorGpu})
  2526  		} else {
  2527  			for _, subpath := range subMask.Paths {
  2528  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorGpu, subPath: subpath})
  2529  			}
  2530  		}
  2531  	}
  2532  	{
  2533  		subMask := o.GetMemoryInfo().MakeDiffFieldMask(other.GetMemoryInfo())
  2534  		if subMask.IsFull() {
  2535  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorMemoryInfo})
  2536  		} else {
  2537  			for _, subpath := range subMask.Paths {
  2538  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorMemoryInfo, subPath: subpath})
  2539  			}
  2540  		}
  2541  	}
  2542  	{
  2543  		subMask := o.GetHailoInfo().MakeDiffFieldMask(other.GetHailoInfo())
  2544  		if subMask.IsFull() {
  2545  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorHailoInfo})
  2546  		} else {
  2547  			for _, subpath := range subMask.Paths {
  2548  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorHailoInfo, subPath: subpath})
  2549  			}
  2550  		}
  2551  	}
  2552  	{
  2553  		subMask := o.GetNvidiaInfo().MakeDiffFieldMask(other.GetNvidiaInfo())
  2554  		if subMask.IsFull() {
  2555  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNvidiaInfo})
  2556  		} else {
  2557  			for _, subpath := range subMask.Paths {
  2558  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorNvidiaInfo, subPath: subpath})
  2559  			}
  2560  		}
  2561  	}
  2562  
  2563  	if len(o.GetModemStatus()) == len(other.GetModemStatus()) {
  2564  		for i, lValue := range o.GetModemStatus() {
  2565  			rValue := other.GetModemStatus()[i]
  2566  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  2567  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorModemStatus})
  2568  				break
  2569  			}
  2570  		}
  2571  	} else {
  2572  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformation_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformation_FieldPathSelectorModemStatus})
  2573  	}
  2574  	return res
  2575  }
  2576  
  2577  func (o *Device_Status_DeviceInfo_HardwareInformation) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  2578  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation))
  2579  }
  2580  
  2581  func (o *Device_Status_DeviceInfo_HardwareInformation) Clone() *Device_Status_DeviceInfo_HardwareInformation {
  2582  	if o == nil {
  2583  		return nil
  2584  	}
  2585  	result := &Device_Status_DeviceInfo_HardwareInformation{}
  2586  	result.Os = o.Os.Clone()
  2587  	result.Bios = o.Bios.Clone()
  2588  	result.System = o.System.Clone()
  2589  	result.Cpu = o.Cpu.Clone()
  2590  	result.Block = o.Block.Clone()
  2591  	result.Network = o.Network.Clone()
  2592  	result.Gpu = o.Gpu.Clone()
  2593  	result.MemoryInfo = o.MemoryInfo.Clone()
  2594  	result.HailoInfo = o.HailoInfo.Clone()
  2595  	result.NvidiaInfo = o.NvidiaInfo.Clone()
  2596  	result.ModemStatus = make([]*Device_Status_DeviceInfo_HardwareInformation_ModemStatus, len(o.ModemStatus))
  2597  	for i, sourceValue := range o.ModemStatus {
  2598  		result.ModemStatus[i] = sourceValue.Clone()
  2599  	}
  2600  	return result
  2601  }
  2602  
  2603  func (o *Device_Status_DeviceInfo_HardwareInformation) CloneRaw() gotenobject.GotenObjectExt {
  2604  	return o.Clone()
  2605  }
  2606  
  2607  func (o *Device_Status_DeviceInfo_HardwareInformation) Merge(source *Device_Status_DeviceInfo_HardwareInformation) {
  2608  	if source.GetOs() != nil {
  2609  		if o.Os == nil {
  2610  			o.Os = new(Device_Status_DeviceInfo_HardwareInformation_OS)
  2611  		}
  2612  		o.Os.Merge(source.GetOs())
  2613  	}
  2614  	if source.GetBios() != nil {
  2615  		if o.Bios == nil {
  2616  			o.Bios = new(Device_Status_DeviceInfo_HardwareInformation_BIOS)
  2617  		}
  2618  		o.Bios.Merge(source.GetBios())
  2619  	}
  2620  	if source.GetSystem() != nil {
  2621  		if o.System == nil {
  2622  			o.System = new(Device_Status_DeviceInfo_HardwareInformation_System)
  2623  		}
  2624  		o.System.Merge(source.GetSystem())
  2625  	}
  2626  	if source.GetCpu() != nil {
  2627  		if o.Cpu == nil {
  2628  			o.Cpu = new(Device_Status_DeviceInfo_HardwareInformation_CPU)
  2629  		}
  2630  		o.Cpu.Merge(source.GetCpu())
  2631  	}
  2632  	if source.GetBlock() != nil {
  2633  		if o.Block == nil {
  2634  			o.Block = new(Device_Status_DeviceInfo_HardwareInformation_Block)
  2635  		}
  2636  		o.Block.Merge(source.GetBlock())
  2637  	}
  2638  	if source.GetNetwork() != nil {
  2639  		if o.Network == nil {
  2640  			o.Network = new(Device_Status_DeviceInfo_HardwareInformation_Network)
  2641  		}
  2642  		o.Network.Merge(source.GetNetwork())
  2643  	}
  2644  	if source.GetGpu() != nil {
  2645  		if o.Gpu == nil {
  2646  			o.Gpu = new(Device_Status_DeviceInfo_HardwareInformation_GPU)
  2647  		}
  2648  		o.Gpu.Merge(source.GetGpu())
  2649  	}
  2650  	if source.GetMemoryInfo() != nil {
  2651  		if o.MemoryInfo == nil {
  2652  			o.MemoryInfo = new(Device_Status_DeviceInfo_HardwareInformation_MemoryInfo)
  2653  		}
  2654  		o.MemoryInfo.Merge(source.GetMemoryInfo())
  2655  	}
  2656  	if source.GetHailoInfo() != nil {
  2657  		if o.HailoInfo == nil {
  2658  			o.HailoInfo = new(Device_Status_DeviceInfo_HardwareInformation_HailoInfo)
  2659  		}
  2660  		o.HailoInfo.Merge(source.GetHailoInfo())
  2661  	}
  2662  	if source.GetNvidiaInfo() != nil {
  2663  		if o.NvidiaInfo == nil {
  2664  			o.NvidiaInfo = new(Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo)
  2665  		}
  2666  		o.NvidiaInfo.Merge(source.GetNvidiaInfo())
  2667  	}
  2668  	for _, sourceValue := range source.GetModemStatus() {
  2669  		exists := false
  2670  		for _, currentValue := range o.ModemStatus {
  2671  			if proto.Equal(sourceValue, currentValue) {
  2672  				exists = true
  2673  				break
  2674  			}
  2675  		}
  2676  		if !exists {
  2677  			var newDstElement *Device_Status_DeviceInfo_HardwareInformation_ModemStatus
  2678  			if sourceValue != nil {
  2679  				newDstElement = new(Device_Status_DeviceInfo_HardwareInformation_ModemStatus)
  2680  				newDstElement.Merge(sourceValue)
  2681  			}
  2682  			o.ModemStatus = append(o.ModemStatus, newDstElement)
  2683  		}
  2684  	}
  2685  
  2686  }
  2687  
  2688  func (o *Device_Status_DeviceInfo_HardwareInformation) MergeRaw(source gotenobject.GotenObjectExt) {
  2689  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation))
  2690  }
  2691  
  2692  func (o *Device_Status_DeviceInfo_NetworkInterface) GotenObjectExt() {}
  2693  
  2694  func (o *Device_Status_DeviceInfo_NetworkInterface) MakeFullFieldMask() *Device_Status_DeviceInfo_NetworkInterface_FieldMask {
  2695  	return FullDevice_Status_DeviceInfo_NetworkInterface_FieldMask()
  2696  }
  2697  
  2698  func (o *Device_Status_DeviceInfo_NetworkInterface) MakeRawFullFieldMask() gotenobject.FieldMask {
  2699  	return FullDevice_Status_DeviceInfo_NetworkInterface_FieldMask()
  2700  }
  2701  
  2702  func (o *Device_Status_DeviceInfo_NetworkInterface) MakeDiffFieldMask(other *Device_Status_DeviceInfo_NetworkInterface) *Device_Status_DeviceInfo_NetworkInterface_FieldMask {
  2703  	if o == nil && other == nil {
  2704  		return &Device_Status_DeviceInfo_NetworkInterface_FieldMask{}
  2705  	}
  2706  	if o == nil || other == nil {
  2707  		return FullDevice_Status_DeviceInfo_NetworkInterface_FieldMask()
  2708  	}
  2709  
  2710  	res := &Device_Status_DeviceInfo_NetworkInterface_FieldMask{}
  2711  	if o.GetInterfaceName() != other.GetInterfaceName() {
  2712  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorInterfaceName})
  2713  	}
  2714  
  2715  	if len(o.GetIpAddressV4()) == len(other.GetIpAddressV4()) {
  2716  		for i, lValue := range o.GetIpAddressV4() {
  2717  			rValue := other.GetIpAddressV4()[i]
  2718  			if lValue != rValue {
  2719  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorIpAddressV4})
  2720  				break
  2721  			}
  2722  		}
  2723  	} else {
  2724  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorIpAddressV4})
  2725  	}
  2726  
  2727  	if len(o.GetExternalIpAddressV4()) == len(other.GetExternalIpAddressV4()) {
  2728  		for i, lValue := range o.GetExternalIpAddressV4() {
  2729  			rValue := other.GetExternalIpAddressV4()[i]
  2730  			if lValue != rValue {
  2731  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorExternalIpAddressV4})
  2732  				break
  2733  			}
  2734  		}
  2735  	} else {
  2736  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorExternalIpAddressV4})
  2737  	}
  2738  
  2739  	if len(o.GetIpAddressV6()) == len(other.GetIpAddressV6()) {
  2740  		for i, lValue := range o.GetIpAddressV6() {
  2741  			rValue := other.GetIpAddressV6()[i]
  2742  			if lValue != rValue {
  2743  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorIpAddressV6})
  2744  				break
  2745  			}
  2746  		}
  2747  	} else {
  2748  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorIpAddressV6})
  2749  	}
  2750  
  2751  	if len(o.GetExternalIpAddressV6()) == len(other.GetExternalIpAddressV6()) {
  2752  		for i, lValue := range o.GetExternalIpAddressV6() {
  2753  			rValue := other.GetExternalIpAddressV6()[i]
  2754  			if lValue != rValue {
  2755  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorExternalIpAddressV6})
  2756  				break
  2757  			}
  2758  		}
  2759  	} else {
  2760  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorExternalIpAddressV6})
  2761  	}
  2762  	{
  2763  		subMask := o.GetAsInfo().MakeDiffFieldMask(other.GetAsInfo())
  2764  		if subMask.IsFull() {
  2765  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorAsInfo})
  2766  		} else {
  2767  			for _, subpath := range subMask.Paths {
  2768  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldSubPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorAsInfo, subPath: subpath})
  2769  			}
  2770  		}
  2771  	}
  2772  	{
  2773  		subMask := o.GetCarrier().MakeDiffFieldMask(other.GetCarrier())
  2774  		if subMask.IsFull() {
  2775  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorCarrier})
  2776  		} else {
  2777  			for _, subpath := range subMask.Paths {
  2778  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterface_FieldSubPath{selector: DeviceStatusDeviceInfoNetworkInterface_FieldPathSelectorCarrier, subPath: subpath})
  2779  			}
  2780  		}
  2781  	}
  2782  	return res
  2783  }
  2784  
  2785  func (o *Device_Status_DeviceInfo_NetworkInterface) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  2786  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_NetworkInterface))
  2787  }
  2788  
  2789  func (o *Device_Status_DeviceInfo_NetworkInterface) Clone() *Device_Status_DeviceInfo_NetworkInterface {
  2790  	if o == nil {
  2791  		return nil
  2792  	}
  2793  	result := &Device_Status_DeviceInfo_NetworkInterface{}
  2794  	result.InterfaceName = o.InterfaceName
  2795  	result.IpAddressV4 = make([]string, len(o.IpAddressV4))
  2796  	for i, sourceValue := range o.IpAddressV4 {
  2797  		result.IpAddressV4[i] = sourceValue
  2798  	}
  2799  	result.ExternalIpAddressV4 = make([]string, len(o.ExternalIpAddressV4))
  2800  	for i, sourceValue := range o.ExternalIpAddressV4 {
  2801  		result.ExternalIpAddressV4[i] = sourceValue
  2802  	}
  2803  	result.IpAddressV6 = make([]string, len(o.IpAddressV6))
  2804  	for i, sourceValue := range o.IpAddressV6 {
  2805  		result.IpAddressV6[i] = sourceValue
  2806  	}
  2807  	result.ExternalIpAddressV6 = make([]string, len(o.ExternalIpAddressV6))
  2808  	for i, sourceValue := range o.ExternalIpAddressV6 {
  2809  		result.ExternalIpAddressV6[i] = sourceValue
  2810  	}
  2811  	result.AsInfo = o.AsInfo.Clone()
  2812  	result.Carrier = o.Carrier.Clone()
  2813  	return result
  2814  }
  2815  
  2816  func (o *Device_Status_DeviceInfo_NetworkInterface) CloneRaw() gotenobject.GotenObjectExt {
  2817  	return o.Clone()
  2818  }
  2819  
  2820  func (o *Device_Status_DeviceInfo_NetworkInterface) Merge(source *Device_Status_DeviceInfo_NetworkInterface) {
  2821  	o.InterfaceName = source.GetInterfaceName()
  2822  	for _, sourceValue := range source.GetIpAddressV4() {
  2823  		exists := false
  2824  		for _, currentValue := range o.IpAddressV4 {
  2825  			if currentValue == sourceValue {
  2826  				exists = true
  2827  				break
  2828  			}
  2829  		}
  2830  		if !exists {
  2831  			var newDstElement string
  2832  			newDstElement = sourceValue
  2833  			o.IpAddressV4 = append(o.IpAddressV4, newDstElement)
  2834  		}
  2835  	}
  2836  
  2837  	for _, sourceValue := range source.GetExternalIpAddressV4() {
  2838  		exists := false
  2839  		for _, currentValue := range o.ExternalIpAddressV4 {
  2840  			if currentValue == sourceValue {
  2841  				exists = true
  2842  				break
  2843  			}
  2844  		}
  2845  		if !exists {
  2846  			var newDstElement string
  2847  			newDstElement = sourceValue
  2848  			o.ExternalIpAddressV4 = append(o.ExternalIpAddressV4, newDstElement)
  2849  		}
  2850  	}
  2851  
  2852  	for _, sourceValue := range source.GetIpAddressV6() {
  2853  		exists := false
  2854  		for _, currentValue := range o.IpAddressV6 {
  2855  			if currentValue == sourceValue {
  2856  				exists = true
  2857  				break
  2858  			}
  2859  		}
  2860  		if !exists {
  2861  			var newDstElement string
  2862  			newDstElement = sourceValue
  2863  			o.IpAddressV6 = append(o.IpAddressV6, newDstElement)
  2864  		}
  2865  	}
  2866  
  2867  	for _, sourceValue := range source.GetExternalIpAddressV6() {
  2868  		exists := false
  2869  		for _, currentValue := range o.ExternalIpAddressV6 {
  2870  			if currentValue == sourceValue {
  2871  				exists = true
  2872  				break
  2873  			}
  2874  		}
  2875  		if !exists {
  2876  			var newDstElement string
  2877  			newDstElement = sourceValue
  2878  			o.ExternalIpAddressV6 = append(o.ExternalIpAddressV6, newDstElement)
  2879  		}
  2880  	}
  2881  
  2882  	if source.GetAsInfo() != nil {
  2883  		if o.AsInfo == nil {
  2884  			o.AsInfo = new(Device_Status_DeviceInfo_NetworkInterface_ASInfo)
  2885  		}
  2886  		o.AsInfo.Merge(source.GetAsInfo())
  2887  	}
  2888  	if source.GetCarrier() != nil {
  2889  		if o.Carrier == nil {
  2890  			o.Carrier = new(Device_Status_DeviceInfo_NetworkInterface_Carrier)
  2891  		}
  2892  		o.Carrier.Merge(source.GetCarrier())
  2893  	}
  2894  }
  2895  
  2896  func (o *Device_Status_DeviceInfo_NetworkInterface) MergeRaw(source gotenobject.GotenObjectExt) {
  2897  	o.Merge(source.(*Device_Status_DeviceInfo_NetworkInterface))
  2898  }
  2899  
  2900  func (o *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo) GotenObjectExt() {}
  2901  
  2902  func (o *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo) MakeFullFieldMask() *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask {
  2903  	return FullDevice_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask()
  2904  }
  2905  
  2906  func (o *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo) MakeRawFullFieldMask() gotenobject.FieldMask {
  2907  	return FullDevice_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask()
  2908  }
  2909  
  2910  func (o *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo) MakeDiffFieldMask(other *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo) *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask {
  2911  	if o == nil && other == nil {
  2912  		return &Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask{}
  2913  	}
  2914  	if o == nil || other == nil {
  2915  		return FullDevice_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask()
  2916  	}
  2917  
  2918  	res := &Device_Status_DeviceInfo_ControlPlaneInterfaceInfo_FieldMask{}
  2919  	if o.GetActiveControlPlaneInterface() != other.GetActiveControlPlaneInterface() {
  2920  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPathSelectorActiveControlPlaneInterface})
  2921  	}
  2922  	if o.GetUsesProxy() != other.GetUsesProxy() {
  2923  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPathSelectorUsesProxy})
  2924  	}
  2925  	if o.GetIsFallback() != other.GetIsFallback() {
  2926  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoControlPlaneInterfaceInfo_FieldPathSelectorIsFallback})
  2927  	}
  2928  	return res
  2929  }
  2930  
  2931  func (o *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  2932  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_ControlPlaneInterfaceInfo))
  2933  }
  2934  
  2935  func (o *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo) Clone() *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo {
  2936  	if o == nil {
  2937  		return nil
  2938  	}
  2939  	result := &Device_Status_DeviceInfo_ControlPlaneInterfaceInfo{}
  2940  	result.ActiveControlPlaneInterface = o.ActiveControlPlaneInterface
  2941  	result.UsesProxy = o.UsesProxy
  2942  	result.IsFallback = o.IsFallback
  2943  	return result
  2944  }
  2945  
  2946  func (o *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo) CloneRaw() gotenobject.GotenObjectExt {
  2947  	return o.Clone()
  2948  }
  2949  
  2950  func (o *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo) Merge(source *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo) {
  2951  	o.ActiveControlPlaneInterface = source.GetActiveControlPlaneInterface()
  2952  	o.UsesProxy = source.GetUsesProxy()
  2953  	o.IsFallback = source.GetIsFallback()
  2954  }
  2955  
  2956  func (o *Device_Status_DeviceInfo_ControlPlaneInterfaceInfo) MergeRaw(source gotenobject.GotenObjectExt) {
  2957  	o.Merge(source.(*Device_Status_DeviceInfo_ControlPlaneInterfaceInfo))
  2958  }
  2959  
  2960  func (o *Device_Status_DeviceInfo_HardwareInformation_Capability) GotenObjectExt() {}
  2961  
  2962  func (o *Device_Status_DeviceInfo_HardwareInformation_Capability) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask {
  2963  	return FullDevice_Status_DeviceInfo_HardwareInformation_Capability_FieldMask()
  2964  }
  2965  
  2966  func (o *Device_Status_DeviceInfo_HardwareInformation_Capability) MakeRawFullFieldMask() gotenobject.FieldMask {
  2967  	return FullDevice_Status_DeviceInfo_HardwareInformation_Capability_FieldMask()
  2968  }
  2969  
  2970  func (o *Device_Status_DeviceInfo_HardwareInformation_Capability) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_Capability) *Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask {
  2971  	if o == nil && other == nil {
  2972  		return &Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask{}
  2973  	}
  2974  	if o == nil || other == nil {
  2975  		return FullDevice_Status_DeviceInfo_HardwareInformation_Capability_FieldMask()
  2976  	}
  2977  
  2978  	res := &Device_Status_DeviceInfo_HardwareInformation_Capability_FieldMask{}
  2979  	if o.GetName() != other.GetName() {
  2980  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCapability_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCapability_FieldPathSelectorName})
  2981  	}
  2982  	if o.GetDescription() != other.GetDescription() {
  2983  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCapability_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCapability_FieldPathSelectorDescription})
  2984  	}
  2985  	return res
  2986  }
  2987  
  2988  func (o *Device_Status_DeviceInfo_HardwareInformation_Capability) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  2989  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_Capability))
  2990  }
  2991  
  2992  func (o *Device_Status_DeviceInfo_HardwareInformation_Capability) Clone() *Device_Status_DeviceInfo_HardwareInformation_Capability {
  2993  	if o == nil {
  2994  		return nil
  2995  	}
  2996  	result := &Device_Status_DeviceInfo_HardwareInformation_Capability{}
  2997  	result.Name = o.Name
  2998  	result.Description = o.Description
  2999  	return result
  3000  }
  3001  
  3002  func (o *Device_Status_DeviceInfo_HardwareInformation_Capability) CloneRaw() gotenobject.GotenObjectExt {
  3003  	return o.Clone()
  3004  }
  3005  
  3006  func (o *Device_Status_DeviceInfo_HardwareInformation_Capability) Merge(source *Device_Status_DeviceInfo_HardwareInformation_Capability) {
  3007  	o.Name = source.GetName()
  3008  	o.Description = source.GetDescription()
  3009  }
  3010  
  3011  func (o *Device_Status_DeviceInfo_HardwareInformation_Capability) MergeRaw(source gotenobject.GotenObjectExt) {
  3012  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_Capability))
  3013  }
  3014  
  3015  func (o *Device_Status_DeviceInfo_HardwareInformation_OS) GotenObjectExt() {}
  3016  
  3017  func (o *Device_Status_DeviceInfo_HardwareInformation_OS) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask {
  3018  	return FullDevice_Status_DeviceInfo_HardwareInformation_OS_FieldMask()
  3019  }
  3020  
  3021  func (o *Device_Status_DeviceInfo_HardwareInformation_OS) MakeRawFullFieldMask() gotenobject.FieldMask {
  3022  	return FullDevice_Status_DeviceInfo_HardwareInformation_OS_FieldMask()
  3023  }
  3024  
  3025  func (o *Device_Status_DeviceInfo_HardwareInformation_OS) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_OS) *Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask {
  3026  	if o == nil && other == nil {
  3027  		return &Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask{}
  3028  	}
  3029  	if o == nil || other == nil {
  3030  		return FullDevice_Status_DeviceInfo_HardwareInformation_OS_FieldMask()
  3031  	}
  3032  
  3033  	res := &Device_Status_DeviceInfo_HardwareInformation_OS_FieldMask{}
  3034  	if o.GetOperatingSystem() != other.GetOperatingSystem() {
  3035  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationOS_FieldPathSelectorOperatingSystem})
  3036  	}
  3037  	if o.GetKernelVersion() != other.GetKernelVersion() {
  3038  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationOS_FieldPathSelectorKernelVersion})
  3039  	}
  3040  	if o.GetOsImage() != other.GetOsImage() {
  3041  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationOS_FieldPathSelectorOsImage})
  3042  	}
  3043  	if o.GetContainerRuntimeVersion() != other.GetContainerRuntimeVersion() {
  3044  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationOS_FieldPathSelectorContainerRuntimeVersion})
  3045  	}
  3046  	return res
  3047  }
  3048  
  3049  func (o *Device_Status_DeviceInfo_HardwareInformation_OS) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  3050  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_OS))
  3051  }
  3052  
  3053  func (o *Device_Status_DeviceInfo_HardwareInformation_OS) Clone() *Device_Status_DeviceInfo_HardwareInformation_OS {
  3054  	if o == nil {
  3055  		return nil
  3056  	}
  3057  	result := &Device_Status_DeviceInfo_HardwareInformation_OS{}
  3058  	result.OperatingSystem = o.OperatingSystem
  3059  	result.KernelVersion = o.KernelVersion
  3060  	result.OsImage = o.OsImage
  3061  	result.ContainerRuntimeVersion = o.ContainerRuntimeVersion
  3062  	return result
  3063  }
  3064  
  3065  func (o *Device_Status_DeviceInfo_HardwareInformation_OS) CloneRaw() gotenobject.GotenObjectExt {
  3066  	return o.Clone()
  3067  }
  3068  
  3069  func (o *Device_Status_DeviceInfo_HardwareInformation_OS) Merge(source *Device_Status_DeviceInfo_HardwareInformation_OS) {
  3070  	o.OperatingSystem = source.GetOperatingSystem()
  3071  	o.KernelVersion = source.GetKernelVersion()
  3072  	o.OsImage = source.GetOsImage()
  3073  	o.ContainerRuntimeVersion = source.GetContainerRuntimeVersion()
  3074  }
  3075  
  3076  func (o *Device_Status_DeviceInfo_HardwareInformation_OS) MergeRaw(source gotenobject.GotenObjectExt) {
  3077  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_OS))
  3078  }
  3079  
  3080  func (o *Device_Status_DeviceInfo_HardwareInformation_BIOS) GotenObjectExt() {}
  3081  
  3082  func (o *Device_Status_DeviceInfo_HardwareInformation_BIOS) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask {
  3083  	return FullDevice_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask()
  3084  }
  3085  
  3086  func (o *Device_Status_DeviceInfo_HardwareInformation_BIOS) MakeRawFullFieldMask() gotenobject.FieldMask {
  3087  	return FullDevice_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask()
  3088  }
  3089  
  3090  func (o *Device_Status_DeviceInfo_HardwareInformation_BIOS) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_BIOS) *Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask {
  3091  	if o == nil && other == nil {
  3092  		return &Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask{}
  3093  	}
  3094  	if o == nil || other == nil {
  3095  		return FullDevice_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask()
  3096  	}
  3097  
  3098  	res := &Device_Status_DeviceInfo_HardwareInformation_BIOS_FieldMask{}
  3099  	if o.GetVendor() != other.GetVendor() {
  3100  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBIOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPathSelectorVendor})
  3101  	}
  3102  	if o.GetBiosVersion() != other.GetBiosVersion() {
  3103  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBIOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPathSelectorBiosVersion})
  3104  	}
  3105  	if o.GetReleaseDate() != other.GetReleaseDate() {
  3106  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBIOS_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBIOS_FieldPathSelectorReleaseDate})
  3107  	}
  3108  	return res
  3109  }
  3110  
  3111  func (o *Device_Status_DeviceInfo_HardwareInformation_BIOS) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  3112  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_BIOS))
  3113  }
  3114  
  3115  func (o *Device_Status_DeviceInfo_HardwareInformation_BIOS) Clone() *Device_Status_DeviceInfo_HardwareInformation_BIOS {
  3116  	if o == nil {
  3117  		return nil
  3118  	}
  3119  	result := &Device_Status_DeviceInfo_HardwareInformation_BIOS{}
  3120  	result.Vendor = o.Vendor
  3121  	result.BiosVersion = o.BiosVersion
  3122  	result.ReleaseDate = o.ReleaseDate
  3123  	return result
  3124  }
  3125  
  3126  func (o *Device_Status_DeviceInfo_HardwareInformation_BIOS) CloneRaw() gotenobject.GotenObjectExt {
  3127  	return o.Clone()
  3128  }
  3129  
  3130  func (o *Device_Status_DeviceInfo_HardwareInformation_BIOS) Merge(source *Device_Status_DeviceInfo_HardwareInformation_BIOS) {
  3131  	o.Vendor = source.GetVendor()
  3132  	o.BiosVersion = source.GetBiosVersion()
  3133  	o.ReleaseDate = source.GetReleaseDate()
  3134  }
  3135  
  3136  func (o *Device_Status_DeviceInfo_HardwareInformation_BIOS) MergeRaw(source gotenobject.GotenObjectExt) {
  3137  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_BIOS))
  3138  }
  3139  
  3140  func (o *Device_Status_DeviceInfo_HardwareInformation_System) GotenObjectExt() {}
  3141  
  3142  func (o *Device_Status_DeviceInfo_HardwareInformation_System) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask {
  3143  	return FullDevice_Status_DeviceInfo_HardwareInformation_System_FieldMask()
  3144  }
  3145  
  3146  func (o *Device_Status_DeviceInfo_HardwareInformation_System) MakeRawFullFieldMask() gotenobject.FieldMask {
  3147  	return FullDevice_Status_DeviceInfo_HardwareInformation_System_FieldMask()
  3148  }
  3149  
  3150  func (o *Device_Status_DeviceInfo_HardwareInformation_System) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_System) *Device_Status_DeviceInfo_HardwareInformation_System_FieldMask {
  3151  	if o == nil && other == nil {
  3152  		return &Device_Status_DeviceInfo_HardwareInformation_System_FieldMask{}
  3153  	}
  3154  	if o == nil || other == nil {
  3155  		return FullDevice_Status_DeviceInfo_HardwareInformation_System_FieldMask()
  3156  	}
  3157  
  3158  	res := &Device_Status_DeviceInfo_HardwareInformation_System_FieldMask{}
  3159  	if o.GetManufacturer() != other.GetManufacturer() {
  3160  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorManufacturer})
  3161  	}
  3162  	if o.GetProductName() != other.GetProductName() {
  3163  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorProductName})
  3164  	}
  3165  	if o.GetVersion() != other.GetVersion() {
  3166  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorVersion})
  3167  	}
  3168  	if o.GetSerialNumber() != other.GetSerialNumber() {
  3169  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorSerialNumber})
  3170  	}
  3171  	{
  3172  		subMask := o.GetConfiguration().MakeDiffFieldMask(other.GetConfiguration())
  3173  		if subMask.IsFull() {
  3174  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorConfiguration})
  3175  		} else {
  3176  			for _, subpath := range subMask.Paths {
  3177  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystem_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformationSystem_FieldPathSelectorConfiguration, subPath: subpath})
  3178  			}
  3179  		}
  3180  	}
  3181  	return res
  3182  }
  3183  
  3184  func (o *Device_Status_DeviceInfo_HardwareInformation_System) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  3185  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_System))
  3186  }
  3187  
  3188  func (o *Device_Status_DeviceInfo_HardwareInformation_System) Clone() *Device_Status_DeviceInfo_HardwareInformation_System {
  3189  	if o == nil {
  3190  		return nil
  3191  	}
  3192  	result := &Device_Status_DeviceInfo_HardwareInformation_System{}
  3193  	result.Manufacturer = o.Manufacturer
  3194  	result.ProductName = o.ProductName
  3195  	result.Version = o.Version
  3196  	result.SerialNumber = o.SerialNumber
  3197  	result.Configuration = o.Configuration.Clone()
  3198  	return result
  3199  }
  3200  
  3201  func (o *Device_Status_DeviceInfo_HardwareInformation_System) CloneRaw() gotenobject.GotenObjectExt {
  3202  	return o.Clone()
  3203  }
  3204  
  3205  func (o *Device_Status_DeviceInfo_HardwareInformation_System) Merge(source *Device_Status_DeviceInfo_HardwareInformation_System) {
  3206  	o.Manufacturer = source.GetManufacturer()
  3207  	o.ProductName = source.GetProductName()
  3208  	o.Version = source.GetVersion()
  3209  	o.SerialNumber = source.GetSerialNumber()
  3210  	if source.GetConfiguration() != nil {
  3211  		if o.Configuration == nil {
  3212  			o.Configuration = new(Device_Status_DeviceInfo_HardwareInformation_System_Configuration)
  3213  		}
  3214  		o.Configuration.Merge(source.GetConfiguration())
  3215  	}
  3216  }
  3217  
  3218  func (o *Device_Status_DeviceInfo_HardwareInformation_System) MergeRaw(source gotenobject.GotenObjectExt) {
  3219  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_System))
  3220  }
  3221  
  3222  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU) GotenObjectExt() {}
  3223  
  3224  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask {
  3225  	return FullDevice_Status_DeviceInfo_HardwareInformation_CPU_FieldMask()
  3226  }
  3227  
  3228  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU) MakeRawFullFieldMask() gotenobject.FieldMask {
  3229  	return FullDevice_Status_DeviceInfo_HardwareInformation_CPU_FieldMask()
  3230  }
  3231  
  3232  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_CPU) *Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask {
  3233  	if o == nil && other == nil {
  3234  		return &Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask{}
  3235  	}
  3236  	if o == nil || other == nil {
  3237  		return FullDevice_Status_DeviceInfo_HardwareInformation_CPU_FieldMask()
  3238  	}
  3239  
  3240  	res := &Device_Status_DeviceInfo_HardwareInformation_CPU_FieldMask{}
  3241  
  3242  	if len(o.GetProcessors()) == len(other.GetProcessors()) {
  3243  		for i, lValue := range o.GetProcessors() {
  3244  			rValue := other.GetProcessors()[i]
  3245  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  3246  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPU_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPU_FieldPathSelectorProcessors})
  3247  				break
  3248  			}
  3249  		}
  3250  	} else {
  3251  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPU_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPU_FieldPathSelectorProcessors})
  3252  	}
  3253  	return res
  3254  }
  3255  
  3256  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  3257  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_CPU))
  3258  }
  3259  
  3260  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU) Clone() *Device_Status_DeviceInfo_HardwareInformation_CPU {
  3261  	if o == nil {
  3262  		return nil
  3263  	}
  3264  	result := &Device_Status_DeviceInfo_HardwareInformation_CPU{}
  3265  	result.Processors = make([]*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor, len(o.Processors))
  3266  	for i, sourceValue := range o.Processors {
  3267  		result.Processors[i] = sourceValue.Clone()
  3268  	}
  3269  	return result
  3270  }
  3271  
  3272  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU) CloneRaw() gotenobject.GotenObjectExt {
  3273  	return o.Clone()
  3274  }
  3275  
  3276  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU) Merge(source *Device_Status_DeviceInfo_HardwareInformation_CPU) {
  3277  	for _, sourceValue := range source.GetProcessors() {
  3278  		exists := false
  3279  		for _, currentValue := range o.Processors {
  3280  			if proto.Equal(sourceValue, currentValue) {
  3281  				exists = true
  3282  				break
  3283  			}
  3284  		}
  3285  		if !exists {
  3286  			var newDstElement *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor
  3287  			if sourceValue != nil {
  3288  				newDstElement = new(Device_Status_DeviceInfo_HardwareInformation_CPU_Processor)
  3289  				newDstElement.Merge(sourceValue)
  3290  			}
  3291  			o.Processors = append(o.Processors, newDstElement)
  3292  		}
  3293  	}
  3294  
  3295  }
  3296  
  3297  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU) MergeRaw(source gotenobject.GotenObjectExt) {
  3298  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_CPU))
  3299  }
  3300  
  3301  func (o *Device_Status_DeviceInfo_HardwareInformation_Block) GotenObjectExt() {}
  3302  
  3303  func (o *Device_Status_DeviceInfo_HardwareInformation_Block) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask {
  3304  	return FullDevice_Status_DeviceInfo_HardwareInformation_Block_FieldMask()
  3305  }
  3306  
  3307  func (o *Device_Status_DeviceInfo_HardwareInformation_Block) MakeRawFullFieldMask() gotenobject.FieldMask {
  3308  	return FullDevice_Status_DeviceInfo_HardwareInformation_Block_FieldMask()
  3309  }
  3310  
  3311  func (o *Device_Status_DeviceInfo_HardwareInformation_Block) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_Block) *Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask {
  3312  	if o == nil && other == nil {
  3313  		return &Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask{}
  3314  	}
  3315  	if o == nil || other == nil {
  3316  		return FullDevice_Status_DeviceInfo_HardwareInformation_Block_FieldMask()
  3317  	}
  3318  
  3319  	res := &Device_Status_DeviceInfo_HardwareInformation_Block_FieldMask{}
  3320  
  3321  	if len(o.GetDisks()) == len(other.GetDisks()) {
  3322  		for i, lValue := range o.GetDisks() {
  3323  			rValue := other.GetDisks()[i]
  3324  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  3325  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlock_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlock_FieldPathSelectorDisks})
  3326  				break
  3327  			}
  3328  		}
  3329  	} else {
  3330  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlock_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlock_FieldPathSelectorDisks})
  3331  	}
  3332  	return res
  3333  }
  3334  
  3335  func (o *Device_Status_DeviceInfo_HardwareInformation_Block) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  3336  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_Block))
  3337  }
  3338  
  3339  func (o *Device_Status_DeviceInfo_HardwareInformation_Block) Clone() *Device_Status_DeviceInfo_HardwareInformation_Block {
  3340  	if o == nil {
  3341  		return nil
  3342  	}
  3343  	result := &Device_Status_DeviceInfo_HardwareInformation_Block{}
  3344  	result.Disks = make([]*Device_Status_DeviceInfo_HardwareInformation_Block_Disk, len(o.Disks))
  3345  	for i, sourceValue := range o.Disks {
  3346  		result.Disks[i] = sourceValue.Clone()
  3347  	}
  3348  	return result
  3349  }
  3350  
  3351  func (o *Device_Status_DeviceInfo_HardwareInformation_Block) CloneRaw() gotenobject.GotenObjectExt {
  3352  	return o.Clone()
  3353  }
  3354  
  3355  func (o *Device_Status_DeviceInfo_HardwareInformation_Block) Merge(source *Device_Status_DeviceInfo_HardwareInformation_Block) {
  3356  	for _, sourceValue := range source.GetDisks() {
  3357  		exists := false
  3358  		for _, currentValue := range o.Disks {
  3359  			if proto.Equal(sourceValue, currentValue) {
  3360  				exists = true
  3361  				break
  3362  			}
  3363  		}
  3364  		if !exists {
  3365  			var newDstElement *Device_Status_DeviceInfo_HardwareInformation_Block_Disk
  3366  			if sourceValue != nil {
  3367  				newDstElement = new(Device_Status_DeviceInfo_HardwareInformation_Block_Disk)
  3368  				newDstElement.Merge(sourceValue)
  3369  			}
  3370  			o.Disks = append(o.Disks, newDstElement)
  3371  		}
  3372  	}
  3373  
  3374  }
  3375  
  3376  func (o *Device_Status_DeviceInfo_HardwareInformation_Block) MergeRaw(source gotenobject.GotenObjectExt) {
  3377  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_Block))
  3378  }
  3379  
  3380  func (o *Device_Status_DeviceInfo_HardwareInformation_Network) GotenObjectExt() {}
  3381  
  3382  func (o *Device_Status_DeviceInfo_HardwareInformation_Network) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask {
  3383  	return FullDevice_Status_DeviceInfo_HardwareInformation_Network_FieldMask()
  3384  }
  3385  
  3386  func (o *Device_Status_DeviceInfo_HardwareInformation_Network) MakeRawFullFieldMask() gotenobject.FieldMask {
  3387  	return FullDevice_Status_DeviceInfo_HardwareInformation_Network_FieldMask()
  3388  }
  3389  
  3390  func (o *Device_Status_DeviceInfo_HardwareInformation_Network) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_Network) *Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask {
  3391  	if o == nil && other == nil {
  3392  		return &Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask{}
  3393  	}
  3394  	if o == nil || other == nil {
  3395  		return FullDevice_Status_DeviceInfo_HardwareInformation_Network_FieldMask()
  3396  	}
  3397  
  3398  	res := &Device_Status_DeviceInfo_HardwareInformation_Network_FieldMask{}
  3399  
  3400  	if len(o.GetNics()) == len(other.GetNics()) {
  3401  		for i, lValue := range o.GetNics() {
  3402  			rValue := other.GetNics()[i]
  3403  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  3404  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetwork_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPathSelectorNics})
  3405  				break
  3406  			}
  3407  		}
  3408  	} else {
  3409  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetwork_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetwork_FieldPathSelectorNics})
  3410  	}
  3411  	return res
  3412  }
  3413  
  3414  func (o *Device_Status_DeviceInfo_HardwareInformation_Network) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  3415  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_Network))
  3416  }
  3417  
  3418  func (o *Device_Status_DeviceInfo_HardwareInformation_Network) Clone() *Device_Status_DeviceInfo_HardwareInformation_Network {
  3419  	if o == nil {
  3420  		return nil
  3421  	}
  3422  	result := &Device_Status_DeviceInfo_HardwareInformation_Network{}
  3423  	result.Nics = make([]*Device_Status_DeviceInfo_HardwareInformation_Network_NIC, len(o.Nics))
  3424  	for i, sourceValue := range o.Nics {
  3425  		result.Nics[i] = sourceValue.Clone()
  3426  	}
  3427  	return result
  3428  }
  3429  
  3430  func (o *Device_Status_DeviceInfo_HardwareInformation_Network) CloneRaw() gotenobject.GotenObjectExt {
  3431  	return o.Clone()
  3432  }
  3433  
  3434  func (o *Device_Status_DeviceInfo_HardwareInformation_Network) Merge(source *Device_Status_DeviceInfo_HardwareInformation_Network) {
  3435  	for _, sourceValue := range source.GetNics() {
  3436  		exists := false
  3437  		for _, currentValue := range o.Nics {
  3438  			if proto.Equal(sourceValue, currentValue) {
  3439  				exists = true
  3440  				break
  3441  			}
  3442  		}
  3443  		if !exists {
  3444  			var newDstElement *Device_Status_DeviceInfo_HardwareInformation_Network_NIC
  3445  			if sourceValue != nil {
  3446  				newDstElement = new(Device_Status_DeviceInfo_HardwareInformation_Network_NIC)
  3447  				newDstElement.Merge(sourceValue)
  3448  			}
  3449  			o.Nics = append(o.Nics, newDstElement)
  3450  		}
  3451  	}
  3452  
  3453  }
  3454  
  3455  func (o *Device_Status_DeviceInfo_HardwareInformation_Network) MergeRaw(source gotenobject.GotenObjectExt) {
  3456  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_Network))
  3457  }
  3458  
  3459  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU) GotenObjectExt() {}
  3460  
  3461  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask {
  3462  	return FullDevice_Status_DeviceInfo_HardwareInformation_GPU_FieldMask()
  3463  }
  3464  
  3465  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU) MakeRawFullFieldMask() gotenobject.FieldMask {
  3466  	return FullDevice_Status_DeviceInfo_HardwareInformation_GPU_FieldMask()
  3467  }
  3468  
  3469  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_GPU) *Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask {
  3470  	if o == nil && other == nil {
  3471  		return &Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask{}
  3472  	}
  3473  	if o == nil || other == nil {
  3474  		return FullDevice_Status_DeviceInfo_HardwareInformation_GPU_FieldMask()
  3475  	}
  3476  
  3477  	res := &Device_Status_DeviceInfo_HardwareInformation_GPU_FieldMask{}
  3478  
  3479  	if len(o.GetGraphicCards()) == len(other.GetGraphicCards()) {
  3480  		for i, lValue := range o.GetGraphicCards() {
  3481  			rValue := other.GetGraphicCards()[i]
  3482  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  3483  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationGPU_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationGPU_FieldPathSelectorGraphicCards})
  3484  				break
  3485  			}
  3486  		}
  3487  	} else {
  3488  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationGPU_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationGPU_FieldPathSelectorGraphicCards})
  3489  	}
  3490  	return res
  3491  }
  3492  
  3493  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  3494  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_GPU))
  3495  }
  3496  
  3497  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU) Clone() *Device_Status_DeviceInfo_HardwareInformation_GPU {
  3498  	if o == nil {
  3499  		return nil
  3500  	}
  3501  	result := &Device_Status_DeviceInfo_HardwareInformation_GPU{}
  3502  	result.GraphicCards = make([]*Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard, len(o.GraphicCards))
  3503  	for i, sourceValue := range o.GraphicCards {
  3504  		result.GraphicCards[i] = sourceValue.Clone()
  3505  	}
  3506  	return result
  3507  }
  3508  
  3509  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU) CloneRaw() gotenobject.GotenObjectExt {
  3510  	return o.Clone()
  3511  }
  3512  
  3513  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU) Merge(source *Device_Status_DeviceInfo_HardwareInformation_GPU) {
  3514  	for _, sourceValue := range source.GetGraphicCards() {
  3515  		exists := false
  3516  		for _, currentValue := range o.GraphicCards {
  3517  			if proto.Equal(sourceValue, currentValue) {
  3518  				exists = true
  3519  				break
  3520  			}
  3521  		}
  3522  		if !exists {
  3523  			var newDstElement *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard
  3524  			if sourceValue != nil {
  3525  				newDstElement = new(Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard)
  3526  				newDstElement.Merge(sourceValue)
  3527  			}
  3528  			o.GraphicCards = append(o.GraphicCards, newDstElement)
  3529  		}
  3530  	}
  3531  
  3532  }
  3533  
  3534  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU) MergeRaw(source gotenobject.GotenObjectExt) {
  3535  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_GPU))
  3536  }
  3537  
  3538  func (o *Device_Status_DeviceInfo_HardwareInformation_PCIDevice) GotenObjectExt() {}
  3539  
  3540  func (o *Device_Status_DeviceInfo_HardwareInformation_PCIDevice) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask {
  3541  	return FullDevice_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask()
  3542  }
  3543  
  3544  func (o *Device_Status_DeviceInfo_HardwareInformation_PCIDevice) MakeRawFullFieldMask() gotenobject.FieldMask {
  3545  	return FullDevice_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask()
  3546  }
  3547  
  3548  func (o *Device_Status_DeviceInfo_HardwareInformation_PCIDevice) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_PCIDevice) *Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask {
  3549  	if o == nil && other == nil {
  3550  		return &Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask{}
  3551  	}
  3552  	if o == nil || other == nil {
  3553  		return FullDevice_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask()
  3554  	}
  3555  
  3556  	res := &Device_Status_DeviceInfo_HardwareInformation_PCIDevice_FieldMask{}
  3557  	if o.GetAddress() != other.GetAddress() {
  3558  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorAddress})
  3559  	}
  3560  	if o.GetVendor() != other.GetVendor() {
  3561  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorVendor})
  3562  	}
  3563  	if o.GetProduct() != other.GetProduct() {
  3564  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorProduct})
  3565  	}
  3566  	if o.GetName() != other.GetName() {
  3567  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorName})
  3568  	}
  3569  	if o.GetSubvendor() != other.GetSubvendor() {
  3570  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationPCIDevice_FieldPathSelectorSubvendor})
  3571  	}
  3572  	return res
  3573  }
  3574  
  3575  func (o *Device_Status_DeviceInfo_HardwareInformation_PCIDevice) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  3576  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_PCIDevice))
  3577  }
  3578  
  3579  func (o *Device_Status_DeviceInfo_HardwareInformation_PCIDevice) Clone() *Device_Status_DeviceInfo_HardwareInformation_PCIDevice {
  3580  	if o == nil {
  3581  		return nil
  3582  	}
  3583  	result := &Device_Status_DeviceInfo_HardwareInformation_PCIDevice{}
  3584  	result.Address = o.Address
  3585  	result.Vendor = o.Vendor
  3586  	result.Product = o.Product
  3587  	result.Name = o.Name
  3588  	result.Subvendor = o.Subvendor
  3589  	return result
  3590  }
  3591  
  3592  func (o *Device_Status_DeviceInfo_HardwareInformation_PCIDevice) CloneRaw() gotenobject.GotenObjectExt {
  3593  	return o.Clone()
  3594  }
  3595  
  3596  func (o *Device_Status_DeviceInfo_HardwareInformation_PCIDevice) Merge(source *Device_Status_DeviceInfo_HardwareInformation_PCIDevice) {
  3597  	o.Address = source.GetAddress()
  3598  	o.Vendor = source.GetVendor()
  3599  	o.Product = source.GetProduct()
  3600  	o.Name = source.GetName()
  3601  	o.Subvendor = source.GetSubvendor()
  3602  }
  3603  
  3604  func (o *Device_Status_DeviceInfo_HardwareInformation_PCIDevice) MergeRaw(source gotenobject.GotenObjectExt) {
  3605  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_PCIDevice))
  3606  }
  3607  
  3608  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo) GotenObjectExt() {}
  3609  
  3610  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask {
  3611  	return FullDevice_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask()
  3612  }
  3613  
  3614  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo) MakeRawFullFieldMask() gotenobject.FieldMask {
  3615  	return FullDevice_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask()
  3616  }
  3617  
  3618  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo) *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask {
  3619  	if o == nil && other == nil {
  3620  		return &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask{}
  3621  	}
  3622  	if o == nil || other == nil {
  3623  		return FullDevice_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask()
  3624  	}
  3625  
  3626  	res := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_FieldMask{}
  3627  	if o.GetDescription() != other.GetDescription() {
  3628  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorDescription})
  3629  	}
  3630  	if o.GetSizeBytes() != other.GetSizeBytes() {
  3631  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorSizeBytes})
  3632  	}
  3633  
  3634  	if len(o.GetMemoryBanks()) == len(other.GetMemoryBanks()) {
  3635  		for i, lValue := range o.GetMemoryBanks() {
  3636  			rValue := other.GetMemoryBanks()[i]
  3637  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  3638  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorMemoryBanks})
  3639  				break
  3640  			}
  3641  		}
  3642  	} else {
  3643  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfo_FieldPathSelectorMemoryBanks})
  3644  	}
  3645  	return res
  3646  }
  3647  
  3648  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  3649  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_MemoryInfo))
  3650  }
  3651  
  3652  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo) Clone() *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo {
  3653  	if o == nil {
  3654  		return nil
  3655  	}
  3656  	result := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo{}
  3657  	result.Description = o.Description
  3658  	result.SizeBytes = o.SizeBytes
  3659  	result.MemoryBanks = make([]*Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank, len(o.MemoryBanks))
  3660  	for i, sourceValue := range o.MemoryBanks {
  3661  		result.MemoryBanks[i] = sourceValue.Clone()
  3662  	}
  3663  	return result
  3664  }
  3665  
  3666  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo) CloneRaw() gotenobject.GotenObjectExt {
  3667  	return o.Clone()
  3668  }
  3669  
  3670  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo) Merge(source *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo) {
  3671  	o.Description = source.GetDescription()
  3672  	o.SizeBytes = source.GetSizeBytes()
  3673  	for _, sourceValue := range source.GetMemoryBanks() {
  3674  		exists := false
  3675  		for _, currentValue := range o.MemoryBanks {
  3676  			if proto.Equal(sourceValue, currentValue) {
  3677  				exists = true
  3678  				break
  3679  			}
  3680  		}
  3681  		if !exists {
  3682  			var newDstElement *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank
  3683  			if sourceValue != nil {
  3684  				newDstElement = new(Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank)
  3685  				newDstElement.Merge(sourceValue)
  3686  			}
  3687  			o.MemoryBanks = append(o.MemoryBanks, newDstElement)
  3688  		}
  3689  	}
  3690  
  3691  }
  3692  
  3693  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo) MergeRaw(source gotenobject.GotenObjectExt) {
  3694  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_MemoryInfo))
  3695  }
  3696  
  3697  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo) GotenObjectExt() {}
  3698  
  3699  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask {
  3700  	return FullDevice_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask()
  3701  }
  3702  
  3703  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo) MakeRawFullFieldMask() gotenobject.FieldMask {
  3704  	return FullDevice_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask()
  3705  }
  3706  
  3707  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_HailoInfo) *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask {
  3708  	if o == nil && other == nil {
  3709  		return &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask{}
  3710  	}
  3711  	if o == nil || other == nil {
  3712  		return FullDevice_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask()
  3713  	}
  3714  
  3715  	res := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_FieldMask{}
  3716  	if o.GetStatus() != other.GetStatus() {
  3717  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorStatus})
  3718  	}
  3719  	if o.GetCliVersion() != other.GetCliVersion() {
  3720  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorCliVersion})
  3721  	}
  3722  
  3723  	if len(o.GetModules()) == len(other.GetModules()) {
  3724  		for i, lValue := range o.GetModules() {
  3725  			rValue := other.GetModules()[i]
  3726  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  3727  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorModules})
  3728  				break
  3729  			}
  3730  		}
  3731  	} else {
  3732  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfo_FieldPathSelectorModules})
  3733  	}
  3734  	return res
  3735  }
  3736  
  3737  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  3738  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_HailoInfo))
  3739  }
  3740  
  3741  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo) Clone() *Device_Status_DeviceInfo_HardwareInformation_HailoInfo {
  3742  	if o == nil {
  3743  		return nil
  3744  	}
  3745  	result := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo{}
  3746  	result.Status = o.Status
  3747  	result.CliVersion = o.CliVersion
  3748  	result.Modules = make([]*Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo, len(o.Modules))
  3749  	for i, sourceValue := range o.Modules {
  3750  		result.Modules[i] = sourceValue.Clone()
  3751  	}
  3752  	return result
  3753  }
  3754  
  3755  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo) CloneRaw() gotenobject.GotenObjectExt {
  3756  	return o.Clone()
  3757  }
  3758  
  3759  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo) Merge(source *Device_Status_DeviceInfo_HardwareInformation_HailoInfo) {
  3760  	o.Status = source.GetStatus()
  3761  	o.CliVersion = source.GetCliVersion()
  3762  	for _, sourceValue := range source.GetModules() {
  3763  		exists := false
  3764  		for _, currentValue := range o.Modules {
  3765  			if proto.Equal(sourceValue, currentValue) {
  3766  				exists = true
  3767  				break
  3768  			}
  3769  		}
  3770  		if !exists {
  3771  			var newDstElement *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo
  3772  			if sourceValue != nil {
  3773  				newDstElement = new(Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo)
  3774  				newDstElement.Merge(sourceValue)
  3775  			}
  3776  			o.Modules = append(o.Modules, newDstElement)
  3777  		}
  3778  	}
  3779  
  3780  }
  3781  
  3782  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo) MergeRaw(source gotenobject.GotenObjectExt) {
  3783  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_HailoInfo))
  3784  }
  3785  
  3786  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo) GotenObjectExt() {}
  3787  
  3788  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask {
  3789  	return FullDevice_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask()
  3790  }
  3791  
  3792  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo) MakeRawFullFieldMask() gotenobject.FieldMask {
  3793  	return FullDevice_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask()
  3794  }
  3795  
  3796  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo) *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask {
  3797  	if o == nil && other == nil {
  3798  		return &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask{}
  3799  	}
  3800  	if o == nil || other == nil {
  3801  		return FullDevice_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask()
  3802  	}
  3803  
  3804  	res := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_FieldMask{}
  3805  	if o.GetStatus() != other.GetStatus() {
  3806  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorStatus})
  3807  	}
  3808  	if o.GetDriverVersion() != other.GetDriverVersion() {
  3809  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorDriverVersion})
  3810  	}
  3811  	if o.GetCudaVersion() != other.GetCudaVersion() {
  3812  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorCudaVersion})
  3813  	}
  3814  
  3815  	if len(o.GetGpus()) == len(other.GetGpus()) {
  3816  		for i, lValue := range o.GetGpus() {
  3817  			rValue := other.GetGpus()[i]
  3818  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  3819  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorGpus})
  3820  				break
  3821  			}
  3822  		}
  3823  	} else {
  3824  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNvidiaInfo_FieldPathSelectorGpus})
  3825  	}
  3826  	return res
  3827  }
  3828  
  3829  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  3830  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo))
  3831  }
  3832  
  3833  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo) Clone() *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo {
  3834  	if o == nil {
  3835  		return nil
  3836  	}
  3837  	result := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo{}
  3838  	result.Status = o.Status
  3839  	result.DriverVersion = o.DriverVersion
  3840  	result.CudaVersion = o.CudaVersion
  3841  	result.Gpus = make([]*Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo, len(o.Gpus))
  3842  	for i, sourceValue := range o.Gpus {
  3843  		result.Gpus[i] = sourceValue.Clone()
  3844  	}
  3845  	return result
  3846  }
  3847  
  3848  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo) CloneRaw() gotenobject.GotenObjectExt {
  3849  	return o.Clone()
  3850  }
  3851  
  3852  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo) Merge(source *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo) {
  3853  	o.Status = source.GetStatus()
  3854  	o.DriverVersion = source.GetDriverVersion()
  3855  	o.CudaVersion = source.GetCudaVersion()
  3856  	for _, sourceValue := range source.GetGpus() {
  3857  		exists := false
  3858  		for _, currentValue := range o.Gpus {
  3859  			if proto.Equal(sourceValue, currentValue) {
  3860  				exists = true
  3861  				break
  3862  			}
  3863  		}
  3864  		if !exists {
  3865  			var newDstElement *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo
  3866  			if sourceValue != nil {
  3867  				newDstElement = new(Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo)
  3868  				newDstElement.Merge(sourceValue)
  3869  			}
  3870  			o.Gpus = append(o.Gpus, newDstElement)
  3871  		}
  3872  	}
  3873  
  3874  }
  3875  
  3876  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo) MergeRaw(source gotenobject.GotenObjectExt) {
  3877  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo))
  3878  }
  3879  
  3880  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus) GotenObjectExt() {}
  3881  
  3882  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask {
  3883  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask()
  3884  }
  3885  
  3886  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus) MakeRawFullFieldMask() gotenobject.FieldMask {
  3887  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask()
  3888  }
  3889  
  3890  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask {
  3891  	if o == nil && other == nil {
  3892  		return &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask{}
  3893  	}
  3894  	if o == nil || other == nil {
  3895  		return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask()
  3896  	}
  3897  
  3898  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FieldMask{}
  3899  	{
  3900  		subMask := o.GetModem().MakeDiffFieldMask(other.GetModem())
  3901  		if subMask.IsFull() {
  3902  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPathSelectorModem})
  3903  		} else {
  3904  			for _, subpath := range subMask.Paths {
  3905  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatus_FieldPathSelectorModem, subPath: subpath})
  3906  			}
  3907  		}
  3908  	}
  3909  	return res
  3910  }
  3911  
  3912  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  3913  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus))
  3914  }
  3915  
  3916  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus) Clone() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus {
  3917  	if o == nil {
  3918  		return nil
  3919  	}
  3920  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus{}
  3921  	result.Modem = o.Modem.Clone()
  3922  	return result
  3923  }
  3924  
  3925  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus) CloneRaw() gotenobject.GotenObjectExt {
  3926  	return o.Clone()
  3927  }
  3928  
  3929  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus) Merge(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus) {
  3930  	if source.GetModem() != nil {
  3931  		if o.Modem == nil {
  3932  			o.Modem = new(Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem)
  3933  		}
  3934  		o.Modem.Merge(source.GetModem())
  3935  	}
  3936  }
  3937  
  3938  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus) MergeRaw(source gotenobject.GotenObjectExt) {
  3939  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus))
  3940  }
  3941  
  3942  func (o *Device_Status_DeviceInfo_HardwareInformation_System_Configuration) GotenObjectExt() {}
  3943  
  3944  func (o *Device_Status_DeviceInfo_HardwareInformation_System_Configuration) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask {
  3945  	return FullDevice_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask()
  3946  }
  3947  
  3948  func (o *Device_Status_DeviceInfo_HardwareInformation_System_Configuration) MakeRawFullFieldMask() gotenobject.FieldMask {
  3949  	return FullDevice_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask()
  3950  }
  3951  
  3952  func (o *Device_Status_DeviceInfo_HardwareInformation_System_Configuration) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_System_Configuration) *Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask {
  3953  	if o == nil && other == nil {
  3954  		return &Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask{}
  3955  	}
  3956  	if o == nil || other == nil {
  3957  		return FullDevice_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask()
  3958  	}
  3959  
  3960  	res := &Device_Status_DeviceInfo_HardwareInformation_System_Configuration_FieldMask{}
  3961  	if o.GetChassis() != other.GetChassis() {
  3962  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPathSelectorChassis})
  3963  	}
  3964  	if o.GetUuid() != other.GetUuid() {
  3965  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPathSelectorUuid})
  3966  	}
  3967  	if o.GetSkuNumber() != other.GetSkuNumber() {
  3968  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPathSelectorSkuNumber})
  3969  	}
  3970  	if o.GetFamily() != other.GetFamily() {
  3971  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationSystemConfiguration_FieldPathSelectorFamily})
  3972  	}
  3973  	return res
  3974  }
  3975  
  3976  func (o *Device_Status_DeviceInfo_HardwareInformation_System_Configuration) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  3977  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_System_Configuration))
  3978  }
  3979  
  3980  func (o *Device_Status_DeviceInfo_HardwareInformation_System_Configuration) Clone() *Device_Status_DeviceInfo_HardwareInformation_System_Configuration {
  3981  	if o == nil {
  3982  		return nil
  3983  	}
  3984  	result := &Device_Status_DeviceInfo_HardwareInformation_System_Configuration{}
  3985  	result.Chassis = o.Chassis
  3986  	result.Uuid = o.Uuid
  3987  	result.SkuNumber = o.SkuNumber
  3988  	result.Family = o.Family
  3989  	return result
  3990  }
  3991  
  3992  func (o *Device_Status_DeviceInfo_HardwareInformation_System_Configuration) CloneRaw() gotenobject.GotenObjectExt {
  3993  	return o.Clone()
  3994  }
  3995  
  3996  func (o *Device_Status_DeviceInfo_HardwareInformation_System_Configuration) Merge(source *Device_Status_DeviceInfo_HardwareInformation_System_Configuration) {
  3997  	o.Chassis = source.GetChassis()
  3998  	o.Uuid = source.GetUuid()
  3999  	o.SkuNumber = source.GetSkuNumber()
  4000  	o.Family = source.GetFamily()
  4001  }
  4002  
  4003  func (o *Device_Status_DeviceInfo_HardwareInformation_System_Configuration) MergeRaw(source gotenobject.GotenObjectExt) {
  4004  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_System_Configuration))
  4005  }
  4006  
  4007  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor) GotenObjectExt() {}
  4008  
  4009  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask {
  4010  	return FullDevice_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask()
  4011  }
  4012  
  4013  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor) MakeRawFullFieldMask() gotenobject.FieldMask {
  4014  	return FullDevice_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask()
  4015  }
  4016  
  4017  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor) *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask {
  4018  	if o == nil && other == nil {
  4019  		return &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask{}
  4020  	}
  4021  	if o == nil || other == nil {
  4022  		return FullDevice_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask()
  4023  	}
  4024  
  4025  	res := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_FieldMask{}
  4026  	if o.GetVendor() != other.GetVendor() {
  4027  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorVendor})
  4028  	}
  4029  	if o.GetModel() != other.GetModel() {
  4030  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorModel})
  4031  	}
  4032  
  4033  	if len(o.GetCapabilities()) == len(other.GetCapabilities()) {
  4034  		for i, lValue := range o.GetCapabilities() {
  4035  			rValue := other.GetCapabilities()[i]
  4036  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  4037  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCapabilities})
  4038  				break
  4039  			}
  4040  		}
  4041  	} else {
  4042  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCapabilities})
  4043  	}
  4044  	if o.GetNumThreads() != other.GetNumThreads() {
  4045  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorNumThreads})
  4046  	}
  4047  	if o.GetNumCores() != other.GetNumCores() {
  4048  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorNumCores})
  4049  	}
  4050  	if o.GetNumEnabledCores() != other.GetNumEnabledCores() {
  4051  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorNumEnabledCores})
  4052  	}
  4053  	if o.GetName() != other.GetName() {
  4054  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorName})
  4055  	}
  4056  	if o.GetSerial() != other.GetSerial() {
  4057  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorSerial})
  4058  	}
  4059  	if o.GetFrequencyMhz() != other.GetFrequencyMhz() {
  4060  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorFrequencyMhz})
  4061  	}
  4062  	if o.GetMaxFrequencyMhz() != other.GetMaxFrequencyMhz() {
  4063  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorMaxFrequencyMhz})
  4064  	}
  4065  
  4066  	if len(o.GetCacheInfo()) == len(other.GetCacheInfo()) {
  4067  		for i, lValue := range o.GetCacheInfo() {
  4068  			rValue := other.GetCacheInfo()[i]
  4069  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  4070  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCacheInfo})
  4071  				break
  4072  			}
  4073  		}
  4074  	} else {
  4075  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorCacheInfo})
  4076  	}
  4077  	if o.GetDriver() != other.GetDriver() {
  4078  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorDriver})
  4079  	}
  4080  	if o.GetLatency() != other.GetLatency() {
  4081  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorLatency})
  4082  	}
  4083  	if o.GetClock() != other.GetClock() {
  4084  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessor_FieldPathSelectorClock})
  4085  	}
  4086  	return res
  4087  }
  4088  
  4089  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  4090  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor))
  4091  }
  4092  
  4093  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor) Clone() *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor {
  4094  	if o == nil {
  4095  		return nil
  4096  	}
  4097  	result := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor{}
  4098  	result.Vendor = o.Vendor
  4099  	result.Model = o.Model
  4100  	result.Capabilities = make([]*Device_Status_DeviceInfo_HardwareInformation_Capability, len(o.Capabilities))
  4101  	for i, sourceValue := range o.Capabilities {
  4102  		result.Capabilities[i] = sourceValue.Clone()
  4103  	}
  4104  	result.NumThreads = o.NumThreads
  4105  	result.NumCores = o.NumCores
  4106  	result.NumEnabledCores = o.NumEnabledCores
  4107  	result.Name = o.Name
  4108  	result.Serial = o.Serial
  4109  	result.FrequencyMhz = o.FrequencyMhz
  4110  	result.MaxFrequencyMhz = o.MaxFrequencyMhz
  4111  	result.CacheInfo = make([]*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache, len(o.CacheInfo))
  4112  	for i, sourceValue := range o.CacheInfo {
  4113  		result.CacheInfo[i] = sourceValue.Clone()
  4114  	}
  4115  	result.Driver = o.Driver
  4116  	result.Latency = o.Latency
  4117  	result.Clock = o.Clock
  4118  	return result
  4119  }
  4120  
  4121  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor) CloneRaw() gotenobject.GotenObjectExt {
  4122  	return o.Clone()
  4123  }
  4124  
  4125  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor) Merge(source *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor) {
  4126  	o.Vendor = source.GetVendor()
  4127  	o.Model = source.GetModel()
  4128  	for _, sourceValue := range source.GetCapabilities() {
  4129  		exists := false
  4130  		for _, currentValue := range o.Capabilities {
  4131  			if proto.Equal(sourceValue, currentValue) {
  4132  				exists = true
  4133  				break
  4134  			}
  4135  		}
  4136  		if !exists {
  4137  			var newDstElement *Device_Status_DeviceInfo_HardwareInformation_Capability
  4138  			if sourceValue != nil {
  4139  				newDstElement = new(Device_Status_DeviceInfo_HardwareInformation_Capability)
  4140  				newDstElement.Merge(sourceValue)
  4141  			}
  4142  			o.Capabilities = append(o.Capabilities, newDstElement)
  4143  		}
  4144  	}
  4145  
  4146  	o.NumThreads = source.GetNumThreads()
  4147  	o.NumCores = source.GetNumCores()
  4148  	o.NumEnabledCores = source.GetNumEnabledCores()
  4149  	o.Name = source.GetName()
  4150  	o.Serial = source.GetSerial()
  4151  	o.FrequencyMhz = source.GetFrequencyMhz()
  4152  	o.MaxFrequencyMhz = source.GetMaxFrequencyMhz()
  4153  	for _, sourceValue := range source.GetCacheInfo() {
  4154  		exists := false
  4155  		for _, currentValue := range o.CacheInfo {
  4156  			if proto.Equal(sourceValue, currentValue) {
  4157  				exists = true
  4158  				break
  4159  			}
  4160  		}
  4161  		if !exists {
  4162  			var newDstElement *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache
  4163  			if sourceValue != nil {
  4164  				newDstElement = new(Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache)
  4165  				newDstElement.Merge(sourceValue)
  4166  			}
  4167  			o.CacheInfo = append(o.CacheInfo, newDstElement)
  4168  		}
  4169  	}
  4170  
  4171  	o.Driver = source.GetDriver()
  4172  	o.Latency = source.GetLatency()
  4173  	o.Clock = source.GetClock()
  4174  }
  4175  
  4176  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor) MergeRaw(source gotenobject.GotenObjectExt) {
  4177  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor))
  4178  }
  4179  
  4180  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache) GotenObjectExt() {}
  4181  
  4182  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask {
  4183  	return FullDevice_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask()
  4184  }
  4185  
  4186  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache) MakeRawFullFieldMask() gotenobject.FieldMask {
  4187  	return FullDevice_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask()
  4188  }
  4189  
  4190  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache) *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask {
  4191  	if o == nil && other == nil {
  4192  		return &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask{}
  4193  	}
  4194  	if o == nil || other == nil {
  4195  		return FullDevice_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask()
  4196  	}
  4197  
  4198  	res := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache_FieldMask{}
  4199  	if o.GetType() != other.GetType() {
  4200  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPathSelectorType})
  4201  	}
  4202  	if o.GetSizeBytes() != other.GetSizeBytes() {
  4203  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationCPUProcessorCache_FieldPathSelectorSizeBytes})
  4204  	}
  4205  	return res
  4206  }
  4207  
  4208  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  4209  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache))
  4210  }
  4211  
  4212  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache) Clone() *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache {
  4213  	if o == nil {
  4214  		return nil
  4215  	}
  4216  	result := &Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache{}
  4217  	result.Type = o.Type
  4218  	result.SizeBytes = o.SizeBytes
  4219  	return result
  4220  }
  4221  
  4222  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache) CloneRaw() gotenobject.GotenObjectExt {
  4223  	return o.Clone()
  4224  }
  4225  
  4226  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache) Merge(source *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache) {
  4227  	o.Type = source.GetType()
  4228  	o.SizeBytes = source.GetSizeBytes()
  4229  }
  4230  
  4231  func (o *Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache) MergeRaw(source gotenobject.GotenObjectExt) {
  4232  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_CPU_Processor_Cache))
  4233  }
  4234  
  4235  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk) GotenObjectExt() {}
  4236  
  4237  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask {
  4238  	return FullDevice_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask()
  4239  }
  4240  
  4241  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk) MakeRawFullFieldMask() gotenobject.FieldMask {
  4242  	return FullDevice_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask()
  4243  }
  4244  
  4245  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_Block_Disk) *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask {
  4246  	if o == nil && other == nil {
  4247  		return &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask{}
  4248  	}
  4249  	if o == nil || other == nil {
  4250  		return FullDevice_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask()
  4251  	}
  4252  
  4253  	res := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_FieldMask{}
  4254  	if o.GetName() != other.GetName() {
  4255  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorName})
  4256  	}
  4257  	if o.GetSizeBytes() != other.GetSizeBytes() {
  4258  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorSizeBytes})
  4259  	}
  4260  	if o.GetDriveType() != other.GetDriveType() {
  4261  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorDriveType})
  4262  	}
  4263  	if o.GetVendor() != other.GetVendor() {
  4264  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorVendor})
  4265  	}
  4266  	if o.GetModel() != other.GetModel() {
  4267  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorModel})
  4268  	}
  4269  	if o.GetSerialNumber() != other.GetSerialNumber() {
  4270  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorSerialNumber})
  4271  	}
  4272  	if o.GetWwn() != other.GetWwn() {
  4273  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorWwn})
  4274  	}
  4275  
  4276  	if len(o.GetPartitions()) == len(other.GetPartitions()) {
  4277  		for i, lValue := range o.GetPartitions() {
  4278  			rValue := other.GetPartitions()[i]
  4279  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  4280  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorPartitions})
  4281  				break
  4282  			}
  4283  		}
  4284  	} else {
  4285  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDisk_FieldPathSelectorPartitions})
  4286  	}
  4287  	return res
  4288  }
  4289  
  4290  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  4291  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_Block_Disk))
  4292  }
  4293  
  4294  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk) Clone() *Device_Status_DeviceInfo_HardwareInformation_Block_Disk {
  4295  	if o == nil {
  4296  		return nil
  4297  	}
  4298  	result := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk{}
  4299  	result.Name = o.Name
  4300  	result.SizeBytes = o.SizeBytes
  4301  	result.DriveType = o.DriveType
  4302  	result.Vendor = o.Vendor
  4303  	result.Model = o.Model
  4304  	result.SerialNumber = o.SerialNumber
  4305  	result.Wwn = o.Wwn
  4306  	result.Partitions = make([]*Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition, len(o.Partitions))
  4307  	for i, sourceValue := range o.Partitions {
  4308  		result.Partitions[i] = sourceValue.Clone()
  4309  	}
  4310  	return result
  4311  }
  4312  
  4313  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk) CloneRaw() gotenobject.GotenObjectExt {
  4314  	return o.Clone()
  4315  }
  4316  
  4317  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk) Merge(source *Device_Status_DeviceInfo_HardwareInformation_Block_Disk) {
  4318  	o.Name = source.GetName()
  4319  	o.SizeBytes = source.GetSizeBytes()
  4320  	o.DriveType = source.GetDriveType()
  4321  	o.Vendor = source.GetVendor()
  4322  	o.Model = source.GetModel()
  4323  	o.SerialNumber = source.GetSerialNumber()
  4324  	o.Wwn = source.GetWwn()
  4325  	for _, sourceValue := range source.GetPartitions() {
  4326  		exists := false
  4327  		for _, currentValue := range o.Partitions {
  4328  			if proto.Equal(sourceValue, currentValue) {
  4329  				exists = true
  4330  				break
  4331  			}
  4332  		}
  4333  		if !exists {
  4334  			var newDstElement *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition
  4335  			if sourceValue != nil {
  4336  				newDstElement = new(Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition)
  4337  				newDstElement.Merge(sourceValue)
  4338  			}
  4339  			o.Partitions = append(o.Partitions, newDstElement)
  4340  		}
  4341  	}
  4342  
  4343  }
  4344  
  4345  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk) MergeRaw(source gotenobject.GotenObjectExt) {
  4346  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_Block_Disk))
  4347  }
  4348  
  4349  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition) GotenObjectExt() {}
  4350  
  4351  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask {
  4352  	return FullDevice_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask()
  4353  }
  4354  
  4355  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition) MakeRawFullFieldMask() gotenobject.FieldMask {
  4356  	return FullDevice_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask()
  4357  }
  4358  
  4359  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition) *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask {
  4360  	if o == nil && other == nil {
  4361  		return &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask{}
  4362  	}
  4363  	if o == nil || other == nil {
  4364  		return FullDevice_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask()
  4365  	}
  4366  
  4367  	res := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition_FieldMask{}
  4368  	if o.GetName() != other.GetName() {
  4369  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPathSelectorName})
  4370  	}
  4371  	if o.GetSizeBytes() != other.GetSizeBytes() {
  4372  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPathSelectorSizeBytes})
  4373  	}
  4374  	if o.GetMountPoint() != other.GetMountPoint() {
  4375  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPathSelectorMountPoint})
  4376  	}
  4377  	if o.GetType() != other.GetType() {
  4378  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationBlockDiskPartition_FieldPathSelectorType})
  4379  	}
  4380  	return res
  4381  }
  4382  
  4383  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  4384  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition))
  4385  }
  4386  
  4387  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition) Clone() *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition {
  4388  	if o == nil {
  4389  		return nil
  4390  	}
  4391  	result := &Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition{}
  4392  	result.Name = o.Name
  4393  	result.SizeBytes = o.SizeBytes
  4394  	result.MountPoint = o.MountPoint
  4395  	result.Type = o.Type
  4396  	return result
  4397  }
  4398  
  4399  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition) CloneRaw() gotenobject.GotenObjectExt {
  4400  	return o.Clone()
  4401  }
  4402  
  4403  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition) Merge(source *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition) {
  4404  	o.Name = source.GetName()
  4405  	o.SizeBytes = source.GetSizeBytes()
  4406  	o.MountPoint = source.GetMountPoint()
  4407  	o.Type = source.GetType()
  4408  }
  4409  
  4410  func (o *Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition) MergeRaw(source gotenobject.GotenObjectExt) {
  4411  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_Block_Disk_Partition))
  4412  }
  4413  
  4414  func (o *Device_Status_DeviceInfo_HardwareInformation_Network_NIC) GotenObjectExt() {}
  4415  
  4416  func (o *Device_Status_DeviceInfo_HardwareInformation_Network_NIC) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask {
  4417  	return FullDevice_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask()
  4418  }
  4419  
  4420  func (o *Device_Status_DeviceInfo_HardwareInformation_Network_NIC) MakeRawFullFieldMask() gotenobject.FieldMask {
  4421  	return FullDevice_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask()
  4422  }
  4423  
  4424  func (o *Device_Status_DeviceInfo_HardwareInformation_Network_NIC) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_Network_NIC) *Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask {
  4425  	if o == nil && other == nil {
  4426  		return &Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask{}
  4427  	}
  4428  	if o == nil || other == nil {
  4429  		return FullDevice_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask()
  4430  	}
  4431  
  4432  	res := &Device_Status_DeviceInfo_HardwareInformation_Network_NIC_FieldMask{}
  4433  	if o.GetName() != other.GetName() {
  4434  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorName})
  4435  	}
  4436  	if o.GetMacAddress() != other.GetMacAddress() {
  4437  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorMacAddress})
  4438  	}
  4439  	if o.GetVirtual() != other.GetVirtual() {
  4440  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorVirtual})
  4441  	}
  4442  	if o.GetDescription() != other.GetDescription() {
  4443  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorDescription})
  4444  	}
  4445  	if o.GetProductName() != other.GetProductName() {
  4446  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorProductName})
  4447  	}
  4448  	if o.GetVendor() != other.GetVendor() {
  4449  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorVendor})
  4450  	}
  4451  	if o.GetSubvendor() != other.GetSubvendor() {
  4452  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorSubvendor})
  4453  	}
  4454  
  4455  	if len(o.GetSetting()) == len(other.GetSetting()) {
  4456  		for i, lValue := range o.GetSetting() {
  4457  			rValue := other.GetSetting()[i]
  4458  			if lValue != rValue {
  4459  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorSetting})
  4460  				break
  4461  			}
  4462  		}
  4463  	} else {
  4464  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNetworkNIC_FieldPathSelectorSetting})
  4465  	}
  4466  	return res
  4467  }
  4468  
  4469  func (o *Device_Status_DeviceInfo_HardwareInformation_Network_NIC) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  4470  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_Network_NIC))
  4471  }
  4472  
  4473  func (o *Device_Status_DeviceInfo_HardwareInformation_Network_NIC) Clone() *Device_Status_DeviceInfo_HardwareInformation_Network_NIC {
  4474  	if o == nil {
  4475  		return nil
  4476  	}
  4477  	result := &Device_Status_DeviceInfo_HardwareInformation_Network_NIC{}
  4478  	result.Name = o.Name
  4479  	result.MacAddress = o.MacAddress
  4480  	result.Virtual = o.Virtual
  4481  	result.Description = o.Description
  4482  	result.ProductName = o.ProductName
  4483  	result.Vendor = o.Vendor
  4484  	result.Subvendor = o.Subvendor
  4485  	result.Setting = map[string]string{}
  4486  	for key, sourceValue := range o.Setting {
  4487  		result.Setting[key] = sourceValue
  4488  	}
  4489  	return result
  4490  }
  4491  
  4492  func (o *Device_Status_DeviceInfo_HardwareInformation_Network_NIC) CloneRaw() gotenobject.GotenObjectExt {
  4493  	return o.Clone()
  4494  }
  4495  
  4496  func (o *Device_Status_DeviceInfo_HardwareInformation_Network_NIC) Merge(source *Device_Status_DeviceInfo_HardwareInformation_Network_NIC) {
  4497  	o.Name = source.GetName()
  4498  	o.MacAddress = source.GetMacAddress()
  4499  	o.Virtual = source.GetVirtual()
  4500  	o.Description = source.GetDescription()
  4501  	o.ProductName = source.GetProductName()
  4502  	o.Vendor = source.GetVendor()
  4503  	o.Subvendor = source.GetSubvendor()
  4504  	if source.GetSetting() != nil {
  4505  		if o.Setting == nil {
  4506  			o.Setting = make(map[string]string, len(source.GetSetting()))
  4507  		}
  4508  		for key, sourceValue := range source.GetSetting() {
  4509  			o.Setting[key] = sourceValue
  4510  		}
  4511  	}
  4512  }
  4513  
  4514  func (o *Device_Status_DeviceInfo_HardwareInformation_Network_NIC) MergeRaw(source gotenobject.GotenObjectExt) {
  4515  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_Network_NIC))
  4516  }
  4517  
  4518  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard) GotenObjectExt() {}
  4519  
  4520  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask {
  4521  	return FullDevice_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask()
  4522  }
  4523  
  4524  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard) MakeRawFullFieldMask() gotenobject.FieldMask {
  4525  	return FullDevice_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask()
  4526  }
  4527  
  4528  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard) *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask {
  4529  	if o == nil && other == nil {
  4530  		return &Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask{}
  4531  	}
  4532  	if o == nil || other == nil {
  4533  		return FullDevice_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask()
  4534  	}
  4535  
  4536  	res := &Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard_FieldMask{}
  4537  	if o.GetIndex() != other.GetIndex() {
  4538  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelectorIndex})
  4539  	}
  4540  	{
  4541  		subMask := o.GetDevice().MakeDiffFieldMask(other.GetDevice())
  4542  		if subMask.IsFull() {
  4543  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelectorDevice})
  4544  		} else {
  4545  			for _, subpath := range subMask.Paths {
  4546  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformationGPUGraphicCard_FieldPathSelectorDevice, subPath: subpath})
  4547  			}
  4548  		}
  4549  	}
  4550  	return res
  4551  }
  4552  
  4553  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  4554  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard))
  4555  }
  4556  
  4557  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard) Clone() *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard {
  4558  	if o == nil {
  4559  		return nil
  4560  	}
  4561  	result := &Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard{}
  4562  	result.Index = o.Index
  4563  	result.Device = o.Device.Clone()
  4564  	return result
  4565  }
  4566  
  4567  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard) CloneRaw() gotenobject.GotenObjectExt {
  4568  	return o.Clone()
  4569  }
  4570  
  4571  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard) Merge(source *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard) {
  4572  	o.Index = source.GetIndex()
  4573  	if source.GetDevice() != nil {
  4574  		if o.Device == nil {
  4575  			o.Device = new(Device_Status_DeviceInfo_HardwareInformation_PCIDevice)
  4576  		}
  4577  		o.Device.Merge(source.GetDevice())
  4578  	}
  4579  }
  4580  
  4581  func (o *Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard) MergeRaw(source gotenobject.GotenObjectExt) {
  4582  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_GPU_GraphicCard))
  4583  }
  4584  
  4585  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank) GotenObjectExt() {}
  4586  
  4587  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask {
  4588  	return FullDevice_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask()
  4589  }
  4590  
  4591  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank) MakeRawFullFieldMask() gotenobject.FieldMask {
  4592  	return FullDevice_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask()
  4593  }
  4594  
  4595  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank) *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask {
  4596  	if o == nil && other == nil {
  4597  		return &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask{}
  4598  	}
  4599  	if o == nil || other == nil {
  4600  		return FullDevice_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask()
  4601  	}
  4602  
  4603  	res := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank_FieldMask{}
  4604  	if o.GetDescription() != other.GetDescription() {
  4605  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorDescription})
  4606  	}
  4607  	if o.GetProduct() != other.GetProduct() {
  4608  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorProduct})
  4609  	}
  4610  	if o.GetVendor() != other.GetVendor() {
  4611  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorVendor})
  4612  	}
  4613  	if o.GetSerial() != other.GetSerial() {
  4614  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorSerial})
  4615  	}
  4616  	if o.GetSlot() != other.GetSlot() {
  4617  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorSlot})
  4618  	}
  4619  	if o.GetSizeBytes() != other.GetSizeBytes() {
  4620  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorSizeBytes})
  4621  	}
  4622  	if o.GetFrequencyHz() != other.GetFrequencyHz() {
  4623  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorFrequencyHz})
  4624  	}
  4625  	if o.GetWidthBits() != other.GetWidthBits() {
  4626  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationMemoryInfoMemoryBank_FieldPathSelectorWidthBits})
  4627  	}
  4628  	return res
  4629  }
  4630  
  4631  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  4632  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank))
  4633  }
  4634  
  4635  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank) Clone() *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank {
  4636  	if o == nil {
  4637  		return nil
  4638  	}
  4639  	result := &Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank{}
  4640  	result.Description = o.Description
  4641  	result.Product = o.Product
  4642  	result.Vendor = o.Vendor
  4643  	result.Serial = o.Serial
  4644  	result.Slot = o.Slot
  4645  	result.SizeBytes = o.SizeBytes
  4646  	result.FrequencyHz = o.FrequencyHz
  4647  	result.WidthBits = o.WidthBits
  4648  	return result
  4649  }
  4650  
  4651  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank) CloneRaw() gotenobject.GotenObjectExt {
  4652  	return o.Clone()
  4653  }
  4654  
  4655  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank) Merge(source *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank) {
  4656  	o.Description = source.GetDescription()
  4657  	o.Product = source.GetProduct()
  4658  	o.Vendor = source.GetVendor()
  4659  	o.Serial = source.GetSerial()
  4660  	o.Slot = source.GetSlot()
  4661  	o.SizeBytes = source.GetSizeBytes()
  4662  	o.FrequencyHz = source.GetFrequencyHz()
  4663  	o.WidthBits = source.GetWidthBits()
  4664  }
  4665  
  4666  func (o *Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank) MergeRaw(source gotenobject.GotenObjectExt) {
  4667  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_MemoryInfo_MemoryBank))
  4668  }
  4669  
  4670  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo) GotenObjectExt() {}
  4671  
  4672  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask {
  4673  	return FullDevice_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask()
  4674  }
  4675  
  4676  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo) MakeRawFullFieldMask() gotenobject.FieldMask {
  4677  	return FullDevice_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask()
  4678  }
  4679  
  4680  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo) *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask {
  4681  	if o == nil && other == nil {
  4682  		return &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask{}
  4683  	}
  4684  	if o == nil || other == nil {
  4685  		return FullDevice_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask()
  4686  	}
  4687  
  4688  	res := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo_FieldMask{}
  4689  	if o.GetDevId() != other.GetDevId() {
  4690  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorDevId})
  4691  	}
  4692  	if o.GetControlProtoVersion() != other.GetControlProtoVersion() {
  4693  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorControlProtoVersion})
  4694  	}
  4695  	if o.GetFirmwareVersion() != other.GetFirmwareVersion() {
  4696  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorFirmwareVersion})
  4697  	}
  4698  	if o.GetLoggerVersion() != other.GetLoggerVersion() {
  4699  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorLoggerVersion})
  4700  	}
  4701  	if o.GetBoardName() != other.GetBoardName() {
  4702  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorBoardName})
  4703  	}
  4704  	if o.GetSerialNumber() != other.GetSerialNumber() {
  4705  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorSerialNumber})
  4706  	}
  4707  	if o.GetPartNumber() != other.GetPartNumber() {
  4708  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorPartNumber})
  4709  	}
  4710  	if o.GetProductName() != other.GetProductName() {
  4711  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorProductName})
  4712  	}
  4713  	if o.GetNeuralNetworkCoreClockRate() != other.GetNeuralNetworkCoreClockRate() {
  4714  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationHailoInfoHailoModuleInfo_FieldPathSelectorNeuralNetworkCoreClockRate})
  4715  	}
  4716  	return res
  4717  }
  4718  
  4719  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  4720  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo))
  4721  }
  4722  
  4723  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo) Clone() *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo {
  4724  	if o == nil {
  4725  		return nil
  4726  	}
  4727  	result := &Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo{}
  4728  	result.DevId = o.DevId
  4729  	result.ControlProtoVersion = o.ControlProtoVersion
  4730  	result.FirmwareVersion = o.FirmwareVersion
  4731  	result.LoggerVersion = o.LoggerVersion
  4732  	result.BoardName = o.BoardName
  4733  	result.SerialNumber = o.SerialNumber
  4734  	result.PartNumber = o.PartNumber
  4735  	result.ProductName = o.ProductName
  4736  	result.NeuralNetworkCoreClockRate = o.NeuralNetworkCoreClockRate
  4737  	return result
  4738  }
  4739  
  4740  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo) CloneRaw() gotenobject.GotenObjectExt {
  4741  	return o.Clone()
  4742  }
  4743  
  4744  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo) Merge(source *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo) {
  4745  	o.DevId = source.GetDevId()
  4746  	o.ControlProtoVersion = source.GetControlProtoVersion()
  4747  	o.FirmwareVersion = source.GetFirmwareVersion()
  4748  	o.LoggerVersion = source.GetLoggerVersion()
  4749  	o.BoardName = source.GetBoardName()
  4750  	o.SerialNumber = source.GetSerialNumber()
  4751  	o.PartNumber = source.GetPartNumber()
  4752  	o.ProductName = source.GetProductName()
  4753  	o.NeuralNetworkCoreClockRate = source.GetNeuralNetworkCoreClockRate()
  4754  }
  4755  
  4756  func (o *Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo) MergeRaw(source gotenobject.GotenObjectExt) {
  4757  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_HailoInfo_HailoModuleInfo))
  4758  }
  4759  
  4760  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo) GotenObjectExt() {}
  4761  
  4762  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask {
  4763  	return FullDevice_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask()
  4764  }
  4765  
  4766  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo) MakeRawFullFieldMask() gotenobject.FieldMask {
  4767  	return FullDevice_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask()
  4768  }
  4769  
  4770  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo) *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask {
  4771  	if o == nil && other == nil {
  4772  		return &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask{}
  4773  	}
  4774  	if o == nil || other == nil {
  4775  		return FullDevice_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask()
  4776  	}
  4777  
  4778  	res := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo_FieldMask{}
  4779  	if o.GetId() != other.GetId() {
  4780  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPathSelectorId})
  4781  	}
  4782  	if o.GetProductName() != other.GetProductName() {
  4783  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationNvidiaInfoGpuInfo_FieldPathSelectorProductName})
  4784  	}
  4785  	return res
  4786  }
  4787  
  4788  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  4789  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo))
  4790  }
  4791  
  4792  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo) Clone() *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo {
  4793  	if o == nil {
  4794  		return nil
  4795  	}
  4796  	result := &Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo{}
  4797  	result.Id = o.Id
  4798  	result.ProductName = o.ProductName
  4799  	return result
  4800  }
  4801  
  4802  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo) CloneRaw() gotenobject.GotenObjectExt {
  4803  	return o.Clone()
  4804  }
  4805  
  4806  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo) Merge(source *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo) {
  4807  	o.Id = source.GetId()
  4808  	o.ProductName = source.GetProductName()
  4809  }
  4810  
  4811  func (o *Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo) MergeRaw(source gotenobject.GotenObjectExt) {
  4812  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_NvidiaInfo_GpuInfo))
  4813  }
  4814  
  4815  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings) GotenObjectExt() {
  4816  }
  4817  
  4818  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask {
  4819  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask()
  4820  }
  4821  
  4822  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings) MakeRawFullFieldMask() gotenobject.FieldMask {
  4823  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask()
  4824  }
  4825  
  4826  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask {
  4827  	if o == nil && other == nil {
  4828  		return &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask{}
  4829  	}
  4830  	if o == nil || other == nil {
  4831  		return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask()
  4832  	}
  4833  
  4834  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings_FieldMask{}
  4835  	if o.GetDrxCycle() != other.GetDrxCycle() {
  4836  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPathSelectorDrxCycle})
  4837  	}
  4838  	if o.GetMicoMode() != other.GetMicoMode() {
  4839  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusRegistrationSettings_FieldPathSelectorMicoMode})
  4840  	}
  4841  	return res
  4842  }
  4843  
  4844  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  4845  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings))
  4846  }
  4847  
  4848  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings) Clone() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings {
  4849  	if o == nil {
  4850  		return nil
  4851  	}
  4852  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings{}
  4853  	result.DrxCycle = o.DrxCycle
  4854  	result.MicoMode = o.MicoMode
  4855  	return result
  4856  }
  4857  
  4858  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings) CloneRaw() gotenobject.GotenObjectExt {
  4859  	return o.Clone()
  4860  }
  4861  
  4862  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings) Merge(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings) {
  4863  	o.DrxCycle = source.GetDrxCycle()
  4864  	o.MicoMode = source.GetMicoMode()
  4865  }
  4866  
  4867  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings) MergeRaw(source gotenobject.GotenObjectExt) {
  4868  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings))
  4869  }
  4870  
  4871  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr) GotenObjectExt() {}
  4872  
  4873  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask {
  4874  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask()
  4875  }
  4876  
  4877  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr) MakeRawFullFieldMask() gotenobject.FieldMask {
  4878  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask()
  4879  }
  4880  
  4881  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask {
  4882  	if o == nil && other == nil {
  4883  		return &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask{}
  4884  	}
  4885  	if o == nil || other == nil {
  4886  		return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask()
  4887  	}
  4888  
  4889  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr_FieldMask{}
  4890  	{
  4891  		subMask := o.GetRegistrationSettings().MakeDiffFieldMask(other.GetRegistrationSettings())
  4892  		if subMask.IsFull() {
  4893  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPathSelectorRegistrationSettings})
  4894  		} else {
  4895  			for _, subpath := range subMask.Paths {
  4896  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusFiveGNr_FieldPathSelectorRegistrationSettings, subPath: subpath})
  4897  			}
  4898  		}
  4899  	}
  4900  	return res
  4901  }
  4902  
  4903  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  4904  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr))
  4905  }
  4906  
  4907  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr) Clone() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr {
  4908  	if o == nil {
  4909  		return nil
  4910  	}
  4911  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr{}
  4912  	result.RegistrationSettings = o.RegistrationSettings.Clone()
  4913  	return result
  4914  }
  4915  
  4916  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr) CloneRaw() gotenobject.GotenObjectExt {
  4917  	return o.Clone()
  4918  }
  4919  
  4920  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr) Merge(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr) {
  4921  	if source.GetRegistrationSettings() != nil {
  4922  		if o.RegistrationSettings == nil {
  4923  			o.RegistrationSettings = new(Device_Status_DeviceInfo_HardwareInformation_ModemStatus_RegistrationSettings)
  4924  		}
  4925  		o.RegistrationSettings.Merge(source.GetRegistrationSettings())
  4926  	}
  4927  }
  4928  
  4929  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr) MergeRaw(source gotenobject.GotenObjectExt) {
  4930  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr))
  4931  }
  4932  
  4933  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings) GotenObjectExt() {}
  4934  
  4935  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask {
  4936  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask()
  4937  }
  4938  
  4939  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings) MakeRawFullFieldMask() gotenobject.FieldMask {
  4940  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask()
  4941  }
  4942  
  4943  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask {
  4944  	if o == nil && other == nil {
  4945  		return &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask{}
  4946  	}
  4947  	if o == nil || other == nil {
  4948  		return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask()
  4949  	}
  4950  
  4951  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings_FieldMask{}
  4952  	if o.GetApn() != other.GetApn() {
  4953  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPathSelectorApn})
  4954  	}
  4955  	if o.GetIpType() != other.GetIpType() {
  4956  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPathSelectorIpType})
  4957  	}
  4958  	if o.GetPassword() != other.GetPassword() {
  4959  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPathSelectorPassword})
  4960  	}
  4961  	if o.GetUser() != other.GetUser() {
  4962  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSettings_FieldPathSelectorUser})
  4963  	}
  4964  	return res
  4965  }
  4966  
  4967  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  4968  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings))
  4969  }
  4970  
  4971  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings) Clone() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings {
  4972  	if o == nil {
  4973  		return nil
  4974  	}
  4975  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings{}
  4976  	result.Apn = o.Apn
  4977  	result.IpType = o.IpType
  4978  	result.Password = o.Password
  4979  	result.User = o.User
  4980  	return result
  4981  }
  4982  
  4983  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings) CloneRaw() gotenobject.GotenObjectExt {
  4984  	return o.Clone()
  4985  }
  4986  
  4987  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings) Merge(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings) {
  4988  	o.Apn = source.GetApn()
  4989  	o.IpType = source.GetIpType()
  4990  	o.Password = source.GetPassword()
  4991  	o.User = source.GetUser()
  4992  }
  4993  
  4994  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings) MergeRaw(source gotenobject.GotenObjectExt) {
  4995  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings))
  4996  }
  4997  
  4998  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer) GotenObjectExt() {}
  4999  
  5000  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask {
  5001  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask()
  5002  }
  5003  
  5004  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer) MakeRawFullFieldMask() gotenobject.FieldMask {
  5005  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask()
  5006  }
  5007  
  5008  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask {
  5009  	if o == nil && other == nil {
  5010  		return &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask{}
  5011  	}
  5012  	if o == nil || other == nil {
  5013  		return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask()
  5014  	}
  5015  
  5016  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer_FieldMask{}
  5017  	if o.GetDbusPath() != other.GetDbusPath() {
  5018  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelectorDbusPath})
  5019  	}
  5020  	{
  5021  		subMask := o.GetSettings().MakeDiffFieldMask(other.GetSettings())
  5022  		if subMask.IsFull() {
  5023  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelectorSettings})
  5024  		} else {
  5025  			for _, subpath := range subMask.Paths {
  5026  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusInitialBearer_FieldPathSelectorSettings, subPath: subpath})
  5027  			}
  5028  		}
  5029  	}
  5030  	return res
  5031  }
  5032  
  5033  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  5034  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer))
  5035  }
  5036  
  5037  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer) Clone() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer {
  5038  	if o == nil {
  5039  		return nil
  5040  	}
  5041  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer{}
  5042  	result.DbusPath = o.DbusPath
  5043  	result.Settings = o.Settings.Clone()
  5044  	return result
  5045  }
  5046  
  5047  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer) CloneRaw() gotenobject.GotenObjectExt {
  5048  	return o.Clone()
  5049  }
  5050  
  5051  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer) Merge(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer) {
  5052  	o.DbusPath = source.GetDbusPath()
  5053  	if source.GetSettings() != nil {
  5054  		if o.Settings == nil {
  5055  			o.Settings = new(Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Settings)
  5056  		}
  5057  		o.Settings.Merge(source.GetSettings())
  5058  	}
  5059  }
  5060  
  5061  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer) MergeRaw(source gotenobject.GotenObjectExt) {
  5062  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer))
  5063  }
  5064  
  5065  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps) GotenObjectExt() {}
  5066  
  5067  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask {
  5068  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask()
  5069  }
  5070  
  5071  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps) MakeRawFullFieldMask() gotenobject.FieldMask {
  5072  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask()
  5073  }
  5074  
  5075  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask {
  5076  	if o == nil && other == nil {
  5077  		return &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask{}
  5078  	}
  5079  	if o == nil || other == nil {
  5080  		return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask()
  5081  	}
  5082  
  5083  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps_FieldMask{}
  5084  	{
  5085  		subMask := o.GetInitialBearer().MakeDiffFieldMask(other.GetInitialBearer())
  5086  		if subMask.IsFull() {
  5087  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelectorInitialBearer})
  5088  		} else {
  5089  			for _, subpath := range subMask.Paths {
  5090  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelectorInitialBearer, subPath: subpath})
  5091  			}
  5092  		}
  5093  	}
  5094  	if o.GetUeModeOperation() != other.GetUeModeOperation() {
  5095  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusEps_FieldPathSelectorUeModeOperation})
  5096  	}
  5097  	return res
  5098  }
  5099  
  5100  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  5101  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps))
  5102  }
  5103  
  5104  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps) Clone() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps {
  5105  	if o == nil {
  5106  		return nil
  5107  	}
  5108  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps{}
  5109  	result.InitialBearer = o.InitialBearer.Clone()
  5110  	result.UeModeOperation = o.UeModeOperation
  5111  	return result
  5112  }
  5113  
  5114  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps) CloneRaw() gotenobject.GotenObjectExt {
  5115  	return o.Clone()
  5116  }
  5117  
  5118  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps) Merge(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps) {
  5119  	if source.GetInitialBearer() != nil {
  5120  		if o.InitialBearer == nil {
  5121  			o.InitialBearer = new(Device_Status_DeviceInfo_HardwareInformation_ModemStatus_InitialBearer)
  5122  		}
  5123  		o.InitialBearer.Merge(source.GetInitialBearer())
  5124  	}
  5125  	o.UeModeOperation = source.GetUeModeOperation()
  5126  }
  5127  
  5128  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps) MergeRaw(source gotenobject.GotenObjectExt) {
  5129  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps))
  5130  }
  5131  
  5132  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp) GotenObjectExt() {}
  5133  
  5134  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask {
  5135  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask()
  5136  }
  5137  
  5138  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp) MakeRawFullFieldMask() gotenobject.FieldMask {
  5139  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask()
  5140  }
  5141  
  5142  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask {
  5143  	if o == nil && other == nil {
  5144  		return &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask{}
  5145  	}
  5146  	if o == nil || other == nil {
  5147  		return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask()
  5148  	}
  5149  
  5150  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp_FieldMask{}
  5151  	{
  5152  		subMask := o.GetFivegNr().MakeDiffFieldMask(other.GetFivegNr())
  5153  		if subMask.IsFull() {
  5154  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorFivegNr})
  5155  		} else {
  5156  			for _, subpath := range subMask.Paths {
  5157  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorFivegNr, subPath: subpath})
  5158  			}
  5159  		}
  5160  	}
  5161  
  5162  	if len(o.GetEnabledLocks()) == len(other.GetEnabledLocks()) {
  5163  		for i, lValue := range o.GetEnabledLocks() {
  5164  			rValue := other.GetEnabledLocks()[i]
  5165  			if lValue != rValue {
  5166  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorEnabledLocks})
  5167  				break
  5168  			}
  5169  		}
  5170  	} else {
  5171  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorEnabledLocks})
  5172  	}
  5173  	{
  5174  		subMask := o.GetEps().MakeDiffFieldMask(other.GetEps())
  5175  		if subMask.IsFull() {
  5176  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorEps})
  5177  		} else {
  5178  			for _, subpath := range subMask.Paths {
  5179  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorEps, subPath: subpath})
  5180  			}
  5181  		}
  5182  	}
  5183  	if o.GetImei() != other.GetImei() {
  5184  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorImei})
  5185  	}
  5186  	if o.GetOperatorCode() != other.GetOperatorCode() {
  5187  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorOperatorCode})
  5188  	}
  5189  	if o.GetOperatorName() != other.GetOperatorName() {
  5190  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorOperatorName})
  5191  	}
  5192  	if o.GetPacketServiceState() != other.GetPacketServiceState() {
  5193  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorPacketServiceState})
  5194  	}
  5195  	if o.GetPco() != other.GetPco() {
  5196  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorPco})
  5197  	}
  5198  	if o.GetRegistrationState() != other.GetRegistrationState() {
  5199  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusThreeGpp_FieldPathSelectorRegistrationState})
  5200  	}
  5201  	return res
  5202  }
  5203  
  5204  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  5205  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp))
  5206  }
  5207  
  5208  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp) Clone() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp {
  5209  	if o == nil {
  5210  		return nil
  5211  	}
  5212  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp{}
  5213  	result.FivegNr = o.FivegNr.Clone()
  5214  	result.EnabledLocks = make([]string, len(o.EnabledLocks))
  5215  	for i, sourceValue := range o.EnabledLocks {
  5216  		result.EnabledLocks[i] = sourceValue
  5217  	}
  5218  	result.Eps = o.Eps.Clone()
  5219  	result.Imei = o.Imei
  5220  	result.OperatorCode = o.OperatorCode
  5221  	result.OperatorName = o.OperatorName
  5222  	result.PacketServiceState = o.PacketServiceState
  5223  	result.Pco = o.Pco
  5224  	result.RegistrationState = o.RegistrationState
  5225  	return result
  5226  }
  5227  
  5228  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp) CloneRaw() gotenobject.GotenObjectExt {
  5229  	return o.Clone()
  5230  }
  5231  
  5232  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp) Merge(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp) {
  5233  	if source.GetFivegNr() != nil {
  5234  		if o.FivegNr == nil {
  5235  			o.FivegNr = new(Device_Status_DeviceInfo_HardwareInformation_ModemStatus_FiveGNr)
  5236  		}
  5237  		o.FivegNr.Merge(source.GetFivegNr())
  5238  	}
  5239  	for _, sourceValue := range source.GetEnabledLocks() {
  5240  		exists := false
  5241  		for _, currentValue := range o.EnabledLocks {
  5242  			if currentValue == sourceValue {
  5243  				exists = true
  5244  				break
  5245  			}
  5246  		}
  5247  		if !exists {
  5248  			var newDstElement string
  5249  			newDstElement = sourceValue
  5250  			o.EnabledLocks = append(o.EnabledLocks, newDstElement)
  5251  		}
  5252  	}
  5253  
  5254  	if source.GetEps() != nil {
  5255  		if o.Eps == nil {
  5256  			o.Eps = new(Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Eps)
  5257  		}
  5258  		o.Eps.Merge(source.GetEps())
  5259  	}
  5260  	o.Imei = source.GetImei()
  5261  	o.OperatorCode = source.GetOperatorCode()
  5262  	o.OperatorName = source.GetOperatorName()
  5263  	o.PacketServiceState = source.GetPacketServiceState()
  5264  	o.Pco = source.GetPco()
  5265  	o.RegistrationState = source.GetRegistrationState()
  5266  }
  5267  
  5268  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp) MergeRaw(source gotenobject.GotenObjectExt) {
  5269  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp))
  5270  }
  5271  
  5272  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma) GotenObjectExt() {}
  5273  
  5274  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask {
  5275  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask()
  5276  }
  5277  
  5278  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma) MakeRawFullFieldMask() gotenobject.FieldMask {
  5279  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask()
  5280  }
  5281  
  5282  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask {
  5283  	if o == nil && other == nil {
  5284  		return &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask{}
  5285  	}
  5286  	if o == nil || other == nil {
  5287  		return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask()
  5288  	}
  5289  
  5290  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma_FieldMask{}
  5291  	if o.GetActivationState() != other.GetActivationState() {
  5292  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorActivationState})
  5293  	}
  5294  	if o.GetCdma1XRegistrationState() != other.GetCdma1XRegistrationState() {
  5295  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorCdma1xRegistrationState})
  5296  	}
  5297  	if o.GetEsn() != other.GetEsn() {
  5298  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorEsn})
  5299  	}
  5300  	if o.GetEvdoRegistrationState() != other.GetEvdoRegistrationState() {
  5301  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorEvdoRegistrationState})
  5302  	}
  5303  	if o.GetMeid() != other.GetMeid() {
  5304  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorMeid})
  5305  	}
  5306  	if o.GetNid() != other.GetNid() {
  5307  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorNid})
  5308  	}
  5309  	if o.GetSid() != other.GetSid() {
  5310  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusCdma_FieldPathSelectorSid})
  5311  	}
  5312  	return res
  5313  }
  5314  
  5315  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  5316  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma))
  5317  }
  5318  
  5319  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma) Clone() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma {
  5320  	if o == nil {
  5321  		return nil
  5322  	}
  5323  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma{}
  5324  	result.ActivationState = o.ActivationState
  5325  	result.Cdma1XRegistrationState = o.Cdma1XRegistrationState
  5326  	result.Esn = o.Esn
  5327  	result.EvdoRegistrationState = o.EvdoRegistrationState
  5328  	result.Meid = o.Meid
  5329  	result.Nid = o.Nid
  5330  	result.Sid = o.Sid
  5331  	return result
  5332  }
  5333  
  5334  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma) CloneRaw() gotenobject.GotenObjectExt {
  5335  	return o.Clone()
  5336  }
  5337  
  5338  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma) Merge(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma) {
  5339  	o.ActivationState = source.GetActivationState()
  5340  	o.Cdma1XRegistrationState = source.GetCdma1XRegistrationState()
  5341  	o.Esn = source.GetEsn()
  5342  	o.EvdoRegistrationState = source.GetEvdoRegistrationState()
  5343  	o.Meid = source.GetMeid()
  5344  	o.Nid = source.GetNid()
  5345  	o.Sid = source.GetSid()
  5346  }
  5347  
  5348  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma) MergeRaw(source gotenobject.GotenObjectExt) {
  5349  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma))
  5350  }
  5351  
  5352  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality) GotenObjectExt() {}
  5353  
  5354  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask {
  5355  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask()
  5356  }
  5357  
  5358  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality) MakeRawFullFieldMask() gotenobject.FieldMask {
  5359  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask()
  5360  }
  5361  
  5362  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask {
  5363  	if o == nil && other == nil {
  5364  		return &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask{}
  5365  	}
  5366  	if o == nil || other == nil {
  5367  		return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask()
  5368  	}
  5369  
  5370  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality_FieldMask{}
  5371  	if o.GetRecent() != other.GetRecent() {
  5372  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPathSelectorRecent})
  5373  	}
  5374  	if o.GetValue() != other.GetValue() {
  5375  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSignalQuality_FieldPathSelectorValue})
  5376  	}
  5377  	return res
  5378  }
  5379  
  5380  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  5381  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality))
  5382  }
  5383  
  5384  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality) Clone() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality {
  5385  	if o == nil {
  5386  		return nil
  5387  	}
  5388  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality{}
  5389  	result.Recent = o.Recent
  5390  	result.Value = o.Value
  5391  	return result
  5392  }
  5393  
  5394  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality) CloneRaw() gotenobject.GotenObjectExt {
  5395  	return o.Clone()
  5396  }
  5397  
  5398  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality) Merge(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality) {
  5399  	o.Recent = source.GetRecent()
  5400  	o.Value = source.GetValue()
  5401  }
  5402  
  5403  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality) MergeRaw(source gotenobject.GotenObjectExt) {
  5404  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality))
  5405  }
  5406  
  5407  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic) GotenObjectExt() {}
  5408  
  5409  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask {
  5410  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask()
  5411  }
  5412  
  5413  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic) MakeRawFullFieldMask() gotenobject.FieldMask {
  5414  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask()
  5415  }
  5416  
  5417  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask {
  5418  	if o == nil && other == nil {
  5419  		return &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask{}
  5420  	}
  5421  	if o == nil || other == nil {
  5422  		return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask()
  5423  	}
  5424  
  5425  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic_FieldMask{}
  5426  
  5427  	if len(o.GetAccessTechnologies()) == len(other.GetAccessTechnologies()) {
  5428  		for i, lValue := range o.GetAccessTechnologies() {
  5429  			rValue := other.GetAccessTechnologies()[i]
  5430  			if lValue != rValue {
  5431  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorAccessTechnologies})
  5432  				break
  5433  			}
  5434  		}
  5435  	} else {
  5436  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorAccessTechnologies})
  5437  	}
  5438  
  5439  	if len(o.GetBearers()) == len(other.GetBearers()) {
  5440  		for i, lValue := range o.GetBearers() {
  5441  			rValue := other.GetBearers()[i]
  5442  			if lValue != rValue {
  5443  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorBearers})
  5444  				break
  5445  			}
  5446  		}
  5447  	} else {
  5448  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorBearers})
  5449  	}
  5450  	if o.GetCarrierConfiguration() != other.GetCarrierConfiguration() {
  5451  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCarrierConfiguration})
  5452  	}
  5453  	if o.GetCarrierConfigurationRevision() != other.GetCarrierConfigurationRevision() {
  5454  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCarrierConfigurationRevision})
  5455  	}
  5456  
  5457  	if len(o.GetCurrentBands()) == len(other.GetCurrentBands()) {
  5458  		for i, lValue := range o.GetCurrentBands() {
  5459  			rValue := other.GetCurrentBands()[i]
  5460  			if lValue != rValue {
  5461  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCurrentBands})
  5462  				break
  5463  			}
  5464  		}
  5465  	} else {
  5466  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCurrentBands})
  5467  	}
  5468  
  5469  	if len(o.GetCurrentCapabilities()) == len(other.GetCurrentCapabilities()) {
  5470  		for i, lValue := range o.GetCurrentCapabilities() {
  5471  			rValue := other.GetCurrentCapabilities()[i]
  5472  			if lValue != rValue {
  5473  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCurrentCapabilities})
  5474  				break
  5475  			}
  5476  		}
  5477  	} else {
  5478  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCurrentCapabilities})
  5479  	}
  5480  	if o.GetCurrentModes() != other.GetCurrentModes() {
  5481  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorCurrentModes})
  5482  	}
  5483  	if o.GetDevice() != other.GetDevice() {
  5484  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorDevice})
  5485  	}
  5486  	if o.GetDeviceIdentifier() != other.GetDeviceIdentifier() {
  5487  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorDeviceIdentifier})
  5488  	}
  5489  
  5490  	if len(o.GetDrivers()) == len(other.GetDrivers()) {
  5491  		for i, lValue := range o.GetDrivers() {
  5492  			rValue := other.GetDrivers()[i]
  5493  			if lValue != rValue {
  5494  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorDrivers})
  5495  				break
  5496  			}
  5497  		}
  5498  	} else {
  5499  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorDrivers})
  5500  	}
  5501  	if o.GetEquipmentIdentifier() != other.GetEquipmentIdentifier() {
  5502  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorEquipmentIdentifier})
  5503  	}
  5504  	if o.GetHardwareRevision() != other.GetHardwareRevision() {
  5505  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorHardwareRevision})
  5506  	}
  5507  	if o.GetManufacturer() != other.GetManufacturer() {
  5508  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorManufacturer})
  5509  	}
  5510  	if o.GetModel() != other.GetModel() {
  5511  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorModel})
  5512  	}
  5513  
  5514  	if len(o.GetOwnNumbers()) == len(other.GetOwnNumbers()) {
  5515  		for i, lValue := range o.GetOwnNumbers() {
  5516  			rValue := other.GetOwnNumbers()[i]
  5517  			if lValue != rValue {
  5518  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorOwnNumbers})
  5519  				break
  5520  			}
  5521  		}
  5522  	} else {
  5523  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorOwnNumbers})
  5524  	}
  5525  	if o.GetPlugin() != other.GetPlugin() {
  5526  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPlugin})
  5527  	}
  5528  
  5529  	if len(o.GetPorts()) == len(other.GetPorts()) {
  5530  		for i, lValue := range o.GetPorts() {
  5531  			rValue := other.GetPorts()[i]
  5532  			if lValue != rValue {
  5533  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPorts})
  5534  				break
  5535  			}
  5536  		}
  5537  	} else {
  5538  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPorts})
  5539  	}
  5540  	if o.GetPowerState() != other.GetPowerState() {
  5541  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPowerState})
  5542  	}
  5543  	if o.GetPrimaryPort() != other.GetPrimaryPort() {
  5544  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPrimaryPort})
  5545  	}
  5546  	if o.GetPrimarySimSlot() != other.GetPrimarySimSlot() {
  5547  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorPrimarySimSlot})
  5548  	}
  5549  	if o.GetRevision() != other.GetRevision() {
  5550  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorRevision})
  5551  	}
  5552  	{
  5553  		subMask := o.GetSignalQuality().MakeDiffFieldMask(other.GetSignalQuality())
  5554  		if subMask.IsFull() {
  5555  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSignalQuality})
  5556  		} else {
  5557  			for _, subpath := range subMask.Paths {
  5558  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSignalQuality, subPath: subpath})
  5559  			}
  5560  		}
  5561  	}
  5562  	if o.GetSim() != other.GetSim() {
  5563  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSim})
  5564  	}
  5565  
  5566  	if len(o.GetSimSlots()) == len(other.GetSimSlots()) {
  5567  		for i, lValue := range o.GetSimSlots() {
  5568  			rValue := other.GetSimSlots()[i]
  5569  			if lValue != rValue {
  5570  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSimSlots})
  5571  				break
  5572  			}
  5573  		}
  5574  	} else {
  5575  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSimSlots})
  5576  	}
  5577  	if o.GetState() != other.GetState() {
  5578  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorState})
  5579  	}
  5580  	if o.GetStateFailedReason() != other.GetStateFailedReason() {
  5581  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorStateFailedReason})
  5582  	}
  5583  
  5584  	if len(o.GetSupportedBands()) == len(other.GetSupportedBands()) {
  5585  		for i, lValue := range o.GetSupportedBands() {
  5586  			rValue := other.GetSupportedBands()[i]
  5587  			if lValue != rValue {
  5588  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedBands})
  5589  				break
  5590  			}
  5591  		}
  5592  	} else {
  5593  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedBands})
  5594  	}
  5595  
  5596  	if len(o.GetSupportedCapabilities()) == len(other.GetSupportedCapabilities()) {
  5597  		for i, lValue := range o.GetSupportedCapabilities() {
  5598  			rValue := other.GetSupportedCapabilities()[i]
  5599  			if lValue != rValue {
  5600  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedCapabilities})
  5601  				break
  5602  			}
  5603  		}
  5604  	} else {
  5605  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedCapabilities})
  5606  	}
  5607  
  5608  	if len(o.GetSupportedIpFamilies()) == len(other.GetSupportedIpFamilies()) {
  5609  		for i, lValue := range o.GetSupportedIpFamilies() {
  5610  			rValue := other.GetSupportedIpFamilies()[i]
  5611  			if lValue != rValue {
  5612  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedIpFamilies})
  5613  				break
  5614  			}
  5615  		}
  5616  	} else {
  5617  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedIpFamilies})
  5618  	}
  5619  
  5620  	if len(o.GetSupportedModes()) == len(other.GetSupportedModes()) {
  5621  		for i, lValue := range o.GetSupportedModes() {
  5622  			rValue := other.GetSupportedModes()[i]
  5623  			if lValue != rValue {
  5624  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedModes})
  5625  				break
  5626  			}
  5627  		}
  5628  	} else {
  5629  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorSupportedModes})
  5630  	}
  5631  	if o.GetUnlockRequired() != other.GetUnlockRequired() {
  5632  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorUnlockRequired})
  5633  	}
  5634  
  5635  	if len(o.GetUnlockRetries()) == len(other.GetUnlockRetries()) {
  5636  		for i, lValue := range o.GetUnlockRetries() {
  5637  			rValue := other.GetUnlockRetries()[i]
  5638  			if lValue != rValue {
  5639  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorUnlockRetries})
  5640  				break
  5641  			}
  5642  		}
  5643  	} else {
  5644  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusGeneric_FieldPathSelectorUnlockRetries})
  5645  	}
  5646  	return res
  5647  }
  5648  
  5649  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  5650  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic))
  5651  }
  5652  
  5653  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic) Clone() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic {
  5654  	if o == nil {
  5655  		return nil
  5656  	}
  5657  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic{}
  5658  	result.AccessTechnologies = make([]string, len(o.AccessTechnologies))
  5659  	for i, sourceValue := range o.AccessTechnologies {
  5660  		result.AccessTechnologies[i] = sourceValue
  5661  	}
  5662  	result.Bearers = make([]string, len(o.Bearers))
  5663  	for i, sourceValue := range o.Bearers {
  5664  		result.Bearers[i] = sourceValue
  5665  	}
  5666  	result.CarrierConfiguration = o.CarrierConfiguration
  5667  	result.CarrierConfigurationRevision = o.CarrierConfigurationRevision
  5668  	result.CurrentBands = make([]string, len(o.CurrentBands))
  5669  	for i, sourceValue := range o.CurrentBands {
  5670  		result.CurrentBands[i] = sourceValue
  5671  	}
  5672  	result.CurrentCapabilities = make([]string, len(o.CurrentCapabilities))
  5673  	for i, sourceValue := range o.CurrentCapabilities {
  5674  		result.CurrentCapabilities[i] = sourceValue
  5675  	}
  5676  	result.CurrentModes = o.CurrentModes
  5677  	result.Device = o.Device
  5678  	result.DeviceIdentifier = o.DeviceIdentifier
  5679  	result.Drivers = make([]string, len(o.Drivers))
  5680  	for i, sourceValue := range o.Drivers {
  5681  		result.Drivers[i] = sourceValue
  5682  	}
  5683  	result.EquipmentIdentifier = o.EquipmentIdentifier
  5684  	result.HardwareRevision = o.HardwareRevision
  5685  	result.Manufacturer = o.Manufacturer
  5686  	result.Model = o.Model
  5687  	result.OwnNumbers = make([]string, len(o.OwnNumbers))
  5688  	for i, sourceValue := range o.OwnNumbers {
  5689  		result.OwnNumbers[i] = sourceValue
  5690  	}
  5691  	result.Plugin = o.Plugin
  5692  	result.Ports = make([]string, len(o.Ports))
  5693  	for i, sourceValue := range o.Ports {
  5694  		result.Ports[i] = sourceValue
  5695  	}
  5696  	result.PowerState = o.PowerState
  5697  	result.PrimaryPort = o.PrimaryPort
  5698  	result.PrimarySimSlot = o.PrimarySimSlot
  5699  	result.Revision = o.Revision
  5700  	result.SignalQuality = o.SignalQuality.Clone()
  5701  	result.Sim = o.Sim
  5702  	result.SimSlots = make([]string, len(o.SimSlots))
  5703  	for i, sourceValue := range o.SimSlots {
  5704  		result.SimSlots[i] = sourceValue
  5705  	}
  5706  	result.State = o.State
  5707  	result.StateFailedReason = o.StateFailedReason
  5708  	result.SupportedBands = make([]string, len(o.SupportedBands))
  5709  	for i, sourceValue := range o.SupportedBands {
  5710  		result.SupportedBands[i] = sourceValue
  5711  	}
  5712  	result.SupportedCapabilities = make([]string, len(o.SupportedCapabilities))
  5713  	for i, sourceValue := range o.SupportedCapabilities {
  5714  		result.SupportedCapabilities[i] = sourceValue
  5715  	}
  5716  	result.SupportedIpFamilies = make([]string, len(o.SupportedIpFamilies))
  5717  	for i, sourceValue := range o.SupportedIpFamilies {
  5718  		result.SupportedIpFamilies[i] = sourceValue
  5719  	}
  5720  	result.SupportedModes = make([]string, len(o.SupportedModes))
  5721  	for i, sourceValue := range o.SupportedModes {
  5722  		result.SupportedModes[i] = sourceValue
  5723  	}
  5724  	result.UnlockRequired = o.UnlockRequired
  5725  	result.UnlockRetries = make([]string, len(o.UnlockRetries))
  5726  	for i, sourceValue := range o.UnlockRetries {
  5727  		result.UnlockRetries[i] = sourceValue
  5728  	}
  5729  	return result
  5730  }
  5731  
  5732  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic) CloneRaw() gotenobject.GotenObjectExt {
  5733  	return o.Clone()
  5734  }
  5735  
  5736  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic) Merge(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic) {
  5737  	for _, sourceValue := range source.GetAccessTechnologies() {
  5738  		exists := false
  5739  		for _, currentValue := range o.AccessTechnologies {
  5740  			if currentValue == sourceValue {
  5741  				exists = true
  5742  				break
  5743  			}
  5744  		}
  5745  		if !exists {
  5746  			var newDstElement string
  5747  			newDstElement = sourceValue
  5748  			o.AccessTechnologies = append(o.AccessTechnologies, newDstElement)
  5749  		}
  5750  	}
  5751  
  5752  	for _, sourceValue := range source.GetBearers() {
  5753  		exists := false
  5754  		for _, currentValue := range o.Bearers {
  5755  			if currentValue == sourceValue {
  5756  				exists = true
  5757  				break
  5758  			}
  5759  		}
  5760  		if !exists {
  5761  			var newDstElement string
  5762  			newDstElement = sourceValue
  5763  			o.Bearers = append(o.Bearers, newDstElement)
  5764  		}
  5765  	}
  5766  
  5767  	o.CarrierConfiguration = source.GetCarrierConfiguration()
  5768  	o.CarrierConfigurationRevision = source.GetCarrierConfigurationRevision()
  5769  	for _, sourceValue := range source.GetCurrentBands() {
  5770  		exists := false
  5771  		for _, currentValue := range o.CurrentBands {
  5772  			if currentValue == sourceValue {
  5773  				exists = true
  5774  				break
  5775  			}
  5776  		}
  5777  		if !exists {
  5778  			var newDstElement string
  5779  			newDstElement = sourceValue
  5780  			o.CurrentBands = append(o.CurrentBands, newDstElement)
  5781  		}
  5782  	}
  5783  
  5784  	for _, sourceValue := range source.GetCurrentCapabilities() {
  5785  		exists := false
  5786  		for _, currentValue := range o.CurrentCapabilities {
  5787  			if currentValue == sourceValue {
  5788  				exists = true
  5789  				break
  5790  			}
  5791  		}
  5792  		if !exists {
  5793  			var newDstElement string
  5794  			newDstElement = sourceValue
  5795  			o.CurrentCapabilities = append(o.CurrentCapabilities, newDstElement)
  5796  		}
  5797  	}
  5798  
  5799  	o.CurrentModes = source.GetCurrentModes()
  5800  	o.Device = source.GetDevice()
  5801  	o.DeviceIdentifier = source.GetDeviceIdentifier()
  5802  	for _, sourceValue := range source.GetDrivers() {
  5803  		exists := false
  5804  		for _, currentValue := range o.Drivers {
  5805  			if currentValue == sourceValue {
  5806  				exists = true
  5807  				break
  5808  			}
  5809  		}
  5810  		if !exists {
  5811  			var newDstElement string
  5812  			newDstElement = sourceValue
  5813  			o.Drivers = append(o.Drivers, newDstElement)
  5814  		}
  5815  	}
  5816  
  5817  	o.EquipmentIdentifier = source.GetEquipmentIdentifier()
  5818  	o.HardwareRevision = source.GetHardwareRevision()
  5819  	o.Manufacturer = source.GetManufacturer()
  5820  	o.Model = source.GetModel()
  5821  	for _, sourceValue := range source.GetOwnNumbers() {
  5822  		exists := false
  5823  		for _, currentValue := range o.OwnNumbers {
  5824  			if currentValue == sourceValue {
  5825  				exists = true
  5826  				break
  5827  			}
  5828  		}
  5829  		if !exists {
  5830  			var newDstElement string
  5831  			newDstElement = sourceValue
  5832  			o.OwnNumbers = append(o.OwnNumbers, newDstElement)
  5833  		}
  5834  	}
  5835  
  5836  	o.Plugin = source.GetPlugin()
  5837  	for _, sourceValue := range source.GetPorts() {
  5838  		exists := false
  5839  		for _, currentValue := range o.Ports {
  5840  			if currentValue == sourceValue {
  5841  				exists = true
  5842  				break
  5843  			}
  5844  		}
  5845  		if !exists {
  5846  			var newDstElement string
  5847  			newDstElement = sourceValue
  5848  			o.Ports = append(o.Ports, newDstElement)
  5849  		}
  5850  	}
  5851  
  5852  	o.PowerState = source.GetPowerState()
  5853  	o.PrimaryPort = source.GetPrimaryPort()
  5854  	o.PrimarySimSlot = source.GetPrimarySimSlot()
  5855  	o.Revision = source.GetRevision()
  5856  	if source.GetSignalQuality() != nil {
  5857  		if o.SignalQuality == nil {
  5858  			o.SignalQuality = new(Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SignalQuality)
  5859  		}
  5860  		o.SignalQuality.Merge(source.GetSignalQuality())
  5861  	}
  5862  	o.Sim = source.GetSim()
  5863  	for _, sourceValue := range source.GetSimSlots() {
  5864  		exists := false
  5865  		for _, currentValue := range o.SimSlots {
  5866  			if currentValue == sourceValue {
  5867  				exists = true
  5868  				break
  5869  			}
  5870  		}
  5871  		if !exists {
  5872  			var newDstElement string
  5873  			newDstElement = sourceValue
  5874  			o.SimSlots = append(o.SimSlots, newDstElement)
  5875  		}
  5876  	}
  5877  
  5878  	o.State = source.GetState()
  5879  	o.StateFailedReason = source.GetStateFailedReason()
  5880  	for _, sourceValue := range source.GetSupportedBands() {
  5881  		exists := false
  5882  		for _, currentValue := range o.SupportedBands {
  5883  			if currentValue == sourceValue {
  5884  				exists = true
  5885  				break
  5886  			}
  5887  		}
  5888  		if !exists {
  5889  			var newDstElement string
  5890  			newDstElement = sourceValue
  5891  			o.SupportedBands = append(o.SupportedBands, newDstElement)
  5892  		}
  5893  	}
  5894  
  5895  	for _, sourceValue := range source.GetSupportedCapabilities() {
  5896  		exists := false
  5897  		for _, currentValue := range o.SupportedCapabilities {
  5898  			if currentValue == sourceValue {
  5899  				exists = true
  5900  				break
  5901  			}
  5902  		}
  5903  		if !exists {
  5904  			var newDstElement string
  5905  			newDstElement = sourceValue
  5906  			o.SupportedCapabilities = append(o.SupportedCapabilities, newDstElement)
  5907  		}
  5908  	}
  5909  
  5910  	for _, sourceValue := range source.GetSupportedIpFamilies() {
  5911  		exists := false
  5912  		for _, currentValue := range o.SupportedIpFamilies {
  5913  			if currentValue == sourceValue {
  5914  				exists = true
  5915  				break
  5916  			}
  5917  		}
  5918  		if !exists {
  5919  			var newDstElement string
  5920  			newDstElement = sourceValue
  5921  			o.SupportedIpFamilies = append(o.SupportedIpFamilies, newDstElement)
  5922  		}
  5923  	}
  5924  
  5925  	for _, sourceValue := range source.GetSupportedModes() {
  5926  		exists := false
  5927  		for _, currentValue := range o.SupportedModes {
  5928  			if currentValue == sourceValue {
  5929  				exists = true
  5930  				break
  5931  			}
  5932  		}
  5933  		if !exists {
  5934  			var newDstElement string
  5935  			newDstElement = sourceValue
  5936  			o.SupportedModes = append(o.SupportedModes, newDstElement)
  5937  		}
  5938  	}
  5939  
  5940  	o.UnlockRequired = source.GetUnlockRequired()
  5941  	for _, sourceValue := range source.GetUnlockRetries() {
  5942  		exists := false
  5943  		for _, currentValue := range o.UnlockRetries {
  5944  			if currentValue == sourceValue {
  5945  				exists = true
  5946  				break
  5947  			}
  5948  		}
  5949  		if !exists {
  5950  			var newDstElement string
  5951  			newDstElement = sourceValue
  5952  			o.UnlockRetries = append(o.UnlockRetries, newDstElement)
  5953  		}
  5954  	}
  5955  
  5956  }
  5957  
  5958  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic) MergeRaw(source gotenobject.GotenObjectExt) {
  5959  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic))
  5960  }
  5961  
  5962  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus) GotenObjectExt() {}
  5963  
  5964  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask {
  5965  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask()
  5966  }
  5967  
  5968  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus) MakeRawFullFieldMask() gotenobject.FieldMask {
  5969  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask()
  5970  }
  5971  
  5972  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask {
  5973  	if o == nil && other == nil {
  5974  		return &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask{}
  5975  	}
  5976  	if o == nil || other == nil {
  5977  		return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask()
  5978  	}
  5979  
  5980  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus_FieldMask{}
  5981  	if o.GetDbusPath() != other.GetDbusPath() {
  5982  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorDbusPath})
  5983  	}
  5984  	if o.GetActive() != other.GetActive() {
  5985  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorActive})
  5986  	}
  5987  	if o.GetEid() != other.GetEid() {
  5988  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorEid})
  5989  	}
  5990  
  5991  	if len(o.GetEmergencyNumbers()) == len(other.GetEmergencyNumbers()) {
  5992  		for i, lValue := range o.GetEmergencyNumbers() {
  5993  			rValue := other.GetEmergencyNumbers()[i]
  5994  			if lValue != rValue {
  5995  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorEmergencyNumbers})
  5996  				break
  5997  			}
  5998  		}
  5999  	} else {
  6000  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorEmergencyNumbers})
  6001  	}
  6002  	if o.GetEsimStatus() != other.GetEsimStatus() {
  6003  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorEsimStatus})
  6004  	}
  6005  	if o.GetGid1() != other.GetGid1() {
  6006  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorGid1})
  6007  	}
  6008  	if o.GetGid2() != other.GetGid2() {
  6009  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorGid2})
  6010  	}
  6011  	if o.GetIccid() != other.GetIccid() {
  6012  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorIccid})
  6013  	}
  6014  	if o.GetImsi() != other.GetImsi() {
  6015  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorImsi})
  6016  	}
  6017  	if o.GetOperatorCode() != other.GetOperatorCode() {
  6018  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorOperatorCode})
  6019  	}
  6020  	if o.GetOperatorName() != other.GetOperatorName() {
  6021  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorOperatorName})
  6022  	}
  6023  	if o.GetRemovability() != other.GetRemovability() {
  6024  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorRemovability})
  6025  	}
  6026  	if o.GetSimType() != other.GetSimType() {
  6027  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusSimStatus_FieldPathSelectorSimType})
  6028  	}
  6029  	return res
  6030  }
  6031  
  6032  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  6033  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus))
  6034  }
  6035  
  6036  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus) Clone() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus {
  6037  	if o == nil {
  6038  		return nil
  6039  	}
  6040  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus{}
  6041  	result.DbusPath = o.DbusPath
  6042  	result.Active = o.Active
  6043  	result.Eid = o.Eid
  6044  	result.EmergencyNumbers = make([]string, len(o.EmergencyNumbers))
  6045  	for i, sourceValue := range o.EmergencyNumbers {
  6046  		result.EmergencyNumbers[i] = sourceValue
  6047  	}
  6048  	result.EsimStatus = o.EsimStatus
  6049  	result.Gid1 = o.Gid1
  6050  	result.Gid2 = o.Gid2
  6051  	result.Iccid = o.Iccid
  6052  	result.Imsi = o.Imsi
  6053  	result.OperatorCode = o.OperatorCode
  6054  	result.OperatorName = o.OperatorName
  6055  	result.Removability = o.Removability
  6056  	result.SimType = o.SimType
  6057  	return result
  6058  }
  6059  
  6060  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus) CloneRaw() gotenobject.GotenObjectExt {
  6061  	return o.Clone()
  6062  }
  6063  
  6064  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus) Merge(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus) {
  6065  	o.DbusPath = source.GetDbusPath()
  6066  	o.Active = source.GetActive()
  6067  	o.Eid = source.GetEid()
  6068  	for _, sourceValue := range source.GetEmergencyNumbers() {
  6069  		exists := false
  6070  		for _, currentValue := range o.EmergencyNumbers {
  6071  			if currentValue == sourceValue {
  6072  				exists = true
  6073  				break
  6074  			}
  6075  		}
  6076  		if !exists {
  6077  			var newDstElement string
  6078  			newDstElement = sourceValue
  6079  			o.EmergencyNumbers = append(o.EmergencyNumbers, newDstElement)
  6080  		}
  6081  	}
  6082  
  6083  	o.EsimStatus = source.GetEsimStatus()
  6084  	o.Gid1 = source.GetGid1()
  6085  	o.Gid2 = source.GetGid2()
  6086  	o.Iccid = source.GetIccid()
  6087  	o.Imsi = source.GetImsi()
  6088  	o.OperatorCode = source.GetOperatorCode()
  6089  	o.OperatorName = source.GetOperatorName()
  6090  	o.Removability = source.GetRemovability()
  6091  	o.SimType = source.GetSimType()
  6092  }
  6093  
  6094  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus) MergeRaw(source gotenobject.GotenObjectExt) {
  6095  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus))
  6096  }
  6097  
  6098  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem) GotenObjectExt() {}
  6099  
  6100  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem) MakeFullFieldMask() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask {
  6101  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask()
  6102  }
  6103  
  6104  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem) MakeRawFullFieldMask() gotenobject.FieldMask {
  6105  	return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask()
  6106  }
  6107  
  6108  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem) MakeDiffFieldMask(other *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem) *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask {
  6109  	if o == nil && other == nil {
  6110  		return &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask{}
  6111  	}
  6112  	if o == nil || other == nil {
  6113  		return FullDevice_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask()
  6114  	}
  6115  
  6116  	res := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem_FieldMask{}
  6117  	{
  6118  		subMask := o.GetThreeGPp().MakeDiffFieldMask(other.GetThreeGPp())
  6119  		if subMask.IsFull() {
  6120  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorThreeGPp})
  6121  		} else {
  6122  			for _, subpath := range subMask.Paths {
  6123  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorThreeGPp, subPath: subpath})
  6124  			}
  6125  		}
  6126  	}
  6127  	{
  6128  		subMask := o.GetCdma().MakeDiffFieldMask(other.GetCdma())
  6129  		if subMask.IsFull() {
  6130  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorCdma})
  6131  		} else {
  6132  			for _, subpath := range subMask.Paths {
  6133  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorCdma, subPath: subpath})
  6134  			}
  6135  		}
  6136  	}
  6137  	if o.GetDbusPath() != other.GetDbusPath() {
  6138  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorDbusPath})
  6139  	}
  6140  	{
  6141  		subMask := o.GetGeneric().MakeDiffFieldMask(other.GetGeneric())
  6142  		if subMask.IsFull() {
  6143  			res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorGeneric})
  6144  		} else {
  6145  			for _, subpath := range subMask.Paths {
  6146  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldSubPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorGeneric, subPath: subpath})
  6147  			}
  6148  		}
  6149  	}
  6150  
  6151  	if len(o.GetSimStatus()) == len(other.GetSimStatus()) {
  6152  		for i, lValue := range o.GetSimStatus() {
  6153  			rValue := other.GetSimStatus()[i]
  6154  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  6155  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorSimStatus})
  6156  				break
  6157  			}
  6158  		}
  6159  	} else {
  6160  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldTerminalPath{selector: DeviceStatusDeviceInfoHardwareInformationModemStatusModem_FieldPathSelectorSimStatus})
  6161  	}
  6162  	return res
  6163  }
  6164  
  6165  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  6166  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem))
  6167  }
  6168  
  6169  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem) Clone() *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem {
  6170  	if o == nil {
  6171  		return nil
  6172  	}
  6173  	result := &Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem{}
  6174  	result.ThreeGPp = o.ThreeGPp.Clone()
  6175  	result.Cdma = o.Cdma.Clone()
  6176  	result.DbusPath = o.DbusPath
  6177  	result.Generic = o.Generic.Clone()
  6178  	result.SimStatus = map[string]*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus{}
  6179  	for key, sourceValue := range o.SimStatus {
  6180  		result.SimStatus[key] = sourceValue.Clone()
  6181  	}
  6182  	return result
  6183  }
  6184  
  6185  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem) CloneRaw() gotenobject.GotenObjectExt {
  6186  	return o.Clone()
  6187  }
  6188  
  6189  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem) Merge(source *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem) {
  6190  	if source.GetThreeGPp() != nil {
  6191  		if o.ThreeGPp == nil {
  6192  			o.ThreeGPp = new(Device_Status_DeviceInfo_HardwareInformation_ModemStatus_ThreeGpp)
  6193  		}
  6194  		o.ThreeGPp.Merge(source.GetThreeGPp())
  6195  	}
  6196  	if source.GetCdma() != nil {
  6197  		if o.Cdma == nil {
  6198  			o.Cdma = new(Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Cdma)
  6199  		}
  6200  		o.Cdma.Merge(source.GetCdma())
  6201  	}
  6202  	o.DbusPath = source.GetDbusPath()
  6203  	if source.GetGeneric() != nil {
  6204  		if o.Generic == nil {
  6205  			o.Generic = new(Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Generic)
  6206  		}
  6207  		o.Generic.Merge(source.GetGeneric())
  6208  	}
  6209  	if source.GetSimStatus() != nil {
  6210  		if o.SimStatus == nil {
  6211  			o.SimStatus = make(map[string]*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus, len(source.GetSimStatus()))
  6212  		}
  6213  		for key, sourceValue := range source.GetSimStatus() {
  6214  			if sourceValue != nil {
  6215  				if o.SimStatus[key] == nil {
  6216  					o.SimStatus[key] = new(Device_Status_DeviceInfo_HardwareInformation_ModemStatus_SimStatus)
  6217  				}
  6218  				o.SimStatus[key].Merge(sourceValue)
  6219  			}
  6220  		}
  6221  	}
  6222  }
  6223  
  6224  func (o *Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem) MergeRaw(source gotenobject.GotenObjectExt) {
  6225  	o.Merge(source.(*Device_Status_DeviceInfo_HardwareInformation_ModemStatus_Modem))
  6226  }
  6227  
  6228  func (o *Device_Status_DeviceInfo_NetworkInterface_ASInfo) GotenObjectExt() {}
  6229  
  6230  func (o *Device_Status_DeviceInfo_NetworkInterface_ASInfo) MakeFullFieldMask() *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask {
  6231  	return FullDevice_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask()
  6232  }
  6233  
  6234  func (o *Device_Status_DeviceInfo_NetworkInterface_ASInfo) MakeRawFullFieldMask() gotenobject.FieldMask {
  6235  	return FullDevice_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask()
  6236  }
  6237  
  6238  func (o *Device_Status_DeviceInfo_NetworkInterface_ASInfo) MakeDiffFieldMask(other *Device_Status_DeviceInfo_NetworkInterface_ASInfo) *Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask {
  6239  	if o == nil && other == nil {
  6240  		return &Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask{}
  6241  	}
  6242  	if o == nil || other == nil {
  6243  		return FullDevice_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask()
  6244  	}
  6245  
  6246  	res := &Device_Status_DeviceInfo_NetworkInterface_ASInfo_FieldMask{}
  6247  	if o.GetAsn() != other.GetAsn() {
  6248  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorAsn})
  6249  	}
  6250  	if o.GetName() != other.GetName() {
  6251  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorName})
  6252  	}
  6253  	if o.GetDomain() != other.GetDomain() {
  6254  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorDomain})
  6255  	}
  6256  
  6257  	if len(o.GetRoutes()) == len(other.GetRoutes()) {
  6258  		for i, lValue := range o.GetRoutes() {
  6259  			rValue := other.GetRoutes()[i]
  6260  			if lValue != rValue {
  6261  				res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorRoutes})
  6262  				break
  6263  			}
  6264  		}
  6265  	} else {
  6266  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorRoutes})
  6267  	}
  6268  	if o.GetAsnType() != other.GetAsnType() {
  6269  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceASInfo_FieldPathSelectorAsnType})
  6270  	}
  6271  	return res
  6272  }
  6273  
  6274  func (o *Device_Status_DeviceInfo_NetworkInterface_ASInfo) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  6275  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_NetworkInterface_ASInfo))
  6276  }
  6277  
  6278  func (o *Device_Status_DeviceInfo_NetworkInterface_ASInfo) Clone() *Device_Status_DeviceInfo_NetworkInterface_ASInfo {
  6279  	if o == nil {
  6280  		return nil
  6281  	}
  6282  	result := &Device_Status_DeviceInfo_NetworkInterface_ASInfo{}
  6283  	result.Asn = o.Asn
  6284  	result.Name = o.Name
  6285  	result.Domain = o.Domain
  6286  	result.Routes = make([]string, len(o.Routes))
  6287  	for i, sourceValue := range o.Routes {
  6288  		result.Routes[i] = sourceValue
  6289  	}
  6290  	result.AsnType = o.AsnType
  6291  	return result
  6292  }
  6293  
  6294  func (o *Device_Status_DeviceInfo_NetworkInterface_ASInfo) CloneRaw() gotenobject.GotenObjectExt {
  6295  	return o.Clone()
  6296  }
  6297  
  6298  func (o *Device_Status_DeviceInfo_NetworkInterface_ASInfo) Merge(source *Device_Status_DeviceInfo_NetworkInterface_ASInfo) {
  6299  	o.Asn = source.GetAsn()
  6300  	o.Name = source.GetName()
  6301  	o.Domain = source.GetDomain()
  6302  	for _, sourceValue := range source.GetRoutes() {
  6303  		exists := false
  6304  		for _, currentValue := range o.Routes {
  6305  			if currentValue == sourceValue {
  6306  				exists = true
  6307  				break
  6308  			}
  6309  		}
  6310  		if !exists {
  6311  			var newDstElement string
  6312  			newDstElement = sourceValue
  6313  			o.Routes = append(o.Routes, newDstElement)
  6314  		}
  6315  	}
  6316  
  6317  	o.AsnType = source.GetAsnType()
  6318  }
  6319  
  6320  func (o *Device_Status_DeviceInfo_NetworkInterface_ASInfo) MergeRaw(source gotenobject.GotenObjectExt) {
  6321  	o.Merge(source.(*Device_Status_DeviceInfo_NetworkInterface_ASInfo))
  6322  }
  6323  
  6324  func (o *Device_Status_DeviceInfo_NetworkInterface_Carrier) GotenObjectExt() {}
  6325  
  6326  func (o *Device_Status_DeviceInfo_NetworkInterface_Carrier) MakeFullFieldMask() *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask {
  6327  	return FullDevice_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask()
  6328  }
  6329  
  6330  func (o *Device_Status_DeviceInfo_NetworkInterface_Carrier) MakeRawFullFieldMask() gotenobject.FieldMask {
  6331  	return FullDevice_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask()
  6332  }
  6333  
  6334  func (o *Device_Status_DeviceInfo_NetworkInterface_Carrier) MakeDiffFieldMask(other *Device_Status_DeviceInfo_NetworkInterface_Carrier) *Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask {
  6335  	if o == nil && other == nil {
  6336  		return &Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask{}
  6337  	}
  6338  	if o == nil || other == nil {
  6339  		return FullDevice_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask()
  6340  	}
  6341  
  6342  	res := &Device_Status_DeviceInfo_NetworkInterface_Carrier_FieldMask{}
  6343  	if o.GetName() != other.GetName() {
  6344  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPathSelectorName})
  6345  	}
  6346  	if o.GetMobileCountryCode() != other.GetMobileCountryCode() {
  6347  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPathSelectorMobileCountryCode})
  6348  	}
  6349  	if o.GetMobileNetworkCode() != other.GetMobileNetworkCode() {
  6350  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPathSelectorMobileNetworkCode})
  6351  	}
  6352  	if o.GetLocationAreaCode() != other.GetLocationAreaCode() {
  6353  		res.Paths = append(res.Paths, &DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldTerminalPath{selector: DeviceStatusDeviceInfoNetworkInterfaceCarrier_FieldPathSelectorLocationAreaCode})
  6354  	}
  6355  	return res
  6356  }
  6357  
  6358  func (o *Device_Status_DeviceInfo_NetworkInterface_Carrier) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  6359  	return o.MakeDiffFieldMask(other.(*Device_Status_DeviceInfo_NetworkInterface_Carrier))
  6360  }
  6361  
  6362  func (o *Device_Status_DeviceInfo_NetworkInterface_Carrier) Clone() *Device_Status_DeviceInfo_NetworkInterface_Carrier {
  6363  	if o == nil {
  6364  		return nil
  6365  	}
  6366  	result := &Device_Status_DeviceInfo_NetworkInterface_Carrier{}
  6367  	result.Name = o.Name
  6368  	result.MobileCountryCode = o.MobileCountryCode
  6369  	result.MobileNetworkCode = o.MobileNetworkCode
  6370  	result.LocationAreaCode = o.LocationAreaCode
  6371  	return result
  6372  }
  6373  
  6374  func (o *Device_Status_DeviceInfo_NetworkInterface_Carrier) CloneRaw() gotenobject.GotenObjectExt {
  6375  	return o.Clone()
  6376  }
  6377  
  6378  func (o *Device_Status_DeviceInfo_NetworkInterface_Carrier) Merge(source *Device_Status_DeviceInfo_NetworkInterface_Carrier) {
  6379  	o.Name = source.GetName()
  6380  	o.MobileCountryCode = source.GetMobileCountryCode()
  6381  	o.MobileNetworkCode = source.GetMobileNetworkCode()
  6382  	o.LocationAreaCode = source.GetLocationAreaCode()
  6383  }
  6384  
  6385  func (o *Device_Status_DeviceInfo_NetworkInterface_Carrier) MergeRaw(source gotenobject.GotenObjectExt) {
  6386  	o.Merge(source.(*Device_Status_DeviceInfo_NetworkInterface_Carrier))
  6387  }