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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/iam/proto/v1/invitation.proto
     3  // DO NOT EDIT!!!
     4  
     5  package iam_invitation
     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  	condition "github.com/cloudwan/edgelq-sdk/iam/resources/v1/condition"
    27  	group "github.com/cloudwan/edgelq-sdk/iam/resources/v1/group"
    28  	role "github.com/cloudwan/edgelq-sdk/iam/resources/v1/role"
    29  	service_account "github.com/cloudwan/edgelq-sdk/iam/resources/v1/service_account"
    30  	user "github.com/cloudwan/edgelq-sdk/iam/resources/v1/user"
    31  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    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  	_ = &condition.Condition{}
    55  	_ = &group.Group{}
    56  	_ = &role.Role{}
    57  	_ = &service_account.ServiceAccount{}
    58  	_ = &user.User{}
    59  	_ = &timestamppb.Timestamp{}
    60  )
    61  
    62  // FieldPath provides implementation to handle
    63  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    64  type Actor_FieldPath interface {
    65  	gotenobject.FieldPath
    66  	Selector() Actor_FieldPathSelector
    67  	Get(source *Actor) []interface{}
    68  	GetSingle(source *Actor) (interface{}, bool)
    69  	ClearValue(item *Actor)
    70  
    71  	// Those methods build corresponding Actor_FieldPathValue
    72  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    73  	WithIValue(value interface{}) Actor_FieldPathValue
    74  	WithIArrayOfValues(values interface{}) Actor_FieldPathArrayOfValues
    75  	WithIArrayItemValue(value interface{}) Actor_FieldPathArrayItemValue
    76  }
    77  
    78  type Actor_FieldPathSelector int32
    79  
    80  const (
    81  	Actor_FieldPathSelectorUser           Actor_FieldPathSelector = 0
    82  	Actor_FieldPathSelectorServiceAccount Actor_FieldPathSelector = 1
    83  )
    84  
    85  func (s Actor_FieldPathSelector) String() string {
    86  	switch s {
    87  	case Actor_FieldPathSelectorUser:
    88  		return "user"
    89  	case Actor_FieldPathSelectorServiceAccount:
    90  		return "service_account"
    91  	default:
    92  		panic(fmt.Sprintf("Invalid selector for Actor: %d", s))
    93  	}
    94  }
    95  
    96  func BuildActor_FieldPath(fp gotenobject.RawFieldPath) (Actor_FieldPath, error) {
    97  	if len(fp) == 0 {
    98  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Actor")
    99  	}
   100  	if len(fp) == 1 {
   101  		switch fp[0] {
   102  		case "user":
   103  			return &Actor_FieldTerminalPath{selector: Actor_FieldPathSelectorUser}, nil
   104  		case "service_account", "serviceAccount", "service-account":
   105  			return &Actor_FieldTerminalPath{selector: Actor_FieldPathSelectorServiceAccount}, nil
   106  		}
   107  	}
   108  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Actor", fp)
   109  }
   110  
   111  func ParseActor_FieldPath(rawField string) (Actor_FieldPath, error) {
   112  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   113  	if err != nil {
   114  		return nil, err
   115  	}
   116  	return BuildActor_FieldPath(fp)
   117  }
   118  
   119  func MustParseActor_FieldPath(rawField string) Actor_FieldPath {
   120  	fp, err := ParseActor_FieldPath(rawField)
   121  	if err != nil {
   122  		panic(err)
   123  	}
   124  	return fp
   125  }
   126  
   127  type Actor_FieldTerminalPath struct {
   128  	selector Actor_FieldPathSelector
   129  }
   130  
   131  var _ Actor_FieldPath = (*Actor_FieldTerminalPath)(nil)
   132  
   133  func (fp *Actor_FieldTerminalPath) Selector() Actor_FieldPathSelector {
   134  	return fp.selector
   135  }
   136  
   137  // String returns path representation in proto convention
   138  func (fp *Actor_FieldTerminalPath) String() string {
   139  	return fp.selector.String()
   140  }
   141  
   142  // JSONString returns path representation is JSON convention
   143  func (fp *Actor_FieldTerminalPath) JSONString() string {
   144  	return strcase.ToLowerCamel(fp.String())
   145  }
   146  
   147  // Get returns all values pointed by specific field from source Actor
   148  func (fp *Actor_FieldTerminalPath) Get(source *Actor) (values []interface{}) {
   149  	if source != nil {
   150  		switch fp.selector {
   151  		case Actor_FieldPathSelectorUser:
   152  			if source.User != nil {
   153  				values = append(values, source.User)
   154  			}
   155  		case Actor_FieldPathSelectorServiceAccount:
   156  			if source.ServiceAccount != nil {
   157  				values = append(values, source.ServiceAccount)
   158  			}
   159  		default:
   160  			panic(fmt.Sprintf("Invalid selector for Actor: %d", fp.selector))
   161  		}
   162  	}
   163  	return
   164  }
   165  
   166  func (fp *Actor_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   167  	return fp.Get(source.(*Actor))
   168  }
   169  
   170  // GetSingle returns value pointed by specific field of from source Actor
   171  func (fp *Actor_FieldTerminalPath) GetSingle(source *Actor) (interface{}, bool) {
   172  	switch fp.selector {
   173  	case Actor_FieldPathSelectorUser:
   174  		res := source.GetUser()
   175  		return res, res != nil
   176  	case Actor_FieldPathSelectorServiceAccount:
   177  		res := source.GetServiceAccount()
   178  		return res, res != nil
   179  	default:
   180  		panic(fmt.Sprintf("Invalid selector for Actor: %d", fp.selector))
   181  	}
   182  }
   183  
   184  func (fp *Actor_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   185  	return fp.GetSingle(source.(*Actor))
   186  }
   187  
   188  // GetDefault returns a default value of the field type
   189  func (fp *Actor_FieldTerminalPath) GetDefault() interface{} {
   190  	switch fp.selector {
   191  	case Actor_FieldPathSelectorUser:
   192  		return (*user.Reference)(nil)
   193  	case Actor_FieldPathSelectorServiceAccount:
   194  		return (*service_account.Reference)(nil)
   195  	default:
   196  		panic(fmt.Sprintf("Invalid selector for Actor: %d", fp.selector))
   197  	}
   198  }
   199  
   200  func (fp *Actor_FieldTerminalPath) ClearValue(item *Actor) {
   201  	if item != nil {
   202  		switch fp.selector {
   203  		case Actor_FieldPathSelectorUser:
   204  			item.User = nil
   205  		case Actor_FieldPathSelectorServiceAccount:
   206  			item.ServiceAccount = nil
   207  		default:
   208  			panic(fmt.Sprintf("Invalid selector for Actor: %d", fp.selector))
   209  		}
   210  	}
   211  }
   212  
   213  func (fp *Actor_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   214  	fp.ClearValue(item.(*Actor))
   215  }
   216  
   217  // IsLeaf - whether field path is holds simple value
   218  func (fp *Actor_FieldTerminalPath) IsLeaf() bool {
   219  	return fp.selector == Actor_FieldPathSelectorUser ||
   220  		fp.selector == Actor_FieldPathSelectorServiceAccount
   221  }
   222  
   223  func (fp *Actor_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   224  	return []gotenobject.FieldPath{fp}
   225  }
   226  
   227  func (fp *Actor_FieldTerminalPath) WithIValue(value interface{}) Actor_FieldPathValue {
   228  	switch fp.selector {
   229  	case Actor_FieldPathSelectorUser:
   230  		return &Actor_FieldTerminalPathValue{Actor_FieldTerminalPath: *fp, value: value.(*user.Reference)}
   231  	case Actor_FieldPathSelectorServiceAccount:
   232  		return &Actor_FieldTerminalPathValue{Actor_FieldTerminalPath: *fp, value: value.(*service_account.Reference)}
   233  	default:
   234  		panic(fmt.Sprintf("Invalid selector for Actor: %d", fp.selector))
   235  	}
   236  }
   237  
   238  func (fp *Actor_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   239  	return fp.WithIValue(value)
   240  }
   241  
   242  func (fp *Actor_FieldTerminalPath) WithIArrayOfValues(values interface{}) Actor_FieldPathArrayOfValues {
   243  	fpaov := &Actor_FieldTerminalPathArrayOfValues{Actor_FieldTerminalPath: *fp}
   244  	switch fp.selector {
   245  	case Actor_FieldPathSelectorUser:
   246  		return &Actor_FieldTerminalPathArrayOfValues{Actor_FieldTerminalPath: *fp, values: values.([]*user.Reference)}
   247  	case Actor_FieldPathSelectorServiceAccount:
   248  		return &Actor_FieldTerminalPathArrayOfValues{Actor_FieldTerminalPath: *fp, values: values.([]*service_account.Reference)}
   249  	default:
   250  		panic(fmt.Sprintf("Invalid selector for Actor: %d", fp.selector))
   251  	}
   252  	return fpaov
   253  }
   254  
   255  func (fp *Actor_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   256  	return fp.WithIArrayOfValues(values)
   257  }
   258  
   259  func (fp *Actor_FieldTerminalPath) WithIArrayItemValue(value interface{}) Actor_FieldPathArrayItemValue {
   260  	switch fp.selector {
   261  	default:
   262  		panic(fmt.Sprintf("Invalid selector for Actor: %d", fp.selector))
   263  	}
   264  }
   265  
   266  func (fp *Actor_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   267  	return fp.WithIArrayItemValue(value)
   268  }
   269  
   270  // Actor_FieldPathValue allows storing values for Actor fields according to their type
   271  type Actor_FieldPathValue interface {
   272  	Actor_FieldPath
   273  	gotenobject.FieldPathValue
   274  	SetTo(target **Actor)
   275  	CompareWith(*Actor) (cmp int, comparable bool)
   276  }
   277  
   278  func ParseActor_FieldPathValue(pathStr, valueStr string) (Actor_FieldPathValue, error) {
   279  	fp, err := ParseActor_FieldPath(pathStr)
   280  	if err != nil {
   281  		return nil, err
   282  	}
   283  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   284  	if err != nil {
   285  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Actor field path value from %s: %v", valueStr, err)
   286  	}
   287  	return fpv.(Actor_FieldPathValue), nil
   288  }
   289  
   290  func MustParseActor_FieldPathValue(pathStr, valueStr string) Actor_FieldPathValue {
   291  	fpv, err := ParseActor_FieldPathValue(pathStr, valueStr)
   292  	if err != nil {
   293  		panic(err)
   294  	}
   295  	return fpv
   296  }
   297  
   298  type Actor_FieldTerminalPathValue struct {
   299  	Actor_FieldTerminalPath
   300  	value interface{}
   301  }
   302  
   303  var _ Actor_FieldPathValue = (*Actor_FieldTerminalPathValue)(nil)
   304  
   305  // GetRawValue returns raw value stored under selected path for 'Actor' as interface{}
   306  func (fpv *Actor_FieldTerminalPathValue) GetRawValue() interface{} {
   307  	return fpv.value
   308  }
   309  func (fpv *Actor_FieldTerminalPathValue) AsUserValue() (*user.Reference, bool) {
   310  	res, ok := fpv.value.(*user.Reference)
   311  	return res, ok
   312  }
   313  func (fpv *Actor_FieldTerminalPathValue) AsServiceAccountValue() (*service_account.Reference, bool) {
   314  	res, ok := fpv.value.(*service_account.Reference)
   315  	return res, ok
   316  }
   317  
   318  // SetTo stores value for selected field for object Actor
   319  func (fpv *Actor_FieldTerminalPathValue) SetTo(target **Actor) {
   320  	if *target == nil {
   321  		*target = new(Actor)
   322  	}
   323  	switch fpv.selector {
   324  	case Actor_FieldPathSelectorUser:
   325  		(*target).User = fpv.value.(*user.Reference)
   326  	case Actor_FieldPathSelectorServiceAccount:
   327  		(*target).ServiceAccount = fpv.value.(*service_account.Reference)
   328  	default:
   329  		panic(fmt.Sprintf("Invalid selector for Actor: %d", fpv.selector))
   330  	}
   331  }
   332  
   333  func (fpv *Actor_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   334  	typedObject := target.(*Actor)
   335  	fpv.SetTo(&typedObject)
   336  }
   337  
   338  // CompareWith compares value in the 'Actor_FieldTerminalPathValue' with the value under path in 'Actor'.
   339  func (fpv *Actor_FieldTerminalPathValue) CompareWith(source *Actor) (int, bool) {
   340  	switch fpv.selector {
   341  	case Actor_FieldPathSelectorUser:
   342  		leftValue := fpv.value.(*user.Reference)
   343  		rightValue := source.GetUser()
   344  		if leftValue == nil {
   345  			if rightValue != nil {
   346  				return -1, true
   347  			}
   348  			return 0, true
   349  		}
   350  		if rightValue == nil {
   351  			return 1, true
   352  		}
   353  		if leftValue.String() == rightValue.String() {
   354  			return 0, true
   355  		} else if leftValue.String() < rightValue.String() {
   356  			return -1, true
   357  		} else {
   358  			return 1, true
   359  		}
   360  	case Actor_FieldPathSelectorServiceAccount:
   361  		leftValue := fpv.value.(*service_account.Reference)
   362  		rightValue := source.GetServiceAccount()
   363  		if leftValue == nil {
   364  			if rightValue != nil {
   365  				return -1, true
   366  			}
   367  			return 0, true
   368  		}
   369  		if rightValue == nil {
   370  			return 1, true
   371  		}
   372  		if leftValue.String() == rightValue.String() {
   373  			return 0, true
   374  		} else if leftValue.String() < rightValue.String() {
   375  			return -1, true
   376  		} else {
   377  			return 1, true
   378  		}
   379  	default:
   380  		panic(fmt.Sprintf("Invalid selector for Actor: %d", fpv.selector))
   381  	}
   382  }
   383  
   384  func (fpv *Actor_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   385  	return fpv.CompareWith(source.(*Actor))
   386  }
   387  
   388  // Actor_FieldPathArrayItemValue allows storing single item in Path-specific values for Actor according to their type
   389  // Present only for array (repeated) types.
   390  type Actor_FieldPathArrayItemValue interface {
   391  	gotenobject.FieldPathArrayItemValue
   392  	Actor_FieldPath
   393  	ContainsValue(*Actor) bool
   394  }
   395  
   396  // ParseActor_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   397  func ParseActor_FieldPathArrayItemValue(pathStr, valueStr string) (Actor_FieldPathArrayItemValue, error) {
   398  	fp, err := ParseActor_FieldPath(pathStr)
   399  	if err != nil {
   400  		return nil, err
   401  	}
   402  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   403  	if err != nil {
   404  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Actor field path array item value from %s: %v", valueStr, err)
   405  	}
   406  	return fpaiv.(Actor_FieldPathArrayItemValue), nil
   407  }
   408  
   409  func MustParseActor_FieldPathArrayItemValue(pathStr, valueStr string) Actor_FieldPathArrayItemValue {
   410  	fpaiv, err := ParseActor_FieldPathArrayItemValue(pathStr, valueStr)
   411  	if err != nil {
   412  		panic(err)
   413  	}
   414  	return fpaiv
   415  }
   416  
   417  type Actor_FieldTerminalPathArrayItemValue struct {
   418  	Actor_FieldTerminalPath
   419  	value interface{}
   420  }
   421  
   422  var _ Actor_FieldPathArrayItemValue = (*Actor_FieldTerminalPathArrayItemValue)(nil)
   423  
   424  // GetRawValue returns stored element value for array in object Actor as interface{}
   425  func (fpaiv *Actor_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   426  	return fpaiv.value
   427  }
   428  
   429  func (fpaiv *Actor_FieldTerminalPathArrayItemValue) GetSingle(source *Actor) (interface{}, bool) {
   430  	return nil, false
   431  }
   432  
   433  func (fpaiv *Actor_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   434  	return fpaiv.GetSingle(source.(*Actor))
   435  }
   436  
   437  // Contains returns a boolean indicating if value that is being held is present in given 'Actor'
   438  func (fpaiv *Actor_FieldTerminalPathArrayItemValue) ContainsValue(source *Actor) bool {
   439  	slice := fpaiv.Actor_FieldTerminalPath.Get(source)
   440  	for _, v := range slice {
   441  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   442  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   443  				return true
   444  			}
   445  		} else if reflect.DeepEqual(v, fpaiv.value) {
   446  			return true
   447  		}
   448  	}
   449  	return false
   450  }
   451  
   452  // Actor_FieldPathArrayOfValues allows storing slice of values for Actor fields according to their type
   453  type Actor_FieldPathArrayOfValues interface {
   454  	gotenobject.FieldPathArrayOfValues
   455  	Actor_FieldPath
   456  }
   457  
   458  func ParseActor_FieldPathArrayOfValues(pathStr, valuesStr string) (Actor_FieldPathArrayOfValues, error) {
   459  	fp, err := ParseActor_FieldPath(pathStr)
   460  	if err != nil {
   461  		return nil, err
   462  	}
   463  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   464  	if err != nil {
   465  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Actor field path array of values from %s: %v", valuesStr, err)
   466  	}
   467  	return fpaov.(Actor_FieldPathArrayOfValues), nil
   468  }
   469  
   470  func MustParseActor_FieldPathArrayOfValues(pathStr, valuesStr string) Actor_FieldPathArrayOfValues {
   471  	fpaov, err := ParseActor_FieldPathArrayOfValues(pathStr, valuesStr)
   472  	if err != nil {
   473  		panic(err)
   474  	}
   475  	return fpaov
   476  }
   477  
   478  type Actor_FieldTerminalPathArrayOfValues struct {
   479  	Actor_FieldTerminalPath
   480  	values interface{}
   481  }
   482  
   483  var _ Actor_FieldPathArrayOfValues = (*Actor_FieldTerminalPathArrayOfValues)(nil)
   484  
   485  func (fpaov *Actor_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   486  	switch fpaov.selector {
   487  	case Actor_FieldPathSelectorUser:
   488  		for _, v := range fpaov.values.([]*user.Reference) {
   489  			values = append(values, v)
   490  		}
   491  	case Actor_FieldPathSelectorServiceAccount:
   492  		for _, v := range fpaov.values.([]*service_account.Reference) {
   493  			values = append(values, v)
   494  		}
   495  	}
   496  	return
   497  }
   498  func (fpaov *Actor_FieldTerminalPathArrayOfValues) AsUserArrayOfValues() ([]*user.Reference, bool) {
   499  	res, ok := fpaov.values.([]*user.Reference)
   500  	return res, ok
   501  }
   502  func (fpaov *Actor_FieldTerminalPathArrayOfValues) AsServiceAccountArrayOfValues() ([]*service_account.Reference, bool) {
   503  	res, ok := fpaov.values.([]*service_account.Reference)
   504  	return res, ok
   505  }
   506  
   507  // FieldPath provides implementation to handle
   508  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
   509  type Invitation_FieldPath interface {
   510  	gotenobject.FieldPath
   511  	Selector() Invitation_FieldPathSelector
   512  	Get(source *Invitation) []interface{}
   513  	GetSingle(source *Invitation) (interface{}, bool)
   514  	ClearValue(item *Invitation)
   515  
   516  	// Those methods build corresponding Invitation_FieldPathValue
   517  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
   518  	WithIValue(value interface{}) Invitation_FieldPathValue
   519  	WithIArrayOfValues(values interface{}) Invitation_FieldPathArrayOfValues
   520  	WithIArrayItemValue(value interface{}) Invitation_FieldPathArrayItemValue
   521  }
   522  
   523  type Invitation_FieldPathSelector int32
   524  
   525  const (
   526  	Invitation_FieldPathSelectorInviteeEmail    Invitation_FieldPathSelector = 0
   527  	Invitation_FieldPathSelectorInviterActor    Invitation_FieldPathSelector = 1
   528  	Invitation_FieldPathSelectorInviterFullName Invitation_FieldPathSelector = 2
   529  	Invitation_FieldPathSelectorInviterEmail    Invitation_FieldPathSelector = 3
   530  	Invitation_FieldPathSelectorLanguageCode    Invitation_FieldPathSelector = 4
   531  	Invitation_FieldPathSelectorBindingRoles    Invitation_FieldPathSelector = 5
   532  	Invitation_FieldPathSelectorGroups          Invitation_FieldPathSelector = 6
   533  	Invitation_FieldPathSelectorExpirationDate  Invitation_FieldPathSelector = 7
   534  	Invitation_FieldPathSelectorExtras          Invitation_FieldPathSelector = 8
   535  	Invitation_FieldPathSelectorState           Invitation_FieldPathSelector = 9
   536  )
   537  
   538  func (s Invitation_FieldPathSelector) String() string {
   539  	switch s {
   540  	case Invitation_FieldPathSelectorInviteeEmail:
   541  		return "invitee_email"
   542  	case Invitation_FieldPathSelectorInviterActor:
   543  		return "inviter_actor"
   544  	case Invitation_FieldPathSelectorInviterFullName:
   545  		return "inviter_full_name"
   546  	case Invitation_FieldPathSelectorInviterEmail:
   547  		return "inviter_email"
   548  	case Invitation_FieldPathSelectorLanguageCode:
   549  		return "language_code"
   550  	case Invitation_FieldPathSelectorBindingRoles:
   551  		return "binding_roles"
   552  	case Invitation_FieldPathSelectorGroups:
   553  		return "groups"
   554  	case Invitation_FieldPathSelectorExpirationDate:
   555  		return "expiration_date"
   556  	case Invitation_FieldPathSelectorExtras:
   557  		return "extras"
   558  	case Invitation_FieldPathSelectorState:
   559  		return "state"
   560  	default:
   561  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", s))
   562  	}
   563  }
   564  
   565  func BuildInvitation_FieldPath(fp gotenobject.RawFieldPath) (Invitation_FieldPath, error) {
   566  	if len(fp) == 0 {
   567  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Invitation")
   568  	}
   569  	if len(fp) == 1 {
   570  		switch fp[0] {
   571  		case "invitee_email", "inviteeEmail", "invitee-email":
   572  			return &Invitation_FieldTerminalPath{selector: Invitation_FieldPathSelectorInviteeEmail}, nil
   573  		case "inviter_actor", "inviterActor", "inviter-actor":
   574  			return &Invitation_FieldTerminalPath{selector: Invitation_FieldPathSelectorInviterActor}, nil
   575  		case "inviter_full_name", "inviterFullName", "inviter-full-name":
   576  			return &Invitation_FieldTerminalPath{selector: Invitation_FieldPathSelectorInviterFullName}, nil
   577  		case "inviter_email", "inviterEmail", "inviter-email":
   578  			return &Invitation_FieldTerminalPath{selector: Invitation_FieldPathSelectorInviterEmail}, nil
   579  		case "language_code", "languageCode", "language-code":
   580  			return &Invitation_FieldTerminalPath{selector: Invitation_FieldPathSelectorLanguageCode}, nil
   581  		case "binding_roles", "bindingRoles", "binding-roles":
   582  			return &Invitation_FieldTerminalPath{selector: Invitation_FieldPathSelectorBindingRoles}, nil
   583  		case "groups":
   584  			return &Invitation_FieldTerminalPath{selector: Invitation_FieldPathSelectorGroups}, nil
   585  		case "expiration_date", "expirationDate", "expiration-date":
   586  			return &Invitation_FieldTerminalPath{selector: Invitation_FieldPathSelectorExpirationDate}, nil
   587  		case "extras":
   588  			return &Invitation_FieldTerminalPath{selector: Invitation_FieldPathSelectorExtras}, nil
   589  		case "state":
   590  			return &Invitation_FieldTerminalPath{selector: Invitation_FieldPathSelectorState}, nil
   591  		}
   592  	} else {
   593  		switch fp[0] {
   594  		case "inviter_actor", "inviterActor", "inviter-actor":
   595  			if subpath, err := BuildActor_FieldPath(fp[1:]); err != nil {
   596  				return nil, err
   597  			} else {
   598  				return &Invitation_FieldSubPath{selector: Invitation_FieldPathSelectorInviterActor, subPath: subpath}, nil
   599  			}
   600  		case "binding_roles", "bindingRoles", "binding-roles":
   601  			if subpath, err := BuildInvitationBindingRole_FieldPath(fp[1:]); err != nil {
   602  				return nil, err
   603  			} else {
   604  				return &Invitation_FieldSubPath{selector: Invitation_FieldPathSelectorBindingRoles, subPath: subpath}, nil
   605  			}
   606  		case "extras":
   607  			if len(fp) > 2 {
   608  				return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object Invitation)", fp)
   609  			}
   610  			return &Invitation_FieldPathMap{selector: Invitation_FieldPathSelectorExtras, key: fp[1]}, nil
   611  		}
   612  	}
   613  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Invitation", fp)
   614  }
   615  
   616  func ParseInvitation_FieldPath(rawField string) (Invitation_FieldPath, error) {
   617  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   618  	if err != nil {
   619  		return nil, err
   620  	}
   621  	return BuildInvitation_FieldPath(fp)
   622  }
   623  
   624  func MustParseInvitation_FieldPath(rawField string) Invitation_FieldPath {
   625  	fp, err := ParseInvitation_FieldPath(rawField)
   626  	if err != nil {
   627  		panic(err)
   628  	}
   629  	return fp
   630  }
   631  
   632  type Invitation_FieldTerminalPath struct {
   633  	selector Invitation_FieldPathSelector
   634  }
   635  
   636  var _ Invitation_FieldPath = (*Invitation_FieldTerminalPath)(nil)
   637  
   638  func (fp *Invitation_FieldTerminalPath) Selector() Invitation_FieldPathSelector {
   639  	return fp.selector
   640  }
   641  
   642  // String returns path representation in proto convention
   643  func (fp *Invitation_FieldTerminalPath) String() string {
   644  	return fp.selector.String()
   645  }
   646  
   647  // JSONString returns path representation is JSON convention
   648  func (fp *Invitation_FieldTerminalPath) JSONString() string {
   649  	return strcase.ToLowerCamel(fp.String())
   650  }
   651  
   652  // Get returns all values pointed by specific field from source Invitation
   653  func (fp *Invitation_FieldTerminalPath) Get(source *Invitation) (values []interface{}) {
   654  	if source != nil {
   655  		switch fp.selector {
   656  		case Invitation_FieldPathSelectorInviteeEmail:
   657  			values = append(values, source.InviteeEmail)
   658  		case Invitation_FieldPathSelectorInviterActor:
   659  			if source.InviterActor != nil {
   660  				values = append(values, source.InviterActor)
   661  			}
   662  		case Invitation_FieldPathSelectorInviterFullName:
   663  			values = append(values, source.InviterFullName)
   664  		case Invitation_FieldPathSelectorInviterEmail:
   665  			values = append(values, source.InviterEmail)
   666  		case Invitation_FieldPathSelectorLanguageCode:
   667  			values = append(values, source.LanguageCode)
   668  		case Invitation_FieldPathSelectorBindingRoles:
   669  			for _, value := range source.GetBindingRoles() {
   670  				values = append(values, value)
   671  			}
   672  		case Invitation_FieldPathSelectorGroups:
   673  			for _, value := range source.GetGroups() {
   674  				values = append(values, value)
   675  			}
   676  		case Invitation_FieldPathSelectorExpirationDate:
   677  			if source.ExpirationDate != nil {
   678  				values = append(values, source.ExpirationDate)
   679  			}
   680  		case Invitation_FieldPathSelectorExtras:
   681  			values = append(values, source.Extras)
   682  		case Invitation_FieldPathSelectorState:
   683  			values = append(values, source.State)
   684  		default:
   685  			panic(fmt.Sprintf("Invalid selector for Invitation: %d", fp.selector))
   686  		}
   687  	}
   688  	return
   689  }
   690  
   691  func (fp *Invitation_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   692  	return fp.Get(source.(*Invitation))
   693  }
   694  
   695  // GetSingle returns value pointed by specific field of from source Invitation
   696  func (fp *Invitation_FieldTerminalPath) GetSingle(source *Invitation) (interface{}, bool) {
   697  	switch fp.selector {
   698  	case Invitation_FieldPathSelectorInviteeEmail:
   699  		return source.GetInviteeEmail(), source != nil
   700  	case Invitation_FieldPathSelectorInviterActor:
   701  		res := source.GetInviterActor()
   702  		return res, res != nil
   703  	case Invitation_FieldPathSelectorInviterFullName:
   704  		return source.GetInviterFullName(), source != nil
   705  	case Invitation_FieldPathSelectorInviterEmail:
   706  		return source.GetInviterEmail(), source != nil
   707  	case Invitation_FieldPathSelectorLanguageCode:
   708  		return source.GetLanguageCode(), source != nil
   709  	case Invitation_FieldPathSelectorBindingRoles:
   710  		res := source.GetBindingRoles()
   711  		return res, res != nil
   712  	case Invitation_FieldPathSelectorGroups:
   713  		res := source.GetGroups()
   714  		return res, res != nil
   715  	case Invitation_FieldPathSelectorExpirationDate:
   716  		res := source.GetExpirationDate()
   717  		return res, res != nil
   718  	case Invitation_FieldPathSelectorExtras:
   719  		res := source.GetExtras()
   720  		return res, res != nil
   721  	case Invitation_FieldPathSelectorState:
   722  		return source.GetState(), source != nil
   723  	default:
   724  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fp.selector))
   725  	}
   726  }
   727  
   728  func (fp *Invitation_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   729  	return fp.GetSingle(source.(*Invitation))
   730  }
   731  
   732  // GetDefault returns a default value of the field type
   733  func (fp *Invitation_FieldTerminalPath) GetDefault() interface{} {
   734  	switch fp.selector {
   735  	case Invitation_FieldPathSelectorInviteeEmail:
   736  		return ""
   737  	case Invitation_FieldPathSelectorInviterActor:
   738  		return (*Actor)(nil)
   739  	case Invitation_FieldPathSelectorInviterFullName:
   740  		return ""
   741  	case Invitation_FieldPathSelectorInviterEmail:
   742  		return ""
   743  	case Invitation_FieldPathSelectorLanguageCode:
   744  		return ""
   745  	case Invitation_FieldPathSelectorBindingRoles:
   746  		return ([]*Invitation_BindingRole)(nil)
   747  	case Invitation_FieldPathSelectorGroups:
   748  		return ([]*group.Reference)(nil)
   749  	case Invitation_FieldPathSelectorExpirationDate:
   750  		return (*timestamppb.Timestamp)(nil)
   751  	case Invitation_FieldPathSelectorExtras:
   752  		return (map[string]string)(nil)
   753  	case Invitation_FieldPathSelectorState:
   754  		return Invitation_STATE_UNSPECIFIED
   755  	default:
   756  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fp.selector))
   757  	}
   758  }
   759  
   760  func (fp *Invitation_FieldTerminalPath) ClearValue(item *Invitation) {
   761  	if item != nil {
   762  		switch fp.selector {
   763  		case Invitation_FieldPathSelectorInviteeEmail:
   764  			item.InviteeEmail = ""
   765  		case Invitation_FieldPathSelectorInviterActor:
   766  			item.InviterActor = nil
   767  		case Invitation_FieldPathSelectorInviterFullName:
   768  			item.InviterFullName = ""
   769  		case Invitation_FieldPathSelectorInviterEmail:
   770  			item.InviterEmail = ""
   771  		case Invitation_FieldPathSelectorLanguageCode:
   772  			item.LanguageCode = ""
   773  		case Invitation_FieldPathSelectorBindingRoles:
   774  			item.BindingRoles = nil
   775  		case Invitation_FieldPathSelectorGroups:
   776  			item.Groups = nil
   777  		case Invitation_FieldPathSelectorExpirationDate:
   778  			item.ExpirationDate = nil
   779  		case Invitation_FieldPathSelectorExtras:
   780  			item.Extras = nil
   781  		case Invitation_FieldPathSelectorState:
   782  			item.State = Invitation_STATE_UNSPECIFIED
   783  		default:
   784  			panic(fmt.Sprintf("Invalid selector for Invitation: %d", fp.selector))
   785  		}
   786  	}
   787  }
   788  
   789  func (fp *Invitation_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   790  	fp.ClearValue(item.(*Invitation))
   791  }
   792  
   793  // IsLeaf - whether field path is holds simple value
   794  func (fp *Invitation_FieldTerminalPath) IsLeaf() bool {
   795  	return fp.selector == Invitation_FieldPathSelectorInviteeEmail ||
   796  		fp.selector == Invitation_FieldPathSelectorInviterFullName ||
   797  		fp.selector == Invitation_FieldPathSelectorInviterEmail ||
   798  		fp.selector == Invitation_FieldPathSelectorLanguageCode ||
   799  		fp.selector == Invitation_FieldPathSelectorGroups ||
   800  		fp.selector == Invitation_FieldPathSelectorExpirationDate ||
   801  		fp.selector == Invitation_FieldPathSelectorExtras ||
   802  		fp.selector == Invitation_FieldPathSelectorState
   803  }
   804  
   805  func (fp *Invitation_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   806  	return []gotenobject.FieldPath{fp}
   807  }
   808  
   809  func (fp *Invitation_FieldTerminalPath) WithIValue(value interface{}) Invitation_FieldPathValue {
   810  	switch fp.selector {
   811  	case Invitation_FieldPathSelectorInviteeEmail:
   812  		return &Invitation_FieldTerminalPathValue{Invitation_FieldTerminalPath: *fp, value: value.(string)}
   813  	case Invitation_FieldPathSelectorInviterActor:
   814  		return &Invitation_FieldTerminalPathValue{Invitation_FieldTerminalPath: *fp, value: value.(*Actor)}
   815  	case Invitation_FieldPathSelectorInviterFullName:
   816  		return &Invitation_FieldTerminalPathValue{Invitation_FieldTerminalPath: *fp, value: value.(string)}
   817  	case Invitation_FieldPathSelectorInviterEmail:
   818  		return &Invitation_FieldTerminalPathValue{Invitation_FieldTerminalPath: *fp, value: value.(string)}
   819  	case Invitation_FieldPathSelectorLanguageCode:
   820  		return &Invitation_FieldTerminalPathValue{Invitation_FieldTerminalPath: *fp, value: value.(string)}
   821  	case Invitation_FieldPathSelectorBindingRoles:
   822  		return &Invitation_FieldTerminalPathValue{Invitation_FieldTerminalPath: *fp, value: value.([]*Invitation_BindingRole)}
   823  	case Invitation_FieldPathSelectorGroups:
   824  		return &Invitation_FieldTerminalPathValue{Invitation_FieldTerminalPath: *fp, value: value.([]*group.Reference)}
   825  	case Invitation_FieldPathSelectorExpirationDate:
   826  		return &Invitation_FieldTerminalPathValue{Invitation_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)}
   827  	case Invitation_FieldPathSelectorExtras:
   828  		return &Invitation_FieldTerminalPathValue{Invitation_FieldTerminalPath: *fp, value: value.(map[string]string)}
   829  	case Invitation_FieldPathSelectorState:
   830  		return &Invitation_FieldTerminalPathValue{Invitation_FieldTerminalPath: *fp, value: value.(Invitation_State)}
   831  	default:
   832  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fp.selector))
   833  	}
   834  }
   835  
   836  func (fp *Invitation_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   837  	return fp.WithIValue(value)
   838  }
   839  
   840  func (fp *Invitation_FieldTerminalPath) WithIArrayOfValues(values interface{}) Invitation_FieldPathArrayOfValues {
   841  	fpaov := &Invitation_FieldTerminalPathArrayOfValues{Invitation_FieldTerminalPath: *fp}
   842  	switch fp.selector {
   843  	case Invitation_FieldPathSelectorInviteeEmail:
   844  		return &Invitation_FieldTerminalPathArrayOfValues{Invitation_FieldTerminalPath: *fp, values: values.([]string)}
   845  	case Invitation_FieldPathSelectorInviterActor:
   846  		return &Invitation_FieldTerminalPathArrayOfValues{Invitation_FieldTerminalPath: *fp, values: values.([]*Actor)}
   847  	case Invitation_FieldPathSelectorInviterFullName:
   848  		return &Invitation_FieldTerminalPathArrayOfValues{Invitation_FieldTerminalPath: *fp, values: values.([]string)}
   849  	case Invitation_FieldPathSelectorInviterEmail:
   850  		return &Invitation_FieldTerminalPathArrayOfValues{Invitation_FieldTerminalPath: *fp, values: values.([]string)}
   851  	case Invitation_FieldPathSelectorLanguageCode:
   852  		return &Invitation_FieldTerminalPathArrayOfValues{Invitation_FieldTerminalPath: *fp, values: values.([]string)}
   853  	case Invitation_FieldPathSelectorBindingRoles:
   854  		return &Invitation_FieldTerminalPathArrayOfValues{Invitation_FieldTerminalPath: *fp, values: values.([][]*Invitation_BindingRole)}
   855  	case Invitation_FieldPathSelectorGroups:
   856  		return &Invitation_FieldTerminalPathArrayOfValues{Invitation_FieldTerminalPath: *fp, values: values.([][]*group.Reference)}
   857  	case Invitation_FieldPathSelectorExpirationDate:
   858  		return &Invitation_FieldTerminalPathArrayOfValues{Invitation_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)}
   859  	case Invitation_FieldPathSelectorExtras:
   860  		return &Invitation_FieldTerminalPathArrayOfValues{Invitation_FieldTerminalPath: *fp, values: values.([]map[string]string)}
   861  	case Invitation_FieldPathSelectorState:
   862  		return &Invitation_FieldTerminalPathArrayOfValues{Invitation_FieldTerminalPath: *fp, values: values.([]Invitation_State)}
   863  	default:
   864  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fp.selector))
   865  	}
   866  	return fpaov
   867  }
   868  
   869  func (fp *Invitation_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   870  	return fp.WithIArrayOfValues(values)
   871  }
   872  
   873  func (fp *Invitation_FieldTerminalPath) WithIArrayItemValue(value interface{}) Invitation_FieldPathArrayItemValue {
   874  	switch fp.selector {
   875  	case Invitation_FieldPathSelectorBindingRoles:
   876  		return &Invitation_FieldTerminalPathArrayItemValue{Invitation_FieldTerminalPath: *fp, value: value.(*Invitation_BindingRole)}
   877  	case Invitation_FieldPathSelectorGroups:
   878  		return &Invitation_FieldTerminalPathArrayItemValue{Invitation_FieldTerminalPath: *fp, value: value.(*group.Reference)}
   879  	default:
   880  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fp.selector))
   881  	}
   882  }
   883  
   884  func (fp *Invitation_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   885  	return fp.WithIArrayItemValue(value)
   886  }
   887  
   888  // FieldPath for map type with additional Key information
   889  type Invitation_FieldPathMap struct {
   890  	key      string
   891  	selector Invitation_FieldPathSelector
   892  }
   893  
   894  var _ Invitation_FieldPath = (*Invitation_FieldPathMap)(nil)
   895  
   896  func (fpm *Invitation_FieldPathMap) Selector() Invitation_FieldPathSelector {
   897  	return fpm.selector
   898  }
   899  
   900  func (fpm *Invitation_FieldPathMap) Key() string {
   901  	return fpm.key
   902  }
   903  
   904  // String returns path representation in proto convention
   905  func (fpm *Invitation_FieldPathMap) String() string {
   906  	return fpm.selector.String() + "." + fpm.key
   907  }
   908  
   909  // JSONString returns path representation is JSON convention. Note that map keys are not transformed
   910  func (fpm *Invitation_FieldPathMap) JSONString() string {
   911  	return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key
   912  }
   913  
   914  // Get returns all values pointed by selected field map key from source Invitation
   915  func (fpm *Invitation_FieldPathMap) Get(source *Invitation) (values []interface{}) {
   916  	switch fpm.selector {
   917  	case Invitation_FieldPathSelectorExtras:
   918  		if value, ok := source.GetExtras()[fpm.key]; ok {
   919  			values = append(values, value)
   920  		}
   921  	default:
   922  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpm.selector))
   923  	}
   924  	return
   925  }
   926  
   927  func (fpm *Invitation_FieldPathMap) GetRaw(source proto.Message) []interface{} {
   928  	return fpm.Get(source.(*Invitation))
   929  }
   930  
   931  // GetSingle returns value by selected field map key from source Invitation
   932  func (fpm *Invitation_FieldPathMap) GetSingle(source *Invitation) (interface{}, bool) {
   933  	switch fpm.selector {
   934  	case Invitation_FieldPathSelectorExtras:
   935  		res, ok := source.GetExtras()[fpm.key]
   936  		return res, ok
   937  	default:
   938  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpm.selector))
   939  	}
   940  }
   941  
   942  func (fpm *Invitation_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) {
   943  	return fpm.GetSingle(source.(*Invitation))
   944  }
   945  
   946  // GetDefault returns a default value of the field type
   947  func (fpm *Invitation_FieldPathMap) GetDefault() interface{} {
   948  	switch fpm.selector {
   949  	case Invitation_FieldPathSelectorExtras:
   950  		var v string
   951  		return v
   952  	default:
   953  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpm.selector))
   954  	}
   955  }
   956  
   957  func (fpm *Invitation_FieldPathMap) ClearValue(item *Invitation) {
   958  	if item != nil {
   959  		switch fpm.selector {
   960  		case Invitation_FieldPathSelectorExtras:
   961  			delete(item.Extras, fpm.key)
   962  		default:
   963  			panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpm.selector))
   964  		}
   965  	}
   966  }
   967  
   968  func (fpm *Invitation_FieldPathMap) ClearValueRaw(item proto.Message) {
   969  	fpm.ClearValue(item.(*Invitation))
   970  }
   971  
   972  // IsLeaf - whether field path is holds simple value
   973  func (fpm *Invitation_FieldPathMap) IsLeaf() bool {
   974  	switch fpm.selector {
   975  	case Invitation_FieldPathSelectorExtras:
   976  		return true
   977  	default:
   978  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpm.selector))
   979  	}
   980  }
   981  
   982  func (fpm *Invitation_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   983  	return []gotenobject.FieldPath{fpm}
   984  }
   985  
   986  func (fpm *Invitation_FieldPathMap) WithIValue(value interface{}) Invitation_FieldPathValue {
   987  	switch fpm.selector {
   988  	case Invitation_FieldPathSelectorExtras:
   989  		return &Invitation_FieldPathMapValue{Invitation_FieldPathMap: *fpm, value: value.(string)}
   990  	default:
   991  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpm.selector))
   992  	}
   993  }
   994  
   995  func (fpm *Invitation_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   996  	return fpm.WithIValue(value)
   997  }
   998  
   999  func (fpm *Invitation_FieldPathMap) WithIArrayOfValues(values interface{}) Invitation_FieldPathArrayOfValues {
  1000  	switch fpm.selector {
  1001  	case Invitation_FieldPathSelectorExtras:
  1002  		return &Invitation_FieldPathMapArrayOfValues{Invitation_FieldPathMap: *fpm, values: values.([]string)}
  1003  	default:
  1004  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpm.selector))
  1005  	}
  1006  }
  1007  
  1008  func (fpm *Invitation_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1009  	return fpm.WithIArrayOfValues(values)
  1010  }
  1011  
  1012  func (fpm *Invitation_FieldPathMap) WithIArrayItemValue(value interface{}) Invitation_FieldPathArrayItemValue {
  1013  	panic("Cannot create array item value from map fieldpath")
  1014  }
  1015  
  1016  func (fpm *Invitation_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1017  	return fpm.WithIArrayItemValue(value)
  1018  }
  1019  
  1020  type Invitation_FieldSubPath struct {
  1021  	selector Invitation_FieldPathSelector
  1022  	subPath  gotenobject.FieldPath
  1023  }
  1024  
  1025  var _ Invitation_FieldPath = (*Invitation_FieldSubPath)(nil)
  1026  
  1027  func (fps *Invitation_FieldSubPath) Selector() Invitation_FieldPathSelector {
  1028  	return fps.selector
  1029  }
  1030  func (fps *Invitation_FieldSubPath) AsInviterActorSubPath() (Actor_FieldPath, bool) {
  1031  	res, ok := fps.subPath.(Actor_FieldPath)
  1032  	return res, ok
  1033  }
  1034  func (fps *Invitation_FieldSubPath) AsBindingRolesSubPath() (InvitationBindingRole_FieldPath, bool) {
  1035  	res, ok := fps.subPath.(InvitationBindingRole_FieldPath)
  1036  	return res, ok
  1037  }
  1038  
  1039  // String returns path representation in proto convention
  1040  func (fps *Invitation_FieldSubPath) String() string {
  1041  	return fps.selector.String() + "." + fps.subPath.String()
  1042  }
  1043  
  1044  // JSONString returns path representation is JSON convention
  1045  func (fps *Invitation_FieldSubPath) JSONString() string {
  1046  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
  1047  }
  1048  
  1049  // Get returns all values pointed by selected field from source Invitation
  1050  func (fps *Invitation_FieldSubPath) Get(source *Invitation) (values []interface{}) {
  1051  	switch fps.selector {
  1052  	case Invitation_FieldPathSelectorInviterActor:
  1053  		values = append(values, fps.subPath.GetRaw(source.GetInviterActor())...)
  1054  	case Invitation_FieldPathSelectorBindingRoles:
  1055  		for _, item := range source.GetBindingRoles() {
  1056  			values = append(values, fps.subPath.GetRaw(item)...)
  1057  		}
  1058  	default:
  1059  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fps.selector))
  1060  	}
  1061  	return
  1062  }
  1063  
  1064  func (fps *Invitation_FieldSubPath) GetRaw(source proto.Message) []interface{} {
  1065  	return fps.Get(source.(*Invitation))
  1066  }
  1067  
  1068  // GetSingle returns value of selected field from source Invitation
  1069  func (fps *Invitation_FieldSubPath) GetSingle(source *Invitation) (interface{}, bool) {
  1070  	switch fps.selector {
  1071  	case Invitation_FieldPathSelectorInviterActor:
  1072  		if source.GetInviterActor() == nil {
  1073  			return nil, false
  1074  		}
  1075  		return fps.subPath.GetSingleRaw(source.GetInviterActor())
  1076  	case Invitation_FieldPathSelectorBindingRoles:
  1077  		if len(source.GetBindingRoles()) == 0 {
  1078  			return nil, false
  1079  		}
  1080  		return fps.subPath.GetSingleRaw(source.GetBindingRoles()[0])
  1081  	default:
  1082  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fps.selector))
  1083  	}
  1084  }
  1085  
  1086  func (fps *Invitation_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1087  	return fps.GetSingle(source.(*Invitation))
  1088  }
  1089  
  1090  // GetDefault returns a default value of the field type
  1091  func (fps *Invitation_FieldSubPath) GetDefault() interface{} {
  1092  	return fps.subPath.GetDefault()
  1093  }
  1094  
  1095  func (fps *Invitation_FieldSubPath) ClearValue(item *Invitation) {
  1096  	if item != nil {
  1097  		switch fps.selector {
  1098  		case Invitation_FieldPathSelectorInviterActor:
  1099  			fps.subPath.ClearValueRaw(item.InviterActor)
  1100  		case Invitation_FieldPathSelectorBindingRoles:
  1101  			for _, subItem := range item.BindingRoles {
  1102  				fps.subPath.ClearValueRaw(subItem)
  1103  			}
  1104  		default:
  1105  			panic(fmt.Sprintf("Invalid selector for Invitation: %d", fps.selector))
  1106  		}
  1107  	}
  1108  }
  1109  
  1110  func (fps *Invitation_FieldSubPath) ClearValueRaw(item proto.Message) {
  1111  	fps.ClearValue(item.(*Invitation))
  1112  }
  1113  
  1114  // IsLeaf - whether field path is holds simple value
  1115  func (fps *Invitation_FieldSubPath) IsLeaf() bool {
  1116  	return fps.subPath.IsLeaf()
  1117  }
  1118  
  1119  func (fps *Invitation_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1120  	iPaths := []gotenobject.FieldPath{&Invitation_FieldTerminalPath{selector: fps.selector}}
  1121  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
  1122  	return iPaths
  1123  }
  1124  
  1125  func (fps *Invitation_FieldSubPath) WithIValue(value interface{}) Invitation_FieldPathValue {
  1126  	return &Invitation_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
  1127  }
  1128  
  1129  func (fps *Invitation_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1130  	return fps.WithIValue(value)
  1131  }
  1132  
  1133  func (fps *Invitation_FieldSubPath) WithIArrayOfValues(values interface{}) Invitation_FieldPathArrayOfValues {
  1134  	return &Invitation_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
  1135  }
  1136  
  1137  func (fps *Invitation_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1138  	return fps.WithIArrayOfValues(values)
  1139  }
  1140  
  1141  func (fps *Invitation_FieldSubPath) WithIArrayItemValue(value interface{}) Invitation_FieldPathArrayItemValue {
  1142  	return &Invitation_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
  1143  }
  1144  
  1145  func (fps *Invitation_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1146  	return fps.WithIArrayItemValue(value)
  1147  }
  1148  
  1149  // Invitation_FieldPathValue allows storing values for Invitation fields according to their type
  1150  type Invitation_FieldPathValue interface {
  1151  	Invitation_FieldPath
  1152  	gotenobject.FieldPathValue
  1153  	SetTo(target **Invitation)
  1154  	CompareWith(*Invitation) (cmp int, comparable bool)
  1155  }
  1156  
  1157  func ParseInvitation_FieldPathValue(pathStr, valueStr string) (Invitation_FieldPathValue, error) {
  1158  	fp, err := ParseInvitation_FieldPath(pathStr)
  1159  	if err != nil {
  1160  		return nil, err
  1161  	}
  1162  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1163  	if err != nil {
  1164  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Invitation field path value from %s: %v", valueStr, err)
  1165  	}
  1166  	return fpv.(Invitation_FieldPathValue), nil
  1167  }
  1168  
  1169  func MustParseInvitation_FieldPathValue(pathStr, valueStr string) Invitation_FieldPathValue {
  1170  	fpv, err := ParseInvitation_FieldPathValue(pathStr, valueStr)
  1171  	if err != nil {
  1172  		panic(err)
  1173  	}
  1174  	return fpv
  1175  }
  1176  
  1177  type Invitation_FieldTerminalPathValue struct {
  1178  	Invitation_FieldTerminalPath
  1179  	value interface{}
  1180  }
  1181  
  1182  var _ Invitation_FieldPathValue = (*Invitation_FieldTerminalPathValue)(nil)
  1183  
  1184  // GetRawValue returns raw value stored under selected path for 'Invitation' as interface{}
  1185  func (fpv *Invitation_FieldTerminalPathValue) GetRawValue() interface{} {
  1186  	return fpv.value
  1187  }
  1188  func (fpv *Invitation_FieldTerminalPathValue) AsInviteeEmailValue() (string, bool) {
  1189  	res, ok := fpv.value.(string)
  1190  	return res, ok
  1191  }
  1192  func (fpv *Invitation_FieldTerminalPathValue) AsInviterActorValue() (*Actor, bool) {
  1193  	res, ok := fpv.value.(*Actor)
  1194  	return res, ok
  1195  }
  1196  func (fpv *Invitation_FieldTerminalPathValue) AsInviterFullNameValue() (string, bool) {
  1197  	res, ok := fpv.value.(string)
  1198  	return res, ok
  1199  }
  1200  func (fpv *Invitation_FieldTerminalPathValue) AsInviterEmailValue() (string, bool) {
  1201  	res, ok := fpv.value.(string)
  1202  	return res, ok
  1203  }
  1204  func (fpv *Invitation_FieldTerminalPathValue) AsLanguageCodeValue() (string, bool) {
  1205  	res, ok := fpv.value.(string)
  1206  	return res, ok
  1207  }
  1208  func (fpv *Invitation_FieldTerminalPathValue) AsBindingRolesValue() ([]*Invitation_BindingRole, bool) {
  1209  	res, ok := fpv.value.([]*Invitation_BindingRole)
  1210  	return res, ok
  1211  }
  1212  func (fpv *Invitation_FieldTerminalPathValue) AsGroupsValue() ([]*group.Reference, bool) {
  1213  	res, ok := fpv.value.([]*group.Reference)
  1214  	return res, ok
  1215  }
  1216  func (fpv *Invitation_FieldTerminalPathValue) AsExpirationDateValue() (*timestamppb.Timestamp, bool) {
  1217  	res, ok := fpv.value.(*timestamppb.Timestamp)
  1218  	return res, ok
  1219  }
  1220  func (fpv *Invitation_FieldTerminalPathValue) AsExtrasValue() (map[string]string, bool) {
  1221  	res, ok := fpv.value.(map[string]string)
  1222  	return res, ok
  1223  }
  1224  func (fpv *Invitation_FieldTerminalPathValue) AsStateValue() (Invitation_State, bool) {
  1225  	res, ok := fpv.value.(Invitation_State)
  1226  	return res, ok
  1227  }
  1228  
  1229  // SetTo stores value for selected field for object Invitation
  1230  func (fpv *Invitation_FieldTerminalPathValue) SetTo(target **Invitation) {
  1231  	if *target == nil {
  1232  		*target = new(Invitation)
  1233  	}
  1234  	switch fpv.selector {
  1235  	case Invitation_FieldPathSelectorInviteeEmail:
  1236  		(*target).InviteeEmail = fpv.value.(string)
  1237  	case Invitation_FieldPathSelectorInviterActor:
  1238  		(*target).InviterActor = fpv.value.(*Actor)
  1239  	case Invitation_FieldPathSelectorInviterFullName:
  1240  		(*target).InviterFullName = fpv.value.(string)
  1241  	case Invitation_FieldPathSelectorInviterEmail:
  1242  		(*target).InviterEmail = fpv.value.(string)
  1243  	case Invitation_FieldPathSelectorLanguageCode:
  1244  		(*target).LanguageCode = fpv.value.(string)
  1245  	case Invitation_FieldPathSelectorBindingRoles:
  1246  		(*target).BindingRoles = fpv.value.([]*Invitation_BindingRole)
  1247  	case Invitation_FieldPathSelectorGroups:
  1248  		(*target).Groups = fpv.value.([]*group.Reference)
  1249  	case Invitation_FieldPathSelectorExpirationDate:
  1250  		(*target).ExpirationDate = fpv.value.(*timestamppb.Timestamp)
  1251  	case Invitation_FieldPathSelectorExtras:
  1252  		(*target).Extras = fpv.value.(map[string]string)
  1253  	case Invitation_FieldPathSelectorState:
  1254  		(*target).State = fpv.value.(Invitation_State)
  1255  	default:
  1256  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpv.selector))
  1257  	}
  1258  }
  1259  
  1260  func (fpv *Invitation_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1261  	typedObject := target.(*Invitation)
  1262  	fpv.SetTo(&typedObject)
  1263  }
  1264  
  1265  // CompareWith compares value in the 'Invitation_FieldTerminalPathValue' with the value under path in 'Invitation'.
  1266  func (fpv *Invitation_FieldTerminalPathValue) CompareWith(source *Invitation) (int, bool) {
  1267  	switch fpv.selector {
  1268  	case Invitation_FieldPathSelectorInviteeEmail:
  1269  		leftValue := fpv.value.(string)
  1270  		rightValue := source.GetInviteeEmail()
  1271  		if (leftValue) == (rightValue) {
  1272  			return 0, true
  1273  		} else if (leftValue) < (rightValue) {
  1274  			return -1, true
  1275  		} else {
  1276  			return 1, true
  1277  		}
  1278  	case Invitation_FieldPathSelectorInviterActor:
  1279  		return 0, false
  1280  	case Invitation_FieldPathSelectorInviterFullName:
  1281  		leftValue := fpv.value.(string)
  1282  		rightValue := source.GetInviterFullName()
  1283  		if (leftValue) == (rightValue) {
  1284  			return 0, true
  1285  		} else if (leftValue) < (rightValue) {
  1286  			return -1, true
  1287  		} else {
  1288  			return 1, true
  1289  		}
  1290  	case Invitation_FieldPathSelectorInviterEmail:
  1291  		leftValue := fpv.value.(string)
  1292  		rightValue := source.GetInviterEmail()
  1293  		if (leftValue) == (rightValue) {
  1294  			return 0, true
  1295  		} else if (leftValue) < (rightValue) {
  1296  			return -1, true
  1297  		} else {
  1298  			return 1, true
  1299  		}
  1300  	case Invitation_FieldPathSelectorLanguageCode:
  1301  		leftValue := fpv.value.(string)
  1302  		rightValue := source.GetLanguageCode()
  1303  		if (leftValue) == (rightValue) {
  1304  			return 0, true
  1305  		} else if (leftValue) < (rightValue) {
  1306  			return -1, true
  1307  		} else {
  1308  			return 1, true
  1309  		}
  1310  	case Invitation_FieldPathSelectorBindingRoles:
  1311  		return 0, false
  1312  	case Invitation_FieldPathSelectorGroups:
  1313  		return 0, false
  1314  	case Invitation_FieldPathSelectorExpirationDate:
  1315  		leftValue := fpv.value.(*timestamppb.Timestamp)
  1316  		rightValue := source.GetExpirationDate()
  1317  		if leftValue == nil {
  1318  			if rightValue != nil {
  1319  				return -1, true
  1320  			}
  1321  			return 0, true
  1322  		}
  1323  		if rightValue == nil {
  1324  			return 1, true
  1325  		}
  1326  		if leftValue.AsTime().Equal(rightValue.AsTime()) {
  1327  			return 0, true
  1328  		} else if leftValue.AsTime().Before(rightValue.AsTime()) {
  1329  			return -1, true
  1330  		} else {
  1331  			return 1, true
  1332  		}
  1333  	case Invitation_FieldPathSelectorExtras:
  1334  		return 0, false
  1335  	case Invitation_FieldPathSelectorState:
  1336  		leftValue := fpv.value.(Invitation_State)
  1337  		rightValue := source.GetState()
  1338  		if (leftValue) == (rightValue) {
  1339  			return 0, true
  1340  		} else if (leftValue) < (rightValue) {
  1341  			return -1, true
  1342  		} else {
  1343  			return 1, true
  1344  		}
  1345  	default:
  1346  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpv.selector))
  1347  	}
  1348  }
  1349  
  1350  func (fpv *Invitation_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1351  	return fpv.CompareWith(source.(*Invitation))
  1352  }
  1353  
  1354  type Invitation_FieldPathMapValue struct {
  1355  	Invitation_FieldPathMap
  1356  	value interface{}
  1357  }
  1358  
  1359  var _ Invitation_FieldPathValue = (*Invitation_FieldPathMapValue)(nil)
  1360  
  1361  // GetValue returns value stored under selected field in Invitation as interface{}
  1362  func (fpmv *Invitation_FieldPathMapValue) GetRawValue() interface{} {
  1363  	return fpmv.value
  1364  }
  1365  func (fpmv *Invitation_FieldPathMapValue) AsExtrasElementValue() (string, bool) {
  1366  	res, ok := fpmv.value.(string)
  1367  	return res, ok
  1368  }
  1369  
  1370  // SetTo stores value for selected field in Invitation
  1371  func (fpmv *Invitation_FieldPathMapValue) SetTo(target **Invitation) {
  1372  	if *target == nil {
  1373  		*target = new(Invitation)
  1374  	}
  1375  	switch fpmv.selector {
  1376  	case Invitation_FieldPathSelectorExtras:
  1377  		if (*target).Extras == nil {
  1378  			(*target).Extras = make(map[string]string)
  1379  		}
  1380  		(*target).Extras[fpmv.key] = fpmv.value.(string)
  1381  	default:
  1382  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpmv.selector))
  1383  	}
  1384  }
  1385  
  1386  func (fpmv *Invitation_FieldPathMapValue) SetToRaw(target proto.Message) {
  1387  	typedObject := target.(*Invitation)
  1388  	fpmv.SetTo(&typedObject)
  1389  }
  1390  
  1391  // CompareWith compares value in the 'Invitation_FieldPathMapValue' with the value under path in 'Invitation'.
  1392  func (fpmv *Invitation_FieldPathMapValue) CompareWith(source *Invitation) (int, bool) {
  1393  	switch fpmv.selector {
  1394  	case Invitation_FieldPathSelectorExtras:
  1395  		leftValue := fpmv.value.(string)
  1396  		rightValue := source.GetExtras()[fpmv.key]
  1397  		if (leftValue) == (rightValue) {
  1398  			return 0, true
  1399  		} else if (leftValue) < (rightValue) {
  1400  			return -1, true
  1401  		} else {
  1402  			return 1, true
  1403  		}
  1404  	default:
  1405  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpmv.selector))
  1406  	}
  1407  }
  1408  
  1409  func (fpmv *Invitation_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) {
  1410  	return fpmv.CompareWith(source.(*Invitation))
  1411  }
  1412  
  1413  type Invitation_FieldSubPathValue struct {
  1414  	Invitation_FieldPath
  1415  	subPathValue gotenobject.FieldPathValue
  1416  }
  1417  
  1418  var _ Invitation_FieldPathValue = (*Invitation_FieldSubPathValue)(nil)
  1419  
  1420  func (fpvs *Invitation_FieldSubPathValue) AsInviterActorPathValue() (Actor_FieldPathValue, bool) {
  1421  	res, ok := fpvs.subPathValue.(Actor_FieldPathValue)
  1422  	return res, ok
  1423  }
  1424  func (fpvs *Invitation_FieldSubPathValue) AsBindingRolesPathValue() (InvitationBindingRole_FieldPathValue, bool) {
  1425  	res, ok := fpvs.subPathValue.(InvitationBindingRole_FieldPathValue)
  1426  	return res, ok
  1427  }
  1428  
  1429  func (fpvs *Invitation_FieldSubPathValue) SetTo(target **Invitation) {
  1430  	if *target == nil {
  1431  		*target = new(Invitation)
  1432  	}
  1433  	switch fpvs.Selector() {
  1434  	case Invitation_FieldPathSelectorInviterActor:
  1435  		fpvs.subPathValue.(Actor_FieldPathValue).SetTo(&(*target).InviterActor)
  1436  	case Invitation_FieldPathSelectorBindingRoles:
  1437  		panic("FieldPath setter is unsupported for array subpaths")
  1438  	default:
  1439  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpvs.Selector()))
  1440  	}
  1441  }
  1442  
  1443  func (fpvs *Invitation_FieldSubPathValue) SetToRaw(target proto.Message) {
  1444  	typedObject := target.(*Invitation)
  1445  	fpvs.SetTo(&typedObject)
  1446  }
  1447  
  1448  func (fpvs *Invitation_FieldSubPathValue) GetRawValue() interface{} {
  1449  	return fpvs.subPathValue.GetRawValue()
  1450  }
  1451  
  1452  func (fpvs *Invitation_FieldSubPathValue) CompareWith(source *Invitation) (int, bool) {
  1453  	switch fpvs.Selector() {
  1454  	case Invitation_FieldPathSelectorInviterActor:
  1455  		return fpvs.subPathValue.(Actor_FieldPathValue).CompareWith(source.GetInviterActor())
  1456  	case Invitation_FieldPathSelectorBindingRoles:
  1457  		return 0, false // repeated field
  1458  	default:
  1459  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpvs.Selector()))
  1460  	}
  1461  }
  1462  
  1463  func (fpvs *Invitation_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1464  	return fpvs.CompareWith(source.(*Invitation))
  1465  }
  1466  
  1467  // Invitation_FieldPathArrayItemValue allows storing single item in Path-specific values for Invitation according to their type
  1468  // Present only for array (repeated) types.
  1469  type Invitation_FieldPathArrayItemValue interface {
  1470  	gotenobject.FieldPathArrayItemValue
  1471  	Invitation_FieldPath
  1472  	ContainsValue(*Invitation) bool
  1473  }
  1474  
  1475  // ParseInvitation_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1476  func ParseInvitation_FieldPathArrayItemValue(pathStr, valueStr string) (Invitation_FieldPathArrayItemValue, error) {
  1477  	fp, err := ParseInvitation_FieldPath(pathStr)
  1478  	if err != nil {
  1479  		return nil, err
  1480  	}
  1481  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1482  	if err != nil {
  1483  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Invitation field path array item value from %s: %v", valueStr, err)
  1484  	}
  1485  	return fpaiv.(Invitation_FieldPathArrayItemValue), nil
  1486  }
  1487  
  1488  func MustParseInvitation_FieldPathArrayItemValue(pathStr, valueStr string) Invitation_FieldPathArrayItemValue {
  1489  	fpaiv, err := ParseInvitation_FieldPathArrayItemValue(pathStr, valueStr)
  1490  	if err != nil {
  1491  		panic(err)
  1492  	}
  1493  	return fpaiv
  1494  }
  1495  
  1496  type Invitation_FieldTerminalPathArrayItemValue struct {
  1497  	Invitation_FieldTerminalPath
  1498  	value interface{}
  1499  }
  1500  
  1501  var _ Invitation_FieldPathArrayItemValue = (*Invitation_FieldTerminalPathArrayItemValue)(nil)
  1502  
  1503  // GetRawValue returns stored element value for array in object Invitation as interface{}
  1504  func (fpaiv *Invitation_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1505  	return fpaiv.value
  1506  }
  1507  func (fpaiv *Invitation_FieldTerminalPathArrayItemValue) AsBindingRolesItemValue() (*Invitation_BindingRole, bool) {
  1508  	res, ok := fpaiv.value.(*Invitation_BindingRole)
  1509  	return res, ok
  1510  }
  1511  func (fpaiv *Invitation_FieldTerminalPathArrayItemValue) AsGroupsItemValue() (*group.Reference, bool) {
  1512  	res, ok := fpaiv.value.(*group.Reference)
  1513  	return res, ok
  1514  }
  1515  
  1516  func (fpaiv *Invitation_FieldTerminalPathArrayItemValue) GetSingle(source *Invitation) (interface{}, bool) {
  1517  	return nil, false
  1518  }
  1519  
  1520  func (fpaiv *Invitation_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1521  	return fpaiv.GetSingle(source.(*Invitation))
  1522  }
  1523  
  1524  // Contains returns a boolean indicating if value that is being held is present in given 'Invitation'
  1525  func (fpaiv *Invitation_FieldTerminalPathArrayItemValue) ContainsValue(source *Invitation) bool {
  1526  	slice := fpaiv.Invitation_FieldTerminalPath.Get(source)
  1527  	for _, v := range slice {
  1528  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1529  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1530  				return true
  1531  			}
  1532  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1533  			return true
  1534  		}
  1535  	}
  1536  	return false
  1537  }
  1538  
  1539  type Invitation_FieldSubPathArrayItemValue struct {
  1540  	Invitation_FieldPath
  1541  	subPathItemValue gotenobject.FieldPathArrayItemValue
  1542  }
  1543  
  1544  // GetRawValue returns stored array item value
  1545  func (fpaivs *Invitation_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  1546  	return fpaivs.subPathItemValue.GetRawItemValue()
  1547  }
  1548  func (fpaivs *Invitation_FieldSubPathArrayItemValue) AsInviterActorPathItemValue() (Actor_FieldPathArrayItemValue, bool) {
  1549  	res, ok := fpaivs.subPathItemValue.(Actor_FieldPathArrayItemValue)
  1550  	return res, ok
  1551  }
  1552  func (fpaivs *Invitation_FieldSubPathArrayItemValue) AsBindingRolesPathItemValue() (InvitationBindingRole_FieldPathArrayItemValue, bool) {
  1553  	res, ok := fpaivs.subPathItemValue.(InvitationBindingRole_FieldPathArrayItemValue)
  1554  	return res, ok
  1555  }
  1556  
  1557  // Contains returns a boolean indicating if value that is being held is present in given 'Invitation'
  1558  func (fpaivs *Invitation_FieldSubPathArrayItemValue) ContainsValue(source *Invitation) bool {
  1559  	switch fpaivs.Selector() {
  1560  	case Invitation_FieldPathSelectorInviterActor:
  1561  		return fpaivs.subPathItemValue.(Actor_FieldPathArrayItemValue).ContainsValue(source.GetInviterActor())
  1562  	case Invitation_FieldPathSelectorBindingRoles:
  1563  		return false // repeated/map field
  1564  	default:
  1565  		panic(fmt.Sprintf("Invalid selector for Invitation: %d", fpaivs.Selector()))
  1566  	}
  1567  }
  1568  
  1569  // Invitation_FieldPathArrayOfValues allows storing slice of values for Invitation fields according to their type
  1570  type Invitation_FieldPathArrayOfValues interface {
  1571  	gotenobject.FieldPathArrayOfValues
  1572  	Invitation_FieldPath
  1573  }
  1574  
  1575  func ParseInvitation_FieldPathArrayOfValues(pathStr, valuesStr string) (Invitation_FieldPathArrayOfValues, error) {
  1576  	fp, err := ParseInvitation_FieldPath(pathStr)
  1577  	if err != nil {
  1578  		return nil, err
  1579  	}
  1580  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1581  	if err != nil {
  1582  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Invitation field path array of values from %s: %v", valuesStr, err)
  1583  	}
  1584  	return fpaov.(Invitation_FieldPathArrayOfValues), nil
  1585  }
  1586  
  1587  func MustParseInvitation_FieldPathArrayOfValues(pathStr, valuesStr string) Invitation_FieldPathArrayOfValues {
  1588  	fpaov, err := ParseInvitation_FieldPathArrayOfValues(pathStr, valuesStr)
  1589  	if err != nil {
  1590  		panic(err)
  1591  	}
  1592  	return fpaov
  1593  }
  1594  
  1595  type Invitation_FieldTerminalPathArrayOfValues struct {
  1596  	Invitation_FieldTerminalPath
  1597  	values interface{}
  1598  }
  1599  
  1600  var _ Invitation_FieldPathArrayOfValues = (*Invitation_FieldTerminalPathArrayOfValues)(nil)
  1601  
  1602  func (fpaov *Invitation_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1603  	switch fpaov.selector {
  1604  	case Invitation_FieldPathSelectorInviteeEmail:
  1605  		for _, v := range fpaov.values.([]string) {
  1606  			values = append(values, v)
  1607  		}
  1608  	case Invitation_FieldPathSelectorInviterActor:
  1609  		for _, v := range fpaov.values.([]*Actor) {
  1610  			values = append(values, v)
  1611  		}
  1612  	case Invitation_FieldPathSelectorInviterFullName:
  1613  		for _, v := range fpaov.values.([]string) {
  1614  			values = append(values, v)
  1615  		}
  1616  	case Invitation_FieldPathSelectorInviterEmail:
  1617  		for _, v := range fpaov.values.([]string) {
  1618  			values = append(values, v)
  1619  		}
  1620  	case Invitation_FieldPathSelectorLanguageCode:
  1621  		for _, v := range fpaov.values.([]string) {
  1622  			values = append(values, v)
  1623  		}
  1624  	case Invitation_FieldPathSelectorBindingRoles:
  1625  		for _, v := range fpaov.values.([][]*Invitation_BindingRole) {
  1626  			values = append(values, v)
  1627  		}
  1628  	case Invitation_FieldPathSelectorGroups:
  1629  		for _, v := range fpaov.values.([][]*group.Reference) {
  1630  			values = append(values, v)
  1631  		}
  1632  	case Invitation_FieldPathSelectorExpirationDate:
  1633  		for _, v := range fpaov.values.([]*timestamppb.Timestamp) {
  1634  			values = append(values, v)
  1635  		}
  1636  	case Invitation_FieldPathSelectorExtras:
  1637  		for _, v := range fpaov.values.([]map[string]string) {
  1638  			values = append(values, v)
  1639  		}
  1640  	case Invitation_FieldPathSelectorState:
  1641  		for _, v := range fpaov.values.([]Invitation_State) {
  1642  			values = append(values, v)
  1643  		}
  1644  	}
  1645  	return
  1646  }
  1647  func (fpaov *Invitation_FieldTerminalPathArrayOfValues) AsInviteeEmailArrayOfValues() ([]string, bool) {
  1648  	res, ok := fpaov.values.([]string)
  1649  	return res, ok
  1650  }
  1651  func (fpaov *Invitation_FieldTerminalPathArrayOfValues) AsInviterActorArrayOfValues() ([]*Actor, bool) {
  1652  	res, ok := fpaov.values.([]*Actor)
  1653  	return res, ok
  1654  }
  1655  func (fpaov *Invitation_FieldTerminalPathArrayOfValues) AsInviterFullNameArrayOfValues() ([]string, bool) {
  1656  	res, ok := fpaov.values.([]string)
  1657  	return res, ok
  1658  }
  1659  func (fpaov *Invitation_FieldTerminalPathArrayOfValues) AsInviterEmailArrayOfValues() ([]string, bool) {
  1660  	res, ok := fpaov.values.([]string)
  1661  	return res, ok
  1662  }
  1663  func (fpaov *Invitation_FieldTerminalPathArrayOfValues) AsLanguageCodeArrayOfValues() ([]string, bool) {
  1664  	res, ok := fpaov.values.([]string)
  1665  	return res, ok
  1666  }
  1667  func (fpaov *Invitation_FieldTerminalPathArrayOfValues) AsBindingRolesArrayOfValues() ([][]*Invitation_BindingRole, bool) {
  1668  	res, ok := fpaov.values.([][]*Invitation_BindingRole)
  1669  	return res, ok
  1670  }
  1671  func (fpaov *Invitation_FieldTerminalPathArrayOfValues) AsGroupsArrayOfValues() ([][]*group.Reference, bool) {
  1672  	res, ok := fpaov.values.([][]*group.Reference)
  1673  	return res, ok
  1674  }
  1675  func (fpaov *Invitation_FieldTerminalPathArrayOfValues) AsExpirationDateArrayOfValues() ([]*timestamppb.Timestamp, bool) {
  1676  	res, ok := fpaov.values.([]*timestamppb.Timestamp)
  1677  	return res, ok
  1678  }
  1679  func (fpaov *Invitation_FieldTerminalPathArrayOfValues) AsExtrasArrayOfValues() ([]map[string]string, bool) {
  1680  	res, ok := fpaov.values.([]map[string]string)
  1681  	return res, ok
  1682  }
  1683  func (fpaov *Invitation_FieldTerminalPathArrayOfValues) AsStateArrayOfValues() ([]Invitation_State, bool) {
  1684  	res, ok := fpaov.values.([]Invitation_State)
  1685  	return res, ok
  1686  }
  1687  
  1688  type Invitation_FieldPathMapArrayOfValues struct {
  1689  	Invitation_FieldPathMap
  1690  	values interface{}
  1691  }
  1692  
  1693  var _ Invitation_FieldPathArrayOfValues = (*Invitation_FieldPathMapArrayOfValues)(nil)
  1694  
  1695  func (fpmaov *Invitation_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) {
  1696  	switch fpmaov.selector {
  1697  	case Invitation_FieldPathSelectorExtras:
  1698  		for _, v := range fpmaov.values.([]string) {
  1699  			values = append(values, v)
  1700  		}
  1701  	}
  1702  	return
  1703  }
  1704  func (fpmaov *Invitation_FieldPathMapArrayOfValues) AsExtrasArrayOfElementValues() ([]string, bool) {
  1705  	res, ok := fpmaov.values.([]string)
  1706  	return res, ok
  1707  }
  1708  
  1709  type Invitation_FieldSubPathArrayOfValues struct {
  1710  	Invitation_FieldPath
  1711  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  1712  }
  1713  
  1714  var _ Invitation_FieldPathArrayOfValues = (*Invitation_FieldSubPathArrayOfValues)(nil)
  1715  
  1716  func (fpsaov *Invitation_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  1717  	return fpsaov.subPathArrayOfValues.GetRawValues()
  1718  }
  1719  func (fpsaov *Invitation_FieldSubPathArrayOfValues) AsInviterActorPathArrayOfValues() (Actor_FieldPathArrayOfValues, bool) {
  1720  	res, ok := fpsaov.subPathArrayOfValues.(Actor_FieldPathArrayOfValues)
  1721  	return res, ok
  1722  }
  1723  func (fpsaov *Invitation_FieldSubPathArrayOfValues) AsBindingRolesPathArrayOfValues() (InvitationBindingRole_FieldPathArrayOfValues, bool) {
  1724  	res, ok := fpsaov.subPathArrayOfValues.(InvitationBindingRole_FieldPathArrayOfValues)
  1725  	return res, ok
  1726  }
  1727  
  1728  // FieldPath provides implementation to handle
  1729  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1730  type InvitationBindingRole_FieldPath interface {
  1731  	gotenobject.FieldPath
  1732  	Selector() InvitationBindingRole_FieldPathSelector
  1733  	Get(source *Invitation_BindingRole) []interface{}
  1734  	GetSingle(source *Invitation_BindingRole) (interface{}, bool)
  1735  	ClearValue(item *Invitation_BindingRole)
  1736  
  1737  	// Those methods build corresponding InvitationBindingRole_FieldPathValue
  1738  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1739  	WithIValue(value interface{}) InvitationBindingRole_FieldPathValue
  1740  	WithIArrayOfValues(values interface{}) InvitationBindingRole_FieldPathArrayOfValues
  1741  	WithIArrayItemValue(value interface{}) InvitationBindingRole_FieldPathArrayItemValue
  1742  }
  1743  
  1744  type InvitationBindingRole_FieldPathSelector int32
  1745  
  1746  const (
  1747  	InvitationBindingRole_FieldPathSelectorRole                 InvitationBindingRole_FieldPathSelector = 0
  1748  	InvitationBindingRole_FieldPathSelectorExecutableConditions InvitationBindingRole_FieldPathSelector = 1
  1749  	InvitationBindingRole_FieldPathSelectorScopeParams          InvitationBindingRole_FieldPathSelector = 2
  1750  )
  1751  
  1752  func (s InvitationBindingRole_FieldPathSelector) String() string {
  1753  	switch s {
  1754  	case InvitationBindingRole_FieldPathSelectorRole:
  1755  		return "role"
  1756  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  1757  		return "executable_conditions"
  1758  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  1759  		return "scope_params"
  1760  	default:
  1761  		panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", s))
  1762  	}
  1763  }
  1764  
  1765  func BuildInvitationBindingRole_FieldPath(fp gotenobject.RawFieldPath) (InvitationBindingRole_FieldPath, error) {
  1766  	if len(fp) == 0 {
  1767  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Invitation_BindingRole")
  1768  	}
  1769  	if len(fp) == 1 {
  1770  		switch fp[0] {
  1771  		case "role":
  1772  			return &InvitationBindingRole_FieldTerminalPath{selector: InvitationBindingRole_FieldPathSelectorRole}, nil
  1773  		case "executable_conditions", "executableConditions", "executable-conditions":
  1774  			return &InvitationBindingRole_FieldTerminalPath{selector: InvitationBindingRole_FieldPathSelectorExecutableConditions}, nil
  1775  		case "scope_params", "scopeParams", "scope-params":
  1776  			return &InvitationBindingRole_FieldTerminalPath{selector: InvitationBindingRole_FieldPathSelectorScopeParams}, nil
  1777  		}
  1778  	} else {
  1779  		switch fp[0] {
  1780  		case "executable_conditions", "executableConditions", "executable-conditions":
  1781  			if subpath, err := condition.BuildExecutableCondition_FieldPath(fp[1:]); err != nil {
  1782  				return nil, err
  1783  			} else {
  1784  				return &InvitationBindingRole_FieldSubPath{selector: InvitationBindingRole_FieldPathSelectorExecutableConditions, subPath: subpath}, nil
  1785  			}
  1786  		case "scope_params", "scopeParams", "scope-params":
  1787  			if subpath, err := role.BuildScopeParam_FieldPath(fp[1:]); err != nil {
  1788  				return nil, err
  1789  			} else {
  1790  				return &InvitationBindingRole_FieldSubPath{selector: InvitationBindingRole_FieldPathSelectorScopeParams, subPath: subpath}, nil
  1791  			}
  1792  		}
  1793  	}
  1794  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Invitation_BindingRole", fp)
  1795  }
  1796  
  1797  func ParseInvitationBindingRole_FieldPath(rawField string) (InvitationBindingRole_FieldPath, error) {
  1798  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1799  	if err != nil {
  1800  		return nil, err
  1801  	}
  1802  	return BuildInvitationBindingRole_FieldPath(fp)
  1803  }
  1804  
  1805  func MustParseInvitationBindingRole_FieldPath(rawField string) InvitationBindingRole_FieldPath {
  1806  	fp, err := ParseInvitationBindingRole_FieldPath(rawField)
  1807  	if err != nil {
  1808  		panic(err)
  1809  	}
  1810  	return fp
  1811  }
  1812  
  1813  type InvitationBindingRole_FieldTerminalPath struct {
  1814  	selector InvitationBindingRole_FieldPathSelector
  1815  }
  1816  
  1817  var _ InvitationBindingRole_FieldPath = (*InvitationBindingRole_FieldTerminalPath)(nil)
  1818  
  1819  func (fp *InvitationBindingRole_FieldTerminalPath) Selector() InvitationBindingRole_FieldPathSelector {
  1820  	return fp.selector
  1821  }
  1822  
  1823  // String returns path representation in proto convention
  1824  func (fp *InvitationBindingRole_FieldTerminalPath) String() string {
  1825  	return fp.selector.String()
  1826  }
  1827  
  1828  // JSONString returns path representation is JSON convention
  1829  func (fp *InvitationBindingRole_FieldTerminalPath) JSONString() string {
  1830  	return strcase.ToLowerCamel(fp.String())
  1831  }
  1832  
  1833  // Get returns all values pointed by specific field from source Invitation_BindingRole
  1834  func (fp *InvitationBindingRole_FieldTerminalPath) Get(source *Invitation_BindingRole) (values []interface{}) {
  1835  	if source != nil {
  1836  		switch fp.selector {
  1837  		case InvitationBindingRole_FieldPathSelectorRole:
  1838  			if source.Role != nil {
  1839  				values = append(values, source.Role)
  1840  			}
  1841  		case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  1842  			for _, value := range source.GetExecutableConditions() {
  1843  				values = append(values, value)
  1844  			}
  1845  		case InvitationBindingRole_FieldPathSelectorScopeParams:
  1846  			for _, value := range source.GetScopeParams() {
  1847  				values = append(values, value)
  1848  			}
  1849  		default:
  1850  			panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fp.selector))
  1851  		}
  1852  	}
  1853  	return
  1854  }
  1855  
  1856  func (fp *InvitationBindingRole_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1857  	return fp.Get(source.(*Invitation_BindingRole))
  1858  }
  1859  
  1860  // GetSingle returns value pointed by specific field of from source Invitation_BindingRole
  1861  func (fp *InvitationBindingRole_FieldTerminalPath) GetSingle(source *Invitation_BindingRole) (interface{}, bool) {
  1862  	switch fp.selector {
  1863  	case InvitationBindingRole_FieldPathSelectorRole:
  1864  		res := source.GetRole()
  1865  		return res, res != nil
  1866  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  1867  		res := source.GetExecutableConditions()
  1868  		return res, res != nil
  1869  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  1870  		res := source.GetScopeParams()
  1871  		return res, res != nil
  1872  	default:
  1873  		panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fp.selector))
  1874  	}
  1875  }
  1876  
  1877  func (fp *InvitationBindingRole_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1878  	return fp.GetSingle(source.(*Invitation_BindingRole))
  1879  }
  1880  
  1881  // GetDefault returns a default value of the field type
  1882  func (fp *InvitationBindingRole_FieldTerminalPath) GetDefault() interface{} {
  1883  	switch fp.selector {
  1884  	case InvitationBindingRole_FieldPathSelectorRole:
  1885  		return (*role.Reference)(nil)
  1886  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  1887  		return ([]*condition.ExecutableCondition)(nil)
  1888  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  1889  		return ([]*role.ScopeParam)(nil)
  1890  	default:
  1891  		panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fp.selector))
  1892  	}
  1893  }
  1894  
  1895  func (fp *InvitationBindingRole_FieldTerminalPath) ClearValue(item *Invitation_BindingRole) {
  1896  	if item != nil {
  1897  		switch fp.selector {
  1898  		case InvitationBindingRole_FieldPathSelectorRole:
  1899  			item.Role = nil
  1900  		case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  1901  			item.ExecutableConditions = nil
  1902  		case InvitationBindingRole_FieldPathSelectorScopeParams:
  1903  			item.ScopeParams = nil
  1904  		default:
  1905  			panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fp.selector))
  1906  		}
  1907  	}
  1908  }
  1909  
  1910  func (fp *InvitationBindingRole_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1911  	fp.ClearValue(item.(*Invitation_BindingRole))
  1912  }
  1913  
  1914  // IsLeaf - whether field path is holds simple value
  1915  func (fp *InvitationBindingRole_FieldTerminalPath) IsLeaf() bool {
  1916  	return fp.selector == InvitationBindingRole_FieldPathSelectorRole
  1917  }
  1918  
  1919  func (fp *InvitationBindingRole_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1920  	return []gotenobject.FieldPath{fp}
  1921  }
  1922  
  1923  func (fp *InvitationBindingRole_FieldTerminalPath) WithIValue(value interface{}) InvitationBindingRole_FieldPathValue {
  1924  	switch fp.selector {
  1925  	case InvitationBindingRole_FieldPathSelectorRole:
  1926  		return &InvitationBindingRole_FieldTerminalPathValue{InvitationBindingRole_FieldTerminalPath: *fp, value: value.(*role.Reference)}
  1927  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  1928  		return &InvitationBindingRole_FieldTerminalPathValue{InvitationBindingRole_FieldTerminalPath: *fp, value: value.([]*condition.ExecutableCondition)}
  1929  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  1930  		return &InvitationBindingRole_FieldTerminalPathValue{InvitationBindingRole_FieldTerminalPath: *fp, value: value.([]*role.ScopeParam)}
  1931  	default:
  1932  		panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fp.selector))
  1933  	}
  1934  }
  1935  
  1936  func (fp *InvitationBindingRole_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1937  	return fp.WithIValue(value)
  1938  }
  1939  
  1940  func (fp *InvitationBindingRole_FieldTerminalPath) WithIArrayOfValues(values interface{}) InvitationBindingRole_FieldPathArrayOfValues {
  1941  	fpaov := &InvitationBindingRole_FieldTerminalPathArrayOfValues{InvitationBindingRole_FieldTerminalPath: *fp}
  1942  	switch fp.selector {
  1943  	case InvitationBindingRole_FieldPathSelectorRole:
  1944  		return &InvitationBindingRole_FieldTerminalPathArrayOfValues{InvitationBindingRole_FieldTerminalPath: *fp, values: values.([]*role.Reference)}
  1945  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  1946  		return &InvitationBindingRole_FieldTerminalPathArrayOfValues{InvitationBindingRole_FieldTerminalPath: *fp, values: values.([][]*condition.ExecutableCondition)}
  1947  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  1948  		return &InvitationBindingRole_FieldTerminalPathArrayOfValues{InvitationBindingRole_FieldTerminalPath: *fp, values: values.([][]*role.ScopeParam)}
  1949  	default:
  1950  		panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fp.selector))
  1951  	}
  1952  	return fpaov
  1953  }
  1954  
  1955  func (fp *InvitationBindingRole_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1956  	return fp.WithIArrayOfValues(values)
  1957  }
  1958  
  1959  func (fp *InvitationBindingRole_FieldTerminalPath) WithIArrayItemValue(value interface{}) InvitationBindingRole_FieldPathArrayItemValue {
  1960  	switch fp.selector {
  1961  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  1962  		return &InvitationBindingRole_FieldTerminalPathArrayItemValue{InvitationBindingRole_FieldTerminalPath: *fp, value: value.(*condition.ExecutableCondition)}
  1963  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  1964  		return &InvitationBindingRole_FieldTerminalPathArrayItemValue{InvitationBindingRole_FieldTerminalPath: *fp, value: value.(*role.ScopeParam)}
  1965  	default:
  1966  		panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fp.selector))
  1967  	}
  1968  }
  1969  
  1970  func (fp *InvitationBindingRole_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1971  	return fp.WithIArrayItemValue(value)
  1972  }
  1973  
  1974  type InvitationBindingRole_FieldSubPath struct {
  1975  	selector InvitationBindingRole_FieldPathSelector
  1976  	subPath  gotenobject.FieldPath
  1977  }
  1978  
  1979  var _ InvitationBindingRole_FieldPath = (*InvitationBindingRole_FieldSubPath)(nil)
  1980  
  1981  func (fps *InvitationBindingRole_FieldSubPath) Selector() InvitationBindingRole_FieldPathSelector {
  1982  	return fps.selector
  1983  }
  1984  func (fps *InvitationBindingRole_FieldSubPath) AsExecutableConditionsSubPath() (condition.ExecutableCondition_FieldPath, bool) {
  1985  	res, ok := fps.subPath.(condition.ExecutableCondition_FieldPath)
  1986  	return res, ok
  1987  }
  1988  func (fps *InvitationBindingRole_FieldSubPath) AsScopeParamsSubPath() (role.ScopeParam_FieldPath, bool) {
  1989  	res, ok := fps.subPath.(role.ScopeParam_FieldPath)
  1990  	return res, ok
  1991  }
  1992  
  1993  // String returns path representation in proto convention
  1994  func (fps *InvitationBindingRole_FieldSubPath) String() string {
  1995  	return fps.selector.String() + "." + fps.subPath.String()
  1996  }
  1997  
  1998  // JSONString returns path representation is JSON convention
  1999  func (fps *InvitationBindingRole_FieldSubPath) JSONString() string {
  2000  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
  2001  }
  2002  
  2003  // Get returns all values pointed by selected field from source Invitation_BindingRole
  2004  func (fps *InvitationBindingRole_FieldSubPath) Get(source *Invitation_BindingRole) (values []interface{}) {
  2005  	switch fps.selector {
  2006  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  2007  		for _, item := range source.GetExecutableConditions() {
  2008  			values = append(values, fps.subPath.GetRaw(item)...)
  2009  		}
  2010  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  2011  		for _, item := range source.GetScopeParams() {
  2012  			values = append(values, fps.subPath.GetRaw(item)...)
  2013  		}
  2014  	default:
  2015  		panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fps.selector))
  2016  	}
  2017  	return
  2018  }
  2019  
  2020  func (fps *InvitationBindingRole_FieldSubPath) GetRaw(source proto.Message) []interface{} {
  2021  	return fps.Get(source.(*Invitation_BindingRole))
  2022  }
  2023  
  2024  // GetSingle returns value of selected field from source Invitation_BindingRole
  2025  func (fps *InvitationBindingRole_FieldSubPath) GetSingle(source *Invitation_BindingRole) (interface{}, bool) {
  2026  	switch fps.selector {
  2027  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  2028  		if len(source.GetExecutableConditions()) == 0 {
  2029  			return nil, false
  2030  		}
  2031  		return fps.subPath.GetSingleRaw(source.GetExecutableConditions()[0])
  2032  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  2033  		if len(source.GetScopeParams()) == 0 {
  2034  			return nil, false
  2035  		}
  2036  		return fps.subPath.GetSingleRaw(source.GetScopeParams()[0])
  2037  	default:
  2038  		panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fps.selector))
  2039  	}
  2040  }
  2041  
  2042  func (fps *InvitationBindingRole_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2043  	return fps.GetSingle(source.(*Invitation_BindingRole))
  2044  }
  2045  
  2046  // GetDefault returns a default value of the field type
  2047  func (fps *InvitationBindingRole_FieldSubPath) GetDefault() interface{} {
  2048  	return fps.subPath.GetDefault()
  2049  }
  2050  
  2051  func (fps *InvitationBindingRole_FieldSubPath) ClearValue(item *Invitation_BindingRole) {
  2052  	if item != nil {
  2053  		switch fps.selector {
  2054  		case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  2055  			for _, subItem := range item.ExecutableConditions {
  2056  				fps.subPath.ClearValueRaw(subItem)
  2057  			}
  2058  		case InvitationBindingRole_FieldPathSelectorScopeParams:
  2059  			for _, subItem := range item.ScopeParams {
  2060  				fps.subPath.ClearValueRaw(subItem)
  2061  			}
  2062  		default:
  2063  			panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fps.selector))
  2064  		}
  2065  	}
  2066  }
  2067  
  2068  func (fps *InvitationBindingRole_FieldSubPath) ClearValueRaw(item proto.Message) {
  2069  	fps.ClearValue(item.(*Invitation_BindingRole))
  2070  }
  2071  
  2072  // IsLeaf - whether field path is holds simple value
  2073  func (fps *InvitationBindingRole_FieldSubPath) IsLeaf() bool {
  2074  	return fps.subPath.IsLeaf()
  2075  }
  2076  
  2077  func (fps *InvitationBindingRole_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  2078  	iPaths := []gotenobject.FieldPath{&InvitationBindingRole_FieldTerminalPath{selector: fps.selector}}
  2079  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
  2080  	return iPaths
  2081  }
  2082  
  2083  func (fps *InvitationBindingRole_FieldSubPath) WithIValue(value interface{}) InvitationBindingRole_FieldPathValue {
  2084  	return &InvitationBindingRole_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
  2085  }
  2086  
  2087  func (fps *InvitationBindingRole_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  2088  	return fps.WithIValue(value)
  2089  }
  2090  
  2091  func (fps *InvitationBindingRole_FieldSubPath) WithIArrayOfValues(values interface{}) InvitationBindingRole_FieldPathArrayOfValues {
  2092  	return &InvitationBindingRole_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
  2093  }
  2094  
  2095  func (fps *InvitationBindingRole_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  2096  	return fps.WithIArrayOfValues(values)
  2097  }
  2098  
  2099  func (fps *InvitationBindingRole_FieldSubPath) WithIArrayItemValue(value interface{}) InvitationBindingRole_FieldPathArrayItemValue {
  2100  	return &InvitationBindingRole_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
  2101  }
  2102  
  2103  func (fps *InvitationBindingRole_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  2104  	return fps.WithIArrayItemValue(value)
  2105  }
  2106  
  2107  // InvitationBindingRole_FieldPathValue allows storing values for BindingRole fields according to their type
  2108  type InvitationBindingRole_FieldPathValue interface {
  2109  	InvitationBindingRole_FieldPath
  2110  	gotenobject.FieldPathValue
  2111  	SetTo(target **Invitation_BindingRole)
  2112  	CompareWith(*Invitation_BindingRole) (cmp int, comparable bool)
  2113  }
  2114  
  2115  func ParseInvitationBindingRole_FieldPathValue(pathStr, valueStr string) (InvitationBindingRole_FieldPathValue, error) {
  2116  	fp, err := ParseInvitationBindingRole_FieldPath(pathStr)
  2117  	if err != nil {
  2118  		return nil, err
  2119  	}
  2120  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  2121  	if err != nil {
  2122  		return nil, status.Errorf(codes.InvalidArgument, "error parsing BindingRole field path value from %s: %v", valueStr, err)
  2123  	}
  2124  	return fpv.(InvitationBindingRole_FieldPathValue), nil
  2125  }
  2126  
  2127  func MustParseInvitationBindingRole_FieldPathValue(pathStr, valueStr string) InvitationBindingRole_FieldPathValue {
  2128  	fpv, err := ParseInvitationBindingRole_FieldPathValue(pathStr, valueStr)
  2129  	if err != nil {
  2130  		panic(err)
  2131  	}
  2132  	return fpv
  2133  }
  2134  
  2135  type InvitationBindingRole_FieldTerminalPathValue struct {
  2136  	InvitationBindingRole_FieldTerminalPath
  2137  	value interface{}
  2138  }
  2139  
  2140  var _ InvitationBindingRole_FieldPathValue = (*InvitationBindingRole_FieldTerminalPathValue)(nil)
  2141  
  2142  // GetRawValue returns raw value stored under selected path for 'BindingRole' as interface{}
  2143  func (fpv *InvitationBindingRole_FieldTerminalPathValue) GetRawValue() interface{} {
  2144  	return fpv.value
  2145  }
  2146  func (fpv *InvitationBindingRole_FieldTerminalPathValue) AsRoleValue() (*role.Reference, bool) {
  2147  	res, ok := fpv.value.(*role.Reference)
  2148  	return res, ok
  2149  }
  2150  func (fpv *InvitationBindingRole_FieldTerminalPathValue) AsExecutableConditionsValue() ([]*condition.ExecutableCondition, bool) {
  2151  	res, ok := fpv.value.([]*condition.ExecutableCondition)
  2152  	return res, ok
  2153  }
  2154  func (fpv *InvitationBindingRole_FieldTerminalPathValue) AsScopeParamsValue() ([]*role.ScopeParam, bool) {
  2155  	res, ok := fpv.value.([]*role.ScopeParam)
  2156  	return res, ok
  2157  }
  2158  
  2159  // SetTo stores value for selected field for object BindingRole
  2160  func (fpv *InvitationBindingRole_FieldTerminalPathValue) SetTo(target **Invitation_BindingRole) {
  2161  	if *target == nil {
  2162  		*target = new(Invitation_BindingRole)
  2163  	}
  2164  	switch fpv.selector {
  2165  	case InvitationBindingRole_FieldPathSelectorRole:
  2166  		(*target).Role = fpv.value.(*role.Reference)
  2167  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  2168  		(*target).ExecutableConditions = fpv.value.([]*condition.ExecutableCondition)
  2169  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  2170  		(*target).ScopeParams = fpv.value.([]*role.ScopeParam)
  2171  	default:
  2172  		panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fpv.selector))
  2173  	}
  2174  }
  2175  
  2176  func (fpv *InvitationBindingRole_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  2177  	typedObject := target.(*Invitation_BindingRole)
  2178  	fpv.SetTo(&typedObject)
  2179  }
  2180  
  2181  // CompareWith compares value in the 'InvitationBindingRole_FieldTerminalPathValue' with the value under path in 'Invitation_BindingRole'.
  2182  func (fpv *InvitationBindingRole_FieldTerminalPathValue) CompareWith(source *Invitation_BindingRole) (int, bool) {
  2183  	switch fpv.selector {
  2184  	case InvitationBindingRole_FieldPathSelectorRole:
  2185  		leftValue := fpv.value.(*role.Reference)
  2186  		rightValue := source.GetRole()
  2187  		if leftValue == nil {
  2188  			if rightValue != nil {
  2189  				return -1, true
  2190  			}
  2191  			return 0, true
  2192  		}
  2193  		if rightValue == nil {
  2194  			return 1, true
  2195  		}
  2196  		if leftValue.String() == rightValue.String() {
  2197  			return 0, true
  2198  		} else if leftValue.String() < rightValue.String() {
  2199  			return -1, true
  2200  		} else {
  2201  			return 1, true
  2202  		}
  2203  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  2204  		return 0, false
  2205  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  2206  		return 0, false
  2207  	default:
  2208  		panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fpv.selector))
  2209  	}
  2210  }
  2211  
  2212  func (fpv *InvitationBindingRole_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2213  	return fpv.CompareWith(source.(*Invitation_BindingRole))
  2214  }
  2215  
  2216  type InvitationBindingRole_FieldSubPathValue struct {
  2217  	InvitationBindingRole_FieldPath
  2218  	subPathValue gotenobject.FieldPathValue
  2219  }
  2220  
  2221  var _ InvitationBindingRole_FieldPathValue = (*InvitationBindingRole_FieldSubPathValue)(nil)
  2222  
  2223  func (fpvs *InvitationBindingRole_FieldSubPathValue) AsExecutableConditionsPathValue() (condition.ExecutableCondition_FieldPathValue, bool) {
  2224  	res, ok := fpvs.subPathValue.(condition.ExecutableCondition_FieldPathValue)
  2225  	return res, ok
  2226  }
  2227  func (fpvs *InvitationBindingRole_FieldSubPathValue) AsScopeParamsPathValue() (role.ScopeParam_FieldPathValue, bool) {
  2228  	res, ok := fpvs.subPathValue.(role.ScopeParam_FieldPathValue)
  2229  	return res, ok
  2230  }
  2231  
  2232  func (fpvs *InvitationBindingRole_FieldSubPathValue) SetTo(target **Invitation_BindingRole) {
  2233  	if *target == nil {
  2234  		*target = new(Invitation_BindingRole)
  2235  	}
  2236  	switch fpvs.Selector() {
  2237  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  2238  		panic("FieldPath setter is unsupported for array subpaths")
  2239  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  2240  		panic("FieldPath setter is unsupported for array subpaths")
  2241  	default:
  2242  		panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fpvs.Selector()))
  2243  	}
  2244  }
  2245  
  2246  func (fpvs *InvitationBindingRole_FieldSubPathValue) SetToRaw(target proto.Message) {
  2247  	typedObject := target.(*Invitation_BindingRole)
  2248  	fpvs.SetTo(&typedObject)
  2249  }
  2250  
  2251  func (fpvs *InvitationBindingRole_FieldSubPathValue) GetRawValue() interface{} {
  2252  	return fpvs.subPathValue.GetRawValue()
  2253  }
  2254  
  2255  func (fpvs *InvitationBindingRole_FieldSubPathValue) CompareWith(source *Invitation_BindingRole) (int, bool) {
  2256  	switch fpvs.Selector() {
  2257  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  2258  		return 0, false // repeated field
  2259  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  2260  		return 0, false // repeated field
  2261  	default:
  2262  		panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fpvs.Selector()))
  2263  	}
  2264  }
  2265  
  2266  func (fpvs *InvitationBindingRole_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2267  	return fpvs.CompareWith(source.(*Invitation_BindingRole))
  2268  }
  2269  
  2270  // InvitationBindingRole_FieldPathArrayItemValue allows storing single item in Path-specific values for BindingRole according to their type
  2271  // Present only for array (repeated) types.
  2272  type InvitationBindingRole_FieldPathArrayItemValue interface {
  2273  	gotenobject.FieldPathArrayItemValue
  2274  	InvitationBindingRole_FieldPath
  2275  	ContainsValue(*Invitation_BindingRole) bool
  2276  }
  2277  
  2278  // ParseInvitationBindingRole_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  2279  func ParseInvitationBindingRole_FieldPathArrayItemValue(pathStr, valueStr string) (InvitationBindingRole_FieldPathArrayItemValue, error) {
  2280  	fp, err := ParseInvitationBindingRole_FieldPath(pathStr)
  2281  	if err != nil {
  2282  		return nil, err
  2283  	}
  2284  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  2285  	if err != nil {
  2286  		return nil, status.Errorf(codes.InvalidArgument, "error parsing BindingRole field path array item value from %s: %v", valueStr, err)
  2287  	}
  2288  	return fpaiv.(InvitationBindingRole_FieldPathArrayItemValue), nil
  2289  }
  2290  
  2291  func MustParseInvitationBindingRole_FieldPathArrayItemValue(pathStr, valueStr string) InvitationBindingRole_FieldPathArrayItemValue {
  2292  	fpaiv, err := ParseInvitationBindingRole_FieldPathArrayItemValue(pathStr, valueStr)
  2293  	if err != nil {
  2294  		panic(err)
  2295  	}
  2296  	return fpaiv
  2297  }
  2298  
  2299  type InvitationBindingRole_FieldTerminalPathArrayItemValue struct {
  2300  	InvitationBindingRole_FieldTerminalPath
  2301  	value interface{}
  2302  }
  2303  
  2304  var _ InvitationBindingRole_FieldPathArrayItemValue = (*InvitationBindingRole_FieldTerminalPathArrayItemValue)(nil)
  2305  
  2306  // GetRawValue returns stored element value for array in object Invitation_BindingRole as interface{}
  2307  func (fpaiv *InvitationBindingRole_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  2308  	return fpaiv.value
  2309  }
  2310  func (fpaiv *InvitationBindingRole_FieldTerminalPathArrayItemValue) AsExecutableConditionsItemValue() (*condition.ExecutableCondition, bool) {
  2311  	res, ok := fpaiv.value.(*condition.ExecutableCondition)
  2312  	return res, ok
  2313  }
  2314  func (fpaiv *InvitationBindingRole_FieldTerminalPathArrayItemValue) AsScopeParamsItemValue() (*role.ScopeParam, bool) {
  2315  	res, ok := fpaiv.value.(*role.ScopeParam)
  2316  	return res, ok
  2317  }
  2318  
  2319  func (fpaiv *InvitationBindingRole_FieldTerminalPathArrayItemValue) GetSingle(source *Invitation_BindingRole) (interface{}, bool) {
  2320  	return nil, false
  2321  }
  2322  
  2323  func (fpaiv *InvitationBindingRole_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2324  	return fpaiv.GetSingle(source.(*Invitation_BindingRole))
  2325  }
  2326  
  2327  // Contains returns a boolean indicating if value that is being held is present in given 'BindingRole'
  2328  func (fpaiv *InvitationBindingRole_FieldTerminalPathArrayItemValue) ContainsValue(source *Invitation_BindingRole) bool {
  2329  	slice := fpaiv.InvitationBindingRole_FieldTerminalPath.Get(source)
  2330  	for _, v := range slice {
  2331  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  2332  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  2333  				return true
  2334  			}
  2335  		} else if reflect.DeepEqual(v, fpaiv.value) {
  2336  			return true
  2337  		}
  2338  	}
  2339  	return false
  2340  }
  2341  
  2342  type InvitationBindingRole_FieldSubPathArrayItemValue struct {
  2343  	InvitationBindingRole_FieldPath
  2344  	subPathItemValue gotenobject.FieldPathArrayItemValue
  2345  }
  2346  
  2347  // GetRawValue returns stored array item value
  2348  func (fpaivs *InvitationBindingRole_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  2349  	return fpaivs.subPathItemValue.GetRawItemValue()
  2350  }
  2351  func (fpaivs *InvitationBindingRole_FieldSubPathArrayItemValue) AsExecutableConditionsPathItemValue() (condition.ExecutableCondition_FieldPathArrayItemValue, bool) {
  2352  	res, ok := fpaivs.subPathItemValue.(condition.ExecutableCondition_FieldPathArrayItemValue)
  2353  	return res, ok
  2354  }
  2355  func (fpaivs *InvitationBindingRole_FieldSubPathArrayItemValue) AsScopeParamsPathItemValue() (role.ScopeParam_FieldPathArrayItemValue, bool) {
  2356  	res, ok := fpaivs.subPathItemValue.(role.ScopeParam_FieldPathArrayItemValue)
  2357  	return res, ok
  2358  }
  2359  
  2360  // Contains returns a boolean indicating if value that is being held is present in given 'BindingRole'
  2361  func (fpaivs *InvitationBindingRole_FieldSubPathArrayItemValue) ContainsValue(source *Invitation_BindingRole) bool {
  2362  	switch fpaivs.Selector() {
  2363  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  2364  		return false // repeated/map field
  2365  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  2366  		return false // repeated/map field
  2367  	default:
  2368  		panic(fmt.Sprintf("Invalid selector for Invitation_BindingRole: %d", fpaivs.Selector()))
  2369  	}
  2370  }
  2371  
  2372  // InvitationBindingRole_FieldPathArrayOfValues allows storing slice of values for BindingRole fields according to their type
  2373  type InvitationBindingRole_FieldPathArrayOfValues interface {
  2374  	gotenobject.FieldPathArrayOfValues
  2375  	InvitationBindingRole_FieldPath
  2376  }
  2377  
  2378  func ParseInvitationBindingRole_FieldPathArrayOfValues(pathStr, valuesStr string) (InvitationBindingRole_FieldPathArrayOfValues, error) {
  2379  	fp, err := ParseInvitationBindingRole_FieldPath(pathStr)
  2380  	if err != nil {
  2381  		return nil, err
  2382  	}
  2383  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  2384  	if err != nil {
  2385  		return nil, status.Errorf(codes.InvalidArgument, "error parsing BindingRole field path array of values from %s: %v", valuesStr, err)
  2386  	}
  2387  	return fpaov.(InvitationBindingRole_FieldPathArrayOfValues), nil
  2388  }
  2389  
  2390  func MustParseInvitationBindingRole_FieldPathArrayOfValues(pathStr, valuesStr string) InvitationBindingRole_FieldPathArrayOfValues {
  2391  	fpaov, err := ParseInvitationBindingRole_FieldPathArrayOfValues(pathStr, valuesStr)
  2392  	if err != nil {
  2393  		panic(err)
  2394  	}
  2395  	return fpaov
  2396  }
  2397  
  2398  type InvitationBindingRole_FieldTerminalPathArrayOfValues struct {
  2399  	InvitationBindingRole_FieldTerminalPath
  2400  	values interface{}
  2401  }
  2402  
  2403  var _ InvitationBindingRole_FieldPathArrayOfValues = (*InvitationBindingRole_FieldTerminalPathArrayOfValues)(nil)
  2404  
  2405  func (fpaov *InvitationBindingRole_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  2406  	switch fpaov.selector {
  2407  	case InvitationBindingRole_FieldPathSelectorRole:
  2408  		for _, v := range fpaov.values.([]*role.Reference) {
  2409  			values = append(values, v)
  2410  		}
  2411  	case InvitationBindingRole_FieldPathSelectorExecutableConditions:
  2412  		for _, v := range fpaov.values.([][]*condition.ExecutableCondition) {
  2413  			values = append(values, v)
  2414  		}
  2415  	case InvitationBindingRole_FieldPathSelectorScopeParams:
  2416  		for _, v := range fpaov.values.([][]*role.ScopeParam) {
  2417  			values = append(values, v)
  2418  		}
  2419  	}
  2420  	return
  2421  }
  2422  func (fpaov *InvitationBindingRole_FieldTerminalPathArrayOfValues) AsRoleArrayOfValues() ([]*role.Reference, bool) {
  2423  	res, ok := fpaov.values.([]*role.Reference)
  2424  	return res, ok
  2425  }
  2426  func (fpaov *InvitationBindingRole_FieldTerminalPathArrayOfValues) AsExecutableConditionsArrayOfValues() ([][]*condition.ExecutableCondition, bool) {
  2427  	res, ok := fpaov.values.([][]*condition.ExecutableCondition)
  2428  	return res, ok
  2429  }
  2430  func (fpaov *InvitationBindingRole_FieldTerminalPathArrayOfValues) AsScopeParamsArrayOfValues() ([][]*role.ScopeParam, bool) {
  2431  	res, ok := fpaov.values.([][]*role.ScopeParam)
  2432  	return res, ok
  2433  }
  2434  
  2435  type InvitationBindingRole_FieldSubPathArrayOfValues struct {
  2436  	InvitationBindingRole_FieldPath
  2437  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  2438  }
  2439  
  2440  var _ InvitationBindingRole_FieldPathArrayOfValues = (*InvitationBindingRole_FieldSubPathArrayOfValues)(nil)
  2441  
  2442  func (fpsaov *InvitationBindingRole_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  2443  	return fpsaov.subPathArrayOfValues.GetRawValues()
  2444  }
  2445  func (fpsaov *InvitationBindingRole_FieldSubPathArrayOfValues) AsExecutableConditionsPathArrayOfValues() (condition.ExecutableCondition_FieldPathArrayOfValues, bool) {
  2446  	res, ok := fpsaov.subPathArrayOfValues.(condition.ExecutableCondition_FieldPathArrayOfValues)
  2447  	return res, ok
  2448  }
  2449  func (fpsaov *InvitationBindingRole_FieldSubPathArrayOfValues) AsScopeParamsPathArrayOfValues() (role.ScopeParam_FieldPathArrayOfValues, bool) {
  2450  	res, ok := fpsaov.subPathArrayOfValues.(role.ScopeParam_FieldPathArrayOfValues)
  2451  	return res, ok
  2452  }