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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/logging/proto/v1alpha2/common.proto
     3  // DO NOT EDIT!!!
     4  
     5  package common
     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  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    27  )
    28  
    29  // ensure the imports are used
    30  var (
    31  	_ = new(json.Marshaler)
    32  	_ = new(fmt.Stringer)
    33  	_ = reflect.DeepEqual
    34  	_ = strings.Builder{}
    35  	_ = time.Second
    36  
    37  	_ = strcase.ToLowerCamel
    38  	_ = codes.NotFound
    39  	_ = status.Status{}
    40  	_ = protojson.UnmarshalOptions{}
    41  	_ = new(proto.Message)
    42  	_ = protoregistry.GlobalTypes
    43  
    44  	_ = new(gotenobject.FieldPath)
    45  )
    46  
    47  // make sure we're using proto imports
    48  var (
    49  	_ = &timestamppb.Timestamp{}
    50  )
    51  
    52  // FieldPath provides implementation to handle
    53  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    54  type LabelDescriptor_FieldPath interface {
    55  	gotenobject.FieldPath
    56  	Selector() LabelDescriptor_FieldPathSelector
    57  	Get(source *LabelDescriptor) []interface{}
    58  	GetSingle(source *LabelDescriptor) (interface{}, bool)
    59  	ClearValue(item *LabelDescriptor)
    60  
    61  	// Those methods build corresponding LabelDescriptor_FieldPathValue
    62  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    63  	WithIValue(value interface{}) LabelDescriptor_FieldPathValue
    64  	WithIArrayOfValues(values interface{}) LabelDescriptor_FieldPathArrayOfValues
    65  	WithIArrayItemValue(value interface{}) LabelDescriptor_FieldPathArrayItemValue
    66  }
    67  
    68  type LabelDescriptor_FieldPathSelector int32
    69  
    70  const (
    71  	LabelDescriptor_FieldPathSelectorKey         LabelDescriptor_FieldPathSelector = 0
    72  	LabelDescriptor_FieldPathSelectorDescription LabelDescriptor_FieldPathSelector = 1
    73  )
    74  
    75  func (s LabelDescriptor_FieldPathSelector) String() string {
    76  	switch s {
    77  	case LabelDescriptor_FieldPathSelectorKey:
    78  		return "key"
    79  	case LabelDescriptor_FieldPathSelectorDescription:
    80  		return "description"
    81  	default:
    82  		panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", s))
    83  	}
    84  }
    85  
    86  func BuildLabelDescriptor_FieldPath(fp gotenobject.RawFieldPath) (LabelDescriptor_FieldPath, error) {
    87  	if len(fp) == 0 {
    88  		return nil, status.Error(codes.InvalidArgument, "empty field path for object LabelDescriptor")
    89  	}
    90  	if len(fp) == 1 {
    91  		switch fp[0] {
    92  		case "key":
    93  			return &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorKey}, nil
    94  		case "description":
    95  			return &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorDescription}, nil
    96  		}
    97  	}
    98  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object LabelDescriptor", fp)
    99  }
   100  
   101  func ParseLabelDescriptor_FieldPath(rawField string) (LabelDescriptor_FieldPath, error) {
   102  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   103  	if err != nil {
   104  		return nil, err
   105  	}
   106  	return BuildLabelDescriptor_FieldPath(fp)
   107  }
   108  
   109  func MustParseLabelDescriptor_FieldPath(rawField string) LabelDescriptor_FieldPath {
   110  	fp, err := ParseLabelDescriptor_FieldPath(rawField)
   111  	if err != nil {
   112  		panic(err)
   113  	}
   114  	return fp
   115  }
   116  
   117  type LabelDescriptor_FieldTerminalPath struct {
   118  	selector LabelDescriptor_FieldPathSelector
   119  }
   120  
   121  var _ LabelDescriptor_FieldPath = (*LabelDescriptor_FieldTerminalPath)(nil)
   122  
   123  func (fp *LabelDescriptor_FieldTerminalPath) Selector() LabelDescriptor_FieldPathSelector {
   124  	return fp.selector
   125  }
   126  
   127  // String returns path representation in proto convention
   128  func (fp *LabelDescriptor_FieldTerminalPath) String() string {
   129  	return fp.selector.String()
   130  }
   131  
   132  // JSONString returns path representation is JSON convention
   133  func (fp *LabelDescriptor_FieldTerminalPath) JSONString() string {
   134  	return strcase.ToLowerCamel(fp.String())
   135  }
   136  
   137  // Get returns all values pointed by specific field from source LabelDescriptor
   138  func (fp *LabelDescriptor_FieldTerminalPath) Get(source *LabelDescriptor) (values []interface{}) {
   139  	if source != nil {
   140  		switch fp.selector {
   141  		case LabelDescriptor_FieldPathSelectorKey:
   142  			values = append(values, source.Key)
   143  		case LabelDescriptor_FieldPathSelectorDescription:
   144  			values = append(values, source.Description)
   145  		default:
   146  			panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector))
   147  		}
   148  	}
   149  	return
   150  }
   151  
   152  func (fp *LabelDescriptor_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   153  	return fp.Get(source.(*LabelDescriptor))
   154  }
   155  
   156  // GetSingle returns value pointed by specific field of from source LabelDescriptor
   157  func (fp *LabelDescriptor_FieldTerminalPath) GetSingle(source *LabelDescriptor) (interface{}, bool) {
   158  	switch fp.selector {
   159  	case LabelDescriptor_FieldPathSelectorKey:
   160  		return source.GetKey(), source != nil
   161  	case LabelDescriptor_FieldPathSelectorDescription:
   162  		return source.GetDescription(), source != nil
   163  	default:
   164  		panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector))
   165  	}
   166  }
   167  
   168  func (fp *LabelDescriptor_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   169  	return fp.GetSingle(source.(*LabelDescriptor))
   170  }
   171  
   172  // GetDefault returns a default value of the field type
   173  func (fp *LabelDescriptor_FieldTerminalPath) GetDefault() interface{} {
   174  	switch fp.selector {
   175  	case LabelDescriptor_FieldPathSelectorKey:
   176  		return ""
   177  	case LabelDescriptor_FieldPathSelectorDescription:
   178  		return ""
   179  	default:
   180  		panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector))
   181  	}
   182  }
   183  
   184  func (fp *LabelDescriptor_FieldTerminalPath) ClearValue(item *LabelDescriptor) {
   185  	if item != nil {
   186  		switch fp.selector {
   187  		case LabelDescriptor_FieldPathSelectorKey:
   188  			item.Key = ""
   189  		case LabelDescriptor_FieldPathSelectorDescription:
   190  			item.Description = ""
   191  		default:
   192  			panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector))
   193  		}
   194  	}
   195  }
   196  
   197  func (fp *LabelDescriptor_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   198  	fp.ClearValue(item.(*LabelDescriptor))
   199  }
   200  
   201  // IsLeaf - whether field path is holds simple value
   202  func (fp *LabelDescriptor_FieldTerminalPath) IsLeaf() bool {
   203  	return fp.selector == LabelDescriptor_FieldPathSelectorKey ||
   204  		fp.selector == LabelDescriptor_FieldPathSelectorDescription
   205  }
   206  
   207  func (fp *LabelDescriptor_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   208  	return []gotenobject.FieldPath{fp}
   209  }
   210  
   211  func (fp *LabelDescriptor_FieldTerminalPath) WithIValue(value interface{}) LabelDescriptor_FieldPathValue {
   212  	switch fp.selector {
   213  	case LabelDescriptor_FieldPathSelectorKey:
   214  		return &LabelDescriptor_FieldTerminalPathValue{LabelDescriptor_FieldTerminalPath: *fp, value: value.(string)}
   215  	case LabelDescriptor_FieldPathSelectorDescription:
   216  		return &LabelDescriptor_FieldTerminalPathValue{LabelDescriptor_FieldTerminalPath: *fp, value: value.(string)}
   217  	default:
   218  		panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector))
   219  	}
   220  }
   221  
   222  func (fp *LabelDescriptor_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   223  	return fp.WithIValue(value)
   224  }
   225  
   226  func (fp *LabelDescriptor_FieldTerminalPath) WithIArrayOfValues(values interface{}) LabelDescriptor_FieldPathArrayOfValues {
   227  	fpaov := &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp}
   228  	switch fp.selector {
   229  	case LabelDescriptor_FieldPathSelectorKey:
   230  		return &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp, values: values.([]string)}
   231  	case LabelDescriptor_FieldPathSelectorDescription:
   232  		return &LabelDescriptor_FieldTerminalPathArrayOfValues{LabelDescriptor_FieldTerminalPath: *fp, values: values.([]string)}
   233  	default:
   234  		panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector))
   235  	}
   236  	return fpaov
   237  }
   238  
   239  func (fp *LabelDescriptor_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   240  	return fp.WithIArrayOfValues(values)
   241  }
   242  
   243  func (fp *LabelDescriptor_FieldTerminalPath) WithIArrayItemValue(value interface{}) LabelDescriptor_FieldPathArrayItemValue {
   244  	switch fp.selector {
   245  	default:
   246  		panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fp.selector))
   247  	}
   248  }
   249  
   250  func (fp *LabelDescriptor_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   251  	return fp.WithIArrayItemValue(value)
   252  }
   253  
   254  // LabelDescriptor_FieldPathValue allows storing values for LabelDescriptor fields according to their type
   255  type LabelDescriptor_FieldPathValue interface {
   256  	LabelDescriptor_FieldPath
   257  	gotenobject.FieldPathValue
   258  	SetTo(target **LabelDescriptor)
   259  	CompareWith(*LabelDescriptor) (cmp int, comparable bool)
   260  }
   261  
   262  func ParseLabelDescriptor_FieldPathValue(pathStr, valueStr string) (LabelDescriptor_FieldPathValue, error) {
   263  	fp, err := ParseLabelDescriptor_FieldPath(pathStr)
   264  	if err != nil {
   265  		return nil, err
   266  	}
   267  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   268  	if err != nil {
   269  		return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelDescriptor field path value from %s: %v", valueStr, err)
   270  	}
   271  	return fpv.(LabelDescriptor_FieldPathValue), nil
   272  }
   273  
   274  func MustParseLabelDescriptor_FieldPathValue(pathStr, valueStr string) LabelDescriptor_FieldPathValue {
   275  	fpv, err := ParseLabelDescriptor_FieldPathValue(pathStr, valueStr)
   276  	if err != nil {
   277  		panic(err)
   278  	}
   279  	return fpv
   280  }
   281  
   282  type LabelDescriptor_FieldTerminalPathValue struct {
   283  	LabelDescriptor_FieldTerminalPath
   284  	value interface{}
   285  }
   286  
   287  var _ LabelDescriptor_FieldPathValue = (*LabelDescriptor_FieldTerminalPathValue)(nil)
   288  
   289  // GetRawValue returns raw value stored under selected path for 'LabelDescriptor' as interface{}
   290  func (fpv *LabelDescriptor_FieldTerminalPathValue) GetRawValue() interface{} {
   291  	return fpv.value
   292  }
   293  func (fpv *LabelDescriptor_FieldTerminalPathValue) AsKeyValue() (string, bool) {
   294  	res, ok := fpv.value.(string)
   295  	return res, ok
   296  }
   297  func (fpv *LabelDescriptor_FieldTerminalPathValue) AsDescriptionValue() (string, bool) {
   298  	res, ok := fpv.value.(string)
   299  	return res, ok
   300  }
   301  
   302  // SetTo stores value for selected field for object LabelDescriptor
   303  func (fpv *LabelDescriptor_FieldTerminalPathValue) SetTo(target **LabelDescriptor) {
   304  	if *target == nil {
   305  		*target = new(LabelDescriptor)
   306  	}
   307  	switch fpv.selector {
   308  	case LabelDescriptor_FieldPathSelectorKey:
   309  		(*target).Key = fpv.value.(string)
   310  	case LabelDescriptor_FieldPathSelectorDescription:
   311  		(*target).Description = fpv.value.(string)
   312  	default:
   313  		panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fpv.selector))
   314  	}
   315  }
   316  
   317  func (fpv *LabelDescriptor_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   318  	typedObject := target.(*LabelDescriptor)
   319  	fpv.SetTo(&typedObject)
   320  }
   321  
   322  // CompareWith compares value in the 'LabelDescriptor_FieldTerminalPathValue' with the value under path in 'LabelDescriptor'.
   323  func (fpv *LabelDescriptor_FieldTerminalPathValue) CompareWith(source *LabelDescriptor) (int, bool) {
   324  	switch fpv.selector {
   325  	case LabelDescriptor_FieldPathSelectorKey:
   326  		leftValue := fpv.value.(string)
   327  		rightValue := source.GetKey()
   328  		if (leftValue) == (rightValue) {
   329  			return 0, true
   330  		} else if (leftValue) < (rightValue) {
   331  			return -1, true
   332  		} else {
   333  			return 1, true
   334  		}
   335  	case LabelDescriptor_FieldPathSelectorDescription:
   336  		leftValue := fpv.value.(string)
   337  		rightValue := source.GetDescription()
   338  		if (leftValue) == (rightValue) {
   339  			return 0, true
   340  		} else if (leftValue) < (rightValue) {
   341  			return -1, true
   342  		} else {
   343  			return 1, true
   344  		}
   345  	default:
   346  		panic(fmt.Sprintf("Invalid selector for LabelDescriptor: %d", fpv.selector))
   347  	}
   348  }
   349  
   350  func (fpv *LabelDescriptor_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   351  	return fpv.CompareWith(source.(*LabelDescriptor))
   352  }
   353  
   354  // LabelDescriptor_FieldPathArrayItemValue allows storing single item in Path-specific values for LabelDescriptor according to their type
   355  // Present only for array (repeated) types.
   356  type LabelDescriptor_FieldPathArrayItemValue interface {
   357  	gotenobject.FieldPathArrayItemValue
   358  	LabelDescriptor_FieldPath
   359  	ContainsValue(*LabelDescriptor) bool
   360  }
   361  
   362  // ParseLabelDescriptor_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   363  func ParseLabelDescriptor_FieldPathArrayItemValue(pathStr, valueStr string) (LabelDescriptor_FieldPathArrayItemValue, error) {
   364  	fp, err := ParseLabelDescriptor_FieldPath(pathStr)
   365  	if err != nil {
   366  		return nil, err
   367  	}
   368  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   369  	if err != nil {
   370  		return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelDescriptor field path array item value from %s: %v", valueStr, err)
   371  	}
   372  	return fpaiv.(LabelDescriptor_FieldPathArrayItemValue), nil
   373  }
   374  
   375  func MustParseLabelDescriptor_FieldPathArrayItemValue(pathStr, valueStr string) LabelDescriptor_FieldPathArrayItemValue {
   376  	fpaiv, err := ParseLabelDescriptor_FieldPathArrayItemValue(pathStr, valueStr)
   377  	if err != nil {
   378  		panic(err)
   379  	}
   380  	return fpaiv
   381  }
   382  
   383  type LabelDescriptor_FieldTerminalPathArrayItemValue struct {
   384  	LabelDescriptor_FieldTerminalPath
   385  	value interface{}
   386  }
   387  
   388  var _ LabelDescriptor_FieldPathArrayItemValue = (*LabelDescriptor_FieldTerminalPathArrayItemValue)(nil)
   389  
   390  // GetRawValue returns stored element value for array in object LabelDescriptor as interface{}
   391  func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   392  	return fpaiv.value
   393  }
   394  
   395  func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) GetSingle(source *LabelDescriptor) (interface{}, bool) {
   396  	return nil, false
   397  }
   398  
   399  func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   400  	return fpaiv.GetSingle(source.(*LabelDescriptor))
   401  }
   402  
   403  // Contains returns a boolean indicating if value that is being held is present in given 'LabelDescriptor'
   404  func (fpaiv *LabelDescriptor_FieldTerminalPathArrayItemValue) ContainsValue(source *LabelDescriptor) bool {
   405  	slice := fpaiv.LabelDescriptor_FieldTerminalPath.Get(source)
   406  	for _, v := range slice {
   407  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   408  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   409  				return true
   410  			}
   411  		} else if reflect.DeepEqual(v, fpaiv.value) {
   412  			return true
   413  		}
   414  	}
   415  	return false
   416  }
   417  
   418  // LabelDescriptor_FieldPathArrayOfValues allows storing slice of values for LabelDescriptor fields according to their type
   419  type LabelDescriptor_FieldPathArrayOfValues interface {
   420  	gotenobject.FieldPathArrayOfValues
   421  	LabelDescriptor_FieldPath
   422  }
   423  
   424  func ParseLabelDescriptor_FieldPathArrayOfValues(pathStr, valuesStr string) (LabelDescriptor_FieldPathArrayOfValues, error) {
   425  	fp, err := ParseLabelDescriptor_FieldPath(pathStr)
   426  	if err != nil {
   427  		return nil, err
   428  	}
   429  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   430  	if err != nil {
   431  		return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelDescriptor field path array of values from %s: %v", valuesStr, err)
   432  	}
   433  	return fpaov.(LabelDescriptor_FieldPathArrayOfValues), nil
   434  }
   435  
   436  func MustParseLabelDescriptor_FieldPathArrayOfValues(pathStr, valuesStr string) LabelDescriptor_FieldPathArrayOfValues {
   437  	fpaov, err := ParseLabelDescriptor_FieldPathArrayOfValues(pathStr, valuesStr)
   438  	if err != nil {
   439  		panic(err)
   440  	}
   441  	return fpaov
   442  }
   443  
   444  type LabelDescriptor_FieldTerminalPathArrayOfValues struct {
   445  	LabelDescriptor_FieldTerminalPath
   446  	values interface{}
   447  }
   448  
   449  var _ LabelDescriptor_FieldPathArrayOfValues = (*LabelDescriptor_FieldTerminalPathArrayOfValues)(nil)
   450  
   451  func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   452  	switch fpaov.selector {
   453  	case LabelDescriptor_FieldPathSelectorKey:
   454  		for _, v := range fpaov.values.([]string) {
   455  			values = append(values, v)
   456  		}
   457  	case LabelDescriptor_FieldPathSelectorDescription:
   458  		for _, v := range fpaov.values.([]string) {
   459  			values = append(values, v)
   460  		}
   461  	}
   462  	return
   463  }
   464  func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) AsKeyArrayOfValues() ([]string, bool) {
   465  	res, ok := fpaov.values.([]string)
   466  	return res, ok
   467  }
   468  func (fpaov *LabelDescriptor_FieldTerminalPathArrayOfValues) AsDescriptionArrayOfValues() ([]string, bool) {
   469  	res, ok := fpaov.values.([]string)
   470  	return res, ok
   471  }
   472  
   473  // FieldPath provides implementation to handle
   474  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
   475  type LabelKeySet_FieldPath interface {
   476  	gotenobject.FieldPath
   477  	Selector() LabelKeySet_FieldPathSelector
   478  	Get(source *LabelKeySet) []interface{}
   479  	GetSingle(source *LabelKeySet) (interface{}, bool)
   480  	ClearValue(item *LabelKeySet)
   481  
   482  	// Those methods build corresponding LabelKeySet_FieldPathValue
   483  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
   484  	WithIValue(value interface{}) LabelKeySet_FieldPathValue
   485  	WithIArrayOfValues(values interface{}) LabelKeySet_FieldPathArrayOfValues
   486  	WithIArrayItemValue(value interface{}) LabelKeySet_FieldPathArrayItemValue
   487  }
   488  
   489  type LabelKeySet_FieldPathSelector int32
   490  
   491  const (
   492  	LabelKeySet_FieldPathSelectorLabelKeys LabelKeySet_FieldPathSelector = 0
   493  )
   494  
   495  func (s LabelKeySet_FieldPathSelector) String() string {
   496  	switch s {
   497  	case LabelKeySet_FieldPathSelectorLabelKeys:
   498  		return "label_keys"
   499  	default:
   500  		panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", s))
   501  	}
   502  }
   503  
   504  func BuildLabelKeySet_FieldPath(fp gotenobject.RawFieldPath) (LabelKeySet_FieldPath, error) {
   505  	if len(fp) == 0 {
   506  		return nil, status.Error(codes.InvalidArgument, "empty field path for object LabelKeySet")
   507  	}
   508  	if len(fp) == 1 {
   509  		switch fp[0] {
   510  		case "label_keys", "labelKeys", "label-keys":
   511  			return &LabelKeySet_FieldTerminalPath{selector: LabelKeySet_FieldPathSelectorLabelKeys}, nil
   512  		}
   513  	}
   514  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object LabelKeySet", fp)
   515  }
   516  
   517  func ParseLabelKeySet_FieldPath(rawField string) (LabelKeySet_FieldPath, error) {
   518  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   519  	if err != nil {
   520  		return nil, err
   521  	}
   522  	return BuildLabelKeySet_FieldPath(fp)
   523  }
   524  
   525  func MustParseLabelKeySet_FieldPath(rawField string) LabelKeySet_FieldPath {
   526  	fp, err := ParseLabelKeySet_FieldPath(rawField)
   527  	if err != nil {
   528  		panic(err)
   529  	}
   530  	return fp
   531  }
   532  
   533  type LabelKeySet_FieldTerminalPath struct {
   534  	selector LabelKeySet_FieldPathSelector
   535  }
   536  
   537  var _ LabelKeySet_FieldPath = (*LabelKeySet_FieldTerminalPath)(nil)
   538  
   539  func (fp *LabelKeySet_FieldTerminalPath) Selector() LabelKeySet_FieldPathSelector {
   540  	return fp.selector
   541  }
   542  
   543  // String returns path representation in proto convention
   544  func (fp *LabelKeySet_FieldTerminalPath) String() string {
   545  	return fp.selector.String()
   546  }
   547  
   548  // JSONString returns path representation is JSON convention
   549  func (fp *LabelKeySet_FieldTerminalPath) JSONString() string {
   550  	return strcase.ToLowerCamel(fp.String())
   551  }
   552  
   553  // Get returns all values pointed by specific field from source LabelKeySet
   554  func (fp *LabelKeySet_FieldTerminalPath) Get(source *LabelKeySet) (values []interface{}) {
   555  	if source != nil {
   556  		switch fp.selector {
   557  		case LabelKeySet_FieldPathSelectorLabelKeys:
   558  			for _, value := range source.GetLabelKeys() {
   559  				values = append(values, value)
   560  			}
   561  		default:
   562  			panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector))
   563  		}
   564  	}
   565  	return
   566  }
   567  
   568  func (fp *LabelKeySet_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   569  	return fp.Get(source.(*LabelKeySet))
   570  }
   571  
   572  // GetSingle returns value pointed by specific field of from source LabelKeySet
   573  func (fp *LabelKeySet_FieldTerminalPath) GetSingle(source *LabelKeySet) (interface{}, bool) {
   574  	switch fp.selector {
   575  	case LabelKeySet_FieldPathSelectorLabelKeys:
   576  		res := source.GetLabelKeys()
   577  		return res, res != nil
   578  	default:
   579  		panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector))
   580  	}
   581  }
   582  
   583  func (fp *LabelKeySet_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   584  	return fp.GetSingle(source.(*LabelKeySet))
   585  }
   586  
   587  // GetDefault returns a default value of the field type
   588  func (fp *LabelKeySet_FieldTerminalPath) GetDefault() interface{} {
   589  	switch fp.selector {
   590  	case LabelKeySet_FieldPathSelectorLabelKeys:
   591  		return ([]string)(nil)
   592  	default:
   593  		panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector))
   594  	}
   595  }
   596  
   597  func (fp *LabelKeySet_FieldTerminalPath) ClearValue(item *LabelKeySet) {
   598  	if item != nil {
   599  		switch fp.selector {
   600  		case LabelKeySet_FieldPathSelectorLabelKeys:
   601  			item.LabelKeys = nil
   602  		default:
   603  			panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector))
   604  		}
   605  	}
   606  }
   607  
   608  func (fp *LabelKeySet_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   609  	fp.ClearValue(item.(*LabelKeySet))
   610  }
   611  
   612  // IsLeaf - whether field path is holds simple value
   613  func (fp *LabelKeySet_FieldTerminalPath) IsLeaf() bool {
   614  	return fp.selector == LabelKeySet_FieldPathSelectorLabelKeys
   615  }
   616  
   617  func (fp *LabelKeySet_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   618  	return []gotenobject.FieldPath{fp}
   619  }
   620  
   621  func (fp *LabelKeySet_FieldTerminalPath) WithIValue(value interface{}) LabelKeySet_FieldPathValue {
   622  	switch fp.selector {
   623  	case LabelKeySet_FieldPathSelectorLabelKeys:
   624  		return &LabelKeySet_FieldTerminalPathValue{LabelKeySet_FieldTerminalPath: *fp, value: value.([]string)}
   625  	default:
   626  		panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector))
   627  	}
   628  }
   629  
   630  func (fp *LabelKeySet_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   631  	return fp.WithIValue(value)
   632  }
   633  
   634  func (fp *LabelKeySet_FieldTerminalPath) WithIArrayOfValues(values interface{}) LabelKeySet_FieldPathArrayOfValues {
   635  	fpaov := &LabelKeySet_FieldTerminalPathArrayOfValues{LabelKeySet_FieldTerminalPath: *fp}
   636  	switch fp.selector {
   637  	case LabelKeySet_FieldPathSelectorLabelKeys:
   638  		return &LabelKeySet_FieldTerminalPathArrayOfValues{LabelKeySet_FieldTerminalPath: *fp, values: values.([][]string)}
   639  	default:
   640  		panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector))
   641  	}
   642  	return fpaov
   643  }
   644  
   645  func (fp *LabelKeySet_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   646  	return fp.WithIArrayOfValues(values)
   647  }
   648  
   649  func (fp *LabelKeySet_FieldTerminalPath) WithIArrayItemValue(value interface{}) LabelKeySet_FieldPathArrayItemValue {
   650  	switch fp.selector {
   651  	case LabelKeySet_FieldPathSelectorLabelKeys:
   652  		return &LabelKeySet_FieldTerminalPathArrayItemValue{LabelKeySet_FieldTerminalPath: *fp, value: value.(string)}
   653  	default:
   654  		panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fp.selector))
   655  	}
   656  }
   657  
   658  func (fp *LabelKeySet_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   659  	return fp.WithIArrayItemValue(value)
   660  }
   661  
   662  // LabelKeySet_FieldPathValue allows storing values for LabelKeySet fields according to their type
   663  type LabelKeySet_FieldPathValue interface {
   664  	LabelKeySet_FieldPath
   665  	gotenobject.FieldPathValue
   666  	SetTo(target **LabelKeySet)
   667  	CompareWith(*LabelKeySet) (cmp int, comparable bool)
   668  }
   669  
   670  func ParseLabelKeySet_FieldPathValue(pathStr, valueStr string) (LabelKeySet_FieldPathValue, error) {
   671  	fp, err := ParseLabelKeySet_FieldPath(pathStr)
   672  	if err != nil {
   673  		return nil, err
   674  	}
   675  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   676  	if err != nil {
   677  		return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelKeySet field path value from %s: %v", valueStr, err)
   678  	}
   679  	return fpv.(LabelKeySet_FieldPathValue), nil
   680  }
   681  
   682  func MustParseLabelKeySet_FieldPathValue(pathStr, valueStr string) LabelKeySet_FieldPathValue {
   683  	fpv, err := ParseLabelKeySet_FieldPathValue(pathStr, valueStr)
   684  	if err != nil {
   685  		panic(err)
   686  	}
   687  	return fpv
   688  }
   689  
   690  type LabelKeySet_FieldTerminalPathValue struct {
   691  	LabelKeySet_FieldTerminalPath
   692  	value interface{}
   693  }
   694  
   695  var _ LabelKeySet_FieldPathValue = (*LabelKeySet_FieldTerminalPathValue)(nil)
   696  
   697  // GetRawValue returns raw value stored under selected path for 'LabelKeySet' as interface{}
   698  func (fpv *LabelKeySet_FieldTerminalPathValue) GetRawValue() interface{} {
   699  	return fpv.value
   700  }
   701  func (fpv *LabelKeySet_FieldTerminalPathValue) AsLabelKeysValue() ([]string, bool) {
   702  	res, ok := fpv.value.([]string)
   703  	return res, ok
   704  }
   705  
   706  // SetTo stores value for selected field for object LabelKeySet
   707  func (fpv *LabelKeySet_FieldTerminalPathValue) SetTo(target **LabelKeySet) {
   708  	if *target == nil {
   709  		*target = new(LabelKeySet)
   710  	}
   711  	switch fpv.selector {
   712  	case LabelKeySet_FieldPathSelectorLabelKeys:
   713  		(*target).LabelKeys = fpv.value.([]string)
   714  	default:
   715  		panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fpv.selector))
   716  	}
   717  }
   718  
   719  func (fpv *LabelKeySet_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   720  	typedObject := target.(*LabelKeySet)
   721  	fpv.SetTo(&typedObject)
   722  }
   723  
   724  // CompareWith compares value in the 'LabelKeySet_FieldTerminalPathValue' with the value under path in 'LabelKeySet'.
   725  func (fpv *LabelKeySet_FieldTerminalPathValue) CompareWith(source *LabelKeySet) (int, bool) {
   726  	switch fpv.selector {
   727  	case LabelKeySet_FieldPathSelectorLabelKeys:
   728  		return 0, false
   729  	default:
   730  		panic(fmt.Sprintf("Invalid selector for LabelKeySet: %d", fpv.selector))
   731  	}
   732  }
   733  
   734  func (fpv *LabelKeySet_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   735  	return fpv.CompareWith(source.(*LabelKeySet))
   736  }
   737  
   738  // LabelKeySet_FieldPathArrayItemValue allows storing single item in Path-specific values for LabelKeySet according to their type
   739  // Present only for array (repeated) types.
   740  type LabelKeySet_FieldPathArrayItemValue interface {
   741  	gotenobject.FieldPathArrayItemValue
   742  	LabelKeySet_FieldPath
   743  	ContainsValue(*LabelKeySet) bool
   744  }
   745  
   746  // ParseLabelKeySet_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   747  func ParseLabelKeySet_FieldPathArrayItemValue(pathStr, valueStr string) (LabelKeySet_FieldPathArrayItemValue, error) {
   748  	fp, err := ParseLabelKeySet_FieldPath(pathStr)
   749  	if err != nil {
   750  		return nil, err
   751  	}
   752  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   753  	if err != nil {
   754  		return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelKeySet field path array item value from %s: %v", valueStr, err)
   755  	}
   756  	return fpaiv.(LabelKeySet_FieldPathArrayItemValue), nil
   757  }
   758  
   759  func MustParseLabelKeySet_FieldPathArrayItemValue(pathStr, valueStr string) LabelKeySet_FieldPathArrayItemValue {
   760  	fpaiv, err := ParseLabelKeySet_FieldPathArrayItemValue(pathStr, valueStr)
   761  	if err != nil {
   762  		panic(err)
   763  	}
   764  	return fpaiv
   765  }
   766  
   767  type LabelKeySet_FieldTerminalPathArrayItemValue struct {
   768  	LabelKeySet_FieldTerminalPath
   769  	value interface{}
   770  }
   771  
   772  var _ LabelKeySet_FieldPathArrayItemValue = (*LabelKeySet_FieldTerminalPathArrayItemValue)(nil)
   773  
   774  // GetRawValue returns stored element value for array in object LabelKeySet as interface{}
   775  func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   776  	return fpaiv.value
   777  }
   778  func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) AsLabelKeysItemValue() (string, bool) {
   779  	res, ok := fpaiv.value.(string)
   780  	return res, ok
   781  }
   782  
   783  func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) GetSingle(source *LabelKeySet) (interface{}, bool) {
   784  	return nil, false
   785  }
   786  
   787  func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   788  	return fpaiv.GetSingle(source.(*LabelKeySet))
   789  }
   790  
   791  // Contains returns a boolean indicating if value that is being held is present in given 'LabelKeySet'
   792  func (fpaiv *LabelKeySet_FieldTerminalPathArrayItemValue) ContainsValue(source *LabelKeySet) bool {
   793  	slice := fpaiv.LabelKeySet_FieldTerminalPath.Get(source)
   794  	for _, v := range slice {
   795  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   796  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   797  				return true
   798  			}
   799  		} else if reflect.DeepEqual(v, fpaiv.value) {
   800  			return true
   801  		}
   802  	}
   803  	return false
   804  }
   805  
   806  // LabelKeySet_FieldPathArrayOfValues allows storing slice of values for LabelKeySet fields according to their type
   807  type LabelKeySet_FieldPathArrayOfValues interface {
   808  	gotenobject.FieldPathArrayOfValues
   809  	LabelKeySet_FieldPath
   810  }
   811  
   812  func ParseLabelKeySet_FieldPathArrayOfValues(pathStr, valuesStr string) (LabelKeySet_FieldPathArrayOfValues, error) {
   813  	fp, err := ParseLabelKeySet_FieldPath(pathStr)
   814  	if err != nil {
   815  		return nil, err
   816  	}
   817  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   818  	if err != nil {
   819  		return nil, status.Errorf(codes.InvalidArgument, "error parsing LabelKeySet field path array of values from %s: %v", valuesStr, err)
   820  	}
   821  	return fpaov.(LabelKeySet_FieldPathArrayOfValues), nil
   822  }
   823  
   824  func MustParseLabelKeySet_FieldPathArrayOfValues(pathStr, valuesStr string) LabelKeySet_FieldPathArrayOfValues {
   825  	fpaov, err := ParseLabelKeySet_FieldPathArrayOfValues(pathStr, valuesStr)
   826  	if err != nil {
   827  		panic(err)
   828  	}
   829  	return fpaov
   830  }
   831  
   832  type LabelKeySet_FieldTerminalPathArrayOfValues struct {
   833  	LabelKeySet_FieldTerminalPath
   834  	values interface{}
   835  }
   836  
   837  var _ LabelKeySet_FieldPathArrayOfValues = (*LabelKeySet_FieldTerminalPathArrayOfValues)(nil)
   838  
   839  func (fpaov *LabelKeySet_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   840  	switch fpaov.selector {
   841  	case LabelKeySet_FieldPathSelectorLabelKeys:
   842  		for _, v := range fpaov.values.([][]string) {
   843  			values = append(values, v)
   844  		}
   845  	}
   846  	return
   847  }
   848  func (fpaov *LabelKeySet_FieldTerminalPathArrayOfValues) AsLabelKeysArrayOfValues() ([][]string, bool) {
   849  	res, ok := fpaov.values.([][]string)
   850  	return res, ok
   851  }
   852  
   853  // FieldPath provides implementation to handle
   854  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
   855  type TimeInterval_FieldPath interface {
   856  	gotenobject.FieldPath
   857  	Selector() TimeInterval_FieldPathSelector
   858  	Get(source *TimeInterval) []interface{}
   859  	GetSingle(source *TimeInterval) (interface{}, bool)
   860  	ClearValue(item *TimeInterval)
   861  
   862  	// Those methods build corresponding TimeInterval_FieldPathValue
   863  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
   864  	WithIValue(value interface{}) TimeInterval_FieldPathValue
   865  	WithIArrayOfValues(values interface{}) TimeInterval_FieldPathArrayOfValues
   866  	WithIArrayItemValue(value interface{}) TimeInterval_FieldPathArrayItemValue
   867  }
   868  
   869  type TimeInterval_FieldPathSelector int32
   870  
   871  const (
   872  	TimeInterval_FieldPathSelectorEndTime   TimeInterval_FieldPathSelector = 0
   873  	TimeInterval_FieldPathSelectorStartTime TimeInterval_FieldPathSelector = 1
   874  )
   875  
   876  func (s TimeInterval_FieldPathSelector) String() string {
   877  	switch s {
   878  	case TimeInterval_FieldPathSelectorEndTime:
   879  		return "end_time"
   880  	case TimeInterval_FieldPathSelectorStartTime:
   881  		return "start_time"
   882  	default:
   883  		panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", s))
   884  	}
   885  }
   886  
   887  func BuildTimeInterval_FieldPath(fp gotenobject.RawFieldPath) (TimeInterval_FieldPath, error) {
   888  	if len(fp) == 0 {
   889  		return nil, status.Error(codes.InvalidArgument, "empty field path for object TimeInterval")
   890  	}
   891  	if len(fp) == 1 {
   892  		switch fp[0] {
   893  		case "end_time", "endTime", "end-time":
   894  			return &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorEndTime}, nil
   895  		case "start_time", "startTime", "start-time":
   896  			return &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorStartTime}, nil
   897  		}
   898  	}
   899  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object TimeInterval", fp)
   900  }
   901  
   902  func ParseTimeInterval_FieldPath(rawField string) (TimeInterval_FieldPath, error) {
   903  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   904  	if err != nil {
   905  		return nil, err
   906  	}
   907  	return BuildTimeInterval_FieldPath(fp)
   908  }
   909  
   910  func MustParseTimeInterval_FieldPath(rawField string) TimeInterval_FieldPath {
   911  	fp, err := ParseTimeInterval_FieldPath(rawField)
   912  	if err != nil {
   913  		panic(err)
   914  	}
   915  	return fp
   916  }
   917  
   918  type TimeInterval_FieldTerminalPath struct {
   919  	selector TimeInterval_FieldPathSelector
   920  }
   921  
   922  var _ TimeInterval_FieldPath = (*TimeInterval_FieldTerminalPath)(nil)
   923  
   924  func (fp *TimeInterval_FieldTerminalPath) Selector() TimeInterval_FieldPathSelector {
   925  	return fp.selector
   926  }
   927  
   928  // String returns path representation in proto convention
   929  func (fp *TimeInterval_FieldTerminalPath) String() string {
   930  	return fp.selector.String()
   931  }
   932  
   933  // JSONString returns path representation is JSON convention
   934  func (fp *TimeInterval_FieldTerminalPath) JSONString() string {
   935  	return strcase.ToLowerCamel(fp.String())
   936  }
   937  
   938  // Get returns all values pointed by specific field from source TimeInterval
   939  func (fp *TimeInterval_FieldTerminalPath) Get(source *TimeInterval) (values []interface{}) {
   940  	if source != nil {
   941  		switch fp.selector {
   942  		case TimeInterval_FieldPathSelectorEndTime:
   943  			if source.EndTime != nil {
   944  				values = append(values, source.EndTime)
   945  			}
   946  		case TimeInterval_FieldPathSelectorStartTime:
   947  			if source.StartTime != nil {
   948  				values = append(values, source.StartTime)
   949  			}
   950  		default:
   951  			panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector))
   952  		}
   953  	}
   954  	return
   955  }
   956  
   957  func (fp *TimeInterval_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   958  	return fp.Get(source.(*TimeInterval))
   959  }
   960  
   961  // GetSingle returns value pointed by specific field of from source TimeInterval
   962  func (fp *TimeInterval_FieldTerminalPath) GetSingle(source *TimeInterval) (interface{}, bool) {
   963  	switch fp.selector {
   964  	case TimeInterval_FieldPathSelectorEndTime:
   965  		res := source.GetEndTime()
   966  		return res, res != nil
   967  	case TimeInterval_FieldPathSelectorStartTime:
   968  		res := source.GetStartTime()
   969  		return res, res != nil
   970  	default:
   971  		panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector))
   972  	}
   973  }
   974  
   975  func (fp *TimeInterval_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   976  	return fp.GetSingle(source.(*TimeInterval))
   977  }
   978  
   979  // GetDefault returns a default value of the field type
   980  func (fp *TimeInterval_FieldTerminalPath) GetDefault() interface{} {
   981  	switch fp.selector {
   982  	case TimeInterval_FieldPathSelectorEndTime:
   983  		return (*timestamppb.Timestamp)(nil)
   984  	case TimeInterval_FieldPathSelectorStartTime:
   985  		return (*timestamppb.Timestamp)(nil)
   986  	default:
   987  		panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector))
   988  	}
   989  }
   990  
   991  func (fp *TimeInterval_FieldTerminalPath) ClearValue(item *TimeInterval) {
   992  	if item != nil {
   993  		switch fp.selector {
   994  		case TimeInterval_FieldPathSelectorEndTime:
   995  			item.EndTime = nil
   996  		case TimeInterval_FieldPathSelectorStartTime:
   997  			item.StartTime = nil
   998  		default:
   999  			panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector))
  1000  		}
  1001  	}
  1002  }
  1003  
  1004  func (fp *TimeInterval_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1005  	fp.ClearValue(item.(*TimeInterval))
  1006  }
  1007  
  1008  // IsLeaf - whether field path is holds simple value
  1009  func (fp *TimeInterval_FieldTerminalPath) IsLeaf() bool {
  1010  	return fp.selector == TimeInterval_FieldPathSelectorEndTime ||
  1011  		fp.selector == TimeInterval_FieldPathSelectorStartTime
  1012  }
  1013  
  1014  func (fp *TimeInterval_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1015  	return []gotenobject.FieldPath{fp}
  1016  }
  1017  
  1018  func (fp *TimeInterval_FieldTerminalPath) WithIValue(value interface{}) TimeInterval_FieldPathValue {
  1019  	switch fp.selector {
  1020  	case TimeInterval_FieldPathSelectorEndTime:
  1021  		return &TimeInterval_FieldTerminalPathValue{TimeInterval_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)}
  1022  	case TimeInterval_FieldPathSelectorStartTime:
  1023  		return &TimeInterval_FieldTerminalPathValue{TimeInterval_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)}
  1024  	default:
  1025  		panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector))
  1026  	}
  1027  }
  1028  
  1029  func (fp *TimeInterval_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1030  	return fp.WithIValue(value)
  1031  }
  1032  
  1033  func (fp *TimeInterval_FieldTerminalPath) WithIArrayOfValues(values interface{}) TimeInterval_FieldPathArrayOfValues {
  1034  	fpaov := &TimeInterval_FieldTerminalPathArrayOfValues{TimeInterval_FieldTerminalPath: *fp}
  1035  	switch fp.selector {
  1036  	case TimeInterval_FieldPathSelectorEndTime:
  1037  		return &TimeInterval_FieldTerminalPathArrayOfValues{TimeInterval_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)}
  1038  	case TimeInterval_FieldPathSelectorStartTime:
  1039  		return &TimeInterval_FieldTerminalPathArrayOfValues{TimeInterval_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)}
  1040  	default:
  1041  		panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector))
  1042  	}
  1043  	return fpaov
  1044  }
  1045  
  1046  func (fp *TimeInterval_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1047  	return fp.WithIArrayOfValues(values)
  1048  }
  1049  
  1050  func (fp *TimeInterval_FieldTerminalPath) WithIArrayItemValue(value interface{}) TimeInterval_FieldPathArrayItemValue {
  1051  	switch fp.selector {
  1052  	default:
  1053  		panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fp.selector))
  1054  	}
  1055  }
  1056  
  1057  func (fp *TimeInterval_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1058  	return fp.WithIArrayItemValue(value)
  1059  }
  1060  
  1061  // TimeInterval_FieldPathValue allows storing values for TimeInterval fields according to their type
  1062  type TimeInterval_FieldPathValue interface {
  1063  	TimeInterval_FieldPath
  1064  	gotenobject.FieldPathValue
  1065  	SetTo(target **TimeInterval)
  1066  	CompareWith(*TimeInterval) (cmp int, comparable bool)
  1067  }
  1068  
  1069  func ParseTimeInterval_FieldPathValue(pathStr, valueStr string) (TimeInterval_FieldPathValue, error) {
  1070  	fp, err := ParseTimeInterval_FieldPath(pathStr)
  1071  	if err != nil {
  1072  		return nil, err
  1073  	}
  1074  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1075  	if err != nil {
  1076  		return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeInterval field path value from %s: %v", valueStr, err)
  1077  	}
  1078  	return fpv.(TimeInterval_FieldPathValue), nil
  1079  }
  1080  
  1081  func MustParseTimeInterval_FieldPathValue(pathStr, valueStr string) TimeInterval_FieldPathValue {
  1082  	fpv, err := ParseTimeInterval_FieldPathValue(pathStr, valueStr)
  1083  	if err != nil {
  1084  		panic(err)
  1085  	}
  1086  	return fpv
  1087  }
  1088  
  1089  type TimeInterval_FieldTerminalPathValue struct {
  1090  	TimeInterval_FieldTerminalPath
  1091  	value interface{}
  1092  }
  1093  
  1094  var _ TimeInterval_FieldPathValue = (*TimeInterval_FieldTerminalPathValue)(nil)
  1095  
  1096  // GetRawValue returns raw value stored under selected path for 'TimeInterval' as interface{}
  1097  func (fpv *TimeInterval_FieldTerminalPathValue) GetRawValue() interface{} {
  1098  	return fpv.value
  1099  }
  1100  func (fpv *TimeInterval_FieldTerminalPathValue) AsEndTimeValue() (*timestamppb.Timestamp, bool) {
  1101  	res, ok := fpv.value.(*timestamppb.Timestamp)
  1102  	return res, ok
  1103  }
  1104  func (fpv *TimeInterval_FieldTerminalPathValue) AsStartTimeValue() (*timestamppb.Timestamp, bool) {
  1105  	res, ok := fpv.value.(*timestamppb.Timestamp)
  1106  	return res, ok
  1107  }
  1108  
  1109  // SetTo stores value for selected field for object TimeInterval
  1110  func (fpv *TimeInterval_FieldTerminalPathValue) SetTo(target **TimeInterval) {
  1111  	if *target == nil {
  1112  		*target = new(TimeInterval)
  1113  	}
  1114  	switch fpv.selector {
  1115  	case TimeInterval_FieldPathSelectorEndTime:
  1116  		(*target).EndTime = fpv.value.(*timestamppb.Timestamp)
  1117  	case TimeInterval_FieldPathSelectorStartTime:
  1118  		(*target).StartTime = fpv.value.(*timestamppb.Timestamp)
  1119  	default:
  1120  		panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fpv.selector))
  1121  	}
  1122  }
  1123  
  1124  func (fpv *TimeInterval_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1125  	typedObject := target.(*TimeInterval)
  1126  	fpv.SetTo(&typedObject)
  1127  }
  1128  
  1129  // CompareWith compares value in the 'TimeInterval_FieldTerminalPathValue' with the value under path in 'TimeInterval'.
  1130  func (fpv *TimeInterval_FieldTerminalPathValue) CompareWith(source *TimeInterval) (int, bool) {
  1131  	switch fpv.selector {
  1132  	case TimeInterval_FieldPathSelectorEndTime:
  1133  		leftValue := fpv.value.(*timestamppb.Timestamp)
  1134  		rightValue := source.GetEndTime()
  1135  		if leftValue == nil {
  1136  			if rightValue != nil {
  1137  				return -1, true
  1138  			}
  1139  			return 0, true
  1140  		}
  1141  		if rightValue == nil {
  1142  			return 1, true
  1143  		}
  1144  		if leftValue.AsTime().Equal(rightValue.AsTime()) {
  1145  			return 0, true
  1146  		} else if leftValue.AsTime().Before(rightValue.AsTime()) {
  1147  			return -1, true
  1148  		} else {
  1149  			return 1, true
  1150  		}
  1151  	case TimeInterval_FieldPathSelectorStartTime:
  1152  		leftValue := fpv.value.(*timestamppb.Timestamp)
  1153  		rightValue := source.GetStartTime()
  1154  		if leftValue == nil {
  1155  			if rightValue != nil {
  1156  				return -1, true
  1157  			}
  1158  			return 0, true
  1159  		}
  1160  		if rightValue == nil {
  1161  			return 1, true
  1162  		}
  1163  		if leftValue.AsTime().Equal(rightValue.AsTime()) {
  1164  			return 0, true
  1165  		} else if leftValue.AsTime().Before(rightValue.AsTime()) {
  1166  			return -1, true
  1167  		} else {
  1168  			return 1, true
  1169  		}
  1170  	default:
  1171  		panic(fmt.Sprintf("Invalid selector for TimeInterval: %d", fpv.selector))
  1172  	}
  1173  }
  1174  
  1175  func (fpv *TimeInterval_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1176  	return fpv.CompareWith(source.(*TimeInterval))
  1177  }
  1178  
  1179  // TimeInterval_FieldPathArrayItemValue allows storing single item in Path-specific values for TimeInterval according to their type
  1180  // Present only for array (repeated) types.
  1181  type TimeInterval_FieldPathArrayItemValue interface {
  1182  	gotenobject.FieldPathArrayItemValue
  1183  	TimeInterval_FieldPath
  1184  	ContainsValue(*TimeInterval) bool
  1185  }
  1186  
  1187  // ParseTimeInterval_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1188  func ParseTimeInterval_FieldPathArrayItemValue(pathStr, valueStr string) (TimeInterval_FieldPathArrayItemValue, error) {
  1189  	fp, err := ParseTimeInterval_FieldPath(pathStr)
  1190  	if err != nil {
  1191  		return nil, err
  1192  	}
  1193  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1194  	if err != nil {
  1195  		return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeInterval field path array item value from %s: %v", valueStr, err)
  1196  	}
  1197  	return fpaiv.(TimeInterval_FieldPathArrayItemValue), nil
  1198  }
  1199  
  1200  func MustParseTimeInterval_FieldPathArrayItemValue(pathStr, valueStr string) TimeInterval_FieldPathArrayItemValue {
  1201  	fpaiv, err := ParseTimeInterval_FieldPathArrayItemValue(pathStr, valueStr)
  1202  	if err != nil {
  1203  		panic(err)
  1204  	}
  1205  	return fpaiv
  1206  }
  1207  
  1208  type TimeInterval_FieldTerminalPathArrayItemValue struct {
  1209  	TimeInterval_FieldTerminalPath
  1210  	value interface{}
  1211  }
  1212  
  1213  var _ TimeInterval_FieldPathArrayItemValue = (*TimeInterval_FieldTerminalPathArrayItemValue)(nil)
  1214  
  1215  // GetRawValue returns stored element value for array in object TimeInterval as interface{}
  1216  func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1217  	return fpaiv.value
  1218  }
  1219  
  1220  func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) GetSingle(source *TimeInterval) (interface{}, bool) {
  1221  	return nil, false
  1222  }
  1223  
  1224  func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1225  	return fpaiv.GetSingle(source.(*TimeInterval))
  1226  }
  1227  
  1228  // Contains returns a boolean indicating if value that is being held is present in given 'TimeInterval'
  1229  func (fpaiv *TimeInterval_FieldTerminalPathArrayItemValue) ContainsValue(source *TimeInterval) bool {
  1230  	slice := fpaiv.TimeInterval_FieldTerminalPath.Get(source)
  1231  	for _, v := range slice {
  1232  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1233  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1234  				return true
  1235  			}
  1236  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1237  			return true
  1238  		}
  1239  	}
  1240  	return false
  1241  }
  1242  
  1243  // TimeInterval_FieldPathArrayOfValues allows storing slice of values for TimeInterval fields according to their type
  1244  type TimeInterval_FieldPathArrayOfValues interface {
  1245  	gotenobject.FieldPathArrayOfValues
  1246  	TimeInterval_FieldPath
  1247  }
  1248  
  1249  func ParseTimeInterval_FieldPathArrayOfValues(pathStr, valuesStr string) (TimeInterval_FieldPathArrayOfValues, error) {
  1250  	fp, err := ParseTimeInterval_FieldPath(pathStr)
  1251  	if err != nil {
  1252  		return nil, err
  1253  	}
  1254  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1255  	if err != nil {
  1256  		return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeInterval field path array of values from %s: %v", valuesStr, err)
  1257  	}
  1258  	return fpaov.(TimeInterval_FieldPathArrayOfValues), nil
  1259  }
  1260  
  1261  func MustParseTimeInterval_FieldPathArrayOfValues(pathStr, valuesStr string) TimeInterval_FieldPathArrayOfValues {
  1262  	fpaov, err := ParseTimeInterval_FieldPathArrayOfValues(pathStr, valuesStr)
  1263  	if err != nil {
  1264  		panic(err)
  1265  	}
  1266  	return fpaov
  1267  }
  1268  
  1269  type TimeInterval_FieldTerminalPathArrayOfValues struct {
  1270  	TimeInterval_FieldTerminalPath
  1271  	values interface{}
  1272  }
  1273  
  1274  var _ TimeInterval_FieldPathArrayOfValues = (*TimeInterval_FieldTerminalPathArrayOfValues)(nil)
  1275  
  1276  func (fpaov *TimeInterval_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1277  	switch fpaov.selector {
  1278  	case TimeInterval_FieldPathSelectorEndTime:
  1279  		for _, v := range fpaov.values.([]*timestamppb.Timestamp) {
  1280  			values = append(values, v)
  1281  		}
  1282  	case TimeInterval_FieldPathSelectorStartTime:
  1283  		for _, v := range fpaov.values.([]*timestamppb.Timestamp) {
  1284  			values = append(values, v)
  1285  		}
  1286  	}
  1287  	return
  1288  }
  1289  func (fpaov *TimeInterval_FieldTerminalPathArrayOfValues) AsEndTimeArrayOfValues() ([]*timestamppb.Timestamp, bool) {
  1290  	res, ok := fpaov.values.([]*timestamppb.Timestamp)
  1291  	return res, ok
  1292  }
  1293  func (fpaov *TimeInterval_FieldTerminalPathArrayOfValues) AsStartTimeArrayOfValues() ([]*timestamppb.Timestamp, bool) {
  1294  	res, ok := fpaov.values.([]*timestamppb.Timestamp)
  1295  	return res, ok
  1296  }