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

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