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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/devices/proto/v1/device_hardware.proto
     3  // DO NOT EDIT!!!
     4  
     5  package device_hardware
     6  
     7  import (
     8  	"encoding/json"
     9  	"fmt"
    10  	"reflect"
    11  	"strings"
    12  	"time"
    13  
    14  	"google.golang.org/grpc/codes"
    15  	"google.golang.org/grpc/status"
    16  	"google.golang.org/protobuf/encoding/protojson"
    17  	"google.golang.org/protobuf/proto"
    18  	"google.golang.org/protobuf/reflect/protoregistry"
    19  
    20  	gotenobject "github.com/cloudwan/goten-sdk/runtime/object"
    21  	"github.com/cloudwan/goten-sdk/runtime/strcase"
    22  )
    23  
    24  // proto imports
    25  import (
    26  	cellular_api_sim_card "github.com/cloudwan/edgelq-sdk/cellular-api/resources/v1/sim_card"
    27  	device "github.com/cloudwan/edgelq-sdk/devices/resources/v1/device"
    28  	project "github.com/cloudwan/edgelq-sdk/devices/resources/v1/project"
    29  	provisioning_policy "github.com/cloudwan/edgelq-sdk/devices/resources/v1/provisioning_policy"
    30  	meta "github.com/cloudwan/goten-sdk/types/meta"
    31  )
    32  
    33  // ensure the imports are used
    34  var (
    35  	_ = new(json.Marshaler)
    36  	_ = new(fmt.Stringer)
    37  	_ = reflect.DeepEqual
    38  	_ = strings.Builder{}
    39  	_ = time.Second
    40  
    41  	_ = strcase.ToLowerCamel
    42  	_ = codes.NotFound
    43  	_ = status.Status{}
    44  	_ = protojson.UnmarshalOptions{}
    45  	_ = new(proto.Message)
    46  	_ = protoregistry.GlobalTypes
    47  
    48  	_ = new(gotenobject.FieldPath)
    49  )
    50  
    51  // make sure we're using proto imports
    52  var (
    53  	_ = &cellular_api_sim_card.SimCard{}
    54  	_ = &device.Device{}
    55  	_ = &project.Project{}
    56  	_ = &provisioning_policy.ProvisioningPolicy{}
    57  	_ = &meta.Meta{}
    58  )
    59  
    60  // FieldPath provides implementation to handle
    61  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    62  type DeviceHardware_FieldPath interface {
    63  	gotenobject.FieldPath
    64  	Selector() DeviceHardware_FieldPathSelector
    65  	Get(source *DeviceHardware) []interface{}
    66  	GetSingle(source *DeviceHardware) (interface{}, bool)
    67  	ClearValue(item *DeviceHardware)
    68  
    69  	// Those methods build corresponding DeviceHardware_FieldPathValue
    70  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    71  	WithIValue(value interface{}) DeviceHardware_FieldPathValue
    72  	WithIArrayOfValues(values interface{}) DeviceHardware_FieldPathArrayOfValues
    73  	WithIArrayItemValue(value interface{}) DeviceHardware_FieldPathArrayItemValue
    74  }
    75  
    76  type DeviceHardware_FieldPathSelector int32
    77  
    78  const (
    79  	DeviceHardware_FieldPathSelectorName                             DeviceHardware_FieldPathSelector = 0
    80  	DeviceHardware_FieldPathSelectorMetadata                         DeviceHardware_FieldPathSelector = 1
    81  	DeviceHardware_FieldPathSelectorDisplayName                      DeviceHardware_FieldPathSelector = 2
    82  	DeviceHardware_FieldPathSelectorSerialNumber                     DeviceHardware_FieldPathSelector = 3
    83  	DeviceHardware_FieldPathSelectorManufacturer                     DeviceHardware_FieldPathSelector = 4
    84  	DeviceHardware_FieldPathSelectorProductName                      DeviceHardware_FieldPathSelector = 5
    85  	DeviceHardware_FieldPathSelectorMacAddress                       DeviceHardware_FieldPathSelector = 6
    86  	DeviceHardware_FieldPathSelectorSimIccid                         DeviceHardware_FieldPathSelector = 7
    87  	DeviceHardware_FieldPathSelectorImei                             DeviceHardware_FieldPathSelector = 8
    88  	DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName DeviceHardware_FieldPathSelector = 9
    89  	DeviceHardware_FieldPathSelectorAssociatedDevice                 DeviceHardware_FieldPathSelector = 10
    90  	DeviceHardware_FieldPathSelectorAssociatedSimCard                DeviceHardware_FieldPathSelector = 11
    91  	DeviceHardware_FieldPathSelectorStatus                           DeviceHardware_FieldPathSelector = 12
    92  )
    93  
    94  func (s DeviceHardware_FieldPathSelector) String() string {
    95  	switch s {
    96  	case DeviceHardware_FieldPathSelectorName:
    97  		return "name"
    98  	case DeviceHardware_FieldPathSelectorMetadata:
    99  		return "metadata"
   100  	case DeviceHardware_FieldPathSelectorDisplayName:
   101  		return "display_name"
   102  	case DeviceHardware_FieldPathSelectorSerialNumber:
   103  		return "serial_number"
   104  	case DeviceHardware_FieldPathSelectorManufacturer:
   105  		return "manufacturer"
   106  	case DeviceHardware_FieldPathSelectorProductName:
   107  		return "product_name"
   108  	case DeviceHardware_FieldPathSelectorMacAddress:
   109  		return "mac_address"
   110  	case DeviceHardware_FieldPathSelectorSimIccid:
   111  		return "sim_iccid"
   112  	case DeviceHardware_FieldPathSelectorImei:
   113  		return "imei"
   114  	case DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName:
   115  		return "associated_provisioning_policy_name"
   116  	case DeviceHardware_FieldPathSelectorAssociatedDevice:
   117  		return "associated_device"
   118  	case DeviceHardware_FieldPathSelectorAssociatedSimCard:
   119  		return "associated_sim_card"
   120  	case DeviceHardware_FieldPathSelectorStatus:
   121  		return "status"
   122  	default:
   123  		panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", s))
   124  	}
   125  }
   126  
   127  func BuildDeviceHardware_FieldPath(fp gotenobject.RawFieldPath) (DeviceHardware_FieldPath, error) {
   128  	if len(fp) == 0 {
   129  		return nil, status.Error(codes.InvalidArgument, "empty field path for object DeviceHardware")
   130  	}
   131  	if len(fp) == 1 {
   132  		switch fp[0] {
   133  		case "name":
   134  			return &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorName}, nil
   135  		case "metadata":
   136  			return &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorMetadata}, nil
   137  		case "display_name", "displayName", "display-name":
   138  			return &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorDisplayName}, nil
   139  		case "serial_number", "serialNumber", "serial-number":
   140  			return &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorSerialNumber}, nil
   141  		case "manufacturer":
   142  			return &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorManufacturer}, nil
   143  		case "product_name", "productName", "product-name":
   144  			return &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorProductName}, nil
   145  		case "mac_address", "macAddress", "mac-address":
   146  			return &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorMacAddress}, nil
   147  		case "sim_iccid", "simIccid", "sim-iccid":
   148  			return &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorSimIccid}, nil
   149  		case "imei":
   150  			return &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorImei}, nil
   151  		case "associated_provisioning_policy_name", "associatedProvisioningPolicyName", "associated-provisioning-policy-name":
   152  			return &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName}, nil
   153  		case "associated_device", "associatedDevice", "associated-device":
   154  			return &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorAssociatedDevice}, nil
   155  		case "associated_sim_card", "associatedSimCard", "associated-sim-card":
   156  			return &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorAssociatedSimCard}, nil
   157  		case "status":
   158  			return &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorStatus}, nil
   159  		}
   160  	} else {
   161  		switch fp[0] {
   162  		case "metadata":
   163  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   164  				return nil, err
   165  			} else {
   166  				return &DeviceHardware_FieldSubPath{selector: DeviceHardware_FieldPathSelectorMetadata, subPath: subpath}, nil
   167  			}
   168  		case "status":
   169  			if subpath, err := BuildDeviceHardwareStatus_FieldPath(fp[1:]); err != nil {
   170  				return nil, err
   171  			} else {
   172  				return &DeviceHardware_FieldSubPath{selector: DeviceHardware_FieldPathSelectorStatus, subPath: subpath}, nil
   173  			}
   174  		}
   175  	}
   176  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object DeviceHardware", fp)
   177  }
   178  
   179  func ParseDeviceHardware_FieldPath(rawField string) (DeviceHardware_FieldPath, error) {
   180  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   181  	if err != nil {
   182  		return nil, err
   183  	}
   184  	return BuildDeviceHardware_FieldPath(fp)
   185  }
   186  
   187  func MustParseDeviceHardware_FieldPath(rawField string) DeviceHardware_FieldPath {
   188  	fp, err := ParseDeviceHardware_FieldPath(rawField)
   189  	if err != nil {
   190  		panic(err)
   191  	}
   192  	return fp
   193  }
   194  
   195  type DeviceHardware_FieldTerminalPath struct {
   196  	selector DeviceHardware_FieldPathSelector
   197  }
   198  
   199  var _ DeviceHardware_FieldPath = (*DeviceHardware_FieldTerminalPath)(nil)
   200  
   201  func (fp *DeviceHardware_FieldTerminalPath) Selector() DeviceHardware_FieldPathSelector {
   202  	return fp.selector
   203  }
   204  
   205  // String returns path representation in proto convention
   206  func (fp *DeviceHardware_FieldTerminalPath) String() string {
   207  	return fp.selector.String()
   208  }
   209  
   210  // JSONString returns path representation is JSON convention
   211  func (fp *DeviceHardware_FieldTerminalPath) JSONString() string {
   212  	return strcase.ToLowerCamel(fp.String())
   213  }
   214  
   215  // Get returns all values pointed by specific field from source DeviceHardware
   216  func (fp *DeviceHardware_FieldTerminalPath) Get(source *DeviceHardware) (values []interface{}) {
   217  	if source != nil {
   218  		switch fp.selector {
   219  		case DeviceHardware_FieldPathSelectorName:
   220  			if source.Name != nil {
   221  				values = append(values, source.Name)
   222  			}
   223  		case DeviceHardware_FieldPathSelectorMetadata:
   224  			if source.Metadata != nil {
   225  				values = append(values, source.Metadata)
   226  			}
   227  		case DeviceHardware_FieldPathSelectorDisplayName:
   228  			values = append(values, source.DisplayName)
   229  		case DeviceHardware_FieldPathSelectorSerialNumber:
   230  			values = append(values, source.SerialNumber)
   231  		case DeviceHardware_FieldPathSelectorManufacturer:
   232  			values = append(values, source.Manufacturer)
   233  		case DeviceHardware_FieldPathSelectorProductName:
   234  			values = append(values, source.ProductName)
   235  		case DeviceHardware_FieldPathSelectorMacAddress:
   236  			for _, value := range source.GetMacAddress() {
   237  				values = append(values, value)
   238  			}
   239  		case DeviceHardware_FieldPathSelectorSimIccid:
   240  			values = append(values, source.SimIccid)
   241  		case DeviceHardware_FieldPathSelectorImei:
   242  			values = append(values, source.Imei)
   243  		case DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName:
   244  			if source.AssociatedProvisioningPolicyName != nil {
   245  				values = append(values, source.AssociatedProvisioningPolicyName)
   246  			}
   247  		case DeviceHardware_FieldPathSelectorAssociatedDevice:
   248  			if source.AssociatedDevice != nil {
   249  				values = append(values, source.AssociatedDevice)
   250  			}
   251  		case DeviceHardware_FieldPathSelectorAssociatedSimCard:
   252  			if source.AssociatedSimCard != nil {
   253  				values = append(values, source.AssociatedSimCard)
   254  			}
   255  		case DeviceHardware_FieldPathSelectorStatus:
   256  			if source.Status != nil {
   257  				values = append(values, source.Status)
   258  			}
   259  		default:
   260  			panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fp.selector))
   261  		}
   262  	}
   263  	return
   264  }
   265  
   266  func (fp *DeviceHardware_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   267  	return fp.Get(source.(*DeviceHardware))
   268  }
   269  
   270  // GetSingle returns value pointed by specific field of from source DeviceHardware
   271  func (fp *DeviceHardware_FieldTerminalPath) GetSingle(source *DeviceHardware) (interface{}, bool) {
   272  	switch fp.selector {
   273  	case DeviceHardware_FieldPathSelectorName:
   274  		res := source.GetName()
   275  		return res, res != nil
   276  	case DeviceHardware_FieldPathSelectorMetadata:
   277  		res := source.GetMetadata()
   278  		return res, res != nil
   279  	case DeviceHardware_FieldPathSelectorDisplayName:
   280  		return source.GetDisplayName(), source != nil
   281  	case DeviceHardware_FieldPathSelectorSerialNumber:
   282  		return source.GetSerialNumber(), source != nil
   283  	case DeviceHardware_FieldPathSelectorManufacturer:
   284  		return source.GetManufacturer(), source != nil
   285  	case DeviceHardware_FieldPathSelectorProductName:
   286  		return source.GetProductName(), source != nil
   287  	case DeviceHardware_FieldPathSelectorMacAddress:
   288  		res := source.GetMacAddress()
   289  		return res, res != nil
   290  	case DeviceHardware_FieldPathSelectorSimIccid:
   291  		return source.GetSimIccid(), source != nil
   292  	case DeviceHardware_FieldPathSelectorImei:
   293  		return source.GetImei(), source != nil
   294  	case DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName:
   295  		res := source.GetAssociatedProvisioningPolicyName()
   296  		return res, res != nil
   297  	case DeviceHardware_FieldPathSelectorAssociatedDevice:
   298  		res := source.GetAssociatedDevice()
   299  		return res, res != nil
   300  	case DeviceHardware_FieldPathSelectorAssociatedSimCard:
   301  		res := source.GetAssociatedSimCard()
   302  		return res, res != nil
   303  	case DeviceHardware_FieldPathSelectorStatus:
   304  		res := source.GetStatus()
   305  		return res, res != nil
   306  	default:
   307  		panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fp.selector))
   308  	}
   309  }
   310  
   311  func (fp *DeviceHardware_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   312  	return fp.GetSingle(source.(*DeviceHardware))
   313  }
   314  
   315  // GetDefault returns a default value of the field type
   316  func (fp *DeviceHardware_FieldTerminalPath) GetDefault() interface{} {
   317  	switch fp.selector {
   318  	case DeviceHardware_FieldPathSelectorName:
   319  		return (*Name)(nil)
   320  	case DeviceHardware_FieldPathSelectorMetadata:
   321  		return (*meta.Meta)(nil)
   322  	case DeviceHardware_FieldPathSelectorDisplayName:
   323  		return ""
   324  	case DeviceHardware_FieldPathSelectorSerialNumber:
   325  		return ""
   326  	case DeviceHardware_FieldPathSelectorManufacturer:
   327  		return ""
   328  	case DeviceHardware_FieldPathSelectorProductName:
   329  		return ""
   330  	case DeviceHardware_FieldPathSelectorMacAddress:
   331  		return ([]string)(nil)
   332  	case DeviceHardware_FieldPathSelectorSimIccid:
   333  		return ""
   334  	case DeviceHardware_FieldPathSelectorImei:
   335  		return ""
   336  	case DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName:
   337  		return (*provisioning_policy.Reference)(nil)
   338  	case DeviceHardware_FieldPathSelectorAssociatedDevice:
   339  		return (*device.Reference)(nil)
   340  	case DeviceHardware_FieldPathSelectorAssociatedSimCard:
   341  		return (*cellular_api_sim_card.Reference)(nil)
   342  	case DeviceHardware_FieldPathSelectorStatus:
   343  		return (*DeviceHardware_Status)(nil)
   344  	default:
   345  		panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fp.selector))
   346  	}
   347  }
   348  
   349  func (fp *DeviceHardware_FieldTerminalPath) ClearValue(item *DeviceHardware) {
   350  	if item != nil {
   351  		switch fp.selector {
   352  		case DeviceHardware_FieldPathSelectorName:
   353  			item.Name = nil
   354  		case DeviceHardware_FieldPathSelectorMetadata:
   355  			item.Metadata = nil
   356  		case DeviceHardware_FieldPathSelectorDisplayName:
   357  			item.DisplayName = ""
   358  		case DeviceHardware_FieldPathSelectorSerialNumber:
   359  			item.SerialNumber = ""
   360  		case DeviceHardware_FieldPathSelectorManufacturer:
   361  			item.Manufacturer = ""
   362  		case DeviceHardware_FieldPathSelectorProductName:
   363  			item.ProductName = ""
   364  		case DeviceHardware_FieldPathSelectorMacAddress:
   365  			item.MacAddress = nil
   366  		case DeviceHardware_FieldPathSelectorSimIccid:
   367  			item.SimIccid = ""
   368  		case DeviceHardware_FieldPathSelectorImei:
   369  			item.Imei = ""
   370  		case DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName:
   371  			item.AssociatedProvisioningPolicyName = nil
   372  		case DeviceHardware_FieldPathSelectorAssociatedDevice:
   373  			item.AssociatedDevice = nil
   374  		case DeviceHardware_FieldPathSelectorAssociatedSimCard:
   375  			item.AssociatedSimCard = nil
   376  		case DeviceHardware_FieldPathSelectorStatus:
   377  			item.Status = nil
   378  		default:
   379  			panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fp.selector))
   380  		}
   381  	}
   382  }
   383  
   384  func (fp *DeviceHardware_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   385  	fp.ClearValue(item.(*DeviceHardware))
   386  }
   387  
   388  // IsLeaf - whether field path is holds simple value
   389  func (fp *DeviceHardware_FieldTerminalPath) IsLeaf() bool {
   390  	return fp.selector == DeviceHardware_FieldPathSelectorName ||
   391  		fp.selector == DeviceHardware_FieldPathSelectorDisplayName ||
   392  		fp.selector == DeviceHardware_FieldPathSelectorSerialNumber ||
   393  		fp.selector == DeviceHardware_FieldPathSelectorManufacturer ||
   394  		fp.selector == DeviceHardware_FieldPathSelectorProductName ||
   395  		fp.selector == DeviceHardware_FieldPathSelectorMacAddress ||
   396  		fp.selector == DeviceHardware_FieldPathSelectorSimIccid ||
   397  		fp.selector == DeviceHardware_FieldPathSelectorImei ||
   398  		fp.selector == DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName ||
   399  		fp.selector == DeviceHardware_FieldPathSelectorAssociatedDevice ||
   400  		fp.selector == DeviceHardware_FieldPathSelectorAssociatedSimCard
   401  }
   402  
   403  func (fp *DeviceHardware_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   404  	return []gotenobject.FieldPath{fp}
   405  }
   406  
   407  func (fp *DeviceHardware_FieldTerminalPath) WithIValue(value interface{}) DeviceHardware_FieldPathValue {
   408  	switch fp.selector {
   409  	case DeviceHardware_FieldPathSelectorName:
   410  		return &DeviceHardware_FieldTerminalPathValue{DeviceHardware_FieldTerminalPath: *fp, value: value.(*Name)}
   411  	case DeviceHardware_FieldPathSelectorMetadata:
   412  		return &DeviceHardware_FieldTerminalPathValue{DeviceHardware_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   413  	case DeviceHardware_FieldPathSelectorDisplayName:
   414  		return &DeviceHardware_FieldTerminalPathValue{DeviceHardware_FieldTerminalPath: *fp, value: value.(string)}
   415  	case DeviceHardware_FieldPathSelectorSerialNumber:
   416  		return &DeviceHardware_FieldTerminalPathValue{DeviceHardware_FieldTerminalPath: *fp, value: value.(string)}
   417  	case DeviceHardware_FieldPathSelectorManufacturer:
   418  		return &DeviceHardware_FieldTerminalPathValue{DeviceHardware_FieldTerminalPath: *fp, value: value.(string)}
   419  	case DeviceHardware_FieldPathSelectorProductName:
   420  		return &DeviceHardware_FieldTerminalPathValue{DeviceHardware_FieldTerminalPath: *fp, value: value.(string)}
   421  	case DeviceHardware_FieldPathSelectorMacAddress:
   422  		return &DeviceHardware_FieldTerminalPathValue{DeviceHardware_FieldTerminalPath: *fp, value: value.([]string)}
   423  	case DeviceHardware_FieldPathSelectorSimIccid:
   424  		return &DeviceHardware_FieldTerminalPathValue{DeviceHardware_FieldTerminalPath: *fp, value: value.(string)}
   425  	case DeviceHardware_FieldPathSelectorImei:
   426  		return &DeviceHardware_FieldTerminalPathValue{DeviceHardware_FieldTerminalPath: *fp, value: value.(string)}
   427  	case DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName:
   428  		return &DeviceHardware_FieldTerminalPathValue{DeviceHardware_FieldTerminalPath: *fp, value: value.(*provisioning_policy.Reference)}
   429  	case DeviceHardware_FieldPathSelectorAssociatedDevice:
   430  		return &DeviceHardware_FieldTerminalPathValue{DeviceHardware_FieldTerminalPath: *fp, value: value.(*device.Reference)}
   431  	case DeviceHardware_FieldPathSelectorAssociatedSimCard:
   432  		return &DeviceHardware_FieldTerminalPathValue{DeviceHardware_FieldTerminalPath: *fp, value: value.(*cellular_api_sim_card.Reference)}
   433  	case DeviceHardware_FieldPathSelectorStatus:
   434  		return &DeviceHardware_FieldTerminalPathValue{DeviceHardware_FieldTerminalPath: *fp, value: value.(*DeviceHardware_Status)}
   435  	default:
   436  		panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fp.selector))
   437  	}
   438  }
   439  
   440  func (fp *DeviceHardware_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   441  	return fp.WithIValue(value)
   442  }
   443  
   444  func (fp *DeviceHardware_FieldTerminalPath) WithIArrayOfValues(values interface{}) DeviceHardware_FieldPathArrayOfValues {
   445  	fpaov := &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp}
   446  	switch fp.selector {
   447  	case DeviceHardware_FieldPathSelectorName:
   448  		return &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp, values: values.([]*Name)}
   449  	case DeviceHardware_FieldPathSelectorMetadata:
   450  		return &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   451  	case DeviceHardware_FieldPathSelectorDisplayName:
   452  		return &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp, values: values.([]string)}
   453  	case DeviceHardware_FieldPathSelectorSerialNumber:
   454  		return &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp, values: values.([]string)}
   455  	case DeviceHardware_FieldPathSelectorManufacturer:
   456  		return &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp, values: values.([]string)}
   457  	case DeviceHardware_FieldPathSelectorProductName:
   458  		return &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp, values: values.([]string)}
   459  	case DeviceHardware_FieldPathSelectorMacAddress:
   460  		return &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp, values: values.([][]string)}
   461  	case DeviceHardware_FieldPathSelectorSimIccid:
   462  		return &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp, values: values.([]string)}
   463  	case DeviceHardware_FieldPathSelectorImei:
   464  		return &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp, values: values.([]string)}
   465  	case DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName:
   466  		return &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp, values: values.([]*provisioning_policy.Reference)}
   467  	case DeviceHardware_FieldPathSelectorAssociatedDevice:
   468  		return &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp, values: values.([]*device.Reference)}
   469  	case DeviceHardware_FieldPathSelectorAssociatedSimCard:
   470  		return &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp, values: values.([]*cellular_api_sim_card.Reference)}
   471  	case DeviceHardware_FieldPathSelectorStatus:
   472  		return &DeviceHardware_FieldTerminalPathArrayOfValues{DeviceHardware_FieldTerminalPath: *fp, values: values.([]*DeviceHardware_Status)}
   473  	default:
   474  		panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fp.selector))
   475  	}
   476  	return fpaov
   477  }
   478  
   479  func (fp *DeviceHardware_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   480  	return fp.WithIArrayOfValues(values)
   481  }
   482  
   483  func (fp *DeviceHardware_FieldTerminalPath) WithIArrayItemValue(value interface{}) DeviceHardware_FieldPathArrayItemValue {
   484  	switch fp.selector {
   485  	case DeviceHardware_FieldPathSelectorMacAddress:
   486  		return &DeviceHardware_FieldTerminalPathArrayItemValue{DeviceHardware_FieldTerminalPath: *fp, value: value.(string)}
   487  	default:
   488  		panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fp.selector))
   489  	}
   490  }
   491  
   492  func (fp *DeviceHardware_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   493  	return fp.WithIArrayItemValue(value)
   494  }
   495  
   496  type DeviceHardware_FieldSubPath struct {
   497  	selector DeviceHardware_FieldPathSelector
   498  	subPath  gotenobject.FieldPath
   499  }
   500  
   501  var _ DeviceHardware_FieldPath = (*DeviceHardware_FieldSubPath)(nil)
   502  
   503  func (fps *DeviceHardware_FieldSubPath) Selector() DeviceHardware_FieldPathSelector {
   504  	return fps.selector
   505  }
   506  func (fps *DeviceHardware_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   507  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   508  	return res, ok
   509  }
   510  func (fps *DeviceHardware_FieldSubPath) AsStatusSubPath() (DeviceHardwareStatus_FieldPath, bool) {
   511  	res, ok := fps.subPath.(DeviceHardwareStatus_FieldPath)
   512  	return res, ok
   513  }
   514  
   515  // String returns path representation in proto convention
   516  func (fps *DeviceHardware_FieldSubPath) String() string {
   517  	return fps.selector.String() + "." + fps.subPath.String()
   518  }
   519  
   520  // JSONString returns path representation is JSON convention
   521  func (fps *DeviceHardware_FieldSubPath) JSONString() string {
   522  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   523  }
   524  
   525  // Get returns all values pointed by selected field from source DeviceHardware
   526  func (fps *DeviceHardware_FieldSubPath) Get(source *DeviceHardware) (values []interface{}) {
   527  	switch fps.selector {
   528  	case DeviceHardware_FieldPathSelectorMetadata:
   529  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   530  	case DeviceHardware_FieldPathSelectorStatus:
   531  		values = append(values, fps.subPath.GetRaw(source.GetStatus())...)
   532  	default:
   533  		panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fps.selector))
   534  	}
   535  	return
   536  }
   537  
   538  func (fps *DeviceHardware_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   539  	return fps.Get(source.(*DeviceHardware))
   540  }
   541  
   542  // GetSingle returns value of selected field from source DeviceHardware
   543  func (fps *DeviceHardware_FieldSubPath) GetSingle(source *DeviceHardware) (interface{}, bool) {
   544  	switch fps.selector {
   545  	case DeviceHardware_FieldPathSelectorMetadata:
   546  		if source.GetMetadata() == nil {
   547  			return nil, false
   548  		}
   549  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   550  	case DeviceHardware_FieldPathSelectorStatus:
   551  		if source.GetStatus() == nil {
   552  			return nil, false
   553  		}
   554  		return fps.subPath.GetSingleRaw(source.GetStatus())
   555  	default:
   556  		panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fps.selector))
   557  	}
   558  }
   559  
   560  func (fps *DeviceHardware_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   561  	return fps.GetSingle(source.(*DeviceHardware))
   562  }
   563  
   564  // GetDefault returns a default value of the field type
   565  func (fps *DeviceHardware_FieldSubPath) GetDefault() interface{} {
   566  	return fps.subPath.GetDefault()
   567  }
   568  
   569  func (fps *DeviceHardware_FieldSubPath) ClearValue(item *DeviceHardware) {
   570  	if item != nil {
   571  		switch fps.selector {
   572  		case DeviceHardware_FieldPathSelectorMetadata:
   573  			fps.subPath.ClearValueRaw(item.Metadata)
   574  		case DeviceHardware_FieldPathSelectorStatus:
   575  			fps.subPath.ClearValueRaw(item.Status)
   576  		default:
   577  			panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fps.selector))
   578  		}
   579  	}
   580  }
   581  
   582  func (fps *DeviceHardware_FieldSubPath) ClearValueRaw(item proto.Message) {
   583  	fps.ClearValue(item.(*DeviceHardware))
   584  }
   585  
   586  // IsLeaf - whether field path is holds simple value
   587  func (fps *DeviceHardware_FieldSubPath) IsLeaf() bool {
   588  	return fps.subPath.IsLeaf()
   589  }
   590  
   591  func (fps *DeviceHardware_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   592  	iPaths := []gotenobject.FieldPath{&DeviceHardware_FieldTerminalPath{selector: fps.selector}}
   593  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   594  	return iPaths
   595  }
   596  
   597  func (fps *DeviceHardware_FieldSubPath) WithIValue(value interface{}) DeviceHardware_FieldPathValue {
   598  	return &DeviceHardware_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   599  }
   600  
   601  func (fps *DeviceHardware_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   602  	return fps.WithIValue(value)
   603  }
   604  
   605  func (fps *DeviceHardware_FieldSubPath) WithIArrayOfValues(values interface{}) DeviceHardware_FieldPathArrayOfValues {
   606  	return &DeviceHardware_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   607  }
   608  
   609  func (fps *DeviceHardware_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   610  	return fps.WithIArrayOfValues(values)
   611  }
   612  
   613  func (fps *DeviceHardware_FieldSubPath) WithIArrayItemValue(value interface{}) DeviceHardware_FieldPathArrayItemValue {
   614  	return &DeviceHardware_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   615  }
   616  
   617  func (fps *DeviceHardware_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   618  	return fps.WithIArrayItemValue(value)
   619  }
   620  
   621  // DeviceHardware_FieldPathValue allows storing values for DeviceHardware fields according to their type
   622  type DeviceHardware_FieldPathValue interface {
   623  	DeviceHardware_FieldPath
   624  	gotenobject.FieldPathValue
   625  	SetTo(target **DeviceHardware)
   626  	CompareWith(*DeviceHardware) (cmp int, comparable bool)
   627  }
   628  
   629  func ParseDeviceHardware_FieldPathValue(pathStr, valueStr string) (DeviceHardware_FieldPathValue, error) {
   630  	fp, err := ParseDeviceHardware_FieldPath(pathStr)
   631  	if err != nil {
   632  		return nil, err
   633  	}
   634  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   635  	if err != nil {
   636  		return nil, status.Errorf(codes.InvalidArgument, "error parsing DeviceHardware field path value from %s: %v", valueStr, err)
   637  	}
   638  	return fpv.(DeviceHardware_FieldPathValue), nil
   639  }
   640  
   641  func MustParseDeviceHardware_FieldPathValue(pathStr, valueStr string) DeviceHardware_FieldPathValue {
   642  	fpv, err := ParseDeviceHardware_FieldPathValue(pathStr, valueStr)
   643  	if err != nil {
   644  		panic(err)
   645  	}
   646  	return fpv
   647  }
   648  
   649  type DeviceHardware_FieldTerminalPathValue struct {
   650  	DeviceHardware_FieldTerminalPath
   651  	value interface{}
   652  }
   653  
   654  var _ DeviceHardware_FieldPathValue = (*DeviceHardware_FieldTerminalPathValue)(nil)
   655  
   656  // GetRawValue returns raw value stored under selected path for 'DeviceHardware' as interface{}
   657  func (fpv *DeviceHardware_FieldTerminalPathValue) GetRawValue() interface{} {
   658  	return fpv.value
   659  }
   660  func (fpv *DeviceHardware_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   661  	res, ok := fpv.value.(*Name)
   662  	return res, ok
   663  }
   664  func (fpv *DeviceHardware_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   665  	res, ok := fpv.value.(*meta.Meta)
   666  	return res, ok
   667  }
   668  func (fpv *DeviceHardware_FieldTerminalPathValue) AsDisplayNameValue() (string, bool) {
   669  	res, ok := fpv.value.(string)
   670  	return res, ok
   671  }
   672  func (fpv *DeviceHardware_FieldTerminalPathValue) AsSerialNumberValue() (string, bool) {
   673  	res, ok := fpv.value.(string)
   674  	return res, ok
   675  }
   676  func (fpv *DeviceHardware_FieldTerminalPathValue) AsManufacturerValue() (string, bool) {
   677  	res, ok := fpv.value.(string)
   678  	return res, ok
   679  }
   680  func (fpv *DeviceHardware_FieldTerminalPathValue) AsProductNameValue() (string, bool) {
   681  	res, ok := fpv.value.(string)
   682  	return res, ok
   683  }
   684  func (fpv *DeviceHardware_FieldTerminalPathValue) AsMacAddressValue() ([]string, bool) {
   685  	res, ok := fpv.value.([]string)
   686  	return res, ok
   687  }
   688  func (fpv *DeviceHardware_FieldTerminalPathValue) AsSimIccidValue() (string, bool) {
   689  	res, ok := fpv.value.(string)
   690  	return res, ok
   691  }
   692  func (fpv *DeviceHardware_FieldTerminalPathValue) AsImeiValue() (string, bool) {
   693  	res, ok := fpv.value.(string)
   694  	return res, ok
   695  }
   696  func (fpv *DeviceHardware_FieldTerminalPathValue) AsAssociatedProvisioningPolicyNameValue() (*provisioning_policy.Reference, bool) {
   697  	res, ok := fpv.value.(*provisioning_policy.Reference)
   698  	return res, ok
   699  }
   700  func (fpv *DeviceHardware_FieldTerminalPathValue) AsAssociatedDeviceValue() (*device.Reference, bool) {
   701  	res, ok := fpv.value.(*device.Reference)
   702  	return res, ok
   703  }
   704  func (fpv *DeviceHardware_FieldTerminalPathValue) AsAssociatedSimCardValue() (*cellular_api_sim_card.Reference, bool) {
   705  	res, ok := fpv.value.(*cellular_api_sim_card.Reference)
   706  	return res, ok
   707  }
   708  func (fpv *DeviceHardware_FieldTerminalPathValue) AsStatusValue() (*DeviceHardware_Status, bool) {
   709  	res, ok := fpv.value.(*DeviceHardware_Status)
   710  	return res, ok
   711  }
   712  
   713  // SetTo stores value for selected field for object DeviceHardware
   714  func (fpv *DeviceHardware_FieldTerminalPathValue) SetTo(target **DeviceHardware) {
   715  	if *target == nil {
   716  		*target = new(DeviceHardware)
   717  	}
   718  	switch fpv.selector {
   719  	case DeviceHardware_FieldPathSelectorName:
   720  		(*target).Name = fpv.value.(*Name)
   721  	case DeviceHardware_FieldPathSelectorMetadata:
   722  		(*target).Metadata = fpv.value.(*meta.Meta)
   723  	case DeviceHardware_FieldPathSelectorDisplayName:
   724  		(*target).DisplayName = fpv.value.(string)
   725  	case DeviceHardware_FieldPathSelectorSerialNumber:
   726  		(*target).SerialNumber = fpv.value.(string)
   727  	case DeviceHardware_FieldPathSelectorManufacturer:
   728  		(*target).Manufacturer = fpv.value.(string)
   729  	case DeviceHardware_FieldPathSelectorProductName:
   730  		(*target).ProductName = fpv.value.(string)
   731  	case DeviceHardware_FieldPathSelectorMacAddress:
   732  		(*target).MacAddress = fpv.value.([]string)
   733  	case DeviceHardware_FieldPathSelectorSimIccid:
   734  		(*target).SimIccid = fpv.value.(string)
   735  	case DeviceHardware_FieldPathSelectorImei:
   736  		(*target).Imei = fpv.value.(string)
   737  	case DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName:
   738  		(*target).AssociatedProvisioningPolicyName = fpv.value.(*provisioning_policy.Reference)
   739  	case DeviceHardware_FieldPathSelectorAssociatedDevice:
   740  		(*target).AssociatedDevice = fpv.value.(*device.Reference)
   741  	case DeviceHardware_FieldPathSelectorAssociatedSimCard:
   742  		(*target).AssociatedSimCard = fpv.value.(*cellular_api_sim_card.Reference)
   743  	case DeviceHardware_FieldPathSelectorStatus:
   744  		(*target).Status = fpv.value.(*DeviceHardware_Status)
   745  	default:
   746  		panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fpv.selector))
   747  	}
   748  }
   749  
   750  func (fpv *DeviceHardware_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   751  	typedObject := target.(*DeviceHardware)
   752  	fpv.SetTo(&typedObject)
   753  }
   754  
   755  // CompareWith compares value in the 'DeviceHardware_FieldTerminalPathValue' with the value under path in 'DeviceHardware'.
   756  func (fpv *DeviceHardware_FieldTerminalPathValue) CompareWith(source *DeviceHardware) (int, bool) {
   757  	switch fpv.selector {
   758  	case DeviceHardware_FieldPathSelectorName:
   759  		leftValue := fpv.value.(*Name)
   760  		rightValue := source.GetName()
   761  		if leftValue == nil {
   762  			if rightValue != nil {
   763  				return -1, true
   764  			}
   765  			return 0, true
   766  		}
   767  		if rightValue == nil {
   768  			return 1, true
   769  		}
   770  		if leftValue.String() == rightValue.String() {
   771  			return 0, true
   772  		} else if leftValue.String() < rightValue.String() {
   773  			return -1, true
   774  		} else {
   775  			return 1, true
   776  		}
   777  	case DeviceHardware_FieldPathSelectorMetadata:
   778  		return 0, false
   779  	case DeviceHardware_FieldPathSelectorDisplayName:
   780  		leftValue := fpv.value.(string)
   781  		rightValue := source.GetDisplayName()
   782  		if (leftValue) == (rightValue) {
   783  			return 0, true
   784  		} else if (leftValue) < (rightValue) {
   785  			return -1, true
   786  		} else {
   787  			return 1, true
   788  		}
   789  	case DeviceHardware_FieldPathSelectorSerialNumber:
   790  		leftValue := fpv.value.(string)
   791  		rightValue := source.GetSerialNumber()
   792  		if (leftValue) == (rightValue) {
   793  			return 0, true
   794  		} else if (leftValue) < (rightValue) {
   795  			return -1, true
   796  		} else {
   797  			return 1, true
   798  		}
   799  	case DeviceHardware_FieldPathSelectorManufacturer:
   800  		leftValue := fpv.value.(string)
   801  		rightValue := source.GetManufacturer()
   802  		if (leftValue) == (rightValue) {
   803  			return 0, true
   804  		} else if (leftValue) < (rightValue) {
   805  			return -1, true
   806  		} else {
   807  			return 1, true
   808  		}
   809  	case DeviceHardware_FieldPathSelectorProductName:
   810  		leftValue := fpv.value.(string)
   811  		rightValue := source.GetProductName()
   812  		if (leftValue) == (rightValue) {
   813  			return 0, true
   814  		} else if (leftValue) < (rightValue) {
   815  			return -1, true
   816  		} else {
   817  			return 1, true
   818  		}
   819  	case DeviceHardware_FieldPathSelectorMacAddress:
   820  		return 0, false
   821  	case DeviceHardware_FieldPathSelectorSimIccid:
   822  		leftValue := fpv.value.(string)
   823  		rightValue := source.GetSimIccid()
   824  		if (leftValue) == (rightValue) {
   825  			return 0, true
   826  		} else if (leftValue) < (rightValue) {
   827  			return -1, true
   828  		} else {
   829  			return 1, true
   830  		}
   831  	case DeviceHardware_FieldPathSelectorImei:
   832  		leftValue := fpv.value.(string)
   833  		rightValue := source.GetImei()
   834  		if (leftValue) == (rightValue) {
   835  			return 0, true
   836  		} else if (leftValue) < (rightValue) {
   837  			return -1, true
   838  		} else {
   839  			return 1, true
   840  		}
   841  	case DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName:
   842  		leftValue := fpv.value.(*provisioning_policy.Reference)
   843  		rightValue := source.GetAssociatedProvisioningPolicyName()
   844  		if leftValue == nil {
   845  			if rightValue != nil {
   846  				return -1, true
   847  			}
   848  			return 0, true
   849  		}
   850  		if rightValue == nil {
   851  			return 1, true
   852  		}
   853  		if leftValue.String() == rightValue.String() {
   854  			return 0, true
   855  		} else if leftValue.String() < rightValue.String() {
   856  			return -1, true
   857  		} else {
   858  			return 1, true
   859  		}
   860  	case DeviceHardware_FieldPathSelectorAssociatedDevice:
   861  		leftValue := fpv.value.(*device.Reference)
   862  		rightValue := source.GetAssociatedDevice()
   863  		if leftValue == nil {
   864  			if rightValue != nil {
   865  				return -1, true
   866  			}
   867  			return 0, true
   868  		}
   869  		if rightValue == nil {
   870  			return 1, true
   871  		}
   872  		if leftValue.String() == rightValue.String() {
   873  			return 0, true
   874  		} else if leftValue.String() < rightValue.String() {
   875  			return -1, true
   876  		} else {
   877  			return 1, true
   878  		}
   879  	case DeviceHardware_FieldPathSelectorAssociatedSimCard:
   880  		leftValue := fpv.value.(*cellular_api_sim_card.Reference)
   881  		rightValue := source.GetAssociatedSimCard()
   882  		if leftValue == nil {
   883  			if rightValue != nil {
   884  				return -1, true
   885  			}
   886  			return 0, true
   887  		}
   888  		if rightValue == nil {
   889  			return 1, true
   890  		}
   891  		if leftValue.String() == rightValue.String() {
   892  			return 0, true
   893  		} else if leftValue.String() < rightValue.String() {
   894  			return -1, true
   895  		} else {
   896  			return 1, true
   897  		}
   898  	case DeviceHardware_FieldPathSelectorStatus:
   899  		return 0, false
   900  	default:
   901  		panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fpv.selector))
   902  	}
   903  }
   904  
   905  func (fpv *DeviceHardware_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   906  	return fpv.CompareWith(source.(*DeviceHardware))
   907  }
   908  
   909  type DeviceHardware_FieldSubPathValue struct {
   910  	DeviceHardware_FieldPath
   911  	subPathValue gotenobject.FieldPathValue
   912  }
   913  
   914  var _ DeviceHardware_FieldPathValue = (*DeviceHardware_FieldSubPathValue)(nil)
   915  
   916  func (fpvs *DeviceHardware_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   917  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   918  	return res, ok
   919  }
   920  func (fpvs *DeviceHardware_FieldSubPathValue) AsStatusPathValue() (DeviceHardwareStatus_FieldPathValue, bool) {
   921  	res, ok := fpvs.subPathValue.(DeviceHardwareStatus_FieldPathValue)
   922  	return res, ok
   923  }
   924  
   925  func (fpvs *DeviceHardware_FieldSubPathValue) SetTo(target **DeviceHardware) {
   926  	if *target == nil {
   927  		*target = new(DeviceHardware)
   928  	}
   929  	switch fpvs.Selector() {
   930  	case DeviceHardware_FieldPathSelectorMetadata:
   931  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
   932  	case DeviceHardware_FieldPathSelectorStatus:
   933  		fpvs.subPathValue.(DeviceHardwareStatus_FieldPathValue).SetTo(&(*target).Status)
   934  	default:
   935  		panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fpvs.Selector()))
   936  	}
   937  }
   938  
   939  func (fpvs *DeviceHardware_FieldSubPathValue) SetToRaw(target proto.Message) {
   940  	typedObject := target.(*DeviceHardware)
   941  	fpvs.SetTo(&typedObject)
   942  }
   943  
   944  func (fpvs *DeviceHardware_FieldSubPathValue) GetRawValue() interface{} {
   945  	return fpvs.subPathValue.GetRawValue()
   946  }
   947  
   948  func (fpvs *DeviceHardware_FieldSubPathValue) CompareWith(source *DeviceHardware) (int, bool) {
   949  	switch fpvs.Selector() {
   950  	case DeviceHardware_FieldPathSelectorMetadata:
   951  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
   952  	case DeviceHardware_FieldPathSelectorStatus:
   953  		return fpvs.subPathValue.(DeviceHardwareStatus_FieldPathValue).CompareWith(source.GetStatus())
   954  	default:
   955  		panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fpvs.Selector()))
   956  	}
   957  }
   958  
   959  func (fpvs *DeviceHardware_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   960  	return fpvs.CompareWith(source.(*DeviceHardware))
   961  }
   962  
   963  // DeviceHardware_FieldPathArrayItemValue allows storing single item in Path-specific values for DeviceHardware according to their type
   964  // Present only for array (repeated) types.
   965  type DeviceHardware_FieldPathArrayItemValue interface {
   966  	gotenobject.FieldPathArrayItemValue
   967  	DeviceHardware_FieldPath
   968  	ContainsValue(*DeviceHardware) bool
   969  }
   970  
   971  // ParseDeviceHardware_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   972  func ParseDeviceHardware_FieldPathArrayItemValue(pathStr, valueStr string) (DeviceHardware_FieldPathArrayItemValue, error) {
   973  	fp, err := ParseDeviceHardware_FieldPath(pathStr)
   974  	if err != nil {
   975  		return nil, err
   976  	}
   977  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   978  	if err != nil {
   979  		return nil, status.Errorf(codes.InvalidArgument, "error parsing DeviceHardware field path array item value from %s: %v", valueStr, err)
   980  	}
   981  	return fpaiv.(DeviceHardware_FieldPathArrayItemValue), nil
   982  }
   983  
   984  func MustParseDeviceHardware_FieldPathArrayItemValue(pathStr, valueStr string) DeviceHardware_FieldPathArrayItemValue {
   985  	fpaiv, err := ParseDeviceHardware_FieldPathArrayItemValue(pathStr, valueStr)
   986  	if err != nil {
   987  		panic(err)
   988  	}
   989  	return fpaiv
   990  }
   991  
   992  type DeviceHardware_FieldTerminalPathArrayItemValue struct {
   993  	DeviceHardware_FieldTerminalPath
   994  	value interface{}
   995  }
   996  
   997  var _ DeviceHardware_FieldPathArrayItemValue = (*DeviceHardware_FieldTerminalPathArrayItemValue)(nil)
   998  
   999  // GetRawValue returns stored element value for array in object DeviceHardware as interface{}
  1000  func (fpaiv *DeviceHardware_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1001  	return fpaiv.value
  1002  }
  1003  func (fpaiv *DeviceHardware_FieldTerminalPathArrayItemValue) AsMacAddressItemValue() (string, bool) {
  1004  	res, ok := fpaiv.value.(string)
  1005  	return res, ok
  1006  }
  1007  
  1008  func (fpaiv *DeviceHardware_FieldTerminalPathArrayItemValue) GetSingle(source *DeviceHardware) (interface{}, bool) {
  1009  	return nil, false
  1010  }
  1011  
  1012  func (fpaiv *DeviceHardware_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1013  	return fpaiv.GetSingle(source.(*DeviceHardware))
  1014  }
  1015  
  1016  // Contains returns a boolean indicating if value that is being held is present in given 'DeviceHardware'
  1017  func (fpaiv *DeviceHardware_FieldTerminalPathArrayItemValue) ContainsValue(source *DeviceHardware) bool {
  1018  	slice := fpaiv.DeviceHardware_FieldTerminalPath.Get(source)
  1019  	for _, v := range slice {
  1020  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1021  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1022  				return true
  1023  			}
  1024  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1025  			return true
  1026  		}
  1027  	}
  1028  	return false
  1029  }
  1030  
  1031  type DeviceHardware_FieldSubPathArrayItemValue struct {
  1032  	DeviceHardware_FieldPath
  1033  	subPathItemValue gotenobject.FieldPathArrayItemValue
  1034  }
  1035  
  1036  // GetRawValue returns stored array item value
  1037  func (fpaivs *DeviceHardware_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  1038  	return fpaivs.subPathItemValue.GetRawItemValue()
  1039  }
  1040  func (fpaivs *DeviceHardware_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
  1041  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
  1042  	return res, ok
  1043  }
  1044  func (fpaivs *DeviceHardware_FieldSubPathArrayItemValue) AsStatusPathItemValue() (DeviceHardwareStatus_FieldPathArrayItemValue, bool) {
  1045  	res, ok := fpaivs.subPathItemValue.(DeviceHardwareStatus_FieldPathArrayItemValue)
  1046  	return res, ok
  1047  }
  1048  
  1049  // Contains returns a boolean indicating if value that is being held is present in given 'DeviceHardware'
  1050  func (fpaivs *DeviceHardware_FieldSubPathArrayItemValue) ContainsValue(source *DeviceHardware) bool {
  1051  	switch fpaivs.Selector() {
  1052  	case DeviceHardware_FieldPathSelectorMetadata:
  1053  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
  1054  	case DeviceHardware_FieldPathSelectorStatus:
  1055  		return fpaivs.subPathItemValue.(DeviceHardwareStatus_FieldPathArrayItemValue).ContainsValue(source.GetStatus())
  1056  	default:
  1057  		panic(fmt.Sprintf("Invalid selector for DeviceHardware: %d", fpaivs.Selector()))
  1058  	}
  1059  }
  1060  
  1061  // DeviceHardware_FieldPathArrayOfValues allows storing slice of values for DeviceHardware fields according to their type
  1062  type DeviceHardware_FieldPathArrayOfValues interface {
  1063  	gotenobject.FieldPathArrayOfValues
  1064  	DeviceHardware_FieldPath
  1065  }
  1066  
  1067  func ParseDeviceHardware_FieldPathArrayOfValues(pathStr, valuesStr string) (DeviceHardware_FieldPathArrayOfValues, error) {
  1068  	fp, err := ParseDeviceHardware_FieldPath(pathStr)
  1069  	if err != nil {
  1070  		return nil, err
  1071  	}
  1072  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1073  	if err != nil {
  1074  		return nil, status.Errorf(codes.InvalidArgument, "error parsing DeviceHardware field path array of values from %s: %v", valuesStr, err)
  1075  	}
  1076  	return fpaov.(DeviceHardware_FieldPathArrayOfValues), nil
  1077  }
  1078  
  1079  func MustParseDeviceHardware_FieldPathArrayOfValues(pathStr, valuesStr string) DeviceHardware_FieldPathArrayOfValues {
  1080  	fpaov, err := ParseDeviceHardware_FieldPathArrayOfValues(pathStr, valuesStr)
  1081  	if err != nil {
  1082  		panic(err)
  1083  	}
  1084  	return fpaov
  1085  }
  1086  
  1087  type DeviceHardware_FieldTerminalPathArrayOfValues struct {
  1088  	DeviceHardware_FieldTerminalPath
  1089  	values interface{}
  1090  }
  1091  
  1092  var _ DeviceHardware_FieldPathArrayOfValues = (*DeviceHardware_FieldTerminalPathArrayOfValues)(nil)
  1093  
  1094  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1095  	switch fpaov.selector {
  1096  	case DeviceHardware_FieldPathSelectorName:
  1097  		for _, v := range fpaov.values.([]*Name) {
  1098  			values = append(values, v)
  1099  		}
  1100  	case DeviceHardware_FieldPathSelectorMetadata:
  1101  		for _, v := range fpaov.values.([]*meta.Meta) {
  1102  			values = append(values, v)
  1103  		}
  1104  	case DeviceHardware_FieldPathSelectorDisplayName:
  1105  		for _, v := range fpaov.values.([]string) {
  1106  			values = append(values, v)
  1107  		}
  1108  	case DeviceHardware_FieldPathSelectorSerialNumber:
  1109  		for _, v := range fpaov.values.([]string) {
  1110  			values = append(values, v)
  1111  		}
  1112  	case DeviceHardware_FieldPathSelectorManufacturer:
  1113  		for _, v := range fpaov.values.([]string) {
  1114  			values = append(values, v)
  1115  		}
  1116  	case DeviceHardware_FieldPathSelectorProductName:
  1117  		for _, v := range fpaov.values.([]string) {
  1118  			values = append(values, v)
  1119  		}
  1120  	case DeviceHardware_FieldPathSelectorMacAddress:
  1121  		for _, v := range fpaov.values.([][]string) {
  1122  			values = append(values, v)
  1123  		}
  1124  	case DeviceHardware_FieldPathSelectorSimIccid:
  1125  		for _, v := range fpaov.values.([]string) {
  1126  			values = append(values, v)
  1127  		}
  1128  	case DeviceHardware_FieldPathSelectorImei:
  1129  		for _, v := range fpaov.values.([]string) {
  1130  			values = append(values, v)
  1131  		}
  1132  	case DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName:
  1133  		for _, v := range fpaov.values.([]*provisioning_policy.Reference) {
  1134  			values = append(values, v)
  1135  		}
  1136  	case DeviceHardware_FieldPathSelectorAssociatedDevice:
  1137  		for _, v := range fpaov.values.([]*device.Reference) {
  1138  			values = append(values, v)
  1139  		}
  1140  	case DeviceHardware_FieldPathSelectorAssociatedSimCard:
  1141  		for _, v := range fpaov.values.([]*cellular_api_sim_card.Reference) {
  1142  			values = append(values, v)
  1143  		}
  1144  	case DeviceHardware_FieldPathSelectorStatus:
  1145  		for _, v := range fpaov.values.([]*DeviceHardware_Status) {
  1146  			values = append(values, v)
  1147  		}
  1148  	}
  1149  	return
  1150  }
  1151  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
  1152  	res, ok := fpaov.values.([]*Name)
  1153  	return res, ok
  1154  }
  1155  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
  1156  	res, ok := fpaov.values.([]*meta.Meta)
  1157  	return res, ok
  1158  }
  1159  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) AsDisplayNameArrayOfValues() ([]string, bool) {
  1160  	res, ok := fpaov.values.([]string)
  1161  	return res, ok
  1162  }
  1163  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) AsSerialNumberArrayOfValues() ([]string, bool) {
  1164  	res, ok := fpaov.values.([]string)
  1165  	return res, ok
  1166  }
  1167  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) AsManufacturerArrayOfValues() ([]string, bool) {
  1168  	res, ok := fpaov.values.([]string)
  1169  	return res, ok
  1170  }
  1171  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) AsProductNameArrayOfValues() ([]string, bool) {
  1172  	res, ok := fpaov.values.([]string)
  1173  	return res, ok
  1174  }
  1175  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) AsMacAddressArrayOfValues() ([][]string, bool) {
  1176  	res, ok := fpaov.values.([][]string)
  1177  	return res, ok
  1178  }
  1179  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) AsSimIccidArrayOfValues() ([]string, bool) {
  1180  	res, ok := fpaov.values.([]string)
  1181  	return res, ok
  1182  }
  1183  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) AsImeiArrayOfValues() ([]string, bool) {
  1184  	res, ok := fpaov.values.([]string)
  1185  	return res, ok
  1186  }
  1187  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) AsAssociatedProvisioningPolicyNameArrayOfValues() ([]*provisioning_policy.Reference, bool) {
  1188  	res, ok := fpaov.values.([]*provisioning_policy.Reference)
  1189  	return res, ok
  1190  }
  1191  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) AsAssociatedDeviceArrayOfValues() ([]*device.Reference, bool) {
  1192  	res, ok := fpaov.values.([]*device.Reference)
  1193  	return res, ok
  1194  }
  1195  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) AsAssociatedSimCardArrayOfValues() ([]*cellular_api_sim_card.Reference, bool) {
  1196  	res, ok := fpaov.values.([]*cellular_api_sim_card.Reference)
  1197  	return res, ok
  1198  }
  1199  func (fpaov *DeviceHardware_FieldTerminalPathArrayOfValues) AsStatusArrayOfValues() ([]*DeviceHardware_Status, bool) {
  1200  	res, ok := fpaov.values.([]*DeviceHardware_Status)
  1201  	return res, ok
  1202  }
  1203  
  1204  type DeviceHardware_FieldSubPathArrayOfValues struct {
  1205  	DeviceHardware_FieldPath
  1206  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  1207  }
  1208  
  1209  var _ DeviceHardware_FieldPathArrayOfValues = (*DeviceHardware_FieldSubPathArrayOfValues)(nil)
  1210  
  1211  func (fpsaov *DeviceHardware_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  1212  	return fpsaov.subPathArrayOfValues.GetRawValues()
  1213  }
  1214  func (fpsaov *DeviceHardware_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
  1215  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
  1216  	return res, ok
  1217  }
  1218  func (fpsaov *DeviceHardware_FieldSubPathArrayOfValues) AsStatusPathArrayOfValues() (DeviceHardwareStatus_FieldPathArrayOfValues, bool) {
  1219  	res, ok := fpsaov.subPathArrayOfValues.(DeviceHardwareStatus_FieldPathArrayOfValues)
  1220  	return res, ok
  1221  }
  1222  
  1223  // FieldPath provides implementation to handle
  1224  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1225  type DeviceHardwareStatus_FieldPath interface {
  1226  	gotenobject.FieldPath
  1227  	Selector() DeviceHardwareStatus_FieldPathSelector
  1228  	Get(source *DeviceHardware_Status) []interface{}
  1229  	GetSingle(source *DeviceHardware_Status) (interface{}, bool)
  1230  	ClearValue(item *DeviceHardware_Status)
  1231  
  1232  	// Those methods build corresponding DeviceHardwareStatus_FieldPathValue
  1233  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1234  	WithIValue(value interface{}) DeviceHardwareStatus_FieldPathValue
  1235  	WithIArrayOfValues(values interface{}) DeviceHardwareStatus_FieldPathArrayOfValues
  1236  	WithIArrayItemValue(value interface{}) DeviceHardwareStatus_FieldPathArrayItemValue
  1237  }
  1238  
  1239  type DeviceHardwareStatus_FieldPathSelector int32
  1240  
  1241  const (
  1242  	DeviceHardwareStatus_FieldPathSelectorProvisioningState DeviceHardwareStatus_FieldPathSelector = 0
  1243  )
  1244  
  1245  func (s DeviceHardwareStatus_FieldPathSelector) String() string {
  1246  	switch s {
  1247  	case DeviceHardwareStatus_FieldPathSelectorProvisioningState:
  1248  		return "provisioning_state"
  1249  	default:
  1250  		panic(fmt.Sprintf("Invalid selector for DeviceHardware_Status: %d", s))
  1251  	}
  1252  }
  1253  
  1254  func BuildDeviceHardwareStatus_FieldPath(fp gotenobject.RawFieldPath) (DeviceHardwareStatus_FieldPath, error) {
  1255  	if len(fp) == 0 {
  1256  		return nil, status.Error(codes.InvalidArgument, "empty field path for object DeviceHardware_Status")
  1257  	}
  1258  	if len(fp) == 1 {
  1259  		switch fp[0] {
  1260  		case "provisioning_state", "provisioningState", "provisioning-state":
  1261  			return &DeviceHardwareStatus_FieldTerminalPath{selector: DeviceHardwareStatus_FieldPathSelectorProvisioningState}, nil
  1262  		}
  1263  	}
  1264  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object DeviceHardware_Status", fp)
  1265  }
  1266  
  1267  func ParseDeviceHardwareStatus_FieldPath(rawField string) (DeviceHardwareStatus_FieldPath, error) {
  1268  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1269  	if err != nil {
  1270  		return nil, err
  1271  	}
  1272  	return BuildDeviceHardwareStatus_FieldPath(fp)
  1273  }
  1274  
  1275  func MustParseDeviceHardwareStatus_FieldPath(rawField string) DeviceHardwareStatus_FieldPath {
  1276  	fp, err := ParseDeviceHardwareStatus_FieldPath(rawField)
  1277  	if err != nil {
  1278  		panic(err)
  1279  	}
  1280  	return fp
  1281  }
  1282  
  1283  type DeviceHardwareStatus_FieldTerminalPath struct {
  1284  	selector DeviceHardwareStatus_FieldPathSelector
  1285  }
  1286  
  1287  var _ DeviceHardwareStatus_FieldPath = (*DeviceHardwareStatus_FieldTerminalPath)(nil)
  1288  
  1289  func (fp *DeviceHardwareStatus_FieldTerminalPath) Selector() DeviceHardwareStatus_FieldPathSelector {
  1290  	return fp.selector
  1291  }
  1292  
  1293  // String returns path representation in proto convention
  1294  func (fp *DeviceHardwareStatus_FieldTerminalPath) String() string {
  1295  	return fp.selector.String()
  1296  }
  1297  
  1298  // JSONString returns path representation is JSON convention
  1299  func (fp *DeviceHardwareStatus_FieldTerminalPath) JSONString() string {
  1300  	return strcase.ToLowerCamel(fp.String())
  1301  }
  1302  
  1303  // Get returns all values pointed by specific field from source DeviceHardware_Status
  1304  func (fp *DeviceHardwareStatus_FieldTerminalPath) Get(source *DeviceHardware_Status) (values []interface{}) {
  1305  	if source != nil {
  1306  		switch fp.selector {
  1307  		case DeviceHardwareStatus_FieldPathSelectorProvisioningState:
  1308  			values = append(values, source.ProvisioningState)
  1309  		default:
  1310  			panic(fmt.Sprintf("Invalid selector for DeviceHardware_Status: %d", fp.selector))
  1311  		}
  1312  	}
  1313  	return
  1314  }
  1315  
  1316  func (fp *DeviceHardwareStatus_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1317  	return fp.Get(source.(*DeviceHardware_Status))
  1318  }
  1319  
  1320  // GetSingle returns value pointed by specific field of from source DeviceHardware_Status
  1321  func (fp *DeviceHardwareStatus_FieldTerminalPath) GetSingle(source *DeviceHardware_Status) (interface{}, bool) {
  1322  	switch fp.selector {
  1323  	case DeviceHardwareStatus_FieldPathSelectorProvisioningState:
  1324  		return source.GetProvisioningState(), source != nil
  1325  	default:
  1326  		panic(fmt.Sprintf("Invalid selector for DeviceHardware_Status: %d", fp.selector))
  1327  	}
  1328  }
  1329  
  1330  func (fp *DeviceHardwareStatus_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1331  	return fp.GetSingle(source.(*DeviceHardware_Status))
  1332  }
  1333  
  1334  // GetDefault returns a default value of the field type
  1335  func (fp *DeviceHardwareStatus_FieldTerminalPath) GetDefault() interface{} {
  1336  	switch fp.selector {
  1337  	case DeviceHardwareStatus_FieldPathSelectorProvisioningState:
  1338  		return DeviceHardware_Status_UNKNOWN
  1339  	default:
  1340  		panic(fmt.Sprintf("Invalid selector for DeviceHardware_Status: %d", fp.selector))
  1341  	}
  1342  }
  1343  
  1344  func (fp *DeviceHardwareStatus_FieldTerminalPath) ClearValue(item *DeviceHardware_Status) {
  1345  	if item != nil {
  1346  		switch fp.selector {
  1347  		case DeviceHardwareStatus_FieldPathSelectorProvisioningState:
  1348  			item.ProvisioningState = DeviceHardware_Status_UNKNOWN
  1349  		default:
  1350  			panic(fmt.Sprintf("Invalid selector for DeviceHardware_Status: %d", fp.selector))
  1351  		}
  1352  	}
  1353  }
  1354  
  1355  func (fp *DeviceHardwareStatus_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1356  	fp.ClearValue(item.(*DeviceHardware_Status))
  1357  }
  1358  
  1359  // IsLeaf - whether field path is holds simple value
  1360  func (fp *DeviceHardwareStatus_FieldTerminalPath) IsLeaf() bool {
  1361  	return fp.selector == DeviceHardwareStatus_FieldPathSelectorProvisioningState
  1362  }
  1363  
  1364  func (fp *DeviceHardwareStatus_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1365  	return []gotenobject.FieldPath{fp}
  1366  }
  1367  
  1368  func (fp *DeviceHardwareStatus_FieldTerminalPath) WithIValue(value interface{}) DeviceHardwareStatus_FieldPathValue {
  1369  	switch fp.selector {
  1370  	case DeviceHardwareStatus_FieldPathSelectorProvisioningState:
  1371  		return &DeviceHardwareStatus_FieldTerminalPathValue{DeviceHardwareStatus_FieldTerminalPath: *fp, value: value.(DeviceHardware_Status_PROVISIONING_STATE)}
  1372  	default:
  1373  		panic(fmt.Sprintf("Invalid selector for DeviceHardware_Status: %d", fp.selector))
  1374  	}
  1375  }
  1376  
  1377  func (fp *DeviceHardwareStatus_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1378  	return fp.WithIValue(value)
  1379  }
  1380  
  1381  func (fp *DeviceHardwareStatus_FieldTerminalPath) WithIArrayOfValues(values interface{}) DeviceHardwareStatus_FieldPathArrayOfValues {
  1382  	fpaov := &DeviceHardwareStatus_FieldTerminalPathArrayOfValues{DeviceHardwareStatus_FieldTerminalPath: *fp}
  1383  	switch fp.selector {
  1384  	case DeviceHardwareStatus_FieldPathSelectorProvisioningState:
  1385  		return &DeviceHardwareStatus_FieldTerminalPathArrayOfValues{DeviceHardwareStatus_FieldTerminalPath: *fp, values: values.([]DeviceHardware_Status_PROVISIONING_STATE)}
  1386  	default:
  1387  		panic(fmt.Sprintf("Invalid selector for DeviceHardware_Status: %d", fp.selector))
  1388  	}
  1389  	return fpaov
  1390  }
  1391  
  1392  func (fp *DeviceHardwareStatus_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1393  	return fp.WithIArrayOfValues(values)
  1394  }
  1395  
  1396  func (fp *DeviceHardwareStatus_FieldTerminalPath) WithIArrayItemValue(value interface{}) DeviceHardwareStatus_FieldPathArrayItemValue {
  1397  	switch fp.selector {
  1398  	default:
  1399  		panic(fmt.Sprintf("Invalid selector for DeviceHardware_Status: %d", fp.selector))
  1400  	}
  1401  }
  1402  
  1403  func (fp *DeviceHardwareStatus_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1404  	return fp.WithIArrayItemValue(value)
  1405  }
  1406  
  1407  // DeviceHardwareStatus_FieldPathValue allows storing values for Status fields according to their type
  1408  type DeviceHardwareStatus_FieldPathValue interface {
  1409  	DeviceHardwareStatus_FieldPath
  1410  	gotenobject.FieldPathValue
  1411  	SetTo(target **DeviceHardware_Status)
  1412  	CompareWith(*DeviceHardware_Status) (cmp int, comparable bool)
  1413  }
  1414  
  1415  func ParseDeviceHardwareStatus_FieldPathValue(pathStr, valueStr string) (DeviceHardwareStatus_FieldPathValue, error) {
  1416  	fp, err := ParseDeviceHardwareStatus_FieldPath(pathStr)
  1417  	if err != nil {
  1418  		return nil, err
  1419  	}
  1420  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1421  	if err != nil {
  1422  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Status field path value from %s: %v", valueStr, err)
  1423  	}
  1424  	return fpv.(DeviceHardwareStatus_FieldPathValue), nil
  1425  }
  1426  
  1427  func MustParseDeviceHardwareStatus_FieldPathValue(pathStr, valueStr string) DeviceHardwareStatus_FieldPathValue {
  1428  	fpv, err := ParseDeviceHardwareStatus_FieldPathValue(pathStr, valueStr)
  1429  	if err != nil {
  1430  		panic(err)
  1431  	}
  1432  	return fpv
  1433  }
  1434  
  1435  type DeviceHardwareStatus_FieldTerminalPathValue struct {
  1436  	DeviceHardwareStatus_FieldTerminalPath
  1437  	value interface{}
  1438  }
  1439  
  1440  var _ DeviceHardwareStatus_FieldPathValue = (*DeviceHardwareStatus_FieldTerminalPathValue)(nil)
  1441  
  1442  // GetRawValue returns raw value stored under selected path for 'Status' as interface{}
  1443  func (fpv *DeviceHardwareStatus_FieldTerminalPathValue) GetRawValue() interface{} {
  1444  	return fpv.value
  1445  }
  1446  func (fpv *DeviceHardwareStatus_FieldTerminalPathValue) AsProvisioningStateValue() (DeviceHardware_Status_PROVISIONING_STATE, bool) {
  1447  	res, ok := fpv.value.(DeviceHardware_Status_PROVISIONING_STATE)
  1448  	return res, ok
  1449  }
  1450  
  1451  // SetTo stores value for selected field for object Status
  1452  func (fpv *DeviceHardwareStatus_FieldTerminalPathValue) SetTo(target **DeviceHardware_Status) {
  1453  	if *target == nil {
  1454  		*target = new(DeviceHardware_Status)
  1455  	}
  1456  	switch fpv.selector {
  1457  	case DeviceHardwareStatus_FieldPathSelectorProvisioningState:
  1458  		(*target).ProvisioningState = fpv.value.(DeviceHardware_Status_PROVISIONING_STATE)
  1459  	default:
  1460  		panic(fmt.Sprintf("Invalid selector for DeviceHardware_Status: %d", fpv.selector))
  1461  	}
  1462  }
  1463  
  1464  func (fpv *DeviceHardwareStatus_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1465  	typedObject := target.(*DeviceHardware_Status)
  1466  	fpv.SetTo(&typedObject)
  1467  }
  1468  
  1469  // CompareWith compares value in the 'DeviceHardwareStatus_FieldTerminalPathValue' with the value under path in 'DeviceHardware_Status'.
  1470  func (fpv *DeviceHardwareStatus_FieldTerminalPathValue) CompareWith(source *DeviceHardware_Status) (int, bool) {
  1471  	switch fpv.selector {
  1472  	case DeviceHardwareStatus_FieldPathSelectorProvisioningState:
  1473  		leftValue := fpv.value.(DeviceHardware_Status_PROVISIONING_STATE)
  1474  		rightValue := source.GetProvisioningState()
  1475  		if (leftValue) == (rightValue) {
  1476  			return 0, true
  1477  		} else if (leftValue) < (rightValue) {
  1478  			return -1, true
  1479  		} else {
  1480  			return 1, true
  1481  		}
  1482  	default:
  1483  		panic(fmt.Sprintf("Invalid selector for DeviceHardware_Status: %d", fpv.selector))
  1484  	}
  1485  }
  1486  
  1487  func (fpv *DeviceHardwareStatus_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1488  	return fpv.CompareWith(source.(*DeviceHardware_Status))
  1489  }
  1490  
  1491  // DeviceHardwareStatus_FieldPathArrayItemValue allows storing single item in Path-specific values for Status according to their type
  1492  // Present only for array (repeated) types.
  1493  type DeviceHardwareStatus_FieldPathArrayItemValue interface {
  1494  	gotenobject.FieldPathArrayItemValue
  1495  	DeviceHardwareStatus_FieldPath
  1496  	ContainsValue(*DeviceHardware_Status) bool
  1497  }
  1498  
  1499  // ParseDeviceHardwareStatus_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1500  func ParseDeviceHardwareStatus_FieldPathArrayItemValue(pathStr, valueStr string) (DeviceHardwareStatus_FieldPathArrayItemValue, error) {
  1501  	fp, err := ParseDeviceHardwareStatus_FieldPath(pathStr)
  1502  	if err != nil {
  1503  		return nil, err
  1504  	}
  1505  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1506  	if err != nil {
  1507  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Status field path array item value from %s: %v", valueStr, err)
  1508  	}
  1509  	return fpaiv.(DeviceHardwareStatus_FieldPathArrayItemValue), nil
  1510  }
  1511  
  1512  func MustParseDeviceHardwareStatus_FieldPathArrayItemValue(pathStr, valueStr string) DeviceHardwareStatus_FieldPathArrayItemValue {
  1513  	fpaiv, err := ParseDeviceHardwareStatus_FieldPathArrayItemValue(pathStr, valueStr)
  1514  	if err != nil {
  1515  		panic(err)
  1516  	}
  1517  	return fpaiv
  1518  }
  1519  
  1520  type DeviceHardwareStatus_FieldTerminalPathArrayItemValue struct {
  1521  	DeviceHardwareStatus_FieldTerminalPath
  1522  	value interface{}
  1523  }
  1524  
  1525  var _ DeviceHardwareStatus_FieldPathArrayItemValue = (*DeviceHardwareStatus_FieldTerminalPathArrayItemValue)(nil)
  1526  
  1527  // GetRawValue returns stored element value for array in object DeviceHardware_Status as interface{}
  1528  func (fpaiv *DeviceHardwareStatus_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1529  	return fpaiv.value
  1530  }
  1531  
  1532  func (fpaiv *DeviceHardwareStatus_FieldTerminalPathArrayItemValue) GetSingle(source *DeviceHardware_Status) (interface{}, bool) {
  1533  	return nil, false
  1534  }
  1535  
  1536  func (fpaiv *DeviceHardwareStatus_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1537  	return fpaiv.GetSingle(source.(*DeviceHardware_Status))
  1538  }
  1539  
  1540  // Contains returns a boolean indicating if value that is being held is present in given 'Status'
  1541  func (fpaiv *DeviceHardwareStatus_FieldTerminalPathArrayItemValue) ContainsValue(source *DeviceHardware_Status) bool {
  1542  	slice := fpaiv.DeviceHardwareStatus_FieldTerminalPath.Get(source)
  1543  	for _, v := range slice {
  1544  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1545  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1546  				return true
  1547  			}
  1548  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1549  			return true
  1550  		}
  1551  	}
  1552  	return false
  1553  }
  1554  
  1555  // DeviceHardwareStatus_FieldPathArrayOfValues allows storing slice of values for Status fields according to their type
  1556  type DeviceHardwareStatus_FieldPathArrayOfValues interface {
  1557  	gotenobject.FieldPathArrayOfValues
  1558  	DeviceHardwareStatus_FieldPath
  1559  }
  1560  
  1561  func ParseDeviceHardwareStatus_FieldPathArrayOfValues(pathStr, valuesStr string) (DeviceHardwareStatus_FieldPathArrayOfValues, error) {
  1562  	fp, err := ParseDeviceHardwareStatus_FieldPath(pathStr)
  1563  	if err != nil {
  1564  		return nil, err
  1565  	}
  1566  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1567  	if err != nil {
  1568  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Status field path array of values from %s: %v", valuesStr, err)
  1569  	}
  1570  	return fpaov.(DeviceHardwareStatus_FieldPathArrayOfValues), nil
  1571  }
  1572  
  1573  func MustParseDeviceHardwareStatus_FieldPathArrayOfValues(pathStr, valuesStr string) DeviceHardwareStatus_FieldPathArrayOfValues {
  1574  	fpaov, err := ParseDeviceHardwareStatus_FieldPathArrayOfValues(pathStr, valuesStr)
  1575  	if err != nil {
  1576  		panic(err)
  1577  	}
  1578  	return fpaov
  1579  }
  1580  
  1581  type DeviceHardwareStatus_FieldTerminalPathArrayOfValues struct {
  1582  	DeviceHardwareStatus_FieldTerminalPath
  1583  	values interface{}
  1584  }
  1585  
  1586  var _ DeviceHardwareStatus_FieldPathArrayOfValues = (*DeviceHardwareStatus_FieldTerminalPathArrayOfValues)(nil)
  1587  
  1588  func (fpaov *DeviceHardwareStatus_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1589  	switch fpaov.selector {
  1590  	case DeviceHardwareStatus_FieldPathSelectorProvisioningState:
  1591  		for _, v := range fpaov.values.([]DeviceHardware_Status_PROVISIONING_STATE) {
  1592  			values = append(values, v)
  1593  		}
  1594  	}
  1595  	return
  1596  }
  1597  func (fpaov *DeviceHardwareStatus_FieldTerminalPathArrayOfValues) AsProvisioningStateArrayOfValues() ([]DeviceHardware_Status_PROVISIONING_STATE, bool) {
  1598  	res, ok := fpaov.values.([]DeviceHardware_Status_PROVISIONING_STATE)
  1599  	return res, ok
  1600  }