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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/limits/proto/v1alpha2/accepted_plan.proto
     3  // DO NOT EDIT!!!
     4  
     5  package accepted_plan
     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  	common "github.com/cloudwan/edgelq-sdk/limits/resources/v1alpha2/common"
    29  	plan "github.com/cloudwan/edgelq-sdk/limits/resources/v1alpha2/plan"
    30  	meta_service "github.com/cloudwan/edgelq-sdk/meta/resources/v1alpha2/service"
    31  	meta "github.com/cloudwan/goten-sdk/types/meta"
    32  )
    33  
    34  // ensure the imports are used
    35  var (
    36  	_ = new(json.Marshaler)
    37  	_ = new(fmt.Stringer)
    38  	_ = reflect.DeepEqual
    39  	_ = strings.Builder{}
    40  	_ = time.Second
    41  
    42  	_ = strcase.ToLowerCamel
    43  	_ = codes.NotFound
    44  	_ = status.Status{}
    45  	_ = protojson.UnmarshalOptions{}
    46  	_ = new(proto.Message)
    47  	_ = protoregistry.GlobalTypes
    48  
    49  	_ = new(gotenobject.FieldPath)
    50  )
    51  
    52  // make sure we're using proto imports
    53  var (
    54  	_ = &iam_organization.Organization{}
    55  	_ = &iam_project.Project{}
    56  	_ = &common.Allowance{}
    57  	_ = &plan.Plan{}
    58  	_ = &meta_service.Service{}
    59  	_ = &meta.Meta{}
    60  )
    61  
    62  // FieldPath provides implementation to handle
    63  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    64  type AcceptedPlan_FieldPath interface {
    65  	gotenobject.FieldPath
    66  	Selector() AcceptedPlan_FieldPathSelector
    67  	Get(source *AcceptedPlan) []interface{}
    68  	GetSingle(source *AcceptedPlan) (interface{}, bool)
    69  	ClearValue(item *AcceptedPlan)
    70  
    71  	// Those methods build corresponding AcceptedPlan_FieldPathValue
    72  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    73  	WithIValue(value interface{}) AcceptedPlan_FieldPathValue
    74  	WithIArrayOfValues(values interface{}) AcceptedPlan_FieldPathArrayOfValues
    75  	WithIArrayItemValue(value interface{}) AcceptedPlan_FieldPathArrayItemValue
    76  }
    77  
    78  type AcceptedPlan_FieldPathSelector int32
    79  
    80  const (
    81  	AcceptedPlan_FieldPathSelectorName                  AcceptedPlan_FieldPathSelector = 0
    82  	AcceptedPlan_FieldPathSelectorPlan                  AcceptedPlan_FieldPathSelector = 1
    83  	AcceptedPlan_FieldPathSelectorService               AcceptedPlan_FieldPathSelector = 2
    84  	AcceptedPlan_FieldPathSelectorExtensions            AcceptedPlan_FieldPathSelector = 3
    85  	AcceptedPlan_FieldPathSelectorRegionalDistributions AcceptedPlan_FieldPathSelector = 4
    86  	AcceptedPlan_FieldPathSelectorAssignee              AcceptedPlan_FieldPathSelector = 5
    87  	AcceptedPlan_FieldPathSelectorMetadata              AcceptedPlan_FieldPathSelector = 6
    88  )
    89  
    90  func (s AcceptedPlan_FieldPathSelector) String() string {
    91  	switch s {
    92  	case AcceptedPlan_FieldPathSelectorName:
    93  		return "name"
    94  	case AcceptedPlan_FieldPathSelectorPlan:
    95  		return "plan"
    96  	case AcceptedPlan_FieldPathSelectorService:
    97  		return "service"
    98  	case AcceptedPlan_FieldPathSelectorExtensions:
    99  		return "extensions"
   100  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   101  		return "regional_distributions"
   102  	case AcceptedPlan_FieldPathSelectorAssignee:
   103  		return "assignee"
   104  	case AcceptedPlan_FieldPathSelectorMetadata:
   105  		return "metadata"
   106  	default:
   107  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", s))
   108  	}
   109  }
   110  
   111  func BuildAcceptedPlan_FieldPath(fp gotenobject.RawFieldPath) (AcceptedPlan_FieldPath, error) {
   112  	if len(fp) == 0 {
   113  		return nil, status.Error(codes.InvalidArgument, "empty field path for object AcceptedPlan")
   114  	}
   115  	if len(fp) == 1 {
   116  		switch fp[0] {
   117  		case "name":
   118  			return &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorName}, nil
   119  		case "plan":
   120  			return &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorPlan}, nil
   121  		case "service":
   122  			return &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorService}, nil
   123  		case "extensions":
   124  			return &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorExtensions}, nil
   125  		case "regional_distributions", "regionalDistributions", "regional-distributions":
   126  			return &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorRegionalDistributions}, nil
   127  		case "assignee":
   128  			return &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorAssignee}, nil
   129  		case "metadata":
   130  			return &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorMetadata}, nil
   131  		}
   132  	} else {
   133  		switch fp[0] {
   134  		case "extensions":
   135  			if subpath, err := common.BuildAllowance_FieldPath(fp[1:]); err != nil {
   136  				return nil, err
   137  			} else {
   138  				return &AcceptedPlan_FieldSubPath{selector: AcceptedPlan_FieldPathSelectorExtensions, subPath: subpath}, nil
   139  			}
   140  		case "regional_distributions", "regionalDistributions", "regional-distributions":
   141  			if subpath, err := common.BuildRegionalDistribution_FieldPath(fp[1:]); err != nil {
   142  				return nil, err
   143  			} else {
   144  				return &AcceptedPlan_FieldSubPath{selector: AcceptedPlan_FieldPathSelectorRegionalDistributions, subPath: subpath}, nil
   145  			}
   146  		case "assignee":
   147  			if subpath, err := BuildAcceptedPlanAssignee_FieldPath(fp[1:]); err != nil {
   148  				return nil, err
   149  			} else {
   150  				return &AcceptedPlan_FieldSubPath{selector: AcceptedPlan_FieldPathSelectorAssignee, subPath: subpath}, nil
   151  			}
   152  		case "metadata":
   153  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   154  				return nil, err
   155  			} else {
   156  				return &AcceptedPlan_FieldSubPath{selector: AcceptedPlan_FieldPathSelectorMetadata, subPath: subpath}, nil
   157  			}
   158  		}
   159  	}
   160  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object AcceptedPlan", fp)
   161  }
   162  
   163  func ParseAcceptedPlan_FieldPath(rawField string) (AcceptedPlan_FieldPath, error) {
   164  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   165  	if err != nil {
   166  		return nil, err
   167  	}
   168  	return BuildAcceptedPlan_FieldPath(fp)
   169  }
   170  
   171  func MustParseAcceptedPlan_FieldPath(rawField string) AcceptedPlan_FieldPath {
   172  	fp, err := ParseAcceptedPlan_FieldPath(rawField)
   173  	if err != nil {
   174  		panic(err)
   175  	}
   176  	return fp
   177  }
   178  
   179  type AcceptedPlan_FieldTerminalPath struct {
   180  	selector AcceptedPlan_FieldPathSelector
   181  }
   182  
   183  var _ AcceptedPlan_FieldPath = (*AcceptedPlan_FieldTerminalPath)(nil)
   184  
   185  func (fp *AcceptedPlan_FieldTerminalPath) Selector() AcceptedPlan_FieldPathSelector {
   186  	return fp.selector
   187  }
   188  
   189  // String returns path representation in proto convention
   190  func (fp *AcceptedPlan_FieldTerminalPath) String() string {
   191  	return fp.selector.String()
   192  }
   193  
   194  // JSONString returns path representation is JSON convention
   195  func (fp *AcceptedPlan_FieldTerminalPath) JSONString() string {
   196  	return strcase.ToLowerCamel(fp.String())
   197  }
   198  
   199  // Get returns all values pointed by specific field from source AcceptedPlan
   200  func (fp *AcceptedPlan_FieldTerminalPath) Get(source *AcceptedPlan) (values []interface{}) {
   201  	if source != nil {
   202  		switch fp.selector {
   203  		case AcceptedPlan_FieldPathSelectorName:
   204  			if source.Name != nil {
   205  				values = append(values, source.Name)
   206  			}
   207  		case AcceptedPlan_FieldPathSelectorPlan:
   208  			if source.Plan != nil {
   209  				values = append(values, source.Plan)
   210  			}
   211  		case AcceptedPlan_FieldPathSelectorService:
   212  			if source.Service != nil {
   213  				values = append(values, source.Service)
   214  			}
   215  		case AcceptedPlan_FieldPathSelectorExtensions:
   216  			for _, value := range source.GetExtensions() {
   217  				values = append(values, value)
   218  			}
   219  		case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   220  			for _, value := range source.GetRegionalDistributions() {
   221  				values = append(values, value)
   222  			}
   223  		case AcceptedPlan_FieldPathSelectorAssignee:
   224  			if source.Assignee != nil {
   225  				values = append(values, source.Assignee)
   226  			}
   227  		case AcceptedPlan_FieldPathSelectorMetadata:
   228  			if source.Metadata != nil {
   229  				values = append(values, source.Metadata)
   230  			}
   231  		default:
   232  			panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fp.selector))
   233  		}
   234  	}
   235  	return
   236  }
   237  
   238  func (fp *AcceptedPlan_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   239  	return fp.Get(source.(*AcceptedPlan))
   240  }
   241  
   242  // GetSingle returns value pointed by specific field of from source AcceptedPlan
   243  func (fp *AcceptedPlan_FieldTerminalPath) GetSingle(source *AcceptedPlan) (interface{}, bool) {
   244  	switch fp.selector {
   245  	case AcceptedPlan_FieldPathSelectorName:
   246  		res := source.GetName()
   247  		return res, res != nil
   248  	case AcceptedPlan_FieldPathSelectorPlan:
   249  		res := source.GetPlan()
   250  		return res, res != nil
   251  	case AcceptedPlan_FieldPathSelectorService:
   252  		res := source.GetService()
   253  		return res, res != nil
   254  	case AcceptedPlan_FieldPathSelectorExtensions:
   255  		res := source.GetExtensions()
   256  		return res, res != nil
   257  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   258  		res := source.GetRegionalDistributions()
   259  		return res, res != nil
   260  	case AcceptedPlan_FieldPathSelectorAssignee:
   261  		res := source.GetAssignee()
   262  		return res, res != nil
   263  	case AcceptedPlan_FieldPathSelectorMetadata:
   264  		res := source.GetMetadata()
   265  		return res, res != nil
   266  	default:
   267  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fp.selector))
   268  	}
   269  }
   270  
   271  func (fp *AcceptedPlan_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   272  	return fp.GetSingle(source.(*AcceptedPlan))
   273  }
   274  
   275  // GetDefault returns a default value of the field type
   276  func (fp *AcceptedPlan_FieldTerminalPath) GetDefault() interface{} {
   277  	switch fp.selector {
   278  	case AcceptedPlan_FieldPathSelectorName:
   279  		return (*Name)(nil)
   280  	case AcceptedPlan_FieldPathSelectorPlan:
   281  		return (*plan.Reference)(nil)
   282  	case AcceptedPlan_FieldPathSelectorService:
   283  		return (*meta_service.Reference)(nil)
   284  	case AcceptedPlan_FieldPathSelectorExtensions:
   285  		return ([]*common.Allowance)(nil)
   286  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   287  		return ([]*common.RegionalDistribution)(nil)
   288  	case AcceptedPlan_FieldPathSelectorAssignee:
   289  		return (*AcceptedPlan_Assignee)(nil)
   290  	case AcceptedPlan_FieldPathSelectorMetadata:
   291  		return (*meta.Meta)(nil)
   292  	default:
   293  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fp.selector))
   294  	}
   295  }
   296  
   297  func (fp *AcceptedPlan_FieldTerminalPath) ClearValue(item *AcceptedPlan) {
   298  	if item != nil {
   299  		switch fp.selector {
   300  		case AcceptedPlan_FieldPathSelectorName:
   301  			item.Name = nil
   302  		case AcceptedPlan_FieldPathSelectorPlan:
   303  			item.Plan = nil
   304  		case AcceptedPlan_FieldPathSelectorService:
   305  			item.Service = nil
   306  		case AcceptedPlan_FieldPathSelectorExtensions:
   307  			item.Extensions = nil
   308  		case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   309  			item.RegionalDistributions = nil
   310  		case AcceptedPlan_FieldPathSelectorAssignee:
   311  			item.Assignee = nil
   312  		case AcceptedPlan_FieldPathSelectorMetadata:
   313  			item.Metadata = nil
   314  		default:
   315  			panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fp.selector))
   316  		}
   317  	}
   318  }
   319  
   320  func (fp *AcceptedPlan_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   321  	fp.ClearValue(item.(*AcceptedPlan))
   322  }
   323  
   324  // IsLeaf - whether field path is holds simple value
   325  func (fp *AcceptedPlan_FieldTerminalPath) IsLeaf() bool {
   326  	return fp.selector == AcceptedPlan_FieldPathSelectorName ||
   327  		fp.selector == AcceptedPlan_FieldPathSelectorPlan ||
   328  		fp.selector == AcceptedPlan_FieldPathSelectorService
   329  }
   330  
   331  func (fp *AcceptedPlan_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   332  	return []gotenobject.FieldPath{fp}
   333  }
   334  
   335  func (fp *AcceptedPlan_FieldTerminalPath) WithIValue(value interface{}) AcceptedPlan_FieldPathValue {
   336  	switch fp.selector {
   337  	case AcceptedPlan_FieldPathSelectorName:
   338  		return &AcceptedPlan_FieldTerminalPathValue{AcceptedPlan_FieldTerminalPath: *fp, value: value.(*Name)}
   339  	case AcceptedPlan_FieldPathSelectorPlan:
   340  		return &AcceptedPlan_FieldTerminalPathValue{AcceptedPlan_FieldTerminalPath: *fp, value: value.(*plan.Reference)}
   341  	case AcceptedPlan_FieldPathSelectorService:
   342  		return &AcceptedPlan_FieldTerminalPathValue{AcceptedPlan_FieldTerminalPath: *fp, value: value.(*meta_service.Reference)}
   343  	case AcceptedPlan_FieldPathSelectorExtensions:
   344  		return &AcceptedPlan_FieldTerminalPathValue{AcceptedPlan_FieldTerminalPath: *fp, value: value.([]*common.Allowance)}
   345  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   346  		return &AcceptedPlan_FieldTerminalPathValue{AcceptedPlan_FieldTerminalPath: *fp, value: value.([]*common.RegionalDistribution)}
   347  	case AcceptedPlan_FieldPathSelectorAssignee:
   348  		return &AcceptedPlan_FieldTerminalPathValue{AcceptedPlan_FieldTerminalPath: *fp, value: value.(*AcceptedPlan_Assignee)}
   349  	case AcceptedPlan_FieldPathSelectorMetadata:
   350  		return &AcceptedPlan_FieldTerminalPathValue{AcceptedPlan_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   351  	default:
   352  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fp.selector))
   353  	}
   354  }
   355  
   356  func (fp *AcceptedPlan_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   357  	return fp.WithIValue(value)
   358  }
   359  
   360  func (fp *AcceptedPlan_FieldTerminalPath) WithIArrayOfValues(values interface{}) AcceptedPlan_FieldPathArrayOfValues {
   361  	fpaov := &AcceptedPlan_FieldTerminalPathArrayOfValues{AcceptedPlan_FieldTerminalPath: *fp}
   362  	switch fp.selector {
   363  	case AcceptedPlan_FieldPathSelectorName:
   364  		return &AcceptedPlan_FieldTerminalPathArrayOfValues{AcceptedPlan_FieldTerminalPath: *fp, values: values.([]*Name)}
   365  	case AcceptedPlan_FieldPathSelectorPlan:
   366  		return &AcceptedPlan_FieldTerminalPathArrayOfValues{AcceptedPlan_FieldTerminalPath: *fp, values: values.([]*plan.Reference)}
   367  	case AcceptedPlan_FieldPathSelectorService:
   368  		return &AcceptedPlan_FieldTerminalPathArrayOfValues{AcceptedPlan_FieldTerminalPath: *fp, values: values.([]*meta_service.Reference)}
   369  	case AcceptedPlan_FieldPathSelectorExtensions:
   370  		return &AcceptedPlan_FieldTerminalPathArrayOfValues{AcceptedPlan_FieldTerminalPath: *fp, values: values.([][]*common.Allowance)}
   371  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   372  		return &AcceptedPlan_FieldTerminalPathArrayOfValues{AcceptedPlan_FieldTerminalPath: *fp, values: values.([][]*common.RegionalDistribution)}
   373  	case AcceptedPlan_FieldPathSelectorAssignee:
   374  		return &AcceptedPlan_FieldTerminalPathArrayOfValues{AcceptedPlan_FieldTerminalPath: *fp, values: values.([]*AcceptedPlan_Assignee)}
   375  	case AcceptedPlan_FieldPathSelectorMetadata:
   376  		return &AcceptedPlan_FieldTerminalPathArrayOfValues{AcceptedPlan_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   377  	default:
   378  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fp.selector))
   379  	}
   380  	return fpaov
   381  }
   382  
   383  func (fp *AcceptedPlan_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   384  	return fp.WithIArrayOfValues(values)
   385  }
   386  
   387  func (fp *AcceptedPlan_FieldTerminalPath) WithIArrayItemValue(value interface{}) AcceptedPlan_FieldPathArrayItemValue {
   388  	switch fp.selector {
   389  	case AcceptedPlan_FieldPathSelectorExtensions:
   390  		return &AcceptedPlan_FieldTerminalPathArrayItemValue{AcceptedPlan_FieldTerminalPath: *fp, value: value.(*common.Allowance)}
   391  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   392  		return &AcceptedPlan_FieldTerminalPathArrayItemValue{AcceptedPlan_FieldTerminalPath: *fp, value: value.(*common.RegionalDistribution)}
   393  	default:
   394  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fp.selector))
   395  	}
   396  }
   397  
   398  func (fp *AcceptedPlan_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   399  	return fp.WithIArrayItemValue(value)
   400  }
   401  
   402  type AcceptedPlan_FieldSubPath struct {
   403  	selector AcceptedPlan_FieldPathSelector
   404  	subPath  gotenobject.FieldPath
   405  }
   406  
   407  var _ AcceptedPlan_FieldPath = (*AcceptedPlan_FieldSubPath)(nil)
   408  
   409  func (fps *AcceptedPlan_FieldSubPath) Selector() AcceptedPlan_FieldPathSelector {
   410  	return fps.selector
   411  }
   412  func (fps *AcceptedPlan_FieldSubPath) AsExtensionsSubPath() (common.Allowance_FieldPath, bool) {
   413  	res, ok := fps.subPath.(common.Allowance_FieldPath)
   414  	return res, ok
   415  }
   416  func (fps *AcceptedPlan_FieldSubPath) AsRegionalDistributionsSubPath() (common.RegionalDistribution_FieldPath, bool) {
   417  	res, ok := fps.subPath.(common.RegionalDistribution_FieldPath)
   418  	return res, ok
   419  }
   420  func (fps *AcceptedPlan_FieldSubPath) AsAssigneeSubPath() (AcceptedPlanAssignee_FieldPath, bool) {
   421  	res, ok := fps.subPath.(AcceptedPlanAssignee_FieldPath)
   422  	return res, ok
   423  }
   424  func (fps *AcceptedPlan_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   425  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   426  	return res, ok
   427  }
   428  
   429  // String returns path representation in proto convention
   430  func (fps *AcceptedPlan_FieldSubPath) String() string {
   431  	return fps.selector.String() + "." + fps.subPath.String()
   432  }
   433  
   434  // JSONString returns path representation is JSON convention
   435  func (fps *AcceptedPlan_FieldSubPath) JSONString() string {
   436  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   437  }
   438  
   439  // Get returns all values pointed by selected field from source AcceptedPlan
   440  func (fps *AcceptedPlan_FieldSubPath) Get(source *AcceptedPlan) (values []interface{}) {
   441  	switch fps.selector {
   442  	case AcceptedPlan_FieldPathSelectorExtensions:
   443  		for _, item := range source.GetExtensions() {
   444  			values = append(values, fps.subPath.GetRaw(item)...)
   445  		}
   446  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   447  		for _, item := range source.GetRegionalDistributions() {
   448  			values = append(values, fps.subPath.GetRaw(item)...)
   449  		}
   450  	case AcceptedPlan_FieldPathSelectorAssignee:
   451  		values = append(values, fps.subPath.GetRaw(source.GetAssignee())...)
   452  	case AcceptedPlan_FieldPathSelectorMetadata:
   453  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   454  	default:
   455  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fps.selector))
   456  	}
   457  	return
   458  }
   459  
   460  func (fps *AcceptedPlan_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   461  	return fps.Get(source.(*AcceptedPlan))
   462  }
   463  
   464  // GetSingle returns value of selected field from source AcceptedPlan
   465  func (fps *AcceptedPlan_FieldSubPath) GetSingle(source *AcceptedPlan) (interface{}, bool) {
   466  	switch fps.selector {
   467  	case AcceptedPlan_FieldPathSelectorExtensions:
   468  		if len(source.GetExtensions()) == 0 {
   469  			return nil, false
   470  		}
   471  		return fps.subPath.GetSingleRaw(source.GetExtensions()[0])
   472  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   473  		if len(source.GetRegionalDistributions()) == 0 {
   474  			return nil, false
   475  		}
   476  		return fps.subPath.GetSingleRaw(source.GetRegionalDistributions()[0])
   477  	case AcceptedPlan_FieldPathSelectorAssignee:
   478  		if source.GetAssignee() == nil {
   479  			return nil, false
   480  		}
   481  		return fps.subPath.GetSingleRaw(source.GetAssignee())
   482  	case AcceptedPlan_FieldPathSelectorMetadata:
   483  		if source.GetMetadata() == nil {
   484  			return nil, false
   485  		}
   486  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   487  	default:
   488  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fps.selector))
   489  	}
   490  }
   491  
   492  func (fps *AcceptedPlan_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   493  	return fps.GetSingle(source.(*AcceptedPlan))
   494  }
   495  
   496  // GetDefault returns a default value of the field type
   497  func (fps *AcceptedPlan_FieldSubPath) GetDefault() interface{} {
   498  	return fps.subPath.GetDefault()
   499  }
   500  
   501  func (fps *AcceptedPlan_FieldSubPath) ClearValue(item *AcceptedPlan) {
   502  	if item != nil {
   503  		switch fps.selector {
   504  		case AcceptedPlan_FieldPathSelectorExtensions:
   505  			for _, subItem := range item.Extensions {
   506  				fps.subPath.ClearValueRaw(subItem)
   507  			}
   508  		case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   509  			for _, subItem := range item.RegionalDistributions {
   510  				fps.subPath.ClearValueRaw(subItem)
   511  			}
   512  		case AcceptedPlan_FieldPathSelectorAssignee:
   513  			fps.subPath.ClearValueRaw(item.Assignee)
   514  		case AcceptedPlan_FieldPathSelectorMetadata:
   515  			fps.subPath.ClearValueRaw(item.Metadata)
   516  		default:
   517  			panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fps.selector))
   518  		}
   519  	}
   520  }
   521  
   522  func (fps *AcceptedPlan_FieldSubPath) ClearValueRaw(item proto.Message) {
   523  	fps.ClearValue(item.(*AcceptedPlan))
   524  }
   525  
   526  // IsLeaf - whether field path is holds simple value
   527  func (fps *AcceptedPlan_FieldSubPath) IsLeaf() bool {
   528  	return fps.subPath.IsLeaf()
   529  }
   530  
   531  func (fps *AcceptedPlan_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   532  	iPaths := []gotenobject.FieldPath{&AcceptedPlan_FieldTerminalPath{selector: fps.selector}}
   533  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   534  	return iPaths
   535  }
   536  
   537  func (fps *AcceptedPlan_FieldSubPath) WithIValue(value interface{}) AcceptedPlan_FieldPathValue {
   538  	return &AcceptedPlan_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   539  }
   540  
   541  func (fps *AcceptedPlan_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   542  	return fps.WithIValue(value)
   543  }
   544  
   545  func (fps *AcceptedPlan_FieldSubPath) WithIArrayOfValues(values interface{}) AcceptedPlan_FieldPathArrayOfValues {
   546  	return &AcceptedPlan_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   547  }
   548  
   549  func (fps *AcceptedPlan_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   550  	return fps.WithIArrayOfValues(values)
   551  }
   552  
   553  func (fps *AcceptedPlan_FieldSubPath) WithIArrayItemValue(value interface{}) AcceptedPlan_FieldPathArrayItemValue {
   554  	return &AcceptedPlan_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   555  }
   556  
   557  func (fps *AcceptedPlan_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   558  	return fps.WithIArrayItemValue(value)
   559  }
   560  
   561  // AcceptedPlan_FieldPathValue allows storing values for AcceptedPlan fields according to their type
   562  type AcceptedPlan_FieldPathValue interface {
   563  	AcceptedPlan_FieldPath
   564  	gotenobject.FieldPathValue
   565  	SetTo(target **AcceptedPlan)
   566  	CompareWith(*AcceptedPlan) (cmp int, comparable bool)
   567  }
   568  
   569  func ParseAcceptedPlan_FieldPathValue(pathStr, valueStr string) (AcceptedPlan_FieldPathValue, error) {
   570  	fp, err := ParseAcceptedPlan_FieldPath(pathStr)
   571  	if err != nil {
   572  		return nil, err
   573  	}
   574  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   575  	if err != nil {
   576  		return nil, status.Errorf(codes.InvalidArgument, "error parsing AcceptedPlan field path value from %s: %v", valueStr, err)
   577  	}
   578  	return fpv.(AcceptedPlan_FieldPathValue), nil
   579  }
   580  
   581  func MustParseAcceptedPlan_FieldPathValue(pathStr, valueStr string) AcceptedPlan_FieldPathValue {
   582  	fpv, err := ParseAcceptedPlan_FieldPathValue(pathStr, valueStr)
   583  	if err != nil {
   584  		panic(err)
   585  	}
   586  	return fpv
   587  }
   588  
   589  type AcceptedPlan_FieldTerminalPathValue struct {
   590  	AcceptedPlan_FieldTerminalPath
   591  	value interface{}
   592  }
   593  
   594  var _ AcceptedPlan_FieldPathValue = (*AcceptedPlan_FieldTerminalPathValue)(nil)
   595  
   596  // GetRawValue returns raw value stored under selected path for 'AcceptedPlan' as interface{}
   597  func (fpv *AcceptedPlan_FieldTerminalPathValue) GetRawValue() interface{} {
   598  	return fpv.value
   599  }
   600  func (fpv *AcceptedPlan_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   601  	res, ok := fpv.value.(*Name)
   602  	return res, ok
   603  }
   604  func (fpv *AcceptedPlan_FieldTerminalPathValue) AsPlanValue() (*plan.Reference, bool) {
   605  	res, ok := fpv.value.(*plan.Reference)
   606  	return res, ok
   607  }
   608  func (fpv *AcceptedPlan_FieldTerminalPathValue) AsServiceValue() (*meta_service.Reference, bool) {
   609  	res, ok := fpv.value.(*meta_service.Reference)
   610  	return res, ok
   611  }
   612  func (fpv *AcceptedPlan_FieldTerminalPathValue) AsExtensionsValue() ([]*common.Allowance, bool) {
   613  	res, ok := fpv.value.([]*common.Allowance)
   614  	return res, ok
   615  }
   616  func (fpv *AcceptedPlan_FieldTerminalPathValue) AsRegionalDistributionsValue() ([]*common.RegionalDistribution, bool) {
   617  	res, ok := fpv.value.([]*common.RegionalDistribution)
   618  	return res, ok
   619  }
   620  func (fpv *AcceptedPlan_FieldTerminalPathValue) AsAssigneeValue() (*AcceptedPlan_Assignee, bool) {
   621  	res, ok := fpv.value.(*AcceptedPlan_Assignee)
   622  	return res, ok
   623  }
   624  func (fpv *AcceptedPlan_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   625  	res, ok := fpv.value.(*meta.Meta)
   626  	return res, ok
   627  }
   628  
   629  // SetTo stores value for selected field for object AcceptedPlan
   630  func (fpv *AcceptedPlan_FieldTerminalPathValue) SetTo(target **AcceptedPlan) {
   631  	if *target == nil {
   632  		*target = new(AcceptedPlan)
   633  	}
   634  	switch fpv.selector {
   635  	case AcceptedPlan_FieldPathSelectorName:
   636  		(*target).Name = fpv.value.(*Name)
   637  	case AcceptedPlan_FieldPathSelectorPlan:
   638  		(*target).Plan = fpv.value.(*plan.Reference)
   639  	case AcceptedPlan_FieldPathSelectorService:
   640  		(*target).Service = fpv.value.(*meta_service.Reference)
   641  	case AcceptedPlan_FieldPathSelectorExtensions:
   642  		(*target).Extensions = fpv.value.([]*common.Allowance)
   643  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   644  		(*target).RegionalDistributions = fpv.value.([]*common.RegionalDistribution)
   645  	case AcceptedPlan_FieldPathSelectorAssignee:
   646  		(*target).Assignee = fpv.value.(*AcceptedPlan_Assignee)
   647  	case AcceptedPlan_FieldPathSelectorMetadata:
   648  		(*target).Metadata = fpv.value.(*meta.Meta)
   649  	default:
   650  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fpv.selector))
   651  	}
   652  }
   653  
   654  func (fpv *AcceptedPlan_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   655  	typedObject := target.(*AcceptedPlan)
   656  	fpv.SetTo(&typedObject)
   657  }
   658  
   659  // CompareWith compares value in the 'AcceptedPlan_FieldTerminalPathValue' with the value under path in 'AcceptedPlan'.
   660  func (fpv *AcceptedPlan_FieldTerminalPathValue) CompareWith(source *AcceptedPlan) (int, bool) {
   661  	switch fpv.selector {
   662  	case AcceptedPlan_FieldPathSelectorName:
   663  		leftValue := fpv.value.(*Name)
   664  		rightValue := source.GetName()
   665  		if leftValue == nil {
   666  			if rightValue != nil {
   667  				return -1, true
   668  			}
   669  			return 0, true
   670  		}
   671  		if rightValue == nil {
   672  			return 1, true
   673  		}
   674  		if leftValue.String() == rightValue.String() {
   675  			return 0, true
   676  		} else if leftValue.String() < rightValue.String() {
   677  			return -1, true
   678  		} else {
   679  			return 1, true
   680  		}
   681  	case AcceptedPlan_FieldPathSelectorPlan:
   682  		leftValue := fpv.value.(*plan.Reference)
   683  		rightValue := source.GetPlan()
   684  		if leftValue == nil {
   685  			if rightValue != nil {
   686  				return -1, true
   687  			}
   688  			return 0, true
   689  		}
   690  		if rightValue == nil {
   691  			return 1, true
   692  		}
   693  		if leftValue.String() == rightValue.String() {
   694  			return 0, true
   695  		} else if leftValue.String() < rightValue.String() {
   696  			return -1, true
   697  		} else {
   698  			return 1, true
   699  		}
   700  	case AcceptedPlan_FieldPathSelectorService:
   701  		leftValue := fpv.value.(*meta_service.Reference)
   702  		rightValue := source.GetService()
   703  		if leftValue == nil {
   704  			if rightValue != nil {
   705  				return -1, true
   706  			}
   707  			return 0, true
   708  		}
   709  		if rightValue == nil {
   710  			return 1, true
   711  		}
   712  		if leftValue.String() == rightValue.String() {
   713  			return 0, true
   714  		} else if leftValue.String() < rightValue.String() {
   715  			return -1, true
   716  		} else {
   717  			return 1, true
   718  		}
   719  	case AcceptedPlan_FieldPathSelectorExtensions:
   720  		return 0, false
   721  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   722  		return 0, false
   723  	case AcceptedPlan_FieldPathSelectorAssignee:
   724  		return 0, false
   725  	case AcceptedPlan_FieldPathSelectorMetadata:
   726  		return 0, false
   727  	default:
   728  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fpv.selector))
   729  	}
   730  }
   731  
   732  func (fpv *AcceptedPlan_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   733  	return fpv.CompareWith(source.(*AcceptedPlan))
   734  }
   735  
   736  type AcceptedPlan_FieldSubPathValue struct {
   737  	AcceptedPlan_FieldPath
   738  	subPathValue gotenobject.FieldPathValue
   739  }
   740  
   741  var _ AcceptedPlan_FieldPathValue = (*AcceptedPlan_FieldSubPathValue)(nil)
   742  
   743  func (fpvs *AcceptedPlan_FieldSubPathValue) AsExtensionsPathValue() (common.Allowance_FieldPathValue, bool) {
   744  	res, ok := fpvs.subPathValue.(common.Allowance_FieldPathValue)
   745  	return res, ok
   746  }
   747  func (fpvs *AcceptedPlan_FieldSubPathValue) AsRegionalDistributionsPathValue() (common.RegionalDistribution_FieldPathValue, bool) {
   748  	res, ok := fpvs.subPathValue.(common.RegionalDistribution_FieldPathValue)
   749  	return res, ok
   750  }
   751  func (fpvs *AcceptedPlan_FieldSubPathValue) AsAssigneePathValue() (AcceptedPlanAssignee_FieldPathValue, bool) {
   752  	res, ok := fpvs.subPathValue.(AcceptedPlanAssignee_FieldPathValue)
   753  	return res, ok
   754  }
   755  func (fpvs *AcceptedPlan_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   756  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   757  	return res, ok
   758  }
   759  
   760  func (fpvs *AcceptedPlan_FieldSubPathValue) SetTo(target **AcceptedPlan) {
   761  	if *target == nil {
   762  		*target = new(AcceptedPlan)
   763  	}
   764  	switch fpvs.Selector() {
   765  	case AcceptedPlan_FieldPathSelectorExtensions:
   766  		panic("FieldPath setter is unsupported for array subpaths")
   767  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   768  		panic("FieldPath setter is unsupported for array subpaths")
   769  	case AcceptedPlan_FieldPathSelectorAssignee:
   770  		fpvs.subPathValue.(AcceptedPlanAssignee_FieldPathValue).SetTo(&(*target).Assignee)
   771  	case AcceptedPlan_FieldPathSelectorMetadata:
   772  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
   773  	default:
   774  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fpvs.Selector()))
   775  	}
   776  }
   777  
   778  func (fpvs *AcceptedPlan_FieldSubPathValue) SetToRaw(target proto.Message) {
   779  	typedObject := target.(*AcceptedPlan)
   780  	fpvs.SetTo(&typedObject)
   781  }
   782  
   783  func (fpvs *AcceptedPlan_FieldSubPathValue) GetRawValue() interface{} {
   784  	return fpvs.subPathValue.GetRawValue()
   785  }
   786  
   787  func (fpvs *AcceptedPlan_FieldSubPathValue) CompareWith(source *AcceptedPlan) (int, bool) {
   788  	switch fpvs.Selector() {
   789  	case AcceptedPlan_FieldPathSelectorExtensions:
   790  		return 0, false // repeated field
   791  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   792  		return 0, false // repeated field
   793  	case AcceptedPlan_FieldPathSelectorAssignee:
   794  		return fpvs.subPathValue.(AcceptedPlanAssignee_FieldPathValue).CompareWith(source.GetAssignee())
   795  	case AcceptedPlan_FieldPathSelectorMetadata:
   796  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
   797  	default:
   798  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fpvs.Selector()))
   799  	}
   800  }
   801  
   802  func (fpvs *AcceptedPlan_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   803  	return fpvs.CompareWith(source.(*AcceptedPlan))
   804  }
   805  
   806  // AcceptedPlan_FieldPathArrayItemValue allows storing single item in Path-specific values for AcceptedPlan according to their type
   807  // Present only for array (repeated) types.
   808  type AcceptedPlan_FieldPathArrayItemValue interface {
   809  	gotenobject.FieldPathArrayItemValue
   810  	AcceptedPlan_FieldPath
   811  	ContainsValue(*AcceptedPlan) bool
   812  }
   813  
   814  // ParseAcceptedPlan_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   815  func ParseAcceptedPlan_FieldPathArrayItemValue(pathStr, valueStr string) (AcceptedPlan_FieldPathArrayItemValue, error) {
   816  	fp, err := ParseAcceptedPlan_FieldPath(pathStr)
   817  	if err != nil {
   818  		return nil, err
   819  	}
   820  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   821  	if err != nil {
   822  		return nil, status.Errorf(codes.InvalidArgument, "error parsing AcceptedPlan field path array item value from %s: %v", valueStr, err)
   823  	}
   824  	return fpaiv.(AcceptedPlan_FieldPathArrayItemValue), nil
   825  }
   826  
   827  func MustParseAcceptedPlan_FieldPathArrayItemValue(pathStr, valueStr string) AcceptedPlan_FieldPathArrayItemValue {
   828  	fpaiv, err := ParseAcceptedPlan_FieldPathArrayItemValue(pathStr, valueStr)
   829  	if err != nil {
   830  		panic(err)
   831  	}
   832  	return fpaiv
   833  }
   834  
   835  type AcceptedPlan_FieldTerminalPathArrayItemValue struct {
   836  	AcceptedPlan_FieldTerminalPath
   837  	value interface{}
   838  }
   839  
   840  var _ AcceptedPlan_FieldPathArrayItemValue = (*AcceptedPlan_FieldTerminalPathArrayItemValue)(nil)
   841  
   842  // GetRawValue returns stored element value for array in object AcceptedPlan as interface{}
   843  func (fpaiv *AcceptedPlan_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   844  	return fpaiv.value
   845  }
   846  func (fpaiv *AcceptedPlan_FieldTerminalPathArrayItemValue) AsExtensionsItemValue() (*common.Allowance, bool) {
   847  	res, ok := fpaiv.value.(*common.Allowance)
   848  	return res, ok
   849  }
   850  func (fpaiv *AcceptedPlan_FieldTerminalPathArrayItemValue) AsRegionalDistributionsItemValue() (*common.RegionalDistribution, bool) {
   851  	res, ok := fpaiv.value.(*common.RegionalDistribution)
   852  	return res, ok
   853  }
   854  
   855  func (fpaiv *AcceptedPlan_FieldTerminalPathArrayItemValue) GetSingle(source *AcceptedPlan) (interface{}, bool) {
   856  	return nil, false
   857  }
   858  
   859  func (fpaiv *AcceptedPlan_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   860  	return fpaiv.GetSingle(source.(*AcceptedPlan))
   861  }
   862  
   863  // Contains returns a boolean indicating if value that is being held is present in given 'AcceptedPlan'
   864  func (fpaiv *AcceptedPlan_FieldTerminalPathArrayItemValue) ContainsValue(source *AcceptedPlan) bool {
   865  	slice := fpaiv.AcceptedPlan_FieldTerminalPath.Get(source)
   866  	for _, v := range slice {
   867  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   868  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   869  				return true
   870  			}
   871  		} else if reflect.DeepEqual(v, fpaiv.value) {
   872  			return true
   873  		}
   874  	}
   875  	return false
   876  }
   877  
   878  type AcceptedPlan_FieldSubPathArrayItemValue struct {
   879  	AcceptedPlan_FieldPath
   880  	subPathItemValue gotenobject.FieldPathArrayItemValue
   881  }
   882  
   883  // GetRawValue returns stored array item value
   884  func (fpaivs *AcceptedPlan_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
   885  	return fpaivs.subPathItemValue.GetRawItemValue()
   886  }
   887  func (fpaivs *AcceptedPlan_FieldSubPathArrayItemValue) AsExtensionsPathItemValue() (common.Allowance_FieldPathArrayItemValue, bool) {
   888  	res, ok := fpaivs.subPathItemValue.(common.Allowance_FieldPathArrayItemValue)
   889  	return res, ok
   890  }
   891  func (fpaivs *AcceptedPlan_FieldSubPathArrayItemValue) AsRegionalDistributionsPathItemValue() (common.RegionalDistribution_FieldPathArrayItemValue, bool) {
   892  	res, ok := fpaivs.subPathItemValue.(common.RegionalDistribution_FieldPathArrayItemValue)
   893  	return res, ok
   894  }
   895  func (fpaivs *AcceptedPlan_FieldSubPathArrayItemValue) AsAssigneePathItemValue() (AcceptedPlanAssignee_FieldPathArrayItemValue, bool) {
   896  	res, ok := fpaivs.subPathItemValue.(AcceptedPlanAssignee_FieldPathArrayItemValue)
   897  	return res, ok
   898  }
   899  func (fpaivs *AcceptedPlan_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
   900  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
   901  	return res, ok
   902  }
   903  
   904  // Contains returns a boolean indicating if value that is being held is present in given 'AcceptedPlan'
   905  func (fpaivs *AcceptedPlan_FieldSubPathArrayItemValue) ContainsValue(source *AcceptedPlan) bool {
   906  	switch fpaivs.Selector() {
   907  	case AcceptedPlan_FieldPathSelectorExtensions:
   908  		return false // repeated/map field
   909  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   910  		return false // repeated/map field
   911  	case AcceptedPlan_FieldPathSelectorAssignee:
   912  		return fpaivs.subPathItemValue.(AcceptedPlanAssignee_FieldPathArrayItemValue).ContainsValue(source.GetAssignee())
   913  	case AcceptedPlan_FieldPathSelectorMetadata:
   914  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
   915  	default:
   916  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan: %d", fpaivs.Selector()))
   917  	}
   918  }
   919  
   920  // AcceptedPlan_FieldPathArrayOfValues allows storing slice of values for AcceptedPlan fields according to their type
   921  type AcceptedPlan_FieldPathArrayOfValues interface {
   922  	gotenobject.FieldPathArrayOfValues
   923  	AcceptedPlan_FieldPath
   924  }
   925  
   926  func ParseAcceptedPlan_FieldPathArrayOfValues(pathStr, valuesStr string) (AcceptedPlan_FieldPathArrayOfValues, error) {
   927  	fp, err := ParseAcceptedPlan_FieldPath(pathStr)
   928  	if err != nil {
   929  		return nil, err
   930  	}
   931  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   932  	if err != nil {
   933  		return nil, status.Errorf(codes.InvalidArgument, "error parsing AcceptedPlan field path array of values from %s: %v", valuesStr, err)
   934  	}
   935  	return fpaov.(AcceptedPlan_FieldPathArrayOfValues), nil
   936  }
   937  
   938  func MustParseAcceptedPlan_FieldPathArrayOfValues(pathStr, valuesStr string) AcceptedPlan_FieldPathArrayOfValues {
   939  	fpaov, err := ParseAcceptedPlan_FieldPathArrayOfValues(pathStr, valuesStr)
   940  	if err != nil {
   941  		panic(err)
   942  	}
   943  	return fpaov
   944  }
   945  
   946  type AcceptedPlan_FieldTerminalPathArrayOfValues struct {
   947  	AcceptedPlan_FieldTerminalPath
   948  	values interface{}
   949  }
   950  
   951  var _ AcceptedPlan_FieldPathArrayOfValues = (*AcceptedPlan_FieldTerminalPathArrayOfValues)(nil)
   952  
   953  func (fpaov *AcceptedPlan_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   954  	switch fpaov.selector {
   955  	case AcceptedPlan_FieldPathSelectorName:
   956  		for _, v := range fpaov.values.([]*Name) {
   957  			values = append(values, v)
   958  		}
   959  	case AcceptedPlan_FieldPathSelectorPlan:
   960  		for _, v := range fpaov.values.([]*plan.Reference) {
   961  			values = append(values, v)
   962  		}
   963  	case AcceptedPlan_FieldPathSelectorService:
   964  		for _, v := range fpaov.values.([]*meta_service.Reference) {
   965  			values = append(values, v)
   966  		}
   967  	case AcceptedPlan_FieldPathSelectorExtensions:
   968  		for _, v := range fpaov.values.([][]*common.Allowance) {
   969  			values = append(values, v)
   970  		}
   971  	case AcceptedPlan_FieldPathSelectorRegionalDistributions:
   972  		for _, v := range fpaov.values.([][]*common.RegionalDistribution) {
   973  			values = append(values, v)
   974  		}
   975  	case AcceptedPlan_FieldPathSelectorAssignee:
   976  		for _, v := range fpaov.values.([]*AcceptedPlan_Assignee) {
   977  			values = append(values, v)
   978  		}
   979  	case AcceptedPlan_FieldPathSelectorMetadata:
   980  		for _, v := range fpaov.values.([]*meta.Meta) {
   981  			values = append(values, v)
   982  		}
   983  	}
   984  	return
   985  }
   986  func (fpaov *AcceptedPlan_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
   987  	res, ok := fpaov.values.([]*Name)
   988  	return res, ok
   989  }
   990  func (fpaov *AcceptedPlan_FieldTerminalPathArrayOfValues) AsPlanArrayOfValues() ([]*plan.Reference, bool) {
   991  	res, ok := fpaov.values.([]*plan.Reference)
   992  	return res, ok
   993  }
   994  func (fpaov *AcceptedPlan_FieldTerminalPathArrayOfValues) AsServiceArrayOfValues() ([]*meta_service.Reference, bool) {
   995  	res, ok := fpaov.values.([]*meta_service.Reference)
   996  	return res, ok
   997  }
   998  func (fpaov *AcceptedPlan_FieldTerminalPathArrayOfValues) AsExtensionsArrayOfValues() ([][]*common.Allowance, bool) {
   999  	res, ok := fpaov.values.([][]*common.Allowance)
  1000  	return res, ok
  1001  }
  1002  func (fpaov *AcceptedPlan_FieldTerminalPathArrayOfValues) AsRegionalDistributionsArrayOfValues() ([][]*common.RegionalDistribution, bool) {
  1003  	res, ok := fpaov.values.([][]*common.RegionalDistribution)
  1004  	return res, ok
  1005  }
  1006  func (fpaov *AcceptedPlan_FieldTerminalPathArrayOfValues) AsAssigneeArrayOfValues() ([]*AcceptedPlan_Assignee, bool) {
  1007  	res, ok := fpaov.values.([]*AcceptedPlan_Assignee)
  1008  	return res, ok
  1009  }
  1010  func (fpaov *AcceptedPlan_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
  1011  	res, ok := fpaov.values.([]*meta.Meta)
  1012  	return res, ok
  1013  }
  1014  
  1015  type AcceptedPlan_FieldSubPathArrayOfValues struct {
  1016  	AcceptedPlan_FieldPath
  1017  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  1018  }
  1019  
  1020  var _ AcceptedPlan_FieldPathArrayOfValues = (*AcceptedPlan_FieldSubPathArrayOfValues)(nil)
  1021  
  1022  func (fpsaov *AcceptedPlan_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  1023  	return fpsaov.subPathArrayOfValues.GetRawValues()
  1024  }
  1025  func (fpsaov *AcceptedPlan_FieldSubPathArrayOfValues) AsExtensionsPathArrayOfValues() (common.Allowance_FieldPathArrayOfValues, bool) {
  1026  	res, ok := fpsaov.subPathArrayOfValues.(common.Allowance_FieldPathArrayOfValues)
  1027  	return res, ok
  1028  }
  1029  func (fpsaov *AcceptedPlan_FieldSubPathArrayOfValues) AsRegionalDistributionsPathArrayOfValues() (common.RegionalDistribution_FieldPathArrayOfValues, bool) {
  1030  	res, ok := fpsaov.subPathArrayOfValues.(common.RegionalDistribution_FieldPathArrayOfValues)
  1031  	return res, ok
  1032  }
  1033  func (fpsaov *AcceptedPlan_FieldSubPathArrayOfValues) AsAssigneePathArrayOfValues() (AcceptedPlanAssignee_FieldPathArrayOfValues, bool) {
  1034  	res, ok := fpsaov.subPathArrayOfValues.(AcceptedPlanAssignee_FieldPathArrayOfValues)
  1035  	return res, ok
  1036  }
  1037  func (fpsaov *AcceptedPlan_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
  1038  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
  1039  	return res, ok
  1040  }
  1041  
  1042  // FieldPath provides implementation to handle
  1043  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1044  type AcceptedPlanAssignee_FieldPath interface {
  1045  	gotenobject.FieldPath
  1046  	Selector() AcceptedPlanAssignee_FieldPathSelector
  1047  	Get(source *AcceptedPlan_Assignee) []interface{}
  1048  	GetSingle(source *AcceptedPlan_Assignee) (interface{}, bool)
  1049  	ClearValue(item *AcceptedPlan_Assignee)
  1050  
  1051  	// Those methods build corresponding AcceptedPlanAssignee_FieldPathValue
  1052  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1053  	WithIValue(value interface{}) AcceptedPlanAssignee_FieldPathValue
  1054  	WithIArrayOfValues(values interface{}) AcceptedPlanAssignee_FieldPathArrayOfValues
  1055  	WithIArrayItemValue(value interface{}) AcceptedPlanAssignee_FieldPathArrayItemValue
  1056  }
  1057  
  1058  type AcceptedPlanAssignee_FieldPathSelector int32
  1059  
  1060  const (
  1061  	AcceptedPlanAssignee_FieldPathSelectorProjectAssignee      AcceptedPlanAssignee_FieldPathSelector = 0
  1062  	AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee AcceptedPlanAssignee_FieldPathSelector = 1
  1063  	AcceptedPlanAssignee_FieldPathSelectorSystemAssignee       AcceptedPlanAssignee_FieldPathSelector = 2
  1064  )
  1065  
  1066  func (s AcceptedPlanAssignee_FieldPathSelector) String() string {
  1067  	switch s {
  1068  	case AcceptedPlanAssignee_FieldPathSelectorProjectAssignee:
  1069  		return "project_assignee"
  1070  	case AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee:
  1071  		return "organization_assignee"
  1072  	case AcceptedPlanAssignee_FieldPathSelectorSystemAssignee:
  1073  		return "system_assignee"
  1074  	default:
  1075  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan_Assignee: %d", s))
  1076  	}
  1077  }
  1078  
  1079  func BuildAcceptedPlanAssignee_FieldPath(fp gotenobject.RawFieldPath) (AcceptedPlanAssignee_FieldPath, error) {
  1080  	if len(fp) == 0 {
  1081  		return nil, status.Error(codes.InvalidArgument, "empty field path for object AcceptedPlan_Assignee")
  1082  	}
  1083  	if len(fp) == 1 {
  1084  		switch fp[0] {
  1085  		case "project_assignee", "projectAssignee", "project-assignee":
  1086  			return &AcceptedPlanAssignee_FieldTerminalPath{selector: AcceptedPlanAssignee_FieldPathSelectorProjectAssignee}, nil
  1087  		case "organization_assignee", "organizationAssignee", "organization-assignee":
  1088  			return &AcceptedPlanAssignee_FieldTerminalPath{selector: AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee}, nil
  1089  		case "system_assignee", "systemAssignee", "system-assignee":
  1090  			return &AcceptedPlanAssignee_FieldTerminalPath{selector: AcceptedPlanAssignee_FieldPathSelectorSystemAssignee}, nil
  1091  		}
  1092  	}
  1093  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object AcceptedPlan_Assignee", fp)
  1094  }
  1095  
  1096  func ParseAcceptedPlanAssignee_FieldPath(rawField string) (AcceptedPlanAssignee_FieldPath, error) {
  1097  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1098  	if err != nil {
  1099  		return nil, err
  1100  	}
  1101  	return BuildAcceptedPlanAssignee_FieldPath(fp)
  1102  }
  1103  
  1104  func MustParseAcceptedPlanAssignee_FieldPath(rawField string) AcceptedPlanAssignee_FieldPath {
  1105  	fp, err := ParseAcceptedPlanAssignee_FieldPath(rawField)
  1106  	if err != nil {
  1107  		panic(err)
  1108  	}
  1109  	return fp
  1110  }
  1111  
  1112  type AcceptedPlanAssignee_FieldTerminalPath struct {
  1113  	selector AcceptedPlanAssignee_FieldPathSelector
  1114  }
  1115  
  1116  var _ AcceptedPlanAssignee_FieldPath = (*AcceptedPlanAssignee_FieldTerminalPath)(nil)
  1117  
  1118  func (fp *AcceptedPlanAssignee_FieldTerminalPath) Selector() AcceptedPlanAssignee_FieldPathSelector {
  1119  	return fp.selector
  1120  }
  1121  
  1122  // String returns path representation in proto convention
  1123  func (fp *AcceptedPlanAssignee_FieldTerminalPath) String() string {
  1124  	return fp.selector.String()
  1125  }
  1126  
  1127  // JSONString returns path representation is JSON convention
  1128  func (fp *AcceptedPlanAssignee_FieldTerminalPath) JSONString() string {
  1129  	return strcase.ToLowerCamel(fp.String())
  1130  }
  1131  
  1132  // Get returns all values pointed by specific field from source AcceptedPlan_Assignee
  1133  func (fp *AcceptedPlanAssignee_FieldTerminalPath) Get(source *AcceptedPlan_Assignee) (values []interface{}) {
  1134  	if source != nil {
  1135  		switch fp.selector {
  1136  		case AcceptedPlanAssignee_FieldPathSelectorProjectAssignee:
  1137  			if source, ok := source.Assignee.(*AcceptedPlan_Assignee_ProjectAssignee); ok && source != nil {
  1138  				if source.ProjectAssignee != nil {
  1139  					values = append(values, source.ProjectAssignee)
  1140  				}
  1141  			}
  1142  		case AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee:
  1143  			if source, ok := source.Assignee.(*AcceptedPlan_Assignee_OrganizationAssignee); ok && source != nil {
  1144  				if source.OrganizationAssignee != nil {
  1145  					values = append(values, source.OrganizationAssignee)
  1146  				}
  1147  			}
  1148  		case AcceptedPlanAssignee_FieldPathSelectorSystemAssignee:
  1149  			if source, ok := source.Assignee.(*AcceptedPlan_Assignee_SystemAssignee); ok && source != nil {
  1150  				values = append(values, source.SystemAssignee)
  1151  			}
  1152  		default:
  1153  			panic(fmt.Sprintf("Invalid selector for AcceptedPlan_Assignee: %d", fp.selector))
  1154  		}
  1155  	}
  1156  	return
  1157  }
  1158  
  1159  func (fp *AcceptedPlanAssignee_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1160  	return fp.Get(source.(*AcceptedPlan_Assignee))
  1161  }
  1162  
  1163  // GetSingle returns value pointed by specific field of from source AcceptedPlan_Assignee
  1164  func (fp *AcceptedPlanAssignee_FieldTerminalPath) GetSingle(source *AcceptedPlan_Assignee) (interface{}, bool) {
  1165  	switch fp.selector {
  1166  	case AcceptedPlanAssignee_FieldPathSelectorProjectAssignee:
  1167  		// if object nil or oneof not active, return "default" type with false flag.
  1168  		if source == nil {
  1169  			return source.GetProjectAssignee(), false
  1170  		}
  1171  		_, oneOfSelected := source.Assignee.(*AcceptedPlan_Assignee_ProjectAssignee)
  1172  		if !oneOfSelected {
  1173  			return source.GetProjectAssignee(), false // to return "type" information
  1174  		}
  1175  		res := source.GetProjectAssignee()
  1176  		return res, res != nil
  1177  	case AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee:
  1178  		// if object nil or oneof not active, return "default" type with false flag.
  1179  		if source == nil {
  1180  			return source.GetOrganizationAssignee(), false
  1181  		}
  1182  		_, oneOfSelected := source.Assignee.(*AcceptedPlan_Assignee_OrganizationAssignee)
  1183  		if !oneOfSelected {
  1184  			return source.GetOrganizationAssignee(), false // to return "type" information
  1185  		}
  1186  		res := source.GetOrganizationAssignee()
  1187  		return res, res != nil
  1188  	case AcceptedPlanAssignee_FieldPathSelectorSystemAssignee:
  1189  		// if object nil or oneof not active, return "default" type with false flag.
  1190  		if source == nil {
  1191  			return source.GetSystemAssignee(), false
  1192  		}
  1193  		_, oneOfSelected := source.Assignee.(*AcceptedPlan_Assignee_SystemAssignee)
  1194  		if !oneOfSelected {
  1195  			return source.GetSystemAssignee(), false // to return "type" information
  1196  		}
  1197  		return source.GetSystemAssignee(), source != nil
  1198  	default:
  1199  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan_Assignee: %d", fp.selector))
  1200  	}
  1201  }
  1202  
  1203  func (fp *AcceptedPlanAssignee_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1204  	return fp.GetSingle(source.(*AcceptedPlan_Assignee))
  1205  }
  1206  
  1207  // GetDefault returns a default value of the field type
  1208  func (fp *AcceptedPlanAssignee_FieldTerminalPath) GetDefault() interface{} {
  1209  	switch fp.selector {
  1210  	case AcceptedPlanAssignee_FieldPathSelectorProjectAssignee:
  1211  		return (*iam_project.Reference)(nil)
  1212  	case AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee:
  1213  		return (*iam_organization.Reference)(nil)
  1214  	case AcceptedPlanAssignee_FieldPathSelectorSystemAssignee:
  1215  		return false
  1216  	default:
  1217  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan_Assignee: %d", fp.selector))
  1218  	}
  1219  }
  1220  
  1221  func (fp *AcceptedPlanAssignee_FieldTerminalPath) ClearValue(item *AcceptedPlan_Assignee) {
  1222  	if item != nil {
  1223  		switch fp.selector {
  1224  		case AcceptedPlanAssignee_FieldPathSelectorProjectAssignee:
  1225  			if item, ok := item.Assignee.(*AcceptedPlan_Assignee_ProjectAssignee); ok {
  1226  				item.ProjectAssignee = nil
  1227  			}
  1228  		case AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee:
  1229  			if item, ok := item.Assignee.(*AcceptedPlan_Assignee_OrganizationAssignee); ok {
  1230  				item.OrganizationAssignee = nil
  1231  			}
  1232  		case AcceptedPlanAssignee_FieldPathSelectorSystemAssignee:
  1233  			if item, ok := item.Assignee.(*AcceptedPlan_Assignee_SystemAssignee); ok {
  1234  				item.SystemAssignee = false
  1235  			}
  1236  		default:
  1237  			panic(fmt.Sprintf("Invalid selector for AcceptedPlan_Assignee: %d", fp.selector))
  1238  		}
  1239  	}
  1240  }
  1241  
  1242  func (fp *AcceptedPlanAssignee_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1243  	fp.ClearValue(item.(*AcceptedPlan_Assignee))
  1244  }
  1245  
  1246  // IsLeaf - whether field path is holds simple value
  1247  func (fp *AcceptedPlanAssignee_FieldTerminalPath) IsLeaf() bool {
  1248  	return fp.selector == AcceptedPlanAssignee_FieldPathSelectorProjectAssignee ||
  1249  		fp.selector == AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee ||
  1250  		fp.selector == AcceptedPlanAssignee_FieldPathSelectorSystemAssignee
  1251  }
  1252  
  1253  func (fp *AcceptedPlanAssignee_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1254  	return []gotenobject.FieldPath{fp}
  1255  }
  1256  
  1257  func (fp *AcceptedPlanAssignee_FieldTerminalPath) WithIValue(value interface{}) AcceptedPlanAssignee_FieldPathValue {
  1258  	switch fp.selector {
  1259  	case AcceptedPlanAssignee_FieldPathSelectorProjectAssignee:
  1260  		return &AcceptedPlanAssignee_FieldTerminalPathValue{AcceptedPlanAssignee_FieldTerminalPath: *fp, value: value.(*iam_project.Reference)}
  1261  	case AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee:
  1262  		return &AcceptedPlanAssignee_FieldTerminalPathValue{AcceptedPlanAssignee_FieldTerminalPath: *fp, value: value.(*iam_organization.Reference)}
  1263  	case AcceptedPlanAssignee_FieldPathSelectorSystemAssignee:
  1264  		return &AcceptedPlanAssignee_FieldTerminalPathValue{AcceptedPlanAssignee_FieldTerminalPath: *fp, value: value.(bool)}
  1265  	default:
  1266  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan_Assignee: %d", fp.selector))
  1267  	}
  1268  }
  1269  
  1270  func (fp *AcceptedPlanAssignee_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1271  	return fp.WithIValue(value)
  1272  }
  1273  
  1274  func (fp *AcceptedPlanAssignee_FieldTerminalPath) WithIArrayOfValues(values interface{}) AcceptedPlanAssignee_FieldPathArrayOfValues {
  1275  	fpaov := &AcceptedPlanAssignee_FieldTerminalPathArrayOfValues{AcceptedPlanAssignee_FieldTerminalPath: *fp}
  1276  	switch fp.selector {
  1277  	case AcceptedPlanAssignee_FieldPathSelectorProjectAssignee:
  1278  		return &AcceptedPlanAssignee_FieldTerminalPathArrayOfValues{AcceptedPlanAssignee_FieldTerminalPath: *fp, values: values.([]*iam_project.Reference)}
  1279  	case AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee:
  1280  		return &AcceptedPlanAssignee_FieldTerminalPathArrayOfValues{AcceptedPlanAssignee_FieldTerminalPath: *fp, values: values.([]*iam_organization.Reference)}
  1281  	case AcceptedPlanAssignee_FieldPathSelectorSystemAssignee:
  1282  		return &AcceptedPlanAssignee_FieldTerminalPathArrayOfValues{AcceptedPlanAssignee_FieldTerminalPath: *fp, values: values.([]bool)}
  1283  	default:
  1284  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan_Assignee: %d", fp.selector))
  1285  	}
  1286  	return fpaov
  1287  }
  1288  
  1289  func (fp *AcceptedPlanAssignee_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1290  	return fp.WithIArrayOfValues(values)
  1291  }
  1292  
  1293  func (fp *AcceptedPlanAssignee_FieldTerminalPath) WithIArrayItemValue(value interface{}) AcceptedPlanAssignee_FieldPathArrayItemValue {
  1294  	switch fp.selector {
  1295  	default:
  1296  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan_Assignee: %d", fp.selector))
  1297  	}
  1298  }
  1299  
  1300  func (fp *AcceptedPlanAssignee_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1301  	return fp.WithIArrayItemValue(value)
  1302  }
  1303  
  1304  // AcceptedPlanAssignee_FieldPathValue allows storing values for Assignee fields according to their type
  1305  type AcceptedPlanAssignee_FieldPathValue interface {
  1306  	AcceptedPlanAssignee_FieldPath
  1307  	gotenobject.FieldPathValue
  1308  	SetTo(target **AcceptedPlan_Assignee)
  1309  	CompareWith(*AcceptedPlan_Assignee) (cmp int, comparable bool)
  1310  }
  1311  
  1312  func ParseAcceptedPlanAssignee_FieldPathValue(pathStr, valueStr string) (AcceptedPlanAssignee_FieldPathValue, error) {
  1313  	fp, err := ParseAcceptedPlanAssignee_FieldPath(pathStr)
  1314  	if err != nil {
  1315  		return nil, err
  1316  	}
  1317  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1318  	if err != nil {
  1319  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Assignee field path value from %s: %v", valueStr, err)
  1320  	}
  1321  	return fpv.(AcceptedPlanAssignee_FieldPathValue), nil
  1322  }
  1323  
  1324  func MustParseAcceptedPlanAssignee_FieldPathValue(pathStr, valueStr string) AcceptedPlanAssignee_FieldPathValue {
  1325  	fpv, err := ParseAcceptedPlanAssignee_FieldPathValue(pathStr, valueStr)
  1326  	if err != nil {
  1327  		panic(err)
  1328  	}
  1329  	return fpv
  1330  }
  1331  
  1332  type AcceptedPlanAssignee_FieldTerminalPathValue struct {
  1333  	AcceptedPlanAssignee_FieldTerminalPath
  1334  	value interface{}
  1335  }
  1336  
  1337  var _ AcceptedPlanAssignee_FieldPathValue = (*AcceptedPlanAssignee_FieldTerminalPathValue)(nil)
  1338  
  1339  // GetRawValue returns raw value stored under selected path for 'Assignee' as interface{}
  1340  func (fpv *AcceptedPlanAssignee_FieldTerminalPathValue) GetRawValue() interface{} {
  1341  	return fpv.value
  1342  }
  1343  func (fpv *AcceptedPlanAssignee_FieldTerminalPathValue) AsProjectAssigneeValue() (*iam_project.Reference, bool) {
  1344  	res, ok := fpv.value.(*iam_project.Reference)
  1345  	return res, ok
  1346  }
  1347  func (fpv *AcceptedPlanAssignee_FieldTerminalPathValue) AsOrganizationAssigneeValue() (*iam_organization.Reference, bool) {
  1348  	res, ok := fpv.value.(*iam_organization.Reference)
  1349  	return res, ok
  1350  }
  1351  func (fpv *AcceptedPlanAssignee_FieldTerminalPathValue) AsSystemAssigneeValue() (bool, bool) {
  1352  	res, ok := fpv.value.(bool)
  1353  	return res, ok
  1354  }
  1355  
  1356  // SetTo stores value for selected field for object Assignee
  1357  func (fpv *AcceptedPlanAssignee_FieldTerminalPathValue) SetTo(target **AcceptedPlan_Assignee) {
  1358  	if *target == nil {
  1359  		*target = new(AcceptedPlan_Assignee)
  1360  	}
  1361  	switch fpv.selector {
  1362  	case AcceptedPlanAssignee_FieldPathSelectorProjectAssignee:
  1363  		if _, ok := (*target).Assignee.(*AcceptedPlan_Assignee_ProjectAssignee); !ok {
  1364  			(*target).Assignee = &AcceptedPlan_Assignee_ProjectAssignee{}
  1365  		}
  1366  		(*target).Assignee.(*AcceptedPlan_Assignee_ProjectAssignee).ProjectAssignee = fpv.value.(*iam_project.Reference)
  1367  	case AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee:
  1368  		if _, ok := (*target).Assignee.(*AcceptedPlan_Assignee_OrganizationAssignee); !ok {
  1369  			(*target).Assignee = &AcceptedPlan_Assignee_OrganizationAssignee{}
  1370  		}
  1371  		(*target).Assignee.(*AcceptedPlan_Assignee_OrganizationAssignee).OrganizationAssignee = fpv.value.(*iam_organization.Reference)
  1372  	case AcceptedPlanAssignee_FieldPathSelectorSystemAssignee:
  1373  		if _, ok := (*target).Assignee.(*AcceptedPlan_Assignee_SystemAssignee); !ok {
  1374  			(*target).Assignee = &AcceptedPlan_Assignee_SystemAssignee{}
  1375  		}
  1376  		(*target).Assignee.(*AcceptedPlan_Assignee_SystemAssignee).SystemAssignee = fpv.value.(bool)
  1377  	default:
  1378  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan_Assignee: %d", fpv.selector))
  1379  	}
  1380  }
  1381  
  1382  func (fpv *AcceptedPlanAssignee_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1383  	typedObject := target.(*AcceptedPlan_Assignee)
  1384  	fpv.SetTo(&typedObject)
  1385  }
  1386  
  1387  // CompareWith compares value in the 'AcceptedPlanAssignee_FieldTerminalPathValue' with the value under path in 'AcceptedPlan_Assignee'.
  1388  func (fpv *AcceptedPlanAssignee_FieldTerminalPathValue) CompareWith(source *AcceptedPlan_Assignee) (int, bool) {
  1389  	switch fpv.selector {
  1390  	case AcceptedPlanAssignee_FieldPathSelectorProjectAssignee:
  1391  		leftValue := fpv.value.(*iam_project.Reference)
  1392  		rightValue := source.GetProjectAssignee()
  1393  		if leftValue == nil {
  1394  			if rightValue != nil {
  1395  				return -1, true
  1396  			}
  1397  			return 0, true
  1398  		}
  1399  		if rightValue == nil {
  1400  			return 1, true
  1401  		}
  1402  		if leftValue.String() == rightValue.String() {
  1403  			return 0, true
  1404  		} else if leftValue.String() < rightValue.String() {
  1405  			return -1, true
  1406  		} else {
  1407  			return 1, true
  1408  		}
  1409  	case AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee:
  1410  		leftValue := fpv.value.(*iam_organization.Reference)
  1411  		rightValue := source.GetOrganizationAssignee()
  1412  		if leftValue == nil {
  1413  			if rightValue != nil {
  1414  				return -1, true
  1415  			}
  1416  			return 0, true
  1417  		}
  1418  		if rightValue == nil {
  1419  			return 1, true
  1420  		}
  1421  		if leftValue.String() == rightValue.String() {
  1422  			return 0, true
  1423  		} else if leftValue.String() < rightValue.String() {
  1424  			return -1, true
  1425  		} else {
  1426  			return 1, true
  1427  		}
  1428  	case AcceptedPlanAssignee_FieldPathSelectorSystemAssignee:
  1429  		leftValue := fpv.value.(bool)
  1430  		rightValue := source.GetSystemAssignee()
  1431  		if (leftValue) == (rightValue) {
  1432  			return 0, true
  1433  		} else if !(leftValue) && (rightValue) {
  1434  			return -1, true
  1435  		} else {
  1436  			return 1, true
  1437  		}
  1438  	default:
  1439  		panic(fmt.Sprintf("Invalid selector for AcceptedPlan_Assignee: %d", fpv.selector))
  1440  	}
  1441  }
  1442  
  1443  func (fpv *AcceptedPlanAssignee_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1444  	return fpv.CompareWith(source.(*AcceptedPlan_Assignee))
  1445  }
  1446  
  1447  // AcceptedPlanAssignee_FieldPathArrayItemValue allows storing single item in Path-specific values for Assignee according to their type
  1448  // Present only for array (repeated) types.
  1449  type AcceptedPlanAssignee_FieldPathArrayItemValue interface {
  1450  	gotenobject.FieldPathArrayItemValue
  1451  	AcceptedPlanAssignee_FieldPath
  1452  	ContainsValue(*AcceptedPlan_Assignee) bool
  1453  }
  1454  
  1455  // ParseAcceptedPlanAssignee_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1456  func ParseAcceptedPlanAssignee_FieldPathArrayItemValue(pathStr, valueStr string) (AcceptedPlanAssignee_FieldPathArrayItemValue, error) {
  1457  	fp, err := ParseAcceptedPlanAssignee_FieldPath(pathStr)
  1458  	if err != nil {
  1459  		return nil, err
  1460  	}
  1461  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1462  	if err != nil {
  1463  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Assignee field path array item value from %s: %v", valueStr, err)
  1464  	}
  1465  	return fpaiv.(AcceptedPlanAssignee_FieldPathArrayItemValue), nil
  1466  }
  1467  
  1468  func MustParseAcceptedPlanAssignee_FieldPathArrayItemValue(pathStr, valueStr string) AcceptedPlanAssignee_FieldPathArrayItemValue {
  1469  	fpaiv, err := ParseAcceptedPlanAssignee_FieldPathArrayItemValue(pathStr, valueStr)
  1470  	if err != nil {
  1471  		panic(err)
  1472  	}
  1473  	return fpaiv
  1474  }
  1475  
  1476  type AcceptedPlanAssignee_FieldTerminalPathArrayItemValue struct {
  1477  	AcceptedPlanAssignee_FieldTerminalPath
  1478  	value interface{}
  1479  }
  1480  
  1481  var _ AcceptedPlanAssignee_FieldPathArrayItemValue = (*AcceptedPlanAssignee_FieldTerminalPathArrayItemValue)(nil)
  1482  
  1483  // GetRawValue returns stored element value for array in object AcceptedPlan_Assignee as interface{}
  1484  func (fpaiv *AcceptedPlanAssignee_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1485  	return fpaiv.value
  1486  }
  1487  
  1488  func (fpaiv *AcceptedPlanAssignee_FieldTerminalPathArrayItemValue) GetSingle(source *AcceptedPlan_Assignee) (interface{}, bool) {
  1489  	return nil, false
  1490  }
  1491  
  1492  func (fpaiv *AcceptedPlanAssignee_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1493  	return fpaiv.GetSingle(source.(*AcceptedPlan_Assignee))
  1494  }
  1495  
  1496  // Contains returns a boolean indicating if value that is being held is present in given 'Assignee'
  1497  func (fpaiv *AcceptedPlanAssignee_FieldTerminalPathArrayItemValue) ContainsValue(source *AcceptedPlan_Assignee) bool {
  1498  	slice := fpaiv.AcceptedPlanAssignee_FieldTerminalPath.Get(source)
  1499  	for _, v := range slice {
  1500  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1501  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1502  				return true
  1503  			}
  1504  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1505  			return true
  1506  		}
  1507  	}
  1508  	return false
  1509  }
  1510  
  1511  // AcceptedPlanAssignee_FieldPathArrayOfValues allows storing slice of values for Assignee fields according to their type
  1512  type AcceptedPlanAssignee_FieldPathArrayOfValues interface {
  1513  	gotenobject.FieldPathArrayOfValues
  1514  	AcceptedPlanAssignee_FieldPath
  1515  }
  1516  
  1517  func ParseAcceptedPlanAssignee_FieldPathArrayOfValues(pathStr, valuesStr string) (AcceptedPlanAssignee_FieldPathArrayOfValues, error) {
  1518  	fp, err := ParseAcceptedPlanAssignee_FieldPath(pathStr)
  1519  	if err != nil {
  1520  		return nil, err
  1521  	}
  1522  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1523  	if err != nil {
  1524  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Assignee field path array of values from %s: %v", valuesStr, err)
  1525  	}
  1526  	return fpaov.(AcceptedPlanAssignee_FieldPathArrayOfValues), nil
  1527  }
  1528  
  1529  func MustParseAcceptedPlanAssignee_FieldPathArrayOfValues(pathStr, valuesStr string) AcceptedPlanAssignee_FieldPathArrayOfValues {
  1530  	fpaov, err := ParseAcceptedPlanAssignee_FieldPathArrayOfValues(pathStr, valuesStr)
  1531  	if err != nil {
  1532  		panic(err)
  1533  	}
  1534  	return fpaov
  1535  }
  1536  
  1537  type AcceptedPlanAssignee_FieldTerminalPathArrayOfValues struct {
  1538  	AcceptedPlanAssignee_FieldTerminalPath
  1539  	values interface{}
  1540  }
  1541  
  1542  var _ AcceptedPlanAssignee_FieldPathArrayOfValues = (*AcceptedPlanAssignee_FieldTerminalPathArrayOfValues)(nil)
  1543  
  1544  func (fpaov *AcceptedPlanAssignee_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1545  	switch fpaov.selector {
  1546  	case AcceptedPlanAssignee_FieldPathSelectorProjectAssignee:
  1547  		for _, v := range fpaov.values.([]*iam_project.Reference) {
  1548  			values = append(values, v)
  1549  		}
  1550  	case AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee:
  1551  		for _, v := range fpaov.values.([]*iam_organization.Reference) {
  1552  			values = append(values, v)
  1553  		}
  1554  	case AcceptedPlanAssignee_FieldPathSelectorSystemAssignee:
  1555  		for _, v := range fpaov.values.([]bool) {
  1556  			values = append(values, v)
  1557  		}
  1558  	}
  1559  	return
  1560  }
  1561  func (fpaov *AcceptedPlanAssignee_FieldTerminalPathArrayOfValues) AsProjectAssigneeArrayOfValues() ([]*iam_project.Reference, bool) {
  1562  	res, ok := fpaov.values.([]*iam_project.Reference)
  1563  	return res, ok
  1564  }
  1565  func (fpaov *AcceptedPlanAssignee_FieldTerminalPathArrayOfValues) AsOrganizationAssigneeArrayOfValues() ([]*iam_organization.Reference, bool) {
  1566  	res, ok := fpaov.values.([]*iam_organization.Reference)
  1567  	return res, ok
  1568  }
  1569  func (fpaov *AcceptedPlanAssignee_FieldTerminalPathArrayOfValues) AsSystemAssigneeArrayOfValues() ([]bool, bool) {
  1570  	res, ok := fpaov.values.([]bool)
  1571  	return res, ok
  1572  }