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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/devices/proto/v1alpha2/os_version.proto
     3  // DO NOT EDIT!!!
     4  
     5  package os_version
     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  	device_type "github.com/cloudwan/edgelq-sdk/devices/resources/v1alpha2/device_type"
    27  	meta "github.com/cloudwan/goten-sdk/types/meta"
    28  )
    29  
    30  // ensure the imports are used
    31  var (
    32  	_ = new(json.Marshaler)
    33  	_ = new(fmt.Stringer)
    34  	_ = reflect.DeepEqual
    35  	_ = strings.Builder{}
    36  	_ = time.Second
    37  
    38  	_ = strcase.ToLowerCamel
    39  	_ = codes.NotFound
    40  	_ = status.Status{}
    41  	_ = protojson.UnmarshalOptions{}
    42  	_ = new(proto.Message)
    43  	_ = protoregistry.GlobalTypes
    44  
    45  	_ = new(gotenobject.FieldPath)
    46  )
    47  
    48  // make sure we're using proto imports
    49  var (
    50  	_ = &device_type.DeviceType{}
    51  	_ = &meta.Meta{}
    52  )
    53  
    54  // FieldPath provides implementation to handle
    55  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    56  type OsVersion_FieldPath interface {
    57  	gotenobject.FieldPath
    58  	Selector() OsVersion_FieldPathSelector
    59  	Get(source *OsVersion) []interface{}
    60  	GetSingle(source *OsVersion) (interface{}, bool)
    61  	ClearValue(item *OsVersion)
    62  
    63  	// Those methods build corresponding OsVersion_FieldPathValue
    64  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    65  	WithIValue(value interface{}) OsVersion_FieldPathValue
    66  	WithIArrayOfValues(values interface{}) OsVersion_FieldPathArrayOfValues
    67  	WithIArrayItemValue(value interface{}) OsVersion_FieldPathArrayItemValue
    68  }
    69  
    70  type OsVersion_FieldPathSelector int32
    71  
    72  const (
    73  	OsVersion_FieldPathSelectorName                   OsVersion_FieldPathSelector = 0
    74  	OsVersion_FieldPathSelectorMetadata               OsVersion_FieldPathSelector = 1
    75  	OsVersion_FieldPathSelectorVersion                OsVersion_FieldPathSelector = 2
    76  	OsVersion_FieldPathSelectorDeviceType             OsVersion_FieldPathSelector = 3
    77  	OsVersion_FieldPathSelectorMinimumPreviousVersion OsVersion_FieldPathSelector = 4
    78  	OsVersion_FieldPathSelectorChannel                OsVersion_FieldPathSelector = 5
    79  )
    80  
    81  func (s OsVersion_FieldPathSelector) String() string {
    82  	switch s {
    83  	case OsVersion_FieldPathSelectorName:
    84  		return "name"
    85  	case OsVersion_FieldPathSelectorMetadata:
    86  		return "metadata"
    87  	case OsVersion_FieldPathSelectorVersion:
    88  		return "version"
    89  	case OsVersion_FieldPathSelectorDeviceType:
    90  		return "device_type"
    91  	case OsVersion_FieldPathSelectorMinimumPreviousVersion:
    92  		return "minimum_previous_version"
    93  	case OsVersion_FieldPathSelectorChannel:
    94  		return "channel"
    95  	default:
    96  		panic(fmt.Sprintf("Invalid selector for OsVersion: %d", s))
    97  	}
    98  }
    99  
   100  func BuildOsVersion_FieldPath(fp gotenobject.RawFieldPath) (OsVersion_FieldPath, error) {
   101  	if len(fp) == 0 {
   102  		return nil, status.Error(codes.InvalidArgument, "empty field path for object OsVersion")
   103  	}
   104  	if len(fp) == 1 {
   105  		switch fp[0] {
   106  		case "name":
   107  			return &OsVersion_FieldTerminalPath{selector: OsVersion_FieldPathSelectorName}, nil
   108  		case "metadata":
   109  			return &OsVersion_FieldTerminalPath{selector: OsVersion_FieldPathSelectorMetadata}, nil
   110  		case "version":
   111  			return &OsVersion_FieldTerminalPath{selector: OsVersion_FieldPathSelectorVersion}, nil
   112  		case "device_type", "deviceType", "device-type":
   113  			return &OsVersion_FieldTerminalPath{selector: OsVersion_FieldPathSelectorDeviceType}, nil
   114  		case "minimum_previous_version", "minimumPreviousVersion", "minimum-previous-version":
   115  			return &OsVersion_FieldTerminalPath{selector: OsVersion_FieldPathSelectorMinimumPreviousVersion}, nil
   116  		case "channel":
   117  			return &OsVersion_FieldTerminalPath{selector: OsVersion_FieldPathSelectorChannel}, nil
   118  		}
   119  	} else {
   120  		switch fp[0] {
   121  		case "metadata":
   122  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   123  				return nil, err
   124  			} else {
   125  				return &OsVersion_FieldSubPath{selector: OsVersion_FieldPathSelectorMetadata, subPath: subpath}, nil
   126  			}
   127  		}
   128  	}
   129  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object OsVersion", fp)
   130  }
   131  
   132  func ParseOsVersion_FieldPath(rawField string) (OsVersion_FieldPath, error) {
   133  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   134  	if err != nil {
   135  		return nil, err
   136  	}
   137  	return BuildOsVersion_FieldPath(fp)
   138  }
   139  
   140  func MustParseOsVersion_FieldPath(rawField string) OsVersion_FieldPath {
   141  	fp, err := ParseOsVersion_FieldPath(rawField)
   142  	if err != nil {
   143  		panic(err)
   144  	}
   145  	return fp
   146  }
   147  
   148  type OsVersion_FieldTerminalPath struct {
   149  	selector OsVersion_FieldPathSelector
   150  }
   151  
   152  var _ OsVersion_FieldPath = (*OsVersion_FieldTerminalPath)(nil)
   153  
   154  func (fp *OsVersion_FieldTerminalPath) Selector() OsVersion_FieldPathSelector {
   155  	return fp.selector
   156  }
   157  
   158  // String returns path representation in proto convention
   159  func (fp *OsVersion_FieldTerminalPath) String() string {
   160  	return fp.selector.String()
   161  }
   162  
   163  // JSONString returns path representation is JSON convention
   164  func (fp *OsVersion_FieldTerminalPath) JSONString() string {
   165  	return strcase.ToLowerCamel(fp.String())
   166  }
   167  
   168  // Get returns all values pointed by specific field from source OsVersion
   169  func (fp *OsVersion_FieldTerminalPath) Get(source *OsVersion) (values []interface{}) {
   170  	if source != nil {
   171  		switch fp.selector {
   172  		case OsVersion_FieldPathSelectorName:
   173  			if source.Name != nil {
   174  				values = append(values, source.Name)
   175  			}
   176  		case OsVersion_FieldPathSelectorMetadata:
   177  			if source.Metadata != nil {
   178  				values = append(values, source.Metadata)
   179  			}
   180  		case OsVersion_FieldPathSelectorVersion:
   181  			values = append(values, source.Version)
   182  		case OsVersion_FieldPathSelectorDeviceType:
   183  			if source.DeviceType != nil {
   184  				values = append(values, source.DeviceType)
   185  			}
   186  		case OsVersion_FieldPathSelectorMinimumPreviousVersion:
   187  			values = append(values, source.MinimumPreviousVersion)
   188  		case OsVersion_FieldPathSelectorChannel:
   189  			values = append(values, source.Channel)
   190  		default:
   191  			panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fp.selector))
   192  		}
   193  	}
   194  	return
   195  }
   196  
   197  func (fp *OsVersion_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   198  	return fp.Get(source.(*OsVersion))
   199  }
   200  
   201  // GetSingle returns value pointed by specific field of from source OsVersion
   202  func (fp *OsVersion_FieldTerminalPath) GetSingle(source *OsVersion) (interface{}, bool) {
   203  	switch fp.selector {
   204  	case OsVersion_FieldPathSelectorName:
   205  		res := source.GetName()
   206  		return res, res != nil
   207  	case OsVersion_FieldPathSelectorMetadata:
   208  		res := source.GetMetadata()
   209  		return res, res != nil
   210  	case OsVersion_FieldPathSelectorVersion:
   211  		return source.GetVersion(), source != nil
   212  	case OsVersion_FieldPathSelectorDeviceType:
   213  		res := source.GetDeviceType()
   214  		return res, res != nil
   215  	case OsVersion_FieldPathSelectorMinimumPreviousVersion:
   216  		return source.GetMinimumPreviousVersion(), source != nil
   217  	case OsVersion_FieldPathSelectorChannel:
   218  		return source.GetChannel(), source != nil
   219  	default:
   220  		panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fp.selector))
   221  	}
   222  }
   223  
   224  func (fp *OsVersion_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   225  	return fp.GetSingle(source.(*OsVersion))
   226  }
   227  
   228  // GetDefault returns a default value of the field type
   229  func (fp *OsVersion_FieldTerminalPath) GetDefault() interface{} {
   230  	switch fp.selector {
   231  	case OsVersion_FieldPathSelectorName:
   232  		return (*Name)(nil)
   233  	case OsVersion_FieldPathSelectorMetadata:
   234  		return (*meta.Meta)(nil)
   235  	case OsVersion_FieldPathSelectorVersion:
   236  		return ""
   237  	case OsVersion_FieldPathSelectorDeviceType:
   238  		return (*device_type.Reference)(nil)
   239  	case OsVersion_FieldPathSelectorMinimumPreviousVersion:
   240  		return ""
   241  	case OsVersion_FieldPathSelectorChannel:
   242  		return OsVersion_CHANNEL_UNSPECIFIED
   243  	default:
   244  		panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fp.selector))
   245  	}
   246  }
   247  
   248  func (fp *OsVersion_FieldTerminalPath) ClearValue(item *OsVersion) {
   249  	if item != nil {
   250  		switch fp.selector {
   251  		case OsVersion_FieldPathSelectorName:
   252  			item.Name = nil
   253  		case OsVersion_FieldPathSelectorMetadata:
   254  			item.Metadata = nil
   255  		case OsVersion_FieldPathSelectorVersion:
   256  			item.Version = ""
   257  		case OsVersion_FieldPathSelectorDeviceType:
   258  			item.DeviceType = nil
   259  		case OsVersion_FieldPathSelectorMinimumPreviousVersion:
   260  			item.MinimumPreviousVersion = ""
   261  		case OsVersion_FieldPathSelectorChannel:
   262  			item.Channel = OsVersion_CHANNEL_UNSPECIFIED
   263  		default:
   264  			panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fp.selector))
   265  		}
   266  	}
   267  }
   268  
   269  func (fp *OsVersion_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   270  	fp.ClearValue(item.(*OsVersion))
   271  }
   272  
   273  // IsLeaf - whether field path is holds simple value
   274  func (fp *OsVersion_FieldTerminalPath) IsLeaf() bool {
   275  	return fp.selector == OsVersion_FieldPathSelectorName ||
   276  		fp.selector == OsVersion_FieldPathSelectorVersion ||
   277  		fp.selector == OsVersion_FieldPathSelectorDeviceType ||
   278  		fp.selector == OsVersion_FieldPathSelectorMinimumPreviousVersion ||
   279  		fp.selector == OsVersion_FieldPathSelectorChannel
   280  }
   281  
   282  func (fp *OsVersion_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   283  	return []gotenobject.FieldPath{fp}
   284  }
   285  
   286  func (fp *OsVersion_FieldTerminalPath) WithIValue(value interface{}) OsVersion_FieldPathValue {
   287  	switch fp.selector {
   288  	case OsVersion_FieldPathSelectorName:
   289  		return &OsVersion_FieldTerminalPathValue{OsVersion_FieldTerminalPath: *fp, value: value.(*Name)}
   290  	case OsVersion_FieldPathSelectorMetadata:
   291  		return &OsVersion_FieldTerminalPathValue{OsVersion_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   292  	case OsVersion_FieldPathSelectorVersion:
   293  		return &OsVersion_FieldTerminalPathValue{OsVersion_FieldTerminalPath: *fp, value: value.(string)}
   294  	case OsVersion_FieldPathSelectorDeviceType:
   295  		return &OsVersion_FieldTerminalPathValue{OsVersion_FieldTerminalPath: *fp, value: value.(*device_type.Reference)}
   296  	case OsVersion_FieldPathSelectorMinimumPreviousVersion:
   297  		return &OsVersion_FieldTerminalPathValue{OsVersion_FieldTerminalPath: *fp, value: value.(string)}
   298  	case OsVersion_FieldPathSelectorChannel:
   299  		return &OsVersion_FieldTerminalPathValue{OsVersion_FieldTerminalPath: *fp, value: value.(OsVersion_Channel)}
   300  	default:
   301  		panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fp.selector))
   302  	}
   303  }
   304  
   305  func (fp *OsVersion_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   306  	return fp.WithIValue(value)
   307  }
   308  
   309  func (fp *OsVersion_FieldTerminalPath) WithIArrayOfValues(values interface{}) OsVersion_FieldPathArrayOfValues {
   310  	fpaov := &OsVersion_FieldTerminalPathArrayOfValues{OsVersion_FieldTerminalPath: *fp}
   311  	switch fp.selector {
   312  	case OsVersion_FieldPathSelectorName:
   313  		return &OsVersion_FieldTerminalPathArrayOfValues{OsVersion_FieldTerminalPath: *fp, values: values.([]*Name)}
   314  	case OsVersion_FieldPathSelectorMetadata:
   315  		return &OsVersion_FieldTerminalPathArrayOfValues{OsVersion_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   316  	case OsVersion_FieldPathSelectorVersion:
   317  		return &OsVersion_FieldTerminalPathArrayOfValues{OsVersion_FieldTerminalPath: *fp, values: values.([]string)}
   318  	case OsVersion_FieldPathSelectorDeviceType:
   319  		return &OsVersion_FieldTerminalPathArrayOfValues{OsVersion_FieldTerminalPath: *fp, values: values.([]*device_type.Reference)}
   320  	case OsVersion_FieldPathSelectorMinimumPreviousVersion:
   321  		return &OsVersion_FieldTerminalPathArrayOfValues{OsVersion_FieldTerminalPath: *fp, values: values.([]string)}
   322  	case OsVersion_FieldPathSelectorChannel:
   323  		return &OsVersion_FieldTerminalPathArrayOfValues{OsVersion_FieldTerminalPath: *fp, values: values.([]OsVersion_Channel)}
   324  	default:
   325  		panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fp.selector))
   326  	}
   327  	return fpaov
   328  }
   329  
   330  func (fp *OsVersion_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   331  	return fp.WithIArrayOfValues(values)
   332  }
   333  
   334  func (fp *OsVersion_FieldTerminalPath) WithIArrayItemValue(value interface{}) OsVersion_FieldPathArrayItemValue {
   335  	switch fp.selector {
   336  	default:
   337  		panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fp.selector))
   338  	}
   339  }
   340  
   341  func (fp *OsVersion_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   342  	return fp.WithIArrayItemValue(value)
   343  }
   344  
   345  type OsVersion_FieldSubPath struct {
   346  	selector OsVersion_FieldPathSelector
   347  	subPath  gotenobject.FieldPath
   348  }
   349  
   350  var _ OsVersion_FieldPath = (*OsVersion_FieldSubPath)(nil)
   351  
   352  func (fps *OsVersion_FieldSubPath) Selector() OsVersion_FieldPathSelector {
   353  	return fps.selector
   354  }
   355  func (fps *OsVersion_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   356  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   357  	return res, ok
   358  }
   359  
   360  // String returns path representation in proto convention
   361  func (fps *OsVersion_FieldSubPath) String() string {
   362  	return fps.selector.String() + "." + fps.subPath.String()
   363  }
   364  
   365  // JSONString returns path representation is JSON convention
   366  func (fps *OsVersion_FieldSubPath) JSONString() string {
   367  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   368  }
   369  
   370  // Get returns all values pointed by selected field from source OsVersion
   371  func (fps *OsVersion_FieldSubPath) Get(source *OsVersion) (values []interface{}) {
   372  	switch fps.selector {
   373  	case OsVersion_FieldPathSelectorMetadata:
   374  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   375  	default:
   376  		panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fps.selector))
   377  	}
   378  	return
   379  }
   380  
   381  func (fps *OsVersion_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   382  	return fps.Get(source.(*OsVersion))
   383  }
   384  
   385  // GetSingle returns value of selected field from source OsVersion
   386  func (fps *OsVersion_FieldSubPath) GetSingle(source *OsVersion) (interface{}, bool) {
   387  	switch fps.selector {
   388  	case OsVersion_FieldPathSelectorMetadata:
   389  		if source.GetMetadata() == nil {
   390  			return nil, false
   391  		}
   392  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   393  	default:
   394  		panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fps.selector))
   395  	}
   396  }
   397  
   398  func (fps *OsVersion_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   399  	return fps.GetSingle(source.(*OsVersion))
   400  }
   401  
   402  // GetDefault returns a default value of the field type
   403  func (fps *OsVersion_FieldSubPath) GetDefault() interface{} {
   404  	return fps.subPath.GetDefault()
   405  }
   406  
   407  func (fps *OsVersion_FieldSubPath) ClearValue(item *OsVersion) {
   408  	if item != nil {
   409  		switch fps.selector {
   410  		case OsVersion_FieldPathSelectorMetadata:
   411  			fps.subPath.ClearValueRaw(item.Metadata)
   412  		default:
   413  			panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fps.selector))
   414  		}
   415  	}
   416  }
   417  
   418  func (fps *OsVersion_FieldSubPath) ClearValueRaw(item proto.Message) {
   419  	fps.ClearValue(item.(*OsVersion))
   420  }
   421  
   422  // IsLeaf - whether field path is holds simple value
   423  func (fps *OsVersion_FieldSubPath) IsLeaf() bool {
   424  	return fps.subPath.IsLeaf()
   425  }
   426  
   427  func (fps *OsVersion_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   428  	iPaths := []gotenobject.FieldPath{&OsVersion_FieldTerminalPath{selector: fps.selector}}
   429  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   430  	return iPaths
   431  }
   432  
   433  func (fps *OsVersion_FieldSubPath) WithIValue(value interface{}) OsVersion_FieldPathValue {
   434  	return &OsVersion_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   435  }
   436  
   437  func (fps *OsVersion_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   438  	return fps.WithIValue(value)
   439  }
   440  
   441  func (fps *OsVersion_FieldSubPath) WithIArrayOfValues(values interface{}) OsVersion_FieldPathArrayOfValues {
   442  	return &OsVersion_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   443  }
   444  
   445  func (fps *OsVersion_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   446  	return fps.WithIArrayOfValues(values)
   447  }
   448  
   449  func (fps *OsVersion_FieldSubPath) WithIArrayItemValue(value interface{}) OsVersion_FieldPathArrayItemValue {
   450  	return &OsVersion_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   451  }
   452  
   453  func (fps *OsVersion_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   454  	return fps.WithIArrayItemValue(value)
   455  }
   456  
   457  // OsVersion_FieldPathValue allows storing values for OsVersion fields according to their type
   458  type OsVersion_FieldPathValue interface {
   459  	OsVersion_FieldPath
   460  	gotenobject.FieldPathValue
   461  	SetTo(target **OsVersion)
   462  	CompareWith(*OsVersion) (cmp int, comparable bool)
   463  }
   464  
   465  func ParseOsVersion_FieldPathValue(pathStr, valueStr string) (OsVersion_FieldPathValue, error) {
   466  	fp, err := ParseOsVersion_FieldPath(pathStr)
   467  	if err != nil {
   468  		return nil, err
   469  	}
   470  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   471  	if err != nil {
   472  		return nil, status.Errorf(codes.InvalidArgument, "error parsing OsVersion field path value from %s: %v", valueStr, err)
   473  	}
   474  	return fpv.(OsVersion_FieldPathValue), nil
   475  }
   476  
   477  func MustParseOsVersion_FieldPathValue(pathStr, valueStr string) OsVersion_FieldPathValue {
   478  	fpv, err := ParseOsVersion_FieldPathValue(pathStr, valueStr)
   479  	if err != nil {
   480  		panic(err)
   481  	}
   482  	return fpv
   483  }
   484  
   485  type OsVersion_FieldTerminalPathValue struct {
   486  	OsVersion_FieldTerminalPath
   487  	value interface{}
   488  }
   489  
   490  var _ OsVersion_FieldPathValue = (*OsVersion_FieldTerminalPathValue)(nil)
   491  
   492  // GetRawValue returns raw value stored under selected path for 'OsVersion' as interface{}
   493  func (fpv *OsVersion_FieldTerminalPathValue) GetRawValue() interface{} {
   494  	return fpv.value
   495  }
   496  func (fpv *OsVersion_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   497  	res, ok := fpv.value.(*Name)
   498  	return res, ok
   499  }
   500  func (fpv *OsVersion_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   501  	res, ok := fpv.value.(*meta.Meta)
   502  	return res, ok
   503  }
   504  func (fpv *OsVersion_FieldTerminalPathValue) AsVersionValue() (string, bool) {
   505  	res, ok := fpv.value.(string)
   506  	return res, ok
   507  }
   508  func (fpv *OsVersion_FieldTerminalPathValue) AsDeviceTypeValue() (*device_type.Reference, bool) {
   509  	res, ok := fpv.value.(*device_type.Reference)
   510  	return res, ok
   511  }
   512  func (fpv *OsVersion_FieldTerminalPathValue) AsMinimumPreviousVersionValue() (string, bool) {
   513  	res, ok := fpv.value.(string)
   514  	return res, ok
   515  }
   516  func (fpv *OsVersion_FieldTerminalPathValue) AsChannelValue() (OsVersion_Channel, bool) {
   517  	res, ok := fpv.value.(OsVersion_Channel)
   518  	return res, ok
   519  }
   520  
   521  // SetTo stores value for selected field for object OsVersion
   522  func (fpv *OsVersion_FieldTerminalPathValue) SetTo(target **OsVersion) {
   523  	if *target == nil {
   524  		*target = new(OsVersion)
   525  	}
   526  	switch fpv.selector {
   527  	case OsVersion_FieldPathSelectorName:
   528  		(*target).Name = fpv.value.(*Name)
   529  	case OsVersion_FieldPathSelectorMetadata:
   530  		(*target).Metadata = fpv.value.(*meta.Meta)
   531  	case OsVersion_FieldPathSelectorVersion:
   532  		(*target).Version = fpv.value.(string)
   533  	case OsVersion_FieldPathSelectorDeviceType:
   534  		(*target).DeviceType = fpv.value.(*device_type.Reference)
   535  	case OsVersion_FieldPathSelectorMinimumPreviousVersion:
   536  		(*target).MinimumPreviousVersion = fpv.value.(string)
   537  	case OsVersion_FieldPathSelectorChannel:
   538  		(*target).Channel = fpv.value.(OsVersion_Channel)
   539  	default:
   540  		panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fpv.selector))
   541  	}
   542  }
   543  
   544  func (fpv *OsVersion_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   545  	typedObject := target.(*OsVersion)
   546  	fpv.SetTo(&typedObject)
   547  }
   548  
   549  // CompareWith compares value in the 'OsVersion_FieldTerminalPathValue' with the value under path in 'OsVersion'.
   550  func (fpv *OsVersion_FieldTerminalPathValue) CompareWith(source *OsVersion) (int, bool) {
   551  	switch fpv.selector {
   552  	case OsVersion_FieldPathSelectorName:
   553  		leftValue := fpv.value.(*Name)
   554  		rightValue := source.GetName()
   555  		if leftValue == nil {
   556  			if rightValue != nil {
   557  				return -1, true
   558  			}
   559  			return 0, true
   560  		}
   561  		if rightValue == nil {
   562  			return 1, true
   563  		}
   564  		if leftValue.String() == rightValue.String() {
   565  			return 0, true
   566  		} else if leftValue.String() < rightValue.String() {
   567  			return -1, true
   568  		} else {
   569  			return 1, true
   570  		}
   571  	case OsVersion_FieldPathSelectorMetadata:
   572  		return 0, false
   573  	case OsVersion_FieldPathSelectorVersion:
   574  		leftValue := fpv.value.(string)
   575  		rightValue := source.GetVersion()
   576  		if (leftValue) == (rightValue) {
   577  			return 0, true
   578  		} else if (leftValue) < (rightValue) {
   579  			return -1, true
   580  		} else {
   581  			return 1, true
   582  		}
   583  	case OsVersion_FieldPathSelectorDeviceType:
   584  		leftValue := fpv.value.(*device_type.Reference)
   585  		rightValue := source.GetDeviceType()
   586  		if leftValue == nil {
   587  			if rightValue != nil {
   588  				return -1, true
   589  			}
   590  			return 0, true
   591  		}
   592  		if rightValue == nil {
   593  			return 1, true
   594  		}
   595  		if leftValue.String() == rightValue.String() {
   596  			return 0, true
   597  		} else if leftValue.String() < rightValue.String() {
   598  			return -1, true
   599  		} else {
   600  			return 1, true
   601  		}
   602  	case OsVersion_FieldPathSelectorMinimumPreviousVersion:
   603  		leftValue := fpv.value.(string)
   604  		rightValue := source.GetMinimumPreviousVersion()
   605  		if (leftValue) == (rightValue) {
   606  			return 0, true
   607  		} else if (leftValue) < (rightValue) {
   608  			return -1, true
   609  		} else {
   610  			return 1, true
   611  		}
   612  	case OsVersion_FieldPathSelectorChannel:
   613  		leftValue := fpv.value.(OsVersion_Channel)
   614  		rightValue := source.GetChannel()
   615  		if (leftValue) == (rightValue) {
   616  			return 0, true
   617  		} else if (leftValue) < (rightValue) {
   618  			return -1, true
   619  		} else {
   620  			return 1, true
   621  		}
   622  	default:
   623  		panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fpv.selector))
   624  	}
   625  }
   626  
   627  func (fpv *OsVersion_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   628  	return fpv.CompareWith(source.(*OsVersion))
   629  }
   630  
   631  type OsVersion_FieldSubPathValue struct {
   632  	OsVersion_FieldPath
   633  	subPathValue gotenobject.FieldPathValue
   634  }
   635  
   636  var _ OsVersion_FieldPathValue = (*OsVersion_FieldSubPathValue)(nil)
   637  
   638  func (fpvs *OsVersion_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   639  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   640  	return res, ok
   641  }
   642  
   643  func (fpvs *OsVersion_FieldSubPathValue) SetTo(target **OsVersion) {
   644  	if *target == nil {
   645  		*target = new(OsVersion)
   646  	}
   647  	switch fpvs.Selector() {
   648  	case OsVersion_FieldPathSelectorMetadata:
   649  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
   650  	default:
   651  		panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fpvs.Selector()))
   652  	}
   653  }
   654  
   655  func (fpvs *OsVersion_FieldSubPathValue) SetToRaw(target proto.Message) {
   656  	typedObject := target.(*OsVersion)
   657  	fpvs.SetTo(&typedObject)
   658  }
   659  
   660  func (fpvs *OsVersion_FieldSubPathValue) GetRawValue() interface{} {
   661  	return fpvs.subPathValue.GetRawValue()
   662  }
   663  
   664  func (fpvs *OsVersion_FieldSubPathValue) CompareWith(source *OsVersion) (int, bool) {
   665  	switch fpvs.Selector() {
   666  	case OsVersion_FieldPathSelectorMetadata:
   667  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
   668  	default:
   669  		panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fpvs.Selector()))
   670  	}
   671  }
   672  
   673  func (fpvs *OsVersion_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   674  	return fpvs.CompareWith(source.(*OsVersion))
   675  }
   676  
   677  // OsVersion_FieldPathArrayItemValue allows storing single item in Path-specific values for OsVersion according to their type
   678  // Present only for array (repeated) types.
   679  type OsVersion_FieldPathArrayItemValue interface {
   680  	gotenobject.FieldPathArrayItemValue
   681  	OsVersion_FieldPath
   682  	ContainsValue(*OsVersion) bool
   683  }
   684  
   685  // ParseOsVersion_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   686  func ParseOsVersion_FieldPathArrayItemValue(pathStr, valueStr string) (OsVersion_FieldPathArrayItemValue, error) {
   687  	fp, err := ParseOsVersion_FieldPath(pathStr)
   688  	if err != nil {
   689  		return nil, err
   690  	}
   691  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   692  	if err != nil {
   693  		return nil, status.Errorf(codes.InvalidArgument, "error parsing OsVersion field path array item value from %s: %v", valueStr, err)
   694  	}
   695  	return fpaiv.(OsVersion_FieldPathArrayItemValue), nil
   696  }
   697  
   698  func MustParseOsVersion_FieldPathArrayItemValue(pathStr, valueStr string) OsVersion_FieldPathArrayItemValue {
   699  	fpaiv, err := ParseOsVersion_FieldPathArrayItemValue(pathStr, valueStr)
   700  	if err != nil {
   701  		panic(err)
   702  	}
   703  	return fpaiv
   704  }
   705  
   706  type OsVersion_FieldTerminalPathArrayItemValue struct {
   707  	OsVersion_FieldTerminalPath
   708  	value interface{}
   709  }
   710  
   711  var _ OsVersion_FieldPathArrayItemValue = (*OsVersion_FieldTerminalPathArrayItemValue)(nil)
   712  
   713  // GetRawValue returns stored element value for array in object OsVersion as interface{}
   714  func (fpaiv *OsVersion_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   715  	return fpaiv.value
   716  }
   717  
   718  func (fpaiv *OsVersion_FieldTerminalPathArrayItemValue) GetSingle(source *OsVersion) (interface{}, bool) {
   719  	return nil, false
   720  }
   721  
   722  func (fpaiv *OsVersion_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   723  	return fpaiv.GetSingle(source.(*OsVersion))
   724  }
   725  
   726  // Contains returns a boolean indicating if value that is being held is present in given 'OsVersion'
   727  func (fpaiv *OsVersion_FieldTerminalPathArrayItemValue) ContainsValue(source *OsVersion) bool {
   728  	slice := fpaiv.OsVersion_FieldTerminalPath.Get(source)
   729  	for _, v := range slice {
   730  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   731  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   732  				return true
   733  			}
   734  		} else if reflect.DeepEqual(v, fpaiv.value) {
   735  			return true
   736  		}
   737  	}
   738  	return false
   739  }
   740  
   741  type OsVersion_FieldSubPathArrayItemValue struct {
   742  	OsVersion_FieldPath
   743  	subPathItemValue gotenobject.FieldPathArrayItemValue
   744  }
   745  
   746  // GetRawValue returns stored array item value
   747  func (fpaivs *OsVersion_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
   748  	return fpaivs.subPathItemValue.GetRawItemValue()
   749  }
   750  func (fpaivs *OsVersion_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
   751  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
   752  	return res, ok
   753  }
   754  
   755  // Contains returns a boolean indicating if value that is being held is present in given 'OsVersion'
   756  func (fpaivs *OsVersion_FieldSubPathArrayItemValue) ContainsValue(source *OsVersion) bool {
   757  	switch fpaivs.Selector() {
   758  	case OsVersion_FieldPathSelectorMetadata:
   759  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
   760  	default:
   761  		panic(fmt.Sprintf("Invalid selector for OsVersion: %d", fpaivs.Selector()))
   762  	}
   763  }
   764  
   765  // OsVersion_FieldPathArrayOfValues allows storing slice of values for OsVersion fields according to their type
   766  type OsVersion_FieldPathArrayOfValues interface {
   767  	gotenobject.FieldPathArrayOfValues
   768  	OsVersion_FieldPath
   769  }
   770  
   771  func ParseOsVersion_FieldPathArrayOfValues(pathStr, valuesStr string) (OsVersion_FieldPathArrayOfValues, error) {
   772  	fp, err := ParseOsVersion_FieldPath(pathStr)
   773  	if err != nil {
   774  		return nil, err
   775  	}
   776  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   777  	if err != nil {
   778  		return nil, status.Errorf(codes.InvalidArgument, "error parsing OsVersion field path array of values from %s: %v", valuesStr, err)
   779  	}
   780  	return fpaov.(OsVersion_FieldPathArrayOfValues), nil
   781  }
   782  
   783  func MustParseOsVersion_FieldPathArrayOfValues(pathStr, valuesStr string) OsVersion_FieldPathArrayOfValues {
   784  	fpaov, err := ParseOsVersion_FieldPathArrayOfValues(pathStr, valuesStr)
   785  	if err != nil {
   786  		panic(err)
   787  	}
   788  	return fpaov
   789  }
   790  
   791  type OsVersion_FieldTerminalPathArrayOfValues struct {
   792  	OsVersion_FieldTerminalPath
   793  	values interface{}
   794  }
   795  
   796  var _ OsVersion_FieldPathArrayOfValues = (*OsVersion_FieldTerminalPathArrayOfValues)(nil)
   797  
   798  func (fpaov *OsVersion_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   799  	switch fpaov.selector {
   800  	case OsVersion_FieldPathSelectorName:
   801  		for _, v := range fpaov.values.([]*Name) {
   802  			values = append(values, v)
   803  		}
   804  	case OsVersion_FieldPathSelectorMetadata:
   805  		for _, v := range fpaov.values.([]*meta.Meta) {
   806  			values = append(values, v)
   807  		}
   808  	case OsVersion_FieldPathSelectorVersion:
   809  		for _, v := range fpaov.values.([]string) {
   810  			values = append(values, v)
   811  		}
   812  	case OsVersion_FieldPathSelectorDeviceType:
   813  		for _, v := range fpaov.values.([]*device_type.Reference) {
   814  			values = append(values, v)
   815  		}
   816  	case OsVersion_FieldPathSelectorMinimumPreviousVersion:
   817  		for _, v := range fpaov.values.([]string) {
   818  			values = append(values, v)
   819  		}
   820  	case OsVersion_FieldPathSelectorChannel:
   821  		for _, v := range fpaov.values.([]OsVersion_Channel) {
   822  			values = append(values, v)
   823  		}
   824  	}
   825  	return
   826  }
   827  func (fpaov *OsVersion_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
   828  	res, ok := fpaov.values.([]*Name)
   829  	return res, ok
   830  }
   831  func (fpaov *OsVersion_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
   832  	res, ok := fpaov.values.([]*meta.Meta)
   833  	return res, ok
   834  }
   835  func (fpaov *OsVersion_FieldTerminalPathArrayOfValues) AsVersionArrayOfValues() ([]string, bool) {
   836  	res, ok := fpaov.values.([]string)
   837  	return res, ok
   838  }
   839  func (fpaov *OsVersion_FieldTerminalPathArrayOfValues) AsDeviceTypeArrayOfValues() ([]*device_type.Reference, bool) {
   840  	res, ok := fpaov.values.([]*device_type.Reference)
   841  	return res, ok
   842  }
   843  func (fpaov *OsVersion_FieldTerminalPathArrayOfValues) AsMinimumPreviousVersionArrayOfValues() ([]string, bool) {
   844  	res, ok := fpaov.values.([]string)
   845  	return res, ok
   846  }
   847  func (fpaov *OsVersion_FieldTerminalPathArrayOfValues) AsChannelArrayOfValues() ([]OsVersion_Channel, bool) {
   848  	res, ok := fpaov.values.([]OsVersion_Channel)
   849  	return res, ok
   850  }
   851  
   852  type OsVersion_FieldSubPathArrayOfValues struct {
   853  	OsVersion_FieldPath
   854  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
   855  }
   856  
   857  var _ OsVersion_FieldPathArrayOfValues = (*OsVersion_FieldSubPathArrayOfValues)(nil)
   858  
   859  func (fpsaov *OsVersion_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
   860  	return fpsaov.subPathArrayOfValues.GetRawValues()
   861  }
   862  func (fpsaov *OsVersion_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
   863  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
   864  	return res, ok
   865  }