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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/devices/proto/v1/device_hardware_register_session.proto
     3  // DO NOT EDIT!!!
     4  
     5  package device_hardware_register_session
     6  
     7  import (
     8  	"encoding/json"
     9  	"strings"
    10  
    11  	"google.golang.org/grpc/codes"
    12  	"google.golang.org/grpc/status"
    13  	"google.golang.org/protobuf/proto"
    14  	preflect "google.golang.org/protobuf/reflect/protoreflect"
    15  	googlefieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
    16  
    17  	gotenobject "github.com/cloudwan/goten-sdk/runtime/object"
    18  )
    19  
    20  // proto imports
    21  import (
    22  	device "github.com/cloudwan/edgelq-sdk/devices/resources/v1/device"
    23  	device_hardware "github.com/cloudwan/edgelq-sdk/devices/resources/v1/device_hardware"
    24  	project "github.com/cloudwan/edgelq-sdk/devices/resources/v1/project"
    25  	provisioning_policy "github.com/cloudwan/edgelq-sdk/devices/resources/v1/provisioning_policy"
    26  	meta "github.com/cloudwan/goten-sdk/types/meta"
    27  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    28  )
    29  
    30  // ensure the imports are used
    31  var (
    32  	_ = new(json.Marshaler)
    33  	_ = strings.Builder{}
    34  
    35  	_ = codes.NotFound
    36  	_ = status.Status{}
    37  	_ = new(proto.Message)
    38  	_ = new(preflect.Message)
    39  	_ = googlefieldmaskpb.FieldMask{}
    40  
    41  	_ = new(gotenobject.FieldMask)
    42  )
    43  
    44  // make sure we're using proto imports
    45  var (
    46  	_ = &device.Device{}
    47  	_ = &device_hardware.DeviceHardware{}
    48  	_ = &project.Project{}
    49  	_ = &provisioning_policy.ProvisioningPolicy{}
    50  	_ = &timestamppb.Timestamp{}
    51  	_ = &meta.Meta{}
    52  )
    53  
    54  type DeviceHardwareRegisterSession_FieldMask struct {
    55  	Paths []DeviceHardwareRegisterSession_FieldPath
    56  }
    57  
    58  func FullDeviceHardwareRegisterSession_FieldMask() *DeviceHardwareRegisterSession_FieldMask {
    59  	res := &DeviceHardwareRegisterSession_FieldMask{}
    60  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorName})
    61  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorDisplayName})
    62  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorMetadata})
    63  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorStartTime})
    64  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorExpirationTime})
    65  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorUserEmail})
    66  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorInviterEmail})
    67  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorLanguageCode})
    68  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorExtras})
    69  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorProvisioningPolicyName})
    70  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorDeviceName})
    71  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorSingleUse})
    72  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorToken})
    73  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSession_FieldTerminalPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorStatus})
    74  	return res
    75  }
    76  
    77  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) String() string {
    78  	if fieldMask == nil {
    79  		return "<nil>"
    80  	}
    81  	pathsStr := make([]string, 0, len(fieldMask.Paths))
    82  	for _, path := range fieldMask.Paths {
    83  		pathsStr = append(pathsStr, path.String())
    84  	}
    85  	return strings.Join(pathsStr, ", ")
    86  }
    87  
    88  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) IsFull() bool {
    89  	if fieldMask == nil {
    90  		return false
    91  	}
    92  	presentSelectors := make([]bool, 14)
    93  	for _, path := range fieldMask.Paths {
    94  		if asFinal, ok := path.(*DeviceHardwareRegisterSession_FieldTerminalPath); ok {
    95  			presentSelectors[int(asFinal.selector)] = true
    96  		}
    97  	}
    98  	for _, flag := range presentSelectors {
    99  		if !flag {
   100  			return false
   101  		}
   102  	}
   103  	return true
   104  }
   105  
   106  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) ProtoReflect() preflect.Message {
   107  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   108  		return ParseDeviceHardwareRegisterSession_FieldPath(raw)
   109  	})
   110  }
   111  
   112  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) ProtoMessage() {}
   113  
   114  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) Reset() {
   115  	if fieldMask != nil {
   116  		fieldMask.Paths = nil
   117  	}
   118  }
   119  
   120  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) Subtract(other *DeviceHardwareRegisterSession_FieldMask) *DeviceHardwareRegisterSession_FieldMask {
   121  	result := &DeviceHardwareRegisterSession_FieldMask{}
   122  	removedSelectors := make([]bool, 14)
   123  	otherSubMasks := map[DeviceHardwareRegisterSession_FieldPathSelector]gotenobject.FieldMask{
   124  		DeviceHardwareRegisterSession_FieldPathSelectorMetadata: &meta.Meta_FieldMask{},
   125  		DeviceHardwareRegisterSession_FieldPathSelectorStatus:   &DeviceHardwareRegisterSession_Status_FieldMask{},
   126  	}
   127  	mySubMasks := map[DeviceHardwareRegisterSession_FieldPathSelector]gotenobject.FieldMask{
   128  		DeviceHardwareRegisterSession_FieldPathSelectorMetadata: &meta.Meta_FieldMask{},
   129  		DeviceHardwareRegisterSession_FieldPathSelectorStatus:   &DeviceHardwareRegisterSession_Status_FieldMask{},
   130  	}
   131  
   132  	for _, path := range other.GetPaths() {
   133  		switch tp := path.(type) {
   134  		case *DeviceHardwareRegisterSession_FieldTerminalPath:
   135  			removedSelectors[int(tp.selector)] = true
   136  		case *DeviceHardwareRegisterSession_FieldSubPath:
   137  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
   138  		}
   139  	}
   140  	for _, path := range fieldMask.GetPaths() {
   141  		if !removedSelectors[int(path.Selector())] {
   142  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
   143  				if tp, ok := path.(*DeviceHardwareRegisterSession_FieldTerminalPath); ok {
   144  					switch tp.selector {
   145  					case DeviceHardwareRegisterSession_FieldPathSelectorMetadata:
   146  						mySubMasks[DeviceHardwareRegisterSession_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask()
   147  					case DeviceHardwareRegisterSession_FieldPathSelectorStatus:
   148  						mySubMasks[DeviceHardwareRegisterSession_FieldPathSelectorStatus] = FullDeviceHardwareRegisterSession_Status_FieldMask()
   149  					}
   150  				} else if tp, ok := path.(*DeviceHardwareRegisterSession_FieldSubPath); ok {
   151  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
   152  				}
   153  			} else {
   154  				result.Paths = append(result.Paths, path)
   155  			}
   156  		}
   157  	}
   158  	for selector, mySubMask := range mySubMasks {
   159  		if mySubMask.PathsCount() > 0 {
   160  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
   161  				result.Paths = append(result.Paths, &DeviceHardwareRegisterSession_FieldSubPath{selector: selector, subPath: allowedPath})
   162  			}
   163  		}
   164  	}
   165  
   166  	if len(result.Paths) == 0 {
   167  		return nil
   168  	}
   169  	return result
   170  }
   171  
   172  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   173  	return fieldMask.Subtract(other.(*DeviceHardwareRegisterSession_FieldMask))
   174  }
   175  
   176  // FilterInputFields generates copy of field paths with output_only field paths removed
   177  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) FilterInputFields() *DeviceHardwareRegisterSession_FieldMask {
   178  	result := &DeviceHardwareRegisterSession_FieldMask{}
   179  	for _, path := range fieldMask.Paths {
   180  		switch path.Selector() {
   181  		case DeviceHardwareRegisterSession_FieldPathSelectorToken:
   182  		case DeviceHardwareRegisterSession_FieldPathSelectorMetadata:
   183  			if _, ok := path.(*DeviceHardwareRegisterSession_FieldTerminalPath); ok {
   184  				for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths {
   185  					result.Paths = append(result.Paths, &DeviceHardwareRegisterSession_FieldSubPath{selector: path.Selector(), subPath: subpath})
   186  				}
   187  			} else if sub, ok := path.(*DeviceHardwareRegisterSession_FieldSubPath); ok {
   188  				selectedMask := &meta.Meta_FieldMask{
   189  					Paths: []meta.Meta_FieldPath{sub.subPath.(meta.Meta_FieldPath)},
   190  				}
   191  				for _, allowedPath := range selectedMask.FilterInputFields().Paths {
   192  					result.Paths = append(result.Paths, &DeviceHardwareRegisterSession_FieldSubPath{selector: DeviceHardwareRegisterSession_FieldPathSelectorMetadata, subPath: allowedPath})
   193  				}
   194  			}
   195  		default:
   196  			result.Paths = append(result.Paths, path)
   197  		}
   198  	}
   199  	return result
   200  }
   201  
   202  // ToFieldMask is used for proto conversions
   203  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   204  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   205  	for _, path := range fieldMask.Paths {
   206  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   207  	}
   208  	return protoFieldMask
   209  }
   210  
   211  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   212  	if fieldMask == nil {
   213  		return status.Error(codes.Internal, "target field mask is nil")
   214  	}
   215  	fieldMask.Paths = make([]DeviceHardwareRegisterSession_FieldPath, 0, len(protoFieldMask.Paths))
   216  	for _, strPath := range protoFieldMask.Paths {
   217  		path, err := ParseDeviceHardwareRegisterSession_FieldPath(strPath)
   218  		if err != nil {
   219  			return err
   220  		}
   221  		fieldMask.Paths = append(fieldMask.Paths, path)
   222  	}
   223  	return nil
   224  }
   225  
   226  // implement methods required by customType
   227  func (fieldMask DeviceHardwareRegisterSession_FieldMask) Marshal() ([]byte, error) {
   228  	protoFieldMask := fieldMask.ToProtoFieldMask()
   229  	return proto.Marshal(protoFieldMask)
   230  }
   231  
   232  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) Unmarshal(data []byte) error {
   233  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   234  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   235  		return err
   236  	}
   237  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   238  		return err
   239  	}
   240  	return nil
   241  }
   242  
   243  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) Size() int {
   244  	return proto.Size(fieldMask.ToProtoFieldMask())
   245  }
   246  
   247  func (fieldMask DeviceHardwareRegisterSession_FieldMask) MarshalJSON() ([]byte, error) {
   248  	return json.Marshal(fieldMask.ToProtoFieldMask())
   249  }
   250  
   251  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) UnmarshalJSON(data []byte) error {
   252  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   253  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   254  		return err
   255  	}
   256  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   257  		return err
   258  	}
   259  	return nil
   260  }
   261  
   262  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) AppendPath(path DeviceHardwareRegisterSession_FieldPath) {
   263  	fieldMask.Paths = append(fieldMask.Paths, path)
   264  }
   265  
   266  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   267  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceHardwareRegisterSession_FieldPath))
   268  }
   269  
   270  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) GetPaths() []DeviceHardwareRegisterSession_FieldPath {
   271  	if fieldMask == nil {
   272  		return nil
   273  	}
   274  	return fieldMask.Paths
   275  }
   276  
   277  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   278  	if fieldMask == nil {
   279  		return nil
   280  	}
   281  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   282  	for _, path := range fieldMask.Paths {
   283  		rawPaths = append(rawPaths, path)
   284  	}
   285  	return rawPaths
   286  }
   287  
   288  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) SetFromCliFlag(raw string) error {
   289  	path, err := ParseDeviceHardwareRegisterSession_FieldPath(raw)
   290  	if err != nil {
   291  		return err
   292  	}
   293  	fieldMask.Paths = append(fieldMask.Paths, path)
   294  	return nil
   295  }
   296  
   297  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) Set(target, source *DeviceHardwareRegisterSession) {
   298  	for _, path := range fieldMask.Paths {
   299  		val, _ := path.GetSingle(source)
   300  		// if val is nil, then field does not exist in source, skip
   301  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   302  		if val != nil {
   303  			path.WithIValue(val).SetTo(&target)
   304  		}
   305  	}
   306  }
   307  
   308  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   309  	fieldMask.Set(target.(*DeviceHardwareRegisterSession), source.(*DeviceHardwareRegisterSession))
   310  }
   311  
   312  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) Project(source *DeviceHardwareRegisterSession) *DeviceHardwareRegisterSession {
   313  	if source == nil {
   314  		return nil
   315  	}
   316  	if fieldMask == nil {
   317  		return source
   318  	}
   319  	result := &DeviceHardwareRegisterSession{}
   320  	metadataMask := &meta.Meta_FieldMask{}
   321  	wholeMetadataAccepted := false
   322  	statusMask := &DeviceHardwareRegisterSession_Status_FieldMask{}
   323  	wholeStatusAccepted := false
   324  	var extrasMapKeys []string
   325  	wholeExtrasAccepted := false
   326  
   327  	for _, p := range fieldMask.Paths {
   328  		switch tp := p.(type) {
   329  		case *DeviceHardwareRegisterSession_FieldTerminalPath:
   330  			switch tp.selector {
   331  			case DeviceHardwareRegisterSession_FieldPathSelectorName:
   332  				result.Name = source.Name
   333  			case DeviceHardwareRegisterSession_FieldPathSelectorDisplayName:
   334  				result.DisplayName = source.DisplayName
   335  			case DeviceHardwareRegisterSession_FieldPathSelectorMetadata:
   336  				result.Metadata = source.Metadata
   337  				wholeMetadataAccepted = true
   338  			case DeviceHardwareRegisterSession_FieldPathSelectorStartTime:
   339  				result.StartTime = source.StartTime
   340  			case DeviceHardwareRegisterSession_FieldPathSelectorExpirationTime:
   341  				result.ExpirationTime = source.ExpirationTime
   342  			case DeviceHardwareRegisterSession_FieldPathSelectorUserEmail:
   343  				result.UserEmail = source.UserEmail
   344  			case DeviceHardwareRegisterSession_FieldPathSelectorInviterEmail:
   345  				result.InviterEmail = source.InviterEmail
   346  			case DeviceHardwareRegisterSession_FieldPathSelectorLanguageCode:
   347  				result.LanguageCode = source.LanguageCode
   348  			case DeviceHardwareRegisterSession_FieldPathSelectorExtras:
   349  				result.Extras = source.Extras
   350  				wholeExtrasAccepted = true
   351  			case DeviceHardwareRegisterSession_FieldPathSelectorProvisioningPolicyName:
   352  				result.ProvisioningPolicyName = source.ProvisioningPolicyName
   353  			case DeviceHardwareRegisterSession_FieldPathSelectorDeviceName:
   354  				result.DeviceName = source.DeviceName
   355  			case DeviceHardwareRegisterSession_FieldPathSelectorSingleUse:
   356  				result.SingleUse = source.SingleUse
   357  			case DeviceHardwareRegisterSession_FieldPathSelectorToken:
   358  				result.Token = source.Token
   359  			case DeviceHardwareRegisterSession_FieldPathSelectorStatus:
   360  				result.Status = source.Status
   361  				wholeStatusAccepted = true
   362  			}
   363  		case *DeviceHardwareRegisterSession_FieldSubPath:
   364  			switch tp.selector {
   365  			case DeviceHardwareRegisterSession_FieldPathSelectorMetadata:
   366  				metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath))
   367  			case DeviceHardwareRegisterSession_FieldPathSelectorStatus:
   368  				statusMask.AppendPath(tp.subPath.(DeviceHardwareRegisterSessionStatus_FieldPath))
   369  			}
   370  		case *DeviceHardwareRegisterSession_FieldPathMap:
   371  			switch tp.selector {
   372  			case DeviceHardwareRegisterSession_FieldPathSelectorExtras:
   373  				extrasMapKeys = append(extrasMapKeys, tp.key)
   374  			}
   375  		}
   376  	}
   377  	if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 {
   378  		result.Metadata = metadataMask.Project(source.GetMetadata())
   379  	}
   380  	if wholeExtrasAccepted == false && len(extrasMapKeys) > 0 && source.GetExtras() != nil {
   381  		copiedMap := map[string]string{}
   382  		sourceMap := source.GetExtras()
   383  		for _, key := range extrasMapKeys {
   384  			copiedMap[key] = sourceMap[key]
   385  		}
   386  		result.Extras = copiedMap
   387  	}
   388  	if wholeStatusAccepted == false && len(statusMask.Paths) > 0 {
   389  		result.Status = statusMask.Project(source.GetStatus())
   390  	}
   391  	return result
   392  }
   393  
   394  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   395  	return fieldMask.Project(source.(*DeviceHardwareRegisterSession))
   396  }
   397  
   398  func (fieldMask *DeviceHardwareRegisterSession_FieldMask) PathsCount() int {
   399  	if fieldMask == nil {
   400  		return 0
   401  	}
   402  	return len(fieldMask.Paths)
   403  }
   404  
   405  type DeviceHardwareRegisterSession_Status_FieldMask struct {
   406  	Paths []DeviceHardwareRegisterSessionStatus_FieldPath
   407  }
   408  
   409  func FullDeviceHardwareRegisterSession_Status_FieldMask() *DeviceHardwareRegisterSession_Status_FieldMask {
   410  	res := &DeviceHardwareRegisterSession_Status_FieldMask{}
   411  	res.Paths = append(res.Paths, &DeviceHardwareRegisterSessionStatus_FieldTerminalPath{selector: DeviceHardwareRegisterSessionStatus_FieldPathSelectorDeviceHardwares})
   412  	return res
   413  }
   414  
   415  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) String() string {
   416  	if fieldMask == nil {
   417  		return "<nil>"
   418  	}
   419  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   420  	for _, path := range fieldMask.Paths {
   421  		pathsStr = append(pathsStr, path.String())
   422  	}
   423  	return strings.Join(pathsStr, ", ")
   424  }
   425  
   426  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) IsFull() bool {
   427  	if fieldMask == nil {
   428  		return false
   429  	}
   430  	presentSelectors := make([]bool, 1)
   431  	for _, path := range fieldMask.Paths {
   432  		if asFinal, ok := path.(*DeviceHardwareRegisterSessionStatus_FieldTerminalPath); ok {
   433  			presentSelectors[int(asFinal.selector)] = true
   434  		}
   435  	}
   436  	for _, flag := range presentSelectors {
   437  		if !flag {
   438  			return false
   439  		}
   440  	}
   441  	return true
   442  }
   443  
   444  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) ProtoReflect() preflect.Message {
   445  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   446  		return ParseDeviceHardwareRegisterSessionStatus_FieldPath(raw)
   447  	})
   448  }
   449  
   450  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) ProtoMessage() {}
   451  
   452  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) Reset() {
   453  	if fieldMask != nil {
   454  		fieldMask.Paths = nil
   455  	}
   456  }
   457  
   458  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) Subtract(other *DeviceHardwareRegisterSession_Status_FieldMask) *DeviceHardwareRegisterSession_Status_FieldMask {
   459  	result := &DeviceHardwareRegisterSession_Status_FieldMask{}
   460  	removedSelectors := make([]bool, 1)
   461  
   462  	for _, path := range other.GetPaths() {
   463  		switch tp := path.(type) {
   464  		case *DeviceHardwareRegisterSessionStatus_FieldTerminalPath:
   465  			removedSelectors[int(tp.selector)] = true
   466  		}
   467  	}
   468  	for _, path := range fieldMask.GetPaths() {
   469  		if !removedSelectors[int(path.Selector())] {
   470  			result.Paths = append(result.Paths, path)
   471  		}
   472  	}
   473  
   474  	if len(result.Paths) == 0 {
   475  		return nil
   476  	}
   477  	return result
   478  }
   479  
   480  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   481  	return fieldMask.Subtract(other.(*DeviceHardwareRegisterSession_Status_FieldMask))
   482  }
   483  
   484  // FilterInputFields generates copy of field paths with output_only field paths removed
   485  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) FilterInputFields() *DeviceHardwareRegisterSession_Status_FieldMask {
   486  	result := &DeviceHardwareRegisterSession_Status_FieldMask{}
   487  	result.Paths = append(result.Paths, fieldMask.Paths...)
   488  	return result
   489  }
   490  
   491  // ToFieldMask is used for proto conversions
   492  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   493  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   494  	for _, path := range fieldMask.Paths {
   495  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   496  	}
   497  	return protoFieldMask
   498  }
   499  
   500  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   501  	if fieldMask == nil {
   502  		return status.Error(codes.Internal, "target field mask is nil")
   503  	}
   504  	fieldMask.Paths = make([]DeviceHardwareRegisterSessionStatus_FieldPath, 0, len(protoFieldMask.Paths))
   505  	for _, strPath := range protoFieldMask.Paths {
   506  		path, err := ParseDeviceHardwareRegisterSessionStatus_FieldPath(strPath)
   507  		if err != nil {
   508  			return err
   509  		}
   510  		fieldMask.Paths = append(fieldMask.Paths, path)
   511  	}
   512  	return nil
   513  }
   514  
   515  // implement methods required by customType
   516  func (fieldMask DeviceHardwareRegisterSession_Status_FieldMask) Marshal() ([]byte, error) {
   517  	protoFieldMask := fieldMask.ToProtoFieldMask()
   518  	return proto.Marshal(protoFieldMask)
   519  }
   520  
   521  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) Unmarshal(data []byte) error {
   522  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   523  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   524  		return err
   525  	}
   526  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   527  		return err
   528  	}
   529  	return nil
   530  }
   531  
   532  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) Size() int {
   533  	return proto.Size(fieldMask.ToProtoFieldMask())
   534  }
   535  
   536  func (fieldMask DeviceHardwareRegisterSession_Status_FieldMask) MarshalJSON() ([]byte, error) {
   537  	return json.Marshal(fieldMask.ToProtoFieldMask())
   538  }
   539  
   540  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) UnmarshalJSON(data []byte) error {
   541  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   542  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   543  		return err
   544  	}
   545  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   546  		return err
   547  	}
   548  	return nil
   549  }
   550  
   551  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) AppendPath(path DeviceHardwareRegisterSessionStatus_FieldPath) {
   552  	fieldMask.Paths = append(fieldMask.Paths, path)
   553  }
   554  
   555  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   556  	fieldMask.Paths = append(fieldMask.Paths, path.(DeviceHardwareRegisterSessionStatus_FieldPath))
   557  }
   558  
   559  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) GetPaths() []DeviceHardwareRegisterSessionStatus_FieldPath {
   560  	if fieldMask == nil {
   561  		return nil
   562  	}
   563  	return fieldMask.Paths
   564  }
   565  
   566  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   567  	if fieldMask == nil {
   568  		return nil
   569  	}
   570  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   571  	for _, path := range fieldMask.Paths {
   572  		rawPaths = append(rawPaths, path)
   573  	}
   574  	return rawPaths
   575  }
   576  
   577  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) SetFromCliFlag(raw string) error {
   578  	path, err := ParseDeviceHardwareRegisterSessionStatus_FieldPath(raw)
   579  	if err != nil {
   580  		return err
   581  	}
   582  	fieldMask.Paths = append(fieldMask.Paths, path)
   583  	return nil
   584  }
   585  
   586  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) Set(target, source *DeviceHardwareRegisterSession_Status) {
   587  	for _, path := range fieldMask.Paths {
   588  		val, _ := path.GetSingle(source)
   589  		// if val is nil, then field does not exist in source, skip
   590  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   591  		if val != nil {
   592  			path.WithIValue(val).SetTo(&target)
   593  		}
   594  	}
   595  }
   596  
   597  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   598  	fieldMask.Set(target.(*DeviceHardwareRegisterSession_Status), source.(*DeviceHardwareRegisterSession_Status))
   599  }
   600  
   601  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) Project(source *DeviceHardwareRegisterSession_Status) *DeviceHardwareRegisterSession_Status {
   602  	if source == nil {
   603  		return nil
   604  	}
   605  	if fieldMask == nil {
   606  		return source
   607  	}
   608  	result := &DeviceHardwareRegisterSession_Status{}
   609  
   610  	for _, p := range fieldMask.Paths {
   611  		switch tp := p.(type) {
   612  		case *DeviceHardwareRegisterSessionStatus_FieldTerminalPath:
   613  			switch tp.selector {
   614  			case DeviceHardwareRegisterSessionStatus_FieldPathSelectorDeviceHardwares:
   615  				result.DeviceHardwares = source.DeviceHardwares
   616  			}
   617  		}
   618  	}
   619  	return result
   620  }
   621  
   622  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   623  	return fieldMask.Project(source.(*DeviceHardwareRegisterSession_Status))
   624  }
   625  
   626  func (fieldMask *DeviceHardwareRegisterSession_Status_FieldMask) PathsCount() int {
   627  	if fieldMask == nil {
   628  		return 0
   629  	}
   630  	return len(fieldMask.Paths)
   631  }