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

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