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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/iam/proto/v1/role.proto
     3  // DO NOT EDIT!!!
     4  
     5  package role
     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  	organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1/organization"
    28  	permission "github.com/cloudwan/edgelq-sdk/iam/resources/v1/permission"
    29  	project "github.com/cloudwan/edgelq-sdk/iam/resources/v1/project"
    30  	meta_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/service"
    31  	meta "github.com/cloudwan/goten-sdk/types/meta"
    32  )
    33  
    34  // ensure the imports are used
    35  var (
    36  	_ = new(json.Marshaler)
    37  	_ = new(fmt.Stringer)
    38  	_ = reflect.DeepEqual
    39  	_ = strings.Builder{}
    40  	_ = time.Second
    41  
    42  	_ = strcase.ToLowerCamel
    43  	_ = codes.NotFound
    44  	_ = status.Status{}
    45  	_ = protojson.UnmarshalOptions{}
    46  	_ = new(proto.Message)
    47  	_ = protoregistry.GlobalTypes
    48  
    49  	_ = new(gotenobject.FieldPath)
    50  )
    51  
    52  // make sure we're using proto imports
    53  var (
    54  	_ = &condition.Condition{}
    55  	_ = &organization.Organization{}
    56  	_ = &permission.Permission{}
    57  	_ = &project.Project{}
    58  	_ = &meta_service.Service{}
    59  	_ = &meta.Meta{}
    60  )
    61  
    62  // FieldPath provides implementation to handle
    63  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    64  type Role_FieldPath interface {
    65  	gotenobject.FieldPath
    66  	Selector() Role_FieldPathSelector
    67  	Get(source *Role) []interface{}
    68  	GetSingle(source *Role) (interface{}, bool)
    69  	ClearValue(item *Role)
    70  
    71  	// Those methods build corresponding Role_FieldPathValue
    72  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    73  	WithIValue(value interface{}) Role_FieldPathValue
    74  	WithIArrayOfValues(values interface{}) Role_FieldPathArrayOfValues
    75  	WithIArrayItemValue(value interface{}) Role_FieldPathArrayItemValue
    76  }
    77  
    78  type Role_FieldPathSelector int32
    79  
    80  const (
    81  	Role_FieldPathSelectorName             Role_FieldPathSelector = 0
    82  	Role_FieldPathSelectorMetadata         Role_FieldPathSelector = 1
    83  	Role_FieldPathSelectorDisplayName      Role_FieldPathSelector = 2
    84  	Role_FieldPathSelectorDescription      Role_FieldPathSelector = 3
    85  	Role_FieldPathSelectorCategory         Role_FieldPathSelector = 4
    86  	Role_FieldPathSelectorScopeParams      Role_FieldPathSelector = 5
    87  	Role_FieldPathSelectorConstValues      Role_FieldPathSelector = 6
    88  	Role_FieldPathSelectorDefaultValues    Role_FieldPathSelector = 7
    89  	Role_FieldPathSelectorGrants           Role_FieldPathSelector = 8
    90  	Role_FieldPathSelectorOwnedObjects     Role_FieldPathSelector = 9
    91  	Role_FieldPathSelectorServices         Role_FieldPathSelector = 10
    92  	Role_FieldPathSelectorRbSpecGeneration Role_FieldPathSelector = 11
    93  )
    94  
    95  func (s Role_FieldPathSelector) String() string {
    96  	switch s {
    97  	case Role_FieldPathSelectorName:
    98  		return "name"
    99  	case Role_FieldPathSelectorMetadata:
   100  		return "metadata"
   101  	case Role_FieldPathSelectorDisplayName:
   102  		return "display_name"
   103  	case Role_FieldPathSelectorDescription:
   104  		return "description"
   105  	case Role_FieldPathSelectorCategory:
   106  		return "category"
   107  	case Role_FieldPathSelectorScopeParams:
   108  		return "scope_params"
   109  	case Role_FieldPathSelectorConstValues:
   110  		return "const_values"
   111  	case Role_FieldPathSelectorDefaultValues:
   112  		return "default_values"
   113  	case Role_FieldPathSelectorGrants:
   114  		return "grants"
   115  	case Role_FieldPathSelectorOwnedObjects:
   116  		return "owned_objects"
   117  	case Role_FieldPathSelectorServices:
   118  		return "services"
   119  	case Role_FieldPathSelectorRbSpecGeneration:
   120  		return "rb_spec_generation"
   121  	default:
   122  		panic(fmt.Sprintf("Invalid selector for Role: %d", s))
   123  	}
   124  }
   125  
   126  func BuildRole_FieldPath(fp gotenobject.RawFieldPath) (Role_FieldPath, error) {
   127  	if len(fp) == 0 {
   128  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Role")
   129  	}
   130  	if len(fp) == 1 {
   131  		switch fp[0] {
   132  		case "name":
   133  			return &Role_FieldTerminalPath{selector: Role_FieldPathSelectorName}, nil
   134  		case "metadata":
   135  			return &Role_FieldTerminalPath{selector: Role_FieldPathSelectorMetadata}, nil
   136  		case "display_name", "displayName", "display-name":
   137  			return &Role_FieldTerminalPath{selector: Role_FieldPathSelectorDisplayName}, nil
   138  		case "description":
   139  			return &Role_FieldTerminalPath{selector: Role_FieldPathSelectorDescription}, nil
   140  		case "category":
   141  			return &Role_FieldTerminalPath{selector: Role_FieldPathSelectorCategory}, nil
   142  		case "scope_params", "scopeParams", "scope-params":
   143  			return &Role_FieldTerminalPath{selector: Role_FieldPathSelectorScopeParams}, nil
   144  		case "const_values", "constValues", "const-values":
   145  			return &Role_FieldTerminalPath{selector: Role_FieldPathSelectorConstValues}, nil
   146  		case "default_values", "defaultValues", "default-values":
   147  			return &Role_FieldTerminalPath{selector: Role_FieldPathSelectorDefaultValues}, nil
   148  		case "grants":
   149  			return &Role_FieldTerminalPath{selector: Role_FieldPathSelectorGrants}, nil
   150  		case "owned_objects", "ownedObjects", "owned-objects":
   151  			return &Role_FieldTerminalPath{selector: Role_FieldPathSelectorOwnedObjects}, nil
   152  		case "services":
   153  			return &Role_FieldTerminalPath{selector: Role_FieldPathSelectorServices}, nil
   154  		case "rb_spec_generation", "rbSpecGeneration", "rb-spec-generation":
   155  			return &Role_FieldTerminalPath{selector: Role_FieldPathSelectorRbSpecGeneration}, nil
   156  		}
   157  	} else {
   158  		switch fp[0] {
   159  		case "metadata":
   160  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   161  				return nil, err
   162  			} else {
   163  				return &Role_FieldSubPath{selector: Role_FieldPathSelectorMetadata, subPath: subpath}, nil
   164  			}
   165  		case "scope_params", "scopeParams", "scope-params":
   166  			if subpath, err := BuildRoleScopeParamType_FieldPath(fp[1:]); err != nil {
   167  				return nil, err
   168  			} else {
   169  				return &Role_FieldSubPath{selector: Role_FieldPathSelectorScopeParams, subPath: subpath}, nil
   170  			}
   171  		case "const_values", "constValues", "const-values":
   172  			if subpath, err := BuildScopeParam_FieldPath(fp[1:]); err != nil {
   173  				return nil, err
   174  			} else {
   175  				return &Role_FieldSubPath{selector: Role_FieldPathSelectorConstValues, subPath: subpath}, nil
   176  			}
   177  		case "default_values", "defaultValues", "default-values":
   178  			if subpath, err := BuildScopeParam_FieldPath(fp[1:]); err != nil {
   179  				return nil, err
   180  			} else {
   181  				return &Role_FieldSubPath{selector: Role_FieldPathSelectorDefaultValues, subPath: subpath}, nil
   182  			}
   183  		case "grants":
   184  			if subpath, err := BuildRoleGrant_FieldPath(fp[1:]); err != nil {
   185  				return nil, err
   186  			} else {
   187  				return &Role_FieldSubPath{selector: Role_FieldPathSelectorGrants, subPath: subpath}, nil
   188  			}
   189  		}
   190  	}
   191  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Role", fp)
   192  }
   193  
   194  func ParseRole_FieldPath(rawField string) (Role_FieldPath, error) {
   195  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   196  	if err != nil {
   197  		return nil, err
   198  	}
   199  	return BuildRole_FieldPath(fp)
   200  }
   201  
   202  func MustParseRole_FieldPath(rawField string) Role_FieldPath {
   203  	fp, err := ParseRole_FieldPath(rawField)
   204  	if err != nil {
   205  		panic(err)
   206  	}
   207  	return fp
   208  }
   209  
   210  type Role_FieldTerminalPath struct {
   211  	selector Role_FieldPathSelector
   212  }
   213  
   214  var _ Role_FieldPath = (*Role_FieldTerminalPath)(nil)
   215  
   216  func (fp *Role_FieldTerminalPath) Selector() Role_FieldPathSelector {
   217  	return fp.selector
   218  }
   219  
   220  // String returns path representation in proto convention
   221  func (fp *Role_FieldTerminalPath) String() string {
   222  	return fp.selector.String()
   223  }
   224  
   225  // JSONString returns path representation is JSON convention
   226  func (fp *Role_FieldTerminalPath) JSONString() string {
   227  	return strcase.ToLowerCamel(fp.String())
   228  }
   229  
   230  // Get returns all values pointed by specific field from source Role
   231  func (fp *Role_FieldTerminalPath) Get(source *Role) (values []interface{}) {
   232  	if source != nil {
   233  		switch fp.selector {
   234  		case Role_FieldPathSelectorName:
   235  			if source.Name != nil {
   236  				values = append(values, source.Name)
   237  			}
   238  		case Role_FieldPathSelectorMetadata:
   239  			if source.Metadata != nil {
   240  				values = append(values, source.Metadata)
   241  			}
   242  		case Role_FieldPathSelectorDisplayName:
   243  			values = append(values, source.DisplayName)
   244  		case Role_FieldPathSelectorDescription:
   245  			values = append(values, source.Description)
   246  		case Role_FieldPathSelectorCategory:
   247  			values = append(values, source.Category)
   248  		case Role_FieldPathSelectorScopeParams:
   249  			for _, value := range source.GetScopeParams() {
   250  				values = append(values, value)
   251  			}
   252  		case Role_FieldPathSelectorConstValues:
   253  			for _, value := range source.GetConstValues() {
   254  				values = append(values, value)
   255  			}
   256  		case Role_FieldPathSelectorDefaultValues:
   257  			for _, value := range source.GetDefaultValues() {
   258  				values = append(values, value)
   259  			}
   260  		case Role_FieldPathSelectorGrants:
   261  			for _, value := range source.GetGrants() {
   262  				values = append(values, value)
   263  			}
   264  		case Role_FieldPathSelectorOwnedObjects:
   265  			for _, value := range source.GetOwnedObjects() {
   266  				values = append(values, value)
   267  			}
   268  		case Role_FieldPathSelectorServices:
   269  			for _, value := range source.GetServices() {
   270  				values = append(values, value)
   271  			}
   272  		case Role_FieldPathSelectorRbSpecGeneration:
   273  			values = append(values, source.RbSpecGeneration)
   274  		default:
   275  			panic(fmt.Sprintf("Invalid selector for Role: %d", fp.selector))
   276  		}
   277  	}
   278  	return
   279  }
   280  
   281  func (fp *Role_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   282  	return fp.Get(source.(*Role))
   283  }
   284  
   285  // GetSingle returns value pointed by specific field of from source Role
   286  func (fp *Role_FieldTerminalPath) GetSingle(source *Role) (interface{}, bool) {
   287  	switch fp.selector {
   288  	case Role_FieldPathSelectorName:
   289  		res := source.GetName()
   290  		return res, res != nil
   291  	case Role_FieldPathSelectorMetadata:
   292  		res := source.GetMetadata()
   293  		return res, res != nil
   294  	case Role_FieldPathSelectorDisplayName:
   295  		return source.GetDisplayName(), source != nil
   296  	case Role_FieldPathSelectorDescription:
   297  		return source.GetDescription(), source != nil
   298  	case Role_FieldPathSelectorCategory:
   299  		return source.GetCategory(), source != nil
   300  	case Role_FieldPathSelectorScopeParams:
   301  		res := source.GetScopeParams()
   302  		return res, res != nil
   303  	case Role_FieldPathSelectorConstValues:
   304  		res := source.GetConstValues()
   305  		return res, res != nil
   306  	case Role_FieldPathSelectorDefaultValues:
   307  		res := source.GetDefaultValues()
   308  		return res, res != nil
   309  	case Role_FieldPathSelectorGrants:
   310  		res := source.GetGrants()
   311  		return res, res != nil
   312  	case Role_FieldPathSelectorOwnedObjects:
   313  		res := source.GetOwnedObjects()
   314  		return res, res != nil
   315  	case Role_FieldPathSelectorServices:
   316  		res := source.GetServices()
   317  		return res, res != nil
   318  	case Role_FieldPathSelectorRbSpecGeneration:
   319  		return source.GetRbSpecGeneration(), source != nil
   320  	default:
   321  		panic(fmt.Sprintf("Invalid selector for Role: %d", fp.selector))
   322  	}
   323  }
   324  
   325  func (fp *Role_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   326  	return fp.GetSingle(source.(*Role))
   327  }
   328  
   329  // GetDefault returns a default value of the field type
   330  func (fp *Role_FieldTerminalPath) GetDefault() interface{} {
   331  	switch fp.selector {
   332  	case Role_FieldPathSelectorName:
   333  		return (*Name)(nil)
   334  	case Role_FieldPathSelectorMetadata:
   335  		return (*meta.Meta)(nil)
   336  	case Role_FieldPathSelectorDisplayName:
   337  		return ""
   338  	case Role_FieldPathSelectorDescription:
   339  		return ""
   340  	case Role_FieldPathSelectorCategory:
   341  		return Role_UNDEFINED
   342  	case Role_FieldPathSelectorScopeParams:
   343  		return ([]*Role_ScopeParamType)(nil)
   344  	case Role_FieldPathSelectorConstValues:
   345  		return ([]*ScopeParam)(nil)
   346  	case Role_FieldPathSelectorDefaultValues:
   347  		return ([]*ScopeParam)(nil)
   348  	case Role_FieldPathSelectorGrants:
   349  		return ([]*Role_Grant)(nil)
   350  	case Role_FieldPathSelectorOwnedObjects:
   351  		return ([]string)(nil)
   352  	case Role_FieldPathSelectorServices:
   353  		return ([]*meta_service.Reference)(nil)
   354  	case Role_FieldPathSelectorRbSpecGeneration:
   355  		return int64(0)
   356  	default:
   357  		panic(fmt.Sprintf("Invalid selector for Role: %d", fp.selector))
   358  	}
   359  }
   360  
   361  func (fp *Role_FieldTerminalPath) ClearValue(item *Role) {
   362  	if item != nil {
   363  		switch fp.selector {
   364  		case Role_FieldPathSelectorName:
   365  			item.Name = nil
   366  		case Role_FieldPathSelectorMetadata:
   367  			item.Metadata = nil
   368  		case Role_FieldPathSelectorDisplayName:
   369  			item.DisplayName = ""
   370  		case Role_FieldPathSelectorDescription:
   371  			item.Description = ""
   372  		case Role_FieldPathSelectorCategory:
   373  			item.Category = Role_UNDEFINED
   374  		case Role_FieldPathSelectorScopeParams:
   375  			item.ScopeParams = nil
   376  		case Role_FieldPathSelectorConstValues:
   377  			item.ConstValues = nil
   378  		case Role_FieldPathSelectorDefaultValues:
   379  			item.DefaultValues = nil
   380  		case Role_FieldPathSelectorGrants:
   381  			item.Grants = nil
   382  		case Role_FieldPathSelectorOwnedObjects:
   383  			item.OwnedObjects = nil
   384  		case Role_FieldPathSelectorServices:
   385  			item.Services = nil
   386  		case Role_FieldPathSelectorRbSpecGeneration:
   387  			item.RbSpecGeneration = int64(0)
   388  		default:
   389  			panic(fmt.Sprintf("Invalid selector for Role: %d", fp.selector))
   390  		}
   391  	}
   392  }
   393  
   394  func (fp *Role_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   395  	fp.ClearValue(item.(*Role))
   396  }
   397  
   398  // IsLeaf - whether field path is holds simple value
   399  func (fp *Role_FieldTerminalPath) IsLeaf() bool {
   400  	return fp.selector == Role_FieldPathSelectorName ||
   401  		fp.selector == Role_FieldPathSelectorDisplayName ||
   402  		fp.selector == Role_FieldPathSelectorDescription ||
   403  		fp.selector == Role_FieldPathSelectorCategory ||
   404  		fp.selector == Role_FieldPathSelectorOwnedObjects ||
   405  		fp.selector == Role_FieldPathSelectorServices ||
   406  		fp.selector == Role_FieldPathSelectorRbSpecGeneration
   407  }
   408  
   409  func (fp *Role_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   410  	return []gotenobject.FieldPath{fp}
   411  }
   412  
   413  func (fp *Role_FieldTerminalPath) WithIValue(value interface{}) Role_FieldPathValue {
   414  	switch fp.selector {
   415  	case Role_FieldPathSelectorName:
   416  		return &Role_FieldTerminalPathValue{Role_FieldTerminalPath: *fp, value: value.(*Name)}
   417  	case Role_FieldPathSelectorMetadata:
   418  		return &Role_FieldTerminalPathValue{Role_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   419  	case Role_FieldPathSelectorDisplayName:
   420  		return &Role_FieldTerminalPathValue{Role_FieldTerminalPath: *fp, value: value.(string)}
   421  	case Role_FieldPathSelectorDescription:
   422  		return &Role_FieldTerminalPathValue{Role_FieldTerminalPath: *fp, value: value.(string)}
   423  	case Role_FieldPathSelectorCategory:
   424  		return &Role_FieldTerminalPathValue{Role_FieldTerminalPath: *fp, value: value.(Role_Category)}
   425  	case Role_FieldPathSelectorScopeParams:
   426  		return &Role_FieldTerminalPathValue{Role_FieldTerminalPath: *fp, value: value.([]*Role_ScopeParamType)}
   427  	case Role_FieldPathSelectorConstValues:
   428  		return &Role_FieldTerminalPathValue{Role_FieldTerminalPath: *fp, value: value.([]*ScopeParam)}
   429  	case Role_FieldPathSelectorDefaultValues:
   430  		return &Role_FieldTerminalPathValue{Role_FieldTerminalPath: *fp, value: value.([]*ScopeParam)}
   431  	case Role_FieldPathSelectorGrants:
   432  		return &Role_FieldTerminalPathValue{Role_FieldTerminalPath: *fp, value: value.([]*Role_Grant)}
   433  	case Role_FieldPathSelectorOwnedObjects:
   434  		return &Role_FieldTerminalPathValue{Role_FieldTerminalPath: *fp, value: value.([]string)}
   435  	case Role_FieldPathSelectorServices:
   436  		return &Role_FieldTerminalPathValue{Role_FieldTerminalPath: *fp, value: value.([]*meta_service.Reference)}
   437  	case Role_FieldPathSelectorRbSpecGeneration:
   438  		return &Role_FieldTerminalPathValue{Role_FieldTerminalPath: *fp, value: value.(int64)}
   439  	default:
   440  		panic(fmt.Sprintf("Invalid selector for Role: %d", fp.selector))
   441  	}
   442  }
   443  
   444  func (fp *Role_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   445  	return fp.WithIValue(value)
   446  }
   447  
   448  func (fp *Role_FieldTerminalPath) WithIArrayOfValues(values interface{}) Role_FieldPathArrayOfValues {
   449  	fpaov := &Role_FieldTerminalPathArrayOfValues{Role_FieldTerminalPath: *fp}
   450  	switch fp.selector {
   451  	case Role_FieldPathSelectorName:
   452  		return &Role_FieldTerminalPathArrayOfValues{Role_FieldTerminalPath: *fp, values: values.([]*Name)}
   453  	case Role_FieldPathSelectorMetadata:
   454  		return &Role_FieldTerminalPathArrayOfValues{Role_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   455  	case Role_FieldPathSelectorDisplayName:
   456  		return &Role_FieldTerminalPathArrayOfValues{Role_FieldTerminalPath: *fp, values: values.([]string)}
   457  	case Role_FieldPathSelectorDescription:
   458  		return &Role_FieldTerminalPathArrayOfValues{Role_FieldTerminalPath: *fp, values: values.([]string)}
   459  	case Role_FieldPathSelectorCategory:
   460  		return &Role_FieldTerminalPathArrayOfValues{Role_FieldTerminalPath: *fp, values: values.([]Role_Category)}
   461  	case Role_FieldPathSelectorScopeParams:
   462  		return &Role_FieldTerminalPathArrayOfValues{Role_FieldTerminalPath: *fp, values: values.([][]*Role_ScopeParamType)}
   463  	case Role_FieldPathSelectorConstValues:
   464  		return &Role_FieldTerminalPathArrayOfValues{Role_FieldTerminalPath: *fp, values: values.([][]*ScopeParam)}
   465  	case Role_FieldPathSelectorDefaultValues:
   466  		return &Role_FieldTerminalPathArrayOfValues{Role_FieldTerminalPath: *fp, values: values.([][]*ScopeParam)}
   467  	case Role_FieldPathSelectorGrants:
   468  		return &Role_FieldTerminalPathArrayOfValues{Role_FieldTerminalPath: *fp, values: values.([][]*Role_Grant)}
   469  	case Role_FieldPathSelectorOwnedObjects:
   470  		return &Role_FieldTerminalPathArrayOfValues{Role_FieldTerminalPath: *fp, values: values.([][]string)}
   471  	case Role_FieldPathSelectorServices:
   472  		return &Role_FieldTerminalPathArrayOfValues{Role_FieldTerminalPath: *fp, values: values.([][]*meta_service.Reference)}
   473  	case Role_FieldPathSelectorRbSpecGeneration:
   474  		return &Role_FieldTerminalPathArrayOfValues{Role_FieldTerminalPath: *fp, values: values.([]int64)}
   475  	default:
   476  		panic(fmt.Sprintf("Invalid selector for Role: %d", fp.selector))
   477  	}
   478  	return fpaov
   479  }
   480  
   481  func (fp *Role_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   482  	return fp.WithIArrayOfValues(values)
   483  }
   484  
   485  func (fp *Role_FieldTerminalPath) WithIArrayItemValue(value interface{}) Role_FieldPathArrayItemValue {
   486  	switch fp.selector {
   487  	case Role_FieldPathSelectorScopeParams:
   488  		return &Role_FieldTerminalPathArrayItemValue{Role_FieldTerminalPath: *fp, value: value.(*Role_ScopeParamType)}
   489  	case Role_FieldPathSelectorConstValues:
   490  		return &Role_FieldTerminalPathArrayItemValue{Role_FieldTerminalPath: *fp, value: value.(*ScopeParam)}
   491  	case Role_FieldPathSelectorDefaultValues:
   492  		return &Role_FieldTerminalPathArrayItemValue{Role_FieldTerminalPath: *fp, value: value.(*ScopeParam)}
   493  	case Role_FieldPathSelectorGrants:
   494  		return &Role_FieldTerminalPathArrayItemValue{Role_FieldTerminalPath: *fp, value: value.(*Role_Grant)}
   495  	case Role_FieldPathSelectorOwnedObjects:
   496  		return &Role_FieldTerminalPathArrayItemValue{Role_FieldTerminalPath: *fp, value: value.(string)}
   497  	case Role_FieldPathSelectorServices:
   498  		return &Role_FieldTerminalPathArrayItemValue{Role_FieldTerminalPath: *fp, value: value.(*meta_service.Reference)}
   499  	default:
   500  		panic(fmt.Sprintf("Invalid selector for Role: %d", fp.selector))
   501  	}
   502  }
   503  
   504  func (fp *Role_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   505  	return fp.WithIArrayItemValue(value)
   506  }
   507  
   508  type Role_FieldSubPath struct {
   509  	selector Role_FieldPathSelector
   510  	subPath  gotenobject.FieldPath
   511  }
   512  
   513  var _ Role_FieldPath = (*Role_FieldSubPath)(nil)
   514  
   515  func (fps *Role_FieldSubPath) Selector() Role_FieldPathSelector {
   516  	return fps.selector
   517  }
   518  func (fps *Role_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   519  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   520  	return res, ok
   521  }
   522  func (fps *Role_FieldSubPath) AsScopeParamsSubPath() (RoleScopeParamType_FieldPath, bool) {
   523  	res, ok := fps.subPath.(RoleScopeParamType_FieldPath)
   524  	return res, ok
   525  }
   526  func (fps *Role_FieldSubPath) AsConstValuesSubPath() (ScopeParam_FieldPath, bool) {
   527  	res, ok := fps.subPath.(ScopeParam_FieldPath)
   528  	return res, ok
   529  }
   530  func (fps *Role_FieldSubPath) AsDefaultValuesSubPath() (ScopeParam_FieldPath, bool) {
   531  	res, ok := fps.subPath.(ScopeParam_FieldPath)
   532  	return res, ok
   533  }
   534  func (fps *Role_FieldSubPath) AsGrantsSubPath() (RoleGrant_FieldPath, bool) {
   535  	res, ok := fps.subPath.(RoleGrant_FieldPath)
   536  	return res, ok
   537  }
   538  
   539  // String returns path representation in proto convention
   540  func (fps *Role_FieldSubPath) String() string {
   541  	return fps.selector.String() + "." + fps.subPath.String()
   542  }
   543  
   544  // JSONString returns path representation is JSON convention
   545  func (fps *Role_FieldSubPath) JSONString() string {
   546  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   547  }
   548  
   549  // Get returns all values pointed by selected field from source Role
   550  func (fps *Role_FieldSubPath) Get(source *Role) (values []interface{}) {
   551  	switch fps.selector {
   552  	case Role_FieldPathSelectorMetadata:
   553  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   554  	case Role_FieldPathSelectorScopeParams:
   555  		for _, item := range source.GetScopeParams() {
   556  			values = append(values, fps.subPath.GetRaw(item)...)
   557  		}
   558  	case Role_FieldPathSelectorConstValues:
   559  		for _, item := range source.GetConstValues() {
   560  			values = append(values, fps.subPath.GetRaw(item)...)
   561  		}
   562  	case Role_FieldPathSelectorDefaultValues:
   563  		for _, item := range source.GetDefaultValues() {
   564  			values = append(values, fps.subPath.GetRaw(item)...)
   565  		}
   566  	case Role_FieldPathSelectorGrants:
   567  		for _, item := range source.GetGrants() {
   568  			values = append(values, fps.subPath.GetRaw(item)...)
   569  		}
   570  	default:
   571  		panic(fmt.Sprintf("Invalid selector for Role: %d", fps.selector))
   572  	}
   573  	return
   574  }
   575  
   576  func (fps *Role_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   577  	return fps.Get(source.(*Role))
   578  }
   579  
   580  // GetSingle returns value of selected field from source Role
   581  func (fps *Role_FieldSubPath) GetSingle(source *Role) (interface{}, bool) {
   582  	switch fps.selector {
   583  	case Role_FieldPathSelectorMetadata:
   584  		if source.GetMetadata() == nil {
   585  			return nil, false
   586  		}
   587  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   588  	case Role_FieldPathSelectorScopeParams:
   589  		if len(source.GetScopeParams()) == 0 {
   590  			return nil, false
   591  		}
   592  		return fps.subPath.GetSingleRaw(source.GetScopeParams()[0])
   593  	case Role_FieldPathSelectorConstValues:
   594  		if len(source.GetConstValues()) == 0 {
   595  			return nil, false
   596  		}
   597  		return fps.subPath.GetSingleRaw(source.GetConstValues()[0])
   598  	case Role_FieldPathSelectorDefaultValues:
   599  		if len(source.GetDefaultValues()) == 0 {
   600  			return nil, false
   601  		}
   602  		return fps.subPath.GetSingleRaw(source.GetDefaultValues()[0])
   603  	case Role_FieldPathSelectorGrants:
   604  		if len(source.GetGrants()) == 0 {
   605  			return nil, false
   606  		}
   607  		return fps.subPath.GetSingleRaw(source.GetGrants()[0])
   608  	default:
   609  		panic(fmt.Sprintf("Invalid selector for Role: %d", fps.selector))
   610  	}
   611  }
   612  
   613  func (fps *Role_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   614  	return fps.GetSingle(source.(*Role))
   615  }
   616  
   617  // GetDefault returns a default value of the field type
   618  func (fps *Role_FieldSubPath) GetDefault() interface{} {
   619  	return fps.subPath.GetDefault()
   620  }
   621  
   622  func (fps *Role_FieldSubPath) ClearValue(item *Role) {
   623  	if item != nil {
   624  		switch fps.selector {
   625  		case Role_FieldPathSelectorMetadata:
   626  			fps.subPath.ClearValueRaw(item.Metadata)
   627  		case Role_FieldPathSelectorScopeParams:
   628  			for _, subItem := range item.ScopeParams {
   629  				fps.subPath.ClearValueRaw(subItem)
   630  			}
   631  		case Role_FieldPathSelectorConstValues:
   632  			for _, subItem := range item.ConstValues {
   633  				fps.subPath.ClearValueRaw(subItem)
   634  			}
   635  		case Role_FieldPathSelectorDefaultValues:
   636  			for _, subItem := range item.DefaultValues {
   637  				fps.subPath.ClearValueRaw(subItem)
   638  			}
   639  		case Role_FieldPathSelectorGrants:
   640  			for _, subItem := range item.Grants {
   641  				fps.subPath.ClearValueRaw(subItem)
   642  			}
   643  		default:
   644  			panic(fmt.Sprintf("Invalid selector for Role: %d", fps.selector))
   645  		}
   646  	}
   647  }
   648  
   649  func (fps *Role_FieldSubPath) ClearValueRaw(item proto.Message) {
   650  	fps.ClearValue(item.(*Role))
   651  }
   652  
   653  // IsLeaf - whether field path is holds simple value
   654  func (fps *Role_FieldSubPath) IsLeaf() bool {
   655  	return fps.subPath.IsLeaf()
   656  }
   657  
   658  func (fps *Role_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   659  	iPaths := []gotenobject.FieldPath{&Role_FieldTerminalPath{selector: fps.selector}}
   660  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   661  	return iPaths
   662  }
   663  
   664  func (fps *Role_FieldSubPath) WithIValue(value interface{}) Role_FieldPathValue {
   665  	return &Role_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   666  }
   667  
   668  func (fps *Role_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   669  	return fps.WithIValue(value)
   670  }
   671  
   672  func (fps *Role_FieldSubPath) WithIArrayOfValues(values interface{}) Role_FieldPathArrayOfValues {
   673  	return &Role_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   674  }
   675  
   676  func (fps *Role_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   677  	return fps.WithIArrayOfValues(values)
   678  }
   679  
   680  func (fps *Role_FieldSubPath) WithIArrayItemValue(value interface{}) Role_FieldPathArrayItemValue {
   681  	return &Role_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   682  }
   683  
   684  func (fps *Role_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   685  	return fps.WithIArrayItemValue(value)
   686  }
   687  
   688  // Role_FieldPathValue allows storing values for Role fields according to their type
   689  type Role_FieldPathValue interface {
   690  	Role_FieldPath
   691  	gotenobject.FieldPathValue
   692  	SetTo(target **Role)
   693  	CompareWith(*Role) (cmp int, comparable bool)
   694  }
   695  
   696  func ParseRole_FieldPathValue(pathStr, valueStr string) (Role_FieldPathValue, error) {
   697  	fp, err := ParseRole_FieldPath(pathStr)
   698  	if err != nil {
   699  		return nil, err
   700  	}
   701  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   702  	if err != nil {
   703  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Role field path value from %s: %v", valueStr, err)
   704  	}
   705  	return fpv.(Role_FieldPathValue), nil
   706  }
   707  
   708  func MustParseRole_FieldPathValue(pathStr, valueStr string) Role_FieldPathValue {
   709  	fpv, err := ParseRole_FieldPathValue(pathStr, valueStr)
   710  	if err != nil {
   711  		panic(err)
   712  	}
   713  	return fpv
   714  }
   715  
   716  type Role_FieldTerminalPathValue struct {
   717  	Role_FieldTerminalPath
   718  	value interface{}
   719  }
   720  
   721  var _ Role_FieldPathValue = (*Role_FieldTerminalPathValue)(nil)
   722  
   723  // GetRawValue returns raw value stored under selected path for 'Role' as interface{}
   724  func (fpv *Role_FieldTerminalPathValue) GetRawValue() interface{} {
   725  	return fpv.value
   726  }
   727  func (fpv *Role_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   728  	res, ok := fpv.value.(*Name)
   729  	return res, ok
   730  }
   731  func (fpv *Role_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   732  	res, ok := fpv.value.(*meta.Meta)
   733  	return res, ok
   734  }
   735  func (fpv *Role_FieldTerminalPathValue) AsDisplayNameValue() (string, bool) {
   736  	res, ok := fpv.value.(string)
   737  	return res, ok
   738  }
   739  func (fpv *Role_FieldTerminalPathValue) AsDescriptionValue() (string, bool) {
   740  	res, ok := fpv.value.(string)
   741  	return res, ok
   742  }
   743  func (fpv *Role_FieldTerminalPathValue) AsCategoryValue() (Role_Category, bool) {
   744  	res, ok := fpv.value.(Role_Category)
   745  	return res, ok
   746  }
   747  func (fpv *Role_FieldTerminalPathValue) AsScopeParamsValue() ([]*Role_ScopeParamType, bool) {
   748  	res, ok := fpv.value.([]*Role_ScopeParamType)
   749  	return res, ok
   750  }
   751  func (fpv *Role_FieldTerminalPathValue) AsConstValuesValue() ([]*ScopeParam, bool) {
   752  	res, ok := fpv.value.([]*ScopeParam)
   753  	return res, ok
   754  }
   755  func (fpv *Role_FieldTerminalPathValue) AsDefaultValuesValue() ([]*ScopeParam, bool) {
   756  	res, ok := fpv.value.([]*ScopeParam)
   757  	return res, ok
   758  }
   759  func (fpv *Role_FieldTerminalPathValue) AsGrantsValue() ([]*Role_Grant, bool) {
   760  	res, ok := fpv.value.([]*Role_Grant)
   761  	return res, ok
   762  }
   763  func (fpv *Role_FieldTerminalPathValue) AsOwnedObjectsValue() ([]string, bool) {
   764  	res, ok := fpv.value.([]string)
   765  	return res, ok
   766  }
   767  func (fpv *Role_FieldTerminalPathValue) AsServicesValue() ([]*meta_service.Reference, bool) {
   768  	res, ok := fpv.value.([]*meta_service.Reference)
   769  	return res, ok
   770  }
   771  func (fpv *Role_FieldTerminalPathValue) AsRbSpecGenerationValue() (int64, bool) {
   772  	res, ok := fpv.value.(int64)
   773  	return res, ok
   774  }
   775  
   776  // SetTo stores value for selected field for object Role
   777  func (fpv *Role_FieldTerminalPathValue) SetTo(target **Role) {
   778  	if *target == nil {
   779  		*target = new(Role)
   780  	}
   781  	switch fpv.selector {
   782  	case Role_FieldPathSelectorName:
   783  		(*target).Name = fpv.value.(*Name)
   784  	case Role_FieldPathSelectorMetadata:
   785  		(*target).Metadata = fpv.value.(*meta.Meta)
   786  	case Role_FieldPathSelectorDisplayName:
   787  		(*target).DisplayName = fpv.value.(string)
   788  	case Role_FieldPathSelectorDescription:
   789  		(*target).Description = fpv.value.(string)
   790  	case Role_FieldPathSelectorCategory:
   791  		(*target).Category = fpv.value.(Role_Category)
   792  	case Role_FieldPathSelectorScopeParams:
   793  		(*target).ScopeParams = fpv.value.([]*Role_ScopeParamType)
   794  	case Role_FieldPathSelectorConstValues:
   795  		(*target).ConstValues = fpv.value.([]*ScopeParam)
   796  	case Role_FieldPathSelectorDefaultValues:
   797  		(*target).DefaultValues = fpv.value.([]*ScopeParam)
   798  	case Role_FieldPathSelectorGrants:
   799  		(*target).Grants = fpv.value.([]*Role_Grant)
   800  	case Role_FieldPathSelectorOwnedObjects:
   801  		(*target).OwnedObjects = fpv.value.([]string)
   802  	case Role_FieldPathSelectorServices:
   803  		(*target).Services = fpv.value.([]*meta_service.Reference)
   804  	case Role_FieldPathSelectorRbSpecGeneration:
   805  		(*target).RbSpecGeneration = fpv.value.(int64)
   806  	default:
   807  		panic(fmt.Sprintf("Invalid selector for Role: %d", fpv.selector))
   808  	}
   809  }
   810  
   811  func (fpv *Role_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   812  	typedObject := target.(*Role)
   813  	fpv.SetTo(&typedObject)
   814  }
   815  
   816  // CompareWith compares value in the 'Role_FieldTerminalPathValue' with the value under path in 'Role'.
   817  func (fpv *Role_FieldTerminalPathValue) CompareWith(source *Role) (int, bool) {
   818  	switch fpv.selector {
   819  	case Role_FieldPathSelectorName:
   820  		leftValue := fpv.value.(*Name)
   821  		rightValue := source.GetName()
   822  		if leftValue == nil {
   823  			if rightValue != nil {
   824  				return -1, true
   825  			}
   826  			return 0, true
   827  		}
   828  		if rightValue == nil {
   829  			return 1, true
   830  		}
   831  		if leftValue.String() == rightValue.String() {
   832  			return 0, true
   833  		} else if leftValue.String() < rightValue.String() {
   834  			return -1, true
   835  		} else {
   836  			return 1, true
   837  		}
   838  	case Role_FieldPathSelectorMetadata:
   839  		return 0, false
   840  	case Role_FieldPathSelectorDisplayName:
   841  		leftValue := fpv.value.(string)
   842  		rightValue := source.GetDisplayName()
   843  		if (leftValue) == (rightValue) {
   844  			return 0, true
   845  		} else if (leftValue) < (rightValue) {
   846  			return -1, true
   847  		} else {
   848  			return 1, true
   849  		}
   850  	case Role_FieldPathSelectorDescription:
   851  		leftValue := fpv.value.(string)
   852  		rightValue := source.GetDescription()
   853  		if (leftValue) == (rightValue) {
   854  			return 0, true
   855  		} else if (leftValue) < (rightValue) {
   856  			return -1, true
   857  		} else {
   858  			return 1, true
   859  		}
   860  	case Role_FieldPathSelectorCategory:
   861  		leftValue := fpv.value.(Role_Category)
   862  		rightValue := source.GetCategory()
   863  		if (leftValue) == (rightValue) {
   864  			return 0, true
   865  		} else if (leftValue) < (rightValue) {
   866  			return -1, true
   867  		} else {
   868  			return 1, true
   869  		}
   870  	case Role_FieldPathSelectorScopeParams:
   871  		return 0, false
   872  	case Role_FieldPathSelectorConstValues:
   873  		return 0, false
   874  	case Role_FieldPathSelectorDefaultValues:
   875  		return 0, false
   876  	case Role_FieldPathSelectorGrants:
   877  		return 0, false
   878  	case Role_FieldPathSelectorOwnedObjects:
   879  		return 0, false
   880  	case Role_FieldPathSelectorServices:
   881  		return 0, false
   882  	case Role_FieldPathSelectorRbSpecGeneration:
   883  		leftValue := fpv.value.(int64)
   884  		rightValue := source.GetRbSpecGeneration()
   885  		if (leftValue) == (rightValue) {
   886  			return 0, true
   887  		} else if (leftValue) < (rightValue) {
   888  			return -1, true
   889  		} else {
   890  			return 1, true
   891  		}
   892  	default:
   893  		panic(fmt.Sprintf("Invalid selector for Role: %d", fpv.selector))
   894  	}
   895  }
   896  
   897  func (fpv *Role_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   898  	return fpv.CompareWith(source.(*Role))
   899  }
   900  
   901  type Role_FieldSubPathValue struct {
   902  	Role_FieldPath
   903  	subPathValue gotenobject.FieldPathValue
   904  }
   905  
   906  var _ Role_FieldPathValue = (*Role_FieldSubPathValue)(nil)
   907  
   908  func (fpvs *Role_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   909  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   910  	return res, ok
   911  }
   912  func (fpvs *Role_FieldSubPathValue) AsScopeParamsPathValue() (RoleScopeParamType_FieldPathValue, bool) {
   913  	res, ok := fpvs.subPathValue.(RoleScopeParamType_FieldPathValue)
   914  	return res, ok
   915  }
   916  func (fpvs *Role_FieldSubPathValue) AsConstValuesPathValue() (ScopeParam_FieldPathValue, bool) {
   917  	res, ok := fpvs.subPathValue.(ScopeParam_FieldPathValue)
   918  	return res, ok
   919  }
   920  func (fpvs *Role_FieldSubPathValue) AsDefaultValuesPathValue() (ScopeParam_FieldPathValue, bool) {
   921  	res, ok := fpvs.subPathValue.(ScopeParam_FieldPathValue)
   922  	return res, ok
   923  }
   924  func (fpvs *Role_FieldSubPathValue) AsGrantsPathValue() (RoleGrant_FieldPathValue, bool) {
   925  	res, ok := fpvs.subPathValue.(RoleGrant_FieldPathValue)
   926  	return res, ok
   927  }
   928  
   929  func (fpvs *Role_FieldSubPathValue) SetTo(target **Role) {
   930  	if *target == nil {
   931  		*target = new(Role)
   932  	}
   933  	switch fpvs.Selector() {
   934  	case Role_FieldPathSelectorMetadata:
   935  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
   936  	case Role_FieldPathSelectorScopeParams:
   937  		panic("FieldPath setter is unsupported for array subpaths")
   938  	case Role_FieldPathSelectorConstValues:
   939  		panic("FieldPath setter is unsupported for array subpaths")
   940  	case Role_FieldPathSelectorDefaultValues:
   941  		panic("FieldPath setter is unsupported for array subpaths")
   942  	case Role_FieldPathSelectorGrants:
   943  		panic("FieldPath setter is unsupported for array subpaths")
   944  	default:
   945  		panic(fmt.Sprintf("Invalid selector for Role: %d", fpvs.Selector()))
   946  	}
   947  }
   948  
   949  func (fpvs *Role_FieldSubPathValue) SetToRaw(target proto.Message) {
   950  	typedObject := target.(*Role)
   951  	fpvs.SetTo(&typedObject)
   952  }
   953  
   954  func (fpvs *Role_FieldSubPathValue) GetRawValue() interface{} {
   955  	return fpvs.subPathValue.GetRawValue()
   956  }
   957  
   958  func (fpvs *Role_FieldSubPathValue) CompareWith(source *Role) (int, bool) {
   959  	switch fpvs.Selector() {
   960  	case Role_FieldPathSelectorMetadata:
   961  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
   962  	case Role_FieldPathSelectorScopeParams:
   963  		return 0, false // repeated field
   964  	case Role_FieldPathSelectorConstValues:
   965  		return 0, false // repeated field
   966  	case Role_FieldPathSelectorDefaultValues:
   967  		return 0, false // repeated field
   968  	case Role_FieldPathSelectorGrants:
   969  		return 0, false // repeated field
   970  	default:
   971  		panic(fmt.Sprintf("Invalid selector for Role: %d", fpvs.Selector()))
   972  	}
   973  }
   974  
   975  func (fpvs *Role_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   976  	return fpvs.CompareWith(source.(*Role))
   977  }
   978  
   979  // Role_FieldPathArrayItemValue allows storing single item in Path-specific values for Role according to their type
   980  // Present only for array (repeated) types.
   981  type Role_FieldPathArrayItemValue interface {
   982  	gotenobject.FieldPathArrayItemValue
   983  	Role_FieldPath
   984  	ContainsValue(*Role) bool
   985  }
   986  
   987  // ParseRole_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   988  func ParseRole_FieldPathArrayItemValue(pathStr, valueStr string) (Role_FieldPathArrayItemValue, error) {
   989  	fp, err := ParseRole_FieldPath(pathStr)
   990  	if err != nil {
   991  		return nil, err
   992  	}
   993  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   994  	if err != nil {
   995  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Role field path array item value from %s: %v", valueStr, err)
   996  	}
   997  	return fpaiv.(Role_FieldPathArrayItemValue), nil
   998  }
   999  
  1000  func MustParseRole_FieldPathArrayItemValue(pathStr, valueStr string) Role_FieldPathArrayItemValue {
  1001  	fpaiv, err := ParseRole_FieldPathArrayItemValue(pathStr, valueStr)
  1002  	if err != nil {
  1003  		panic(err)
  1004  	}
  1005  	return fpaiv
  1006  }
  1007  
  1008  type Role_FieldTerminalPathArrayItemValue struct {
  1009  	Role_FieldTerminalPath
  1010  	value interface{}
  1011  }
  1012  
  1013  var _ Role_FieldPathArrayItemValue = (*Role_FieldTerminalPathArrayItemValue)(nil)
  1014  
  1015  // GetRawValue returns stored element value for array in object Role as interface{}
  1016  func (fpaiv *Role_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1017  	return fpaiv.value
  1018  }
  1019  func (fpaiv *Role_FieldTerminalPathArrayItemValue) AsScopeParamsItemValue() (*Role_ScopeParamType, bool) {
  1020  	res, ok := fpaiv.value.(*Role_ScopeParamType)
  1021  	return res, ok
  1022  }
  1023  func (fpaiv *Role_FieldTerminalPathArrayItemValue) AsConstValuesItemValue() (*ScopeParam, bool) {
  1024  	res, ok := fpaiv.value.(*ScopeParam)
  1025  	return res, ok
  1026  }
  1027  func (fpaiv *Role_FieldTerminalPathArrayItemValue) AsDefaultValuesItemValue() (*ScopeParam, bool) {
  1028  	res, ok := fpaiv.value.(*ScopeParam)
  1029  	return res, ok
  1030  }
  1031  func (fpaiv *Role_FieldTerminalPathArrayItemValue) AsGrantsItemValue() (*Role_Grant, bool) {
  1032  	res, ok := fpaiv.value.(*Role_Grant)
  1033  	return res, ok
  1034  }
  1035  func (fpaiv *Role_FieldTerminalPathArrayItemValue) AsOwnedObjectsItemValue() (string, bool) {
  1036  	res, ok := fpaiv.value.(string)
  1037  	return res, ok
  1038  }
  1039  func (fpaiv *Role_FieldTerminalPathArrayItemValue) AsServicesItemValue() (*meta_service.Reference, bool) {
  1040  	res, ok := fpaiv.value.(*meta_service.Reference)
  1041  	return res, ok
  1042  }
  1043  
  1044  func (fpaiv *Role_FieldTerminalPathArrayItemValue) GetSingle(source *Role) (interface{}, bool) {
  1045  	return nil, false
  1046  }
  1047  
  1048  func (fpaiv *Role_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1049  	return fpaiv.GetSingle(source.(*Role))
  1050  }
  1051  
  1052  // Contains returns a boolean indicating if value that is being held is present in given 'Role'
  1053  func (fpaiv *Role_FieldTerminalPathArrayItemValue) ContainsValue(source *Role) bool {
  1054  	slice := fpaiv.Role_FieldTerminalPath.Get(source)
  1055  	for _, v := range slice {
  1056  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1057  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1058  				return true
  1059  			}
  1060  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1061  			return true
  1062  		}
  1063  	}
  1064  	return false
  1065  }
  1066  
  1067  type Role_FieldSubPathArrayItemValue struct {
  1068  	Role_FieldPath
  1069  	subPathItemValue gotenobject.FieldPathArrayItemValue
  1070  }
  1071  
  1072  // GetRawValue returns stored array item value
  1073  func (fpaivs *Role_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  1074  	return fpaivs.subPathItemValue.GetRawItemValue()
  1075  }
  1076  func (fpaivs *Role_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
  1077  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
  1078  	return res, ok
  1079  }
  1080  func (fpaivs *Role_FieldSubPathArrayItemValue) AsScopeParamsPathItemValue() (RoleScopeParamType_FieldPathArrayItemValue, bool) {
  1081  	res, ok := fpaivs.subPathItemValue.(RoleScopeParamType_FieldPathArrayItemValue)
  1082  	return res, ok
  1083  }
  1084  func (fpaivs *Role_FieldSubPathArrayItemValue) AsConstValuesPathItemValue() (ScopeParam_FieldPathArrayItemValue, bool) {
  1085  	res, ok := fpaivs.subPathItemValue.(ScopeParam_FieldPathArrayItemValue)
  1086  	return res, ok
  1087  }
  1088  func (fpaivs *Role_FieldSubPathArrayItemValue) AsDefaultValuesPathItemValue() (ScopeParam_FieldPathArrayItemValue, bool) {
  1089  	res, ok := fpaivs.subPathItemValue.(ScopeParam_FieldPathArrayItemValue)
  1090  	return res, ok
  1091  }
  1092  func (fpaivs *Role_FieldSubPathArrayItemValue) AsGrantsPathItemValue() (RoleGrant_FieldPathArrayItemValue, bool) {
  1093  	res, ok := fpaivs.subPathItemValue.(RoleGrant_FieldPathArrayItemValue)
  1094  	return res, ok
  1095  }
  1096  
  1097  // Contains returns a boolean indicating if value that is being held is present in given 'Role'
  1098  func (fpaivs *Role_FieldSubPathArrayItemValue) ContainsValue(source *Role) bool {
  1099  	switch fpaivs.Selector() {
  1100  	case Role_FieldPathSelectorMetadata:
  1101  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
  1102  	case Role_FieldPathSelectorScopeParams:
  1103  		return false // repeated/map field
  1104  	case Role_FieldPathSelectorConstValues:
  1105  		return false // repeated/map field
  1106  	case Role_FieldPathSelectorDefaultValues:
  1107  		return false // repeated/map field
  1108  	case Role_FieldPathSelectorGrants:
  1109  		return false // repeated/map field
  1110  	default:
  1111  		panic(fmt.Sprintf("Invalid selector for Role: %d", fpaivs.Selector()))
  1112  	}
  1113  }
  1114  
  1115  // Role_FieldPathArrayOfValues allows storing slice of values for Role fields according to their type
  1116  type Role_FieldPathArrayOfValues interface {
  1117  	gotenobject.FieldPathArrayOfValues
  1118  	Role_FieldPath
  1119  }
  1120  
  1121  func ParseRole_FieldPathArrayOfValues(pathStr, valuesStr string) (Role_FieldPathArrayOfValues, error) {
  1122  	fp, err := ParseRole_FieldPath(pathStr)
  1123  	if err != nil {
  1124  		return nil, err
  1125  	}
  1126  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1127  	if err != nil {
  1128  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Role field path array of values from %s: %v", valuesStr, err)
  1129  	}
  1130  	return fpaov.(Role_FieldPathArrayOfValues), nil
  1131  }
  1132  
  1133  func MustParseRole_FieldPathArrayOfValues(pathStr, valuesStr string) Role_FieldPathArrayOfValues {
  1134  	fpaov, err := ParseRole_FieldPathArrayOfValues(pathStr, valuesStr)
  1135  	if err != nil {
  1136  		panic(err)
  1137  	}
  1138  	return fpaov
  1139  }
  1140  
  1141  type Role_FieldTerminalPathArrayOfValues struct {
  1142  	Role_FieldTerminalPath
  1143  	values interface{}
  1144  }
  1145  
  1146  var _ Role_FieldPathArrayOfValues = (*Role_FieldTerminalPathArrayOfValues)(nil)
  1147  
  1148  func (fpaov *Role_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1149  	switch fpaov.selector {
  1150  	case Role_FieldPathSelectorName:
  1151  		for _, v := range fpaov.values.([]*Name) {
  1152  			values = append(values, v)
  1153  		}
  1154  	case Role_FieldPathSelectorMetadata:
  1155  		for _, v := range fpaov.values.([]*meta.Meta) {
  1156  			values = append(values, v)
  1157  		}
  1158  	case Role_FieldPathSelectorDisplayName:
  1159  		for _, v := range fpaov.values.([]string) {
  1160  			values = append(values, v)
  1161  		}
  1162  	case Role_FieldPathSelectorDescription:
  1163  		for _, v := range fpaov.values.([]string) {
  1164  			values = append(values, v)
  1165  		}
  1166  	case Role_FieldPathSelectorCategory:
  1167  		for _, v := range fpaov.values.([]Role_Category) {
  1168  			values = append(values, v)
  1169  		}
  1170  	case Role_FieldPathSelectorScopeParams:
  1171  		for _, v := range fpaov.values.([][]*Role_ScopeParamType) {
  1172  			values = append(values, v)
  1173  		}
  1174  	case Role_FieldPathSelectorConstValues:
  1175  		for _, v := range fpaov.values.([][]*ScopeParam) {
  1176  			values = append(values, v)
  1177  		}
  1178  	case Role_FieldPathSelectorDefaultValues:
  1179  		for _, v := range fpaov.values.([][]*ScopeParam) {
  1180  			values = append(values, v)
  1181  		}
  1182  	case Role_FieldPathSelectorGrants:
  1183  		for _, v := range fpaov.values.([][]*Role_Grant) {
  1184  			values = append(values, v)
  1185  		}
  1186  	case Role_FieldPathSelectorOwnedObjects:
  1187  		for _, v := range fpaov.values.([][]string) {
  1188  			values = append(values, v)
  1189  		}
  1190  	case Role_FieldPathSelectorServices:
  1191  		for _, v := range fpaov.values.([][]*meta_service.Reference) {
  1192  			values = append(values, v)
  1193  		}
  1194  	case Role_FieldPathSelectorRbSpecGeneration:
  1195  		for _, v := range fpaov.values.([]int64) {
  1196  			values = append(values, v)
  1197  		}
  1198  	}
  1199  	return
  1200  }
  1201  func (fpaov *Role_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
  1202  	res, ok := fpaov.values.([]*Name)
  1203  	return res, ok
  1204  }
  1205  func (fpaov *Role_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
  1206  	res, ok := fpaov.values.([]*meta.Meta)
  1207  	return res, ok
  1208  }
  1209  func (fpaov *Role_FieldTerminalPathArrayOfValues) AsDisplayNameArrayOfValues() ([]string, bool) {
  1210  	res, ok := fpaov.values.([]string)
  1211  	return res, ok
  1212  }
  1213  func (fpaov *Role_FieldTerminalPathArrayOfValues) AsDescriptionArrayOfValues() ([]string, bool) {
  1214  	res, ok := fpaov.values.([]string)
  1215  	return res, ok
  1216  }
  1217  func (fpaov *Role_FieldTerminalPathArrayOfValues) AsCategoryArrayOfValues() ([]Role_Category, bool) {
  1218  	res, ok := fpaov.values.([]Role_Category)
  1219  	return res, ok
  1220  }
  1221  func (fpaov *Role_FieldTerminalPathArrayOfValues) AsScopeParamsArrayOfValues() ([][]*Role_ScopeParamType, bool) {
  1222  	res, ok := fpaov.values.([][]*Role_ScopeParamType)
  1223  	return res, ok
  1224  }
  1225  func (fpaov *Role_FieldTerminalPathArrayOfValues) AsConstValuesArrayOfValues() ([][]*ScopeParam, bool) {
  1226  	res, ok := fpaov.values.([][]*ScopeParam)
  1227  	return res, ok
  1228  }
  1229  func (fpaov *Role_FieldTerminalPathArrayOfValues) AsDefaultValuesArrayOfValues() ([][]*ScopeParam, bool) {
  1230  	res, ok := fpaov.values.([][]*ScopeParam)
  1231  	return res, ok
  1232  }
  1233  func (fpaov *Role_FieldTerminalPathArrayOfValues) AsGrantsArrayOfValues() ([][]*Role_Grant, bool) {
  1234  	res, ok := fpaov.values.([][]*Role_Grant)
  1235  	return res, ok
  1236  }
  1237  func (fpaov *Role_FieldTerminalPathArrayOfValues) AsOwnedObjectsArrayOfValues() ([][]string, bool) {
  1238  	res, ok := fpaov.values.([][]string)
  1239  	return res, ok
  1240  }
  1241  func (fpaov *Role_FieldTerminalPathArrayOfValues) AsServicesArrayOfValues() ([][]*meta_service.Reference, bool) {
  1242  	res, ok := fpaov.values.([][]*meta_service.Reference)
  1243  	return res, ok
  1244  }
  1245  func (fpaov *Role_FieldTerminalPathArrayOfValues) AsRbSpecGenerationArrayOfValues() ([]int64, bool) {
  1246  	res, ok := fpaov.values.([]int64)
  1247  	return res, ok
  1248  }
  1249  
  1250  type Role_FieldSubPathArrayOfValues struct {
  1251  	Role_FieldPath
  1252  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  1253  }
  1254  
  1255  var _ Role_FieldPathArrayOfValues = (*Role_FieldSubPathArrayOfValues)(nil)
  1256  
  1257  func (fpsaov *Role_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  1258  	return fpsaov.subPathArrayOfValues.GetRawValues()
  1259  }
  1260  func (fpsaov *Role_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
  1261  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
  1262  	return res, ok
  1263  }
  1264  func (fpsaov *Role_FieldSubPathArrayOfValues) AsScopeParamsPathArrayOfValues() (RoleScopeParamType_FieldPathArrayOfValues, bool) {
  1265  	res, ok := fpsaov.subPathArrayOfValues.(RoleScopeParamType_FieldPathArrayOfValues)
  1266  	return res, ok
  1267  }
  1268  func (fpsaov *Role_FieldSubPathArrayOfValues) AsConstValuesPathArrayOfValues() (ScopeParam_FieldPathArrayOfValues, bool) {
  1269  	res, ok := fpsaov.subPathArrayOfValues.(ScopeParam_FieldPathArrayOfValues)
  1270  	return res, ok
  1271  }
  1272  func (fpsaov *Role_FieldSubPathArrayOfValues) AsDefaultValuesPathArrayOfValues() (ScopeParam_FieldPathArrayOfValues, bool) {
  1273  	res, ok := fpsaov.subPathArrayOfValues.(ScopeParam_FieldPathArrayOfValues)
  1274  	return res, ok
  1275  }
  1276  func (fpsaov *Role_FieldSubPathArrayOfValues) AsGrantsPathArrayOfValues() (RoleGrant_FieldPathArrayOfValues, bool) {
  1277  	res, ok := fpsaov.subPathArrayOfValues.(RoleGrant_FieldPathArrayOfValues)
  1278  	return res, ok
  1279  }
  1280  
  1281  // FieldPath provides implementation to handle
  1282  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1283  type RoleScopeParamType_FieldPath interface {
  1284  	gotenobject.FieldPath
  1285  	Selector() RoleScopeParamType_FieldPathSelector
  1286  	Get(source *Role_ScopeParamType) []interface{}
  1287  	GetSingle(source *Role_ScopeParamType) (interface{}, bool)
  1288  	ClearValue(item *Role_ScopeParamType)
  1289  
  1290  	// Those methods build corresponding RoleScopeParamType_FieldPathValue
  1291  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1292  	WithIValue(value interface{}) RoleScopeParamType_FieldPathValue
  1293  	WithIArrayOfValues(values interface{}) RoleScopeParamType_FieldPathArrayOfValues
  1294  	WithIArrayItemValue(value interface{}) RoleScopeParamType_FieldPathArrayItemValue
  1295  }
  1296  
  1297  type RoleScopeParamType_FieldPathSelector int32
  1298  
  1299  const (
  1300  	RoleScopeParamType_FieldPathSelectorName RoleScopeParamType_FieldPathSelector = 0
  1301  	RoleScopeParamType_FieldPathSelectorType RoleScopeParamType_FieldPathSelector = 1
  1302  )
  1303  
  1304  func (s RoleScopeParamType_FieldPathSelector) String() string {
  1305  	switch s {
  1306  	case RoleScopeParamType_FieldPathSelectorName:
  1307  		return "name"
  1308  	case RoleScopeParamType_FieldPathSelectorType:
  1309  		return "type"
  1310  	default:
  1311  		panic(fmt.Sprintf("Invalid selector for Role_ScopeParamType: %d", s))
  1312  	}
  1313  }
  1314  
  1315  func BuildRoleScopeParamType_FieldPath(fp gotenobject.RawFieldPath) (RoleScopeParamType_FieldPath, error) {
  1316  	if len(fp) == 0 {
  1317  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Role_ScopeParamType")
  1318  	}
  1319  	if len(fp) == 1 {
  1320  		switch fp[0] {
  1321  		case "name":
  1322  			return &RoleScopeParamType_FieldTerminalPath{selector: RoleScopeParamType_FieldPathSelectorName}, nil
  1323  		case "type":
  1324  			return &RoleScopeParamType_FieldTerminalPath{selector: RoleScopeParamType_FieldPathSelectorType}, nil
  1325  		}
  1326  	}
  1327  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Role_ScopeParamType", fp)
  1328  }
  1329  
  1330  func ParseRoleScopeParamType_FieldPath(rawField string) (RoleScopeParamType_FieldPath, error) {
  1331  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1332  	if err != nil {
  1333  		return nil, err
  1334  	}
  1335  	return BuildRoleScopeParamType_FieldPath(fp)
  1336  }
  1337  
  1338  func MustParseRoleScopeParamType_FieldPath(rawField string) RoleScopeParamType_FieldPath {
  1339  	fp, err := ParseRoleScopeParamType_FieldPath(rawField)
  1340  	if err != nil {
  1341  		panic(err)
  1342  	}
  1343  	return fp
  1344  }
  1345  
  1346  type RoleScopeParamType_FieldTerminalPath struct {
  1347  	selector RoleScopeParamType_FieldPathSelector
  1348  }
  1349  
  1350  var _ RoleScopeParamType_FieldPath = (*RoleScopeParamType_FieldTerminalPath)(nil)
  1351  
  1352  func (fp *RoleScopeParamType_FieldTerminalPath) Selector() RoleScopeParamType_FieldPathSelector {
  1353  	return fp.selector
  1354  }
  1355  
  1356  // String returns path representation in proto convention
  1357  func (fp *RoleScopeParamType_FieldTerminalPath) String() string {
  1358  	return fp.selector.String()
  1359  }
  1360  
  1361  // JSONString returns path representation is JSON convention
  1362  func (fp *RoleScopeParamType_FieldTerminalPath) JSONString() string {
  1363  	return strcase.ToLowerCamel(fp.String())
  1364  }
  1365  
  1366  // Get returns all values pointed by specific field from source Role_ScopeParamType
  1367  func (fp *RoleScopeParamType_FieldTerminalPath) Get(source *Role_ScopeParamType) (values []interface{}) {
  1368  	if source != nil {
  1369  		switch fp.selector {
  1370  		case RoleScopeParamType_FieldPathSelectorName:
  1371  			values = append(values, source.Name)
  1372  		case RoleScopeParamType_FieldPathSelectorType:
  1373  			values = append(values, source.Type)
  1374  		default:
  1375  			panic(fmt.Sprintf("Invalid selector for Role_ScopeParamType: %d", fp.selector))
  1376  		}
  1377  	}
  1378  	return
  1379  }
  1380  
  1381  func (fp *RoleScopeParamType_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1382  	return fp.Get(source.(*Role_ScopeParamType))
  1383  }
  1384  
  1385  // GetSingle returns value pointed by specific field of from source Role_ScopeParamType
  1386  func (fp *RoleScopeParamType_FieldTerminalPath) GetSingle(source *Role_ScopeParamType) (interface{}, bool) {
  1387  	switch fp.selector {
  1388  	case RoleScopeParamType_FieldPathSelectorName:
  1389  		return source.GetName(), source != nil
  1390  	case RoleScopeParamType_FieldPathSelectorType:
  1391  		return source.GetType(), source != nil
  1392  	default:
  1393  		panic(fmt.Sprintf("Invalid selector for Role_ScopeParamType: %d", fp.selector))
  1394  	}
  1395  }
  1396  
  1397  func (fp *RoleScopeParamType_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1398  	return fp.GetSingle(source.(*Role_ScopeParamType))
  1399  }
  1400  
  1401  // GetDefault returns a default value of the field type
  1402  func (fp *RoleScopeParamType_FieldTerminalPath) GetDefault() interface{} {
  1403  	switch fp.selector {
  1404  	case RoleScopeParamType_FieldPathSelectorName:
  1405  		return ""
  1406  	case RoleScopeParamType_FieldPathSelectorType:
  1407  		return Role_ScopeParamType_UNDEFINED
  1408  	default:
  1409  		panic(fmt.Sprintf("Invalid selector for Role_ScopeParamType: %d", fp.selector))
  1410  	}
  1411  }
  1412  
  1413  func (fp *RoleScopeParamType_FieldTerminalPath) ClearValue(item *Role_ScopeParamType) {
  1414  	if item != nil {
  1415  		switch fp.selector {
  1416  		case RoleScopeParamType_FieldPathSelectorName:
  1417  			item.Name = ""
  1418  		case RoleScopeParamType_FieldPathSelectorType:
  1419  			item.Type = Role_ScopeParamType_UNDEFINED
  1420  		default:
  1421  			panic(fmt.Sprintf("Invalid selector for Role_ScopeParamType: %d", fp.selector))
  1422  		}
  1423  	}
  1424  }
  1425  
  1426  func (fp *RoleScopeParamType_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1427  	fp.ClearValue(item.(*Role_ScopeParamType))
  1428  }
  1429  
  1430  // IsLeaf - whether field path is holds simple value
  1431  func (fp *RoleScopeParamType_FieldTerminalPath) IsLeaf() bool {
  1432  	return fp.selector == RoleScopeParamType_FieldPathSelectorName ||
  1433  		fp.selector == RoleScopeParamType_FieldPathSelectorType
  1434  }
  1435  
  1436  func (fp *RoleScopeParamType_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1437  	return []gotenobject.FieldPath{fp}
  1438  }
  1439  
  1440  func (fp *RoleScopeParamType_FieldTerminalPath) WithIValue(value interface{}) RoleScopeParamType_FieldPathValue {
  1441  	switch fp.selector {
  1442  	case RoleScopeParamType_FieldPathSelectorName:
  1443  		return &RoleScopeParamType_FieldTerminalPathValue{RoleScopeParamType_FieldTerminalPath: *fp, value: value.(string)}
  1444  	case RoleScopeParamType_FieldPathSelectorType:
  1445  		return &RoleScopeParamType_FieldTerminalPathValue{RoleScopeParamType_FieldTerminalPath: *fp, value: value.(Role_ScopeParamType_Type)}
  1446  	default:
  1447  		panic(fmt.Sprintf("Invalid selector for Role_ScopeParamType: %d", fp.selector))
  1448  	}
  1449  }
  1450  
  1451  func (fp *RoleScopeParamType_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1452  	return fp.WithIValue(value)
  1453  }
  1454  
  1455  func (fp *RoleScopeParamType_FieldTerminalPath) WithIArrayOfValues(values interface{}) RoleScopeParamType_FieldPathArrayOfValues {
  1456  	fpaov := &RoleScopeParamType_FieldTerminalPathArrayOfValues{RoleScopeParamType_FieldTerminalPath: *fp}
  1457  	switch fp.selector {
  1458  	case RoleScopeParamType_FieldPathSelectorName:
  1459  		return &RoleScopeParamType_FieldTerminalPathArrayOfValues{RoleScopeParamType_FieldTerminalPath: *fp, values: values.([]string)}
  1460  	case RoleScopeParamType_FieldPathSelectorType:
  1461  		return &RoleScopeParamType_FieldTerminalPathArrayOfValues{RoleScopeParamType_FieldTerminalPath: *fp, values: values.([]Role_ScopeParamType_Type)}
  1462  	default:
  1463  		panic(fmt.Sprintf("Invalid selector for Role_ScopeParamType: %d", fp.selector))
  1464  	}
  1465  	return fpaov
  1466  }
  1467  
  1468  func (fp *RoleScopeParamType_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1469  	return fp.WithIArrayOfValues(values)
  1470  }
  1471  
  1472  func (fp *RoleScopeParamType_FieldTerminalPath) WithIArrayItemValue(value interface{}) RoleScopeParamType_FieldPathArrayItemValue {
  1473  	switch fp.selector {
  1474  	default:
  1475  		panic(fmt.Sprintf("Invalid selector for Role_ScopeParamType: %d", fp.selector))
  1476  	}
  1477  }
  1478  
  1479  func (fp *RoleScopeParamType_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1480  	return fp.WithIArrayItemValue(value)
  1481  }
  1482  
  1483  // RoleScopeParamType_FieldPathValue allows storing values for ScopeParamType fields according to their type
  1484  type RoleScopeParamType_FieldPathValue interface {
  1485  	RoleScopeParamType_FieldPath
  1486  	gotenobject.FieldPathValue
  1487  	SetTo(target **Role_ScopeParamType)
  1488  	CompareWith(*Role_ScopeParamType) (cmp int, comparable bool)
  1489  }
  1490  
  1491  func ParseRoleScopeParamType_FieldPathValue(pathStr, valueStr string) (RoleScopeParamType_FieldPathValue, error) {
  1492  	fp, err := ParseRoleScopeParamType_FieldPath(pathStr)
  1493  	if err != nil {
  1494  		return nil, err
  1495  	}
  1496  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1497  	if err != nil {
  1498  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ScopeParamType field path value from %s: %v", valueStr, err)
  1499  	}
  1500  	return fpv.(RoleScopeParamType_FieldPathValue), nil
  1501  }
  1502  
  1503  func MustParseRoleScopeParamType_FieldPathValue(pathStr, valueStr string) RoleScopeParamType_FieldPathValue {
  1504  	fpv, err := ParseRoleScopeParamType_FieldPathValue(pathStr, valueStr)
  1505  	if err != nil {
  1506  		panic(err)
  1507  	}
  1508  	return fpv
  1509  }
  1510  
  1511  type RoleScopeParamType_FieldTerminalPathValue struct {
  1512  	RoleScopeParamType_FieldTerminalPath
  1513  	value interface{}
  1514  }
  1515  
  1516  var _ RoleScopeParamType_FieldPathValue = (*RoleScopeParamType_FieldTerminalPathValue)(nil)
  1517  
  1518  // GetRawValue returns raw value stored under selected path for 'ScopeParamType' as interface{}
  1519  func (fpv *RoleScopeParamType_FieldTerminalPathValue) GetRawValue() interface{} {
  1520  	return fpv.value
  1521  }
  1522  func (fpv *RoleScopeParamType_FieldTerminalPathValue) AsNameValue() (string, bool) {
  1523  	res, ok := fpv.value.(string)
  1524  	return res, ok
  1525  }
  1526  func (fpv *RoleScopeParamType_FieldTerminalPathValue) AsTypeValue() (Role_ScopeParamType_Type, bool) {
  1527  	res, ok := fpv.value.(Role_ScopeParamType_Type)
  1528  	return res, ok
  1529  }
  1530  
  1531  // SetTo stores value for selected field for object ScopeParamType
  1532  func (fpv *RoleScopeParamType_FieldTerminalPathValue) SetTo(target **Role_ScopeParamType) {
  1533  	if *target == nil {
  1534  		*target = new(Role_ScopeParamType)
  1535  	}
  1536  	switch fpv.selector {
  1537  	case RoleScopeParamType_FieldPathSelectorName:
  1538  		(*target).Name = fpv.value.(string)
  1539  	case RoleScopeParamType_FieldPathSelectorType:
  1540  		(*target).Type = fpv.value.(Role_ScopeParamType_Type)
  1541  	default:
  1542  		panic(fmt.Sprintf("Invalid selector for Role_ScopeParamType: %d", fpv.selector))
  1543  	}
  1544  }
  1545  
  1546  func (fpv *RoleScopeParamType_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1547  	typedObject := target.(*Role_ScopeParamType)
  1548  	fpv.SetTo(&typedObject)
  1549  }
  1550  
  1551  // CompareWith compares value in the 'RoleScopeParamType_FieldTerminalPathValue' with the value under path in 'Role_ScopeParamType'.
  1552  func (fpv *RoleScopeParamType_FieldTerminalPathValue) CompareWith(source *Role_ScopeParamType) (int, bool) {
  1553  	switch fpv.selector {
  1554  	case RoleScopeParamType_FieldPathSelectorName:
  1555  		leftValue := fpv.value.(string)
  1556  		rightValue := source.GetName()
  1557  		if (leftValue) == (rightValue) {
  1558  			return 0, true
  1559  		} else if (leftValue) < (rightValue) {
  1560  			return -1, true
  1561  		} else {
  1562  			return 1, true
  1563  		}
  1564  	case RoleScopeParamType_FieldPathSelectorType:
  1565  		leftValue := fpv.value.(Role_ScopeParamType_Type)
  1566  		rightValue := source.GetType()
  1567  		if (leftValue) == (rightValue) {
  1568  			return 0, true
  1569  		} else if (leftValue) < (rightValue) {
  1570  			return -1, true
  1571  		} else {
  1572  			return 1, true
  1573  		}
  1574  	default:
  1575  		panic(fmt.Sprintf("Invalid selector for Role_ScopeParamType: %d", fpv.selector))
  1576  	}
  1577  }
  1578  
  1579  func (fpv *RoleScopeParamType_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1580  	return fpv.CompareWith(source.(*Role_ScopeParamType))
  1581  }
  1582  
  1583  // RoleScopeParamType_FieldPathArrayItemValue allows storing single item in Path-specific values for ScopeParamType according to their type
  1584  // Present only for array (repeated) types.
  1585  type RoleScopeParamType_FieldPathArrayItemValue interface {
  1586  	gotenobject.FieldPathArrayItemValue
  1587  	RoleScopeParamType_FieldPath
  1588  	ContainsValue(*Role_ScopeParamType) bool
  1589  }
  1590  
  1591  // ParseRoleScopeParamType_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1592  func ParseRoleScopeParamType_FieldPathArrayItemValue(pathStr, valueStr string) (RoleScopeParamType_FieldPathArrayItemValue, error) {
  1593  	fp, err := ParseRoleScopeParamType_FieldPath(pathStr)
  1594  	if err != nil {
  1595  		return nil, err
  1596  	}
  1597  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1598  	if err != nil {
  1599  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ScopeParamType field path array item value from %s: %v", valueStr, err)
  1600  	}
  1601  	return fpaiv.(RoleScopeParamType_FieldPathArrayItemValue), nil
  1602  }
  1603  
  1604  func MustParseRoleScopeParamType_FieldPathArrayItemValue(pathStr, valueStr string) RoleScopeParamType_FieldPathArrayItemValue {
  1605  	fpaiv, err := ParseRoleScopeParamType_FieldPathArrayItemValue(pathStr, valueStr)
  1606  	if err != nil {
  1607  		panic(err)
  1608  	}
  1609  	return fpaiv
  1610  }
  1611  
  1612  type RoleScopeParamType_FieldTerminalPathArrayItemValue struct {
  1613  	RoleScopeParamType_FieldTerminalPath
  1614  	value interface{}
  1615  }
  1616  
  1617  var _ RoleScopeParamType_FieldPathArrayItemValue = (*RoleScopeParamType_FieldTerminalPathArrayItemValue)(nil)
  1618  
  1619  // GetRawValue returns stored element value for array in object Role_ScopeParamType as interface{}
  1620  func (fpaiv *RoleScopeParamType_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1621  	return fpaiv.value
  1622  }
  1623  
  1624  func (fpaiv *RoleScopeParamType_FieldTerminalPathArrayItemValue) GetSingle(source *Role_ScopeParamType) (interface{}, bool) {
  1625  	return nil, false
  1626  }
  1627  
  1628  func (fpaiv *RoleScopeParamType_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1629  	return fpaiv.GetSingle(source.(*Role_ScopeParamType))
  1630  }
  1631  
  1632  // Contains returns a boolean indicating if value that is being held is present in given 'ScopeParamType'
  1633  func (fpaiv *RoleScopeParamType_FieldTerminalPathArrayItemValue) ContainsValue(source *Role_ScopeParamType) bool {
  1634  	slice := fpaiv.RoleScopeParamType_FieldTerminalPath.Get(source)
  1635  	for _, v := range slice {
  1636  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1637  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1638  				return true
  1639  			}
  1640  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1641  			return true
  1642  		}
  1643  	}
  1644  	return false
  1645  }
  1646  
  1647  // RoleScopeParamType_FieldPathArrayOfValues allows storing slice of values for ScopeParamType fields according to their type
  1648  type RoleScopeParamType_FieldPathArrayOfValues interface {
  1649  	gotenobject.FieldPathArrayOfValues
  1650  	RoleScopeParamType_FieldPath
  1651  }
  1652  
  1653  func ParseRoleScopeParamType_FieldPathArrayOfValues(pathStr, valuesStr string) (RoleScopeParamType_FieldPathArrayOfValues, error) {
  1654  	fp, err := ParseRoleScopeParamType_FieldPath(pathStr)
  1655  	if err != nil {
  1656  		return nil, err
  1657  	}
  1658  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1659  	if err != nil {
  1660  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ScopeParamType field path array of values from %s: %v", valuesStr, err)
  1661  	}
  1662  	return fpaov.(RoleScopeParamType_FieldPathArrayOfValues), nil
  1663  }
  1664  
  1665  func MustParseRoleScopeParamType_FieldPathArrayOfValues(pathStr, valuesStr string) RoleScopeParamType_FieldPathArrayOfValues {
  1666  	fpaov, err := ParseRoleScopeParamType_FieldPathArrayOfValues(pathStr, valuesStr)
  1667  	if err != nil {
  1668  		panic(err)
  1669  	}
  1670  	return fpaov
  1671  }
  1672  
  1673  type RoleScopeParamType_FieldTerminalPathArrayOfValues struct {
  1674  	RoleScopeParamType_FieldTerminalPath
  1675  	values interface{}
  1676  }
  1677  
  1678  var _ RoleScopeParamType_FieldPathArrayOfValues = (*RoleScopeParamType_FieldTerminalPathArrayOfValues)(nil)
  1679  
  1680  func (fpaov *RoleScopeParamType_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1681  	switch fpaov.selector {
  1682  	case RoleScopeParamType_FieldPathSelectorName:
  1683  		for _, v := range fpaov.values.([]string) {
  1684  			values = append(values, v)
  1685  		}
  1686  	case RoleScopeParamType_FieldPathSelectorType:
  1687  		for _, v := range fpaov.values.([]Role_ScopeParamType_Type) {
  1688  			values = append(values, v)
  1689  		}
  1690  	}
  1691  	return
  1692  }
  1693  func (fpaov *RoleScopeParamType_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]string, bool) {
  1694  	res, ok := fpaov.values.([]string)
  1695  	return res, ok
  1696  }
  1697  func (fpaov *RoleScopeParamType_FieldTerminalPathArrayOfValues) AsTypeArrayOfValues() ([]Role_ScopeParamType_Type, bool) {
  1698  	res, ok := fpaov.values.([]Role_ScopeParamType_Type)
  1699  	return res, ok
  1700  }
  1701  
  1702  // FieldPath provides implementation to handle
  1703  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1704  type RoleGrant_FieldPath interface {
  1705  	gotenobject.FieldPath
  1706  	Selector() RoleGrant_FieldPathSelector
  1707  	Get(source *Role_Grant) []interface{}
  1708  	GetSingle(source *Role_Grant) (interface{}, bool)
  1709  	ClearValue(item *Role_Grant)
  1710  
  1711  	// Those methods build corresponding RoleGrant_FieldPathValue
  1712  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1713  	WithIValue(value interface{}) RoleGrant_FieldPathValue
  1714  	WithIArrayOfValues(values interface{}) RoleGrant_FieldPathArrayOfValues
  1715  	WithIArrayItemValue(value interface{}) RoleGrant_FieldPathArrayItemValue
  1716  }
  1717  
  1718  type RoleGrant_FieldPathSelector int32
  1719  
  1720  const (
  1721  	RoleGrant_FieldPathSelectorSubScope                RoleGrant_FieldPathSelector = 0
  1722  	RoleGrant_FieldPathSelectorPermissions             RoleGrant_FieldPathSelector = 1
  1723  	RoleGrant_FieldPathSelectorResourceFieldConditions RoleGrant_FieldPathSelector = 2
  1724  	RoleGrant_FieldPathSelectorRequestFieldConditions  RoleGrant_FieldPathSelector = 3
  1725  	RoleGrant_FieldPathSelectorExecutableConditions    RoleGrant_FieldPathSelector = 4
  1726  )
  1727  
  1728  func (s RoleGrant_FieldPathSelector) String() string {
  1729  	switch s {
  1730  	case RoleGrant_FieldPathSelectorSubScope:
  1731  		return "sub_scope"
  1732  	case RoleGrant_FieldPathSelectorPermissions:
  1733  		return "permissions"
  1734  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  1735  		return "resource_field_conditions"
  1736  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  1737  		return "request_field_conditions"
  1738  	case RoleGrant_FieldPathSelectorExecutableConditions:
  1739  		return "executable_conditions"
  1740  	default:
  1741  		panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", s))
  1742  	}
  1743  }
  1744  
  1745  func BuildRoleGrant_FieldPath(fp gotenobject.RawFieldPath) (RoleGrant_FieldPath, error) {
  1746  	if len(fp) == 0 {
  1747  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Role_Grant")
  1748  	}
  1749  	if len(fp) == 1 {
  1750  		switch fp[0] {
  1751  		case "sub_scope", "subScope", "sub-scope":
  1752  			return &RoleGrant_FieldTerminalPath{selector: RoleGrant_FieldPathSelectorSubScope}, nil
  1753  		case "permissions":
  1754  			return &RoleGrant_FieldTerminalPath{selector: RoleGrant_FieldPathSelectorPermissions}, nil
  1755  		case "resource_field_conditions", "resourceFieldConditions", "resource-field-conditions":
  1756  			return &RoleGrant_FieldTerminalPath{selector: RoleGrant_FieldPathSelectorResourceFieldConditions}, nil
  1757  		case "request_field_conditions", "requestFieldConditions", "request-field-conditions":
  1758  			return &RoleGrant_FieldTerminalPath{selector: RoleGrant_FieldPathSelectorRequestFieldConditions}, nil
  1759  		case "executable_conditions", "executableConditions", "executable-conditions":
  1760  			return &RoleGrant_FieldTerminalPath{selector: RoleGrant_FieldPathSelectorExecutableConditions}, nil
  1761  		}
  1762  	} else {
  1763  		switch fp[0] {
  1764  		case "resource_field_conditions", "resourceFieldConditions", "resource-field-conditions":
  1765  			if subpath, err := BuildRoleGrantFieldCondition_FieldPath(fp[1:]); err != nil {
  1766  				return nil, err
  1767  			} else {
  1768  				return &RoleGrant_FieldSubPath{selector: RoleGrant_FieldPathSelectorResourceFieldConditions, subPath: subpath}, nil
  1769  			}
  1770  		case "request_field_conditions", "requestFieldConditions", "request-field-conditions":
  1771  			if subpath, err := BuildRoleGrantFieldCondition_FieldPath(fp[1:]); err != nil {
  1772  				return nil, err
  1773  			} else {
  1774  				return &RoleGrant_FieldSubPath{selector: RoleGrant_FieldPathSelectorRequestFieldConditions, subPath: subpath}, nil
  1775  			}
  1776  		case "executable_conditions", "executableConditions", "executable-conditions":
  1777  			if subpath, err := condition.BuildExecutableCondition_FieldPath(fp[1:]); err != nil {
  1778  				return nil, err
  1779  			} else {
  1780  				return &RoleGrant_FieldSubPath{selector: RoleGrant_FieldPathSelectorExecutableConditions, subPath: subpath}, nil
  1781  			}
  1782  		}
  1783  	}
  1784  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Role_Grant", fp)
  1785  }
  1786  
  1787  func ParseRoleGrant_FieldPath(rawField string) (RoleGrant_FieldPath, error) {
  1788  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1789  	if err != nil {
  1790  		return nil, err
  1791  	}
  1792  	return BuildRoleGrant_FieldPath(fp)
  1793  }
  1794  
  1795  func MustParseRoleGrant_FieldPath(rawField string) RoleGrant_FieldPath {
  1796  	fp, err := ParseRoleGrant_FieldPath(rawField)
  1797  	if err != nil {
  1798  		panic(err)
  1799  	}
  1800  	return fp
  1801  }
  1802  
  1803  type RoleGrant_FieldTerminalPath struct {
  1804  	selector RoleGrant_FieldPathSelector
  1805  }
  1806  
  1807  var _ RoleGrant_FieldPath = (*RoleGrant_FieldTerminalPath)(nil)
  1808  
  1809  func (fp *RoleGrant_FieldTerminalPath) Selector() RoleGrant_FieldPathSelector {
  1810  	return fp.selector
  1811  }
  1812  
  1813  // String returns path representation in proto convention
  1814  func (fp *RoleGrant_FieldTerminalPath) String() string {
  1815  	return fp.selector.String()
  1816  }
  1817  
  1818  // JSONString returns path representation is JSON convention
  1819  func (fp *RoleGrant_FieldTerminalPath) JSONString() string {
  1820  	return strcase.ToLowerCamel(fp.String())
  1821  }
  1822  
  1823  // Get returns all values pointed by specific field from source Role_Grant
  1824  func (fp *RoleGrant_FieldTerminalPath) Get(source *Role_Grant) (values []interface{}) {
  1825  	if source != nil {
  1826  		switch fp.selector {
  1827  		case RoleGrant_FieldPathSelectorSubScope:
  1828  			values = append(values, source.SubScope)
  1829  		case RoleGrant_FieldPathSelectorPermissions:
  1830  			for _, value := range source.GetPermissions() {
  1831  				values = append(values, value)
  1832  			}
  1833  		case RoleGrant_FieldPathSelectorResourceFieldConditions:
  1834  			for _, value := range source.GetResourceFieldConditions() {
  1835  				values = append(values, value)
  1836  			}
  1837  		case RoleGrant_FieldPathSelectorRequestFieldConditions:
  1838  			for _, value := range source.GetRequestFieldConditions() {
  1839  				values = append(values, value)
  1840  			}
  1841  		case RoleGrant_FieldPathSelectorExecutableConditions:
  1842  			for _, value := range source.GetExecutableConditions() {
  1843  				values = append(values, value)
  1844  			}
  1845  		default:
  1846  			panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fp.selector))
  1847  		}
  1848  	}
  1849  	return
  1850  }
  1851  
  1852  func (fp *RoleGrant_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1853  	return fp.Get(source.(*Role_Grant))
  1854  }
  1855  
  1856  // GetSingle returns value pointed by specific field of from source Role_Grant
  1857  func (fp *RoleGrant_FieldTerminalPath) GetSingle(source *Role_Grant) (interface{}, bool) {
  1858  	switch fp.selector {
  1859  	case RoleGrant_FieldPathSelectorSubScope:
  1860  		return source.GetSubScope(), source != nil
  1861  	case RoleGrant_FieldPathSelectorPermissions:
  1862  		res := source.GetPermissions()
  1863  		return res, res != nil
  1864  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  1865  		res := source.GetResourceFieldConditions()
  1866  		return res, res != nil
  1867  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  1868  		res := source.GetRequestFieldConditions()
  1869  		return res, res != nil
  1870  	case RoleGrant_FieldPathSelectorExecutableConditions:
  1871  		res := source.GetExecutableConditions()
  1872  		return res, res != nil
  1873  	default:
  1874  		panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fp.selector))
  1875  	}
  1876  }
  1877  
  1878  func (fp *RoleGrant_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1879  	return fp.GetSingle(source.(*Role_Grant))
  1880  }
  1881  
  1882  // GetDefault returns a default value of the field type
  1883  func (fp *RoleGrant_FieldTerminalPath) GetDefault() interface{} {
  1884  	switch fp.selector {
  1885  	case RoleGrant_FieldPathSelectorSubScope:
  1886  		return ""
  1887  	case RoleGrant_FieldPathSelectorPermissions:
  1888  		return ([]*permission.Reference)(nil)
  1889  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  1890  		return ([]*Role_Grant_FieldCondition)(nil)
  1891  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  1892  		return ([]*Role_Grant_FieldCondition)(nil)
  1893  	case RoleGrant_FieldPathSelectorExecutableConditions:
  1894  		return ([]*condition.ExecutableCondition)(nil)
  1895  	default:
  1896  		panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fp.selector))
  1897  	}
  1898  }
  1899  
  1900  func (fp *RoleGrant_FieldTerminalPath) ClearValue(item *Role_Grant) {
  1901  	if item != nil {
  1902  		switch fp.selector {
  1903  		case RoleGrant_FieldPathSelectorSubScope:
  1904  			item.SubScope = ""
  1905  		case RoleGrant_FieldPathSelectorPermissions:
  1906  			item.Permissions = nil
  1907  		case RoleGrant_FieldPathSelectorResourceFieldConditions:
  1908  			item.ResourceFieldConditions = nil
  1909  		case RoleGrant_FieldPathSelectorRequestFieldConditions:
  1910  			item.RequestFieldConditions = nil
  1911  		case RoleGrant_FieldPathSelectorExecutableConditions:
  1912  			item.ExecutableConditions = nil
  1913  		default:
  1914  			panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fp.selector))
  1915  		}
  1916  	}
  1917  }
  1918  
  1919  func (fp *RoleGrant_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1920  	fp.ClearValue(item.(*Role_Grant))
  1921  }
  1922  
  1923  // IsLeaf - whether field path is holds simple value
  1924  func (fp *RoleGrant_FieldTerminalPath) IsLeaf() bool {
  1925  	return fp.selector == RoleGrant_FieldPathSelectorSubScope ||
  1926  		fp.selector == RoleGrant_FieldPathSelectorPermissions
  1927  }
  1928  
  1929  func (fp *RoleGrant_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1930  	return []gotenobject.FieldPath{fp}
  1931  }
  1932  
  1933  func (fp *RoleGrant_FieldTerminalPath) WithIValue(value interface{}) RoleGrant_FieldPathValue {
  1934  	switch fp.selector {
  1935  	case RoleGrant_FieldPathSelectorSubScope:
  1936  		return &RoleGrant_FieldTerminalPathValue{RoleGrant_FieldTerminalPath: *fp, value: value.(string)}
  1937  	case RoleGrant_FieldPathSelectorPermissions:
  1938  		return &RoleGrant_FieldTerminalPathValue{RoleGrant_FieldTerminalPath: *fp, value: value.([]*permission.Reference)}
  1939  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  1940  		return &RoleGrant_FieldTerminalPathValue{RoleGrant_FieldTerminalPath: *fp, value: value.([]*Role_Grant_FieldCondition)}
  1941  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  1942  		return &RoleGrant_FieldTerminalPathValue{RoleGrant_FieldTerminalPath: *fp, value: value.([]*Role_Grant_FieldCondition)}
  1943  	case RoleGrant_FieldPathSelectorExecutableConditions:
  1944  		return &RoleGrant_FieldTerminalPathValue{RoleGrant_FieldTerminalPath: *fp, value: value.([]*condition.ExecutableCondition)}
  1945  	default:
  1946  		panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fp.selector))
  1947  	}
  1948  }
  1949  
  1950  func (fp *RoleGrant_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1951  	return fp.WithIValue(value)
  1952  }
  1953  
  1954  func (fp *RoleGrant_FieldTerminalPath) WithIArrayOfValues(values interface{}) RoleGrant_FieldPathArrayOfValues {
  1955  	fpaov := &RoleGrant_FieldTerminalPathArrayOfValues{RoleGrant_FieldTerminalPath: *fp}
  1956  	switch fp.selector {
  1957  	case RoleGrant_FieldPathSelectorSubScope:
  1958  		return &RoleGrant_FieldTerminalPathArrayOfValues{RoleGrant_FieldTerminalPath: *fp, values: values.([]string)}
  1959  	case RoleGrant_FieldPathSelectorPermissions:
  1960  		return &RoleGrant_FieldTerminalPathArrayOfValues{RoleGrant_FieldTerminalPath: *fp, values: values.([][]*permission.Reference)}
  1961  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  1962  		return &RoleGrant_FieldTerminalPathArrayOfValues{RoleGrant_FieldTerminalPath: *fp, values: values.([][]*Role_Grant_FieldCondition)}
  1963  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  1964  		return &RoleGrant_FieldTerminalPathArrayOfValues{RoleGrant_FieldTerminalPath: *fp, values: values.([][]*Role_Grant_FieldCondition)}
  1965  	case RoleGrant_FieldPathSelectorExecutableConditions:
  1966  		return &RoleGrant_FieldTerminalPathArrayOfValues{RoleGrant_FieldTerminalPath: *fp, values: values.([][]*condition.ExecutableCondition)}
  1967  	default:
  1968  		panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fp.selector))
  1969  	}
  1970  	return fpaov
  1971  }
  1972  
  1973  func (fp *RoleGrant_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1974  	return fp.WithIArrayOfValues(values)
  1975  }
  1976  
  1977  func (fp *RoleGrant_FieldTerminalPath) WithIArrayItemValue(value interface{}) RoleGrant_FieldPathArrayItemValue {
  1978  	switch fp.selector {
  1979  	case RoleGrant_FieldPathSelectorPermissions:
  1980  		return &RoleGrant_FieldTerminalPathArrayItemValue{RoleGrant_FieldTerminalPath: *fp, value: value.(*permission.Reference)}
  1981  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  1982  		return &RoleGrant_FieldTerminalPathArrayItemValue{RoleGrant_FieldTerminalPath: *fp, value: value.(*Role_Grant_FieldCondition)}
  1983  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  1984  		return &RoleGrant_FieldTerminalPathArrayItemValue{RoleGrant_FieldTerminalPath: *fp, value: value.(*Role_Grant_FieldCondition)}
  1985  	case RoleGrant_FieldPathSelectorExecutableConditions:
  1986  		return &RoleGrant_FieldTerminalPathArrayItemValue{RoleGrant_FieldTerminalPath: *fp, value: value.(*condition.ExecutableCondition)}
  1987  	default:
  1988  		panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fp.selector))
  1989  	}
  1990  }
  1991  
  1992  func (fp *RoleGrant_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1993  	return fp.WithIArrayItemValue(value)
  1994  }
  1995  
  1996  type RoleGrant_FieldSubPath struct {
  1997  	selector RoleGrant_FieldPathSelector
  1998  	subPath  gotenobject.FieldPath
  1999  }
  2000  
  2001  var _ RoleGrant_FieldPath = (*RoleGrant_FieldSubPath)(nil)
  2002  
  2003  func (fps *RoleGrant_FieldSubPath) Selector() RoleGrant_FieldPathSelector {
  2004  	return fps.selector
  2005  }
  2006  func (fps *RoleGrant_FieldSubPath) AsResourceFieldConditionsSubPath() (RoleGrantFieldCondition_FieldPath, bool) {
  2007  	res, ok := fps.subPath.(RoleGrantFieldCondition_FieldPath)
  2008  	return res, ok
  2009  }
  2010  func (fps *RoleGrant_FieldSubPath) AsRequestFieldConditionsSubPath() (RoleGrantFieldCondition_FieldPath, bool) {
  2011  	res, ok := fps.subPath.(RoleGrantFieldCondition_FieldPath)
  2012  	return res, ok
  2013  }
  2014  func (fps *RoleGrant_FieldSubPath) AsExecutableConditionsSubPath() (condition.ExecutableCondition_FieldPath, bool) {
  2015  	res, ok := fps.subPath.(condition.ExecutableCondition_FieldPath)
  2016  	return res, ok
  2017  }
  2018  
  2019  // String returns path representation in proto convention
  2020  func (fps *RoleGrant_FieldSubPath) String() string {
  2021  	return fps.selector.String() + "." + fps.subPath.String()
  2022  }
  2023  
  2024  // JSONString returns path representation is JSON convention
  2025  func (fps *RoleGrant_FieldSubPath) JSONString() string {
  2026  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
  2027  }
  2028  
  2029  // Get returns all values pointed by selected field from source Role_Grant
  2030  func (fps *RoleGrant_FieldSubPath) Get(source *Role_Grant) (values []interface{}) {
  2031  	switch fps.selector {
  2032  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  2033  		for _, item := range source.GetResourceFieldConditions() {
  2034  			values = append(values, fps.subPath.GetRaw(item)...)
  2035  		}
  2036  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  2037  		for _, item := range source.GetRequestFieldConditions() {
  2038  			values = append(values, fps.subPath.GetRaw(item)...)
  2039  		}
  2040  	case RoleGrant_FieldPathSelectorExecutableConditions:
  2041  		for _, item := range source.GetExecutableConditions() {
  2042  			values = append(values, fps.subPath.GetRaw(item)...)
  2043  		}
  2044  	default:
  2045  		panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fps.selector))
  2046  	}
  2047  	return
  2048  }
  2049  
  2050  func (fps *RoleGrant_FieldSubPath) GetRaw(source proto.Message) []interface{} {
  2051  	return fps.Get(source.(*Role_Grant))
  2052  }
  2053  
  2054  // GetSingle returns value of selected field from source Role_Grant
  2055  func (fps *RoleGrant_FieldSubPath) GetSingle(source *Role_Grant) (interface{}, bool) {
  2056  	switch fps.selector {
  2057  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  2058  		if len(source.GetResourceFieldConditions()) == 0 {
  2059  			return nil, false
  2060  		}
  2061  		return fps.subPath.GetSingleRaw(source.GetResourceFieldConditions()[0])
  2062  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  2063  		if len(source.GetRequestFieldConditions()) == 0 {
  2064  			return nil, false
  2065  		}
  2066  		return fps.subPath.GetSingleRaw(source.GetRequestFieldConditions()[0])
  2067  	case RoleGrant_FieldPathSelectorExecutableConditions:
  2068  		if len(source.GetExecutableConditions()) == 0 {
  2069  			return nil, false
  2070  		}
  2071  		return fps.subPath.GetSingleRaw(source.GetExecutableConditions()[0])
  2072  	default:
  2073  		panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fps.selector))
  2074  	}
  2075  }
  2076  
  2077  func (fps *RoleGrant_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2078  	return fps.GetSingle(source.(*Role_Grant))
  2079  }
  2080  
  2081  // GetDefault returns a default value of the field type
  2082  func (fps *RoleGrant_FieldSubPath) GetDefault() interface{} {
  2083  	return fps.subPath.GetDefault()
  2084  }
  2085  
  2086  func (fps *RoleGrant_FieldSubPath) ClearValue(item *Role_Grant) {
  2087  	if item != nil {
  2088  		switch fps.selector {
  2089  		case RoleGrant_FieldPathSelectorResourceFieldConditions:
  2090  			for _, subItem := range item.ResourceFieldConditions {
  2091  				fps.subPath.ClearValueRaw(subItem)
  2092  			}
  2093  		case RoleGrant_FieldPathSelectorRequestFieldConditions:
  2094  			for _, subItem := range item.RequestFieldConditions {
  2095  				fps.subPath.ClearValueRaw(subItem)
  2096  			}
  2097  		case RoleGrant_FieldPathSelectorExecutableConditions:
  2098  			for _, subItem := range item.ExecutableConditions {
  2099  				fps.subPath.ClearValueRaw(subItem)
  2100  			}
  2101  		default:
  2102  			panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fps.selector))
  2103  		}
  2104  	}
  2105  }
  2106  
  2107  func (fps *RoleGrant_FieldSubPath) ClearValueRaw(item proto.Message) {
  2108  	fps.ClearValue(item.(*Role_Grant))
  2109  }
  2110  
  2111  // IsLeaf - whether field path is holds simple value
  2112  func (fps *RoleGrant_FieldSubPath) IsLeaf() bool {
  2113  	return fps.subPath.IsLeaf()
  2114  }
  2115  
  2116  func (fps *RoleGrant_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  2117  	iPaths := []gotenobject.FieldPath{&RoleGrant_FieldTerminalPath{selector: fps.selector}}
  2118  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
  2119  	return iPaths
  2120  }
  2121  
  2122  func (fps *RoleGrant_FieldSubPath) WithIValue(value interface{}) RoleGrant_FieldPathValue {
  2123  	return &RoleGrant_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
  2124  }
  2125  
  2126  func (fps *RoleGrant_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  2127  	return fps.WithIValue(value)
  2128  }
  2129  
  2130  func (fps *RoleGrant_FieldSubPath) WithIArrayOfValues(values interface{}) RoleGrant_FieldPathArrayOfValues {
  2131  	return &RoleGrant_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
  2132  }
  2133  
  2134  func (fps *RoleGrant_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  2135  	return fps.WithIArrayOfValues(values)
  2136  }
  2137  
  2138  func (fps *RoleGrant_FieldSubPath) WithIArrayItemValue(value interface{}) RoleGrant_FieldPathArrayItemValue {
  2139  	return &RoleGrant_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
  2140  }
  2141  
  2142  func (fps *RoleGrant_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  2143  	return fps.WithIArrayItemValue(value)
  2144  }
  2145  
  2146  // RoleGrant_FieldPathValue allows storing values for Grant fields according to their type
  2147  type RoleGrant_FieldPathValue interface {
  2148  	RoleGrant_FieldPath
  2149  	gotenobject.FieldPathValue
  2150  	SetTo(target **Role_Grant)
  2151  	CompareWith(*Role_Grant) (cmp int, comparable bool)
  2152  }
  2153  
  2154  func ParseRoleGrant_FieldPathValue(pathStr, valueStr string) (RoleGrant_FieldPathValue, error) {
  2155  	fp, err := ParseRoleGrant_FieldPath(pathStr)
  2156  	if err != nil {
  2157  		return nil, err
  2158  	}
  2159  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  2160  	if err != nil {
  2161  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Grant field path value from %s: %v", valueStr, err)
  2162  	}
  2163  	return fpv.(RoleGrant_FieldPathValue), nil
  2164  }
  2165  
  2166  func MustParseRoleGrant_FieldPathValue(pathStr, valueStr string) RoleGrant_FieldPathValue {
  2167  	fpv, err := ParseRoleGrant_FieldPathValue(pathStr, valueStr)
  2168  	if err != nil {
  2169  		panic(err)
  2170  	}
  2171  	return fpv
  2172  }
  2173  
  2174  type RoleGrant_FieldTerminalPathValue struct {
  2175  	RoleGrant_FieldTerminalPath
  2176  	value interface{}
  2177  }
  2178  
  2179  var _ RoleGrant_FieldPathValue = (*RoleGrant_FieldTerminalPathValue)(nil)
  2180  
  2181  // GetRawValue returns raw value stored under selected path for 'Grant' as interface{}
  2182  func (fpv *RoleGrant_FieldTerminalPathValue) GetRawValue() interface{} {
  2183  	return fpv.value
  2184  }
  2185  func (fpv *RoleGrant_FieldTerminalPathValue) AsSubScopeValue() (string, bool) {
  2186  	res, ok := fpv.value.(string)
  2187  	return res, ok
  2188  }
  2189  func (fpv *RoleGrant_FieldTerminalPathValue) AsPermissionsValue() ([]*permission.Reference, bool) {
  2190  	res, ok := fpv.value.([]*permission.Reference)
  2191  	return res, ok
  2192  }
  2193  func (fpv *RoleGrant_FieldTerminalPathValue) AsResourceFieldConditionsValue() ([]*Role_Grant_FieldCondition, bool) {
  2194  	res, ok := fpv.value.([]*Role_Grant_FieldCondition)
  2195  	return res, ok
  2196  }
  2197  func (fpv *RoleGrant_FieldTerminalPathValue) AsRequestFieldConditionsValue() ([]*Role_Grant_FieldCondition, bool) {
  2198  	res, ok := fpv.value.([]*Role_Grant_FieldCondition)
  2199  	return res, ok
  2200  }
  2201  func (fpv *RoleGrant_FieldTerminalPathValue) AsExecutableConditionsValue() ([]*condition.ExecutableCondition, bool) {
  2202  	res, ok := fpv.value.([]*condition.ExecutableCondition)
  2203  	return res, ok
  2204  }
  2205  
  2206  // SetTo stores value for selected field for object Grant
  2207  func (fpv *RoleGrant_FieldTerminalPathValue) SetTo(target **Role_Grant) {
  2208  	if *target == nil {
  2209  		*target = new(Role_Grant)
  2210  	}
  2211  	switch fpv.selector {
  2212  	case RoleGrant_FieldPathSelectorSubScope:
  2213  		(*target).SubScope = fpv.value.(string)
  2214  	case RoleGrant_FieldPathSelectorPermissions:
  2215  		(*target).Permissions = fpv.value.([]*permission.Reference)
  2216  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  2217  		(*target).ResourceFieldConditions = fpv.value.([]*Role_Grant_FieldCondition)
  2218  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  2219  		(*target).RequestFieldConditions = fpv.value.([]*Role_Grant_FieldCondition)
  2220  	case RoleGrant_FieldPathSelectorExecutableConditions:
  2221  		(*target).ExecutableConditions = fpv.value.([]*condition.ExecutableCondition)
  2222  	default:
  2223  		panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fpv.selector))
  2224  	}
  2225  }
  2226  
  2227  func (fpv *RoleGrant_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  2228  	typedObject := target.(*Role_Grant)
  2229  	fpv.SetTo(&typedObject)
  2230  }
  2231  
  2232  // CompareWith compares value in the 'RoleGrant_FieldTerminalPathValue' with the value under path in 'Role_Grant'.
  2233  func (fpv *RoleGrant_FieldTerminalPathValue) CompareWith(source *Role_Grant) (int, bool) {
  2234  	switch fpv.selector {
  2235  	case RoleGrant_FieldPathSelectorSubScope:
  2236  		leftValue := fpv.value.(string)
  2237  		rightValue := source.GetSubScope()
  2238  		if (leftValue) == (rightValue) {
  2239  			return 0, true
  2240  		} else if (leftValue) < (rightValue) {
  2241  			return -1, true
  2242  		} else {
  2243  			return 1, true
  2244  		}
  2245  	case RoleGrant_FieldPathSelectorPermissions:
  2246  		return 0, false
  2247  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  2248  		return 0, false
  2249  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  2250  		return 0, false
  2251  	case RoleGrant_FieldPathSelectorExecutableConditions:
  2252  		return 0, false
  2253  	default:
  2254  		panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fpv.selector))
  2255  	}
  2256  }
  2257  
  2258  func (fpv *RoleGrant_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2259  	return fpv.CompareWith(source.(*Role_Grant))
  2260  }
  2261  
  2262  type RoleGrant_FieldSubPathValue struct {
  2263  	RoleGrant_FieldPath
  2264  	subPathValue gotenobject.FieldPathValue
  2265  }
  2266  
  2267  var _ RoleGrant_FieldPathValue = (*RoleGrant_FieldSubPathValue)(nil)
  2268  
  2269  func (fpvs *RoleGrant_FieldSubPathValue) AsResourceFieldConditionsPathValue() (RoleGrantFieldCondition_FieldPathValue, bool) {
  2270  	res, ok := fpvs.subPathValue.(RoleGrantFieldCondition_FieldPathValue)
  2271  	return res, ok
  2272  }
  2273  func (fpvs *RoleGrant_FieldSubPathValue) AsRequestFieldConditionsPathValue() (RoleGrantFieldCondition_FieldPathValue, bool) {
  2274  	res, ok := fpvs.subPathValue.(RoleGrantFieldCondition_FieldPathValue)
  2275  	return res, ok
  2276  }
  2277  func (fpvs *RoleGrant_FieldSubPathValue) AsExecutableConditionsPathValue() (condition.ExecutableCondition_FieldPathValue, bool) {
  2278  	res, ok := fpvs.subPathValue.(condition.ExecutableCondition_FieldPathValue)
  2279  	return res, ok
  2280  }
  2281  
  2282  func (fpvs *RoleGrant_FieldSubPathValue) SetTo(target **Role_Grant) {
  2283  	if *target == nil {
  2284  		*target = new(Role_Grant)
  2285  	}
  2286  	switch fpvs.Selector() {
  2287  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  2288  		panic("FieldPath setter is unsupported for array subpaths")
  2289  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  2290  		panic("FieldPath setter is unsupported for array subpaths")
  2291  	case RoleGrant_FieldPathSelectorExecutableConditions:
  2292  		panic("FieldPath setter is unsupported for array subpaths")
  2293  	default:
  2294  		panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fpvs.Selector()))
  2295  	}
  2296  }
  2297  
  2298  func (fpvs *RoleGrant_FieldSubPathValue) SetToRaw(target proto.Message) {
  2299  	typedObject := target.(*Role_Grant)
  2300  	fpvs.SetTo(&typedObject)
  2301  }
  2302  
  2303  func (fpvs *RoleGrant_FieldSubPathValue) GetRawValue() interface{} {
  2304  	return fpvs.subPathValue.GetRawValue()
  2305  }
  2306  
  2307  func (fpvs *RoleGrant_FieldSubPathValue) CompareWith(source *Role_Grant) (int, bool) {
  2308  	switch fpvs.Selector() {
  2309  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  2310  		return 0, false // repeated field
  2311  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  2312  		return 0, false // repeated field
  2313  	case RoleGrant_FieldPathSelectorExecutableConditions:
  2314  		return 0, false // repeated field
  2315  	default:
  2316  		panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fpvs.Selector()))
  2317  	}
  2318  }
  2319  
  2320  func (fpvs *RoleGrant_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2321  	return fpvs.CompareWith(source.(*Role_Grant))
  2322  }
  2323  
  2324  // RoleGrant_FieldPathArrayItemValue allows storing single item in Path-specific values for Grant according to their type
  2325  // Present only for array (repeated) types.
  2326  type RoleGrant_FieldPathArrayItemValue interface {
  2327  	gotenobject.FieldPathArrayItemValue
  2328  	RoleGrant_FieldPath
  2329  	ContainsValue(*Role_Grant) bool
  2330  }
  2331  
  2332  // ParseRoleGrant_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  2333  func ParseRoleGrant_FieldPathArrayItemValue(pathStr, valueStr string) (RoleGrant_FieldPathArrayItemValue, error) {
  2334  	fp, err := ParseRoleGrant_FieldPath(pathStr)
  2335  	if err != nil {
  2336  		return nil, err
  2337  	}
  2338  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  2339  	if err != nil {
  2340  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Grant field path array item value from %s: %v", valueStr, err)
  2341  	}
  2342  	return fpaiv.(RoleGrant_FieldPathArrayItemValue), nil
  2343  }
  2344  
  2345  func MustParseRoleGrant_FieldPathArrayItemValue(pathStr, valueStr string) RoleGrant_FieldPathArrayItemValue {
  2346  	fpaiv, err := ParseRoleGrant_FieldPathArrayItemValue(pathStr, valueStr)
  2347  	if err != nil {
  2348  		panic(err)
  2349  	}
  2350  	return fpaiv
  2351  }
  2352  
  2353  type RoleGrant_FieldTerminalPathArrayItemValue struct {
  2354  	RoleGrant_FieldTerminalPath
  2355  	value interface{}
  2356  }
  2357  
  2358  var _ RoleGrant_FieldPathArrayItemValue = (*RoleGrant_FieldTerminalPathArrayItemValue)(nil)
  2359  
  2360  // GetRawValue returns stored element value for array in object Role_Grant as interface{}
  2361  func (fpaiv *RoleGrant_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  2362  	return fpaiv.value
  2363  }
  2364  func (fpaiv *RoleGrant_FieldTerminalPathArrayItemValue) AsPermissionsItemValue() (*permission.Reference, bool) {
  2365  	res, ok := fpaiv.value.(*permission.Reference)
  2366  	return res, ok
  2367  }
  2368  func (fpaiv *RoleGrant_FieldTerminalPathArrayItemValue) AsResourceFieldConditionsItemValue() (*Role_Grant_FieldCondition, bool) {
  2369  	res, ok := fpaiv.value.(*Role_Grant_FieldCondition)
  2370  	return res, ok
  2371  }
  2372  func (fpaiv *RoleGrant_FieldTerminalPathArrayItemValue) AsRequestFieldConditionsItemValue() (*Role_Grant_FieldCondition, bool) {
  2373  	res, ok := fpaiv.value.(*Role_Grant_FieldCondition)
  2374  	return res, ok
  2375  }
  2376  func (fpaiv *RoleGrant_FieldTerminalPathArrayItemValue) AsExecutableConditionsItemValue() (*condition.ExecutableCondition, bool) {
  2377  	res, ok := fpaiv.value.(*condition.ExecutableCondition)
  2378  	return res, ok
  2379  }
  2380  
  2381  func (fpaiv *RoleGrant_FieldTerminalPathArrayItemValue) GetSingle(source *Role_Grant) (interface{}, bool) {
  2382  	return nil, false
  2383  }
  2384  
  2385  func (fpaiv *RoleGrant_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2386  	return fpaiv.GetSingle(source.(*Role_Grant))
  2387  }
  2388  
  2389  // Contains returns a boolean indicating if value that is being held is present in given 'Grant'
  2390  func (fpaiv *RoleGrant_FieldTerminalPathArrayItemValue) ContainsValue(source *Role_Grant) bool {
  2391  	slice := fpaiv.RoleGrant_FieldTerminalPath.Get(source)
  2392  	for _, v := range slice {
  2393  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  2394  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  2395  				return true
  2396  			}
  2397  		} else if reflect.DeepEqual(v, fpaiv.value) {
  2398  			return true
  2399  		}
  2400  	}
  2401  	return false
  2402  }
  2403  
  2404  type RoleGrant_FieldSubPathArrayItemValue struct {
  2405  	RoleGrant_FieldPath
  2406  	subPathItemValue gotenobject.FieldPathArrayItemValue
  2407  }
  2408  
  2409  // GetRawValue returns stored array item value
  2410  func (fpaivs *RoleGrant_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  2411  	return fpaivs.subPathItemValue.GetRawItemValue()
  2412  }
  2413  func (fpaivs *RoleGrant_FieldSubPathArrayItemValue) AsResourceFieldConditionsPathItemValue() (RoleGrantFieldCondition_FieldPathArrayItemValue, bool) {
  2414  	res, ok := fpaivs.subPathItemValue.(RoleGrantFieldCondition_FieldPathArrayItemValue)
  2415  	return res, ok
  2416  }
  2417  func (fpaivs *RoleGrant_FieldSubPathArrayItemValue) AsRequestFieldConditionsPathItemValue() (RoleGrantFieldCondition_FieldPathArrayItemValue, bool) {
  2418  	res, ok := fpaivs.subPathItemValue.(RoleGrantFieldCondition_FieldPathArrayItemValue)
  2419  	return res, ok
  2420  }
  2421  func (fpaivs *RoleGrant_FieldSubPathArrayItemValue) AsExecutableConditionsPathItemValue() (condition.ExecutableCondition_FieldPathArrayItemValue, bool) {
  2422  	res, ok := fpaivs.subPathItemValue.(condition.ExecutableCondition_FieldPathArrayItemValue)
  2423  	return res, ok
  2424  }
  2425  
  2426  // Contains returns a boolean indicating if value that is being held is present in given 'Grant'
  2427  func (fpaivs *RoleGrant_FieldSubPathArrayItemValue) ContainsValue(source *Role_Grant) bool {
  2428  	switch fpaivs.Selector() {
  2429  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  2430  		return false // repeated/map field
  2431  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  2432  		return false // repeated/map field
  2433  	case RoleGrant_FieldPathSelectorExecutableConditions:
  2434  		return false // repeated/map field
  2435  	default:
  2436  		panic(fmt.Sprintf("Invalid selector for Role_Grant: %d", fpaivs.Selector()))
  2437  	}
  2438  }
  2439  
  2440  // RoleGrant_FieldPathArrayOfValues allows storing slice of values for Grant fields according to their type
  2441  type RoleGrant_FieldPathArrayOfValues interface {
  2442  	gotenobject.FieldPathArrayOfValues
  2443  	RoleGrant_FieldPath
  2444  }
  2445  
  2446  func ParseRoleGrant_FieldPathArrayOfValues(pathStr, valuesStr string) (RoleGrant_FieldPathArrayOfValues, error) {
  2447  	fp, err := ParseRoleGrant_FieldPath(pathStr)
  2448  	if err != nil {
  2449  		return nil, err
  2450  	}
  2451  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  2452  	if err != nil {
  2453  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Grant field path array of values from %s: %v", valuesStr, err)
  2454  	}
  2455  	return fpaov.(RoleGrant_FieldPathArrayOfValues), nil
  2456  }
  2457  
  2458  func MustParseRoleGrant_FieldPathArrayOfValues(pathStr, valuesStr string) RoleGrant_FieldPathArrayOfValues {
  2459  	fpaov, err := ParseRoleGrant_FieldPathArrayOfValues(pathStr, valuesStr)
  2460  	if err != nil {
  2461  		panic(err)
  2462  	}
  2463  	return fpaov
  2464  }
  2465  
  2466  type RoleGrant_FieldTerminalPathArrayOfValues struct {
  2467  	RoleGrant_FieldTerminalPath
  2468  	values interface{}
  2469  }
  2470  
  2471  var _ RoleGrant_FieldPathArrayOfValues = (*RoleGrant_FieldTerminalPathArrayOfValues)(nil)
  2472  
  2473  func (fpaov *RoleGrant_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  2474  	switch fpaov.selector {
  2475  	case RoleGrant_FieldPathSelectorSubScope:
  2476  		for _, v := range fpaov.values.([]string) {
  2477  			values = append(values, v)
  2478  		}
  2479  	case RoleGrant_FieldPathSelectorPermissions:
  2480  		for _, v := range fpaov.values.([][]*permission.Reference) {
  2481  			values = append(values, v)
  2482  		}
  2483  	case RoleGrant_FieldPathSelectorResourceFieldConditions:
  2484  		for _, v := range fpaov.values.([][]*Role_Grant_FieldCondition) {
  2485  			values = append(values, v)
  2486  		}
  2487  	case RoleGrant_FieldPathSelectorRequestFieldConditions:
  2488  		for _, v := range fpaov.values.([][]*Role_Grant_FieldCondition) {
  2489  			values = append(values, v)
  2490  		}
  2491  	case RoleGrant_FieldPathSelectorExecutableConditions:
  2492  		for _, v := range fpaov.values.([][]*condition.ExecutableCondition) {
  2493  			values = append(values, v)
  2494  		}
  2495  	}
  2496  	return
  2497  }
  2498  func (fpaov *RoleGrant_FieldTerminalPathArrayOfValues) AsSubScopeArrayOfValues() ([]string, bool) {
  2499  	res, ok := fpaov.values.([]string)
  2500  	return res, ok
  2501  }
  2502  func (fpaov *RoleGrant_FieldTerminalPathArrayOfValues) AsPermissionsArrayOfValues() ([][]*permission.Reference, bool) {
  2503  	res, ok := fpaov.values.([][]*permission.Reference)
  2504  	return res, ok
  2505  }
  2506  func (fpaov *RoleGrant_FieldTerminalPathArrayOfValues) AsResourceFieldConditionsArrayOfValues() ([][]*Role_Grant_FieldCondition, bool) {
  2507  	res, ok := fpaov.values.([][]*Role_Grant_FieldCondition)
  2508  	return res, ok
  2509  }
  2510  func (fpaov *RoleGrant_FieldTerminalPathArrayOfValues) AsRequestFieldConditionsArrayOfValues() ([][]*Role_Grant_FieldCondition, bool) {
  2511  	res, ok := fpaov.values.([][]*Role_Grant_FieldCondition)
  2512  	return res, ok
  2513  }
  2514  func (fpaov *RoleGrant_FieldTerminalPathArrayOfValues) AsExecutableConditionsArrayOfValues() ([][]*condition.ExecutableCondition, bool) {
  2515  	res, ok := fpaov.values.([][]*condition.ExecutableCondition)
  2516  	return res, ok
  2517  }
  2518  
  2519  type RoleGrant_FieldSubPathArrayOfValues struct {
  2520  	RoleGrant_FieldPath
  2521  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  2522  }
  2523  
  2524  var _ RoleGrant_FieldPathArrayOfValues = (*RoleGrant_FieldSubPathArrayOfValues)(nil)
  2525  
  2526  func (fpsaov *RoleGrant_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  2527  	return fpsaov.subPathArrayOfValues.GetRawValues()
  2528  }
  2529  func (fpsaov *RoleGrant_FieldSubPathArrayOfValues) AsResourceFieldConditionsPathArrayOfValues() (RoleGrantFieldCondition_FieldPathArrayOfValues, bool) {
  2530  	res, ok := fpsaov.subPathArrayOfValues.(RoleGrantFieldCondition_FieldPathArrayOfValues)
  2531  	return res, ok
  2532  }
  2533  func (fpsaov *RoleGrant_FieldSubPathArrayOfValues) AsRequestFieldConditionsPathArrayOfValues() (RoleGrantFieldCondition_FieldPathArrayOfValues, bool) {
  2534  	res, ok := fpsaov.subPathArrayOfValues.(RoleGrantFieldCondition_FieldPathArrayOfValues)
  2535  	return res, ok
  2536  }
  2537  func (fpsaov *RoleGrant_FieldSubPathArrayOfValues) AsExecutableConditionsPathArrayOfValues() (condition.ExecutableCondition_FieldPathArrayOfValues, bool) {
  2538  	res, ok := fpsaov.subPathArrayOfValues.(condition.ExecutableCondition_FieldPathArrayOfValues)
  2539  	return res, ok
  2540  }
  2541  
  2542  // FieldPath provides implementation to handle
  2543  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  2544  type RoleGrantFieldCondition_FieldPath interface {
  2545  	gotenobject.FieldPath
  2546  	Selector() RoleGrantFieldCondition_FieldPathSelector
  2547  	Get(source *Role_Grant_FieldCondition) []interface{}
  2548  	GetSingle(source *Role_Grant_FieldCondition) (interface{}, bool)
  2549  	ClearValue(item *Role_Grant_FieldCondition)
  2550  
  2551  	// Those methods build corresponding RoleGrantFieldCondition_FieldPathValue
  2552  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  2553  	WithIValue(value interface{}) RoleGrantFieldCondition_FieldPathValue
  2554  	WithIArrayOfValues(values interface{}) RoleGrantFieldCondition_FieldPathArrayOfValues
  2555  	WithIArrayItemValue(value interface{}) RoleGrantFieldCondition_FieldPathArrayItemValue
  2556  }
  2557  
  2558  type RoleGrantFieldCondition_FieldPathSelector int32
  2559  
  2560  const (
  2561  	RoleGrantFieldCondition_FieldPathSelectorPath  RoleGrantFieldCondition_FieldPathSelector = 0
  2562  	RoleGrantFieldCondition_FieldPathSelectorValue RoleGrantFieldCondition_FieldPathSelector = 1
  2563  )
  2564  
  2565  func (s RoleGrantFieldCondition_FieldPathSelector) String() string {
  2566  	switch s {
  2567  	case RoleGrantFieldCondition_FieldPathSelectorPath:
  2568  		return "path"
  2569  	case RoleGrantFieldCondition_FieldPathSelectorValue:
  2570  		return "value"
  2571  	default:
  2572  		panic(fmt.Sprintf("Invalid selector for Role_Grant_FieldCondition: %d", s))
  2573  	}
  2574  }
  2575  
  2576  func BuildRoleGrantFieldCondition_FieldPath(fp gotenobject.RawFieldPath) (RoleGrantFieldCondition_FieldPath, error) {
  2577  	if len(fp) == 0 {
  2578  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Role_Grant_FieldCondition")
  2579  	}
  2580  	if len(fp) == 1 {
  2581  		switch fp[0] {
  2582  		case "path":
  2583  			return &RoleGrantFieldCondition_FieldTerminalPath{selector: RoleGrantFieldCondition_FieldPathSelectorPath}, nil
  2584  		case "value":
  2585  			return &RoleGrantFieldCondition_FieldTerminalPath{selector: RoleGrantFieldCondition_FieldPathSelectorValue}, nil
  2586  		}
  2587  	}
  2588  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Role_Grant_FieldCondition", fp)
  2589  }
  2590  
  2591  func ParseRoleGrantFieldCondition_FieldPath(rawField string) (RoleGrantFieldCondition_FieldPath, error) {
  2592  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  2593  	if err != nil {
  2594  		return nil, err
  2595  	}
  2596  	return BuildRoleGrantFieldCondition_FieldPath(fp)
  2597  }
  2598  
  2599  func MustParseRoleGrantFieldCondition_FieldPath(rawField string) RoleGrantFieldCondition_FieldPath {
  2600  	fp, err := ParseRoleGrantFieldCondition_FieldPath(rawField)
  2601  	if err != nil {
  2602  		panic(err)
  2603  	}
  2604  	return fp
  2605  }
  2606  
  2607  type RoleGrantFieldCondition_FieldTerminalPath struct {
  2608  	selector RoleGrantFieldCondition_FieldPathSelector
  2609  }
  2610  
  2611  var _ RoleGrantFieldCondition_FieldPath = (*RoleGrantFieldCondition_FieldTerminalPath)(nil)
  2612  
  2613  func (fp *RoleGrantFieldCondition_FieldTerminalPath) Selector() RoleGrantFieldCondition_FieldPathSelector {
  2614  	return fp.selector
  2615  }
  2616  
  2617  // String returns path representation in proto convention
  2618  func (fp *RoleGrantFieldCondition_FieldTerminalPath) String() string {
  2619  	return fp.selector.String()
  2620  }
  2621  
  2622  // JSONString returns path representation is JSON convention
  2623  func (fp *RoleGrantFieldCondition_FieldTerminalPath) JSONString() string {
  2624  	return strcase.ToLowerCamel(fp.String())
  2625  }
  2626  
  2627  // Get returns all values pointed by specific field from source Role_Grant_FieldCondition
  2628  func (fp *RoleGrantFieldCondition_FieldTerminalPath) Get(source *Role_Grant_FieldCondition) (values []interface{}) {
  2629  	if source != nil {
  2630  		switch fp.selector {
  2631  		case RoleGrantFieldCondition_FieldPathSelectorPath:
  2632  			values = append(values, source.Path)
  2633  		case RoleGrantFieldCondition_FieldPathSelectorValue:
  2634  			values = append(values, source.Value)
  2635  		default:
  2636  			panic(fmt.Sprintf("Invalid selector for Role_Grant_FieldCondition: %d", fp.selector))
  2637  		}
  2638  	}
  2639  	return
  2640  }
  2641  
  2642  func (fp *RoleGrantFieldCondition_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  2643  	return fp.Get(source.(*Role_Grant_FieldCondition))
  2644  }
  2645  
  2646  // GetSingle returns value pointed by specific field of from source Role_Grant_FieldCondition
  2647  func (fp *RoleGrantFieldCondition_FieldTerminalPath) GetSingle(source *Role_Grant_FieldCondition) (interface{}, bool) {
  2648  	switch fp.selector {
  2649  	case RoleGrantFieldCondition_FieldPathSelectorPath:
  2650  		return source.GetPath(), source != nil
  2651  	case RoleGrantFieldCondition_FieldPathSelectorValue:
  2652  		return source.GetValue(), source != nil
  2653  	default:
  2654  		panic(fmt.Sprintf("Invalid selector for Role_Grant_FieldCondition: %d", fp.selector))
  2655  	}
  2656  }
  2657  
  2658  func (fp *RoleGrantFieldCondition_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2659  	return fp.GetSingle(source.(*Role_Grant_FieldCondition))
  2660  }
  2661  
  2662  // GetDefault returns a default value of the field type
  2663  func (fp *RoleGrantFieldCondition_FieldTerminalPath) GetDefault() interface{} {
  2664  	switch fp.selector {
  2665  	case RoleGrantFieldCondition_FieldPathSelectorPath:
  2666  		return ""
  2667  	case RoleGrantFieldCondition_FieldPathSelectorValue:
  2668  		return ""
  2669  	default:
  2670  		panic(fmt.Sprintf("Invalid selector for Role_Grant_FieldCondition: %d", fp.selector))
  2671  	}
  2672  }
  2673  
  2674  func (fp *RoleGrantFieldCondition_FieldTerminalPath) ClearValue(item *Role_Grant_FieldCondition) {
  2675  	if item != nil {
  2676  		switch fp.selector {
  2677  		case RoleGrantFieldCondition_FieldPathSelectorPath:
  2678  			item.Path = ""
  2679  		case RoleGrantFieldCondition_FieldPathSelectorValue:
  2680  			item.Value = ""
  2681  		default:
  2682  			panic(fmt.Sprintf("Invalid selector for Role_Grant_FieldCondition: %d", fp.selector))
  2683  		}
  2684  	}
  2685  }
  2686  
  2687  func (fp *RoleGrantFieldCondition_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  2688  	fp.ClearValue(item.(*Role_Grant_FieldCondition))
  2689  }
  2690  
  2691  // IsLeaf - whether field path is holds simple value
  2692  func (fp *RoleGrantFieldCondition_FieldTerminalPath) IsLeaf() bool {
  2693  	return fp.selector == RoleGrantFieldCondition_FieldPathSelectorPath ||
  2694  		fp.selector == RoleGrantFieldCondition_FieldPathSelectorValue
  2695  }
  2696  
  2697  func (fp *RoleGrantFieldCondition_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  2698  	return []gotenobject.FieldPath{fp}
  2699  }
  2700  
  2701  func (fp *RoleGrantFieldCondition_FieldTerminalPath) WithIValue(value interface{}) RoleGrantFieldCondition_FieldPathValue {
  2702  	switch fp.selector {
  2703  	case RoleGrantFieldCondition_FieldPathSelectorPath:
  2704  		return &RoleGrantFieldCondition_FieldTerminalPathValue{RoleGrantFieldCondition_FieldTerminalPath: *fp, value: value.(string)}
  2705  	case RoleGrantFieldCondition_FieldPathSelectorValue:
  2706  		return &RoleGrantFieldCondition_FieldTerminalPathValue{RoleGrantFieldCondition_FieldTerminalPath: *fp, value: value.(string)}
  2707  	default:
  2708  		panic(fmt.Sprintf("Invalid selector for Role_Grant_FieldCondition: %d", fp.selector))
  2709  	}
  2710  }
  2711  
  2712  func (fp *RoleGrantFieldCondition_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  2713  	return fp.WithIValue(value)
  2714  }
  2715  
  2716  func (fp *RoleGrantFieldCondition_FieldTerminalPath) WithIArrayOfValues(values interface{}) RoleGrantFieldCondition_FieldPathArrayOfValues {
  2717  	fpaov := &RoleGrantFieldCondition_FieldTerminalPathArrayOfValues{RoleGrantFieldCondition_FieldTerminalPath: *fp}
  2718  	switch fp.selector {
  2719  	case RoleGrantFieldCondition_FieldPathSelectorPath:
  2720  		return &RoleGrantFieldCondition_FieldTerminalPathArrayOfValues{RoleGrantFieldCondition_FieldTerminalPath: *fp, values: values.([]string)}
  2721  	case RoleGrantFieldCondition_FieldPathSelectorValue:
  2722  		return &RoleGrantFieldCondition_FieldTerminalPathArrayOfValues{RoleGrantFieldCondition_FieldTerminalPath: *fp, values: values.([]string)}
  2723  	default:
  2724  		panic(fmt.Sprintf("Invalid selector for Role_Grant_FieldCondition: %d", fp.selector))
  2725  	}
  2726  	return fpaov
  2727  }
  2728  
  2729  func (fp *RoleGrantFieldCondition_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  2730  	return fp.WithIArrayOfValues(values)
  2731  }
  2732  
  2733  func (fp *RoleGrantFieldCondition_FieldTerminalPath) WithIArrayItemValue(value interface{}) RoleGrantFieldCondition_FieldPathArrayItemValue {
  2734  	switch fp.selector {
  2735  	default:
  2736  		panic(fmt.Sprintf("Invalid selector for Role_Grant_FieldCondition: %d", fp.selector))
  2737  	}
  2738  }
  2739  
  2740  func (fp *RoleGrantFieldCondition_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  2741  	return fp.WithIArrayItemValue(value)
  2742  }
  2743  
  2744  // RoleGrantFieldCondition_FieldPathValue allows storing values for FieldCondition fields according to their type
  2745  type RoleGrantFieldCondition_FieldPathValue interface {
  2746  	RoleGrantFieldCondition_FieldPath
  2747  	gotenobject.FieldPathValue
  2748  	SetTo(target **Role_Grant_FieldCondition)
  2749  	CompareWith(*Role_Grant_FieldCondition) (cmp int, comparable bool)
  2750  }
  2751  
  2752  func ParseRoleGrantFieldCondition_FieldPathValue(pathStr, valueStr string) (RoleGrantFieldCondition_FieldPathValue, error) {
  2753  	fp, err := ParseRoleGrantFieldCondition_FieldPath(pathStr)
  2754  	if err != nil {
  2755  		return nil, err
  2756  	}
  2757  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  2758  	if err != nil {
  2759  		return nil, status.Errorf(codes.InvalidArgument, "error parsing FieldCondition field path value from %s: %v", valueStr, err)
  2760  	}
  2761  	return fpv.(RoleGrantFieldCondition_FieldPathValue), nil
  2762  }
  2763  
  2764  func MustParseRoleGrantFieldCondition_FieldPathValue(pathStr, valueStr string) RoleGrantFieldCondition_FieldPathValue {
  2765  	fpv, err := ParseRoleGrantFieldCondition_FieldPathValue(pathStr, valueStr)
  2766  	if err != nil {
  2767  		panic(err)
  2768  	}
  2769  	return fpv
  2770  }
  2771  
  2772  type RoleGrantFieldCondition_FieldTerminalPathValue struct {
  2773  	RoleGrantFieldCondition_FieldTerminalPath
  2774  	value interface{}
  2775  }
  2776  
  2777  var _ RoleGrantFieldCondition_FieldPathValue = (*RoleGrantFieldCondition_FieldTerminalPathValue)(nil)
  2778  
  2779  // GetRawValue returns raw value stored under selected path for 'FieldCondition' as interface{}
  2780  func (fpv *RoleGrantFieldCondition_FieldTerminalPathValue) GetRawValue() interface{} {
  2781  	return fpv.value
  2782  }
  2783  func (fpv *RoleGrantFieldCondition_FieldTerminalPathValue) AsPathValue() (string, bool) {
  2784  	res, ok := fpv.value.(string)
  2785  	return res, ok
  2786  }
  2787  func (fpv *RoleGrantFieldCondition_FieldTerminalPathValue) AsValueValue() (string, bool) {
  2788  	res, ok := fpv.value.(string)
  2789  	return res, ok
  2790  }
  2791  
  2792  // SetTo stores value for selected field for object FieldCondition
  2793  func (fpv *RoleGrantFieldCondition_FieldTerminalPathValue) SetTo(target **Role_Grant_FieldCondition) {
  2794  	if *target == nil {
  2795  		*target = new(Role_Grant_FieldCondition)
  2796  	}
  2797  	switch fpv.selector {
  2798  	case RoleGrantFieldCondition_FieldPathSelectorPath:
  2799  		(*target).Path = fpv.value.(string)
  2800  	case RoleGrantFieldCondition_FieldPathSelectorValue:
  2801  		(*target).Value = fpv.value.(string)
  2802  	default:
  2803  		panic(fmt.Sprintf("Invalid selector for Role_Grant_FieldCondition: %d", fpv.selector))
  2804  	}
  2805  }
  2806  
  2807  func (fpv *RoleGrantFieldCondition_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  2808  	typedObject := target.(*Role_Grant_FieldCondition)
  2809  	fpv.SetTo(&typedObject)
  2810  }
  2811  
  2812  // CompareWith compares value in the 'RoleGrantFieldCondition_FieldTerminalPathValue' with the value under path in 'Role_Grant_FieldCondition'.
  2813  func (fpv *RoleGrantFieldCondition_FieldTerminalPathValue) CompareWith(source *Role_Grant_FieldCondition) (int, bool) {
  2814  	switch fpv.selector {
  2815  	case RoleGrantFieldCondition_FieldPathSelectorPath:
  2816  		leftValue := fpv.value.(string)
  2817  		rightValue := source.GetPath()
  2818  		if (leftValue) == (rightValue) {
  2819  			return 0, true
  2820  		} else if (leftValue) < (rightValue) {
  2821  			return -1, true
  2822  		} else {
  2823  			return 1, true
  2824  		}
  2825  	case RoleGrantFieldCondition_FieldPathSelectorValue:
  2826  		leftValue := fpv.value.(string)
  2827  		rightValue := source.GetValue()
  2828  		if (leftValue) == (rightValue) {
  2829  			return 0, true
  2830  		} else if (leftValue) < (rightValue) {
  2831  			return -1, true
  2832  		} else {
  2833  			return 1, true
  2834  		}
  2835  	default:
  2836  		panic(fmt.Sprintf("Invalid selector for Role_Grant_FieldCondition: %d", fpv.selector))
  2837  	}
  2838  }
  2839  
  2840  func (fpv *RoleGrantFieldCondition_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2841  	return fpv.CompareWith(source.(*Role_Grant_FieldCondition))
  2842  }
  2843  
  2844  // RoleGrantFieldCondition_FieldPathArrayItemValue allows storing single item in Path-specific values for FieldCondition according to their type
  2845  // Present only for array (repeated) types.
  2846  type RoleGrantFieldCondition_FieldPathArrayItemValue interface {
  2847  	gotenobject.FieldPathArrayItemValue
  2848  	RoleGrantFieldCondition_FieldPath
  2849  	ContainsValue(*Role_Grant_FieldCondition) bool
  2850  }
  2851  
  2852  // ParseRoleGrantFieldCondition_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  2853  func ParseRoleGrantFieldCondition_FieldPathArrayItemValue(pathStr, valueStr string) (RoleGrantFieldCondition_FieldPathArrayItemValue, error) {
  2854  	fp, err := ParseRoleGrantFieldCondition_FieldPath(pathStr)
  2855  	if err != nil {
  2856  		return nil, err
  2857  	}
  2858  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  2859  	if err != nil {
  2860  		return nil, status.Errorf(codes.InvalidArgument, "error parsing FieldCondition field path array item value from %s: %v", valueStr, err)
  2861  	}
  2862  	return fpaiv.(RoleGrantFieldCondition_FieldPathArrayItemValue), nil
  2863  }
  2864  
  2865  func MustParseRoleGrantFieldCondition_FieldPathArrayItemValue(pathStr, valueStr string) RoleGrantFieldCondition_FieldPathArrayItemValue {
  2866  	fpaiv, err := ParseRoleGrantFieldCondition_FieldPathArrayItemValue(pathStr, valueStr)
  2867  	if err != nil {
  2868  		panic(err)
  2869  	}
  2870  	return fpaiv
  2871  }
  2872  
  2873  type RoleGrantFieldCondition_FieldTerminalPathArrayItemValue struct {
  2874  	RoleGrantFieldCondition_FieldTerminalPath
  2875  	value interface{}
  2876  }
  2877  
  2878  var _ RoleGrantFieldCondition_FieldPathArrayItemValue = (*RoleGrantFieldCondition_FieldTerminalPathArrayItemValue)(nil)
  2879  
  2880  // GetRawValue returns stored element value for array in object Role_Grant_FieldCondition as interface{}
  2881  func (fpaiv *RoleGrantFieldCondition_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  2882  	return fpaiv.value
  2883  }
  2884  
  2885  func (fpaiv *RoleGrantFieldCondition_FieldTerminalPathArrayItemValue) GetSingle(source *Role_Grant_FieldCondition) (interface{}, bool) {
  2886  	return nil, false
  2887  }
  2888  
  2889  func (fpaiv *RoleGrantFieldCondition_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2890  	return fpaiv.GetSingle(source.(*Role_Grant_FieldCondition))
  2891  }
  2892  
  2893  // Contains returns a boolean indicating if value that is being held is present in given 'FieldCondition'
  2894  func (fpaiv *RoleGrantFieldCondition_FieldTerminalPathArrayItemValue) ContainsValue(source *Role_Grant_FieldCondition) bool {
  2895  	slice := fpaiv.RoleGrantFieldCondition_FieldTerminalPath.Get(source)
  2896  	for _, v := range slice {
  2897  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  2898  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  2899  				return true
  2900  			}
  2901  		} else if reflect.DeepEqual(v, fpaiv.value) {
  2902  			return true
  2903  		}
  2904  	}
  2905  	return false
  2906  }
  2907  
  2908  // RoleGrantFieldCondition_FieldPathArrayOfValues allows storing slice of values for FieldCondition fields according to their type
  2909  type RoleGrantFieldCondition_FieldPathArrayOfValues interface {
  2910  	gotenobject.FieldPathArrayOfValues
  2911  	RoleGrantFieldCondition_FieldPath
  2912  }
  2913  
  2914  func ParseRoleGrantFieldCondition_FieldPathArrayOfValues(pathStr, valuesStr string) (RoleGrantFieldCondition_FieldPathArrayOfValues, error) {
  2915  	fp, err := ParseRoleGrantFieldCondition_FieldPath(pathStr)
  2916  	if err != nil {
  2917  		return nil, err
  2918  	}
  2919  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  2920  	if err != nil {
  2921  		return nil, status.Errorf(codes.InvalidArgument, "error parsing FieldCondition field path array of values from %s: %v", valuesStr, err)
  2922  	}
  2923  	return fpaov.(RoleGrantFieldCondition_FieldPathArrayOfValues), nil
  2924  }
  2925  
  2926  func MustParseRoleGrantFieldCondition_FieldPathArrayOfValues(pathStr, valuesStr string) RoleGrantFieldCondition_FieldPathArrayOfValues {
  2927  	fpaov, err := ParseRoleGrantFieldCondition_FieldPathArrayOfValues(pathStr, valuesStr)
  2928  	if err != nil {
  2929  		panic(err)
  2930  	}
  2931  	return fpaov
  2932  }
  2933  
  2934  type RoleGrantFieldCondition_FieldTerminalPathArrayOfValues struct {
  2935  	RoleGrantFieldCondition_FieldTerminalPath
  2936  	values interface{}
  2937  }
  2938  
  2939  var _ RoleGrantFieldCondition_FieldPathArrayOfValues = (*RoleGrantFieldCondition_FieldTerminalPathArrayOfValues)(nil)
  2940  
  2941  func (fpaov *RoleGrantFieldCondition_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  2942  	switch fpaov.selector {
  2943  	case RoleGrantFieldCondition_FieldPathSelectorPath:
  2944  		for _, v := range fpaov.values.([]string) {
  2945  			values = append(values, v)
  2946  		}
  2947  	case RoleGrantFieldCondition_FieldPathSelectorValue:
  2948  		for _, v := range fpaov.values.([]string) {
  2949  			values = append(values, v)
  2950  		}
  2951  	}
  2952  	return
  2953  }
  2954  func (fpaov *RoleGrantFieldCondition_FieldTerminalPathArrayOfValues) AsPathArrayOfValues() ([]string, bool) {
  2955  	res, ok := fpaov.values.([]string)
  2956  	return res, ok
  2957  }
  2958  func (fpaov *RoleGrantFieldCondition_FieldTerminalPathArrayOfValues) AsValueArrayOfValues() ([]string, bool) {
  2959  	res, ok := fpaov.values.([]string)
  2960  	return res, ok
  2961  }
  2962  
  2963  // FieldPath provides implementation to handle
  2964  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  2965  type ScopeParam_FieldPath interface {
  2966  	gotenobject.FieldPath
  2967  	Selector() ScopeParam_FieldPathSelector
  2968  	Get(source *ScopeParam) []interface{}
  2969  	GetSingle(source *ScopeParam) (interface{}, bool)
  2970  	ClearValue(item *ScopeParam)
  2971  
  2972  	// Those methods build corresponding ScopeParam_FieldPathValue
  2973  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  2974  	WithIValue(value interface{}) ScopeParam_FieldPathValue
  2975  	WithIArrayOfValues(values interface{}) ScopeParam_FieldPathArrayOfValues
  2976  	WithIArrayItemValue(value interface{}) ScopeParam_FieldPathArrayItemValue
  2977  }
  2978  
  2979  type ScopeParam_FieldPathSelector int32
  2980  
  2981  const (
  2982  	ScopeParam_FieldPathSelectorName      ScopeParam_FieldPathSelector = 0
  2983  	ScopeParam_FieldPathSelectorString    ScopeParam_FieldPathSelector = 1
  2984  	ScopeParam_FieldPathSelectorStrings   ScopeParam_FieldPathSelector = 2
  2985  	ScopeParam_FieldPathSelectorValueFrom ScopeParam_FieldPathSelector = 3
  2986  )
  2987  
  2988  func (s ScopeParam_FieldPathSelector) String() string {
  2989  	switch s {
  2990  	case ScopeParam_FieldPathSelectorName:
  2991  		return "name"
  2992  	case ScopeParam_FieldPathSelectorString:
  2993  		return "string"
  2994  	case ScopeParam_FieldPathSelectorStrings:
  2995  		return "strings"
  2996  	case ScopeParam_FieldPathSelectorValueFrom:
  2997  		return "value_from"
  2998  	default:
  2999  		panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", s))
  3000  	}
  3001  }
  3002  
  3003  func BuildScopeParam_FieldPath(fp gotenobject.RawFieldPath) (ScopeParam_FieldPath, error) {
  3004  	if len(fp) == 0 {
  3005  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ScopeParam")
  3006  	}
  3007  	if len(fp) == 1 {
  3008  		switch fp[0] {
  3009  		case "name":
  3010  			return &ScopeParam_FieldTerminalPath{selector: ScopeParam_FieldPathSelectorName}, nil
  3011  		case "string":
  3012  			return &ScopeParam_FieldTerminalPath{selector: ScopeParam_FieldPathSelectorString}, nil
  3013  		case "strings":
  3014  			return &ScopeParam_FieldTerminalPath{selector: ScopeParam_FieldPathSelectorStrings}, nil
  3015  		case "value_from", "valueFrom", "value-from":
  3016  			return &ScopeParam_FieldTerminalPath{selector: ScopeParam_FieldPathSelectorValueFrom}, nil
  3017  		}
  3018  	} else {
  3019  		switch fp[0] {
  3020  		case "string":
  3021  			if subpath, err := BuildScopeParamStringValue_FieldPath(fp[1:]); err != nil {
  3022  				return nil, err
  3023  			} else {
  3024  				return &ScopeParam_FieldSubPath{selector: ScopeParam_FieldPathSelectorString, subPath: subpath}, nil
  3025  			}
  3026  		case "strings":
  3027  			if subpath, err := BuildScopeParamArrayOfStringsValue_FieldPath(fp[1:]); err != nil {
  3028  				return nil, err
  3029  			} else {
  3030  				return &ScopeParam_FieldSubPath{selector: ScopeParam_FieldPathSelectorStrings, subPath: subpath}, nil
  3031  			}
  3032  		case "value_from", "valueFrom", "value-from":
  3033  			if subpath, err := BuildScopeParamFromValue_FieldPath(fp[1:]); err != nil {
  3034  				return nil, err
  3035  			} else {
  3036  				return &ScopeParam_FieldSubPath{selector: ScopeParam_FieldPathSelectorValueFrom, subPath: subpath}, nil
  3037  			}
  3038  		}
  3039  	}
  3040  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ScopeParam", fp)
  3041  }
  3042  
  3043  func ParseScopeParam_FieldPath(rawField string) (ScopeParam_FieldPath, error) {
  3044  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  3045  	if err != nil {
  3046  		return nil, err
  3047  	}
  3048  	return BuildScopeParam_FieldPath(fp)
  3049  }
  3050  
  3051  func MustParseScopeParam_FieldPath(rawField string) ScopeParam_FieldPath {
  3052  	fp, err := ParseScopeParam_FieldPath(rawField)
  3053  	if err != nil {
  3054  		panic(err)
  3055  	}
  3056  	return fp
  3057  }
  3058  
  3059  type ScopeParam_FieldTerminalPath struct {
  3060  	selector ScopeParam_FieldPathSelector
  3061  }
  3062  
  3063  var _ ScopeParam_FieldPath = (*ScopeParam_FieldTerminalPath)(nil)
  3064  
  3065  func (fp *ScopeParam_FieldTerminalPath) Selector() ScopeParam_FieldPathSelector {
  3066  	return fp.selector
  3067  }
  3068  
  3069  // String returns path representation in proto convention
  3070  func (fp *ScopeParam_FieldTerminalPath) String() string {
  3071  	return fp.selector.String()
  3072  }
  3073  
  3074  // JSONString returns path representation is JSON convention
  3075  func (fp *ScopeParam_FieldTerminalPath) JSONString() string {
  3076  	return strcase.ToLowerCamel(fp.String())
  3077  }
  3078  
  3079  // Get returns all values pointed by specific field from source ScopeParam
  3080  func (fp *ScopeParam_FieldTerminalPath) Get(source *ScopeParam) (values []interface{}) {
  3081  	if source != nil {
  3082  		switch fp.selector {
  3083  		case ScopeParam_FieldPathSelectorName:
  3084  			values = append(values, source.Name)
  3085  		case ScopeParam_FieldPathSelectorString:
  3086  			if source, ok := source.Value.(*ScopeParam_String_); ok && source != nil {
  3087  				if source.String_ != nil {
  3088  					values = append(values, source.String_)
  3089  				}
  3090  			}
  3091  		case ScopeParam_FieldPathSelectorStrings:
  3092  			if source, ok := source.Value.(*ScopeParam_Strings); ok && source != nil {
  3093  				if source.Strings != nil {
  3094  					values = append(values, source.Strings)
  3095  				}
  3096  			}
  3097  		case ScopeParam_FieldPathSelectorValueFrom:
  3098  			if source, ok := source.Value.(*ScopeParam_ValueFrom); ok && source != nil {
  3099  				if source.ValueFrom != nil {
  3100  					values = append(values, source.ValueFrom)
  3101  				}
  3102  			}
  3103  		default:
  3104  			panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fp.selector))
  3105  		}
  3106  	}
  3107  	return
  3108  }
  3109  
  3110  func (fp *ScopeParam_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  3111  	return fp.Get(source.(*ScopeParam))
  3112  }
  3113  
  3114  // GetSingle returns value pointed by specific field of from source ScopeParam
  3115  func (fp *ScopeParam_FieldTerminalPath) GetSingle(source *ScopeParam) (interface{}, bool) {
  3116  	switch fp.selector {
  3117  	case ScopeParam_FieldPathSelectorName:
  3118  		return source.GetName(), source != nil
  3119  	case ScopeParam_FieldPathSelectorString:
  3120  		// if object nil or oneof not active, return "default" type with false flag.
  3121  		if source == nil {
  3122  			return source.GetString_(), false
  3123  		}
  3124  		_, oneOfSelected := source.Value.(*ScopeParam_String_)
  3125  		if !oneOfSelected {
  3126  			return source.GetString_(), false // to return "type" information
  3127  		}
  3128  		res := source.GetString_()
  3129  		return res, res != nil
  3130  	case ScopeParam_FieldPathSelectorStrings:
  3131  		// if object nil or oneof not active, return "default" type with false flag.
  3132  		if source == nil {
  3133  			return source.GetStrings(), false
  3134  		}
  3135  		_, oneOfSelected := source.Value.(*ScopeParam_Strings)
  3136  		if !oneOfSelected {
  3137  			return source.GetStrings(), false // to return "type" information
  3138  		}
  3139  		res := source.GetStrings()
  3140  		return res, res != nil
  3141  	case ScopeParam_FieldPathSelectorValueFrom:
  3142  		// if object nil or oneof not active, return "default" type with false flag.
  3143  		if source == nil {
  3144  			return source.GetValueFrom(), false
  3145  		}
  3146  		_, oneOfSelected := source.Value.(*ScopeParam_ValueFrom)
  3147  		if !oneOfSelected {
  3148  			return source.GetValueFrom(), false // to return "type" information
  3149  		}
  3150  		res := source.GetValueFrom()
  3151  		return res, res != nil
  3152  	default:
  3153  		panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fp.selector))
  3154  	}
  3155  }
  3156  
  3157  func (fp *ScopeParam_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  3158  	return fp.GetSingle(source.(*ScopeParam))
  3159  }
  3160  
  3161  // GetDefault returns a default value of the field type
  3162  func (fp *ScopeParam_FieldTerminalPath) GetDefault() interface{} {
  3163  	switch fp.selector {
  3164  	case ScopeParam_FieldPathSelectorName:
  3165  		return ""
  3166  	case ScopeParam_FieldPathSelectorString:
  3167  		return (*ScopeParam_StringValue)(nil)
  3168  	case ScopeParam_FieldPathSelectorStrings:
  3169  		return (*ScopeParam_ArrayOfStringsValue)(nil)
  3170  	case ScopeParam_FieldPathSelectorValueFrom:
  3171  		return (*ScopeParam_FromValue)(nil)
  3172  	default:
  3173  		panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fp.selector))
  3174  	}
  3175  }
  3176  
  3177  func (fp *ScopeParam_FieldTerminalPath) ClearValue(item *ScopeParam) {
  3178  	if item != nil {
  3179  		switch fp.selector {
  3180  		case ScopeParam_FieldPathSelectorName:
  3181  			item.Name = ""
  3182  		case ScopeParam_FieldPathSelectorString:
  3183  			if item, ok := item.Value.(*ScopeParam_String_); ok {
  3184  				item.String_ = nil
  3185  			}
  3186  		case ScopeParam_FieldPathSelectorStrings:
  3187  			if item, ok := item.Value.(*ScopeParam_Strings); ok {
  3188  				item.Strings = nil
  3189  			}
  3190  		case ScopeParam_FieldPathSelectorValueFrom:
  3191  			if item, ok := item.Value.(*ScopeParam_ValueFrom); ok {
  3192  				item.ValueFrom = nil
  3193  			}
  3194  		default:
  3195  			panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fp.selector))
  3196  		}
  3197  	}
  3198  }
  3199  
  3200  func (fp *ScopeParam_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  3201  	fp.ClearValue(item.(*ScopeParam))
  3202  }
  3203  
  3204  // IsLeaf - whether field path is holds simple value
  3205  func (fp *ScopeParam_FieldTerminalPath) IsLeaf() bool {
  3206  	return fp.selector == ScopeParam_FieldPathSelectorName
  3207  }
  3208  
  3209  func (fp *ScopeParam_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  3210  	return []gotenobject.FieldPath{fp}
  3211  }
  3212  
  3213  func (fp *ScopeParam_FieldTerminalPath) WithIValue(value interface{}) ScopeParam_FieldPathValue {
  3214  	switch fp.selector {
  3215  	case ScopeParam_FieldPathSelectorName:
  3216  		return &ScopeParam_FieldTerminalPathValue{ScopeParam_FieldTerminalPath: *fp, value: value.(string)}
  3217  	case ScopeParam_FieldPathSelectorString:
  3218  		return &ScopeParam_FieldTerminalPathValue{ScopeParam_FieldTerminalPath: *fp, value: value.(*ScopeParam_StringValue)}
  3219  	case ScopeParam_FieldPathSelectorStrings:
  3220  		return &ScopeParam_FieldTerminalPathValue{ScopeParam_FieldTerminalPath: *fp, value: value.(*ScopeParam_ArrayOfStringsValue)}
  3221  	case ScopeParam_FieldPathSelectorValueFrom:
  3222  		return &ScopeParam_FieldTerminalPathValue{ScopeParam_FieldTerminalPath: *fp, value: value.(*ScopeParam_FromValue)}
  3223  	default:
  3224  		panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fp.selector))
  3225  	}
  3226  }
  3227  
  3228  func (fp *ScopeParam_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  3229  	return fp.WithIValue(value)
  3230  }
  3231  
  3232  func (fp *ScopeParam_FieldTerminalPath) WithIArrayOfValues(values interface{}) ScopeParam_FieldPathArrayOfValues {
  3233  	fpaov := &ScopeParam_FieldTerminalPathArrayOfValues{ScopeParam_FieldTerminalPath: *fp}
  3234  	switch fp.selector {
  3235  	case ScopeParam_FieldPathSelectorName:
  3236  		return &ScopeParam_FieldTerminalPathArrayOfValues{ScopeParam_FieldTerminalPath: *fp, values: values.([]string)}
  3237  	case ScopeParam_FieldPathSelectorString:
  3238  		return &ScopeParam_FieldTerminalPathArrayOfValues{ScopeParam_FieldTerminalPath: *fp, values: values.([]*ScopeParam_StringValue)}
  3239  	case ScopeParam_FieldPathSelectorStrings:
  3240  		return &ScopeParam_FieldTerminalPathArrayOfValues{ScopeParam_FieldTerminalPath: *fp, values: values.([]*ScopeParam_ArrayOfStringsValue)}
  3241  	case ScopeParam_FieldPathSelectorValueFrom:
  3242  		return &ScopeParam_FieldTerminalPathArrayOfValues{ScopeParam_FieldTerminalPath: *fp, values: values.([]*ScopeParam_FromValue)}
  3243  	default:
  3244  		panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fp.selector))
  3245  	}
  3246  	return fpaov
  3247  }
  3248  
  3249  func (fp *ScopeParam_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  3250  	return fp.WithIArrayOfValues(values)
  3251  }
  3252  
  3253  func (fp *ScopeParam_FieldTerminalPath) WithIArrayItemValue(value interface{}) ScopeParam_FieldPathArrayItemValue {
  3254  	switch fp.selector {
  3255  	default:
  3256  		panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fp.selector))
  3257  	}
  3258  }
  3259  
  3260  func (fp *ScopeParam_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  3261  	return fp.WithIArrayItemValue(value)
  3262  }
  3263  
  3264  type ScopeParam_FieldSubPath struct {
  3265  	selector ScopeParam_FieldPathSelector
  3266  	subPath  gotenobject.FieldPath
  3267  }
  3268  
  3269  var _ ScopeParam_FieldPath = (*ScopeParam_FieldSubPath)(nil)
  3270  
  3271  func (fps *ScopeParam_FieldSubPath) Selector() ScopeParam_FieldPathSelector {
  3272  	return fps.selector
  3273  }
  3274  func (fps *ScopeParam_FieldSubPath) AsStringSubPath() (ScopeParamStringValue_FieldPath, bool) {
  3275  	res, ok := fps.subPath.(ScopeParamStringValue_FieldPath)
  3276  	return res, ok
  3277  }
  3278  func (fps *ScopeParam_FieldSubPath) AsStringsSubPath() (ScopeParamArrayOfStringsValue_FieldPath, bool) {
  3279  	res, ok := fps.subPath.(ScopeParamArrayOfStringsValue_FieldPath)
  3280  	return res, ok
  3281  }
  3282  func (fps *ScopeParam_FieldSubPath) AsValueFromSubPath() (ScopeParamFromValue_FieldPath, bool) {
  3283  	res, ok := fps.subPath.(ScopeParamFromValue_FieldPath)
  3284  	return res, ok
  3285  }
  3286  
  3287  // String returns path representation in proto convention
  3288  func (fps *ScopeParam_FieldSubPath) String() string {
  3289  	return fps.selector.String() + "." + fps.subPath.String()
  3290  }
  3291  
  3292  // JSONString returns path representation is JSON convention
  3293  func (fps *ScopeParam_FieldSubPath) JSONString() string {
  3294  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
  3295  }
  3296  
  3297  // Get returns all values pointed by selected field from source ScopeParam
  3298  func (fps *ScopeParam_FieldSubPath) Get(source *ScopeParam) (values []interface{}) {
  3299  	switch fps.selector {
  3300  	case ScopeParam_FieldPathSelectorString:
  3301  		values = append(values, fps.subPath.GetRaw(source.GetString_())...)
  3302  	case ScopeParam_FieldPathSelectorStrings:
  3303  		values = append(values, fps.subPath.GetRaw(source.GetStrings())...)
  3304  	case ScopeParam_FieldPathSelectorValueFrom:
  3305  		values = append(values, fps.subPath.GetRaw(source.GetValueFrom())...)
  3306  	default:
  3307  		panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fps.selector))
  3308  	}
  3309  	return
  3310  }
  3311  
  3312  func (fps *ScopeParam_FieldSubPath) GetRaw(source proto.Message) []interface{} {
  3313  	return fps.Get(source.(*ScopeParam))
  3314  }
  3315  
  3316  // GetSingle returns value of selected field from source ScopeParam
  3317  func (fps *ScopeParam_FieldSubPath) GetSingle(source *ScopeParam) (interface{}, bool) {
  3318  	switch fps.selector {
  3319  	case ScopeParam_FieldPathSelectorString:
  3320  		if source.GetString_() == nil {
  3321  			return nil, false
  3322  		}
  3323  		return fps.subPath.GetSingleRaw(source.GetString_())
  3324  	case ScopeParam_FieldPathSelectorStrings:
  3325  		if source.GetStrings() == nil {
  3326  			return nil, false
  3327  		}
  3328  		return fps.subPath.GetSingleRaw(source.GetStrings())
  3329  	case ScopeParam_FieldPathSelectorValueFrom:
  3330  		if source.GetValueFrom() == nil {
  3331  			return nil, false
  3332  		}
  3333  		return fps.subPath.GetSingleRaw(source.GetValueFrom())
  3334  	default:
  3335  		panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fps.selector))
  3336  	}
  3337  }
  3338  
  3339  func (fps *ScopeParam_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  3340  	return fps.GetSingle(source.(*ScopeParam))
  3341  }
  3342  
  3343  // GetDefault returns a default value of the field type
  3344  func (fps *ScopeParam_FieldSubPath) GetDefault() interface{} {
  3345  	return fps.subPath.GetDefault()
  3346  }
  3347  
  3348  func (fps *ScopeParam_FieldSubPath) ClearValue(item *ScopeParam) {
  3349  	if item != nil {
  3350  		switch fps.selector {
  3351  		case ScopeParam_FieldPathSelectorString:
  3352  			if item.Value != nil {
  3353  				if item, ok := item.Value.(*ScopeParam_String_); ok {
  3354  					fps.subPath.ClearValueRaw(item.String_)
  3355  				}
  3356  			}
  3357  		case ScopeParam_FieldPathSelectorStrings:
  3358  			if item.Value != nil {
  3359  				if item, ok := item.Value.(*ScopeParam_Strings); ok {
  3360  					fps.subPath.ClearValueRaw(item.Strings)
  3361  				}
  3362  			}
  3363  		case ScopeParam_FieldPathSelectorValueFrom:
  3364  			if item.Value != nil {
  3365  				if item, ok := item.Value.(*ScopeParam_ValueFrom); ok {
  3366  					fps.subPath.ClearValueRaw(item.ValueFrom)
  3367  				}
  3368  			}
  3369  		default:
  3370  			panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fps.selector))
  3371  		}
  3372  	}
  3373  }
  3374  
  3375  func (fps *ScopeParam_FieldSubPath) ClearValueRaw(item proto.Message) {
  3376  	fps.ClearValue(item.(*ScopeParam))
  3377  }
  3378  
  3379  // IsLeaf - whether field path is holds simple value
  3380  func (fps *ScopeParam_FieldSubPath) IsLeaf() bool {
  3381  	return fps.subPath.IsLeaf()
  3382  }
  3383  
  3384  func (fps *ScopeParam_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  3385  	iPaths := []gotenobject.FieldPath{&ScopeParam_FieldTerminalPath{selector: fps.selector}}
  3386  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
  3387  	return iPaths
  3388  }
  3389  
  3390  func (fps *ScopeParam_FieldSubPath) WithIValue(value interface{}) ScopeParam_FieldPathValue {
  3391  	return &ScopeParam_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
  3392  }
  3393  
  3394  func (fps *ScopeParam_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  3395  	return fps.WithIValue(value)
  3396  }
  3397  
  3398  func (fps *ScopeParam_FieldSubPath) WithIArrayOfValues(values interface{}) ScopeParam_FieldPathArrayOfValues {
  3399  	return &ScopeParam_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
  3400  }
  3401  
  3402  func (fps *ScopeParam_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  3403  	return fps.WithIArrayOfValues(values)
  3404  }
  3405  
  3406  func (fps *ScopeParam_FieldSubPath) WithIArrayItemValue(value interface{}) ScopeParam_FieldPathArrayItemValue {
  3407  	return &ScopeParam_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
  3408  }
  3409  
  3410  func (fps *ScopeParam_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  3411  	return fps.WithIArrayItemValue(value)
  3412  }
  3413  
  3414  // ScopeParam_FieldPathValue allows storing values for ScopeParam fields according to their type
  3415  type ScopeParam_FieldPathValue interface {
  3416  	ScopeParam_FieldPath
  3417  	gotenobject.FieldPathValue
  3418  	SetTo(target **ScopeParam)
  3419  	CompareWith(*ScopeParam) (cmp int, comparable bool)
  3420  }
  3421  
  3422  func ParseScopeParam_FieldPathValue(pathStr, valueStr string) (ScopeParam_FieldPathValue, error) {
  3423  	fp, err := ParseScopeParam_FieldPath(pathStr)
  3424  	if err != nil {
  3425  		return nil, err
  3426  	}
  3427  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  3428  	if err != nil {
  3429  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ScopeParam field path value from %s: %v", valueStr, err)
  3430  	}
  3431  	return fpv.(ScopeParam_FieldPathValue), nil
  3432  }
  3433  
  3434  func MustParseScopeParam_FieldPathValue(pathStr, valueStr string) ScopeParam_FieldPathValue {
  3435  	fpv, err := ParseScopeParam_FieldPathValue(pathStr, valueStr)
  3436  	if err != nil {
  3437  		panic(err)
  3438  	}
  3439  	return fpv
  3440  }
  3441  
  3442  type ScopeParam_FieldTerminalPathValue struct {
  3443  	ScopeParam_FieldTerminalPath
  3444  	value interface{}
  3445  }
  3446  
  3447  var _ ScopeParam_FieldPathValue = (*ScopeParam_FieldTerminalPathValue)(nil)
  3448  
  3449  // GetRawValue returns raw value stored under selected path for 'ScopeParam' as interface{}
  3450  func (fpv *ScopeParam_FieldTerminalPathValue) GetRawValue() interface{} {
  3451  	return fpv.value
  3452  }
  3453  func (fpv *ScopeParam_FieldTerminalPathValue) AsNameValue() (string, bool) {
  3454  	res, ok := fpv.value.(string)
  3455  	return res, ok
  3456  }
  3457  func (fpv *ScopeParam_FieldTerminalPathValue) AsStringValue() (*ScopeParam_StringValue, bool) {
  3458  	res, ok := fpv.value.(*ScopeParam_StringValue)
  3459  	return res, ok
  3460  }
  3461  func (fpv *ScopeParam_FieldTerminalPathValue) AsStringsValue() (*ScopeParam_ArrayOfStringsValue, bool) {
  3462  	res, ok := fpv.value.(*ScopeParam_ArrayOfStringsValue)
  3463  	return res, ok
  3464  }
  3465  func (fpv *ScopeParam_FieldTerminalPathValue) AsValueFromValue() (*ScopeParam_FromValue, bool) {
  3466  	res, ok := fpv.value.(*ScopeParam_FromValue)
  3467  	return res, ok
  3468  }
  3469  
  3470  // SetTo stores value for selected field for object ScopeParam
  3471  func (fpv *ScopeParam_FieldTerminalPathValue) SetTo(target **ScopeParam) {
  3472  	if *target == nil {
  3473  		*target = new(ScopeParam)
  3474  	}
  3475  	switch fpv.selector {
  3476  	case ScopeParam_FieldPathSelectorName:
  3477  		(*target).Name = fpv.value.(string)
  3478  	case ScopeParam_FieldPathSelectorString:
  3479  		if _, ok := (*target).Value.(*ScopeParam_String_); !ok {
  3480  			(*target).Value = &ScopeParam_String_{}
  3481  		}
  3482  		(*target).Value.(*ScopeParam_String_).String_ = fpv.value.(*ScopeParam_StringValue)
  3483  	case ScopeParam_FieldPathSelectorStrings:
  3484  		if _, ok := (*target).Value.(*ScopeParam_Strings); !ok {
  3485  			(*target).Value = &ScopeParam_Strings{}
  3486  		}
  3487  		(*target).Value.(*ScopeParam_Strings).Strings = fpv.value.(*ScopeParam_ArrayOfStringsValue)
  3488  	case ScopeParam_FieldPathSelectorValueFrom:
  3489  		if _, ok := (*target).Value.(*ScopeParam_ValueFrom); !ok {
  3490  			(*target).Value = &ScopeParam_ValueFrom{}
  3491  		}
  3492  		(*target).Value.(*ScopeParam_ValueFrom).ValueFrom = fpv.value.(*ScopeParam_FromValue)
  3493  	default:
  3494  		panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fpv.selector))
  3495  	}
  3496  }
  3497  
  3498  func (fpv *ScopeParam_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  3499  	typedObject := target.(*ScopeParam)
  3500  	fpv.SetTo(&typedObject)
  3501  }
  3502  
  3503  // CompareWith compares value in the 'ScopeParam_FieldTerminalPathValue' with the value under path in 'ScopeParam'.
  3504  func (fpv *ScopeParam_FieldTerminalPathValue) CompareWith(source *ScopeParam) (int, bool) {
  3505  	switch fpv.selector {
  3506  	case ScopeParam_FieldPathSelectorName:
  3507  		leftValue := fpv.value.(string)
  3508  		rightValue := source.GetName()
  3509  		if (leftValue) == (rightValue) {
  3510  			return 0, true
  3511  		} else if (leftValue) < (rightValue) {
  3512  			return -1, true
  3513  		} else {
  3514  			return 1, true
  3515  		}
  3516  	case ScopeParam_FieldPathSelectorString:
  3517  		return 0, false
  3518  	case ScopeParam_FieldPathSelectorStrings:
  3519  		return 0, false
  3520  	case ScopeParam_FieldPathSelectorValueFrom:
  3521  		return 0, false
  3522  	default:
  3523  		panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fpv.selector))
  3524  	}
  3525  }
  3526  
  3527  func (fpv *ScopeParam_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  3528  	return fpv.CompareWith(source.(*ScopeParam))
  3529  }
  3530  
  3531  type ScopeParam_FieldSubPathValue struct {
  3532  	ScopeParam_FieldPath
  3533  	subPathValue gotenobject.FieldPathValue
  3534  }
  3535  
  3536  var _ ScopeParam_FieldPathValue = (*ScopeParam_FieldSubPathValue)(nil)
  3537  
  3538  func (fpvs *ScopeParam_FieldSubPathValue) AsStringPathValue() (ScopeParamStringValue_FieldPathValue, bool) {
  3539  	res, ok := fpvs.subPathValue.(ScopeParamStringValue_FieldPathValue)
  3540  	return res, ok
  3541  }
  3542  func (fpvs *ScopeParam_FieldSubPathValue) AsStringsPathValue() (ScopeParamArrayOfStringsValue_FieldPathValue, bool) {
  3543  	res, ok := fpvs.subPathValue.(ScopeParamArrayOfStringsValue_FieldPathValue)
  3544  	return res, ok
  3545  }
  3546  func (fpvs *ScopeParam_FieldSubPathValue) AsValueFromPathValue() (ScopeParamFromValue_FieldPathValue, bool) {
  3547  	res, ok := fpvs.subPathValue.(ScopeParamFromValue_FieldPathValue)
  3548  	return res, ok
  3549  }
  3550  
  3551  func (fpvs *ScopeParam_FieldSubPathValue) SetTo(target **ScopeParam) {
  3552  	if *target == nil {
  3553  		*target = new(ScopeParam)
  3554  	}
  3555  	switch fpvs.Selector() {
  3556  	case ScopeParam_FieldPathSelectorString:
  3557  		if _, ok := (*target).Value.(*ScopeParam_String_); !ok {
  3558  			(*target).Value = &ScopeParam_String_{}
  3559  		}
  3560  		fpvs.subPathValue.(ScopeParamStringValue_FieldPathValue).SetTo(&(*target).Value.(*ScopeParam_String_).String_)
  3561  	case ScopeParam_FieldPathSelectorStrings:
  3562  		if _, ok := (*target).Value.(*ScopeParam_Strings); !ok {
  3563  			(*target).Value = &ScopeParam_Strings{}
  3564  		}
  3565  		fpvs.subPathValue.(ScopeParamArrayOfStringsValue_FieldPathValue).SetTo(&(*target).Value.(*ScopeParam_Strings).Strings)
  3566  	case ScopeParam_FieldPathSelectorValueFrom:
  3567  		if _, ok := (*target).Value.(*ScopeParam_ValueFrom); !ok {
  3568  			(*target).Value = &ScopeParam_ValueFrom{}
  3569  		}
  3570  		fpvs.subPathValue.(ScopeParamFromValue_FieldPathValue).SetTo(&(*target).Value.(*ScopeParam_ValueFrom).ValueFrom)
  3571  	default:
  3572  		panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fpvs.Selector()))
  3573  	}
  3574  }
  3575  
  3576  func (fpvs *ScopeParam_FieldSubPathValue) SetToRaw(target proto.Message) {
  3577  	typedObject := target.(*ScopeParam)
  3578  	fpvs.SetTo(&typedObject)
  3579  }
  3580  
  3581  func (fpvs *ScopeParam_FieldSubPathValue) GetRawValue() interface{} {
  3582  	return fpvs.subPathValue.GetRawValue()
  3583  }
  3584  
  3585  func (fpvs *ScopeParam_FieldSubPathValue) CompareWith(source *ScopeParam) (int, bool) {
  3586  	switch fpvs.Selector() {
  3587  	case ScopeParam_FieldPathSelectorString:
  3588  		return fpvs.subPathValue.(ScopeParamStringValue_FieldPathValue).CompareWith(source.GetString_())
  3589  	case ScopeParam_FieldPathSelectorStrings:
  3590  		return fpvs.subPathValue.(ScopeParamArrayOfStringsValue_FieldPathValue).CompareWith(source.GetStrings())
  3591  	case ScopeParam_FieldPathSelectorValueFrom:
  3592  		return fpvs.subPathValue.(ScopeParamFromValue_FieldPathValue).CompareWith(source.GetValueFrom())
  3593  	default:
  3594  		panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fpvs.Selector()))
  3595  	}
  3596  }
  3597  
  3598  func (fpvs *ScopeParam_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  3599  	return fpvs.CompareWith(source.(*ScopeParam))
  3600  }
  3601  
  3602  // ScopeParam_FieldPathArrayItemValue allows storing single item in Path-specific values for ScopeParam according to their type
  3603  // Present only for array (repeated) types.
  3604  type ScopeParam_FieldPathArrayItemValue interface {
  3605  	gotenobject.FieldPathArrayItemValue
  3606  	ScopeParam_FieldPath
  3607  	ContainsValue(*ScopeParam) bool
  3608  }
  3609  
  3610  // ParseScopeParam_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  3611  func ParseScopeParam_FieldPathArrayItemValue(pathStr, valueStr string) (ScopeParam_FieldPathArrayItemValue, error) {
  3612  	fp, err := ParseScopeParam_FieldPath(pathStr)
  3613  	if err != nil {
  3614  		return nil, err
  3615  	}
  3616  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  3617  	if err != nil {
  3618  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ScopeParam field path array item value from %s: %v", valueStr, err)
  3619  	}
  3620  	return fpaiv.(ScopeParam_FieldPathArrayItemValue), nil
  3621  }
  3622  
  3623  func MustParseScopeParam_FieldPathArrayItemValue(pathStr, valueStr string) ScopeParam_FieldPathArrayItemValue {
  3624  	fpaiv, err := ParseScopeParam_FieldPathArrayItemValue(pathStr, valueStr)
  3625  	if err != nil {
  3626  		panic(err)
  3627  	}
  3628  	return fpaiv
  3629  }
  3630  
  3631  type ScopeParam_FieldTerminalPathArrayItemValue struct {
  3632  	ScopeParam_FieldTerminalPath
  3633  	value interface{}
  3634  }
  3635  
  3636  var _ ScopeParam_FieldPathArrayItemValue = (*ScopeParam_FieldTerminalPathArrayItemValue)(nil)
  3637  
  3638  // GetRawValue returns stored element value for array in object ScopeParam as interface{}
  3639  func (fpaiv *ScopeParam_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  3640  	return fpaiv.value
  3641  }
  3642  
  3643  func (fpaiv *ScopeParam_FieldTerminalPathArrayItemValue) GetSingle(source *ScopeParam) (interface{}, bool) {
  3644  	return nil, false
  3645  }
  3646  
  3647  func (fpaiv *ScopeParam_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  3648  	return fpaiv.GetSingle(source.(*ScopeParam))
  3649  }
  3650  
  3651  // Contains returns a boolean indicating if value that is being held is present in given 'ScopeParam'
  3652  func (fpaiv *ScopeParam_FieldTerminalPathArrayItemValue) ContainsValue(source *ScopeParam) bool {
  3653  	slice := fpaiv.ScopeParam_FieldTerminalPath.Get(source)
  3654  	for _, v := range slice {
  3655  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  3656  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  3657  				return true
  3658  			}
  3659  		} else if reflect.DeepEqual(v, fpaiv.value) {
  3660  			return true
  3661  		}
  3662  	}
  3663  	return false
  3664  }
  3665  
  3666  type ScopeParam_FieldSubPathArrayItemValue struct {
  3667  	ScopeParam_FieldPath
  3668  	subPathItemValue gotenobject.FieldPathArrayItemValue
  3669  }
  3670  
  3671  // GetRawValue returns stored array item value
  3672  func (fpaivs *ScopeParam_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  3673  	return fpaivs.subPathItemValue.GetRawItemValue()
  3674  }
  3675  func (fpaivs *ScopeParam_FieldSubPathArrayItemValue) AsStringPathItemValue() (ScopeParamStringValue_FieldPathArrayItemValue, bool) {
  3676  	res, ok := fpaivs.subPathItemValue.(ScopeParamStringValue_FieldPathArrayItemValue)
  3677  	return res, ok
  3678  }
  3679  func (fpaivs *ScopeParam_FieldSubPathArrayItemValue) AsStringsPathItemValue() (ScopeParamArrayOfStringsValue_FieldPathArrayItemValue, bool) {
  3680  	res, ok := fpaivs.subPathItemValue.(ScopeParamArrayOfStringsValue_FieldPathArrayItemValue)
  3681  	return res, ok
  3682  }
  3683  func (fpaivs *ScopeParam_FieldSubPathArrayItemValue) AsValueFromPathItemValue() (ScopeParamFromValue_FieldPathArrayItemValue, bool) {
  3684  	res, ok := fpaivs.subPathItemValue.(ScopeParamFromValue_FieldPathArrayItemValue)
  3685  	return res, ok
  3686  }
  3687  
  3688  // Contains returns a boolean indicating if value that is being held is present in given 'ScopeParam'
  3689  func (fpaivs *ScopeParam_FieldSubPathArrayItemValue) ContainsValue(source *ScopeParam) bool {
  3690  	switch fpaivs.Selector() {
  3691  	case ScopeParam_FieldPathSelectorString:
  3692  		return fpaivs.subPathItemValue.(ScopeParamStringValue_FieldPathArrayItemValue).ContainsValue(source.GetString_())
  3693  	case ScopeParam_FieldPathSelectorStrings:
  3694  		return fpaivs.subPathItemValue.(ScopeParamArrayOfStringsValue_FieldPathArrayItemValue).ContainsValue(source.GetStrings())
  3695  	case ScopeParam_FieldPathSelectorValueFrom:
  3696  		return fpaivs.subPathItemValue.(ScopeParamFromValue_FieldPathArrayItemValue).ContainsValue(source.GetValueFrom())
  3697  	default:
  3698  		panic(fmt.Sprintf("Invalid selector for ScopeParam: %d", fpaivs.Selector()))
  3699  	}
  3700  }
  3701  
  3702  // ScopeParam_FieldPathArrayOfValues allows storing slice of values for ScopeParam fields according to their type
  3703  type ScopeParam_FieldPathArrayOfValues interface {
  3704  	gotenobject.FieldPathArrayOfValues
  3705  	ScopeParam_FieldPath
  3706  }
  3707  
  3708  func ParseScopeParam_FieldPathArrayOfValues(pathStr, valuesStr string) (ScopeParam_FieldPathArrayOfValues, error) {
  3709  	fp, err := ParseScopeParam_FieldPath(pathStr)
  3710  	if err != nil {
  3711  		return nil, err
  3712  	}
  3713  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  3714  	if err != nil {
  3715  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ScopeParam field path array of values from %s: %v", valuesStr, err)
  3716  	}
  3717  	return fpaov.(ScopeParam_FieldPathArrayOfValues), nil
  3718  }
  3719  
  3720  func MustParseScopeParam_FieldPathArrayOfValues(pathStr, valuesStr string) ScopeParam_FieldPathArrayOfValues {
  3721  	fpaov, err := ParseScopeParam_FieldPathArrayOfValues(pathStr, valuesStr)
  3722  	if err != nil {
  3723  		panic(err)
  3724  	}
  3725  	return fpaov
  3726  }
  3727  
  3728  type ScopeParam_FieldTerminalPathArrayOfValues struct {
  3729  	ScopeParam_FieldTerminalPath
  3730  	values interface{}
  3731  }
  3732  
  3733  var _ ScopeParam_FieldPathArrayOfValues = (*ScopeParam_FieldTerminalPathArrayOfValues)(nil)
  3734  
  3735  func (fpaov *ScopeParam_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  3736  	switch fpaov.selector {
  3737  	case ScopeParam_FieldPathSelectorName:
  3738  		for _, v := range fpaov.values.([]string) {
  3739  			values = append(values, v)
  3740  		}
  3741  	case ScopeParam_FieldPathSelectorString:
  3742  		for _, v := range fpaov.values.([]*ScopeParam_StringValue) {
  3743  			values = append(values, v)
  3744  		}
  3745  	case ScopeParam_FieldPathSelectorStrings:
  3746  		for _, v := range fpaov.values.([]*ScopeParam_ArrayOfStringsValue) {
  3747  			values = append(values, v)
  3748  		}
  3749  	case ScopeParam_FieldPathSelectorValueFrom:
  3750  		for _, v := range fpaov.values.([]*ScopeParam_FromValue) {
  3751  			values = append(values, v)
  3752  		}
  3753  	}
  3754  	return
  3755  }
  3756  func (fpaov *ScopeParam_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]string, bool) {
  3757  	res, ok := fpaov.values.([]string)
  3758  	return res, ok
  3759  }
  3760  func (fpaov *ScopeParam_FieldTerminalPathArrayOfValues) AsStringArrayOfValues() ([]*ScopeParam_StringValue, bool) {
  3761  	res, ok := fpaov.values.([]*ScopeParam_StringValue)
  3762  	return res, ok
  3763  }
  3764  func (fpaov *ScopeParam_FieldTerminalPathArrayOfValues) AsStringsArrayOfValues() ([]*ScopeParam_ArrayOfStringsValue, bool) {
  3765  	res, ok := fpaov.values.([]*ScopeParam_ArrayOfStringsValue)
  3766  	return res, ok
  3767  }
  3768  func (fpaov *ScopeParam_FieldTerminalPathArrayOfValues) AsValueFromArrayOfValues() ([]*ScopeParam_FromValue, bool) {
  3769  	res, ok := fpaov.values.([]*ScopeParam_FromValue)
  3770  	return res, ok
  3771  }
  3772  
  3773  type ScopeParam_FieldSubPathArrayOfValues struct {
  3774  	ScopeParam_FieldPath
  3775  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  3776  }
  3777  
  3778  var _ ScopeParam_FieldPathArrayOfValues = (*ScopeParam_FieldSubPathArrayOfValues)(nil)
  3779  
  3780  func (fpsaov *ScopeParam_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  3781  	return fpsaov.subPathArrayOfValues.GetRawValues()
  3782  }
  3783  func (fpsaov *ScopeParam_FieldSubPathArrayOfValues) AsStringPathArrayOfValues() (ScopeParamStringValue_FieldPathArrayOfValues, bool) {
  3784  	res, ok := fpsaov.subPathArrayOfValues.(ScopeParamStringValue_FieldPathArrayOfValues)
  3785  	return res, ok
  3786  }
  3787  func (fpsaov *ScopeParam_FieldSubPathArrayOfValues) AsStringsPathArrayOfValues() (ScopeParamArrayOfStringsValue_FieldPathArrayOfValues, bool) {
  3788  	res, ok := fpsaov.subPathArrayOfValues.(ScopeParamArrayOfStringsValue_FieldPathArrayOfValues)
  3789  	return res, ok
  3790  }
  3791  func (fpsaov *ScopeParam_FieldSubPathArrayOfValues) AsValueFromPathArrayOfValues() (ScopeParamFromValue_FieldPathArrayOfValues, bool) {
  3792  	res, ok := fpsaov.subPathArrayOfValues.(ScopeParamFromValue_FieldPathArrayOfValues)
  3793  	return res, ok
  3794  }
  3795  
  3796  // FieldPath provides implementation to handle
  3797  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  3798  type ScopeParamStringValue_FieldPath interface {
  3799  	gotenobject.FieldPath
  3800  	Selector() ScopeParamStringValue_FieldPathSelector
  3801  	Get(source *ScopeParam_StringValue) []interface{}
  3802  	GetSingle(source *ScopeParam_StringValue) (interface{}, bool)
  3803  	ClearValue(item *ScopeParam_StringValue)
  3804  
  3805  	// Those methods build corresponding ScopeParamStringValue_FieldPathValue
  3806  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  3807  	WithIValue(value interface{}) ScopeParamStringValue_FieldPathValue
  3808  	WithIArrayOfValues(values interface{}) ScopeParamStringValue_FieldPathArrayOfValues
  3809  	WithIArrayItemValue(value interface{}) ScopeParamStringValue_FieldPathArrayItemValue
  3810  }
  3811  
  3812  type ScopeParamStringValue_FieldPathSelector int32
  3813  
  3814  const (
  3815  	ScopeParamStringValue_FieldPathSelectorValue ScopeParamStringValue_FieldPathSelector = 0
  3816  )
  3817  
  3818  func (s ScopeParamStringValue_FieldPathSelector) String() string {
  3819  	switch s {
  3820  	case ScopeParamStringValue_FieldPathSelectorValue:
  3821  		return "value"
  3822  	default:
  3823  		panic(fmt.Sprintf("Invalid selector for ScopeParam_StringValue: %d", s))
  3824  	}
  3825  }
  3826  
  3827  func BuildScopeParamStringValue_FieldPath(fp gotenobject.RawFieldPath) (ScopeParamStringValue_FieldPath, error) {
  3828  	if len(fp) == 0 {
  3829  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ScopeParam_StringValue")
  3830  	}
  3831  	if len(fp) == 1 {
  3832  		switch fp[0] {
  3833  		case "value":
  3834  			return &ScopeParamStringValue_FieldTerminalPath{selector: ScopeParamStringValue_FieldPathSelectorValue}, nil
  3835  		}
  3836  	}
  3837  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ScopeParam_StringValue", fp)
  3838  }
  3839  
  3840  func ParseScopeParamStringValue_FieldPath(rawField string) (ScopeParamStringValue_FieldPath, error) {
  3841  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  3842  	if err != nil {
  3843  		return nil, err
  3844  	}
  3845  	return BuildScopeParamStringValue_FieldPath(fp)
  3846  }
  3847  
  3848  func MustParseScopeParamStringValue_FieldPath(rawField string) ScopeParamStringValue_FieldPath {
  3849  	fp, err := ParseScopeParamStringValue_FieldPath(rawField)
  3850  	if err != nil {
  3851  		panic(err)
  3852  	}
  3853  	return fp
  3854  }
  3855  
  3856  type ScopeParamStringValue_FieldTerminalPath struct {
  3857  	selector ScopeParamStringValue_FieldPathSelector
  3858  }
  3859  
  3860  var _ ScopeParamStringValue_FieldPath = (*ScopeParamStringValue_FieldTerminalPath)(nil)
  3861  
  3862  func (fp *ScopeParamStringValue_FieldTerminalPath) Selector() ScopeParamStringValue_FieldPathSelector {
  3863  	return fp.selector
  3864  }
  3865  
  3866  // String returns path representation in proto convention
  3867  func (fp *ScopeParamStringValue_FieldTerminalPath) String() string {
  3868  	return fp.selector.String()
  3869  }
  3870  
  3871  // JSONString returns path representation is JSON convention
  3872  func (fp *ScopeParamStringValue_FieldTerminalPath) JSONString() string {
  3873  	return strcase.ToLowerCamel(fp.String())
  3874  }
  3875  
  3876  // Get returns all values pointed by specific field from source ScopeParam_StringValue
  3877  func (fp *ScopeParamStringValue_FieldTerminalPath) Get(source *ScopeParam_StringValue) (values []interface{}) {
  3878  	if source != nil {
  3879  		switch fp.selector {
  3880  		case ScopeParamStringValue_FieldPathSelectorValue:
  3881  			values = append(values, source.Value)
  3882  		default:
  3883  			panic(fmt.Sprintf("Invalid selector for ScopeParam_StringValue: %d", fp.selector))
  3884  		}
  3885  	}
  3886  	return
  3887  }
  3888  
  3889  func (fp *ScopeParamStringValue_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  3890  	return fp.Get(source.(*ScopeParam_StringValue))
  3891  }
  3892  
  3893  // GetSingle returns value pointed by specific field of from source ScopeParam_StringValue
  3894  func (fp *ScopeParamStringValue_FieldTerminalPath) GetSingle(source *ScopeParam_StringValue) (interface{}, bool) {
  3895  	switch fp.selector {
  3896  	case ScopeParamStringValue_FieldPathSelectorValue:
  3897  		return source.GetValue(), source != nil
  3898  	default:
  3899  		panic(fmt.Sprintf("Invalid selector for ScopeParam_StringValue: %d", fp.selector))
  3900  	}
  3901  }
  3902  
  3903  func (fp *ScopeParamStringValue_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  3904  	return fp.GetSingle(source.(*ScopeParam_StringValue))
  3905  }
  3906  
  3907  // GetDefault returns a default value of the field type
  3908  func (fp *ScopeParamStringValue_FieldTerminalPath) GetDefault() interface{} {
  3909  	switch fp.selector {
  3910  	case ScopeParamStringValue_FieldPathSelectorValue:
  3911  		return ""
  3912  	default:
  3913  		panic(fmt.Sprintf("Invalid selector for ScopeParam_StringValue: %d", fp.selector))
  3914  	}
  3915  }
  3916  
  3917  func (fp *ScopeParamStringValue_FieldTerminalPath) ClearValue(item *ScopeParam_StringValue) {
  3918  	if item != nil {
  3919  		switch fp.selector {
  3920  		case ScopeParamStringValue_FieldPathSelectorValue:
  3921  			item.Value = ""
  3922  		default:
  3923  			panic(fmt.Sprintf("Invalid selector for ScopeParam_StringValue: %d", fp.selector))
  3924  		}
  3925  	}
  3926  }
  3927  
  3928  func (fp *ScopeParamStringValue_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  3929  	fp.ClearValue(item.(*ScopeParam_StringValue))
  3930  }
  3931  
  3932  // IsLeaf - whether field path is holds simple value
  3933  func (fp *ScopeParamStringValue_FieldTerminalPath) IsLeaf() bool {
  3934  	return fp.selector == ScopeParamStringValue_FieldPathSelectorValue
  3935  }
  3936  
  3937  func (fp *ScopeParamStringValue_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  3938  	return []gotenobject.FieldPath{fp}
  3939  }
  3940  
  3941  func (fp *ScopeParamStringValue_FieldTerminalPath) WithIValue(value interface{}) ScopeParamStringValue_FieldPathValue {
  3942  	switch fp.selector {
  3943  	case ScopeParamStringValue_FieldPathSelectorValue:
  3944  		return &ScopeParamStringValue_FieldTerminalPathValue{ScopeParamStringValue_FieldTerminalPath: *fp, value: value.(string)}
  3945  	default:
  3946  		panic(fmt.Sprintf("Invalid selector for ScopeParam_StringValue: %d", fp.selector))
  3947  	}
  3948  }
  3949  
  3950  func (fp *ScopeParamStringValue_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  3951  	return fp.WithIValue(value)
  3952  }
  3953  
  3954  func (fp *ScopeParamStringValue_FieldTerminalPath) WithIArrayOfValues(values interface{}) ScopeParamStringValue_FieldPathArrayOfValues {
  3955  	fpaov := &ScopeParamStringValue_FieldTerminalPathArrayOfValues{ScopeParamStringValue_FieldTerminalPath: *fp}
  3956  	switch fp.selector {
  3957  	case ScopeParamStringValue_FieldPathSelectorValue:
  3958  		return &ScopeParamStringValue_FieldTerminalPathArrayOfValues{ScopeParamStringValue_FieldTerminalPath: *fp, values: values.([]string)}
  3959  	default:
  3960  		panic(fmt.Sprintf("Invalid selector for ScopeParam_StringValue: %d", fp.selector))
  3961  	}
  3962  	return fpaov
  3963  }
  3964  
  3965  func (fp *ScopeParamStringValue_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  3966  	return fp.WithIArrayOfValues(values)
  3967  }
  3968  
  3969  func (fp *ScopeParamStringValue_FieldTerminalPath) WithIArrayItemValue(value interface{}) ScopeParamStringValue_FieldPathArrayItemValue {
  3970  	switch fp.selector {
  3971  	default:
  3972  		panic(fmt.Sprintf("Invalid selector for ScopeParam_StringValue: %d", fp.selector))
  3973  	}
  3974  }
  3975  
  3976  func (fp *ScopeParamStringValue_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  3977  	return fp.WithIArrayItemValue(value)
  3978  }
  3979  
  3980  // ScopeParamStringValue_FieldPathValue allows storing values for StringValue fields according to their type
  3981  type ScopeParamStringValue_FieldPathValue interface {
  3982  	ScopeParamStringValue_FieldPath
  3983  	gotenobject.FieldPathValue
  3984  	SetTo(target **ScopeParam_StringValue)
  3985  	CompareWith(*ScopeParam_StringValue) (cmp int, comparable bool)
  3986  }
  3987  
  3988  func ParseScopeParamStringValue_FieldPathValue(pathStr, valueStr string) (ScopeParamStringValue_FieldPathValue, error) {
  3989  	fp, err := ParseScopeParamStringValue_FieldPath(pathStr)
  3990  	if err != nil {
  3991  		return nil, err
  3992  	}
  3993  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  3994  	if err != nil {
  3995  		return nil, status.Errorf(codes.InvalidArgument, "error parsing StringValue field path value from %s: %v", valueStr, err)
  3996  	}
  3997  	return fpv.(ScopeParamStringValue_FieldPathValue), nil
  3998  }
  3999  
  4000  func MustParseScopeParamStringValue_FieldPathValue(pathStr, valueStr string) ScopeParamStringValue_FieldPathValue {
  4001  	fpv, err := ParseScopeParamStringValue_FieldPathValue(pathStr, valueStr)
  4002  	if err != nil {
  4003  		panic(err)
  4004  	}
  4005  	return fpv
  4006  }
  4007  
  4008  type ScopeParamStringValue_FieldTerminalPathValue struct {
  4009  	ScopeParamStringValue_FieldTerminalPath
  4010  	value interface{}
  4011  }
  4012  
  4013  var _ ScopeParamStringValue_FieldPathValue = (*ScopeParamStringValue_FieldTerminalPathValue)(nil)
  4014  
  4015  // GetRawValue returns raw value stored under selected path for 'StringValue' as interface{}
  4016  func (fpv *ScopeParamStringValue_FieldTerminalPathValue) GetRawValue() interface{} {
  4017  	return fpv.value
  4018  }
  4019  func (fpv *ScopeParamStringValue_FieldTerminalPathValue) AsValueValue() (string, bool) {
  4020  	res, ok := fpv.value.(string)
  4021  	return res, ok
  4022  }
  4023  
  4024  // SetTo stores value for selected field for object StringValue
  4025  func (fpv *ScopeParamStringValue_FieldTerminalPathValue) SetTo(target **ScopeParam_StringValue) {
  4026  	if *target == nil {
  4027  		*target = new(ScopeParam_StringValue)
  4028  	}
  4029  	switch fpv.selector {
  4030  	case ScopeParamStringValue_FieldPathSelectorValue:
  4031  		(*target).Value = fpv.value.(string)
  4032  	default:
  4033  		panic(fmt.Sprintf("Invalid selector for ScopeParam_StringValue: %d", fpv.selector))
  4034  	}
  4035  }
  4036  
  4037  func (fpv *ScopeParamStringValue_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  4038  	typedObject := target.(*ScopeParam_StringValue)
  4039  	fpv.SetTo(&typedObject)
  4040  }
  4041  
  4042  // CompareWith compares value in the 'ScopeParamStringValue_FieldTerminalPathValue' with the value under path in 'ScopeParam_StringValue'.
  4043  func (fpv *ScopeParamStringValue_FieldTerminalPathValue) CompareWith(source *ScopeParam_StringValue) (int, bool) {
  4044  	switch fpv.selector {
  4045  	case ScopeParamStringValue_FieldPathSelectorValue:
  4046  		leftValue := fpv.value.(string)
  4047  		rightValue := source.GetValue()
  4048  		if (leftValue) == (rightValue) {
  4049  			return 0, true
  4050  		} else if (leftValue) < (rightValue) {
  4051  			return -1, true
  4052  		} else {
  4053  			return 1, true
  4054  		}
  4055  	default:
  4056  		panic(fmt.Sprintf("Invalid selector for ScopeParam_StringValue: %d", fpv.selector))
  4057  	}
  4058  }
  4059  
  4060  func (fpv *ScopeParamStringValue_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  4061  	return fpv.CompareWith(source.(*ScopeParam_StringValue))
  4062  }
  4063  
  4064  // ScopeParamStringValue_FieldPathArrayItemValue allows storing single item in Path-specific values for StringValue according to their type
  4065  // Present only for array (repeated) types.
  4066  type ScopeParamStringValue_FieldPathArrayItemValue interface {
  4067  	gotenobject.FieldPathArrayItemValue
  4068  	ScopeParamStringValue_FieldPath
  4069  	ContainsValue(*ScopeParam_StringValue) bool
  4070  }
  4071  
  4072  // ParseScopeParamStringValue_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  4073  func ParseScopeParamStringValue_FieldPathArrayItemValue(pathStr, valueStr string) (ScopeParamStringValue_FieldPathArrayItemValue, error) {
  4074  	fp, err := ParseScopeParamStringValue_FieldPath(pathStr)
  4075  	if err != nil {
  4076  		return nil, err
  4077  	}
  4078  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  4079  	if err != nil {
  4080  		return nil, status.Errorf(codes.InvalidArgument, "error parsing StringValue field path array item value from %s: %v", valueStr, err)
  4081  	}
  4082  	return fpaiv.(ScopeParamStringValue_FieldPathArrayItemValue), nil
  4083  }
  4084  
  4085  func MustParseScopeParamStringValue_FieldPathArrayItemValue(pathStr, valueStr string) ScopeParamStringValue_FieldPathArrayItemValue {
  4086  	fpaiv, err := ParseScopeParamStringValue_FieldPathArrayItemValue(pathStr, valueStr)
  4087  	if err != nil {
  4088  		panic(err)
  4089  	}
  4090  	return fpaiv
  4091  }
  4092  
  4093  type ScopeParamStringValue_FieldTerminalPathArrayItemValue struct {
  4094  	ScopeParamStringValue_FieldTerminalPath
  4095  	value interface{}
  4096  }
  4097  
  4098  var _ ScopeParamStringValue_FieldPathArrayItemValue = (*ScopeParamStringValue_FieldTerminalPathArrayItemValue)(nil)
  4099  
  4100  // GetRawValue returns stored element value for array in object ScopeParam_StringValue as interface{}
  4101  func (fpaiv *ScopeParamStringValue_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  4102  	return fpaiv.value
  4103  }
  4104  
  4105  func (fpaiv *ScopeParamStringValue_FieldTerminalPathArrayItemValue) GetSingle(source *ScopeParam_StringValue) (interface{}, bool) {
  4106  	return nil, false
  4107  }
  4108  
  4109  func (fpaiv *ScopeParamStringValue_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  4110  	return fpaiv.GetSingle(source.(*ScopeParam_StringValue))
  4111  }
  4112  
  4113  // Contains returns a boolean indicating if value that is being held is present in given 'StringValue'
  4114  func (fpaiv *ScopeParamStringValue_FieldTerminalPathArrayItemValue) ContainsValue(source *ScopeParam_StringValue) bool {
  4115  	slice := fpaiv.ScopeParamStringValue_FieldTerminalPath.Get(source)
  4116  	for _, v := range slice {
  4117  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  4118  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  4119  				return true
  4120  			}
  4121  		} else if reflect.DeepEqual(v, fpaiv.value) {
  4122  			return true
  4123  		}
  4124  	}
  4125  	return false
  4126  }
  4127  
  4128  // ScopeParamStringValue_FieldPathArrayOfValues allows storing slice of values for StringValue fields according to their type
  4129  type ScopeParamStringValue_FieldPathArrayOfValues interface {
  4130  	gotenobject.FieldPathArrayOfValues
  4131  	ScopeParamStringValue_FieldPath
  4132  }
  4133  
  4134  func ParseScopeParamStringValue_FieldPathArrayOfValues(pathStr, valuesStr string) (ScopeParamStringValue_FieldPathArrayOfValues, error) {
  4135  	fp, err := ParseScopeParamStringValue_FieldPath(pathStr)
  4136  	if err != nil {
  4137  		return nil, err
  4138  	}
  4139  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  4140  	if err != nil {
  4141  		return nil, status.Errorf(codes.InvalidArgument, "error parsing StringValue field path array of values from %s: %v", valuesStr, err)
  4142  	}
  4143  	return fpaov.(ScopeParamStringValue_FieldPathArrayOfValues), nil
  4144  }
  4145  
  4146  func MustParseScopeParamStringValue_FieldPathArrayOfValues(pathStr, valuesStr string) ScopeParamStringValue_FieldPathArrayOfValues {
  4147  	fpaov, err := ParseScopeParamStringValue_FieldPathArrayOfValues(pathStr, valuesStr)
  4148  	if err != nil {
  4149  		panic(err)
  4150  	}
  4151  	return fpaov
  4152  }
  4153  
  4154  type ScopeParamStringValue_FieldTerminalPathArrayOfValues struct {
  4155  	ScopeParamStringValue_FieldTerminalPath
  4156  	values interface{}
  4157  }
  4158  
  4159  var _ ScopeParamStringValue_FieldPathArrayOfValues = (*ScopeParamStringValue_FieldTerminalPathArrayOfValues)(nil)
  4160  
  4161  func (fpaov *ScopeParamStringValue_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  4162  	switch fpaov.selector {
  4163  	case ScopeParamStringValue_FieldPathSelectorValue:
  4164  		for _, v := range fpaov.values.([]string) {
  4165  			values = append(values, v)
  4166  		}
  4167  	}
  4168  	return
  4169  }
  4170  func (fpaov *ScopeParamStringValue_FieldTerminalPathArrayOfValues) AsValueArrayOfValues() ([]string, bool) {
  4171  	res, ok := fpaov.values.([]string)
  4172  	return res, ok
  4173  }
  4174  
  4175  // FieldPath provides implementation to handle
  4176  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  4177  type ScopeParamArrayOfStringsValue_FieldPath interface {
  4178  	gotenobject.FieldPath
  4179  	Selector() ScopeParamArrayOfStringsValue_FieldPathSelector
  4180  	Get(source *ScopeParam_ArrayOfStringsValue) []interface{}
  4181  	GetSingle(source *ScopeParam_ArrayOfStringsValue) (interface{}, bool)
  4182  	ClearValue(item *ScopeParam_ArrayOfStringsValue)
  4183  
  4184  	// Those methods build corresponding ScopeParamArrayOfStringsValue_FieldPathValue
  4185  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  4186  	WithIValue(value interface{}) ScopeParamArrayOfStringsValue_FieldPathValue
  4187  	WithIArrayOfValues(values interface{}) ScopeParamArrayOfStringsValue_FieldPathArrayOfValues
  4188  	WithIArrayItemValue(value interface{}) ScopeParamArrayOfStringsValue_FieldPathArrayItemValue
  4189  }
  4190  
  4191  type ScopeParamArrayOfStringsValue_FieldPathSelector int32
  4192  
  4193  const (
  4194  	ScopeParamArrayOfStringsValue_FieldPathSelectorValues ScopeParamArrayOfStringsValue_FieldPathSelector = 0
  4195  )
  4196  
  4197  func (s ScopeParamArrayOfStringsValue_FieldPathSelector) String() string {
  4198  	switch s {
  4199  	case ScopeParamArrayOfStringsValue_FieldPathSelectorValues:
  4200  		return "values"
  4201  	default:
  4202  		panic(fmt.Sprintf("Invalid selector for ScopeParam_ArrayOfStringsValue: %d", s))
  4203  	}
  4204  }
  4205  
  4206  func BuildScopeParamArrayOfStringsValue_FieldPath(fp gotenobject.RawFieldPath) (ScopeParamArrayOfStringsValue_FieldPath, error) {
  4207  	if len(fp) == 0 {
  4208  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ScopeParam_ArrayOfStringsValue")
  4209  	}
  4210  	if len(fp) == 1 {
  4211  		switch fp[0] {
  4212  		case "values":
  4213  			return &ScopeParamArrayOfStringsValue_FieldTerminalPath{selector: ScopeParamArrayOfStringsValue_FieldPathSelectorValues}, nil
  4214  		}
  4215  	}
  4216  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ScopeParam_ArrayOfStringsValue", fp)
  4217  }
  4218  
  4219  func ParseScopeParamArrayOfStringsValue_FieldPath(rawField string) (ScopeParamArrayOfStringsValue_FieldPath, error) {
  4220  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  4221  	if err != nil {
  4222  		return nil, err
  4223  	}
  4224  	return BuildScopeParamArrayOfStringsValue_FieldPath(fp)
  4225  }
  4226  
  4227  func MustParseScopeParamArrayOfStringsValue_FieldPath(rawField string) ScopeParamArrayOfStringsValue_FieldPath {
  4228  	fp, err := ParseScopeParamArrayOfStringsValue_FieldPath(rawField)
  4229  	if err != nil {
  4230  		panic(err)
  4231  	}
  4232  	return fp
  4233  }
  4234  
  4235  type ScopeParamArrayOfStringsValue_FieldTerminalPath struct {
  4236  	selector ScopeParamArrayOfStringsValue_FieldPathSelector
  4237  }
  4238  
  4239  var _ ScopeParamArrayOfStringsValue_FieldPath = (*ScopeParamArrayOfStringsValue_FieldTerminalPath)(nil)
  4240  
  4241  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) Selector() ScopeParamArrayOfStringsValue_FieldPathSelector {
  4242  	return fp.selector
  4243  }
  4244  
  4245  // String returns path representation in proto convention
  4246  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) String() string {
  4247  	return fp.selector.String()
  4248  }
  4249  
  4250  // JSONString returns path representation is JSON convention
  4251  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) JSONString() string {
  4252  	return strcase.ToLowerCamel(fp.String())
  4253  }
  4254  
  4255  // Get returns all values pointed by specific field from source ScopeParam_ArrayOfStringsValue
  4256  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) Get(source *ScopeParam_ArrayOfStringsValue) (values []interface{}) {
  4257  	if source != nil {
  4258  		switch fp.selector {
  4259  		case ScopeParamArrayOfStringsValue_FieldPathSelectorValues:
  4260  			for _, value := range source.GetValues() {
  4261  				values = append(values, value)
  4262  			}
  4263  		default:
  4264  			panic(fmt.Sprintf("Invalid selector for ScopeParam_ArrayOfStringsValue: %d", fp.selector))
  4265  		}
  4266  	}
  4267  	return
  4268  }
  4269  
  4270  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  4271  	return fp.Get(source.(*ScopeParam_ArrayOfStringsValue))
  4272  }
  4273  
  4274  // GetSingle returns value pointed by specific field of from source ScopeParam_ArrayOfStringsValue
  4275  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) GetSingle(source *ScopeParam_ArrayOfStringsValue) (interface{}, bool) {
  4276  	switch fp.selector {
  4277  	case ScopeParamArrayOfStringsValue_FieldPathSelectorValues:
  4278  		res := source.GetValues()
  4279  		return res, res != nil
  4280  	default:
  4281  		panic(fmt.Sprintf("Invalid selector for ScopeParam_ArrayOfStringsValue: %d", fp.selector))
  4282  	}
  4283  }
  4284  
  4285  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  4286  	return fp.GetSingle(source.(*ScopeParam_ArrayOfStringsValue))
  4287  }
  4288  
  4289  // GetDefault returns a default value of the field type
  4290  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) GetDefault() interface{} {
  4291  	switch fp.selector {
  4292  	case ScopeParamArrayOfStringsValue_FieldPathSelectorValues:
  4293  		return ([]string)(nil)
  4294  	default:
  4295  		panic(fmt.Sprintf("Invalid selector for ScopeParam_ArrayOfStringsValue: %d", fp.selector))
  4296  	}
  4297  }
  4298  
  4299  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) ClearValue(item *ScopeParam_ArrayOfStringsValue) {
  4300  	if item != nil {
  4301  		switch fp.selector {
  4302  		case ScopeParamArrayOfStringsValue_FieldPathSelectorValues:
  4303  			item.Values = nil
  4304  		default:
  4305  			panic(fmt.Sprintf("Invalid selector for ScopeParam_ArrayOfStringsValue: %d", fp.selector))
  4306  		}
  4307  	}
  4308  }
  4309  
  4310  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  4311  	fp.ClearValue(item.(*ScopeParam_ArrayOfStringsValue))
  4312  }
  4313  
  4314  // IsLeaf - whether field path is holds simple value
  4315  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) IsLeaf() bool {
  4316  	return fp.selector == ScopeParamArrayOfStringsValue_FieldPathSelectorValues
  4317  }
  4318  
  4319  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  4320  	return []gotenobject.FieldPath{fp}
  4321  }
  4322  
  4323  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) WithIValue(value interface{}) ScopeParamArrayOfStringsValue_FieldPathValue {
  4324  	switch fp.selector {
  4325  	case ScopeParamArrayOfStringsValue_FieldPathSelectorValues:
  4326  		return &ScopeParamArrayOfStringsValue_FieldTerminalPathValue{ScopeParamArrayOfStringsValue_FieldTerminalPath: *fp, value: value.([]string)}
  4327  	default:
  4328  		panic(fmt.Sprintf("Invalid selector for ScopeParam_ArrayOfStringsValue: %d", fp.selector))
  4329  	}
  4330  }
  4331  
  4332  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  4333  	return fp.WithIValue(value)
  4334  }
  4335  
  4336  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) WithIArrayOfValues(values interface{}) ScopeParamArrayOfStringsValue_FieldPathArrayOfValues {
  4337  	fpaov := &ScopeParamArrayOfStringsValue_FieldTerminalPathArrayOfValues{ScopeParamArrayOfStringsValue_FieldTerminalPath: *fp}
  4338  	switch fp.selector {
  4339  	case ScopeParamArrayOfStringsValue_FieldPathSelectorValues:
  4340  		return &ScopeParamArrayOfStringsValue_FieldTerminalPathArrayOfValues{ScopeParamArrayOfStringsValue_FieldTerminalPath: *fp, values: values.([][]string)}
  4341  	default:
  4342  		panic(fmt.Sprintf("Invalid selector for ScopeParam_ArrayOfStringsValue: %d", fp.selector))
  4343  	}
  4344  	return fpaov
  4345  }
  4346  
  4347  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  4348  	return fp.WithIArrayOfValues(values)
  4349  }
  4350  
  4351  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) WithIArrayItemValue(value interface{}) ScopeParamArrayOfStringsValue_FieldPathArrayItemValue {
  4352  	switch fp.selector {
  4353  	case ScopeParamArrayOfStringsValue_FieldPathSelectorValues:
  4354  		return &ScopeParamArrayOfStringsValue_FieldTerminalPathArrayItemValue{ScopeParamArrayOfStringsValue_FieldTerminalPath: *fp, value: value.(string)}
  4355  	default:
  4356  		panic(fmt.Sprintf("Invalid selector for ScopeParam_ArrayOfStringsValue: %d", fp.selector))
  4357  	}
  4358  }
  4359  
  4360  func (fp *ScopeParamArrayOfStringsValue_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  4361  	return fp.WithIArrayItemValue(value)
  4362  }
  4363  
  4364  // ScopeParamArrayOfStringsValue_FieldPathValue allows storing values for ArrayOfStringsValue fields according to their type
  4365  type ScopeParamArrayOfStringsValue_FieldPathValue interface {
  4366  	ScopeParamArrayOfStringsValue_FieldPath
  4367  	gotenobject.FieldPathValue
  4368  	SetTo(target **ScopeParam_ArrayOfStringsValue)
  4369  	CompareWith(*ScopeParam_ArrayOfStringsValue) (cmp int, comparable bool)
  4370  }
  4371  
  4372  func ParseScopeParamArrayOfStringsValue_FieldPathValue(pathStr, valueStr string) (ScopeParamArrayOfStringsValue_FieldPathValue, error) {
  4373  	fp, err := ParseScopeParamArrayOfStringsValue_FieldPath(pathStr)
  4374  	if err != nil {
  4375  		return nil, err
  4376  	}
  4377  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  4378  	if err != nil {
  4379  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ArrayOfStringsValue field path value from %s: %v", valueStr, err)
  4380  	}
  4381  	return fpv.(ScopeParamArrayOfStringsValue_FieldPathValue), nil
  4382  }
  4383  
  4384  func MustParseScopeParamArrayOfStringsValue_FieldPathValue(pathStr, valueStr string) ScopeParamArrayOfStringsValue_FieldPathValue {
  4385  	fpv, err := ParseScopeParamArrayOfStringsValue_FieldPathValue(pathStr, valueStr)
  4386  	if err != nil {
  4387  		panic(err)
  4388  	}
  4389  	return fpv
  4390  }
  4391  
  4392  type ScopeParamArrayOfStringsValue_FieldTerminalPathValue struct {
  4393  	ScopeParamArrayOfStringsValue_FieldTerminalPath
  4394  	value interface{}
  4395  }
  4396  
  4397  var _ ScopeParamArrayOfStringsValue_FieldPathValue = (*ScopeParamArrayOfStringsValue_FieldTerminalPathValue)(nil)
  4398  
  4399  // GetRawValue returns raw value stored under selected path for 'ArrayOfStringsValue' as interface{}
  4400  func (fpv *ScopeParamArrayOfStringsValue_FieldTerminalPathValue) GetRawValue() interface{} {
  4401  	return fpv.value
  4402  }
  4403  func (fpv *ScopeParamArrayOfStringsValue_FieldTerminalPathValue) AsValuesValue() ([]string, bool) {
  4404  	res, ok := fpv.value.([]string)
  4405  	return res, ok
  4406  }
  4407  
  4408  // SetTo stores value for selected field for object ArrayOfStringsValue
  4409  func (fpv *ScopeParamArrayOfStringsValue_FieldTerminalPathValue) SetTo(target **ScopeParam_ArrayOfStringsValue) {
  4410  	if *target == nil {
  4411  		*target = new(ScopeParam_ArrayOfStringsValue)
  4412  	}
  4413  	switch fpv.selector {
  4414  	case ScopeParamArrayOfStringsValue_FieldPathSelectorValues:
  4415  		(*target).Values = fpv.value.([]string)
  4416  	default:
  4417  		panic(fmt.Sprintf("Invalid selector for ScopeParam_ArrayOfStringsValue: %d", fpv.selector))
  4418  	}
  4419  }
  4420  
  4421  func (fpv *ScopeParamArrayOfStringsValue_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  4422  	typedObject := target.(*ScopeParam_ArrayOfStringsValue)
  4423  	fpv.SetTo(&typedObject)
  4424  }
  4425  
  4426  // CompareWith compares value in the 'ScopeParamArrayOfStringsValue_FieldTerminalPathValue' with the value under path in 'ScopeParam_ArrayOfStringsValue'.
  4427  func (fpv *ScopeParamArrayOfStringsValue_FieldTerminalPathValue) CompareWith(source *ScopeParam_ArrayOfStringsValue) (int, bool) {
  4428  	switch fpv.selector {
  4429  	case ScopeParamArrayOfStringsValue_FieldPathSelectorValues:
  4430  		return 0, false
  4431  	default:
  4432  		panic(fmt.Sprintf("Invalid selector for ScopeParam_ArrayOfStringsValue: %d", fpv.selector))
  4433  	}
  4434  }
  4435  
  4436  func (fpv *ScopeParamArrayOfStringsValue_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  4437  	return fpv.CompareWith(source.(*ScopeParam_ArrayOfStringsValue))
  4438  }
  4439  
  4440  // ScopeParamArrayOfStringsValue_FieldPathArrayItemValue allows storing single item in Path-specific values for ArrayOfStringsValue according to their type
  4441  // Present only for array (repeated) types.
  4442  type ScopeParamArrayOfStringsValue_FieldPathArrayItemValue interface {
  4443  	gotenobject.FieldPathArrayItemValue
  4444  	ScopeParamArrayOfStringsValue_FieldPath
  4445  	ContainsValue(*ScopeParam_ArrayOfStringsValue) bool
  4446  }
  4447  
  4448  // ParseScopeParamArrayOfStringsValue_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  4449  func ParseScopeParamArrayOfStringsValue_FieldPathArrayItemValue(pathStr, valueStr string) (ScopeParamArrayOfStringsValue_FieldPathArrayItemValue, error) {
  4450  	fp, err := ParseScopeParamArrayOfStringsValue_FieldPath(pathStr)
  4451  	if err != nil {
  4452  		return nil, err
  4453  	}
  4454  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  4455  	if err != nil {
  4456  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ArrayOfStringsValue field path array item value from %s: %v", valueStr, err)
  4457  	}
  4458  	return fpaiv.(ScopeParamArrayOfStringsValue_FieldPathArrayItemValue), nil
  4459  }
  4460  
  4461  func MustParseScopeParamArrayOfStringsValue_FieldPathArrayItemValue(pathStr, valueStr string) ScopeParamArrayOfStringsValue_FieldPathArrayItemValue {
  4462  	fpaiv, err := ParseScopeParamArrayOfStringsValue_FieldPathArrayItemValue(pathStr, valueStr)
  4463  	if err != nil {
  4464  		panic(err)
  4465  	}
  4466  	return fpaiv
  4467  }
  4468  
  4469  type ScopeParamArrayOfStringsValue_FieldTerminalPathArrayItemValue struct {
  4470  	ScopeParamArrayOfStringsValue_FieldTerminalPath
  4471  	value interface{}
  4472  }
  4473  
  4474  var _ ScopeParamArrayOfStringsValue_FieldPathArrayItemValue = (*ScopeParamArrayOfStringsValue_FieldTerminalPathArrayItemValue)(nil)
  4475  
  4476  // GetRawValue returns stored element value for array in object ScopeParam_ArrayOfStringsValue as interface{}
  4477  func (fpaiv *ScopeParamArrayOfStringsValue_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  4478  	return fpaiv.value
  4479  }
  4480  func (fpaiv *ScopeParamArrayOfStringsValue_FieldTerminalPathArrayItemValue) AsValuesItemValue() (string, bool) {
  4481  	res, ok := fpaiv.value.(string)
  4482  	return res, ok
  4483  }
  4484  
  4485  func (fpaiv *ScopeParamArrayOfStringsValue_FieldTerminalPathArrayItemValue) GetSingle(source *ScopeParam_ArrayOfStringsValue) (interface{}, bool) {
  4486  	return nil, false
  4487  }
  4488  
  4489  func (fpaiv *ScopeParamArrayOfStringsValue_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  4490  	return fpaiv.GetSingle(source.(*ScopeParam_ArrayOfStringsValue))
  4491  }
  4492  
  4493  // Contains returns a boolean indicating if value that is being held is present in given 'ArrayOfStringsValue'
  4494  func (fpaiv *ScopeParamArrayOfStringsValue_FieldTerminalPathArrayItemValue) ContainsValue(source *ScopeParam_ArrayOfStringsValue) bool {
  4495  	slice := fpaiv.ScopeParamArrayOfStringsValue_FieldTerminalPath.Get(source)
  4496  	for _, v := range slice {
  4497  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  4498  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  4499  				return true
  4500  			}
  4501  		} else if reflect.DeepEqual(v, fpaiv.value) {
  4502  			return true
  4503  		}
  4504  	}
  4505  	return false
  4506  }
  4507  
  4508  // ScopeParamArrayOfStringsValue_FieldPathArrayOfValues allows storing slice of values for ArrayOfStringsValue fields according to their type
  4509  type ScopeParamArrayOfStringsValue_FieldPathArrayOfValues interface {
  4510  	gotenobject.FieldPathArrayOfValues
  4511  	ScopeParamArrayOfStringsValue_FieldPath
  4512  }
  4513  
  4514  func ParseScopeParamArrayOfStringsValue_FieldPathArrayOfValues(pathStr, valuesStr string) (ScopeParamArrayOfStringsValue_FieldPathArrayOfValues, error) {
  4515  	fp, err := ParseScopeParamArrayOfStringsValue_FieldPath(pathStr)
  4516  	if err != nil {
  4517  		return nil, err
  4518  	}
  4519  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  4520  	if err != nil {
  4521  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ArrayOfStringsValue field path array of values from %s: %v", valuesStr, err)
  4522  	}
  4523  	return fpaov.(ScopeParamArrayOfStringsValue_FieldPathArrayOfValues), nil
  4524  }
  4525  
  4526  func MustParseScopeParamArrayOfStringsValue_FieldPathArrayOfValues(pathStr, valuesStr string) ScopeParamArrayOfStringsValue_FieldPathArrayOfValues {
  4527  	fpaov, err := ParseScopeParamArrayOfStringsValue_FieldPathArrayOfValues(pathStr, valuesStr)
  4528  	if err != nil {
  4529  		panic(err)
  4530  	}
  4531  	return fpaov
  4532  }
  4533  
  4534  type ScopeParamArrayOfStringsValue_FieldTerminalPathArrayOfValues struct {
  4535  	ScopeParamArrayOfStringsValue_FieldTerminalPath
  4536  	values interface{}
  4537  }
  4538  
  4539  var _ ScopeParamArrayOfStringsValue_FieldPathArrayOfValues = (*ScopeParamArrayOfStringsValue_FieldTerminalPathArrayOfValues)(nil)
  4540  
  4541  func (fpaov *ScopeParamArrayOfStringsValue_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  4542  	switch fpaov.selector {
  4543  	case ScopeParamArrayOfStringsValue_FieldPathSelectorValues:
  4544  		for _, v := range fpaov.values.([][]string) {
  4545  			values = append(values, v)
  4546  		}
  4547  	}
  4548  	return
  4549  }
  4550  func (fpaov *ScopeParamArrayOfStringsValue_FieldTerminalPathArrayOfValues) AsValuesArrayOfValues() ([][]string, bool) {
  4551  	res, ok := fpaov.values.([][]string)
  4552  	return res, ok
  4553  }
  4554  
  4555  // FieldPath provides implementation to handle
  4556  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  4557  type ScopeParamFromValue_FieldPath interface {
  4558  	gotenobject.FieldPath
  4559  	Selector() ScopeParamFromValue_FieldPathSelector
  4560  	Get(source *ScopeParam_FromValue) []interface{}
  4561  	GetSingle(source *ScopeParam_FromValue) (interface{}, bool)
  4562  	ClearValue(item *ScopeParam_FromValue)
  4563  
  4564  	// Those methods build corresponding ScopeParamFromValue_FieldPathValue
  4565  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  4566  	WithIValue(value interface{}) ScopeParamFromValue_FieldPathValue
  4567  	WithIArrayOfValues(values interface{}) ScopeParamFromValue_FieldPathArrayOfValues
  4568  	WithIArrayItemValue(value interface{}) ScopeParamFromValue_FieldPathArrayItemValue
  4569  }
  4570  
  4571  type ScopeParamFromValue_FieldPathSelector int32
  4572  
  4573  const (
  4574  	ScopeParamFromValue_FieldPathSelectorSource ScopeParamFromValue_FieldPathSelector = 0
  4575  	ScopeParamFromValue_FieldPathSelectorPath   ScopeParamFromValue_FieldPathSelector = 1
  4576  )
  4577  
  4578  func (s ScopeParamFromValue_FieldPathSelector) String() string {
  4579  	switch s {
  4580  	case ScopeParamFromValue_FieldPathSelectorSource:
  4581  		return "source"
  4582  	case ScopeParamFromValue_FieldPathSelectorPath:
  4583  		return "path"
  4584  	default:
  4585  		panic(fmt.Sprintf("Invalid selector for ScopeParam_FromValue: %d", s))
  4586  	}
  4587  }
  4588  
  4589  func BuildScopeParamFromValue_FieldPath(fp gotenobject.RawFieldPath) (ScopeParamFromValue_FieldPath, error) {
  4590  	if len(fp) == 0 {
  4591  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ScopeParam_FromValue")
  4592  	}
  4593  	if len(fp) == 1 {
  4594  		switch fp[0] {
  4595  		case "source":
  4596  			return &ScopeParamFromValue_FieldTerminalPath{selector: ScopeParamFromValue_FieldPathSelectorSource}, nil
  4597  		case "path":
  4598  			return &ScopeParamFromValue_FieldTerminalPath{selector: ScopeParamFromValue_FieldPathSelectorPath}, nil
  4599  		}
  4600  	}
  4601  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ScopeParam_FromValue", fp)
  4602  }
  4603  
  4604  func ParseScopeParamFromValue_FieldPath(rawField string) (ScopeParamFromValue_FieldPath, error) {
  4605  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  4606  	if err != nil {
  4607  		return nil, err
  4608  	}
  4609  	return BuildScopeParamFromValue_FieldPath(fp)
  4610  }
  4611  
  4612  func MustParseScopeParamFromValue_FieldPath(rawField string) ScopeParamFromValue_FieldPath {
  4613  	fp, err := ParseScopeParamFromValue_FieldPath(rawField)
  4614  	if err != nil {
  4615  		panic(err)
  4616  	}
  4617  	return fp
  4618  }
  4619  
  4620  type ScopeParamFromValue_FieldTerminalPath struct {
  4621  	selector ScopeParamFromValue_FieldPathSelector
  4622  }
  4623  
  4624  var _ ScopeParamFromValue_FieldPath = (*ScopeParamFromValue_FieldTerminalPath)(nil)
  4625  
  4626  func (fp *ScopeParamFromValue_FieldTerminalPath) Selector() ScopeParamFromValue_FieldPathSelector {
  4627  	return fp.selector
  4628  }
  4629  
  4630  // String returns path representation in proto convention
  4631  func (fp *ScopeParamFromValue_FieldTerminalPath) String() string {
  4632  	return fp.selector.String()
  4633  }
  4634  
  4635  // JSONString returns path representation is JSON convention
  4636  func (fp *ScopeParamFromValue_FieldTerminalPath) JSONString() string {
  4637  	return strcase.ToLowerCamel(fp.String())
  4638  }
  4639  
  4640  // Get returns all values pointed by specific field from source ScopeParam_FromValue
  4641  func (fp *ScopeParamFromValue_FieldTerminalPath) Get(source *ScopeParam_FromValue) (values []interface{}) {
  4642  	if source != nil {
  4643  		switch fp.selector {
  4644  		case ScopeParamFromValue_FieldPathSelectorSource:
  4645  			values = append(values, source.Source)
  4646  		case ScopeParamFromValue_FieldPathSelectorPath:
  4647  			values = append(values, source.Path)
  4648  		default:
  4649  			panic(fmt.Sprintf("Invalid selector for ScopeParam_FromValue: %d", fp.selector))
  4650  		}
  4651  	}
  4652  	return
  4653  }
  4654  
  4655  func (fp *ScopeParamFromValue_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  4656  	return fp.Get(source.(*ScopeParam_FromValue))
  4657  }
  4658  
  4659  // GetSingle returns value pointed by specific field of from source ScopeParam_FromValue
  4660  func (fp *ScopeParamFromValue_FieldTerminalPath) GetSingle(source *ScopeParam_FromValue) (interface{}, bool) {
  4661  	switch fp.selector {
  4662  	case ScopeParamFromValue_FieldPathSelectorSource:
  4663  		return source.GetSource(), source != nil
  4664  	case ScopeParamFromValue_FieldPathSelectorPath:
  4665  		return source.GetPath(), source != nil
  4666  	default:
  4667  		panic(fmt.Sprintf("Invalid selector for ScopeParam_FromValue: %d", fp.selector))
  4668  	}
  4669  }
  4670  
  4671  func (fp *ScopeParamFromValue_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  4672  	return fp.GetSingle(source.(*ScopeParam_FromValue))
  4673  }
  4674  
  4675  // GetDefault returns a default value of the field type
  4676  func (fp *ScopeParamFromValue_FieldTerminalPath) GetDefault() interface{} {
  4677  	switch fp.selector {
  4678  	case ScopeParamFromValue_FieldPathSelectorSource:
  4679  		return ScopeParam_FromValue_UNDEFINED
  4680  	case ScopeParamFromValue_FieldPathSelectorPath:
  4681  		return ""
  4682  	default:
  4683  		panic(fmt.Sprintf("Invalid selector for ScopeParam_FromValue: %d", fp.selector))
  4684  	}
  4685  }
  4686  
  4687  func (fp *ScopeParamFromValue_FieldTerminalPath) ClearValue(item *ScopeParam_FromValue) {
  4688  	if item != nil {
  4689  		switch fp.selector {
  4690  		case ScopeParamFromValue_FieldPathSelectorSource:
  4691  			item.Source = ScopeParam_FromValue_UNDEFINED
  4692  		case ScopeParamFromValue_FieldPathSelectorPath:
  4693  			item.Path = ""
  4694  		default:
  4695  			panic(fmt.Sprintf("Invalid selector for ScopeParam_FromValue: %d", fp.selector))
  4696  		}
  4697  	}
  4698  }
  4699  
  4700  func (fp *ScopeParamFromValue_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  4701  	fp.ClearValue(item.(*ScopeParam_FromValue))
  4702  }
  4703  
  4704  // IsLeaf - whether field path is holds simple value
  4705  func (fp *ScopeParamFromValue_FieldTerminalPath) IsLeaf() bool {
  4706  	return fp.selector == ScopeParamFromValue_FieldPathSelectorSource ||
  4707  		fp.selector == ScopeParamFromValue_FieldPathSelectorPath
  4708  }
  4709  
  4710  func (fp *ScopeParamFromValue_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  4711  	return []gotenobject.FieldPath{fp}
  4712  }
  4713  
  4714  func (fp *ScopeParamFromValue_FieldTerminalPath) WithIValue(value interface{}) ScopeParamFromValue_FieldPathValue {
  4715  	switch fp.selector {
  4716  	case ScopeParamFromValue_FieldPathSelectorSource:
  4717  		return &ScopeParamFromValue_FieldTerminalPathValue{ScopeParamFromValue_FieldTerminalPath: *fp, value: value.(ScopeParam_FromValue_Source)}
  4718  	case ScopeParamFromValue_FieldPathSelectorPath:
  4719  		return &ScopeParamFromValue_FieldTerminalPathValue{ScopeParamFromValue_FieldTerminalPath: *fp, value: value.(string)}
  4720  	default:
  4721  		panic(fmt.Sprintf("Invalid selector for ScopeParam_FromValue: %d", fp.selector))
  4722  	}
  4723  }
  4724  
  4725  func (fp *ScopeParamFromValue_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  4726  	return fp.WithIValue(value)
  4727  }
  4728  
  4729  func (fp *ScopeParamFromValue_FieldTerminalPath) WithIArrayOfValues(values interface{}) ScopeParamFromValue_FieldPathArrayOfValues {
  4730  	fpaov := &ScopeParamFromValue_FieldTerminalPathArrayOfValues{ScopeParamFromValue_FieldTerminalPath: *fp}
  4731  	switch fp.selector {
  4732  	case ScopeParamFromValue_FieldPathSelectorSource:
  4733  		return &ScopeParamFromValue_FieldTerminalPathArrayOfValues{ScopeParamFromValue_FieldTerminalPath: *fp, values: values.([]ScopeParam_FromValue_Source)}
  4734  	case ScopeParamFromValue_FieldPathSelectorPath:
  4735  		return &ScopeParamFromValue_FieldTerminalPathArrayOfValues{ScopeParamFromValue_FieldTerminalPath: *fp, values: values.([]string)}
  4736  	default:
  4737  		panic(fmt.Sprintf("Invalid selector for ScopeParam_FromValue: %d", fp.selector))
  4738  	}
  4739  	return fpaov
  4740  }
  4741  
  4742  func (fp *ScopeParamFromValue_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  4743  	return fp.WithIArrayOfValues(values)
  4744  }
  4745  
  4746  func (fp *ScopeParamFromValue_FieldTerminalPath) WithIArrayItemValue(value interface{}) ScopeParamFromValue_FieldPathArrayItemValue {
  4747  	switch fp.selector {
  4748  	default:
  4749  		panic(fmt.Sprintf("Invalid selector for ScopeParam_FromValue: %d", fp.selector))
  4750  	}
  4751  }
  4752  
  4753  func (fp *ScopeParamFromValue_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  4754  	return fp.WithIArrayItemValue(value)
  4755  }
  4756  
  4757  // ScopeParamFromValue_FieldPathValue allows storing values for FromValue fields according to their type
  4758  type ScopeParamFromValue_FieldPathValue interface {
  4759  	ScopeParamFromValue_FieldPath
  4760  	gotenobject.FieldPathValue
  4761  	SetTo(target **ScopeParam_FromValue)
  4762  	CompareWith(*ScopeParam_FromValue) (cmp int, comparable bool)
  4763  }
  4764  
  4765  func ParseScopeParamFromValue_FieldPathValue(pathStr, valueStr string) (ScopeParamFromValue_FieldPathValue, error) {
  4766  	fp, err := ParseScopeParamFromValue_FieldPath(pathStr)
  4767  	if err != nil {
  4768  		return nil, err
  4769  	}
  4770  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  4771  	if err != nil {
  4772  		return nil, status.Errorf(codes.InvalidArgument, "error parsing FromValue field path value from %s: %v", valueStr, err)
  4773  	}
  4774  	return fpv.(ScopeParamFromValue_FieldPathValue), nil
  4775  }
  4776  
  4777  func MustParseScopeParamFromValue_FieldPathValue(pathStr, valueStr string) ScopeParamFromValue_FieldPathValue {
  4778  	fpv, err := ParseScopeParamFromValue_FieldPathValue(pathStr, valueStr)
  4779  	if err != nil {
  4780  		panic(err)
  4781  	}
  4782  	return fpv
  4783  }
  4784  
  4785  type ScopeParamFromValue_FieldTerminalPathValue struct {
  4786  	ScopeParamFromValue_FieldTerminalPath
  4787  	value interface{}
  4788  }
  4789  
  4790  var _ ScopeParamFromValue_FieldPathValue = (*ScopeParamFromValue_FieldTerminalPathValue)(nil)
  4791  
  4792  // GetRawValue returns raw value stored under selected path for 'FromValue' as interface{}
  4793  func (fpv *ScopeParamFromValue_FieldTerminalPathValue) GetRawValue() interface{} {
  4794  	return fpv.value
  4795  }
  4796  func (fpv *ScopeParamFromValue_FieldTerminalPathValue) AsSourceValue() (ScopeParam_FromValue_Source, bool) {
  4797  	res, ok := fpv.value.(ScopeParam_FromValue_Source)
  4798  	return res, ok
  4799  }
  4800  func (fpv *ScopeParamFromValue_FieldTerminalPathValue) AsPathValue() (string, bool) {
  4801  	res, ok := fpv.value.(string)
  4802  	return res, ok
  4803  }
  4804  
  4805  // SetTo stores value for selected field for object FromValue
  4806  func (fpv *ScopeParamFromValue_FieldTerminalPathValue) SetTo(target **ScopeParam_FromValue) {
  4807  	if *target == nil {
  4808  		*target = new(ScopeParam_FromValue)
  4809  	}
  4810  	switch fpv.selector {
  4811  	case ScopeParamFromValue_FieldPathSelectorSource:
  4812  		(*target).Source = fpv.value.(ScopeParam_FromValue_Source)
  4813  	case ScopeParamFromValue_FieldPathSelectorPath:
  4814  		(*target).Path = fpv.value.(string)
  4815  	default:
  4816  		panic(fmt.Sprintf("Invalid selector for ScopeParam_FromValue: %d", fpv.selector))
  4817  	}
  4818  }
  4819  
  4820  func (fpv *ScopeParamFromValue_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  4821  	typedObject := target.(*ScopeParam_FromValue)
  4822  	fpv.SetTo(&typedObject)
  4823  }
  4824  
  4825  // CompareWith compares value in the 'ScopeParamFromValue_FieldTerminalPathValue' with the value under path in 'ScopeParam_FromValue'.
  4826  func (fpv *ScopeParamFromValue_FieldTerminalPathValue) CompareWith(source *ScopeParam_FromValue) (int, bool) {
  4827  	switch fpv.selector {
  4828  	case ScopeParamFromValue_FieldPathSelectorSource:
  4829  		leftValue := fpv.value.(ScopeParam_FromValue_Source)
  4830  		rightValue := source.GetSource()
  4831  		if (leftValue) == (rightValue) {
  4832  			return 0, true
  4833  		} else if (leftValue) < (rightValue) {
  4834  			return -1, true
  4835  		} else {
  4836  			return 1, true
  4837  		}
  4838  	case ScopeParamFromValue_FieldPathSelectorPath:
  4839  		leftValue := fpv.value.(string)
  4840  		rightValue := source.GetPath()
  4841  		if (leftValue) == (rightValue) {
  4842  			return 0, true
  4843  		} else if (leftValue) < (rightValue) {
  4844  			return -1, true
  4845  		} else {
  4846  			return 1, true
  4847  		}
  4848  	default:
  4849  		panic(fmt.Sprintf("Invalid selector for ScopeParam_FromValue: %d", fpv.selector))
  4850  	}
  4851  }
  4852  
  4853  func (fpv *ScopeParamFromValue_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  4854  	return fpv.CompareWith(source.(*ScopeParam_FromValue))
  4855  }
  4856  
  4857  // ScopeParamFromValue_FieldPathArrayItemValue allows storing single item in Path-specific values for FromValue according to their type
  4858  // Present only for array (repeated) types.
  4859  type ScopeParamFromValue_FieldPathArrayItemValue interface {
  4860  	gotenobject.FieldPathArrayItemValue
  4861  	ScopeParamFromValue_FieldPath
  4862  	ContainsValue(*ScopeParam_FromValue) bool
  4863  }
  4864  
  4865  // ParseScopeParamFromValue_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  4866  func ParseScopeParamFromValue_FieldPathArrayItemValue(pathStr, valueStr string) (ScopeParamFromValue_FieldPathArrayItemValue, error) {
  4867  	fp, err := ParseScopeParamFromValue_FieldPath(pathStr)
  4868  	if err != nil {
  4869  		return nil, err
  4870  	}
  4871  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  4872  	if err != nil {
  4873  		return nil, status.Errorf(codes.InvalidArgument, "error parsing FromValue field path array item value from %s: %v", valueStr, err)
  4874  	}
  4875  	return fpaiv.(ScopeParamFromValue_FieldPathArrayItemValue), nil
  4876  }
  4877  
  4878  func MustParseScopeParamFromValue_FieldPathArrayItemValue(pathStr, valueStr string) ScopeParamFromValue_FieldPathArrayItemValue {
  4879  	fpaiv, err := ParseScopeParamFromValue_FieldPathArrayItemValue(pathStr, valueStr)
  4880  	if err != nil {
  4881  		panic(err)
  4882  	}
  4883  	return fpaiv
  4884  }
  4885  
  4886  type ScopeParamFromValue_FieldTerminalPathArrayItemValue struct {
  4887  	ScopeParamFromValue_FieldTerminalPath
  4888  	value interface{}
  4889  }
  4890  
  4891  var _ ScopeParamFromValue_FieldPathArrayItemValue = (*ScopeParamFromValue_FieldTerminalPathArrayItemValue)(nil)
  4892  
  4893  // GetRawValue returns stored element value for array in object ScopeParam_FromValue as interface{}
  4894  func (fpaiv *ScopeParamFromValue_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  4895  	return fpaiv.value
  4896  }
  4897  
  4898  func (fpaiv *ScopeParamFromValue_FieldTerminalPathArrayItemValue) GetSingle(source *ScopeParam_FromValue) (interface{}, bool) {
  4899  	return nil, false
  4900  }
  4901  
  4902  func (fpaiv *ScopeParamFromValue_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  4903  	return fpaiv.GetSingle(source.(*ScopeParam_FromValue))
  4904  }
  4905  
  4906  // Contains returns a boolean indicating if value that is being held is present in given 'FromValue'
  4907  func (fpaiv *ScopeParamFromValue_FieldTerminalPathArrayItemValue) ContainsValue(source *ScopeParam_FromValue) bool {
  4908  	slice := fpaiv.ScopeParamFromValue_FieldTerminalPath.Get(source)
  4909  	for _, v := range slice {
  4910  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  4911  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  4912  				return true
  4913  			}
  4914  		} else if reflect.DeepEqual(v, fpaiv.value) {
  4915  			return true
  4916  		}
  4917  	}
  4918  	return false
  4919  }
  4920  
  4921  // ScopeParamFromValue_FieldPathArrayOfValues allows storing slice of values for FromValue fields according to their type
  4922  type ScopeParamFromValue_FieldPathArrayOfValues interface {
  4923  	gotenobject.FieldPathArrayOfValues
  4924  	ScopeParamFromValue_FieldPath
  4925  }
  4926  
  4927  func ParseScopeParamFromValue_FieldPathArrayOfValues(pathStr, valuesStr string) (ScopeParamFromValue_FieldPathArrayOfValues, error) {
  4928  	fp, err := ParseScopeParamFromValue_FieldPath(pathStr)
  4929  	if err != nil {
  4930  		return nil, err
  4931  	}
  4932  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  4933  	if err != nil {
  4934  		return nil, status.Errorf(codes.InvalidArgument, "error parsing FromValue field path array of values from %s: %v", valuesStr, err)
  4935  	}
  4936  	return fpaov.(ScopeParamFromValue_FieldPathArrayOfValues), nil
  4937  }
  4938  
  4939  func MustParseScopeParamFromValue_FieldPathArrayOfValues(pathStr, valuesStr string) ScopeParamFromValue_FieldPathArrayOfValues {
  4940  	fpaov, err := ParseScopeParamFromValue_FieldPathArrayOfValues(pathStr, valuesStr)
  4941  	if err != nil {
  4942  		panic(err)
  4943  	}
  4944  	return fpaov
  4945  }
  4946  
  4947  type ScopeParamFromValue_FieldTerminalPathArrayOfValues struct {
  4948  	ScopeParamFromValue_FieldTerminalPath
  4949  	values interface{}
  4950  }
  4951  
  4952  var _ ScopeParamFromValue_FieldPathArrayOfValues = (*ScopeParamFromValue_FieldTerminalPathArrayOfValues)(nil)
  4953  
  4954  func (fpaov *ScopeParamFromValue_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  4955  	switch fpaov.selector {
  4956  	case ScopeParamFromValue_FieldPathSelectorSource:
  4957  		for _, v := range fpaov.values.([]ScopeParam_FromValue_Source) {
  4958  			values = append(values, v)
  4959  		}
  4960  	case ScopeParamFromValue_FieldPathSelectorPath:
  4961  		for _, v := range fpaov.values.([]string) {
  4962  			values = append(values, v)
  4963  		}
  4964  	}
  4965  	return
  4966  }
  4967  func (fpaov *ScopeParamFromValue_FieldTerminalPathArrayOfValues) AsSourceArrayOfValues() ([]ScopeParam_FromValue_Source, bool) {
  4968  	res, ok := fpaov.values.([]ScopeParam_FromValue_Source)
  4969  	return res, ok
  4970  }
  4971  func (fpaov *ScopeParamFromValue_FieldTerminalPathArrayOfValues) AsPathArrayOfValues() ([]string, bool) {
  4972  	res, ok := fpaov.values.([]string)
  4973  	return res, ok
  4974  }