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

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