github.com/cloudwan/edgelq-sdk@v1.15.4/cellular-api/resources/v1/contract/contract.pb.fieldpath.go (about)

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