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

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