github.com/cloudwan/edgelq-sdk@v1.15.4/monitoring/resources/v4/alert/alert.pb.fieldpath.go (about)

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/monitoring/proto/v4/alert.proto
     3  // DO NOT EDIT!!!
     4  
     5  package alert
     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  	alerting_condition "github.com/cloudwan/edgelq-sdk/monitoring/resources/v4/alerting_condition"
    27  	common "github.com/cloudwan/edgelq-sdk/monitoring/resources/v4/common"
    28  	meta "github.com/cloudwan/goten-sdk/types/meta"
    29  )
    30  
    31  // ensure the imports are used
    32  var (
    33  	_ = new(json.Marshaler)
    34  	_ = new(fmt.Stringer)
    35  	_ = reflect.DeepEqual
    36  	_ = strings.Builder{}
    37  	_ = time.Second
    38  
    39  	_ = strcase.ToLowerCamel
    40  	_ = codes.NotFound
    41  	_ = status.Status{}
    42  	_ = protojson.UnmarshalOptions{}
    43  	_ = new(proto.Message)
    44  	_ = protoregistry.GlobalTypes
    45  
    46  	_ = new(gotenobject.FieldPath)
    47  )
    48  
    49  // make sure we're using proto imports
    50  var (
    51  	_ = &alerting_condition.AlertingCondition{}
    52  	_ = &common.LabelDescriptor{}
    53  	_ = &meta.Meta{}
    54  )
    55  
    56  // FieldPath provides implementation to handle
    57  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    58  type Alert_FieldPath interface {
    59  	gotenobject.FieldPath
    60  	Selector() Alert_FieldPathSelector
    61  	Get(source *Alert) []interface{}
    62  	GetSingle(source *Alert) (interface{}, bool)
    63  	ClearValue(item *Alert)
    64  
    65  	// Those methods build corresponding Alert_FieldPathValue
    66  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    67  	WithIValue(value interface{}) Alert_FieldPathValue
    68  	WithIArrayOfValues(values interface{}) Alert_FieldPathArrayOfValues
    69  	WithIArrayItemValue(value interface{}) Alert_FieldPathArrayItemValue
    70  }
    71  
    72  type Alert_FieldPathSelector int32
    73  
    74  const (
    75  	Alert_FieldPathSelectorName        Alert_FieldPathSelector = 0
    76  	Alert_FieldPathSelectorMetadata    Alert_FieldPathSelector = 1
    77  	Alert_FieldPathSelectorDisplayName Alert_FieldPathSelector = 2
    78  	Alert_FieldPathSelectorInfo        Alert_FieldPathSelector = 3
    79  	Alert_FieldPathSelectorState       Alert_FieldPathSelector = 4
    80  )
    81  
    82  func (s Alert_FieldPathSelector) String() string {
    83  	switch s {
    84  	case Alert_FieldPathSelectorName:
    85  		return "name"
    86  	case Alert_FieldPathSelectorMetadata:
    87  		return "metadata"
    88  	case Alert_FieldPathSelectorDisplayName:
    89  		return "display_name"
    90  	case Alert_FieldPathSelectorInfo:
    91  		return "info"
    92  	case Alert_FieldPathSelectorState:
    93  		return "state"
    94  	default:
    95  		panic(fmt.Sprintf("Invalid selector for Alert: %d", s))
    96  	}
    97  }
    98  
    99  func BuildAlert_FieldPath(fp gotenobject.RawFieldPath) (Alert_FieldPath, error) {
   100  	if len(fp) == 0 {
   101  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Alert")
   102  	}
   103  	if len(fp) == 1 {
   104  		switch fp[0] {
   105  		case "name":
   106  			return &Alert_FieldTerminalPath{selector: Alert_FieldPathSelectorName}, nil
   107  		case "metadata":
   108  			return &Alert_FieldTerminalPath{selector: Alert_FieldPathSelectorMetadata}, nil
   109  		case "display_name", "displayName", "display-name":
   110  			return &Alert_FieldTerminalPath{selector: Alert_FieldPathSelectorDisplayName}, nil
   111  		case "info":
   112  			return &Alert_FieldTerminalPath{selector: Alert_FieldPathSelectorInfo}, nil
   113  		case "state":
   114  			return &Alert_FieldTerminalPath{selector: Alert_FieldPathSelectorState}, nil
   115  		}
   116  	} else {
   117  		switch fp[0] {
   118  		case "metadata":
   119  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   120  				return nil, err
   121  			} else {
   122  				return &Alert_FieldSubPath{selector: Alert_FieldPathSelectorMetadata, subPath: subpath}, nil
   123  			}
   124  		case "info":
   125  			if subpath, err := BuildAlertInfo_FieldPath(fp[1:]); err != nil {
   126  				return nil, err
   127  			} else {
   128  				return &Alert_FieldSubPath{selector: Alert_FieldPathSelectorInfo, subPath: subpath}, nil
   129  			}
   130  		case "state":
   131  			if subpath, err := BuildAlertState_FieldPath(fp[1:]); err != nil {
   132  				return nil, err
   133  			} else {
   134  				return &Alert_FieldSubPath{selector: Alert_FieldPathSelectorState, subPath: subpath}, nil
   135  			}
   136  		}
   137  	}
   138  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Alert", fp)
   139  }
   140  
   141  func ParseAlert_FieldPath(rawField string) (Alert_FieldPath, error) {
   142  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   143  	if err != nil {
   144  		return nil, err
   145  	}
   146  	return BuildAlert_FieldPath(fp)
   147  }
   148  
   149  func MustParseAlert_FieldPath(rawField string) Alert_FieldPath {
   150  	fp, err := ParseAlert_FieldPath(rawField)
   151  	if err != nil {
   152  		panic(err)
   153  	}
   154  	return fp
   155  }
   156  
   157  type Alert_FieldTerminalPath struct {
   158  	selector Alert_FieldPathSelector
   159  }
   160  
   161  var _ Alert_FieldPath = (*Alert_FieldTerminalPath)(nil)
   162  
   163  func (fp *Alert_FieldTerminalPath) Selector() Alert_FieldPathSelector {
   164  	return fp.selector
   165  }
   166  
   167  // String returns path representation in proto convention
   168  func (fp *Alert_FieldTerminalPath) String() string {
   169  	return fp.selector.String()
   170  }
   171  
   172  // JSONString returns path representation is JSON convention
   173  func (fp *Alert_FieldTerminalPath) JSONString() string {
   174  	return strcase.ToLowerCamel(fp.String())
   175  }
   176  
   177  // Get returns all values pointed by specific field from source Alert
   178  func (fp *Alert_FieldTerminalPath) Get(source *Alert) (values []interface{}) {
   179  	if source != nil {
   180  		switch fp.selector {
   181  		case Alert_FieldPathSelectorName:
   182  			if source.Name != nil {
   183  				values = append(values, source.Name)
   184  			}
   185  		case Alert_FieldPathSelectorMetadata:
   186  			if source.Metadata != nil {
   187  				values = append(values, source.Metadata)
   188  			}
   189  		case Alert_FieldPathSelectorDisplayName:
   190  			values = append(values, source.DisplayName)
   191  		case Alert_FieldPathSelectorInfo:
   192  			if source.Info != nil {
   193  				values = append(values, source.Info)
   194  			}
   195  		case Alert_FieldPathSelectorState:
   196  			if source.State != nil {
   197  				values = append(values, source.State)
   198  			}
   199  		default:
   200  			panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector))
   201  		}
   202  	}
   203  	return
   204  }
   205  
   206  func (fp *Alert_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   207  	return fp.Get(source.(*Alert))
   208  }
   209  
   210  // GetSingle returns value pointed by specific field of from source Alert
   211  func (fp *Alert_FieldTerminalPath) GetSingle(source *Alert) (interface{}, bool) {
   212  	switch fp.selector {
   213  	case Alert_FieldPathSelectorName:
   214  		res := source.GetName()
   215  		return res, res != nil
   216  	case Alert_FieldPathSelectorMetadata:
   217  		res := source.GetMetadata()
   218  		return res, res != nil
   219  	case Alert_FieldPathSelectorDisplayName:
   220  		return source.GetDisplayName(), source != nil
   221  	case Alert_FieldPathSelectorInfo:
   222  		res := source.GetInfo()
   223  		return res, res != nil
   224  	case Alert_FieldPathSelectorState:
   225  		res := source.GetState()
   226  		return res, res != nil
   227  	default:
   228  		panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector))
   229  	}
   230  }
   231  
   232  func (fp *Alert_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   233  	return fp.GetSingle(source.(*Alert))
   234  }
   235  
   236  // GetDefault returns a default value of the field type
   237  func (fp *Alert_FieldTerminalPath) GetDefault() interface{} {
   238  	switch fp.selector {
   239  	case Alert_FieldPathSelectorName:
   240  		return (*Name)(nil)
   241  	case Alert_FieldPathSelectorMetadata:
   242  		return (*meta.Meta)(nil)
   243  	case Alert_FieldPathSelectorDisplayName:
   244  		return ""
   245  	case Alert_FieldPathSelectorInfo:
   246  		return (*Alert_Info)(nil)
   247  	case Alert_FieldPathSelectorState:
   248  		return (*Alert_State)(nil)
   249  	default:
   250  		panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector))
   251  	}
   252  }
   253  
   254  func (fp *Alert_FieldTerminalPath) ClearValue(item *Alert) {
   255  	if item != nil {
   256  		switch fp.selector {
   257  		case Alert_FieldPathSelectorName:
   258  			item.Name = nil
   259  		case Alert_FieldPathSelectorMetadata:
   260  			item.Metadata = nil
   261  		case Alert_FieldPathSelectorDisplayName:
   262  			item.DisplayName = ""
   263  		case Alert_FieldPathSelectorInfo:
   264  			item.Info = nil
   265  		case Alert_FieldPathSelectorState:
   266  			item.State = nil
   267  		default:
   268  			panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector))
   269  		}
   270  	}
   271  }
   272  
   273  func (fp *Alert_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   274  	fp.ClearValue(item.(*Alert))
   275  }
   276  
   277  // IsLeaf - whether field path is holds simple value
   278  func (fp *Alert_FieldTerminalPath) IsLeaf() bool {
   279  	return fp.selector == Alert_FieldPathSelectorName ||
   280  		fp.selector == Alert_FieldPathSelectorDisplayName
   281  }
   282  
   283  func (fp *Alert_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   284  	return []gotenobject.FieldPath{fp}
   285  }
   286  
   287  func (fp *Alert_FieldTerminalPath) WithIValue(value interface{}) Alert_FieldPathValue {
   288  	switch fp.selector {
   289  	case Alert_FieldPathSelectorName:
   290  		return &Alert_FieldTerminalPathValue{Alert_FieldTerminalPath: *fp, value: value.(*Name)}
   291  	case Alert_FieldPathSelectorMetadata:
   292  		return &Alert_FieldTerminalPathValue{Alert_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   293  	case Alert_FieldPathSelectorDisplayName:
   294  		return &Alert_FieldTerminalPathValue{Alert_FieldTerminalPath: *fp, value: value.(string)}
   295  	case Alert_FieldPathSelectorInfo:
   296  		return &Alert_FieldTerminalPathValue{Alert_FieldTerminalPath: *fp, value: value.(*Alert_Info)}
   297  	case Alert_FieldPathSelectorState:
   298  		return &Alert_FieldTerminalPathValue{Alert_FieldTerminalPath: *fp, value: value.(*Alert_State)}
   299  	default:
   300  		panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector))
   301  	}
   302  }
   303  
   304  func (fp *Alert_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   305  	return fp.WithIValue(value)
   306  }
   307  
   308  func (fp *Alert_FieldTerminalPath) WithIArrayOfValues(values interface{}) Alert_FieldPathArrayOfValues {
   309  	fpaov := &Alert_FieldTerminalPathArrayOfValues{Alert_FieldTerminalPath: *fp}
   310  	switch fp.selector {
   311  	case Alert_FieldPathSelectorName:
   312  		return &Alert_FieldTerminalPathArrayOfValues{Alert_FieldTerminalPath: *fp, values: values.([]*Name)}
   313  	case Alert_FieldPathSelectorMetadata:
   314  		return &Alert_FieldTerminalPathArrayOfValues{Alert_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   315  	case Alert_FieldPathSelectorDisplayName:
   316  		return &Alert_FieldTerminalPathArrayOfValues{Alert_FieldTerminalPath: *fp, values: values.([]string)}
   317  	case Alert_FieldPathSelectorInfo:
   318  		return &Alert_FieldTerminalPathArrayOfValues{Alert_FieldTerminalPath: *fp, values: values.([]*Alert_Info)}
   319  	case Alert_FieldPathSelectorState:
   320  		return &Alert_FieldTerminalPathArrayOfValues{Alert_FieldTerminalPath: *fp, values: values.([]*Alert_State)}
   321  	default:
   322  		panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector))
   323  	}
   324  	return fpaov
   325  }
   326  
   327  func (fp *Alert_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   328  	return fp.WithIArrayOfValues(values)
   329  }
   330  
   331  func (fp *Alert_FieldTerminalPath) WithIArrayItemValue(value interface{}) Alert_FieldPathArrayItemValue {
   332  	switch fp.selector {
   333  	default:
   334  		panic(fmt.Sprintf("Invalid selector for Alert: %d", fp.selector))
   335  	}
   336  }
   337  
   338  func (fp *Alert_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   339  	return fp.WithIArrayItemValue(value)
   340  }
   341  
   342  type Alert_FieldSubPath struct {
   343  	selector Alert_FieldPathSelector
   344  	subPath  gotenobject.FieldPath
   345  }
   346  
   347  var _ Alert_FieldPath = (*Alert_FieldSubPath)(nil)
   348  
   349  func (fps *Alert_FieldSubPath) Selector() Alert_FieldPathSelector {
   350  	return fps.selector
   351  }
   352  func (fps *Alert_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   353  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   354  	return res, ok
   355  }
   356  func (fps *Alert_FieldSubPath) AsInfoSubPath() (AlertInfo_FieldPath, bool) {
   357  	res, ok := fps.subPath.(AlertInfo_FieldPath)
   358  	return res, ok
   359  }
   360  func (fps *Alert_FieldSubPath) AsStateSubPath() (AlertState_FieldPath, bool) {
   361  	res, ok := fps.subPath.(AlertState_FieldPath)
   362  	return res, ok
   363  }
   364  
   365  // String returns path representation in proto convention
   366  func (fps *Alert_FieldSubPath) String() string {
   367  	return fps.selector.String() + "." + fps.subPath.String()
   368  }
   369  
   370  // JSONString returns path representation is JSON convention
   371  func (fps *Alert_FieldSubPath) JSONString() string {
   372  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   373  }
   374  
   375  // Get returns all values pointed by selected field from source Alert
   376  func (fps *Alert_FieldSubPath) Get(source *Alert) (values []interface{}) {
   377  	switch fps.selector {
   378  	case Alert_FieldPathSelectorMetadata:
   379  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   380  	case Alert_FieldPathSelectorInfo:
   381  		values = append(values, fps.subPath.GetRaw(source.GetInfo())...)
   382  	case Alert_FieldPathSelectorState:
   383  		values = append(values, fps.subPath.GetRaw(source.GetState())...)
   384  	default:
   385  		panic(fmt.Sprintf("Invalid selector for Alert: %d", fps.selector))
   386  	}
   387  	return
   388  }
   389  
   390  func (fps *Alert_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   391  	return fps.Get(source.(*Alert))
   392  }
   393  
   394  // GetSingle returns value of selected field from source Alert
   395  func (fps *Alert_FieldSubPath) GetSingle(source *Alert) (interface{}, bool) {
   396  	switch fps.selector {
   397  	case Alert_FieldPathSelectorMetadata:
   398  		if source.GetMetadata() == nil {
   399  			return nil, false
   400  		}
   401  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   402  	case Alert_FieldPathSelectorInfo:
   403  		if source.GetInfo() == nil {
   404  			return nil, false
   405  		}
   406  		return fps.subPath.GetSingleRaw(source.GetInfo())
   407  	case Alert_FieldPathSelectorState:
   408  		if source.GetState() == nil {
   409  			return nil, false
   410  		}
   411  		return fps.subPath.GetSingleRaw(source.GetState())
   412  	default:
   413  		panic(fmt.Sprintf("Invalid selector for Alert: %d", fps.selector))
   414  	}
   415  }
   416  
   417  func (fps *Alert_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   418  	return fps.GetSingle(source.(*Alert))
   419  }
   420  
   421  // GetDefault returns a default value of the field type
   422  func (fps *Alert_FieldSubPath) GetDefault() interface{} {
   423  	return fps.subPath.GetDefault()
   424  }
   425  
   426  func (fps *Alert_FieldSubPath) ClearValue(item *Alert) {
   427  	if item != nil {
   428  		switch fps.selector {
   429  		case Alert_FieldPathSelectorMetadata:
   430  			fps.subPath.ClearValueRaw(item.Metadata)
   431  		case Alert_FieldPathSelectorInfo:
   432  			fps.subPath.ClearValueRaw(item.Info)
   433  		case Alert_FieldPathSelectorState:
   434  			fps.subPath.ClearValueRaw(item.State)
   435  		default:
   436  			panic(fmt.Sprintf("Invalid selector for Alert: %d", fps.selector))
   437  		}
   438  	}
   439  }
   440  
   441  func (fps *Alert_FieldSubPath) ClearValueRaw(item proto.Message) {
   442  	fps.ClearValue(item.(*Alert))
   443  }
   444  
   445  // IsLeaf - whether field path is holds simple value
   446  func (fps *Alert_FieldSubPath) IsLeaf() bool {
   447  	return fps.subPath.IsLeaf()
   448  }
   449  
   450  func (fps *Alert_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   451  	iPaths := []gotenobject.FieldPath{&Alert_FieldTerminalPath{selector: fps.selector}}
   452  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   453  	return iPaths
   454  }
   455  
   456  func (fps *Alert_FieldSubPath) WithIValue(value interface{}) Alert_FieldPathValue {
   457  	return &Alert_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   458  }
   459  
   460  func (fps *Alert_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   461  	return fps.WithIValue(value)
   462  }
   463  
   464  func (fps *Alert_FieldSubPath) WithIArrayOfValues(values interface{}) Alert_FieldPathArrayOfValues {
   465  	return &Alert_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   466  }
   467  
   468  func (fps *Alert_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   469  	return fps.WithIArrayOfValues(values)
   470  }
   471  
   472  func (fps *Alert_FieldSubPath) WithIArrayItemValue(value interface{}) Alert_FieldPathArrayItemValue {
   473  	return &Alert_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   474  }
   475  
   476  func (fps *Alert_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   477  	return fps.WithIArrayItemValue(value)
   478  }
   479  
   480  // Alert_FieldPathValue allows storing values for Alert fields according to their type
   481  type Alert_FieldPathValue interface {
   482  	Alert_FieldPath
   483  	gotenobject.FieldPathValue
   484  	SetTo(target **Alert)
   485  	CompareWith(*Alert) (cmp int, comparable bool)
   486  }
   487  
   488  func ParseAlert_FieldPathValue(pathStr, valueStr string) (Alert_FieldPathValue, error) {
   489  	fp, err := ParseAlert_FieldPath(pathStr)
   490  	if err != nil {
   491  		return nil, err
   492  	}
   493  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   494  	if err != nil {
   495  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Alert field path value from %s: %v", valueStr, err)
   496  	}
   497  	return fpv.(Alert_FieldPathValue), nil
   498  }
   499  
   500  func MustParseAlert_FieldPathValue(pathStr, valueStr string) Alert_FieldPathValue {
   501  	fpv, err := ParseAlert_FieldPathValue(pathStr, valueStr)
   502  	if err != nil {
   503  		panic(err)
   504  	}
   505  	return fpv
   506  }
   507  
   508  type Alert_FieldTerminalPathValue struct {
   509  	Alert_FieldTerminalPath
   510  	value interface{}
   511  }
   512  
   513  var _ Alert_FieldPathValue = (*Alert_FieldTerminalPathValue)(nil)
   514  
   515  // GetRawValue returns raw value stored under selected path for 'Alert' as interface{}
   516  func (fpv *Alert_FieldTerminalPathValue) GetRawValue() interface{} {
   517  	return fpv.value
   518  }
   519  func (fpv *Alert_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   520  	res, ok := fpv.value.(*Name)
   521  	return res, ok
   522  }
   523  func (fpv *Alert_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   524  	res, ok := fpv.value.(*meta.Meta)
   525  	return res, ok
   526  }
   527  func (fpv *Alert_FieldTerminalPathValue) AsDisplayNameValue() (string, bool) {
   528  	res, ok := fpv.value.(string)
   529  	return res, ok
   530  }
   531  func (fpv *Alert_FieldTerminalPathValue) AsInfoValue() (*Alert_Info, bool) {
   532  	res, ok := fpv.value.(*Alert_Info)
   533  	return res, ok
   534  }
   535  func (fpv *Alert_FieldTerminalPathValue) AsStateValue() (*Alert_State, bool) {
   536  	res, ok := fpv.value.(*Alert_State)
   537  	return res, ok
   538  }
   539  
   540  // SetTo stores value for selected field for object Alert
   541  func (fpv *Alert_FieldTerminalPathValue) SetTo(target **Alert) {
   542  	if *target == nil {
   543  		*target = new(Alert)
   544  	}
   545  	switch fpv.selector {
   546  	case Alert_FieldPathSelectorName:
   547  		(*target).Name = fpv.value.(*Name)
   548  	case Alert_FieldPathSelectorMetadata:
   549  		(*target).Metadata = fpv.value.(*meta.Meta)
   550  	case Alert_FieldPathSelectorDisplayName:
   551  		(*target).DisplayName = fpv.value.(string)
   552  	case Alert_FieldPathSelectorInfo:
   553  		(*target).Info = fpv.value.(*Alert_Info)
   554  	case Alert_FieldPathSelectorState:
   555  		(*target).State = fpv.value.(*Alert_State)
   556  	default:
   557  		panic(fmt.Sprintf("Invalid selector for Alert: %d", fpv.selector))
   558  	}
   559  }
   560  
   561  func (fpv *Alert_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   562  	typedObject := target.(*Alert)
   563  	fpv.SetTo(&typedObject)
   564  }
   565  
   566  // CompareWith compares value in the 'Alert_FieldTerminalPathValue' with the value under path in 'Alert'.
   567  func (fpv *Alert_FieldTerminalPathValue) CompareWith(source *Alert) (int, bool) {
   568  	switch fpv.selector {
   569  	case Alert_FieldPathSelectorName:
   570  		leftValue := fpv.value.(*Name)
   571  		rightValue := source.GetName()
   572  		if leftValue == nil {
   573  			if rightValue != nil {
   574  				return -1, true
   575  			}
   576  			return 0, true
   577  		}
   578  		if rightValue == nil {
   579  			return 1, true
   580  		}
   581  		if leftValue.String() == rightValue.String() {
   582  			return 0, true
   583  		} else if leftValue.String() < rightValue.String() {
   584  			return -1, true
   585  		} else {
   586  			return 1, true
   587  		}
   588  	case Alert_FieldPathSelectorMetadata:
   589  		return 0, false
   590  	case Alert_FieldPathSelectorDisplayName:
   591  		leftValue := fpv.value.(string)
   592  		rightValue := source.GetDisplayName()
   593  		if (leftValue) == (rightValue) {
   594  			return 0, true
   595  		} else if (leftValue) < (rightValue) {
   596  			return -1, true
   597  		} else {
   598  			return 1, true
   599  		}
   600  	case Alert_FieldPathSelectorInfo:
   601  		return 0, false
   602  	case Alert_FieldPathSelectorState:
   603  		return 0, false
   604  	default:
   605  		panic(fmt.Sprintf("Invalid selector for Alert: %d", fpv.selector))
   606  	}
   607  }
   608  
   609  func (fpv *Alert_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   610  	return fpv.CompareWith(source.(*Alert))
   611  }
   612  
   613  type Alert_FieldSubPathValue struct {
   614  	Alert_FieldPath
   615  	subPathValue gotenobject.FieldPathValue
   616  }
   617  
   618  var _ Alert_FieldPathValue = (*Alert_FieldSubPathValue)(nil)
   619  
   620  func (fpvs *Alert_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   621  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   622  	return res, ok
   623  }
   624  func (fpvs *Alert_FieldSubPathValue) AsInfoPathValue() (AlertInfo_FieldPathValue, bool) {
   625  	res, ok := fpvs.subPathValue.(AlertInfo_FieldPathValue)
   626  	return res, ok
   627  }
   628  func (fpvs *Alert_FieldSubPathValue) AsStatePathValue() (AlertState_FieldPathValue, bool) {
   629  	res, ok := fpvs.subPathValue.(AlertState_FieldPathValue)
   630  	return res, ok
   631  }
   632  
   633  func (fpvs *Alert_FieldSubPathValue) SetTo(target **Alert) {
   634  	if *target == nil {
   635  		*target = new(Alert)
   636  	}
   637  	switch fpvs.Selector() {
   638  	case Alert_FieldPathSelectorMetadata:
   639  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
   640  	case Alert_FieldPathSelectorInfo:
   641  		fpvs.subPathValue.(AlertInfo_FieldPathValue).SetTo(&(*target).Info)
   642  	case Alert_FieldPathSelectorState:
   643  		fpvs.subPathValue.(AlertState_FieldPathValue).SetTo(&(*target).State)
   644  	default:
   645  		panic(fmt.Sprintf("Invalid selector for Alert: %d", fpvs.Selector()))
   646  	}
   647  }
   648  
   649  func (fpvs *Alert_FieldSubPathValue) SetToRaw(target proto.Message) {
   650  	typedObject := target.(*Alert)
   651  	fpvs.SetTo(&typedObject)
   652  }
   653  
   654  func (fpvs *Alert_FieldSubPathValue) GetRawValue() interface{} {
   655  	return fpvs.subPathValue.GetRawValue()
   656  }
   657  
   658  func (fpvs *Alert_FieldSubPathValue) CompareWith(source *Alert) (int, bool) {
   659  	switch fpvs.Selector() {
   660  	case Alert_FieldPathSelectorMetadata:
   661  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
   662  	case Alert_FieldPathSelectorInfo:
   663  		return fpvs.subPathValue.(AlertInfo_FieldPathValue).CompareWith(source.GetInfo())
   664  	case Alert_FieldPathSelectorState:
   665  		return fpvs.subPathValue.(AlertState_FieldPathValue).CompareWith(source.GetState())
   666  	default:
   667  		panic(fmt.Sprintf("Invalid selector for Alert: %d", fpvs.Selector()))
   668  	}
   669  }
   670  
   671  func (fpvs *Alert_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   672  	return fpvs.CompareWith(source.(*Alert))
   673  }
   674  
   675  // Alert_FieldPathArrayItemValue allows storing single item in Path-specific values for Alert according to their type
   676  // Present only for array (repeated) types.
   677  type Alert_FieldPathArrayItemValue interface {
   678  	gotenobject.FieldPathArrayItemValue
   679  	Alert_FieldPath
   680  	ContainsValue(*Alert) bool
   681  }
   682  
   683  // ParseAlert_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   684  func ParseAlert_FieldPathArrayItemValue(pathStr, valueStr string) (Alert_FieldPathArrayItemValue, error) {
   685  	fp, err := ParseAlert_FieldPath(pathStr)
   686  	if err != nil {
   687  		return nil, err
   688  	}
   689  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   690  	if err != nil {
   691  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Alert field path array item value from %s: %v", valueStr, err)
   692  	}
   693  	return fpaiv.(Alert_FieldPathArrayItemValue), nil
   694  }
   695  
   696  func MustParseAlert_FieldPathArrayItemValue(pathStr, valueStr string) Alert_FieldPathArrayItemValue {
   697  	fpaiv, err := ParseAlert_FieldPathArrayItemValue(pathStr, valueStr)
   698  	if err != nil {
   699  		panic(err)
   700  	}
   701  	return fpaiv
   702  }
   703  
   704  type Alert_FieldTerminalPathArrayItemValue struct {
   705  	Alert_FieldTerminalPath
   706  	value interface{}
   707  }
   708  
   709  var _ Alert_FieldPathArrayItemValue = (*Alert_FieldTerminalPathArrayItemValue)(nil)
   710  
   711  // GetRawValue returns stored element value for array in object Alert as interface{}
   712  func (fpaiv *Alert_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   713  	return fpaiv.value
   714  }
   715  
   716  func (fpaiv *Alert_FieldTerminalPathArrayItemValue) GetSingle(source *Alert) (interface{}, bool) {
   717  	return nil, false
   718  }
   719  
   720  func (fpaiv *Alert_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   721  	return fpaiv.GetSingle(source.(*Alert))
   722  }
   723  
   724  // Contains returns a boolean indicating if value that is being held is present in given 'Alert'
   725  func (fpaiv *Alert_FieldTerminalPathArrayItemValue) ContainsValue(source *Alert) bool {
   726  	slice := fpaiv.Alert_FieldTerminalPath.Get(source)
   727  	for _, v := range slice {
   728  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   729  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   730  				return true
   731  			}
   732  		} else if reflect.DeepEqual(v, fpaiv.value) {
   733  			return true
   734  		}
   735  	}
   736  	return false
   737  }
   738  
   739  type Alert_FieldSubPathArrayItemValue struct {
   740  	Alert_FieldPath
   741  	subPathItemValue gotenobject.FieldPathArrayItemValue
   742  }
   743  
   744  // GetRawValue returns stored array item value
   745  func (fpaivs *Alert_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
   746  	return fpaivs.subPathItemValue.GetRawItemValue()
   747  }
   748  func (fpaivs *Alert_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
   749  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
   750  	return res, ok
   751  }
   752  func (fpaivs *Alert_FieldSubPathArrayItemValue) AsInfoPathItemValue() (AlertInfo_FieldPathArrayItemValue, bool) {
   753  	res, ok := fpaivs.subPathItemValue.(AlertInfo_FieldPathArrayItemValue)
   754  	return res, ok
   755  }
   756  func (fpaivs *Alert_FieldSubPathArrayItemValue) AsStatePathItemValue() (AlertState_FieldPathArrayItemValue, bool) {
   757  	res, ok := fpaivs.subPathItemValue.(AlertState_FieldPathArrayItemValue)
   758  	return res, ok
   759  }
   760  
   761  // Contains returns a boolean indicating if value that is being held is present in given 'Alert'
   762  func (fpaivs *Alert_FieldSubPathArrayItemValue) ContainsValue(source *Alert) bool {
   763  	switch fpaivs.Selector() {
   764  	case Alert_FieldPathSelectorMetadata:
   765  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
   766  	case Alert_FieldPathSelectorInfo:
   767  		return fpaivs.subPathItemValue.(AlertInfo_FieldPathArrayItemValue).ContainsValue(source.GetInfo())
   768  	case Alert_FieldPathSelectorState:
   769  		return fpaivs.subPathItemValue.(AlertState_FieldPathArrayItemValue).ContainsValue(source.GetState())
   770  	default:
   771  		panic(fmt.Sprintf("Invalid selector for Alert: %d", fpaivs.Selector()))
   772  	}
   773  }
   774  
   775  // Alert_FieldPathArrayOfValues allows storing slice of values for Alert fields according to their type
   776  type Alert_FieldPathArrayOfValues interface {
   777  	gotenobject.FieldPathArrayOfValues
   778  	Alert_FieldPath
   779  }
   780  
   781  func ParseAlert_FieldPathArrayOfValues(pathStr, valuesStr string) (Alert_FieldPathArrayOfValues, error) {
   782  	fp, err := ParseAlert_FieldPath(pathStr)
   783  	if err != nil {
   784  		return nil, err
   785  	}
   786  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   787  	if err != nil {
   788  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Alert field path array of values from %s: %v", valuesStr, err)
   789  	}
   790  	return fpaov.(Alert_FieldPathArrayOfValues), nil
   791  }
   792  
   793  func MustParseAlert_FieldPathArrayOfValues(pathStr, valuesStr string) Alert_FieldPathArrayOfValues {
   794  	fpaov, err := ParseAlert_FieldPathArrayOfValues(pathStr, valuesStr)
   795  	if err != nil {
   796  		panic(err)
   797  	}
   798  	return fpaov
   799  }
   800  
   801  type Alert_FieldTerminalPathArrayOfValues struct {
   802  	Alert_FieldTerminalPath
   803  	values interface{}
   804  }
   805  
   806  var _ Alert_FieldPathArrayOfValues = (*Alert_FieldTerminalPathArrayOfValues)(nil)
   807  
   808  func (fpaov *Alert_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   809  	switch fpaov.selector {
   810  	case Alert_FieldPathSelectorName:
   811  		for _, v := range fpaov.values.([]*Name) {
   812  			values = append(values, v)
   813  		}
   814  	case Alert_FieldPathSelectorMetadata:
   815  		for _, v := range fpaov.values.([]*meta.Meta) {
   816  			values = append(values, v)
   817  		}
   818  	case Alert_FieldPathSelectorDisplayName:
   819  		for _, v := range fpaov.values.([]string) {
   820  			values = append(values, v)
   821  		}
   822  	case Alert_FieldPathSelectorInfo:
   823  		for _, v := range fpaov.values.([]*Alert_Info) {
   824  			values = append(values, v)
   825  		}
   826  	case Alert_FieldPathSelectorState:
   827  		for _, v := range fpaov.values.([]*Alert_State) {
   828  			values = append(values, v)
   829  		}
   830  	}
   831  	return
   832  }
   833  func (fpaov *Alert_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
   834  	res, ok := fpaov.values.([]*Name)
   835  	return res, ok
   836  }
   837  func (fpaov *Alert_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
   838  	res, ok := fpaov.values.([]*meta.Meta)
   839  	return res, ok
   840  }
   841  func (fpaov *Alert_FieldTerminalPathArrayOfValues) AsDisplayNameArrayOfValues() ([]string, bool) {
   842  	res, ok := fpaov.values.([]string)
   843  	return res, ok
   844  }
   845  func (fpaov *Alert_FieldTerminalPathArrayOfValues) AsInfoArrayOfValues() ([]*Alert_Info, bool) {
   846  	res, ok := fpaov.values.([]*Alert_Info)
   847  	return res, ok
   848  }
   849  func (fpaov *Alert_FieldTerminalPathArrayOfValues) AsStateArrayOfValues() ([]*Alert_State, bool) {
   850  	res, ok := fpaov.values.([]*Alert_State)
   851  	return res, ok
   852  }
   853  
   854  type Alert_FieldSubPathArrayOfValues struct {
   855  	Alert_FieldPath
   856  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
   857  }
   858  
   859  var _ Alert_FieldPathArrayOfValues = (*Alert_FieldSubPathArrayOfValues)(nil)
   860  
   861  func (fpsaov *Alert_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
   862  	return fpsaov.subPathArrayOfValues.GetRawValues()
   863  }
   864  func (fpsaov *Alert_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
   865  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
   866  	return res, ok
   867  }
   868  func (fpsaov *Alert_FieldSubPathArrayOfValues) AsInfoPathArrayOfValues() (AlertInfo_FieldPathArrayOfValues, bool) {
   869  	res, ok := fpsaov.subPathArrayOfValues.(AlertInfo_FieldPathArrayOfValues)
   870  	return res, ok
   871  }
   872  func (fpsaov *Alert_FieldSubPathArrayOfValues) AsStatePathArrayOfValues() (AlertState_FieldPathArrayOfValues, bool) {
   873  	res, ok := fpsaov.subPathArrayOfValues.(AlertState_FieldPathArrayOfValues)
   874  	return res, ok
   875  }
   876  
   877  // FieldPath provides implementation to handle
   878  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
   879  type AlertInfo_FieldPath interface {
   880  	gotenobject.FieldPath
   881  	Selector() AlertInfo_FieldPathSelector
   882  	Get(source *Alert_Info) []interface{}
   883  	GetSingle(source *Alert_Info) (interface{}, bool)
   884  	ClearValue(item *Alert_Info)
   885  
   886  	// Those methods build corresponding AlertInfo_FieldPathValue
   887  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
   888  	WithIValue(value interface{}) AlertInfo_FieldPathValue
   889  	WithIArrayOfValues(values interface{}) AlertInfo_FieldPathArrayOfValues
   890  	WithIArrayItemValue(value interface{}) AlertInfo_FieldPathArrayItemValue
   891  }
   892  
   893  type AlertInfo_FieldPathSelector int32
   894  
   895  const (
   896  	AlertInfo_FieldPathSelectorTimeSerie      AlertInfo_FieldPathSelector = 0
   897  	AlertInfo_FieldPathSelectorObservedValues AlertInfo_FieldPathSelector = 1
   898  )
   899  
   900  func (s AlertInfo_FieldPathSelector) String() string {
   901  	switch s {
   902  	case AlertInfo_FieldPathSelectorTimeSerie:
   903  		return "time_serie"
   904  	case AlertInfo_FieldPathSelectorObservedValues:
   905  		return "observed_values"
   906  	default:
   907  		panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", s))
   908  	}
   909  }
   910  
   911  func BuildAlertInfo_FieldPath(fp gotenobject.RawFieldPath) (AlertInfo_FieldPath, error) {
   912  	if len(fp) == 0 {
   913  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Alert_Info")
   914  	}
   915  	if len(fp) == 1 {
   916  		switch fp[0] {
   917  		case "time_serie", "timeSerie", "time-serie":
   918  			return &AlertInfo_FieldTerminalPath{selector: AlertInfo_FieldPathSelectorTimeSerie}, nil
   919  		case "observed_values", "observedValues", "observed-values":
   920  			return &AlertInfo_FieldTerminalPath{selector: AlertInfo_FieldPathSelectorObservedValues}, nil
   921  		}
   922  	} else {
   923  		switch fp[0] {
   924  		case "time_serie", "timeSerie", "time-serie":
   925  			if subpath, err := BuildAlertInfoTimeSerie_FieldPath(fp[1:]); err != nil {
   926  				return nil, err
   927  			} else {
   928  				return &AlertInfo_FieldSubPath{selector: AlertInfo_FieldPathSelectorTimeSerie, subPath: subpath}, nil
   929  			}
   930  		case "observed_values", "observedValues", "observed-values":
   931  			if subpath, err := BuildAlertInfoObservedValues_FieldPath(fp[1:]); err != nil {
   932  				return nil, err
   933  			} else {
   934  				return &AlertInfo_FieldSubPath{selector: AlertInfo_FieldPathSelectorObservedValues, subPath: subpath}, nil
   935  			}
   936  		}
   937  	}
   938  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Alert_Info", fp)
   939  }
   940  
   941  func ParseAlertInfo_FieldPath(rawField string) (AlertInfo_FieldPath, error) {
   942  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   943  	if err != nil {
   944  		return nil, err
   945  	}
   946  	return BuildAlertInfo_FieldPath(fp)
   947  }
   948  
   949  func MustParseAlertInfo_FieldPath(rawField string) AlertInfo_FieldPath {
   950  	fp, err := ParseAlertInfo_FieldPath(rawField)
   951  	if err != nil {
   952  		panic(err)
   953  	}
   954  	return fp
   955  }
   956  
   957  type AlertInfo_FieldTerminalPath struct {
   958  	selector AlertInfo_FieldPathSelector
   959  }
   960  
   961  var _ AlertInfo_FieldPath = (*AlertInfo_FieldTerminalPath)(nil)
   962  
   963  func (fp *AlertInfo_FieldTerminalPath) Selector() AlertInfo_FieldPathSelector {
   964  	return fp.selector
   965  }
   966  
   967  // String returns path representation in proto convention
   968  func (fp *AlertInfo_FieldTerminalPath) String() string {
   969  	return fp.selector.String()
   970  }
   971  
   972  // JSONString returns path representation is JSON convention
   973  func (fp *AlertInfo_FieldTerminalPath) JSONString() string {
   974  	return strcase.ToLowerCamel(fp.String())
   975  }
   976  
   977  // Get returns all values pointed by specific field from source Alert_Info
   978  func (fp *AlertInfo_FieldTerminalPath) Get(source *Alert_Info) (values []interface{}) {
   979  	if source != nil {
   980  		switch fp.selector {
   981  		case AlertInfo_FieldPathSelectorTimeSerie:
   982  			if source.TimeSerie != nil {
   983  				values = append(values, source.TimeSerie)
   984  			}
   985  		case AlertInfo_FieldPathSelectorObservedValues:
   986  			if source.ObservedValues != nil {
   987  				values = append(values, source.ObservedValues)
   988  			}
   989  		default:
   990  			panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector))
   991  		}
   992  	}
   993  	return
   994  }
   995  
   996  func (fp *AlertInfo_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   997  	return fp.Get(source.(*Alert_Info))
   998  }
   999  
  1000  // GetSingle returns value pointed by specific field of from source Alert_Info
  1001  func (fp *AlertInfo_FieldTerminalPath) GetSingle(source *Alert_Info) (interface{}, bool) {
  1002  	switch fp.selector {
  1003  	case AlertInfo_FieldPathSelectorTimeSerie:
  1004  		res := source.GetTimeSerie()
  1005  		return res, res != nil
  1006  	case AlertInfo_FieldPathSelectorObservedValues:
  1007  		res := source.GetObservedValues()
  1008  		return res, res != nil
  1009  	default:
  1010  		panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector))
  1011  	}
  1012  }
  1013  
  1014  func (fp *AlertInfo_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1015  	return fp.GetSingle(source.(*Alert_Info))
  1016  }
  1017  
  1018  // GetDefault returns a default value of the field type
  1019  func (fp *AlertInfo_FieldTerminalPath) GetDefault() interface{} {
  1020  	switch fp.selector {
  1021  	case AlertInfo_FieldPathSelectorTimeSerie:
  1022  		return (*Alert_Info_TimeSerie)(nil)
  1023  	case AlertInfo_FieldPathSelectorObservedValues:
  1024  		return (*Alert_Info_ObservedValues)(nil)
  1025  	default:
  1026  		panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector))
  1027  	}
  1028  }
  1029  
  1030  func (fp *AlertInfo_FieldTerminalPath) ClearValue(item *Alert_Info) {
  1031  	if item != nil {
  1032  		switch fp.selector {
  1033  		case AlertInfo_FieldPathSelectorTimeSerie:
  1034  			item.TimeSerie = nil
  1035  		case AlertInfo_FieldPathSelectorObservedValues:
  1036  			item.ObservedValues = nil
  1037  		default:
  1038  			panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector))
  1039  		}
  1040  	}
  1041  }
  1042  
  1043  func (fp *AlertInfo_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1044  	fp.ClearValue(item.(*Alert_Info))
  1045  }
  1046  
  1047  // IsLeaf - whether field path is holds simple value
  1048  func (fp *AlertInfo_FieldTerminalPath) IsLeaf() bool {
  1049  	return false
  1050  }
  1051  
  1052  func (fp *AlertInfo_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1053  	return []gotenobject.FieldPath{fp}
  1054  }
  1055  
  1056  func (fp *AlertInfo_FieldTerminalPath) WithIValue(value interface{}) AlertInfo_FieldPathValue {
  1057  	switch fp.selector {
  1058  	case AlertInfo_FieldPathSelectorTimeSerie:
  1059  		return &AlertInfo_FieldTerminalPathValue{AlertInfo_FieldTerminalPath: *fp, value: value.(*Alert_Info_TimeSerie)}
  1060  	case AlertInfo_FieldPathSelectorObservedValues:
  1061  		return &AlertInfo_FieldTerminalPathValue{AlertInfo_FieldTerminalPath: *fp, value: value.(*Alert_Info_ObservedValues)}
  1062  	default:
  1063  		panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector))
  1064  	}
  1065  }
  1066  
  1067  func (fp *AlertInfo_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1068  	return fp.WithIValue(value)
  1069  }
  1070  
  1071  func (fp *AlertInfo_FieldTerminalPath) WithIArrayOfValues(values interface{}) AlertInfo_FieldPathArrayOfValues {
  1072  	fpaov := &AlertInfo_FieldTerminalPathArrayOfValues{AlertInfo_FieldTerminalPath: *fp}
  1073  	switch fp.selector {
  1074  	case AlertInfo_FieldPathSelectorTimeSerie:
  1075  		return &AlertInfo_FieldTerminalPathArrayOfValues{AlertInfo_FieldTerminalPath: *fp, values: values.([]*Alert_Info_TimeSerie)}
  1076  	case AlertInfo_FieldPathSelectorObservedValues:
  1077  		return &AlertInfo_FieldTerminalPathArrayOfValues{AlertInfo_FieldTerminalPath: *fp, values: values.([]*Alert_Info_ObservedValues)}
  1078  	default:
  1079  		panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector))
  1080  	}
  1081  	return fpaov
  1082  }
  1083  
  1084  func (fp *AlertInfo_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1085  	return fp.WithIArrayOfValues(values)
  1086  }
  1087  
  1088  func (fp *AlertInfo_FieldTerminalPath) WithIArrayItemValue(value interface{}) AlertInfo_FieldPathArrayItemValue {
  1089  	switch fp.selector {
  1090  	default:
  1091  		panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fp.selector))
  1092  	}
  1093  }
  1094  
  1095  func (fp *AlertInfo_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1096  	return fp.WithIArrayItemValue(value)
  1097  }
  1098  
  1099  type AlertInfo_FieldSubPath struct {
  1100  	selector AlertInfo_FieldPathSelector
  1101  	subPath  gotenobject.FieldPath
  1102  }
  1103  
  1104  var _ AlertInfo_FieldPath = (*AlertInfo_FieldSubPath)(nil)
  1105  
  1106  func (fps *AlertInfo_FieldSubPath) Selector() AlertInfo_FieldPathSelector {
  1107  	return fps.selector
  1108  }
  1109  func (fps *AlertInfo_FieldSubPath) AsTimeSerieSubPath() (AlertInfoTimeSerie_FieldPath, bool) {
  1110  	res, ok := fps.subPath.(AlertInfoTimeSerie_FieldPath)
  1111  	return res, ok
  1112  }
  1113  func (fps *AlertInfo_FieldSubPath) AsObservedValuesSubPath() (AlertInfoObservedValues_FieldPath, bool) {
  1114  	res, ok := fps.subPath.(AlertInfoObservedValues_FieldPath)
  1115  	return res, ok
  1116  }
  1117  
  1118  // String returns path representation in proto convention
  1119  func (fps *AlertInfo_FieldSubPath) String() string {
  1120  	return fps.selector.String() + "." + fps.subPath.String()
  1121  }
  1122  
  1123  // JSONString returns path representation is JSON convention
  1124  func (fps *AlertInfo_FieldSubPath) JSONString() string {
  1125  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
  1126  }
  1127  
  1128  // Get returns all values pointed by selected field from source Alert_Info
  1129  func (fps *AlertInfo_FieldSubPath) Get(source *Alert_Info) (values []interface{}) {
  1130  	switch fps.selector {
  1131  	case AlertInfo_FieldPathSelectorTimeSerie:
  1132  		values = append(values, fps.subPath.GetRaw(source.GetTimeSerie())...)
  1133  	case AlertInfo_FieldPathSelectorObservedValues:
  1134  		values = append(values, fps.subPath.GetRaw(source.GetObservedValues())...)
  1135  	default:
  1136  		panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fps.selector))
  1137  	}
  1138  	return
  1139  }
  1140  
  1141  func (fps *AlertInfo_FieldSubPath) GetRaw(source proto.Message) []interface{} {
  1142  	return fps.Get(source.(*Alert_Info))
  1143  }
  1144  
  1145  // GetSingle returns value of selected field from source Alert_Info
  1146  func (fps *AlertInfo_FieldSubPath) GetSingle(source *Alert_Info) (interface{}, bool) {
  1147  	switch fps.selector {
  1148  	case AlertInfo_FieldPathSelectorTimeSerie:
  1149  		if source.GetTimeSerie() == nil {
  1150  			return nil, false
  1151  		}
  1152  		return fps.subPath.GetSingleRaw(source.GetTimeSerie())
  1153  	case AlertInfo_FieldPathSelectorObservedValues:
  1154  		if source.GetObservedValues() == nil {
  1155  			return nil, false
  1156  		}
  1157  		return fps.subPath.GetSingleRaw(source.GetObservedValues())
  1158  	default:
  1159  		panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fps.selector))
  1160  	}
  1161  }
  1162  
  1163  func (fps *AlertInfo_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1164  	return fps.GetSingle(source.(*Alert_Info))
  1165  }
  1166  
  1167  // GetDefault returns a default value of the field type
  1168  func (fps *AlertInfo_FieldSubPath) GetDefault() interface{} {
  1169  	return fps.subPath.GetDefault()
  1170  }
  1171  
  1172  func (fps *AlertInfo_FieldSubPath) ClearValue(item *Alert_Info) {
  1173  	if item != nil {
  1174  		switch fps.selector {
  1175  		case AlertInfo_FieldPathSelectorTimeSerie:
  1176  			fps.subPath.ClearValueRaw(item.TimeSerie)
  1177  		case AlertInfo_FieldPathSelectorObservedValues:
  1178  			fps.subPath.ClearValueRaw(item.ObservedValues)
  1179  		default:
  1180  			panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fps.selector))
  1181  		}
  1182  	}
  1183  }
  1184  
  1185  func (fps *AlertInfo_FieldSubPath) ClearValueRaw(item proto.Message) {
  1186  	fps.ClearValue(item.(*Alert_Info))
  1187  }
  1188  
  1189  // IsLeaf - whether field path is holds simple value
  1190  func (fps *AlertInfo_FieldSubPath) IsLeaf() bool {
  1191  	return fps.subPath.IsLeaf()
  1192  }
  1193  
  1194  func (fps *AlertInfo_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1195  	iPaths := []gotenobject.FieldPath{&AlertInfo_FieldTerminalPath{selector: fps.selector}}
  1196  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
  1197  	return iPaths
  1198  }
  1199  
  1200  func (fps *AlertInfo_FieldSubPath) WithIValue(value interface{}) AlertInfo_FieldPathValue {
  1201  	return &AlertInfo_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
  1202  }
  1203  
  1204  func (fps *AlertInfo_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1205  	return fps.WithIValue(value)
  1206  }
  1207  
  1208  func (fps *AlertInfo_FieldSubPath) WithIArrayOfValues(values interface{}) AlertInfo_FieldPathArrayOfValues {
  1209  	return &AlertInfo_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
  1210  }
  1211  
  1212  func (fps *AlertInfo_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1213  	return fps.WithIArrayOfValues(values)
  1214  }
  1215  
  1216  func (fps *AlertInfo_FieldSubPath) WithIArrayItemValue(value interface{}) AlertInfo_FieldPathArrayItemValue {
  1217  	return &AlertInfo_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
  1218  }
  1219  
  1220  func (fps *AlertInfo_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1221  	return fps.WithIArrayItemValue(value)
  1222  }
  1223  
  1224  // AlertInfo_FieldPathValue allows storing values for Info fields according to their type
  1225  type AlertInfo_FieldPathValue interface {
  1226  	AlertInfo_FieldPath
  1227  	gotenobject.FieldPathValue
  1228  	SetTo(target **Alert_Info)
  1229  	CompareWith(*Alert_Info) (cmp int, comparable bool)
  1230  }
  1231  
  1232  func ParseAlertInfo_FieldPathValue(pathStr, valueStr string) (AlertInfo_FieldPathValue, error) {
  1233  	fp, err := ParseAlertInfo_FieldPath(pathStr)
  1234  	if err != nil {
  1235  		return nil, err
  1236  	}
  1237  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1238  	if err != nil {
  1239  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Info field path value from %s: %v", valueStr, err)
  1240  	}
  1241  	return fpv.(AlertInfo_FieldPathValue), nil
  1242  }
  1243  
  1244  func MustParseAlertInfo_FieldPathValue(pathStr, valueStr string) AlertInfo_FieldPathValue {
  1245  	fpv, err := ParseAlertInfo_FieldPathValue(pathStr, valueStr)
  1246  	if err != nil {
  1247  		panic(err)
  1248  	}
  1249  	return fpv
  1250  }
  1251  
  1252  type AlertInfo_FieldTerminalPathValue struct {
  1253  	AlertInfo_FieldTerminalPath
  1254  	value interface{}
  1255  }
  1256  
  1257  var _ AlertInfo_FieldPathValue = (*AlertInfo_FieldTerminalPathValue)(nil)
  1258  
  1259  // GetRawValue returns raw value stored under selected path for 'Info' as interface{}
  1260  func (fpv *AlertInfo_FieldTerminalPathValue) GetRawValue() interface{} {
  1261  	return fpv.value
  1262  }
  1263  func (fpv *AlertInfo_FieldTerminalPathValue) AsTimeSerieValue() (*Alert_Info_TimeSerie, bool) {
  1264  	res, ok := fpv.value.(*Alert_Info_TimeSerie)
  1265  	return res, ok
  1266  }
  1267  func (fpv *AlertInfo_FieldTerminalPathValue) AsObservedValuesValue() (*Alert_Info_ObservedValues, bool) {
  1268  	res, ok := fpv.value.(*Alert_Info_ObservedValues)
  1269  	return res, ok
  1270  }
  1271  
  1272  // SetTo stores value for selected field for object Info
  1273  func (fpv *AlertInfo_FieldTerminalPathValue) SetTo(target **Alert_Info) {
  1274  	if *target == nil {
  1275  		*target = new(Alert_Info)
  1276  	}
  1277  	switch fpv.selector {
  1278  	case AlertInfo_FieldPathSelectorTimeSerie:
  1279  		(*target).TimeSerie = fpv.value.(*Alert_Info_TimeSerie)
  1280  	case AlertInfo_FieldPathSelectorObservedValues:
  1281  		(*target).ObservedValues = fpv.value.(*Alert_Info_ObservedValues)
  1282  	default:
  1283  		panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fpv.selector))
  1284  	}
  1285  }
  1286  
  1287  func (fpv *AlertInfo_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1288  	typedObject := target.(*Alert_Info)
  1289  	fpv.SetTo(&typedObject)
  1290  }
  1291  
  1292  // CompareWith compares value in the 'AlertInfo_FieldTerminalPathValue' with the value under path in 'Alert_Info'.
  1293  func (fpv *AlertInfo_FieldTerminalPathValue) CompareWith(source *Alert_Info) (int, bool) {
  1294  	switch fpv.selector {
  1295  	case AlertInfo_FieldPathSelectorTimeSerie:
  1296  		return 0, false
  1297  	case AlertInfo_FieldPathSelectorObservedValues:
  1298  		return 0, false
  1299  	default:
  1300  		panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fpv.selector))
  1301  	}
  1302  }
  1303  
  1304  func (fpv *AlertInfo_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1305  	return fpv.CompareWith(source.(*Alert_Info))
  1306  }
  1307  
  1308  type AlertInfo_FieldSubPathValue struct {
  1309  	AlertInfo_FieldPath
  1310  	subPathValue gotenobject.FieldPathValue
  1311  }
  1312  
  1313  var _ AlertInfo_FieldPathValue = (*AlertInfo_FieldSubPathValue)(nil)
  1314  
  1315  func (fpvs *AlertInfo_FieldSubPathValue) AsTimeSeriePathValue() (AlertInfoTimeSerie_FieldPathValue, bool) {
  1316  	res, ok := fpvs.subPathValue.(AlertInfoTimeSerie_FieldPathValue)
  1317  	return res, ok
  1318  }
  1319  func (fpvs *AlertInfo_FieldSubPathValue) AsObservedValuesPathValue() (AlertInfoObservedValues_FieldPathValue, bool) {
  1320  	res, ok := fpvs.subPathValue.(AlertInfoObservedValues_FieldPathValue)
  1321  	return res, ok
  1322  }
  1323  
  1324  func (fpvs *AlertInfo_FieldSubPathValue) SetTo(target **Alert_Info) {
  1325  	if *target == nil {
  1326  		*target = new(Alert_Info)
  1327  	}
  1328  	switch fpvs.Selector() {
  1329  	case AlertInfo_FieldPathSelectorTimeSerie:
  1330  		fpvs.subPathValue.(AlertInfoTimeSerie_FieldPathValue).SetTo(&(*target).TimeSerie)
  1331  	case AlertInfo_FieldPathSelectorObservedValues:
  1332  		fpvs.subPathValue.(AlertInfoObservedValues_FieldPathValue).SetTo(&(*target).ObservedValues)
  1333  	default:
  1334  		panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fpvs.Selector()))
  1335  	}
  1336  }
  1337  
  1338  func (fpvs *AlertInfo_FieldSubPathValue) SetToRaw(target proto.Message) {
  1339  	typedObject := target.(*Alert_Info)
  1340  	fpvs.SetTo(&typedObject)
  1341  }
  1342  
  1343  func (fpvs *AlertInfo_FieldSubPathValue) GetRawValue() interface{} {
  1344  	return fpvs.subPathValue.GetRawValue()
  1345  }
  1346  
  1347  func (fpvs *AlertInfo_FieldSubPathValue) CompareWith(source *Alert_Info) (int, bool) {
  1348  	switch fpvs.Selector() {
  1349  	case AlertInfo_FieldPathSelectorTimeSerie:
  1350  		return fpvs.subPathValue.(AlertInfoTimeSerie_FieldPathValue).CompareWith(source.GetTimeSerie())
  1351  	case AlertInfo_FieldPathSelectorObservedValues:
  1352  		return fpvs.subPathValue.(AlertInfoObservedValues_FieldPathValue).CompareWith(source.GetObservedValues())
  1353  	default:
  1354  		panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fpvs.Selector()))
  1355  	}
  1356  }
  1357  
  1358  func (fpvs *AlertInfo_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1359  	return fpvs.CompareWith(source.(*Alert_Info))
  1360  }
  1361  
  1362  // AlertInfo_FieldPathArrayItemValue allows storing single item in Path-specific values for Info according to their type
  1363  // Present only for array (repeated) types.
  1364  type AlertInfo_FieldPathArrayItemValue interface {
  1365  	gotenobject.FieldPathArrayItemValue
  1366  	AlertInfo_FieldPath
  1367  	ContainsValue(*Alert_Info) bool
  1368  }
  1369  
  1370  // ParseAlertInfo_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1371  func ParseAlertInfo_FieldPathArrayItemValue(pathStr, valueStr string) (AlertInfo_FieldPathArrayItemValue, error) {
  1372  	fp, err := ParseAlertInfo_FieldPath(pathStr)
  1373  	if err != nil {
  1374  		return nil, err
  1375  	}
  1376  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1377  	if err != nil {
  1378  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Info field path array item value from %s: %v", valueStr, err)
  1379  	}
  1380  	return fpaiv.(AlertInfo_FieldPathArrayItemValue), nil
  1381  }
  1382  
  1383  func MustParseAlertInfo_FieldPathArrayItemValue(pathStr, valueStr string) AlertInfo_FieldPathArrayItemValue {
  1384  	fpaiv, err := ParseAlertInfo_FieldPathArrayItemValue(pathStr, valueStr)
  1385  	if err != nil {
  1386  		panic(err)
  1387  	}
  1388  	return fpaiv
  1389  }
  1390  
  1391  type AlertInfo_FieldTerminalPathArrayItemValue struct {
  1392  	AlertInfo_FieldTerminalPath
  1393  	value interface{}
  1394  }
  1395  
  1396  var _ AlertInfo_FieldPathArrayItemValue = (*AlertInfo_FieldTerminalPathArrayItemValue)(nil)
  1397  
  1398  // GetRawValue returns stored element value for array in object Alert_Info as interface{}
  1399  func (fpaiv *AlertInfo_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1400  	return fpaiv.value
  1401  }
  1402  
  1403  func (fpaiv *AlertInfo_FieldTerminalPathArrayItemValue) GetSingle(source *Alert_Info) (interface{}, bool) {
  1404  	return nil, false
  1405  }
  1406  
  1407  func (fpaiv *AlertInfo_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1408  	return fpaiv.GetSingle(source.(*Alert_Info))
  1409  }
  1410  
  1411  // Contains returns a boolean indicating if value that is being held is present in given 'Info'
  1412  func (fpaiv *AlertInfo_FieldTerminalPathArrayItemValue) ContainsValue(source *Alert_Info) bool {
  1413  	slice := fpaiv.AlertInfo_FieldTerminalPath.Get(source)
  1414  	for _, v := range slice {
  1415  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1416  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1417  				return true
  1418  			}
  1419  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1420  			return true
  1421  		}
  1422  	}
  1423  	return false
  1424  }
  1425  
  1426  type AlertInfo_FieldSubPathArrayItemValue struct {
  1427  	AlertInfo_FieldPath
  1428  	subPathItemValue gotenobject.FieldPathArrayItemValue
  1429  }
  1430  
  1431  // GetRawValue returns stored array item value
  1432  func (fpaivs *AlertInfo_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  1433  	return fpaivs.subPathItemValue.GetRawItemValue()
  1434  }
  1435  func (fpaivs *AlertInfo_FieldSubPathArrayItemValue) AsTimeSeriePathItemValue() (AlertInfoTimeSerie_FieldPathArrayItemValue, bool) {
  1436  	res, ok := fpaivs.subPathItemValue.(AlertInfoTimeSerie_FieldPathArrayItemValue)
  1437  	return res, ok
  1438  }
  1439  func (fpaivs *AlertInfo_FieldSubPathArrayItemValue) AsObservedValuesPathItemValue() (AlertInfoObservedValues_FieldPathArrayItemValue, bool) {
  1440  	res, ok := fpaivs.subPathItemValue.(AlertInfoObservedValues_FieldPathArrayItemValue)
  1441  	return res, ok
  1442  }
  1443  
  1444  // Contains returns a boolean indicating if value that is being held is present in given 'Info'
  1445  func (fpaivs *AlertInfo_FieldSubPathArrayItemValue) ContainsValue(source *Alert_Info) bool {
  1446  	switch fpaivs.Selector() {
  1447  	case AlertInfo_FieldPathSelectorTimeSerie:
  1448  		return fpaivs.subPathItemValue.(AlertInfoTimeSerie_FieldPathArrayItemValue).ContainsValue(source.GetTimeSerie())
  1449  	case AlertInfo_FieldPathSelectorObservedValues:
  1450  		return fpaivs.subPathItemValue.(AlertInfoObservedValues_FieldPathArrayItemValue).ContainsValue(source.GetObservedValues())
  1451  	default:
  1452  		panic(fmt.Sprintf("Invalid selector for Alert_Info: %d", fpaivs.Selector()))
  1453  	}
  1454  }
  1455  
  1456  // AlertInfo_FieldPathArrayOfValues allows storing slice of values for Info fields according to their type
  1457  type AlertInfo_FieldPathArrayOfValues interface {
  1458  	gotenobject.FieldPathArrayOfValues
  1459  	AlertInfo_FieldPath
  1460  }
  1461  
  1462  func ParseAlertInfo_FieldPathArrayOfValues(pathStr, valuesStr string) (AlertInfo_FieldPathArrayOfValues, error) {
  1463  	fp, err := ParseAlertInfo_FieldPath(pathStr)
  1464  	if err != nil {
  1465  		return nil, err
  1466  	}
  1467  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1468  	if err != nil {
  1469  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Info field path array of values from %s: %v", valuesStr, err)
  1470  	}
  1471  	return fpaov.(AlertInfo_FieldPathArrayOfValues), nil
  1472  }
  1473  
  1474  func MustParseAlertInfo_FieldPathArrayOfValues(pathStr, valuesStr string) AlertInfo_FieldPathArrayOfValues {
  1475  	fpaov, err := ParseAlertInfo_FieldPathArrayOfValues(pathStr, valuesStr)
  1476  	if err != nil {
  1477  		panic(err)
  1478  	}
  1479  	return fpaov
  1480  }
  1481  
  1482  type AlertInfo_FieldTerminalPathArrayOfValues struct {
  1483  	AlertInfo_FieldTerminalPath
  1484  	values interface{}
  1485  }
  1486  
  1487  var _ AlertInfo_FieldPathArrayOfValues = (*AlertInfo_FieldTerminalPathArrayOfValues)(nil)
  1488  
  1489  func (fpaov *AlertInfo_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1490  	switch fpaov.selector {
  1491  	case AlertInfo_FieldPathSelectorTimeSerie:
  1492  		for _, v := range fpaov.values.([]*Alert_Info_TimeSerie) {
  1493  			values = append(values, v)
  1494  		}
  1495  	case AlertInfo_FieldPathSelectorObservedValues:
  1496  		for _, v := range fpaov.values.([]*Alert_Info_ObservedValues) {
  1497  			values = append(values, v)
  1498  		}
  1499  	}
  1500  	return
  1501  }
  1502  func (fpaov *AlertInfo_FieldTerminalPathArrayOfValues) AsTimeSerieArrayOfValues() ([]*Alert_Info_TimeSerie, bool) {
  1503  	res, ok := fpaov.values.([]*Alert_Info_TimeSerie)
  1504  	return res, ok
  1505  }
  1506  func (fpaov *AlertInfo_FieldTerminalPathArrayOfValues) AsObservedValuesArrayOfValues() ([]*Alert_Info_ObservedValues, bool) {
  1507  	res, ok := fpaov.values.([]*Alert_Info_ObservedValues)
  1508  	return res, ok
  1509  }
  1510  
  1511  type AlertInfo_FieldSubPathArrayOfValues struct {
  1512  	AlertInfo_FieldPath
  1513  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  1514  }
  1515  
  1516  var _ AlertInfo_FieldPathArrayOfValues = (*AlertInfo_FieldSubPathArrayOfValues)(nil)
  1517  
  1518  func (fpsaov *AlertInfo_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  1519  	return fpsaov.subPathArrayOfValues.GetRawValues()
  1520  }
  1521  func (fpsaov *AlertInfo_FieldSubPathArrayOfValues) AsTimeSeriePathArrayOfValues() (AlertInfoTimeSerie_FieldPathArrayOfValues, bool) {
  1522  	res, ok := fpsaov.subPathArrayOfValues.(AlertInfoTimeSerie_FieldPathArrayOfValues)
  1523  	return res, ok
  1524  }
  1525  func (fpsaov *AlertInfo_FieldSubPathArrayOfValues) AsObservedValuesPathArrayOfValues() (AlertInfoObservedValues_FieldPathArrayOfValues, bool) {
  1526  	res, ok := fpsaov.subPathArrayOfValues.(AlertInfoObservedValues_FieldPathArrayOfValues)
  1527  	return res, ok
  1528  }
  1529  
  1530  // FieldPath provides implementation to handle
  1531  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1532  type AlertState_FieldPath interface {
  1533  	gotenobject.FieldPath
  1534  	Selector() AlertState_FieldPathSelector
  1535  	Get(source *Alert_State) []interface{}
  1536  	GetSingle(source *Alert_State) (interface{}, bool)
  1537  	ClearValue(item *Alert_State)
  1538  
  1539  	// Those methods build corresponding AlertState_FieldPathValue
  1540  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1541  	WithIValue(value interface{}) AlertState_FieldPathValue
  1542  	WithIArrayOfValues(values interface{}) AlertState_FieldPathArrayOfValues
  1543  	WithIArrayItemValue(value interface{}) AlertState_FieldPathArrayItemValue
  1544  }
  1545  
  1546  type AlertState_FieldPathSelector int32
  1547  
  1548  const (
  1549  	AlertState_FieldPathSelectorIsFiring            AlertState_FieldPathSelector = 0
  1550  	AlertState_FieldPathSelectorIsAcknowledged      AlertState_FieldPathSelector = 1
  1551  	AlertState_FieldPathSelectorIsSilenced          AlertState_FieldPathSelector = 2
  1552  	AlertState_FieldPathSelectorLifetime            AlertState_FieldPathSelector = 3
  1553  	AlertState_FieldPathSelectorNeedsNotification   AlertState_FieldPathSelector = 4
  1554  	AlertState_FieldPathSelectorNotificationCreated AlertState_FieldPathSelector = 5
  1555  	AlertState_FieldPathSelectorLifecycleCompleted  AlertState_FieldPathSelector = 6
  1556  )
  1557  
  1558  func (s AlertState_FieldPathSelector) String() string {
  1559  	switch s {
  1560  	case AlertState_FieldPathSelectorIsFiring:
  1561  		return "is_firing"
  1562  	case AlertState_FieldPathSelectorIsAcknowledged:
  1563  		return "is_acknowledged"
  1564  	case AlertState_FieldPathSelectorIsSilenced:
  1565  		return "is_silenced"
  1566  	case AlertState_FieldPathSelectorLifetime:
  1567  		return "lifetime"
  1568  	case AlertState_FieldPathSelectorNeedsNotification:
  1569  		return "needs_notification"
  1570  	case AlertState_FieldPathSelectorNotificationCreated:
  1571  		return "notification_created"
  1572  	case AlertState_FieldPathSelectorLifecycleCompleted:
  1573  		return "lifecycle_completed"
  1574  	default:
  1575  		panic(fmt.Sprintf("Invalid selector for Alert_State: %d", s))
  1576  	}
  1577  }
  1578  
  1579  func BuildAlertState_FieldPath(fp gotenobject.RawFieldPath) (AlertState_FieldPath, error) {
  1580  	if len(fp) == 0 {
  1581  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Alert_State")
  1582  	}
  1583  	if len(fp) == 1 {
  1584  		switch fp[0] {
  1585  		case "is_firing", "isFiring", "is-firing":
  1586  			return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorIsFiring}, nil
  1587  		case "is_acknowledged", "isAcknowledged", "is-acknowledged":
  1588  			return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorIsAcknowledged}, nil
  1589  		case "is_silenced", "isSilenced", "is-silenced":
  1590  			return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorIsSilenced}, nil
  1591  		case "lifetime":
  1592  			return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorLifetime}, nil
  1593  		case "needs_notification", "needsNotification", "needs-notification":
  1594  			return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorNeedsNotification}, nil
  1595  		case "notification_created", "notificationCreated", "notification-created":
  1596  			return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorNotificationCreated}, nil
  1597  		case "lifecycle_completed", "lifecycleCompleted", "lifecycle-completed":
  1598  			return &AlertState_FieldTerminalPath{selector: AlertState_FieldPathSelectorLifecycleCompleted}, nil
  1599  		}
  1600  	} else {
  1601  		switch fp[0] {
  1602  		case "lifetime":
  1603  			if subpath, err := common.BuildTimeRange_FieldPath(fp[1:]); err != nil {
  1604  				return nil, err
  1605  			} else {
  1606  				return &AlertState_FieldSubPath{selector: AlertState_FieldPathSelectorLifetime, subPath: subpath}, nil
  1607  			}
  1608  		}
  1609  	}
  1610  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Alert_State", fp)
  1611  }
  1612  
  1613  func ParseAlertState_FieldPath(rawField string) (AlertState_FieldPath, error) {
  1614  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1615  	if err != nil {
  1616  		return nil, err
  1617  	}
  1618  	return BuildAlertState_FieldPath(fp)
  1619  }
  1620  
  1621  func MustParseAlertState_FieldPath(rawField string) AlertState_FieldPath {
  1622  	fp, err := ParseAlertState_FieldPath(rawField)
  1623  	if err != nil {
  1624  		panic(err)
  1625  	}
  1626  	return fp
  1627  }
  1628  
  1629  type AlertState_FieldTerminalPath struct {
  1630  	selector AlertState_FieldPathSelector
  1631  }
  1632  
  1633  var _ AlertState_FieldPath = (*AlertState_FieldTerminalPath)(nil)
  1634  
  1635  func (fp *AlertState_FieldTerminalPath) Selector() AlertState_FieldPathSelector {
  1636  	return fp.selector
  1637  }
  1638  
  1639  // String returns path representation in proto convention
  1640  func (fp *AlertState_FieldTerminalPath) String() string {
  1641  	return fp.selector.String()
  1642  }
  1643  
  1644  // JSONString returns path representation is JSON convention
  1645  func (fp *AlertState_FieldTerminalPath) JSONString() string {
  1646  	return strcase.ToLowerCamel(fp.String())
  1647  }
  1648  
  1649  // Get returns all values pointed by specific field from source Alert_State
  1650  func (fp *AlertState_FieldTerminalPath) Get(source *Alert_State) (values []interface{}) {
  1651  	if source != nil {
  1652  		switch fp.selector {
  1653  		case AlertState_FieldPathSelectorIsFiring:
  1654  			values = append(values, source.IsFiring)
  1655  		case AlertState_FieldPathSelectorIsAcknowledged:
  1656  			values = append(values, source.IsAcknowledged)
  1657  		case AlertState_FieldPathSelectorIsSilenced:
  1658  			values = append(values, source.IsSilenced)
  1659  		case AlertState_FieldPathSelectorLifetime:
  1660  			if source.Lifetime != nil {
  1661  				values = append(values, source.Lifetime)
  1662  			}
  1663  		case AlertState_FieldPathSelectorNeedsNotification:
  1664  			values = append(values, source.NeedsNotification)
  1665  		case AlertState_FieldPathSelectorNotificationCreated:
  1666  			values = append(values, source.NotificationCreated)
  1667  		case AlertState_FieldPathSelectorLifecycleCompleted:
  1668  			values = append(values, source.LifecycleCompleted)
  1669  		default:
  1670  			panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector))
  1671  		}
  1672  	}
  1673  	return
  1674  }
  1675  
  1676  func (fp *AlertState_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1677  	return fp.Get(source.(*Alert_State))
  1678  }
  1679  
  1680  // GetSingle returns value pointed by specific field of from source Alert_State
  1681  func (fp *AlertState_FieldTerminalPath) GetSingle(source *Alert_State) (interface{}, bool) {
  1682  	switch fp.selector {
  1683  	case AlertState_FieldPathSelectorIsFiring:
  1684  		return source.GetIsFiring(), source != nil
  1685  	case AlertState_FieldPathSelectorIsAcknowledged:
  1686  		return source.GetIsAcknowledged(), source != nil
  1687  	case AlertState_FieldPathSelectorIsSilenced:
  1688  		return source.GetIsSilenced(), source != nil
  1689  	case AlertState_FieldPathSelectorLifetime:
  1690  		res := source.GetLifetime()
  1691  		return res, res != nil
  1692  	case AlertState_FieldPathSelectorNeedsNotification:
  1693  		return source.GetNeedsNotification(), source != nil
  1694  	case AlertState_FieldPathSelectorNotificationCreated:
  1695  		return source.GetNotificationCreated(), source != nil
  1696  	case AlertState_FieldPathSelectorLifecycleCompleted:
  1697  		return source.GetLifecycleCompleted(), source != nil
  1698  	default:
  1699  		panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector))
  1700  	}
  1701  }
  1702  
  1703  func (fp *AlertState_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1704  	return fp.GetSingle(source.(*Alert_State))
  1705  }
  1706  
  1707  // GetDefault returns a default value of the field type
  1708  func (fp *AlertState_FieldTerminalPath) GetDefault() interface{} {
  1709  	switch fp.selector {
  1710  	case AlertState_FieldPathSelectorIsFiring:
  1711  		return false
  1712  	case AlertState_FieldPathSelectorIsAcknowledged:
  1713  		return false
  1714  	case AlertState_FieldPathSelectorIsSilenced:
  1715  		return false
  1716  	case AlertState_FieldPathSelectorLifetime:
  1717  		return (*common.TimeRange)(nil)
  1718  	case AlertState_FieldPathSelectorNeedsNotification:
  1719  		return false
  1720  	case AlertState_FieldPathSelectorNotificationCreated:
  1721  		return false
  1722  	case AlertState_FieldPathSelectorLifecycleCompleted:
  1723  		return false
  1724  	default:
  1725  		panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector))
  1726  	}
  1727  }
  1728  
  1729  func (fp *AlertState_FieldTerminalPath) ClearValue(item *Alert_State) {
  1730  	if item != nil {
  1731  		switch fp.selector {
  1732  		case AlertState_FieldPathSelectorIsFiring:
  1733  			item.IsFiring = false
  1734  		case AlertState_FieldPathSelectorIsAcknowledged:
  1735  			item.IsAcknowledged = false
  1736  		case AlertState_FieldPathSelectorIsSilenced:
  1737  			item.IsSilenced = false
  1738  		case AlertState_FieldPathSelectorLifetime:
  1739  			item.Lifetime = nil
  1740  		case AlertState_FieldPathSelectorNeedsNotification:
  1741  			item.NeedsNotification = false
  1742  		case AlertState_FieldPathSelectorNotificationCreated:
  1743  			item.NotificationCreated = false
  1744  		case AlertState_FieldPathSelectorLifecycleCompleted:
  1745  			item.LifecycleCompleted = false
  1746  		default:
  1747  			panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector))
  1748  		}
  1749  	}
  1750  }
  1751  
  1752  func (fp *AlertState_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1753  	fp.ClearValue(item.(*Alert_State))
  1754  }
  1755  
  1756  // IsLeaf - whether field path is holds simple value
  1757  func (fp *AlertState_FieldTerminalPath) IsLeaf() bool {
  1758  	return fp.selector == AlertState_FieldPathSelectorIsFiring ||
  1759  		fp.selector == AlertState_FieldPathSelectorIsAcknowledged ||
  1760  		fp.selector == AlertState_FieldPathSelectorIsSilenced ||
  1761  		fp.selector == AlertState_FieldPathSelectorNeedsNotification ||
  1762  		fp.selector == AlertState_FieldPathSelectorNotificationCreated ||
  1763  		fp.selector == AlertState_FieldPathSelectorLifecycleCompleted
  1764  }
  1765  
  1766  func (fp *AlertState_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1767  	return []gotenobject.FieldPath{fp}
  1768  }
  1769  
  1770  func (fp *AlertState_FieldTerminalPath) WithIValue(value interface{}) AlertState_FieldPathValue {
  1771  	switch fp.selector {
  1772  	case AlertState_FieldPathSelectorIsFiring:
  1773  		return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(bool)}
  1774  	case AlertState_FieldPathSelectorIsAcknowledged:
  1775  		return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(bool)}
  1776  	case AlertState_FieldPathSelectorIsSilenced:
  1777  		return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(bool)}
  1778  	case AlertState_FieldPathSelectorLifetime:
  1779  		return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(*common.TimeRange)}
  1780  	case AlertState_FieldPathSelectorNeedsNotification:
  1781  		return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(bool)}
  1782  	case AlertState_FieldPathSelectorNotificationCreated:
  1783  		return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(bool)}
  1784  	case AlertState_FieldPathSelectorLifecycleCompleted:
  1785  		return &AlertState_FieldTerminalPathValue{AlertState_FieldTerminalPath: *fp, value: value.(bool)}
  1786  	default:
  1787  		panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector))
  1788  	}
  1789  }
  1790  
  1791  func (fp *AlertState_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1792  	return fp.WithIValue(value)
  1793  }
  1794  
  1795  func (fp *AlertState_FieldTerminalPath) WithIArrayOfValues(values interface{}) AlertState_FieldPathArrayOfValues {
  1796  	fpaov := &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp}
  1797  	switch fp.selector {
  1798  	case AlertState_FieldPathSelectorIsFiring:
  1799  		return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]bool)}
  1800  	case AlertState_FieldPathSelectorIsAcknowledged:
  1801  		return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]bool)}
  1802  	case AlertState_FieldPathSelectorIsSilenced:
  1803  		return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]bool)}
  1804  	case AlertState_FieldPathSelectorLifetime:
  1805  		return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]*common.TimeRange)}
  1806  	case AlertState_FieldPathSelectorNeedsNotification:
  1807  		return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]bool)}
  1808  	case AlertState_FieldPathSelectorNotificationCreated:
  1809  		return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]bool)}
  1810  	case AlertState_FieldPathSelectorLifecycleCompleted:
  1811  		return &AlertState_FieldTerminalPathArrayOfValues{AlertState_FieldTerminalPath: *fp, values: values.([]bool)}
  1812  	default:
  1813  		panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector))
  1814  	}
  1815  	return fpaov
  1816  }
  1817  
  1818  func (fp *AlertState_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1819  	return fp.WithIArrayOfValues(values)
  1820  }
  1821  
  1822  func (fp *AlertState_FieldTerminalPath) WithIArrayItemValue(value interface{}) AlertState_FieldPathArrayItemValue {
  1823  	switch fp.selector {
  1824  	default:
  1825  		panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fp.selector))
  1826  	}
  1827  }
  1828  
  1829  func (fp *AlertState_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1830  	return fp.WithIArrayItemValue(value)
  1831  }
  1832  
  1833  type AlertState_FieldSubPath struct {
  1834  	selector AlertState_FieldPathSelector
  1835  	subPath  gotenobject.FieldPath
  1836  }
  1837  
  1838  var _ AlertState_FieldPath = (*AlertState_FieldSubPath)(nil)
  1839  
  1840  func (fps *AlertState_FieldSubPath) Selector() AlertState_FieldPathSelector {
  1841  	return fps.selector
  1842  }
  1843  func (fps *AlertState_FieldSubPath) AsLifetimeSubPath() (common.TimeRange_FieldPath, bool) {
  1844  	res, ok := fps.subPath.(common.TimeRange_FieldPath)
  1845  	return res, ok
  1846  }
  1847  
  1848  // String returns path representation in proto convention
  1849  func (fps *AlertState_FieldSubPath) String() string {
  1850  	return fps.selector.String() + "." + fps.subPath.String()
  1851  }
  1852  
  1853  // JSONString returns path representation is JSON convention
  1854  func (fps *AlertState_FieldSubPath) JSONString() string {
  1855  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
  1856  }
  1857  
  1858  // Get returns all values pointed by selected field from source Alert_State
  1859  func (fps *AlertState_FieldSubPath) Get(source *Alert_State) (values []interface{}) {
  1860  	switch fps.selector {
  1861  	case AlertState_FieldPathSelectorLifetime:
  1862  		values = append(values, fps.subPath.GetRaw(source.GetLifetime())...)
  1863  	default:
  1864  		panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fps.selector))
  1865  	}
  1866  	return
  1867  }
  1868  
  1869  func (fps *AlertState_FieldSubPath) GetRaw(source proto.Message) []interface{} {
  1870  	return fps.Get(source.(*Alert_State))
  1871  }
  1872  
  1873  // GetSingle returns value of selected field from source Alert_State
  1874  func (fps *AlertState_FieldSubPath) GetSingle(source *Alert_State) (interface{}, bool) {
  1875  	switch fps.selector {
  1876  	case AlertState_FieldPathSelectorLifetime:
  1877  		if source.GetLifetime() == nil {
  1878  			return nil, false
  1879  		}
  1880  		return fps.subPath.GetSingleRaw(source.GetLifetime())
  1881  	default:
  1882  		panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fps.selector))
  1883  	}
  1884  }
  1885  
  1886  func (fps *AlertState_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1887  	return fps.GetSingle(source.(*Alert_State))
  1888  }
  1889  
  1890  // GetDefault returns a default value of the field type
  1891  func (fps *AlertState_FieldSubPath) GetDefault() interface{} {
  1892  	return fps.subPath.GetDefault()
  1893  }
  1894  
  1895  func (fps *AlertState_FieldSubPath) ClearValue(item *Alert_State) {
  1896  	if item != nil {
  1897  		switch fps.selector {
  1898  		case AlertState_FieldPathSelectorLifetime:
  1899  			fps.subPath.ClearValueRaw(item.Lifetime)
  1900  		default:
  1901  			panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fps.selector))
  1902  		}
  1903  	}
  1904  }
  1905  
  1906  func (fps *AlertState_FieldSubPath) ClearValueRaw(item proto.Message) {
  1907  	fps.ClearValue(item.(*Alert_State))
  1908  }
  1909  
  1910  // IsLeaf - whether field path is holds simple value
  1911  func (fps *AlertState_FieldSubPath) IsLeaf() bool {
  1912  	return fps.subPath.IsLeaf()
  1913  }
  1914  
  1915  func (fps *AlertState_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1916  	iPaths := []gotenobject.FieldPath{&AlertState_FieldTerminalPath{selector: fps.selector}}
  1917  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
  1918  	return iPaths
  1919  }
  1920  
  1921  func (fps *AlertState_FieldSubPath) WithIValue(value interface{}) AlertState_FieldPathValue {
  1922  	return &AlertState_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
  1923  }
  1924  
  1925  func (fps *AlertState_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1926  	return fps.WithIValue(value)
  1927  }
  1928  
  1929  func (fps *AlertState_FieldSubPath) WithIArrayOfValues(values interface{}) AlertState_FieldPathArrayOfValues {
  1930  	return &AlertState_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
  1931  }
  1932  
  1933  func (fps *AlertState_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1934  	return fps.WithIArrayOfValues(values)
  1935  }
  1936  
  1937  func (fps *AlertState_FieldSubPath) WithIArrayItemValue(value interface{}) AlertState_FieldPathArrayItemValue {
  1938  	return &AlertState_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
  1939  }
  1940  
  1941  func (fps *AlertState_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1942  	return fps.WithIArrayItemValue(value)
  1943  }
  1944  
  1945  // AlertState_FieldPathValue allows storing values for State fields according to their type
  1946  type AlertState_FieldPathValue interface {
  1947  	AlertState_FieldPath
  1948  	gotenobject.FieldPathValue
  1949  	SetTo(target **Alert_State)
  1950  	CompareWith(*Alert_State) (cmp int, comparable bool)
  1951  }
  1952  
  1953  func ParseAlertState_FieldPathValue(pathStr, valueStr string) (AlertState_FieldPathValue, error) {
  1954  	fp, err := ParseAlertState_FieldPath(pathStr)
  1955  	if err != nil {
  1956  		return nil, err
  1957  	}
  1958  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1959  	if err != nil {
  1960  		return nil, status.Errorf(codes.InvalidArgument, "error parsing State field path value from %s: %v", valueStr, err)
  1961  	}
  1962  	return fpv.(AlertState_FieldPathValue), nil
  1963  }
  1964  
  1965  func MustParseAlertState_FieldPathValue(pathStr, valueStr string) AlertState_FieldPathValue {
  1966  	fpv, err := ParseAlertState_FieldPathValue(pathStr, valueStr)
  1967  	if err != nil {
  1968  		panic(err)
  1969  	}
  1970  	return fpv
  1971  }
  1972  
  1973  type AlertState_FieldTerminalPathValue struct {
  1974  	AlertState_FieldTerminalPath
  1975  	value interface{}
  1976  }
  1977  
  1978  var _ AlertState_FieldPathValue = (*AlertState_FieldTerminalPathValue)(nil)
  1979  
  1980  // GetRawValue returns raw value stored under selected path for 'State' as interface{}
  1981  func (fpv *AlertState_FieldTerminalPathValue) GetRawValue() interface{} {
  1982  	return fpv.value
  1983  }
  1984  func (fpv *AlertState_FieldTerminalPathValue) AsIsFiringValue() (bool, bool) {
  1985  	res, ok := fpv.value.(bool)
  1986  	return res, ok
  1987  }
  1988  func (fpv *AlertState_FieldTerminalPathValue) AsIsAcknowledgedValue() (bool, bool) {
  1989  	res, ok := fpv.value.(bool)
  1990  	return res, ok
  1991  }
  1992  func (fpv *AlertState_FieldTerminalPathValue) AsIsSilencedValue() (bool, bool) {
  1993  	res, ok := fpv.value.(bool)
  1994  	return res, ok
  1995  }
  1996  func (fpv *AlertState_FieldTerminalPathValue) AsLifetimeValue() (*common.TimeRange, bool) {
  1997  	res, ok := fpv.value.(*common.TimeRange)
  1998  	return res, ok
  1999  }
  2000  func (fpv *AlertState_FieldTerminalPathValue) AsNeedsNotificationValue() (bool, bool) {
  2001  	res, ok := fpv.value.(bool)
  2002  	return res, ok
  2003  }
  2004  func (fpv *AlertState_FieldTerminalPathValue) AsNotificationCreatedValue() (bool, bool) {
  2005  	res, ok := fpv.value.(bool)
  2006  	return res, ok
  2007  }
  2008  func (fpv *AlertState_FieldTerminalPathValue) AsLifecycleCompletedValue() (bool, bool) {
  2009  	res, ok := fpv.value.(bool)
  2010  	return res, ok
  2011  }
  2012  
  2013  // SetTo stores value for selected field for object State
  2014  func (fpv *AlertState_FieldTerminalPathValue) SetTo(target **Alert_State) {
  2015  	if *target == nil {
  2016  		*target = new(Alert_State)
  2017  	}
  2018  	switch fpv.selector {
  2019  	case AlertState_FieldPathSelectorIsFiring:
  2020  		(*target).IsFiring = fpv.value.(bool)
  2021  	case AlertState_FieldPathSelectorIsAcknowledged:
  2022  		(*target).IsAcknowledged = fpv.value.(bool)
  2023  	case AlertState_FieldPathSelectorIsSilenced:
  2024  		(*target).IsSilenced = fpv.value.(bool)
  2025  	case AlertState_FieldPathSelectorLifetime:
  2026  		(*target).Lifetime = fpv.value.(*common.TimeRange)
  2027  	case AlertState_FieldPathSelectorNeedsNotification:
  2028  		(*target).NeedsNotification = fpv.value.(bool)
  2029  	case AlertState_FieldPathSelectorNotificationCreated:
  2030  		(*target).NotificationCreated = fpv.value.(bool)
  2031  	case AlertState_FieldPathSelectorLifecycleCompleted:
  2032  		(*target).LifecycleCompleted = fpv.value.(bool)
  2033  	default:
  2034  		panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fpv.selector))
  2035  	}
  2036  }
  2037  
  2038  func (fpv *AlertState_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  2039  	typedObject := target.(*Alert_State)
  2040  	fpv.SetTo(&typedObject)
  2041  }
  2042  
  2043  // CompareWith compares value in the 'AlertState_FieldTerminalPathValue' with the value under path in 'Alert_State'.
  2044  func (fpv *AlertState_FieldTerminalPathValue) CompareWith(source *Alert_State) (int, bool) {
  2045  	switch fpv.selector {
  2046  	case AlertState_FieldPathSelectorIsFiring:
  2047  		leftValue := fpv.value.(bool)
  2048  		rightValue := source.GetIsFiring()
  2049  		if (leftValue) == (rightValue) {
  2050  			return 0, true
  2051  		} else if !(leftValue) && (rightValue) {
  2052  			return -1, true
  2053  		} else {
  2054  			return 1, true
  2055  		}
  2056  	case AlertState_FieldPathSelectorIsAcknowledged:
  2057  		leftValue := fpv.value.(bool)
  2058  		rightValue := source.GetIsAcknowledged()
  2059  		if (leftValue) == (rightValue) {
  2060  			return 0, true
  2061  		} else if !(leftValue) && (rightValue) {
  2062  			return -1, true
  2063  		} else {
  2064  			return 1, true
  2065  		}
  2066  	case AlertState_FieldPathSelectorIsSilenced:
  2067  		leftValue := fpv.value.(bool)
  2068  		rightValue := source.GetIsSilenced()
  2069  		if (leftValue) == (rightValue) {
  2070  			return 0, true
  2071  		} else if !(leftValue) && (rightValue) {
  2072  			return -1, true
  2073  		} else {
  2074  			return 1, true
  2075  		}
  2076  	case AlertState_FieldPathSelectorLifetime:
  2077  		return 0, false
  2078  	case AlertState_FieldPathSelectorNeedsNotification:
  2079  		leftValue := fpv.value.(bool)
  2080  		rightValue := source.GetNeedsNotification()
  2081  		if (leftValue) == (rightValue) {
  2082  			return 0, true
  2083  		} else if !(leftValue) && (rightValue) {
  2084  			return -1, true
  2085  		} else {
  2086  			return 1, true
  2087  		}
  2088  	case AlertState_FieldPathSelectorNotificationCreated:
  2089  		leftValue := fpv.value.(bool)
  2090  		rightValue := source.GetNotificationCreated()
  2091  		if (leftValue) == (rightValue) {
  2092  			return 0, true
  2093  		} else if !(leftValue) && (rightValue) {
  2094  			return -1, true
  2095  		} else {
  2096  			return 1, true
  2097  		}
  2098  	case AlertState_FieldPathSelectorLifecycleCompleted:
  2099  		leftValue := fpv.value.(bool)
  2100  		rightValue := source.GetLifecycleCompleted()
  2101  		if (leftValue) == (rightValue) {
  2102  			return 0, true
  2103  		} else if !(leftValue) && (rightValue) {
  2104  			return -1, true
  2105  		} else {
  2106  			return 1, true
  2107  		}
  2108  	default:
  2109  		panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fpv.selector))
  2110  	}
  2111  }
  2112  
  2113  func (fpv *AlertState_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2114  	return fpv.CompareWith(source.(*Alert_State))
  2115  }
  2116  
  2117  type AlertState_FieldSubPathValue struct {
  2118  	AlertState_FieldPath
  2119  	subPathValue gotenobject.FieldPathValue
  2120  }
  2121  
  2122  var _ AlertState_FieldPathValue = (*AlertState_FieldSubPathValue)(nil)
  2123  
  2124  func (fpvs *AlertState_FieldSubPathValue) AsLifetimePathValue() (common.TimeRange_FieldPathValue, bool) {
  2125  	res, ok := fpvs.subPathValue.(common.TimeRange_FieldPathValue)
  2126  	return res, ok
  2127  }
  2128  
  2129  func (fpvs *AlertState_FieldSubPathValue) SetTo(target **Alert_State) {
  2130  	if *target == nil {
  2131  		*target = new(Alert_State)
  2132  	}
  2133  	switch fpvs.Selector() {
  2134  	case AlertState_FieldPathSelectorLifetime:
  2135  		fpvs.subPathValue.(common.TimeRange_FieldPathValue).SetTo(&(*target).Lifetime)
  2136  	default:
  2137  		panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fpvs.Selector()))
  2138  	}
  2139  }
  2140  
  2141  func (fpvs *AlertState_FieldSubPathValue) SetToRaw(target proto.Message) {
  2142  	typedObject := target.(*Alert_State)
  2143  	fpvs.SetTo(&typedObject)
  2144  }
  2145  
  2146  func (fpvs *AlertState_FieldSubPathValue) GetRawValue() interface{} {
  2147  	return fpvs.subPathValue.GetRawValue()
  2148  }
  2149  
  2150  func (fpvs *AlertState_FieldSubPathValue) CompareWith(source *Alert_State) (int, bool) {
  2151  	switch fpvs.Selector() {
  2152  	case AlertState_FieldPathSelectorLifetime:
  2153  		return fpvs.subPathValue.(common.TimeRange_FieldPathValue).CompareWith(source.GetLifetime())
  2154  	default:
  2155  		panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fpvs.Selector()))
  2156  	}
  2157  }
  2158  
  2159  func (fpvs *AlertState_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2160  	return fpvs.CompareWith(source.(*Alert_State))
  2161  }
  2162  
  2163  // AlertState_FieldPathArrayItemValue allows storing single item in Path-specific values for State according to their type
  2164  // Present only for array (repeated) types.
  2165  type AlertState_FieldPathArrayItemValue interface {
  2166  	gotenobject.FieldPathArrayItemValue
  2167  	AlertState_FieldPath
  2168  	ContainsValue(*Alert_State) bool
  2169  }
  2170  
  2171  // ParseAlertState_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  2172  func ParseAlertState_FieldPathArrayItemValue(pathStr, valueStr string) (AlertState_FieldPathArrayItemValue, error) {
  2173  	fp, err := ParseAlertState_FieldPath(pathStr)
  2174  	if err != nil {
  2175  		return nil, err
  2176  	}
  2177  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  2178  	if err != nil {
  2179  		return nil, status.Errorf(codes.InvalidArgument, "error parsing State field path array item value from %s: %v", valueStr, err)
  2180  	}
  2181  	return fpaiv.(AlertState_FieldPathArrayItemValue), nil
  2182  }
  2183  
  2184  func MustParseAlertState_FieldPathArrayItemValue(pathStr, valueStr string) AlertState_FieldPathArrayItemValue {
  2185  	fpaiv, err := ParseAlertState_FieldPathArrayItemValue(pathStr, valueStr)
  2186  	if err != nil {
  2187  		panic(err)
  2188  	}
  2189  	return fpaiv
  2190  }
  2191  
  2192  type AlertState_FieldTerminalPathArrayItemValue struct {
  2193  	AlertState_FieldTerminalPath
  2194  	value interface{}
  2195  }
  2196  
  2197  var _ AlertState_FieldPathArrayItemValue = (*AlertState_FieldTerminalPathArrayItemValue)(nil)
  2198  
  2199  // GetRawValue returns stored element value for array in object Alert_State as interface{}
  2200  func (fpaiv *AlertState_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  2201  	return fpaiv.value
  2202  }
  2203  
  2204  func (fpaiv *AlertState_FieldTerminalPathArrayItemValue) GetSingle(source *Alert_State) (interface{}, bool) {
  2205  	return nil, false
  2206  }
  2207  
  2208  func (fpaiv *AlertState_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2209  	return fpaiv.GetSingle(source.(*Alert_State))
  2210  }
  2211  
  2212  // Contains returns a boolean indicating if value that is being held is present in given 'State'
  2213  func (fpaiv *AlertState_FieldTerminalPathArrayItemValue) ContainsValue(source *Alert_State) bool {
  2214  	slice := fpaiv.AlertState_FieldTerminalPath.Get(source)
  2215  	for _, v := range slice {
  2216  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  2217  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  2218  				return true
  2219  			}
  2220  		} else if reflect.DeepEqual(v, fpaiv.value) {
  2221  			return true
  2222  		}
  2223  	}
  2224  	return false
  2225  }
  2226  
  2227  type AlertState_FieldSubPathArrayItemValue struct {
  2228  	AlertState_FieldPath
  2229  	subPathItemValue gotenobject.FieldPathArrayItemValue
  2230  }
  2231  
  2232  // GetRawValue returns stored array item value
  2233  func (fpaivs *AlertState_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  2234  	return fpaivs.subPathItemValue.GetRawItemValue()
  2235  }
  2236  func (fpaivs *AlertState_FieldSubPathArrayItemValue) AsLifetimePathItemValue() (common.TimeRange_FieldPathArrayItemValue, bool) {
  2237  	res, ok := fpaivs.subPathItemValue.(common.TimeRange_FieldPathArrayItemValue)
  2238  	return res, ok
  2239  }
  2240  
  2241  // Contains returns a boolean indicating if value that is being held is present in given 'State'
  2242  func (fpaivs *AlertState_FieldSubPathArrayItemValue) ContainsValue(source *Alert_State) bool {
  2243  	switch fpaivs.Selector() {
  2244  	case AlertState_FieldPathSelectorLifetime:
  2245  		return fpaivs.subPathItemValue.(common.TimeRange_FieldPathArrayItemValue).ContainsValue(source.GetLifetime())
  2246  	default:
  2247  		panic(fmt.Sprintf("Invalid selector for Alert_State: %d", fpaivs.Selector()))
  2248  	}
  2249  }
  2250  
  2251  // AlertState_FieldPathArrayOfValues allows storing slice of values for State fields according to their type
  2252  type AlertState_FieldPathArrayOfValues interface {
  2253  	gotenobject.FieldPathArrayOfValues
  2254  	AlertState_FieldPath
  2255  }
  2256  
  2257  func ParseAlertState_FieldPathArrayOfValues(pathStr, valuesStr string) (AlertState_FieldPathArrayOfValues, error) {
  2258  	fp, err := ParseAlertState_FieldPath(pathStr)
  2259  	if err != nil {
  2260  		return nil, err
  2261  	}
  2262  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  2263  	if err != nil {
  2264  		return nil, status.Errorf(codes.InvalidArgument, "error parsing State field path array of values from %s: %v", valuesStr, err)
  2265  	}
  2266  	return fpaov.(AlertState_FieldPathArrayOfValues), nil
  2267  }
  2268  
  2269  func MustParseAlertState_FieldPathArrayOfValues(pathStr, valuesStr string) AlertState_FieldPathArrayOfValues {
  2270  	fpaov, err := ParseAlertState_FieldPathArrayOfValues(pathStr, valuesStr)
  2271  	if err != nil {
  2272  		panic(err)
  2273  	}
  2274  	return fpaov
  2275  }
  2276  
  2277  type AlertState_FieldTerminalPathArrayOfValues struct {
  2278  	AlertState_FieldTerminalPath
  2279  	values interface{}
  2280  }
  2281  
  2282  var _ AlertState_FieldPathArrayOfValues = (*AlertState_FieldTerminalPathArrayOfValues)(nil)
  2283  
  2284  func (fpaov *AlertState_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  2285  	switch fpaov.selector {
  2286  	case AlertState_FieldPathSelectorIsFiring:
  2287  		for _, v := range fpaov.values.([]bool) {
  2288  			values = append(values, v)
  2289  		}
  2290  	case AlertState_FieldPathSelectorIsAcknowledged:
  2291  		for _, v := range fpaov.values.([]bool) {
  2292  			values = append(values, v)
  2293  		}
  2294  	case AlertState_FieldPathSelectorIsSilenced:
  2295  		for _, v := range fpaov.values.([]bool) {
  2296  			values = append(values, v)
  2297  		}
  2298  	case AlertState_FieldPathSelectorLifetime:
  2299  		for _, v := range fpaov.values.([]*common.TimeRange) {
  2300  			values = append(values, v)
  2301  		}
  2302  	case AlertState_FieldPathSelectorNeedsNotification:
  2303  		for _, v := range fpaov.values.([]bool) {
  2304  			values = append(values, v)
  2305  		}
  2306  	case AlertState_FieldPathSelectorNotificationCreated:
  2307  		for _, v := range fpaov.values.([]bool) {
  2308  			values = append(values, v)
  2309  		}
  2310  	case AlertState_FieldPathSelectorLifecycleCompleted:
  2311  		for _, v := range fpaov.values.([]bool) {
  2312  			values = append(values, v)
  2313  		}
  2314  	}
  2315  	return
  2316  }
  2317  func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsIsFiringArrayOfValues() ([]bool, bool) {
  2318  	res, ok := fpaov.values.([]bool)
  2319  	return res, ok
  2320  }
  2321  func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsIsAcknowledgedArrayOfValues() ([]bool, bool) {
  2322  	res, ok := fpaov.values.([]bool)
  2323  	return res, ok
  2324  }
  2325  func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsIsSilencedArrayOfValues() ([]bool, bool) {
  2326  	res, ok := fpaov.values.([]bool)
  2327  	return res, ok
  2328  }
  2329  func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsLifetimeArrayOfValues() ([]*common.TimeRange, bool) {
  2330  	res, ok := fpaov.values.([]*common.TimeRange)
  2331  	return res, ok
  2332  }
  2333  func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsNeedsNotificationArrayOfValues() ([]bool, bool) {
  2334  	res, ok := fpaov.values.([]bool)
  2335  	return res, ok
  2336  }
  2337  func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsNotificationCreatedArrayOfValues() ([]bool, bool) {
  2338  	res, ok := fpaov.values.([]bool)
  2339  	return res, ok
  2340  }
  2341  func (fpaov *AlertState_FieldTerminalPathArrayOfValues) AsLifecycleCompletedArrayOfValues() ([]bool, bool) {
  2342  	res, ok := fpaov.values.([]bool)
  2343  	return res, ok
  2344  }
  2345  
  2346  type AlertState_FieldSubPathArrayOfValues struct {
  2347  	AlertState_FieldPath
  2348  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  2349  }
  2350  
  2351  var _ AlertState_FieldPathArrayOfValues = (*AlertState_FieldSubPathArrayOfValues)(nil)
  2352  
  2353  func (fpsaov *AlertState_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  2354  	return fpsaov.subPathArrayOfValues.GetRawValues()
  2355  }
  2356  func (fpsaov *AlertState_FieldSubPathArrayOfValues) AsLifetimePathArrayOfValues() (common.TimeRange_FieldPathArrayOfValues, bool) {
  2357  	res, ok := fpsaov.subPathArrayOfValues.(common.TimeRange_FieldPathArrayOfValues)
  2358  	return res, ok
  2359  }
  2360  
  2361  // FieldPath provides implementation to handle
  2362  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  2363  type AlertInfoTimeSerie_FieldPath interface {
  2364  	gotenobject.FieldPath
  2365  	Selector() AlertInfoTimeSerie_FieldPathSelector
  2366  	Get(source *Alert_Info_TimeSerie) []interface{}
  2367  	GetSingle(source *Alert_Info_TimeSerie) (interface{}, bool)
  2368  	ClearValue(item *Alert_Info_TimeSerie)
  2369  
  2370  	// Those methods build corresponding AlertInfoTimeSerie_FieldPathValue
  2371  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  2372  	WithIValue(value interface{}) AlertInfoTimeSerie_FieldPathValue
  2373  	WithIArrayOfValues(values interface{}) AlertInfoTimeSerie_FieldPathArrayOfValues
  2374  	WithIArrayItemValue(value interface{}) AlertInfoTimeSerie_FieldPathArrayItemValue
  2375  }
  2376  
  2377  type AlertInfoTimeSerie_FieldPathSelector int32
  2378  
  2379  const (
  2380  	AlertInfoTimeSerie_FieldPathSelectorKey               AlertInfoTimeSerie_FieldPathSelector = 0
  2381  	AlertInfoTimeSerie_FieldPathSelectorMetric            AlertInfoTimeSerie_FieldPathSelector = 1
  2382  	AlertInfoTimeSerie_FieldPathSelectorMonitoredResource AlertInfoTimeSerie_FieldPathSelector = 2
  2383  	AlertInfoTimeSerie_FieldPathSelectorData              AlertInfoTimeSerie_FieldPathSelector = 3
  2384  	AlertInfoTimeSerie_FieldPathSelectorBinData           AlertInfoTimeSerie_FieldPathSelector = 4
  2385  )
  2386  
  2387  func (s AlertInfoTimeSerie_FieldPathSelector) String() string {
  2388  	switch s {
  2389  	case AlertInfoTimeSerie_FieldPathSelectorKey:
  2390  		return "key"
  2391  	case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2392  		return "metric"
  2393  	case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2394  		return "monitored_resource"
  2395  	case AlertInfoTimeSerie_FieldPathSelectorData:
  2396  		return "data"
  2397  	case AlertInfoTimeSerie_FieldPathSelectorBinData:
  2398  		return "bin_data"
  2399  	default:
  2400  		panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", s))
  2401  	}
  2402  }
  2403  
  2404  func BuildAlertInfoTimeSerie_FieldPath(fp gotenobject.RawFieldPath) (AlertInfoTimeSerie_FieldPath, error) {
  2405  	if len(fp) == 0 {
  2406  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Alert_Info_TimeSerie")
  2407  	}
  2408  	if len(fp) == 1 {
  2409  		switch fp[0] {
  2410  		case "key":
  2411  			return &AlertInfoTimeSerie_FieldTerminalPath{selector: AlertInfoTimeSerie_FieldPathSelectorKey}, nil
  2412  		case "metric":
  2413  			return &AlertInfoTimeSerie_FieldTerminalPath{selector: AlertInfoTimeSerie_FieldPathSelectorMetric}, nil
  2414  		case "monitored_resource", "monitoredResource", "monitored-resource":
  2415  			return &AlertInfoTimeSerie_FieldTerminalPath{selector: AlertInfoTimeSerie_FieldPathSelectorMonitoredResource}, nil
  2416  		case "data":
  2417  			return &AlertInfoTimeSerie_FieldTerminalPath{selector: AlertInfoTimeSerie_FieldPathSelectorData}, nil
  2418  		case "bin_data", "binData", "bin-data":
  2419  			return &AlertInfoTimeSerie_FieldTerminalPath{selector: AlertInfoTimeSerie_FieldPathSelectorBinData}, nil
  2420  		}
  2421  	} else {
  2422  		switch fp[0] {
  2423  		case "metric":
  2424  			if subpath, err := common.BuildMetric_FieldPath(fp[1:]); err != nil {
  2425  				return nil, err
  2426  			} else {
  2427  				return &AlertInfoTimeSerie_FieldSubPath{selector: AlertInfoTimeSerie_FieldPathSelectorMetric, subPath: subpath}, nil
  2428  			}
  2429  		case "monitored_resource", "monitoredResource", "monitored-resource":
  2430  			if subpath, err := common.BuildMonitoredResource_FieldPath(fp[1:]); err != nil {
  2431  				return nil, err
  2432  			} else {
  2433  				return &AlertInfoTimeSerie_FieldSubPath{selector: AlertInfoTimeSerie_FieldPathSelectorMonitoredResource, subPath: subpath}, nil
  2434  			}
  2435  		}
  2436  	}
  2437  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Alert_Info_TimeSerie", fp)
  2438  }
  2439  
  2440  func ParseAlertInfoTimeSerie_FieldPath(rawField string) (AlertInfoTimeSerie_FieldPath, error) {
  2441  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  2442  	if err != nil {
  2443  		return nil, err
  2444  	}
  2445  	return BuildAlertInfoTimeSerie_FieldPath(fp)
  2446  }
  2447  
  2448  func MustParseAlertInfoTimeSerie_FieldPath(rawField string) AlertInfoTimeSerie_FieldPath {
  2449  	fp, err := ParseAlertInfoTimeSerie_FieldPath(rawField)
  2450  	if err != nil {
  2451  		panic(err)
  2452  	}
  2453  	return fp
  2454  }
  2455  
  2456  type AlertInfoTimeSerie_FieldTerminalPath struct {
  2457  	selector AlertInfoTimeSerie_FieldPathSelector
  2458  }
  2459  
  2460  var _ AlertInfoTimeSerie_FieldPath = (*AlertInfoTimeSerie_FieldTerminalPath)(nil)
  2461  
  2462  func (fp *AlertInfoTimeSerie_FieldTerminalPath) Selector() AlertInfoTimeSerie_FieldPathSelector {
  2463  	return fp.selector
  2464  }
  2465  
  2466  // String returns path representation in proto convention
  2467  func (fp *AlertInfoTimeSerie_FieldTerminalPath) String() string {
  2468  	return fp.selector.String()
  2469  }
  2470  
  2471  // JSONString returns path representation is JSON convention
  2472  func (fp *AlertInfoTimeSerie_FieldTerminalPath) JSONString() string {
  2473  	return strcase.ToLowerCamel(fp.String())
  2474  }
  2475  
  2476  // Get returns all values pointed by specific field from source Alert_Info_TimeSerie
  2477  func (fp *AlertInfoTimeSerie_FieldTerminalPath) Get(source *Alert_Info_TimeSerie) (values []interface{}) {
  2478  	if source != nil {
  2479  		switch fp.selector {
  2480  		case AlertInfoTimeSerie_FieldPathSelectorKey:
  2481  			values = append(values, source.Key)
  2482  		case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2483  			if source.Metric != nil {
  2484  				values = append(values, source.Metric)
  2485  			}
  2486  		case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2487  			if source.MonitoredResource != nil {
  2488  				values = append(values, source.MonitoredResource)
  2489  			}
  2490  		case AlertInfoTimeSerie_FieldPathSelectorData:
  2491  			for _, value := range source.GetData() {
  2492  				values = append(values, value)
  2493  			}
  2494  		case AlertInfoTimeSerie_FieldPathSelectorBinData:
  2495  			for _, value := range source.GetBinData() {
  2496  				values = append(values, value)
  2497  			}
  2498  		default:
  2499  			panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector))
  2500  		}
  2501  	}
  2502  	return
  2503  }
  2504  
  2505  func (fp *AlertInfoTimeSerie_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  2506  	return fp.Get(source.(*Alert_Info_TimeSerie))
  2507  }
  2508  
  2509  // GetSingle returns value pointed by specific field of from source Alert_Info_TimeSerie
  2510  func (fp *AlertInfoTimeSerie_FieldTerminalPath) GetSingle(source *Alert_Info_TimeSerie) (interface{}, bool) {
  2511  	switch fp.selector {
  2512  	case AlertInfoTimeSerie_FieldPathSelectorKey:
  2513  		res := source.GetKey()
  2514  		return res, res != nil
  2515  	case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2516  		res := source.GetMetric()
  2517  		return res, res != nil
  2518  	case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2519  		res := source.GetMonitoredResource()
  2520  		return res, res != nil
  2521  	case AlertInfoTimeSerie_FieldPathSelectorData:
  2522  		res := source.GetData()
  2523  		return res, res != nil
  2524  	case AlertInfoTimeSerie_FieldPathSelectorBinData:
  2525  		res := source.GetBinData()
  2526  		return res, res != nil
  2527  	default:
  2528  		panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector))
  2529  	}
  2530  }
  2531  
  2532  func (fp *AlertInfoTimeSerie_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2533  	return fp.GetSingle(source.(*Alert_Info_TimeSerie))
  2534  }
  2535  
  2536  // GetDefault returns a default value of the field type
  2537  func (fp *AlertInfoTimeSerie_FieldTerminalPath) GetDefault() interface{} {
  2538  	switch fp.selector {
  2539  	case AlertInfoTimeSerie_FieldPathSelectorKey:
  2540  		return ([]byte)(nil)
  2541  	case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2542  		return (*common.Metric)(nil)
  2543  	case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2544  		return (*common.MonitoredResource)(nil)
  2545  	case AlertInfoTimeSerie_FieldPathSelectorData:
  2546  		return ([]string)(nil)
  2547  	case AlertInfoTimeSerie_FieldPathSelectorBinData:
  2548  		return ([][]byte)(nil)
  2549  	default:
  2550  		panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector))
  2551  	}
  2552  }
  2553  
  2554  func (fp *AlertInfoTimeSerie_FieldTerminalPath) ClearValue(item *Alert_Info_TimeSerie) {
  2555  	if item != nil {
  2556  		switch fp.selector {
  2557  		case AlertInfoTimeSerie_FieldPathSelectorKey:
  2558  			item.Key = nil
  2559  		case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2560  			item.Metric = nil
  2561  		case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2562  			item.MonitoredResource = nil
  2563  		case AlertInfoTimeSerie_FieldPathSelectorData:
  2564  			item.Data = nil
  2565  		case AlertInfoTimeSerie_FieldPathSelectorBinData:
  2566  			item.BinData = nil
  2567  		default:
  2568  			panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector))
  2569  		}
  2570  	}
  2571  }
  2572  
  2573  func (fp *AlertInfoTimeSerie_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  2574  	fp.ClearValue(item.(*Alert_Info_TimeSerie))
  2575  }
  2576  
  2577  // IsLeaf - whether field path is holds simple value
  2578  func (fp *AlertInfoTimeSerie_FieldTerminalPath) IsLeaf() bool {
  2579  	return fp.selector == AlertInfoTimeSerie_FieldPathSelectorKey ||
  2580  		fp.selector == AlertInfoTimeSerie_FieldPathSelectorData ||
  2581  		fp.selector == AlertInfoTimeSerie_FieldPathSelectorBinData
  2582  }
  2583  
  2584  func (fp *AlertInfoTimeSerie_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  2585  	return []gotenobject.FieldPath{fp}
  2586  }
  2587  
  2588  func (fp *AlertInfoTimeSerie_FieldTerminalPath) WithIValue(value interface{}) AlertInfoTimeSerie_FieldPathValue {
  2589  	switch fp.selector {
  2590  	case AlertInfoTimeSerie_FieldPathSelectorKey:
  2591  		return &AlertInfoTimeSerie_FieldTerminalPathValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.([]byte)}
  2592  	case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2593  		return &AlertInfoTimeSerie_FieldTerminalPathValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.(*common.Metric)}
  2594  	case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2595  		return &AlertInfoTimeSerie_FieldTerminalPathValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.(*common.MonitoredResource)}
  2596  	case AlertInfoTimeSerie_FieldPathSelectorData:
  2597  		return &AlertInfoTimeSerie_FieldTerminalPathValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.([]string)}
  2598  	case AlertInfoTimeSerie_FieldPathSelectorBinData:
  2599  		return &AlertInfoTimeSerie_FieldTerminalPathValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.([][]byte)}
  2600  	default:
  2601  		panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector))
  2602  	}
  2603  }
  2604  
  2605  func (fp *AlertInfoTimeSerie_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  2606  	return fp.WithIValue(value)
  2607  }
  2608  
  2609  func (fp *AlertInfoTimeSerie_FieldTerminalPath) WithIArrayOfValues(values interface{}) AlertInfoTimeSerie_FieldPathArrayOfValues {
  2610  	fpaov := &AlertInfoTimeSerie_FieldTerminalPathArrayOfValues{AlertInfoTimeSerie_FieldTerminalPath: *fp}
  2611  	switch fp.selector {
  2612  	case AlertInfoTimeSerie_FieldPathSelectorKey:
  2613  		return &AlertInfoTimeSerie_FieldTerminalPathArrayOfValues{AlertInfoTimeSerie_FieldTerminalPath: *fp, values: values.([][]byte)}
  2614  	case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2615  		return &AlertInfoTimeSerie_FieldTerminalPathArrayOfValues{AlertInfoTimeSerie_FieldTerminalPath: *fp, values: values.([]*common.Metric)}
  2616  	case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2617  		return &AlertInfoTimeSerie_FieldTerminalPathArrayOfValues{AlertInfoTimeSerie_FieldTerminalPath: *fp, values: values.([]*common.MonitoredResource)}
  2618  	case AlertInfoTimeSerie_FieldPathSelectorData:
  2619  		return &AlertInfoTimeSerie_FieldTerminalPathArrayOfValues{AlertInfoTimeSerie_FieldTerminalPath: *fp, values: values.([][]string)}
  2620  	case AlertInfoTimeSerie_FieldPathSelectorBinData:
  2621  		return &AlertInfoTimeSerie_FieldTerminalPathArrayOfValues{AlertInfoTimeSerie_FieldTerminalPath: *fp, values: values.([][][]byte)}
  2622  	default:
  2623  		panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector))
  2624  	}
  2625  	return fpaov
  2626  }
  2627  
  2628  func (fp *AlertInfoTimeSerie_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  2629  	return fp.WithIArrayOfValues(values)
  2630  }
  2631  
  2632  func (fp *AlertInfoTimeSerie_FieldTerminalPath) WithIArrayItemValue(value interface{}) AlertInfoTimeSerie_FieldPathArrayItemValue {
  2633  	switch fp.selector {
  2634  	case AlertInfoTimeSerie_FieldPathSelectorData:
  2635  		return &AlertInfoTimeSerie_FieldTerminalPathArrayItemValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.(string)}
  2636  	case AlertInfoTimeSerie_FieldPathSelectorBinData:
  2637  		return &AlertInfoTimeSerie_FieldTerminalPathArrayItemValue{AlertInfoTimeSerie_FieldTerminalPath: *fp, value: value.([]byte)}
  2638  	default:
  2639  		panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fp.selector))
  2640  	}
  2641  }
  2642  
  2643  func (fp *AlertInfoTimeSerie_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  2644  	return fp.WithIArrayItemValue(value)
  2645  }
  2646  
  2647  type AlertInfoTimeSerie_FieldSubPath struct {
  2648  	selector AlertInfoTimeSerie_FieldPathSelector
  2649  	subPath  gotenobject.FieldPath
  2650  }
  2651  
  2652  var _ AlertInfoTimeSerie_FieldPath = (*AlertInfoTimeSerie_FieldSubPath)(nil)
  2653  
  2654  func (fps *AlertInfoTimeSerie_FieldSubPath) Selector() AlertInfoTimeSerie_FieldPathSelector {
  2655  	return fps.selector
  2656  }
  2657  func (fps *AlertInfoTimeSerie_FieldSubPath) AsMetricSubPath() (common.Metric_FieldPath, bool) {
  2658  	res, ok := fps.subPath.(common.Metric_FieldPath)
  2659  	return res, ok
  2660  }
  2661  func (fps *AlertInfoTimeSerie_FieldSubPath) AsMonitoredResourceSubPath() (common.MonitoredResource_FieldPath, bool) {
  2662  	res, ok := fps.subPath.(common.MonitoredResource_FieldPath)
  2663  	return res, ok
  2664  }
  2665  
  2666  // String returns path representation in proto convention
  2667  func (fps *AlertInfoTimeSerie_FieldSubPath) String() string {
  2668  	return fps.selector.String() + "." + fps.subPath.String()
  2669  }
  2670  
  2671  // JSONString returns path representation is JSON convention
  2672  func (fps *AlertInfoTimeSerie_FieldSubPath) JSONString() string {
  2673  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
  2674  }
  2675  
  2676  // Get returns all values pointed by selected field from source Alert_Info_TimeSerie
  2677  func (fps *AlertInfoTimeSerie_FieldSubPath) Get(source *Alert_Info_TimeSerie) (values []interface{}) {
  2678  	switch fps.selector {
  2679  	case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2680  		values = append(values, fps.subPath.GetRaw(source.GetMetric())...)
  2681  	case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2682  		values = append(values, fps.subPath.GetRaw(source.GetMonitoredResource())...)
  2683  	default:
  2684  		panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fps.selector))
  2685  	}
  2686  	return
  2687  }
  2688  
  2689  func (fps *AlertInfoTimeSerie_FieldSubPath) GetRaw(source proto.Message) []interface{} {
  2690  	return fps.Get(source.(*Alert_Info_TimeSerie))
  2691  }
  2692  
  2693  // GetSingle returns value of selected field from source Alert_Info_TimeSerie
  2694  func (fps *AlertInfoTimeSerie_FieldSubPath) GetSingle(source *Alert_Info_TimeSerie) (interface{}, bool) {
  2695  	switch fps.selector {
  2696  	case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2697  		if source.GetMetric() == nil {
  2698  			return nil, false
  2699  		}
  2700  		return fps.subPath.GetSingleRaw(source.GetMetric())
  2701  	case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2702  		if source.GetMonitoredResource() == nil {
  2703  			return nil, false
  2704  		}
  2705  		return fps.subPath.GetSingleRaw(source.GetMonitoredResource())
  2706  	default:
  2707  		panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fps.selector))
  2708  	}
  2709  }
  2710  
  2711  func (fps *AlertInfoTimeSerie_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2712  	return fps.GetSingle(source.(*Alert_Info_TimeSerie))
  2713  }
  2714  
  2715  // GetDefault returns a default value of the field type
  2716  func (fps *AlertInfoTimeSerie_FieldSubPath) GetDefault() interface{} {
  2717  	return fps.subPath.GetDefault()
  2718  }
  2719  
  2720  func (fps *AlertInfoTimeSerie_FieldSubPath) ClearValue(item *Alert_Info_TimeSerie) {
  2721  	if item != nil {
  2722  		switch fps.selector {
  2723  		case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2724  			fps.subPath.ClearValueRaw(item.Metric)
  2725  		case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2726  			fps.subPath.ClearValueRaw(item.MonitoredResource)
  2727  		default:
  2728  			panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fps.selector))
  2729  		}
  2730  	}
  2731  }
  2732  
  2733  func (fps *AlertInfoTimeSerie_FieldSubPath) ClearValueRaw(item proto.Message) {
  2734  	fps.ClearValue(item.(*Alert_Info_TimeSerie))
  2735  }
  2736  
  2737  // IsLeaf - whether field path is holds simple value
  2738  func (fps *AlertInfoTimeSerie_FieldSubPath) IsLeaf() bool {
  2739  	return fps.subPath.IsLeaf()
  2740  }
  2741  
  2742  func (fps *AlertInfoTimeSerie_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  2743  	iPaths := []gotenobject.FieldPath{&AlertInfoTimeSerie_FieldTerminalPath{selector: fps.selector}}
  2744  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
  2745  	return iPaths
  2746  }
  2747  
  2748  func (fps *AlertInfoTimeSerie_FieldSubPath) WithIValue(value interface{}) AlertInfoTimeSerie_FieldPathValue {
  2749  	return &AlertInfoTimeSerie_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
  2750  }
  2751  
  2752  func (fps *AlertInfoTimeSerie_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  2753  	return fps.WithIValue(value)
  2754  }
  2755  
  2756  func (fps *AlertInfoTimeSerie_FieldSubPath) WithIArrayOfValues(values interface{}) AlertInfoTimeSerie_FieldPathArrayOfValues {
  2757  	return &AlertInfoTimeSerie_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
  2758  }
  2759  
  2760  func (fps *AlertInfoTimeSerie_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  2761  	return fps.WithIArrayOfValues(values)
  2762  }
  2763  
  2764  func (fps *AlertInfoTimeSerie_FieldSubPath) WithIArrayItemValue(value interface{}) AlertInfoTimeSerie_FieldPathArrayItemValue {
  2765  	return &AlertInfoTimeSerie_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
  2766  }
  2767  
  2768  func (fps *AlertInfoTimeSerie_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  2769  	return fps.WithIArrayItemValue(value)
  2770  }
  2771  
  2772  // AlertInfoTimeSerie_FieldPathValue allows storing values for TimeSerie fields according to their type
  2773  type AlertInfoTimeSerie_FieldPathValue interface {
  2774  	AlertInfoTimeSerie_FieldPath
  2775  	gotenobject.FieldPathValue
  2776  	SetTo(target **Alert_Info_TimeSerie)
  2777  	CompareWith(*Alert_Info_TimeSerie) (cmp int, comparable bool)
  2778  }
  2779  
  2780  func ParseAlertInfoTimeSerie_FieldPathValue(pathStr, valueStr string) (AlertInfoTimeSerie_FieldPathValue, error) {
  2781  	fp, err := ParseAlertInfoTimeSerie_FieldPath(pathStr)
  2782  	if err != nil {
  2783  		return nil, err
  2784  	}
  2785  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  2786  	if err != nil {
  2787  		return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeSerie field path value from %s: %v", valueStr, err)
  2788  	}
  2789  	return fpv.(AlertInfoTimeSerie_FieldPathValue), nil
  2790  }
  2791  
  2792  func MustParseAlertInfoTimeSerie_FieldPathValue(pathStr, valueStr string) AlertInfoTimeSerie_FieldPathValue {
  2793  	fpv, err := ParseAlertInfoTimeSerie_FieldPathValue(pathStr, valueStr)
  2794  	if err != nil {
  2795  		panic(err)
  2796  	}
  2797  	return fpv
  2798  }
  2799  
  2800  type AlertInfoTimeSerie_FieldTerminalPathValue struct {
  2801  	AlertInfoTimeSerie_FieldTerminalPath
  2802  	value interface{}
  2803  }
  2804  
  2805  var _ AlertInfoTimeSerie_FieldPathValue = (*AlertInfoTimeSerie_FieldTerminalPathValue)(nil)
  2806  
  2807  // GetRawValue returns raw value stored under selected path for 'TimeSerie' as interface{}
  2808  func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) GetRawValue() interface{} {
  2809  	return fpv.value
  2810  }
  2811  func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) AsKeyValue() ([]byte, bool) {
  2812  	res, ok := fpv.value.([]byte)
  2813  	return res, ok
  2814  }
  2815  func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) AsMetricValue() (*common.Metric, bool) {
  2816  	res, ok := fpv.value.(*common.Metric)
  2817  	return res, ok
  2818  }
  2819  func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) AsMonitoredResourceValue() (*common.MonitoredResource, bool) {
  2820  	res, ok := fpv.value.(*common.MonitoredResource)
  2821  	return res, ok
  2822  }
  2823  func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) AsDataValue() ([]string, bool) {
  2824  	res, ok := fpv.value.([]string)
  2825  	return res, ok
  2826  }
  2827  func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) AsBinDataValue() ([][]byte, bool) {
  2828  	res, ok := fpv.value.([][]byte)
  2829  	return res, ok
  2830  }
  2831  
  2832  // SetTo stores value for selected field for object TimeSerie
  2833  func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) SetTo(target **Alert_Info_TimeSerie) {
  2834  	if *target == nil {
  2835  		*target = new(Alert_Info_TimeSerie)
  2836  	}
  2837  	switch fpv.selector {
  2838  	case AlertInfoTimeSerie_FieldPathSelectorKey:
  2839  		(*target).Key = fpv.value.([]byte)
  2840  	case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2841  		(*target).Metric = fpv.value.(*common.Metric)
  2842  	case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2843  		(*target).MonitoredResource = fpv.value.(*common.MonitoredResource)
  2844  	case AlertInfoTimeSerie_FieldPathSelectorData:
  2845  		(*target).Data = fpv.value.([]string)
  2846  	case AlertInfoTimeSerie_FieldPathSelectorBinData:
  2847  		(*target).BinData = fpv.value.([][]byte)
  2848  	default:
  2849  		panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fpv.selector))
  2850  	}
  2851  }
  2852  
  2853  func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  2854  	typedObject := target.(*Alert_Info_TimeSerie)
  2855  	fpv.SetTo(&typedObject)
  2856  }
  2857  
  2858  // CompareWith compares value in the 'AlertInfoTimeSerie_FieldTerminalPathValue' with the value under path in 'Alert_Info_TimeSerie'.
  2859  func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) CompareWith(source *Alert_Info_TimeSerie) (int, bool) {
  2860  	switch fpv.selector {
  2861  	case AlertInfoTimeSerie_FieldPathSelectorKey:
  2862  		return 0, false
  2863  	case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2864  		return 0, false
  2865  	case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2866  		return 0, false
  2867  	case AlertInfoTimeSerie_FieldPathSelectorData:
  2868  		return 0, false
  2869  	case AlertInfoTimeSerie_FieldPathSelectorBinData:
  2870  		return 0, false
  2871  	default:
  2872  		panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fpv.selector))
  2873  	}
  2874  }
  2875  
  2876  func (fpv *AlertInfoTimeSerie_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2877  	return fpv.CompareWith(source.(*Alert_Info_TimeSerie))
  2878  }
  2879  
  2880  type AlertInfoTimeSerie_FieldSubPathValue struct {
  2881  	AlertInfoTimeSerie_FieldPath
  2882  	subPathValue gotenobject.FieldPathValue
  2883  }
  2884  
  2885  var _ AlertInfoTimeSerie_FieldPathValue = (*AlertInfoTimeSerie_FieldSubPathValue)(nil)
  2886  
  2887  func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) AsMetricPathValue() (common.Metric_FieldPathValue, bool) {
  2888  	res, ok := fpvs.subPathValue.(common.Metric_FieldPathValue)
  2889  	return res, ok
  2890  }
  2891  func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) AsMonitoredResourcePathValue() (common.MonitoredResource_FieldPathValue, bool) {
  2892  	res, ok := fpvs.subPathValue.(common.MonitoredResource_FieldPathValue)
  2893  	return res, ok
  2894  }
  2895  
  2896  func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) SetTo(target **Alert_Info_TimeSerie) {
  2897  	if *target == nil {
  2898  		*target = new(Alert_Info_TimeSerie)
  2899  	}
  2900  	switch fpvs.Selector() {
  2901  	case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2902  		fpvs.subPathValue.(common.Metric_FieldPathValue).SetTo(&(*target).Metric)
  2903  	case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2904  		fpvs.subPathValue.(common.MonitoredResource_FieldPathValue).SetTo(&(*target).MonitoredResource)
  2905  	default:
  2906  		panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fpvs.Selector()))
  2907  	}
  2908  }
  2909  
  2910  func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) SetToRaw(target proto.Message) {
  2911  	typedObject := target.(*Alert_Info_TimeSerie)
  2912  	fpvs.SetTo(&typedObject)
  2913  }
  2914  
  2915  func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) GetRawValue() interface{} {
  2916  	return fpvs.subPathValue.GetRawValue()
  2917  }
  2918  
  2919  func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) CompareWith(source *Alert_Info_TimeSerie) (int, bool) {
  2920  	switch fpvs.Selector() {
  2921  	case AlertInfoTimeSerie_FieldPathSelectorMetric:
  2922  		return fpvs.subPathValue.(common.Metric_FieldPathValue).CompareWith(source.GetMetric())
  2923  	case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  2924  		return fpvs.subPathValue.(common.MonitoredResource_FieldPathValue).CompareWith(source.GetMonitoredResource())
  2925  	default:
  2926  		panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fpvs.Selector()))
  2927  	}
  2928  }
  2929  
  2930  func (fpvs *AlertInfoTimeSerie_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2931  	return fpvs.CompareWith(source.(*Alert_Info_TimeSerie))
  2932  }
  2933  
  2934  // AlertInfoTimeSerie_FieldPathArrayItemValue allows storing single item in Path-specific values for TimeSerie according to their type
  2935  // Present only for array (repeated) types.
  2936  type AlertInfoTimeSerie_FieldPathArrayItemValue interface {
  2937  	gotenobject.FieldPathArrayItemValue
  2938  	AlertInfoTimeSerie_FieldPath
  2939  	ContainsValue(*Alert_Info_TimeSerie) bool
  2940  }
  2941  
  2942  // ParseAlertInfoTimeSerie_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  2943  func ParseAlertInfoTimeSerie_FieldPathArrayItemValue(pathStr, valueStr string) (AlertInfoTimeSerie_FieldPathArrayItemValue, error) {
  2944  	fp, err := ParseAlertInfoTimeSerie_FieldPath(pathStr)
  2945  	if err != nil {
  2946  		return nil, err
  2947  	}
  2948  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  2949  	if err != nil {
  2950  		return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeSerie field path array item value from %s: %v", valueStr, err)
  2951  	}
  2952  	return fpaiv.(AlertInfoTimeSerie_FieldPathArrayItemValue), nil
  2953  }
  2954  
  2955  func MustParseAlertInfoTimeSerie_FieldPathArrayItemValue(pathStr, valueStr string) AlertInfoTimeSerie_FieldPathArrayItemValue {
  2956  	fpaiv, err := ParseAlertInfoTimeSerie_FieldPathArrayItemValue(pathStr, valueStr)
  2957  	if err != nil {
  2958  		panic(err)
  2959  	}
  2960  	return fpaiv
  2961  }
  2962  
  2963  type AlertInfoTimeSerie_FieldTerminalPathArrayItemValue struct {
  2964  	AlertInfoTimeSerie_FieldTerminalPath
  2965  	value interface{}
  2966  }
  2967  
  2968  var _ AlertInfoTimeSerie_FieldPathArrayItemValue = (*AlertInfoTimeSerie_FieldTerminalPathArrayItemValue)(nil)
  2969  
  2970  // GetRawValue returns stored element value for array in object Alert_Info_TimeSerie as interface{}
  2971  func (fpaiv *AlertInfoTimeSerie_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  2972  	return fpaiv.value
  2973  }
  2974  func (fpaiv *AlertInfoTimeSerie_FieldTerminalPathArrayItemValue) AsDataItemValue() (string, bool) {
  2975  	res, ok := fpaiv.value.(string)
  2976  	return res, ok
  2977  }
  2978  func (fpaiv *AlertInfoTimeSerie_FieldTerminalPathArrayItemValue) AsBinDataItemValue() ([]byte, bool) {
  2979  	res, ok := fpaiv.value.([]byte)
  2980  	return res, ok
  2981  }
  2982  
  2983  func (fpaiv *AlertInfoTimeSerie_FieldTerminalPathArrayItemValue) GetSingle(source *Alert_Info_TimeSerie) (interface{}, bool) {
  2984  	return nil, false
  2985  }
  2986  
  2987  func (fpaiv *AlertInfoTimeSerie_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2988  	return fpaiv.GetSingle(source.(*Alert_Info_TimeSerie))
  2989  }
  2990  
  2991  // Contains returns a boolean indicating if value that is being held is present in given 'TimeSerie'
  2992  func (fpaiv *AlertInfoTimeSerie_FieldTerminalPathArrayItemValue) ContainsValue(source *Alert_Info_TimeSerie) bool {
  2993  	slice := fpaiv.AlertInfoTimeSerie_FieldTerminalPath.Get(source)
  2994  	for _, v := range slice {
  2995  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  2996  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  2997  				return true
  2998  			}
  2999  		} else if reflect.DeepEqual(v, fpaiv.value) {
  3000  			return true
  3001  		}
  3002  	}
  3003  	return false
  3004  }
  3005  
  3006  type AlertInfoTimeSerie_FieldSubPathArrayItemValue struct {
  3007  	AlertInfoTimeSerie_FieldPath
  3008  	subPathItemValue gotenobject.FieldPathArrayItemValue
  3009  }
  3010  
  3011  // GetRawValue returns stored array item value
  3012  func (fpaivs *AlertInfoTimeSerie_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  3013  	return fpaivs.subPathItemValue.GetRawItemValue()
  3014  }
  3015  func (fpaivs *AlertInfoTimeSerie_FieldSubPathArrayItemValue) AsMetricPathItemValue() (common.Metric_FieldPathArrayItemValue, bool) {
  3016  	res, ok := fpaivs.subPathItemValue.(common.Metric_FieldPathArrayItemValue)
  3017  	return res, ok
  3018  }
  3019  func (fpaivs *AlertInfoTimeSerie_FieldSubPathArrayItemValue) AsMonitoredResourcePathItemValue() (common.MonitoredResource_FieldPathArrayItemValue, bool) {
  3020  	res, ok := fpaivs.subPathItemValue.(common.MonitoredResource_FieldPathArrayItemValue)
  3021  	return res, ok
  3022  }
  3023  
  3024  // Contains returns a boolean indicating if value that is being held is present in given 'TimeSerie'
  3025  func (fpaivs *AlertInfoTimeSerie_FieldSubPathArrayItemValue) ContainsValue(source *Alert_Info_TimeSerie) bool {
  3026  	switch fpaivs.Selector() {
  3027  	case AlertInfoTimeSerie_FieldPathSelectorMetric:
  3028  		return fpaivs.subPathItemValue.(common.Metric_FieldPathArrayItemValue).ContainsValue(source.GetMetric())
  3029  	case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  3030  		return fpaivs.subPathItemValue.(common.MonitoredResource_FieldPathArrayItemValue).ContainsValue(source.GetMonitoredResource())
  3031  	default:
  3032  		panic(fmt.Sprintf("Invalid selector for Alert_Info_TimeSerie: %d", fpaivs.Selector()))
  3033  	}
  3034  }
  3035  
  3036  // AlertInfoTimeSerie_FieldPathArrayOfValues allows storing slice of values for TimeSerie fields according to their type
  3037  type AlertInfoTimeSerie_FieldPathArrayOfValues interface {
  3038  	gotenobject.FieldPathArrayOfValues
  3039  	AlertInfoTimeSerie_FieldPath
  3040  }
  3041  
  3042  func ParseAlertInfoTimeSerie_FieldPathArrayOfValues(pathStr, valuesStr string) (AlertInfoTimeSerie_FieldPathArrayOfValues, error) {
  3043  	fp, err := ParseAlertInfoTimeSerie_FieldPath(pathStr)
  3044  	if err != nil {
  3045  		return nil, err
  3046  	}
  3047  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  3048  	if err != nil {
  3049  		return nil, status.Errorf(codes.InvalidArgument, "error parsing TimeSerie field path array of values from %s: %v", valuesStr, err)
  3050  	}
  3051  	return fpaov.(AlertInfoTimeSerie_FieldPathArrayOfValues), nil
  3052  }
  3053  
  3054  func MustParseAlertInfoTimeSerie_FieldPathArrayOfValues(pathStr, valuesStr string) AlertInfoTimeSerie_FieldPathArrayOfValues {
  3055  	fpaov, err := ParseAlertInfoTimeSerie_FieldPathArrayOfValues(pathStr, valuesStr)
  3056  	if err != nil {
  3057  		panic(err)
  3058  	}
  3059  	return fpaov
  3060  }
  3061  
  3062  type AlertInfoTimeSerie_FieldTerminalPathArrayOfValues struct {
  3063  	AlertInfoTimeSerie_FieldTerminalPath
  3064  	values interface{}
  3065  }
  3066  
  3067  var _ AlertInfoTimeSerie_FieldPathArrayOfValues = (*AlertInfoTimeSerie_FieldTerminalPathArrayOfValues)(nil)
  3068  
  3069  func (fpaov *AlertInfoTimeSerie_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  3070  	switch fpaov.selector {
  3071  	case AlertInfoTimeSerie_FieldPathSelectorKey:
  3072  		for _, v := range fpaov.values.([][]byte) {
  3073  			values = append(values, v)
  3074  		}
  3075  	case AlertInfoTimeSerie_FieldPathSelectorMetric:
  3076  		for _, v := range fpaov.values.([]*common.Metric) {
  3077  			values = append(values, v)
  3078  		}
  3079  	case AlertInfoTimeSerie_FieldPathSelectorMonitoredResource:
  3080  		for _, v := range fpaov.values.([]*common.MonitoredResource) {
  3081  			values = append(values, v)
  3082  		}
  3083  	case AlertInfoTimeSerie_FieldPathSelectorData:
  3084  		for _, v := range fpaov.values.([][]string) {
  3085  			values = append(values, v)
  3086  		}
  3087  	case AlertInfoTimeSerie_FieldPathSelectorBinData:
  3088  		for _, v := range fpaov.values.([][][]byte) {
  3089  			values = append(values, v)
  3090  		}
  3091  	}
  3092  	return
  3093  }
  3094  func (fpaov *AlertInfoTimeSerie_FieldTerminalPathArrayOfValues) AsKeyArrayOfValues() ([][]byte, bool) {
  3095  	res, ok := fpaov.values.([][]byte)
  3096  	return res, ok
  3097  }
  3098  func (fpaov *AlertInfoTimeSerie_FieldTerminalPathArrayOfValues) AsMetricArrayOfValues() ([]*common.Metric, bool) {
  3099  	res, ok := fpaov.values.([]*common.Metric)
  3100  	return res, ok
  3101  }
  3102  func (fpaov *AlertInfoTimeSerie_FieldTerminalPathArrayOfValues) AsMonitoredResourceArrayOfValues() ([]*common.MonitoredResource, bool) {
  3103  	res, ok := fpaov.values.([]*common.MonitoredResource)
  3104  	return res, ok
  3105  }
  3106  func (fpaov *AlertInfoTimeSerie_FieldTerminalPathArrayOfValues) AsDataArrayOfValues() ([][]string, bool) {
  3107  	res, ok := fpaov.values.([][]string)
  3108  	return res, ok
  3109  }
  3110  func (fpaov *AlertInfoTimeSerie_FieldTerminalPathArrayOfValues) AsBinDataArrayOfValues() ([][][]byte, bool) {
  3111  	res, ok := fpaov.values.([][][]byte)
  3112  	return res, ok
  3113  }
  3114  
  3115  type AlertInfoTimeSerie_FieldSubPathArrayOfValues struct {
  3116  	AlertInfoTimeSerie_FieldPath
  3117  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  3118  }
  3119  
  3120  var _ AlertInfoTimeSerie_FieldPathArrayOfValues = (*AlertInfoTimeSerie_FieldSubPathArrayOfValues)(nil)
  3121  
  3122  func (fpsaov *AlertInfoTimeSerie_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  3123  	return fpsaov.subPathArrayOfValues.GetRawValues()
  3124  }
  3125  func (fpsaov *AlertInfoTimeSerie_FieldSubPathArrayOfValues) AsMetricPathArrayOfValues() (common.Metric_FieldPathArrayOfValues, bool) {
  3126  	res, ok := fpsaov.subPathArrayOfValues.(common.Metric_FieldPathArrayOfValues)
  3127  	return res, ok
  3128  }
  3129  func (fpsaov *AlertInfoTimeSerie_FieldSubPathArrayOfValues) AsMonitoredResourcePathArrayOfValues() (common.MonitoredResource_FieldPathArrayOfValues, bool) {
  3130  	res, ok := fpsaov.subPathArrayOfValues.(common.MonitoredResource_FieldPathArrayOfValues)
  3131  	return res, ok
  3132  }
  3133  
  3134  // FieldPath provides implementation to handle
  3135  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  3136  type AlertInfoObservedValues_FieldPath interface {
  3137  	gotenobject.FieldPath
  3138  	Selector() AlertInfoObservedValues_FieldPathSelector
  3139  	Get(source *Alert_Info_ObservedValues) []interface{}
  3140  	GetSingle(source *Alert_Info_ObservedValues) (interface{}, bool)
  3141  	ClearValue(item *Alert_Info_ObservedValues)
  3142  
  3143  	// Those methods build corresponding AlertInfoObservedValues_FieldPathValue
  3144  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  3145  	WithIValue(value interface{}) AlertInfoObservedValues_FieldPathValue
  3146  	WithIArrayOfValues(values interface{}) AlertInfoObservedValues_FieldPathArrayOfValues
  3147  	WithIArrayItemValue(value interface{}) AlertInfoObservedValues_FieldPathArrayItemValue
  3148  }
  3149  
  3150  type AlertInfoObservedValues_FieldPathSelector int32
  3151  
  3152  const (
  3153  	AlertInfoObservedValues_FieldPathSelectorExampleValue AlertInfoObservedValues_FieldPathSelector = 0
  3154  	AlertInfoObservedValues_FieldPathSelectorPerMetric    AlertInfoObservedValues_FieldPathSelector = 1
  3155  )
  3156  
  3157  func (s AlertInfoObservedValues_FieldPathSelector) String() string {
  3158  	switch s {
  3159  	case AlertInfoObservedValues_FieldPathSelectorExampleValue:
  3160  		return "example_value"
  3161  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3162  		return "per_metric"
  3163  	default:
  3164  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", s))
  3165  	}
  3166  }
  3167  
  3168  func BuildAlertInfoObservedValues_FieldPath(fp gotenobject.RawFieldPath) (AlertInfoObservedValues_FieldPath, error) {
  3169  	if len(fp) == 0 {
  3170  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Alert_Info_ObservedValues")
  3171  	}
  3172  	if len(fp) == 1 {
  3173  		switch fp[0] {
  3174  		case "example_value", "exampleValue", "example-value":
  3175  			return &AlertInfoObservedValues_FieldTerminalPath{selector: AlertInfoObservedValues_FieldPathSelectorExampleValue}, nil
  3176  		case "per_metric", "perMetric", "per-metric":
  3177  			return &AlertInfoObservedValues_FieldTerminalPath{selector: AlertInfoObservedValues_FieldPathSelectorPerMetric}, nil
  3178  		}
  3179  	} else {
  3180  		switch fp[0] {
  3181  		case "per_metric", "perMetric", "per-metric":
  3182  			if len(fp) > 2 {
  3183  				return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object Alert_Info_ObservedValues)", fp)
  3184  			}
  3185  			return &AlertInfoObservedValues_FieldPathMap{selector: AlertInfoObservedValues_FieldPathSelectorPerMetric, key: fp[1]}, nil
  3186  		}
  3187  	}
  3188  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Alert_Info_ObservedValues", fp)
  3189  }
  3190  
  3191  func ParseAlertInfoObservedValues_FieldPath(rawField string) (AlertInfoObservedValues_FieldPath, error) {
  3192  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  3193  	if err != nil {
  3194  		return nil, err
  3195  	}
  3196  	return BuildAlertInfoObservedValues_FieldPath(fp)
  3197  }
  3198  
  3199  func MustParseAlertInfoObservedValues_FieldPath(rawField string) AlertInfoObservedValues_FieldPath {
  3200  	fp, err := ParseAlertInfoObservedValues_FieldPath(rawField)
  3201  	if err != nil {
  3202  		panic(err)
  3203  	}
  3204  	return fp
  3205  }
  3206  
  3207  type AlertInfoObservedValues_FieldTerminalPath struct {
  3208  	selector AlertInfoObservedValues_FieldPathSelector
  3209  }
  3210  
  3211  var _ AlertInfoObservedValues_FieldPath = (*AlertInfoObservedValues_FieldTerminalPath)(nil)
  3212  
  3213  func (fp *AlertInfoObservedValues_FieldTerminalPath) Selector() AlertInfoObservedValues_FieldPathSelector {
  3214  	return fp.selector
  3215  }
  3216  
  3217  // String returns path representation in proto convention
  3218  func (fp *AlertInfoObservedValues_FieldTerminalPath) String() string {
  3219  	return fp.selector.String()
  3220  }
  3221  
  3222  // JSONString returns path representation is JSON convention
  3223  func (fp *AlertInfoObservedValues_FieldTerminalPath) JSONString() string {
  3224  	return strcase.ToLowerCamel(fp.String())
  3225  }
  3226  
  3227  // Get returns all values pointed by specific field from source Alert_Info_ObservedValues
  3228  func (fp *AlertInfoObservedValues_FieldTerminalPath) Get(source *Alert_Info_ObservedValues) (values []interface{}) {
  3229  	if source != nil {
  3230  		switch fp.selector {
  3231  		case AlertInfoObservedValues_FieldPathSelectorExampleValue:
  3232  			values = append(values, source.ExampleValue)
  3233  		case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3234  			values = append(values, source.PerMetric)
  3235  		default:
  3236  			panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector))
  3237  		}
  3238  	}
  3239  	return
  3240  }
  3241  
  3242  func (fp *AlertInfoObservedValues_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  3243  	return fp.Get(source.(*Alert_Info_ObservedValues))
  3244  }
  3245  
  3246  // GetSingle returns value pointed by specific field of from source Alert_Info_ObservedValues
  3247  func (fp *AlertInfoObservedValues_FieldTerminalPath) GetSingle(source *Alert_Info_ObservedValues) (interface{}, bool) {
  3248  	switch fp.selector {
  3249  	case AlertInfoObservedValues_FieldPathSelectorExampleValue:
  3250  		return source.GetExampleValue(), source != nil
  3251  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3252  		res := source.GetPerMetric()
  3253  		return res, res != nil
  3254  	default:
  3255  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector))
  3256  	}
  3257  }
  3258  
  3259  func (fp *AlertInfoObservedValues_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  3260  	return fp.GetSingle(source.(*Alert_Info_ObservedValues))
  3261  }
  3262  
  3263  // GetDefault returns a default value of the field type
  3264  func (fp *AlertInfoObservedValues_FieldTerminalPath) GetDefault() interface{} {
  3265  	switch fp.selector {
  3266  	case AlertInfoObservedValues_FieldPathSelectorExampleValue:
  3267  		return float64(0)
  3268  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3269  		return (map[string]float64)(nil)
  3270  	default:
  3271  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector))
  3272  	}
  3273  }
  3274  
  3275  func (fp *AlertInfoObservedValues_FieldTerminalPath) ClearValue(item *Alert_Info_ObservedValues) {
  3276  	if item != nil {
  3277  		switch fp.selector {
  3278  		case AlertInfoObservedValues_FieldPathSelectorExampleValue:
  3279  			item.ExampleValue = float64(0)
  3280  		case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3281  			item.PerMetric = nil
  3282  		default:
  3283  			panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector))
  3284  		}
  3285  	}
  3286  }
  3287  
  3288  func (fp *AlertInfoObservedValues_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  3289  	fp.ClearValue(item.(*Alert_Info_ObservedValues))
  3290  }
  3291  
  3292  // IsLeaf - whether field path is holds simple value
  3293  func (fp *AlertInfoObservedValues_FieldTerminalPath) IsLeaf() bool {
  3294  	return fp.selector == AlertInfoObservedValues_FieldPathSelectorExampleValue ||
  3295  		fp.selector == AlertInfoObservedValues_FieldPathSelectorPerMetric
  3296  }
  3297  
  3298  func (fp *AlertInfoObservedValues_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  3299  	return []gotenobject.FieldPath{fp}
  3300  }
  3301  
  3302  func (fp *AlertInfoObservedValues_FieldTerminalPath) WithIValue(value interface{}) AlertInfoObservedValues_FieldPathValue {
  3303  	switch fp.selector {
  3304  	case AlertInfoObservedValues_FieldPathSelectorExampleValue:
  3305  		return &AlertInfoObservedValues_FieldTerminalPathValue{AlertInfoObservedValues_FieldTerminalPath: *fp, value: value.(float64)}
  3306  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3307  		return &AlertInfoObservedValues_FieldTerminalPathValue{AlertInfoObservedValues_FieldTerminalPath: *fp, value: value.(map[string]float64)}
  3308  	default:
  3309  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector))
  3310  	}
  3311  }
  3312  
  3313  func (fp *AlertInfoObservedValues_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  3314  	return fp.WithIValue(value)
  3315  }
  3316  
  3317  func (fp *AlertInfoObservedValues_FieldTerminalPath) WithIArrayOfValues(values interface{}) AlertInfoObservedValues_FieldPathArrayOfValues {
  3318  	fpaov := &AlertInfoObservedValues_FieldTerminalPathArrayOfValues{AlertInfoObservedValues_FieldTerminalPath: *fp}
  3319  	switch fp.selector {
  3320  	case AlertInfoObservedValues_FieldPathSelectorExampleValue:
  3321  		return &AlertInfoObservedValues_FieldTerminalPathArrayOfValues{AlertInfoObservedValues_FieldTerminalPath: *fp, values: values.([]float64)}
  3322  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3323  		return &AlertInfoObservedValues_FieldTerminalPathArrayOfValues{AlertInfoObservedValues_FieldTerminalPath: *fp, values: values.([]map[string]float64)}
  3324  	default:
  3325  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector))
  3326  	}
  3327  	return fpaov
  3328  }
  3329  
  3330  func (fp *AlertInfoObservedValues_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  3331  	return fp.WithIArrayOfValues(values)
  3332  }
  3333  
  3334  func (fp *AlertInfoObservedValues_FieldTerminalPath) WithIArrayItemValue(value interface{}) AlertInfoObservedValues_FieldPathArrayItemValue {
  3335  	switch fp.selector {
  3336  	default:
  3337  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fp.selector))
  3338  	}
  3339  }
  3340  
  3341  func (fp *AlertInfoObservedValues_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  3342  	return fp.WithIArrayItemValue(value)
  3343  }
  3344  
  3345  // FieldPath for map type with additional Key information
  3346  type AlertInfoObservedValues_FieldPathMap struct {
  3347  	key      string
  3348  	selector AlertInfoObservedValues_FieldPathSelector
  3349  }
  3350  
  3351  var _ AlertInfoObservedValues_FieldPath = (*AlertInfoObservedValues_FieldPathMap)(nil)
  3352  
  3353  func (fpm *AlertInfoObservedValues_FieldPathMap) Selector() AlertInfoObservedValues_FieldPathSelector {
  3354  	return fpm.selector
  3355  }
  3356  
  3357  func (fpm *AlertInfoObservedValues_FieldPathMap) Key() string {
  3358  	return fpm.key
  3359  }
  3360  
  3361  // String returns path representation in proto convention
  3362  func (fpm *AlertInfoObservedValues_FieldPathMap) String() string {
  3363  	return fpm.selector.String() + "." + fpm.key
  3364  }
  3365  
  3366  // JSONString returns path representation is JSON convention. Note that map keys are not transformed
  3367  func (fpm *AlertInfoObservedValues_FieldPathMap) JSONString() string {
  3368  	return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key
  3369  }
  3370  
  3371  // Get returns all values pointed by selected field map key from source Alert_Info_ObservedValues
  3372  func (fpm *AlertInfoObservedValues_FieldPathMap) Get(source *Alert_Info_ObservedValues) (values []interface{}) {
  3373  	switch fpm.selector {
  3374  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3375  		if value, ok := source.GetPerMetric()[fpm.key]; ok {
  3376  			values = append(values, value)
  3377  		}
  3378  	default:
  3379  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector))
  3380  	}
  3381  	return
  3382  }
  3383  
  3384  func (fpm *AlertInfoObservedValues_FieldPathMap) GetRaw(source proto.Message) []interface{} {
  3385  	return fpm.Get(source.(*Alert_Info_ObservedValues))
  3386  }
  3387  
  3388  // GetSingle returns value by selected field map key from source Alert_Info_ObservedValues
  3389  func (fpm *AlertInfoObservedValues_FieldPathMap) GetSingle(source *Alert_Info_ObservedValues) (interface{}, bool) {
  3390  	switch fpm.selector {
  3391  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3392  		res, ok := source.GetPerMetric()[fpm.key]
  3393  		return res, ok
  3394  	default:
  3395  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector))
  3396  	}
  3397  }
  3398  
  3399  func (fpm *AlertInfoObservedValues_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) {
  3400  	return fpm.GetSingle(source.(*Alert_Info_ObservedValues))
  3401  }
  3402  
  3403  // GetDefault returns a default value of the field type
  3404  func (fpm *AlertInfoObservedValues_FieldPathMap) GetDefault() interface{} {
  3405  	switch fpm.selector {
  3406  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3407  		var v float64
  3408  		return v
  3409  	default:
  3410  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector))
  3411  	}
  3412  }
  3413  
  3414  func (fpm *AlertInfoObservedValues_FieldPathMap) ClearValue(item *Alert_Info_ObservedValues) {
  3415  	if item != nil {
  3416  		switch fpm.selector {
  3417  		case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3418  			delete(item.PerMetric, fpm.key)
  3419  		default:
  3420  			panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector))
  3421  		}
  3422  	}
  3423  }
  3424  
  3425  func (fpm *AlertInfoObservedValues_FieldPathMap) ClearValueRaw(item proto.Message) {
  3426  	fpm.ClearValue(item.(*Alert_Info_ObservedValues))
  3427  }
  3428  
  3429  // IsLeaf - whether field path is holds simple value
  3430  func (fpm *AlertInfoObservedValues_FieldPathMap) IsLeaf() bool {
  3431  	switch fpm.selector {
  3432  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3433  		return true
  3434  	default:
  3435  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector))
  3436  	}
  3437  }
  3438  
  3439  func (fpm *AlertInfoObservedValues_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  3440  	return []gotenobject.FieldPath{fpm}
  3441  }
  3442  
  3443  func (fpm *AlertInfoObservedValues_FieldPathMap) WithIValue(value interface{}) AlertInfoObservedValues_FieldPathValue {
  3444  	switch fpm.selector {
  3445  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3446  		return &AlertInfoObservedValues_FieldPathMapValue{AlertInfoObservedValues_FieldPathMap: *fpm, value: value.(float64)}
  3447  	default:
  3448  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector))
  3449  	}
  3450  }
  3451  
  3452  func (fpm *AlertInfoObservedValues_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  3453  	return fpm.WithIValue(value)
  3454  }
  3455  
  3456  func (fpm *AlertInfoObservedValues_FieldPathMap) WithIArrayOfValues(values interface{}) AlertInfoObservedValues_FieldPathArrayOfValues {
  3457  	switch fpm.selector {
  3458  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3459  		return &AlertInfoObservedValues_FieldPathMapArrayOfValues{AlertInfoObservedValues_FieldPathMap: *fpm, values: values.([]float64)}
  3460  	default:
  3461  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpm.selector))
  3462  	}
  3463  }
  3464  
  3465  func (fpm *AlertInfoObservedValues_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  3466  	return fpm.WithIArrayOfValues(values)
  3467  }
  3468  
  3469  func (fpm *AlertInfoObservedValues_FieldPathMap) WithIArrayItemValue(value interface{}) AlertInfoObservedValues_FieldPathArrayItemValue {
  3470  	panic("Cannot create array item value from map fieldpath")
  3471  }
  3472  
  3473  func (fpm *AlertInfoObservedValues_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  3474  	return fpm.WithIArrayItemValue(value)
  3475  }
  3476  
  3477  // AlertInfoObservedValues_FieldPathValue allows storing values for ObservedValues fields according to their type
  3478  type AlertInfoObservedValues_FieldPathValue interface {
  3479  	AlertInfoObservedValues_FieldPath
  3480  	gotenobject.FieldPathValue
  3481  	SetTo(target **Alert_Info_ObservedValues)
  3482  	CompareWith(*Alert_Info_ObservedValues) (cmp int, comparable bool)
  3483  }
  3484  
  3485  func ParseAlertInfoObservedValues_FieldPathValue(pathStr, valueStr string) (AlertInfoObservedValues_FieldPathValue, error) {
  3486  	fp, err := ParseAlertInfoObservedValues_FieldPath(pathStr)
  3487  	if err != nil {
  3488  		return nil, err
  3489  	}
  3490  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  3491  	if err != nil {
  3492  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ObservedValues field path value from %s: %v", valueStr, err)
  3493  	}
  3494  	return fpv.(AlertInfoObservedValues_FieldPathValue), nil
  3495  }
  3496  
  3497  func MustParseAlertInfoObservedValues_FieldPathValue(pathStr, valueStr string) AlertInfoObservedValues_FieldPathValue {
  3498  	fpv, err := ParseAlertInfoObservedValues_FieldPathValue(pathStr, valueStr)
  3499  	if err != nil {
  3500  		panic(err)
  3501  	}
  3502  	return fpv
  3503  }
  3504  
  3505  type AlertInfoObservedValues_FieldTerminalPathValue struct {
  3506  	AlertInfoObservedValues_FieldTerminalPath
  3507  	value interface{}
  3508  }
  3509  
  3510  var _ AlertInfoObservedValues_FieldPathValue = (*AlertInfoObservedValues_FieldTerminalPathValue)(nil)
  3511  
  3512  // GetRawValue returns raw value stored under selected path for 'ObservedValues' as interface{}
  3513  func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) GetRawValue() interface{} {
  3514  	return fpv.value
  3515  }
  3516  func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) AsExampleValueValue() (float64, bool) {
  3517  	res, ok := fpv.value.(float64)
  3518  	return res, ok
  3519  }
  3520  func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) AsPerMetricValue() (map[string]float64, bool) {
  3521  	res, ok := fpv.value.(map[string]float64)
  3522  	return res, ok
  3523  }
  3524  
  3525  // SetTo stores value for selected field for object ObservedValues
  3526  func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) SetTo(target **Alert_Info_ObservedValues) {
  3527  	if *target == nil {
  3528  		*target = new(Alert_Info_ObservedValues)
  3529  	}
  3530  	switch fpv.selector {
  3531  	case AlertInfoObservedValues_FieldPathSelectorExampleValue:
  3532  		(*target).ExampleValue = fpv.value.(float64)
  3533  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3534  		(*target).PerMetric = fpv.value.(map[string]float64)
  3535  	default:
  3536  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpv.selector))
  3537  	}
  3538  }
  3539  
  3540  func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  3541  	typedObject := target.(*Alert_Info_ObservedValues)
  3542  	fpv.SetTo(&typedObject)
  3543  }
  3544  
  3545  // CompareWith compares value in the 'AlertInfoObservedValues_FieldTerminalPathValue' with the value under path in 'Alert_Info_ObservedValues'.
  3546  func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) CompareWith(source *Alert_Info_ObservedValues) (int, bool) {
  3547  	switch fpv.selector {
  3548  	case AlertInfoObservedValues_FieldPathSelectorExampleValue:
  3549  		leftValue := fpv.value.(float64)
  3550  		rightValue := source.GetExampleValue()
  3551  		if (leftValue) == (rightValue) {
  3552  			return 0, true
  3553  		} else if (leftValue) < (rightValue) {
  3554  			return -1, true
  3555  		} else {
  3556  			return 1, true
  3557  		}
  3558  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3559  		return 0, false
  3560  	default:
  3561  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpv.selector))
  3562  	}
  3563  }
  3564  
  3565  func (fpv *AlertInfoObservedValues_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  3566  	return fpv.CompareWith(source.(*Alert_Info_ObservedValues))
  3567  }
  3568  
  3569  type AlertInfoObservedValues_FieldPathMapValue struct {
  3570  	AlertInfoObservedValues_FieldPathMap
  3571  	value interface{}
  3572  }
  3573  
  3574  var _ AlertInfoObservedValues_FieldPathValue = (*AlertInfoObservedValues_FieldPathMapValue)(nil)
  3575  
  3576  // GetValue returns value stored under selected field in ObservedValues as interface{}
  3577  func (fpmv *AlertInfoObservedValues_FieldPathMapValue) GetRawValue() interface{} {
  3578  	return fpmv.value
  3579  }
  3580  func (fpmv *AlertInfoObservedValues_FieldPathMapValue) AsPerMetricElementValue() (float64, bool) {
  3581  	res, ok := fpmv.value.(float64)
  3582  	return res, ok
  3583  }
  3584  
  3585  // SetTo stores value for selected field in ObservedValues
  3586  func (fpmv *AlertInfoObservedValues_FieldPathMapValue) SetTo(target **Alert_Info_ObservedValues) {
  3587  	if *target == nil {
  3588  		*target = new(Alert_Info_ObservedValues)
  3589  	}
  3590  	switch fpmv.selector {
  3591  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3592  		if (*target).PerMetric == nil {
  3593  			(*target).PerMetric = make(map[string]float64)
  3594  		}
  3595  		(*target).PerMetric[fpmv.key] = fpmv.value.(float64)
  3596  	default:
  3597  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpmv.selector))
  3598  	}
  3599  }
  3600  
  3601  func (fpmv *AlertInfoObservedValues_FieldPathMapValue) SetToRaw(target proto.Message) {
  3602  	typedObject := target.(*Alert_Info_ObservedValues)
  3603  	fpmv.SetTo(&typedObject)
  3604  }
  3605  
  3606  // CompareWith compares value in the 'AlertInfoObservedValues_FieldPathMapValue' with the value under path in 'Alert_Info_ObservedValues'.
  3607  func (fpmv *AlertInfoObservedValues_FieldPathMapValue) CompareWith(source *Alert_Info_ObservedValues) (int, bool) {
  3608  	switch fpmv.selector {
  3609  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3610  		leftValue := fpmv.value.(float64)
  3611  		rightValue := source.GetPerMetric()[fpmv.key]
  3612  		if (leftValue) == (rightValue) {
  3613  			return 0, true
  3614  		} else if (leftValue) < (rightValue) {
  3615  			return -1, true
  3616  		} else {
  3617  			return 1, true
  3618  		}
  3619  	default:
  3620  		panic(fmt.Sprintf("Invalid selector for Alert_Info_ObservedValues: %d", fpmv.selector))
  3621  	}
  3622  }
  3623  
  3624  func (fpmv *AlertInfoObservedValues_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) {
  3625  	return fpmv.CompareWith(source.(*Alert_Info_ObservedValues))
  3626  }
  3627  
  3628  // AlertInfoObservedValues_FieldPathArrayItemValue allows storing single item in Path-specific values for ObservedValues according to their type
  3629  // Present only for array (repeated) types.
  3630  type AlertInfoObservedValues_FieldPathArrayItemValue interface {
  3631  	gotenobject.FieldPathArrayItemValue
  3632  	AlertInfoObservedValues_FieldPath
  3633  	ContainsValue(*Alert_Info_ObservedValues) bool
  3634  }
  3635  
  3636  // ParseAlertInfoObservedValues_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  3637  func ParseAlertInfoObservedValues_FieldPathArrayItemValue(pathStr, valueStr string) (AlertInfoObservedValues_FieldPathArrayItemValue, error) {
  3638  	fp, err := ParseAlertInfoObservedValues_FieldPath(pathStr)
  3639  	if err != nil {
  3640  		return nil, err
  3641  	}
  3642  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  3643  	if err != nil {
  3644  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ObservedValues field path array item value from %s: %v", valueStr, err)
  3645  	}
  3646  	return fpaiv.(AlertInfoObservedValues_FieldPathArrayItemValue), nil
  3647  }
  3648  
  3649  func MustParseAlertInfoObservedValues_FieldPathArrayItemValue(pathStr, valueStr string) AlertInfoObservedValues_FieldPathArrayItemValue {
  3650  	fpaiv, err := ParseAlertInfoObservedValues_FieldPathArrayItemValue(pathStr, valueStr)
  3651  	if err != nil {
  3652  		panic(err)
  3653  	}
  3654  	return fpaiv
  3655  }
  3656  
  3657  type AlertInfoObservedValues_FieldTerminalPathArrayItemValue struct {
  3658  	AlertInfoObservedValues_FieldTerminalPath
  3659  	value interface{}
  3660  }
  3661  
  3662  var _ AlertInfoObservedValues_FieldPathArrayItemValue = (*AlertInfoObservedValues_FieldTerminalPathArrayItemValue)(nil)
  3663  
  3664  // GetRawValue returns stored element value for array in object Alert_Info_ObservedValues as interface{}
  3665  func (fpaiv *AlertInfoObservedValues_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  3666  	return fpaiv.value
  3667  }
  3668  
  3669  func (fpaiv *AlertInfoObservedValues_FieldTerminalPathArrayItemValue) GetSingle(source *Alert_Info_ObservedValues) (interface{}, bool) {
  3670  	return nil, false
  3671  }
  3672  
  3673  func (fpaiv *AlertInfoObservedValues_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  3674  	return fpaiv.GetSingle(source.(*Alert_Info_ObservedValues))
  3675  }
  3676  
  3677  // Contains returns a boolean indicating if value that is being held is present in given 'ObservedValues'
  3678  func (fpaiv *AlertInfoObservedValues_FieldTerminalPathArrayItemValue) ContainsValue(source *Alert_Info_ObservedValues) bool {
  3679  	slice := fpaiv.AlertInfoObservedValues_FieldTerminalPath.Get(source)
  3680  	for _, v := range slice {
  3681  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  3682  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  3683  				return true
  3684  			}
  3685  		} else if reflect.DeepEqual(v, fpaiv.value) {
  3686  			return true
  3687  		}
  3688  	}
  3689  	return false
  3690  }
  3691  
  3692  // AlertInfoObservedValues_FieldPathArrayOfValues allows storing slice of values for ObservedValues fields according to their type
  3693  type AlertInfoObservedValues_FieldPathArrayOfValues interface {
  3694  	gotenobject.FieldPathArrayOfValues
  3695  	AlertInfoObservedValues_FieldPath
  3696  }
  3697  
  3698  func ParseAlertInfoObservedValues_FieldPathArrayOfValues(pathStr, valuesStr string) (AlertInfoObservedValues_FieldPathArrayOfValues, error) {
  3699  	fp, err := ParseAlertInfoObservedValues_FieldPath(pathStr)
  3700  	if err != nil {
  3701  		return nil, err
  3702  	}
  3703  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  3704  	if err != nil {
  3705  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ObservedValues field path array of values from %s: %v", valuesStr, err)
  3706  	}
  3707  	return fpaov.(AlertInfoObservedValues_FieldPathArrayOfValues), nil
  3708  }
  3709  
  3710  func MustParseAlertInfoObservedValues_FieldPathArrayOfValues(pathStr, valuesStr string) AlertInfoObservedValues_FieldPathArrayOfValues {
  3711  	fpaov, err := ParseAlertInfoObservedValues_FieldPathArrayOfValues(pathStr, valuesStr)
  3712  	if err != nil {
  3713  		panic(err)
  3714  	}
  3715  	return fpaov
  3716  }
  3717  
  3718  type AlertInfoObservedValues_FieldTerminalPathArrayOfValues struct {
  3719  	AlertInfoObservedValues_FieldTerminalPath
  3720  	values interface{}
  3721  }
  3722  
  3723  var _ AlertInfoObservedValues_FieldPathArrayOfValues = (*AlertInfoObservedValues_FieldTerminalPathArrayOfValues)(nil)
  3724  
  3725  func (fpaov *AlertInfoObservedValues_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  3726  	switch fpaov.selector {
  3727  	case AlertInfoObservedValues_FieldPathSelectorExampleValue:
  3728  		for _, v := range fpaov.values.([]float64) {
  3729  			values = append(values, v)
  3730  		}
  3731  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3732  		for _, v := range fpaov.values.([]map[string]float64) {
  3733  			values = append(values, v)
  3734  		}
  3735  	}
  3736  	return
  3737  }
  3738  func (fpaov *AlertInfoObservedValues_FieldTerminalPathArrayOfValues) AsExampleValueArrayOfValues() ([]float64, bool) {
  3739  	res, ok := fpaov.values.([]float64)
  3740  	return res, ok
  3741  }
  3742  func (fpaov *AlertInfoObservedValues_FieldTerminalPathArrayOfValues) AsPerMetricArrayOfValues() ([]map[string]float64, bool) {
  3743  	res, ok := fpaov.values.([]map[string]float64)
  3744  	return res, ok
  3745  }
  3746  
  3747  type AlertInfoObservedValues_FieldPathMapArrayOfValues struct {
  3748  	AlertInfoObservedValues_FieldPathMap
  3749  	values interface{}
  3750  }
  3751  
  3752  var _ AlertInfoObservedValues_FieldPathArrayOfValues = (*AlertInfoObservedValues_FieldPathMapArrayOfValues)(nil)
  3753  
  3754  func (fpmaov *AlertInfoObservedValues_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) {
  3755  	switch fpmaov.selector {
  3756  	case AlertInfoObservedValues_FieldPathSelectorPerMetric:
  3757  		for _, v := range fpmaov.values.([]float64) {
  3758  			values = append(values, v)
  3759  		}
  3760  	}
  3761  	return
  3762  }
  3763  func (fpmaov *AlertInfoObservedValues_FieldPathMapArrayOfValues) AsPerMetricArrayOfElementValues() ([]float64, bool) {
  3764  	res, ok := fpmaov.values.([]float64)
  3765  	return res, ok
  3766  }