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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/iam/proto/v1/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_FieldPathSelectorMetadata      User_FieldPathSelector = 1
    75  	User_FieldPathSelectorFullName      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  	User_FieldPathSelectorCtrlStatus    User_FieldPathSelector = 8
    82  )
    83  
    84  func (s User_FieldPathSelector) String() string {
    85  	switch s {
    86  	case User_FieldPathSelectorName:
    87  		return "name"
    88  	case User_FieldPathSelectorMetadata:
    89  		return "metadata"
    90  	case User_FieldPathSelectorFullName:
    91  		return "full_name"
    92  	case User_FieldPathSelectorEmail:
    93  		return "email"
    94  	case User_FieldPathSelectorEmailVerified:
    95  		return "email_verified"
    96  	case User_FieldPathSelectorAuthInfo:
    97  		return "auth_info"
    98  	case User_FieldPathSelectorSettings:
    99  		return "settings"
   100  	case User_FieldPathSelectorRefreshedTime:
   101  		return "refreshed_time"
   102  	case User_FieldPathSelectorCtrlStatus:
   103  		return "ctrl_status"
   104  	default:
   105  		panic(fmt.Sprintf("Invalid selector for User: %d", s))
   106  	}
   107  }
   108  
   109  func BuildUser_FieldPath(fp gotenobject.RawFieldPath) (User_FieldPath, error) {
   110  	if len(fp) == 0 {
   111  		return nil, status.Error(codes.InvalidArgument, "empty field path for object User")
   112  	}
   113  	if len(fp) == 1 {
   114  		switch fp[0] {
   115  		case "name":
   116  			return &User_FieldTerminalPath{selector: User_FieldPathSelectorName}, nil
   117  		case "metadata":
   118  			return &User_FieldTerminalPath{selector: User_FieldPathSelectorMetadata}, nil
   119  		case "full_name", "fullName", "full-name":
   120  			return &User_FieldTerminalPath{selector: User_FieldPathSelectorFullName}, nil
   121  		case "email":
   122  			return &User_FieldTerminalPath{selector: User_FieldPathSelectorEmail}, nil
   123  		case "email_verified", "emailVerified", "email-verified":
   124  			return &User_FieldTerminalPath{selector: User_FieldPathSelectorEmailVerified}, nil
   125  		case "auth_info", "authInfo", "auth-info":
   126  			return &User_FieldTerminalPath{selector: User_FieldPathSelectorAuthInfo}, nil
   127  		case "settings":
   128  			return &User_FieldTerminalPath{selector: User_FieldPathSelectorSettings}, nil
   129  		case "refreshed_time", "refreshedTime", "refreshed-time":
   130  			return &User_FieldTerminalPath{selector: User_FieldPathSelectorRefreshedTime}, nil
   131  		case "ctrl_status", "ctrlStatus", "ctrl-status":
   132  			return &User_FieldTerminalPath{selector: User_FieldPathSelectorCtrlStatus}, nil
   133  		}
   134  	} else {
   135  		switch fp[0] {
   136  		case "metadata":
   137  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   138  				return nil, err
   139  			} else {
   140  				return &User_FieldSubPath{selector: User_FieldPathSelectorMetadata, subPath: subpath}, nil
   141  			}
   142  		case "auth_info", "authInfo", "auth-info":
   143  			if subpath, err := BuildUserAuthInfo_FieldPath(fp[1:]); err != nil {
   144  				return nil, err
   145  			} else {
   146  				return &User_FieldSubPath{selector: User_FieldPathSelectorAuthInfo, subPath: subpath}, nil
   147  			}
   148  		case "ctrl_status", "ctrlStatus", "ctrl-status":
   149  			if subpath, err := BuildUserWorkStatus_FieldPath(fp[1:]); err != nil {
   150  				return nil, err
   151  			} else {
   152  				return &User_FieldSubPath{selector: User_FieldPathSelectorCtrlStatus, subPath: subpath}, nil
   153  			}
   154  		case "settings":
   155  			if len(fp) > 2 {
   156  				return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object User)", fp)
   157  			}
   158  			return &User_FieldPathMap{selector: User_FieldPathSelectorSettings, key: fp[1]}, nil
   159  		}
   160  	}
   161  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object User", fp)
   162  }
   163  
   164  func ParseUser_FieldPath(rawField string) (User_FieldPath, error) {
   165  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   166  	if err != nil {
   167  		return nil, err
   168  	}
   169  	return BuildUser_FieldPath(fp)
   170  }
   171  
   172  func MustParseUser_FieldPath(rawField string) User_FieldPath {
   173  	fp, err := ParseUser_FieldPath(rawField)
   174  	if err != nil {
   175  		panic(err)
   176  	}
   177  	return fp
   178  }
   179  
   180  type User_FieldTerminalPath struct {
   181  	selector User_FieldPathSelector
   182  }
   183  
   184  var _ User_FieldPath = (*User_FieldTerminalPath)(nil)
   185  
   186  func (fp *User_FieldTerminalPath) Selector() User_FieldPathSelector {
   187  	return fp.selector
   188  }
   189  
   190  // String returns path representation in proto convention
   191  func (fp *User_FieldTerminalPath) String() string {
   192  	return fp.selector.String()
   193  }
   194  
   195  // JSONString returns path representation is JSON convention
   196  func (fp *User_FieldTerminalPath) JSONString() string {
   197  	return strcase.ToLowerCamel(fp.String())
   198  }
   199  
   200  // Get returns all values pointed by specific field from source User
   201  func (fp *User_FieldTerminalPath) Get(source *User) (values []interface{}) {
   202  	if source != nil {
   203  		switch fp.selector {
   204  		case User_FieldPathSelectorName:
   205  			if source.Name != nil {
   206  				values = append(values, source.Name)
   207  			}
   208  		case User_FieldPathSelectorMetadata:
   209  			if source.Metadata != nil {
   210  				values = append(values, source.Metadata)
   211  			}
   212  		case User_FieldPathSelectorFullName:
   213  			values = append(values, source.FullName)
   214  		case User_FieldPathSelectorEmail:
   215  			values = append(values, source.Email)
   216  		case User_FieldPathSelectorEmailVerified:
   217  			values = append(values, source.EmailVerified)
   218  		case User_FieldPathSelectorAuthInfo:
   219  			if source.AuthInfo != nil {
   220  				values = append(values, source.AuthInfo)
   221  			}
   222  		case User_FieldPathSelectorSettings:
   223  			values = append(values, source.Settings)
   224  		case User_FieldPathSelectorRefreshedTime:
   225  			if source.RefreshedTime != nil {
   226  				values = append(values, source.RefreshedTime)
   227  			}
   228  		case User_FieldPathSelectorCtrlStatus:
   229  			if source.CtrlStatus != nil {
   230  				values = append(values, source.CtrlStatus)
   231  			}
   232  		default:
   233  			panic(fmt.Sprintf("Invalid selector for User: %d", fp.selector))
   234  		}
   235  	}
   236  	return
   237  }
   238  
   239  func (fp *User_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   240  	return fp.Get(source.(*User))
   241  }
   242  
   243  // GetSingle returns value pointed by specific field of from source User
   244  func (fp *User_FieldTerminalPath) GetSingle(source *User) (interface{}, bool) {
   245  	switch fp.selector {
   246  	case User_FieldPathSelectorName:
   247  		res := source.GetName()
   248  		return res, res != nil
   249  	case User_FieldPathSelectorMetadata:
   250  		res := source.GetMetadata()
   251  		return res, res != nil
   252  	case User_FieldPathSelectorFullName:
   253  		return source.GetFullName(), source != nil
   254  	case User_FieldPathSelectorEmail:
   255  		return source.GetEmail(), source != nil
   256  	case User_FieldPathSelectorEmailVerified:
   257  		return source.GetEmailVerified(), source != nil
   258  	case User_FieldPathSelectorAuthInfo:
   259  		res := source.GetAuthInfo()
   260  		return res, res != nil
   261  	case User_FieldPathSelectorSettings:
   262  		res := source.GetSettings()
   263  		return res, res != nil
   264  	case User_FieldPathSelectorRefreshedTime:
   265  		res := source.GetRefreshedTime()
   266  		return res, res != nil
   267  	case User_FieldPathSelectorCtrlStatus:
   268  		res := source.GetCtrlStatus()
   269  		return res, res != nil
   270  	default:
   271  		panic(fmt.Sprintf("Invalid selector for User: %d", fp.selector))
   272  	}
   273  }
   274  
   275  func (fp *User_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   276  	return fp.GetSingle(source.(*User))
   277  }
   278  
   279  // GetDefault returns a default value of the field type
   280  func (fp *User_FieldTerminalPath) GetDefault() interface{} {
   281  	switch fp.selector {
   282  	case User_FieldPathSelectorName:
   283  		return (*Name)(nil)
   284  	case User_FieldPathSelectorMetadata:
   285  		return (*meta.Meta)(nil)
   286  	case User_FieldPathSelectorFullName:
   287  		return ""
   288  	case User_FieldPathSelectorEmail:
   289  		return ""
   290  	case User_FieldPathSelectorEmailVerified:
   291  		return false
   292  	case User_FieldPathSelectorAuthInfo:
   293  		return (*User_AuthInfo)(nil)
   294  	case User_FieldPathSelectorSettings:
   295  		return (map[string]string)(nil)
   296  	case User_FieldPathSelectorRefreshedTime:
   297  		return (*timestamppb.Timestamp)(nil)
   298  	case User_FieldPathSelectorCtrlStatus:
   299  		return (*User_WorkStatus)(nil)
   300  	default:
   301  		panic(fmt.Sprintf("Invalid selector for User: %d", fp.selector))
   302  	}
   303  }
   304  
   305  func (fp *User_FieldTerminalPath) ClearValue(item *User) {
   306  	if item != nil {
   307  		switch fp.selector {
   308  		case User_FieldPathSelectorName:
   309  			item.Name = nil
   310  		case User_FieldPathSelectorMetadata:
   311  			item.Metadata = nil
   312  		case User_FieldPathSelectorFullName:
   313  			item.FullName = ""
   314  		case User_FieldPathSelectorEmail:
   315  			item.Email = ""
   316  		case User_FieldPathSelectorEmailVerified:
   317  			item.EmailVerified = false
   318  		case User_FieldPathSelectorAuthInfo:
   319  			item.AuthInfo = nil
   320  		case User_FieldPathSelectorSettings:
   321  			item.Settings = nil
   322  		case User_FieldPathSelectorRefreshedTime:
   323  			item.RefreshedTime = nil
   324  		case User_FieldPathSelectorCtrlStatus:
   325  			item.CtrlStatus = nil
   326  		default:
   327  			panic(fmt.Sprintf("Invalid selector for User: %d", fp.selector))
   328  		}
   329  	}
   330  }
   331  
   332  func (fp *User_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   333  	fp.ClearValue(item.(*User))
   334  }
   335  
   336  // IsLeaf - whether field path is holds simple value
   337  func (fp *User_FieldTerminalPath) IsLeaf() bool {
   338  	return fp.selector == User_FieldPathSelectorName ||
   339  		fp.selector == User_FieldPathSelectorFullName ||
   340  		fp.selector == User_FieldPathSelectorEmail ||
   341  		fp.selector == User_FieldPathSelectorEmailVerified ||
   342  		fp.selector == User_FieldPathSelectorSettings ||
   343  		fp.selector == User_FieldPathSelectorRefreshedTime
   344  }
   345  
   346  func (fp *User_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   347  	return []gotenobject.FieldPath{fp}
   348  }
   349  
   350  func (fp *User_FieldTerminalPath) WithIValue(value interface{}) User_FieldPathValue {
   351  	switch fp.selector {
   352  	case User_FieldPathSelectorName:
   353  		return &User_FieldTerminalPathValue{User_FieldTerminalPath: *fp, value: value.(*Name)}
   354  	case User_FieldPathSelectorMetadata:
   355  		return &User_FieldTerminalPathValue{User_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   356  	case User_FieldPathSelectorFullName:
   357  		return &User_FieldTerminalPathValue{User_FieldTerminalPath: *fp, value: value.(string)}
   358  	case User_FieldPathSelectorEmail:
   359  		return &User_FieldTerminalPathValue{User_FieldTerminalPath: *fp, value: value.(string)}
   360  	case User_FieldPathSelectorEmailVerified:
   361  		return &User_FieldTerminalPathValue{User_FieldTerminalPath: *fp, value: value.(bool)}
   362  	case User_FieldPathSelectorAuthInfo:
   363  		return &User_FieldTerminalPathValue{User_FieldTerminalPath: *fp, value: value.(*User_AuthInfo)}
   364  	case User_FieldPathSelectorSettings:
   365  		return &User_FieldTerminalPathValue{User_FieldTerminalPath: *fp, value: value.(map[string]string)}
   366  	case User_FieldPathSelectorRefreshedTime:
   367  		return &User_FieldTerminalPathValue{User_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)}
   368  	case User_FieldPathSelectorCtrlStatus:
   369  		return &User_FieldTerminalPathValue{User_FieldTerminalPath: *fp, value: value.(*User_WorkStatus)}
   370  	default:
   371  		panic(fmt.Sprintf("Invalid selector for User: %d", fp.selector))
   372  	}
   373  }
   374  
   375  func (fp *User_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   376  	return fp.WithIValue(value)
   377  }
   378  
   379  func (fp *User_FieldTerminalPath) WithIArrayOfValues(values interface{}) User_FieldPathArrayOfValues {
   380  	fpaov := &User_FieldTerminalPathArrayOfValues{User_FieldTerminalPath: *fp}
   381  	switch fp.selector {
   382  	case User_FieldPathSelectorName:
   383  		return &User_FieldTerminalPathArrayOfValues{User_FieldTerminalPath: *fp, values: values.([]*Name)}
   384  	case User_FieldPathSelectorMetadata:
   385  		return &User_FieldTerminalPathArrayOfValues{User_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   386  	case User_FieldPathSelectorFullName:
   387  		return &User_FieldTerminalPathArrayOfValues{User_FieldTerminalPath: *fp, values: values.([]string)}
   388  	case User_FieldPathSelectorEmail:
   389  		return &User_FieldTerminalPathArrayOfValues{User_FieldTerminalPath: *fp, values: values.([]string)}
   390  	case User_FieldPathSelectorEmailVerified:
   391  		return &User_FieldTerminalPathArrayOfValues{User_FieldTerminalPath: *fp, values: values.([]bool)}
   392  	case User_FieldPathSelectorAuthInfo:
   393  		return &User_FieldTerminalPathArrayOfValues{User_FieldTerminalPath: *fp, values: values.([]*User_AuthInfo)}
   394  	case User_FieldPathSelectorSettings:
   395  		return &User_FieldTerminalPathArrayOfValues{User_FieldTerminalPath: *fp, values: values.([]map[string]string)}
   396  	case User_FieldPathSelectorRefreshedTime:
   397  		return &User_FieldTerminalPathArrayOfValues{User_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)}
   398  	case User_FieldPathSelectorCtrlStatus:
   399  		return &User_FieldTerminalPathArrayOfValues{User_FieldTerminalPath: *fp, values: values.([]*User_WorkStatus)}
   400  	default:
   401  		panic(fmt.Sprintf("Invalid selector for User: %d", fp.selector))
   402  	}
   403  	return fpaov
   404  }
   405  
   406  func (fp *User_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   407  	return fp.WithIArrayOfValues(values)
   408  }
   409  
   410  func (fp *User_FieldTerminalPath) WithIArrayItemValue(value interface{}) User_FieldPathArrayItemValue {
   411  	switch fp.selector {
   412  	default:
   413  		panic(fmt.Sprintf("Invalid selector for User: %d", fp.selector))
   414  	}
   415  }
   416  
   417  func (fp *User_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   418  	return fp.WithIArrayItemValue(value)
   419  }
   420  
   421  // FieldPath for map type with additional Key information
   422  type User_FieldPathMap struct {
   423  	key      string
   424  	selector User_FieldPathSelector
   425  }
   426  
   427  var _ User_FieldPath = (*User_FieldPathMap)(nil)
   428  
   429  func (fpm *User_FieldPathMap) Selector() User_FieldPathSelector {
   430  	return fpm.selector
   431  }
   432  
   433  func (fpm *User_FieldPathMap) Key() string {
   434  	return fpm.key
   435  }
   436  
   437  // String returns path representation in proto convention
   438  func (fpm *User_FieldPathMap) String() string {
   439  	return fpm.selector.String() + "." + fpm.key
   440  }
   441  
   442  // JSONString returns path representation is JSON convention. Note that map keys are not transformed
   443  func (fpm *User_FieldPathMap) JSONString() string {
   444  	return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key
   445  }
   446  
   447  // Get returns all values pointed by selected field map key from source User
   448  func (fpm *User_FieldPathMap) Get(source *User) (values []interface{}) {
   449  	switch fpm.selector {
   450  	case User_FieldPathSelectorSettings:
   451  		if value, ok := source.GetSettings()[fpm.key]; ok {
   452  			values = append(values, value)
   453  		}
   454  	default:
   455  		panic(fmt.Sprintf("Invalid selector for User: %d", fpm.selector))
   456  	}
   457  	return
   458  }
   459  
   460  func (fpm *User_FieldPathMap) GetRaw(source proto.Message) []interface{} {
   461  	return fpm.Get(source.(*User))
   462  }
   463  
   464  // GetSingle returns value by selected field map key from source User
   465  func (fpm *User_FieldPathMap) GetSingle(source *User) (interface{}, bool) {
   466  	switch fpm.selector {
   467  	case User_FieldPathSelectorSettings:
   468  		res, ok := source.GetSettings()[fpm.key]
   469  		return res, ok
   470  	default:
   471  		panic(fmt.Sprintf("Invalid selector for User: %d", fpm.selector))
   472  	}
   473  }
   474  
   475  func (fpm *User_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) {
   476  	return fpm.GetSingle(source.(*User))
   477  }
   478  
   479  // GetDefault returns a default value of the field type
   480  func (fpm *User_FieldPathMap) GetDefault() interface{} {
   481  	switch fpm.selector {
   482  	case User_FieldPathSelectorSettings:
   483  		var v string
   484  		return v
   485  	default:
   486  		panic(fmt.Sprintf("Invalid selector for User: %d", fpm.selector))
   487  	}
   488  }
   489  
   490  func (fpm *User_FieldPathMap) ClearValue(item *User) {
   491  	if item != nil {
   492  		switch fpm.selector {
   493  		case User_FieldPathSelectorSettings:
   494  			delete(item.Settings, fpm.key)
   495  		default:
   496  			panic(fmt.Sprintf("Invalid selector for User: %d", fpm.selector))
   497  		}
   498  	}
   499  }
   500  
   501  func (fpm *User_FieldPathMap) ClearValueRaw(item proto.Message) {
   502  	fpm.ClearValue(item.(*User))
   503  }
   504  
   505  // IsLeaf - whether field path is holds simple value
   506  func (fpm *User_FieldPathMap) IsLeaf() bool {
   507  	switch fpm.selector {
   508  	case User_FieldPathSelectorSettings:
   509  		return true
   510  	default:
   511  		panic(fmt.Sprintf("Invalid selector for User: %d", fpm.selector))
   512  	}
   513  }
   514  
   515  func (fpm *User_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   516  	return []gotenobject.FieldPath{fpm}
   517  }
   518  
   519  func (fpm *User_FieldPathMap) WithIValue(value interface{}) User_FieldPathValue {
   520  	switch fpm.selector {
   521  	case User_FieldPathSelectorSettings:
   522  		return &User_FieldPathMapValue{User_FieldPathMap: *fpm, value: value.(string)}
   523  	default:
   524  		panic(fmt.Sprintf("Invalid selector for User: %d", fpm.selector))
   525  	}
   526  }
   527  
   528  func (fpm *User_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   529  	return fpm.WithIValue(value)
   530  }
   531  
   532  func (fpm *User_FieldPathMap) WithIArrayOfValues(values interface{}) User_FieldPathArrayOfValues {
   533  	switch fpm.selector {
   534  	case User_FieldPathSelectorSettings:
   535  		return &User_FieldPathMapArrayOfValues{User_FieldPathMap: *fpm, values: values.([]string)}
   536  	default:
   537  		panic(fmt.Sprintf("Invalid selector for User: %d", fpm.selector))
   538  	}
   539  }
   540  
   541  func (fpm *User_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   542  	return fpm.WithIArrayOfValues(values)
   543  }
   544  
   545  func (fpm *User_FieldPathMap) WithIArrayItemValue(value interface{}) User_FieldPathArrayItemValue {
   546  	panic("Cannot create array item value from map fieldpath")
   547  }
   548  
   549  func (fpm *User_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   550  	return fpm.WithIArrayItemValue(value)
   551  }
   552  
   553  type User_FieldSubPath struct {
   554  	selector User_FieldPathSelector
   555  	subPath  gotenobject.FieldPath
   556  }
   557  
   558  var _ User_FieldPath = (*User_FieldSubPath)(nil)
   559  
   560  func (fps *User_FieldSubPath) Selector() User_FieldPathSelector {
   561  	return fps.selector
   562  }
   563  func (fps *User_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   564  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   565  	return res, ok
   566  }
   567  func (fps *User_FieldSubPath) AsAuthInfoSubPath() (UserAuthInfo_FieldPath, bool) {
   568  	res, ok := fps.subPath.(UserAuthInfo_FieldPath)
   569  	return res, ok
   570  }
   571  func (fps *User_FieldSubPath) AsCtrlStatusSubPath() (UserWorkStatus_FieldPath, bool) {
   572  	res, ok := fps.subPath.(UserWorkStatus_FieldPath)
   573  	return res, ok
   574  }
   575  
   576  // String returns path representation in proto convention
   577  func (fps *User_FieldSubPath) String() string {
   578  	return fps.selector.String() + "." + fps.subPath.String()
   579  }
   580  
   581  // JSONString returns path representation is JSON convention
   582  func (fps *User_FieldSubPath) JSONString() string {
   583  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   584  }
   585  
   586  // Get returns all values pointed by selected field from source User
   587  func (fps *User_FieldSubPath) Get(source *User) (values []interface{}) {
   588  	switch fps.selector {
   589  	case User_FieldPathSelectorMetadata:
   590  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   591  	case User_FieldPathSelectorAuthInfo:
   592  		values = append(values, fps.subPath.GetRaw(source.GetAuthInfo())...)
   593  	case User_FieldPathSelectorCtrlStatus:
   594  		values = append(values, fps.subPath.GetRaw(source.GetCtrlStatus())...)
   595  	default:
   596  		panic(fmt.Sprintf("Invalid selector for User: %d", fps.selector))
   597  	}
   598  	return
   599  }
   600  
   601  func (fps *User_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   602  	return fps.Get(source.(*User))
   603  }
   604  
   605  // GetSingle returns value of selected field from source User
   606  func (fps *User_FieldSubPath) GetSingle(source *User) (interface{}, bool) {
   607  	switch fps.selector {
   608  	case User_FieldPathSelectorMetadata:
   609  		if source.GetMetadata() == nil {
   610  			return nil, false
   611  		}
   612  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   613  	case User_FieldPathSelectorAuthInfo:
   614  		if source.GetAuthInfo() == nil {
   615  			return nil, false
   616  		}
   617  		return fps.subPath.GetSingleRaw(source.GetAuthInfo())
   618  	case User_FieldPathSelectorCtrlStatus:
   619  		if source.GetCtrlStatus() == nil {
   620  			return nil, false
   621  		}
   622  		return fps.subPath.GetSingleRaw(source.GetCtrlStatus())
   623  	default:
   624  		panic(fmt.Sprintf("Invalid selector for User: %d", fps.selector))
   625  	}
   626  }
   627  
   628  func (fps *User_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   629  	return fps.GetSingle(source.(*User))
   630  }
   631  
   632  // GetDefault returns a default value of the field type
   633  func (fps *User_FieldSubPath) GetDefault() interface{} {
   634  	return fps.subPath.GetDefault()
   635  }
   636  
   637  func (fps *User_FieldSubPath) ClearValue(item *User) {
   638  	if item != nil {
   639  		switch fps.selector {
   640  		case User_FieldPathSelectorMetadata:
   641  			fps.subPath.ClearValueRaw(item.Metadata)
   642  		case User_FieldPathSelectorAuthInfo:
   643  			fps.subPath.ClearValueRaw(item.AuthInfo)
   644  		case User_FieldPathSelectorCtrlStatus:
   645  			fps.subPath.ClearValueRaw(item.CtrlStatus)
   646  		default:
   647  			panic(fmt.Sprintf("Invalid selector for User: %d", fps.selector))
   648  		}
   649  	}
   650  }
   651  
   652  func (fps *User_FieldSubPath) ClearValueRaw(item proto.Message) {
   653  	fps.ClearValue(item.(*User))
   654  }
   655  
   656  // IsLeaf - whether field path is holds simple value
   657  func (fps *User_FieldSubPath) IsLeaf() bool {
   658  	return fps.subPath.IsLeaf()
   659  }
   660  
   661  func (fps *User_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   662  	iPaths := []gotenobject.FieldPath{&User_FieldTerminalPath{selector: fps.selector}}
   663  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   664  	return iPaths
   665  }
   666  
   667  func (fps *User_FieldSubPath) WithIValue(value interface{}) User_FieldPathValue {
   668  	return &User_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   669  }
   670  
   671  func (fps *User_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   672  	return fps.WithIValue(value)
   673  }
   674  
   675  func (fps *User_FieldSubPath) WithIArrayOfValues(values interface{}) User_FieldPathArrayOfValues {
   676  	return &User_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   677  }
   678  
   679  func (fps *User_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   680  	return fps.WithIArrayOfValues(values)
   681  }
   682  
   683  func (fps *User_FieldSubPath) WithIArrayItemValue(value interface{}) User_FieldPathArrayItemValue {
   684  	return &User_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   685  }
   686  
   687  func (fps *User_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   688  	return fps.WithIArrayItemValue(value)
   689  }
   690  
   691  // User_FieldPathValue allows storing values for User fields according to their type
   692  type User_FieldPathValue interface {
   693  	User_FieldPath
   694  	gotenobject.FieldPathValue
   695  	SetTo(target **User)
   696  	CompareWith(*User) (cmp int, comparable bool)
   697  }
   698  
   699  func ParseUser_FieldPathValue(pathStr, valueStr string) (User_FieldPathValue, error) {
   700  	fp, err := ParseUser_FieldPath(pathStr)
   701  	if err != nil {
   702  		return nil, err
   703  	}
   704  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   705  	if err != nil {
   706  		return nil, status.Errorf(codes.InvalidArgument, "error parsing User field path value from %s: %v", valueStr, err)
   707  	}
   708  	return fpv.(User_FieldPathValue), nil
   709  }
   710  
   711  func MustParseUser_FieldPathValue(pathStr, valueStr string) User_FieldPathValue {
   712  	fpv, err := ParseUser_FieldPathValue(pathStr, valueStr)
   713  	if err != nil {
   714  		panic(err)
   715  	}
   716  	return fpv
   717  }
   718  
   719  type User_FieldTerminalPathValue struct {
   720  	User_FieldTerminalPath
   721  	value interface{}
   722  }
   723  
   724  var _ User_FieldPathValue = (*User_FieldTerminalPathValue)(nil)
   725  
   726  // GetRawValue returns raw value stored under selected path for 'User' as interface{}
   727  func (fpv *User_FieldTerminalPathValue) GetRawValue() interface{} {
   728  	return fpv.value
   729  }
   730  func (fpv *User_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   731  	res, ok := fpv.value.(*Name)
   732  	return res, ok
   733  }
   734  func (fpv *User_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   735  	res, ok := fpv.value.(*meta.Meta)
   736  	return res, ok
   737  }
   738  func (fpv *User_FieldTerminalPathValue) AsFullNameValue() (string, bool) {
   739  	res, ok := fpv.value.(string)
   740  	return res, ok
   741  }
   742  func (fpv *User_FieldTerminalPathValue) AsEmailValue() (string, bool) {
   743  	res, ok := fpv.value.(string)
   744  	return res, ok
   745  }
   746  func (fpv *User_FieldTerminalPathValue) AsEmailVerifiedValue() (bool, bool) {
   747  	res, ok := fpv.value.(bool)
   748  	return res, ok
   749  }
   750  func (fpv *User_FieldTerminalPathValue) AsAuthInfoValue() (*User_AuthInfo, bool) {
   751  	res, ok := fpv.value.(*User_AuthInfo)
   752  	return res, ok
   753  }
   754  func (fpv *User_FieldTerminalPathValue) AsSettingsValue() (map[string]string, bool) {
   755  	res, ok := fpv.value.(map[string]string)
   756  	return res, ok
   757  }
   758  func (fpv *User_FieldTerminalPathValue) AsRefreshedTimeValue() (*timestamppb.Timestamp, bool) {
   759  	res, ok := fpv.value.(*timestamppb.Timestamp)
   760  	return res, ok
   761  }
   762  func (fpv *User_FieldTerminalPathValue) AsCtrlStatusValue() (*User_WorkStatus, bool) {
   763  	res, ok := fpv.value.(*User_WorkStatus)
   764  	return res, ok
   765  }
   766  
   767  // SetTo stores value for selected field for object User
   768  func (fpv *User_FieldTerminalPathValue) SetTo(target **User) {
   769  	if *target == nil {
   770  		*target = new(User)
   771  	}
   772  	switch fpv.selector {
   773  	case User_FieldPathSelectorName:
   774  		(*target).Name = fpv.value.(*Name)
   775  	case User_FieldPathSelectorMetadata:
   776  		(*target).Metadata = fpv.value.(*meta.Meta)
   777  	case User_FieldPathSelectorFullName:
   778  		(*target).FullName = fpv.value.(string)
   779  	case User_FieldPathSelectorEmail:
   780  		(*target).Email = fpv.value.(string)
   781  	case User_FieldPathSelectorEmailVerified:
   782  		(*target).EmailVerified = fpv.value.(bool)
   783  	case User_FieldPathSelectorAuthInfo:
   784  		(*target).AuthInfo = fpv.value.(*User_AuthInfo)
   785  	case User_FieldPathSelectorSettings:
   786  		(*target).Settings = fpv.value.(map[string]string)
   787  	case User_FieldPathSelectorRefreshedTime:
   788  		(*target).RefreshedTime = fpv.value.(*timestamppb.Timestamp)
   789  	case User_FieldPathSelectorCtrlStatus:
   790  		(*target).CtrlStatus = fpv.value.(*User_WorkStatus)
   791  	default:
   792  		panic(fmt.Sprintf("Invalid selector for User: %d", fpv.selector))
   793  	}
   794  }
   795  
   796  func (fpv *User_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   797  	typedObject := target.(*User)
   798  	fpv.SetTo(&typedObject)
   799  }
   800  
   801  // CompareWith compares value in the 'User_FieldTerminalPathValue' with the value under path in 'User'.
   802  func (fpv *User_FieldTerminalPathValue) CompareWith(source *User) (int, bool) {
   803  	switch fpv.selector {
   804  	case User_FieldPathSelectorName:
   805  		leftValue := fpv.value.(*Name)
   806  		rightValue := source.GetName()
   807  		if leftValue == nil {
   808  			if rightValue != nil {
   809  				return -1, true
   810  			}
   811  			return 0, true
   812  		}
   813  		if rightValue == nil {
   814  			return 1, true
   815  		}
   816  		if leftValue.String() == rightValue.String() {
   817  			return 0, true
   818  		} else if leftValue.String() < rightValue.String() {
   819  			return -1, true
   820  		} else {
   821  			return 1, true
   822  		}
   823  	case User_FieldPathSelectorMetadata:
   824  		return 0, false
   825  	case User_FieldPathSelectorFullName:
   826  		leftValue := fpv.value.(string)
   827  		rightValue := source.GetFullName()
   828  		if (leftValue) == (rightValue) {
   829  			return 0, true
   830  		} else if (leftValue) < (rightValue) {
   831  			return -1, true
   832  		} else {
   833  			return 1, true
   834  		}
   835  	case User_FieldPathSelectorEmail:
   836  		leftValue := fpv.value.(string)
   837  		rightValue := source.GetEmail()
   838  		if (leftValue) == (rightValue) {
   839  			return 0, true
   840  		} else if (leftValue) < (rightValue) {
   841  			return -1, true
   842  		} else {
   843  			return 1, true
   844  		}
   845  	case User_FieldPathSelectorEmailVerified:
   846  		leftValue := fpv.value.(bool)
   847  		rightValue := source.GetEmailVerified()
   848  		if (leftValue) == (rightValue) {
   849  			return 0, true
   850  		} else if !(leftValue) && (rightValue) {
   851  			return -1, true
   852  		} else {
   853  			return 1, true
   854  		}
   855  	case User_FieldPathSelectorAuthInfo:
   856  		return 0, false
   857  	case User_FieldPathSelectorSettings:
   858  		return 0, false
   859  	case User_FieldPathSelectorRefreshedTime:
   860  		leftValue := fpv.value.(*timestamppb.Timestamp)
   861  		rightValue := source.GetRefreshedTime()
   862  		if leftValue == nil {
   863  			if rightValue != nil {
   864  				return -1, true
   865  			}
   866  			return 0, true
   867  		}
   868  		if rightValue == nil {
   869  			return 1, true
   870  		}
   871  		if leftValue.AsTime().Equal(rightValue.AsTime()) {
   872  			return 0, true
   873  		} else if leftValue.AsTime().Before(rightValue.AsTime()) {
   874  			return -1, true
   875  		} else {
   876  			return 1, true
   877  		}
   878  	case User_FieldPathSelectorCtrlStatus:
   879  		return 0, false
   880  	default:
   881  		panic(fmt.Sprintf("Invalid selector for User: %d", fpv.selector))
   882  	}
   883  }
   884  
   885  func (fpv *User_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   886  	return fpv.CompareWith(source.(*User))
   887  }
   888  
   889  type User_FieldPathMapValue struct {
   890  	User_FieldPathMap
   891  	value interface{}
   892  }
   893  
   894  var _ User_FieldPathValue = (*User_FieldPathMapValue)(nil)
   895  
   896  // GetValue returns value stored under selected field in User as interface{}
   897  func (fpmv *User_FieldPathMapValue) GetRawValue() interface{} {
   898  	return fpmv.value
   899  }
   900  func (fpmv *User_FieldPathMapValue) AsSettingsElementValue() (string, bool) {
   901  	res, ok := fpmv.value.(string)
   902  	return res, ok
   903  }
   904  
   905  // SetTo stores value for selected field in User
   906  func (fpmv *User_FieldPathMapValue) SetTo(target **User) {
   907  	if *target == nil {
   908  		*target = new(User)
   909  	}
   910  	switch fpmv.selector {
   911  	case User_FieldPathSelectorSettings:
   912  		if (*target).Settings == nil {
   913  			(*target).Settings = make(map[string]string)
   914  		}
   915  		(*target).Settings[fpmv.key] = fpmv.value.(string)
   916  	default:
   917  		panic(fmt.Sprintf("Invalid selector for User: %d", fpmv.selector))
   918  	}
   919  }
   920  
   921  func (fpmv *User_FieldPathMapValue) SetToRaw(target proto.Message) {
   922  	typedObject := target.(*User)
   923  	fpmv.SetTo(&typedObject)
   924  }
   925  
   926  // CompareWith compares value in the 'User_FieldPathMapValue' with the value under path in 'User'.
   927  func (fpmv *User_FieldPathMapValue) CompareWith(source *User) (int, bool) {
   928  	switch fpmv.selector {
   929  	case User_FieldPathSelectorSettings:
   930  		leftValue := fpmv.value.(string)
   931  		rightValue := source.GetSettings()[fpmv.key]
   932  		if (leftValue) == (rightValue) {
   933  			return 0, true
   934  		} else if (leftValue) < (rightValue) {
   935  			return -1, true
   936  		} else {
   937  			return 1, true
   938  		}
   939  	default:
   940  		panic(fmt.Sprintf("Invalid selector for User: %d", fpmv.selector))
   941  	}
   942  }
   943  
   944  func (fpmv *User_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) {
   945  	return fpmv.CompareWith(source.(*User))
   946  }
   947  
   948  type User_FieldSubPathValue struct {
   949  	User_FieldPath
   950  	subPathValue gotenobject.FieldPathValue
   951  }
   952  
   953  var _ User_FieldPathValue = (*User_FieldSubPathValue)(nil)
   954  
   955  func (fpvs *User_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   956  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   957  	return res, ok
   958  }
   959  func (fpvs *User_FieldSubPathValue) AsAuthInfoPathValue() (UserAuthInfo_FieldPathValue, bool) {
   960  	res, ok := fpvs.subPathValue.(UserAuthInfo_FieldPathValue)
   961  	return res, ok
   962  }
   963  func (fpvs *User_FieldSubPathValue) AsCtrlStatusPathValue() (UserWorkStatus_FieldPathValue, bool) {
   964  	res, ok := fpvs.subPathValue.(UserWorkStatus_FieldPathValue)
   965  	return res, ok
   966  }
   967  
   968  func (fpvs *User_FieldSubPathValue) SetTo(target **User) {
   969  	if *target == nil {
   970  		*target = new(User)
   971  	}
   972  	switch fpvs.Selector() {
   973  	case User_FieldPathSelectorMetadata:
   974  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
   975  	case User_FieldPathSelectorAuthInfo:
   976  		fpvs.subPathValue.(UserAuthInfo_FieldPathValue).SetTo(&(*target).AuthInfo)
   977  	case User_FieldPathSelectorCtrlStatus:
   978  		fpvs.subPathValue.(UserWorkStatus_FieldPathValue).SetTo(&(*target).CtrlStatus)
   979  	default:
   980  		panic(fmt.Sprintf("Invalid selector for User: %d", fpvs.Selector()))
   981  	}
   982  }
   983  
   984  func (fpvs *User_FieldSubPathValue) SetToRaw(target proto.Message) {
   985  	typedObject := target.(*User)
   986  	fpvs.SetTo(&typedObject)
   987  }
   988  
   989  func (fpvs *User_FieldSubPathValue) GetRawValue() interface{} {
   990  	return fpvs.subPathValue.GetRawValue()
   991  }
   992  
   993  func (fpvs *User_FieldSubPathValue) CompareWith(source *User) (int, bool) {
   994  	switch fpvs.Selector() {
   995  	case User_FieldPathSelectorMetadata:
   996  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
   997  	case User_FieldPathSelectorAuthInfo:
   998  		return fpvs.subPathValue.(UserAuthInfo_FieldPathValue).CompareWith(source.GetAuthInfo())
   999  	case User_FieldPathSelectorCtrlStatus:
  1000  		return fpvs.subPathValue.(UserWorkStatus_FieldPathValue).CompareWith(source.GetCtrlStatus())
  1001  	default:
  1002  		panic(fmt.Sprintf("Invalid selector for User: %d", fpvs.Selector()))
  1003  	}
  1004  }
  1005  
  1006  func (fpvs *User_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1007  	return fpvs.CompareWith(source.(*User))
  1008  }
  1009  
  1010  // User_FieldPathArrayItemValue allows storing single item in Path-specific values for User according to their type
  1011  // Present only for array (repeated) types.
  1012  type User_FieldPathArrayItemValue interface {
  1013  	gotenobject.FieldPathArrayItemValue
  1014  	User_FieldPath
  1015  	ContainsValue(*User) bool
  1016  }
  1017  
  1018  // ParseUser_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1019  func ParseUser_FieldPathArrayItemValue(pathStr, valueStr string) (User_FieldPathArrayItemValue, error) {
  1020  	fp, err := ParseUser_FieldPath(pathStr)
  1021  	if err != nil {
  1022  		return nil, err
  1023  	}
  1024  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1025  	if err != nil {
  1026  		return nil, status.Errorf(codes.InvalidArgument, "error parsing User field path array item value from %s: %v", valueStr, err)
  1027  	}
  1028  	return fpaiv.(User_FieldPathArrayItemValue), nil
  1029  }
  1030  
  1031  func MustParseUser_FieldPathArrayItemValue(pathStr, valueStr string) User_FieldPathArrayItemValue {
  1032  	fpaiv, err := ParseUser_FieldPathArrayItemValue(pathStr, valueStr)
  1033  	if err != nil {
  1034  		panic(err)
  1035  	}
  1036  	return fpaiv
  1037  }
  1038  
  1039  type User_FieldTerminalPathArrayItemValue struct {
  1040  	User_FieldTerminalPath
  1041  	value interface{}
  1042  }
  1043  
  1044  var _ User_FieldPathArrayItemValue = (*User_FieldTerminalPathArrayItemValue)(nil)
  1045  
  1046  // GetRawValue returns stored element value for array in object User as interface{}
  1047  func (fpaiv *User_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1048  	return fpaiv.value
  1049  }
  1050  
  1051  func (fpaiv *User_FieldTerminalPathArrayItemValue) GetSingle(source *User) (interface{}, bool) {
  1052  	return nil, false
  1053  }
  1054  
  1055  func (fpaiv *User_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1056  	return fpaiv.GetSingle(source.(*User))
  1057  }
  1058  
  1059  // Contains returns a boolean indicating if value that is being held is present in given 'User'
  1060  func (fpaiv *User_FieldTerminalPathArrayItemValue) ContainsValue(source *User) bool {
  1061  	slice := fpaiv.User_FieldTerminalPath.Get(source)
  1062  	for _, v := range slice {
  1063  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1064  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1065  				return true
  1066  			}
  1067  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1068  			return true
  1069  		}
  1070  	}
  1071  	return false
  1072  }
  1073  
  1074  type User_FieldSubPathArrayItemValue struct {
  1075  	User_FieldPath
  1076  	subPathItemValue gotenobject.FieldPathArrayItemValue
  1077  }
  1078  
  1079  // GetRawValue returns stored array item value
  1080  func (fpaivs *User_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  1081  	return fpaivs.subPathItemValue.GetRawItemValue()
  1082  }
  1083  func (fpaivs *User_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
  1084  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
  1085  	return res, ok
  1086  }
  1087  func (fpaivs *User_FieldSubPathArrayItemValue) AsAuthInfoPathItemValue() (UserAuthInfo_FieldPathArrayItemValue, bool) {
  1088  	res, ok := fpaivs.subPathItemValue.(UserAuthInfo_FieldPathArrayItemValue)
  1089  	return res, ok
  1090  }
  1091  func (fpaivs *User_FieldSubPathArrayItemValue) AsCtrlStatusPathItemValue() (UserWorkStatus_FieldPathArrayItemValue, bool) {
  1092  	res, ok := fpaivs.subPathItemValue.(UserWorkStatus_FieldPathArrayItemValue)
  1093  	return res, ok
  1094  }
  1095  
  1096  // Contains returns a boolean indicating if value that is being held is present in given 'User'
  1097  func (fpaivs *User_FieldSubPathArrayItemValue) ContainsValue(source *User) bool {
  1098  	switch fpaivs.Selector() {
  1099  	case User_FieldPathSelectorMetadata:
  1100  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
  1101  	case User_FieldPathSelectorAuthInfo:
  1102  		return fpaivs.subPathItemValue.(UserAuthInfo_FieldPathArrayItemValue).ContainsValue(source.GetAuthInfo())
  1103  	case User_FieldPathSelectorCtrlStatus:
  1104  		return fpaivs.subPathItemValue.(UserWorkStatus_FieldPathArrayItemValue).ContainsValue(source.GetCtrlStatus())
  1105  	default:
  1106  		panic(fmt.Sprintf("Invalid selector for User: %d", fpaivs.Selector()))
  1107  	}
  1108  }
  1109  
  1110  // User_FieldPathArrayOfValues allows storing slice of values for User fields according to their type
  1111  type User_FieldPathArrayOfValues interface {
  1112  	gotenobject.FieldPathArrayOfValues
  1113  	User_FieldPath
  1114  }
  1115  
  1116  func ParseUser_FieldPathArrayOfValues(pathStr, valuesStr string) (User_FieldPathArrayOfValues, error) {
  1117  	fp, err := ParseUser_FieldPath(pathStr)
  1118  	if err != nil {
  1119  		return nil, err
  1120  	}
  1121  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1122  	if err != nil {
  1123  		return nil, status.Errorf(codes.InvalidArgument, "error parsing User field path array of values from %s: %v", valuesStr, err)
  1124  	}
  1125  	return fpaov.(User_FieldPathArrayOfValues), nil
  1126  }
  1127  
  1128  func MustParseUser_FieldPathArrayOfValues(pathStr, valuesStr string) User_FieldPathArrayOfValues {
  1129  	fpaov, err := ParseUser_FieldPathArrayOfValues(pathStr, valuesStr)
  1130  	if err != nil {
  1131  		panic(err)
  1132  	}
  1133  	return fpaov
  1134  }
  1135  
  1136  type User_FieldTerminalPathArrayOfValues struct {
  1137  	User_FieldTerminalPath
  1138  	values interface{}
  1139  }
  1140  
  1141  var _ User_FieldPathArrayOfValues = (*User_FieldTerminalPathArrayOfValues)(nil)
  1142  
  1143  func (fpaov *User_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1144  	switch fpaov.selector {
  1145  	case User_FieldPathSelectorName:
  1146  		for _, v := range fpaov.values.([]*Name) {
  1147  			values = append(values, v)
  1148  		}
  1149  	case User_FieldPathSelectorMetadata:
  1150  		for _, v := range fpaov.values.([]*meta.Meta) {
  1151  			values = append(values, v)
  1152  		}
  1153  	case User_FieldPathSelectorFullName:
  1154  		for _, v := range fpaov.values.([]string) {
  1155  			values = append(values, v)
  1156  		}
  1157  	case User_FieldPathSelectorEmail:
  1158  		for _, v := range fpaov.values.([]string) {
  1159  			values = append(values, v)
  1160  		}
  1161  	case User_FieldPathSelectorEmailVerified:
  1162  		for _, v := range fpaov.values.([]bool) {
  1163  			values = append(values, v)
  1164  		}
  1165  	case User_FieldPathSelectorAuthInfo:
  1166  		for _, v := range fpaov.values.([]*User_AuthInfo) {
  1167  			values = append(values, v)
  1168  		}
  1169  	case User_FieldPathSelectorSettings:
  1170  		for _, v := range fpaov.values.([]map[string]string) {
  1171  			values = append(values, v)
  1172  		}
  1173  	case User_FieldPathSelectorRefreshedTime:
  1174  		for _, v := range fpaov.values.([]*timestamppb.Timestamp) {
  1175  			values = append(values, v)
  1176  		}
  1177  	case User_FieldPathSelectorCtrlStatus:
  1178  		for _, v := range fpaov.values.([]*User_WorkStatus) {
  1179  			values = append(values, v)
  1180  		}
  1181  	}
  1182  	return
  1183  }
  1184  func (fpaov *User_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
  1185  	res, ok := fpaov.values.([]*Name)
  1186  	return res, ok
  1187  }
  1188  func (fpaov *User_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
  1189  	res, ok := fpaov.values.([]*meta.Meta)
  1190  	return res, ok
  1191  }
  1192  func (fpaov *User_FieldTerminalPathArrayOfValues) AsFullNameArrayOfValues() ([]string, bool) {
  1193  	res, ok := fpaov.values.([]string)
  1194  	return res, ok
  1195  }
  1196  func (fpaov *User_FieldTerminalPathArrayOfValues) AsEmailArrayOfValues() ([]string, bool) {
  1197  	res, ok := fpaov.values.([]string)
  1198  	return res, ok
  1199  }
  1200  func (fpaov *User_FieldTerminalPathArrayOfValues) AsEmailVerifiedArrayOfValues() ([]bool, bool) {
  1201  	res, ok := fpaov.values.([]bool)
  1202  	return res, ok
  1203  }
  1204  func (fpaov *User_FieldTerminalPathArrayOfValues) AsAuthInfoArrayOfValues() ([]*User_AuthInfo, bool) {
  1205  	res, ok := fpaov.values.([]*User_AuthInfo)
  1206  	return res, ok
  1207  }
  1208  func (fpaov *User_FieldTerminalPathArrayOfValues) AsSettingsArrayOfValues() ([]map[string]string, bool) {
  1209  	res, ok := fpaov.values.([]map[string]string)
  1210  	return res, ok
  1211  }
  1212  func (fpaov *User_FieldTerminalPathArrayOfValues) AsRefreshedTimeArrayOfValues() ([]*timestamppb.Timestamp, bool) {
  1213  	res, ok := fpaov.values.([]*timestamppb.Timestamp)
  1214  	return res, ok
  1215  }
  1216  func (fpaov *User_FieldTerminalPathArrayOfValues) AsCtrlStatusArrayOfValues() ([]*User_WorkStatus, bool) {
  1217  	res, ok := fpaov.values.([]*User_WorkStatus)
  1218  	return res, ok
  1219  }
  1220  
  1221  type User_FieldPathMapArrayOfValues struct {
  1222  	User_FieldPathMap
  1223  	values interface{}
  1224  }
  1225  
  1226  var _ User_FieldPathArrayOfValues = (*User_FieldPathMapArrayOfValues)(nil)
  1227  
  1228  func (fpmaov *User_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) {
  1229  	switch fpmaov.selector {
  1230  	case User_FieldPathSelectorSettings:
  1231  		for _, v := range fpmaov.values.([]string) {
  1232  			values = append(values, v)
  1233  		}
  1234  	}
  1235  	return
  1236  }
  1237  func (fpmaov *User_FieldPathMapArrayOfValues) AsSettingsArrayOfElementValues() ([]string, bool) {
  1238  	res, ok := fpmaov.values.([]string)
  1239  	return res, ok
  1240  }
  1241  
  1242  type User_FieldSubPathArrayOfValues struct {
  1243  	User_FieldPath
  1244  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  1245  }
  1246  
  1247  var _ User_FieldPathArrayOfValues = (*User_FieldSubPathArrayOfValues)(nil)
  1248  
  1249  func (fpsaov *User_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  1250  	return fpsaov.subPathArrayOfValues.GetRawValues()
  1251  }
  1252  func (fpsaov *User_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
  1253  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
  1254  	return res, ok
  1255  }
  1256  func (fpsaov *User_FieldSubPathArrayOfValues) AsAuthInfoPathArrayOfValues() (UserAuthInfo_FieldPathArrayOfValues, bool) {
  1257  	res, ok := fpsaov.subPathArrayOfValues.(UserAuthInfo_FieldPathArrayOfValues)
  1258  	return res, ok
  1259  }
  1260  func (fpsaov *User_FieldSubPathArrayOfValues) AsCtrlStatusPathArrayOfValues() (UserWorkStatus_FieldPathArrayOfValues, bool) {
  1261  	res, ok := fpsaov.subPathArrayOfValues.(UserWorkStatus_FieldPathArrayOfValues)
  1262  	return res, ok
  1263  }
  1264  
  1265  // FieldPath provides implementation to handle
  1266  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1267  type UserAuthInfo_FieldPath interface {
  1268  	gotenobject.FieldPath
  1269  	Selector() UserAuthInfo_FieldPathSelector
  1270  	Get(source *User_AuthInfo) []interface{}
  1271  	GetSingle(source *User_AuthInfo) (interface{}, bool)
  1272  	ClearValue(item *User_AuthInfo)
  1273  
  1274  	// Those methods build corresponding UserAuthInfo_FieldPathValue
  1275  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1276  	WithIValue(value interface{}) UserAuthInfo_FieldPathValue
  1277  	WithIArrayOfValues(values interface{}) UserAuthInfo_FieldPathArrayOfValues
  1278  	WithIArrayItemValue(value interface{}) UserAuthInfo_FieldPathArrayItemValue
  1279  }
  1280  
  1281  type UserAuthInfo_FieldPathSelector int32
  1282  
  1283  const (
  1284  	UserAuthInfo_FieldPathSelectorProvider UserAuthInfo_FieldPathSelector = 0
  1285  	UserAuthInfo_FieldPathSelectorId       UserAuthInfo_FieldPathSelector = 1
  1286  )
  1287  
  1288  func (s UserAuthInfo_FieldPathSelector) String() string {
  1289  	switch s {
  1290  	case UserAuthInfo_FieldPathSelectorProvider:
  1291  		return "provider"
  1292  	case UserAuthInfo_FieldPathSelectorId:
  1293  		return "id"
  1294  	default:
  1295  		panic(fmt.Sprintf("Invalid selector for User_AuthInfo: %d", s))
  1296  	}
  1297  }
  1298  
  1299  func BuildUserAuthInfo_FieldPath(fp gotenobject.RawFieldPath) (UserAuthInfo_FieldPath, error) {
  1300  	if len(fp) == 0 {
  1301  		return nil, status.Error(codes.InvalidArgument, "empty field path for object User_AuthInfo")
  1302  	}
  1303  	if len(fp) == 1 {
  1304  		switch fp[0] {
  1305  		case "provider":
  1306  			return &UserAuthInfo_FieldTerminalPath{selector: UserAuthInfo_FieldPathSelectorProvider}, nil
  1307  		case "id":
  1308  			return &UserAuthInfo_FieldTerminalPath{selector: UserAuthInfo_FieldPathSelectorId}, nil
  1309  		}
  1310  	}
  1311  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object User_AuthInfo", fp)
  1312  }
  1313  
  1314  func ParseUserAuthInfo_FieldPath(rawField string) (UserAuthInfo_FieldPath, error) {
  1315  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1316  	if err != nil {
  1317  		return nil, err
  1318  	}
  1319  	return BuildUserAuthInfo_FieldPath(fp)
  1320  }
  1321  
  1322  func MustParseUserAuthInfo_FieldPath(rawField string) UserAuthInfo_FieldPath {
  1323  	fp, err := ParseUserAuthInfo_FieldPath(rawField)
  1324  	if err != nil {
  1325  		panic(err)
  1326  	}
  1327  	return fp
  1328  }
  1329  
  1330  type UserAuthInfo_FieldTerminalPath struct {
  1331  	selector UserAuthInfo_FieldPathSelector
  1332  }
  1333  
  1334  var _ UserAuthInfo_FieldPath = (*UserAuthInfo_FieldTerminalPath)(nil)
  1335  
  1336  func (fp *UserAuthInfo_FieldTerminalPath) Selector() UserAuthInfo_FieldPathSelector {
  1337  	return fp.selector
  1338  }
  1339  
  1340  // String returns path representation in proto convention
  1341  func (fp *UserAuthInfo_FieldTerminalPath) String() string {
  1342  	return fp.selector.String()
  1343  }
  1344  
  1345  // JSONString returns path representation is JSON convention
  1346  func (fp *UserAuthInfo_FieldTerminalPath) JSONString() string {
  1347  	return strcase.ToLowerCamel(fp.String())
  1348  }
  1349  
  1350  // Get returns all values pointed by specific field from source User_AuthInfo
  1351  func (fp *UserAuthInfo_FieldTerminalPath) Get(source *User_AuthInfo) (values []interface{}) {
  1352  	if source != nil {
  1353  		switch fp.selector {
  1354  		case UserAuthInfo_FieldPathSelectorProvider:
  1355  			values = append(values, source.Provider)
  1356  		case UserAuthInfo_FieldPathSelectorId:
  1357  			values = append(values, source.Id)
  1358  		default:
  1359  			panic(fmt.Sprintf("Invalid selector for User_AuthInfo: %d", fp.selector))
  1360  		}
  1361  	}
  1362  	return
  1363  }
  1364  
  1365  func (fp *UserAuthInfo_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1366  	return fp.Get(source.(*User_AuthInfo))
  1367  }
  1368  
  1369  // GetSingle returns value pointed by specific field of from source User_AuthInfo
  1370  func (fp *UserAuthInfo_FieldTerminalPath) GetSingle(source *User_AuthInfo) (interface{}, bool) {
  1371  	switch fp.selector {
  1372  	case UserAuthInfo_FieldPathSelectorProvider:
  1373  		return source.GetProvider(), source != nil
  1374  	case UserAuthInfo_FieldPathSelectorId:
  1375  		return source.GetId(), source != nil
  1376  	default:
  1377  		panic(fmt.Sprintf("Invalid selector for User_AuthInfo: %d", fp.selector))
  1378  	}
  1379  }
  1380  
  1381  func (fp *UserAuthInfo_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1382  	return fp.GetSingle(source.(*User_AuthInfo))
  1383  }
  1384  
  1385  // GetDefault returns a default value of the field type
  1386  func (fp *UserAuthInfo_FieldTerminalPath) GetDefault() interface{} {
  1387  	switch fp.selector {
  1388  	case UserAuthInfo_FieldPathSelectorProvider:
  1389  		return ""
  1390  	case UserAuthInfo_FieldPathSelectorId:
  1391  		return ""
  1392  	default:
  1393  		panic(fmt.Sprintf("Invalid selector for User_AuthInfo: %d", fp.selector))
  1394  	}
  1395  }
  1396  
  1397  func (fp *UserAuthInfo_FieldTerminalPath) ClearValue(item *User_AuthInfo) {
  1398  	if item != nil {
  1399  		switch fp.selector {
  1400  		case UserAuthInfo_FieldPathSelectorProvider:
  1401  			item.Provider = ""
  1402  		case UserAuthInfo_FieldPathSelectorId:
  1403  			item.Id = ""
  1404  		default:
  1405  			panic(fmt.Sprintf("Invalid selector for User_AuthInfo: %d", fp.selector))
  1406  		}
  1407  	}
  1408  }
  1409  
  1410  func (fp *UserAuthInfo_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1411  	fp.ClearValue(item.(*User_AuthInfo))
  1412  }
  1413  
  1414  // IsLeaf - whether field path is holds simple value
  1415  func (fp *UserAuthInfo_FieldTerminalPath) IsLeaf() bool {
  1416  	return fp.selector == UserAuthInfo_FieldPathSelectorProvider ||
  1417  		fp.selector == UserAuthInfo_FieldPathSelectorId
  1418  }
  1419  
  1420  func (fp *UserAuthInfo_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1421  	return []gotenobject.FieldPath{fp}
  1422  }
  1423  
  1424  func (fp *UserAuthInfo_FieldTerminalPath) WithIValue(value interface{}) UserAuthInfo_FieldPathValue {
  1425  	switch fp.selector {
  1426  	case UserAuthInfo_FieldPathSelectorProvider:
  1427  		return &UserAuthInfo_FieldTerminalPathValue{UserAuthInfo_FieldTerminalPath: *fp, value: value.(string)}
  1428  	case UserAuthInfo_FieldPathSelectorId:
  1429  		return &UserAuthInfo_FieldTerminalPathValue{UserAuthInfo_FieldTerminalPath: *fp, value: value.(string)}
  1430  	default:
  1431  		panic(fmt.Sprintf("Invalid selector for User_AuthInfo: %d", fp.selector))
  1432  	}
  1433  }
  1434  
  1435  func (fp *UserAuthInfo_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1436  	return fp.WithIValue(value)
  1437  }
  1438  
  1439  func (fp *UserAuthInfo_FieldTerminalPath) WithIArrayOfValues(values interface{}) UserAuthInfo_FieldPathArrayOfValues {
  1440  	fpaov := &UserAuthInfo_FieldTerminalPathArrayOfValues{UserAuthInfo_FieldTerminalPath: *fp}
  1441  	switch fp.selector {
  1442  	case UserAuthInfo_FieldPathSelectorProvider:
  1443  		return &UserAuthInfo_FieldTerminalPathArrayOfValues{UserAuthInfo_FieldTerminalPath: *fp, values: values.([]string)}
  1444  	case UserAuthInfo_FieldPathSelectorId:
  1445  		return &UserAuthInfo_FieldTerminalPathArrayOfValues{UserAuthInfo_FieldTerminalPath: *fp, values: values.([]string)}
  1446  	default:
  1447  		panic(fmt.Sprintf("Invalid selector for User_AuthInfo: %d", fp.selector))
  1448  	}
  1449  	return fpaov
  1450  }
  1451  
  1452  func (fp *UserAuthInfo_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1453  	return fp.WithIArrayOfValues(values)
  1454  }
  1455  
  1456  func (fp *UserAuthInfo_FieldTerminalPath) WithIArrayItemValue(value interface{}) UserAuthInfo_FieldPathArrayItemValue {
  1457  	switch fp.selector {
  1458  	default:
  1459  		panic(fmt.Sprintf("Invalid selector for User_AuthInfo: %d", fp.selector))
  1460  	}
  1461  }
  1462  
  1463  func (fp *UserAuthInfo_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1464  	return fp.WithIArrayItemValue(value)
  1465  }
  1466  
  1467  // UserAuthInfo_FieldPathValue allows storing values for AuthInfo fields according to their type
  1468  type UserAuthInfo_FieldPathValue interface {
  1469  	UserAuthInfo_FieldPath
  1470  	gotenobject.FieldPathValue
  1471  	SetTo(target **User_AuthInfo)
  1472  	CompareWith(*User_AuthInfo) (cmp int, comparable bool)
  1473  }
  1474  
  1475  func ParseUserAuthInfo_FieldPathValue(pathStr, valueStr string) (UserAuthInfo_FieldPathValue, error) {
  1476  	fp, err := ParseUserAuthInfo_FieldPath(pathStr)
  1477  	if err != nil {
  1478  		return nil, err
  1479  	}
  1480  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1481  	if err != nil {
  1482  		return nil, status.Errorf(codes.InvalidArgument, "error parsing AuthInfo field path value from %s: %v", valueStr, err)
  1483  	}
  1484  	return fpv.(UserAuthInfo_FieldPathValue), nil
  1485  }
  1486  
  1487  func MustParseUserAuthInfo_FieldPathValue(pathStr, valueStr string) UserAuthInfo_FieldPathValue {
  1488  	fpv, err := ParseUserAuthInfo_FieldPathValue(pathStr, valueStr)
  1489  	if err != nil {
  1490  		panic(err)
  1491  	}
  1492  	return fpv
  1493  }
  1494  
  1495  type UserAuthInfo_FieldTerminalPathValue struct {
  1496  	UserAuthInfo_FieldTerminalPath
  1497  	value interface{}
  1498  }
  1499  
  1500  var _ UserAuthInfo_FieldPathValue = (*UserAuthInfo_FieldTerminalPathValue)(nil)
  1501  
  1502  // GetRawValue returns raw value stored under selected path for 'AuthInfo' as interface{}
  1503  func (fpv *UserAuthInfo_FieldTerminalPathValue) GetRawValue() interface{} {
  1504  	return fpv.value
  1505  }
  1506  func (fpv *UserAuthInfo_FieldTerminalPathValue) AsProviderValue() (string, bool) {
  1507  	res, ok := fpv.value.(string)
  1508  	return res, ok
  1509  }
  1510  func (fpv *UserAuthInfo_FieldTerminalPathValue) AsIdValue() (string, bool) {
  1511  	res, ok := fpv.value.(string)
  1512  	return res, ok
  1513  }
  1514  
  1515  // SetTo stores value for selected field for object AuthInfo
  1516  func (fpv *UserAuthInfo_FieldTerminalPathValue) SetTo(target **User_AuthInfo) {
  1517  	if *target == nil {
  1518  		*target = new(User_AuthInfo)
  1519  	}
  1520  	switch fpv.selector {
  1521  	case UserAuthInfo_FieldPathSelectorProvider:
  1522  		(*target).Provider = fpv.value.(string)
  1523  	case UserAuthInfo_FieldPathSelectorId:
  1524  		(*target).Id = fpv.value.(string)
  1525  	default:
  1526  		panic(fmt.Sprintf("Invalid selector for User_AuthInfo: %d", fpv.selector))
  1527  	}
  1528  }
  1529  
  1530  func (fpv *UserAuthInfo_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1531  	typedObject := target.(*User_AuthInfo)
  1532  	fpv.SetTo(&typedObject)
  1533  }
  1534  
  1535  // CompareWith compares value in the 'UserAuthInfo_FieldTerminalPathValue' with the value under path in 'User_AuthInfo'.
  1536  func (fpv *UserAuthInfo_FieldTerminalPathValue) CompareWith(source *User_AuthInfo) (int, bool) {
  1537  	switch fpv.selector {
  1538  	case UserAuthInfo_FieldPathSelectorProvider:
  1539  		leftValue := fpv.value.(string)
  1540  		rightValue := source.GetProvider()
  1541  		if (leftValue) == (rightValue) {
  1542  			return 0, true
  1543  		} else if (leftValue) < (rightValue) {
  1544  			return -1, true
  1545  		} else {
  1546  			return 1, true
  1547  		}
  1548  	case UserAuthInfo_FieldPathSelectorId:
  1549  		leftValue := fpv.value.(string)
  1550  		rightValue := source.GetId()
  1551  		if (leftValue) == (rightValue) {
  1552  			return 0, true
  1553  		} else if (leftValue) < (rightValue) {
  1554  			return -1, true
  1555  		} else {
  1556  			return 1, true
  1557  		}
  1558  	default:
  1559  		panic(fmt.Sprintf("Invalid selector for User_AuthInfo: %d", fpv.selector))
  1560  	}
  1561  }
  1562  
  1563  func (fpv *UserAuthInfo_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1564  	return fpv.CompareWith(source.(*User_AuthInfo))
  1565  }
  1566  
  1567  // UserAuthInfo_FieldPathArrayItemValue allows storing single item in Path-specific values for AuthInfo according to their type
  1568  // Present only for array (repeated) types.
  1569  type UserAuthInfo_FieldPathArrayItemValue interface {
  1570  	gotenobject.FieldPathArrayItemValue
  1571  	UserAuthInfo_FieldPath
  1572  	ContainsValue(*User_AuthInfo) bool
  1573  }
  1574  
  1575  // ParseUserAuthInfo_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1576  func ParseUserAuthInfo_FieldPathArrayItemValue(pathStr, valueStr string) (UserAuthInfo_FieldPathArrayItemValue, error) {
  1577  	fp, err := ParseUserAuthInfo_FieldPath(pathStr)
  1578  	if err != nil {
  1579  		return nil, err
  1580  	}
  1581  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1582  	if err != nil {
  1583  		return nil, status.Errorf(codes.InvalidArgument, "error parsing AuthInfo field path array item value from %s: %v", valueStr, err)
  1584  	}
  1585  	return fpaiv.(UserAuthInfo_FieldPathArrayItemValue), nil
  1586  }
  1587  
  1588  func MustParseUserAuthInfo_FieldPathArrayItemValue(pathStr, valueStr string) UserAuthInfo_FieldPathArrayItemValue {
  1589  	fpaiv, err := ParseUserAuthInfo_FieldPathArrayItemValue(pathStr, valueStr)
  1590  	if err != nil {
  1591  		panic(err)
  1592  	}
  1593  	return fpaiv
  1594  }
  1595  
  1596  type UserAuthInfo_FieldTerminalPathArrayItemValue struct {
  1597  	UserAuthInfo_FieldTerminalPath
  1598  	value interface{}
  1599  }
  1600  
  1601  var _ UserAuthInfo_FieldPathArrayItemValue = (*UserAuthInfo_FieldTerminalPathArrayItemValue)(nil)
  1602  
  1603  // GetRawValue returns stored element value for array in object User_AuthInfo as interface{}
  1604  func (fpaiv *UserAuthInfo_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1605  	return fpaiv.value
  1606  }
  1607  
  1608  func (fpaiv *UserAuthInfo_FieldTerminalPathArrayItemValue) GetSingle(source *User_AuthInfo) (interface{}, bool) {
  1609  	return nil, false
  1610  }
  1611  
  1612  func (fpaiv *UserAuthInfo_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1613  	return fpaiv.GetSingle(source.(*User_AuthInfo))
  1614  }
  1615  
  1616  // Contains returns a boolean indicating if value that is being held is present in given 'AuthInfo'
  1617  func (fpaiv *UserAuthInfo_FieldTerminalPathArrayItemValue) ContainsValue(source *User_AuthInfo) bool {
  1618  	slice := fpaiv.UserAuthInfo_FieldTerminalPath.Get(source)
  1619  	for _, v := range slice {
  1620  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1621  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1622  				return true
  1623  			}
  1624  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1625  			return true
  1626  		}
  1627  	}
  1628  	return false
  1629  }
  1630  
  1631  // UserAuthInfo_FieldPathArrayOfValues allows storing slice of values for AuthInfo fields according to their type
  1632  type UserAuthInfo_FieldPathArrayOfValues interface {
  1633  	gotenobject.FieldPathArrayOfValues
  1634  	UserAuthInfo_FieldPath
  1635  }
  1636  
  1637  func ParseUserAuthInfo_FieldPathArrayOfValues(pathStr, valuesStr string) (UserAuthInfo_FieldPathArrayOfValues, error) {
  1638  	fp, err := ParseUserAuthInfo_FieldPath(pathStr)
  1639  	if err != nil {
  1640  		return nil, err
  1641  	}
  1642  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1643  	if err != nil {
  1644  		return nil, status.Errorf(codes.InvalidArgument, "error parsing AuthInfo field path array of values from %s: %v", valuesStr, err)
  1645  	}
  1646  	return fpaov.(UserAuthInfo_FieldPathArrayOfValues), nil
  1647  }
  1648  
  1649  func MustParseUserAuthInfo_FieldPathArrayOfValues(pathStr, valuesStr string) UserAuthInfo_FieldPathArrayOfValues {
  1650  	fpaov, err := ParseUserAuthInfo_FieldPathArrayOfValues(pathStr, valuesStr)
  1651  	if err != nil {
  1652  		panic(err)
  1653  	}
  1654  	return fpaov
  1655  }
  1656  
  1657  type UserAuthInfo_FieldTerminalPathArrayOfValues struct {
  1658  	UserAuthInfo_FieldTerminalPath
  1659  	values interface{}
  1660  }
  1661  
  1662  var _ UserAuthInfo_FieldPathArrayOfValues = (*UserAuthInfo_FieldTerminalPathArrayOfValues)(nil)
  1663  
  1664  func (fpaov *UserAuthInfo_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1665  	switch fpaov.selector {
  1666  	case UserAuthInfo_FieldPathSelectorProvider:
  1667  		for _, v := range fpaov.values.([]string) {
  1668  			values = append(values, v)
  1669  		}
  1670  	case UserAuthInfo_FieldPathSelectorId:
  1671  		for _, v := range fpaov.values.([]string) {
  1672  			values = append(values, v)
  1673  		}
  1674  	}
  1675  	return
  1676  }
  1677  func (fpaov *UserAuthInfo_FieldTerminalPathArrayOfValues) AsProviderArrayOfValues() ([]string, bool) {
  1678  	res, ok := fpaov.values.([]string)
  1679  	return res, ok
  1680  }
  1681  func (fpaov *UserAuthInfo_FieldTerminalPathArrayOfValues) AsIdArrayOfValues() ([]string, bool) {
  1682  	res, ok := fpaov.values.([]string)
  1683  	return res, ok
  1684  }
  1685  
  1686  // FieldPath provides implementation to handle
  1687  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1688  type UserWorkStatus_FieldPath interface {
  1689  	gotenobject.FieldPath
  1690  	Selector() UserWorkStatus_FieldPathSelector
  1691  	Get(source *User_WorkStatus) []interface{}
  1692  	GetSingle(source *User_WorkStatus) (interface{}, bool)
  1693  	ClearValue(item *User_WorkStatus)
  1694  
  1695  	// Those methods build corresponding UserWorkStatus_FieldPathValue
  1696  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1697  	WithIValue(value interface{}) UserWorkStatus_FieldPathValue
  1698  	WithIArrayOfValues(values interface{}) UserWorkStatus_FieldPathArrayOfValues
  1699  	WithIArrayItemValue(value interface{}) UserWorkStatus_FieldPathArrayItemValue
  1700  }
  1701  
  1702  type UserWorkStatus_FieldPathSelector int32
  1703  
  1704  const (
  1705  	UserWorkStatus_FieldPathSelectorPending UserWorkStatus_FieldPathSelector = 0
  1706  )
  1707  
  1708  func (s UserWorkStatus_FieldPathSelector) String() string {
  1709  	switch s {
  1710  	case UserWorkStatus_FieldPathSelectorPending:
  1711  		return "pending"
  1712  	default:
  1713  		panic(fmt.Sprintf("Invalid selector for User_WorkStatus: %d", s))
  1714  	}
  1715  }
  1716  
  1717  func BuildUserWorkStatus_FieldPath(fp gotenobject.RawFieldPath) (UserWorkStatus_FieldPath, error) {
  1718  	if len(fp) == 0 {
  1719  		return nil, status.Error(codes.InvalidArgument, "empty field path for object User_WorkStatus")
  1720  	}
  1721  	if len(fp) == 1 {
  1722  		switch fp[0] {
  1723  		case "pending":
  1724  			return &UserWorkStatus_FieldTerminalPath{selector: UserWorkStatus_FieldPathSelectorPending}, nil
  1725  		}
  1726  	}
  1727  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object User_WorkStatus", fp)
  1728  }
  1729  
  1730  func ParseUserWorkStatus_FieldPath(rawField string) (UserWorkStatus_FieldPath, error) {
  1731  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1732  	if err != nil {
  1733  		return nil, err
  1734  	}
  1735  	return BuildUserWorkStatus_FieldPath(fp)
  1736  }
  1737  
  1738  func MustParseUserWorkStatus_FieldPath(rawField string) UserWorkStatus_FieldPath {
  1739  	fp, err := ParseUserWorkStatus_FieldPath(rawField)
  1740  	if err != nil {
  1741  		panic(err)
  1742  	}
  1743  	return fp
  1744  }
  1745  
  1746  type UserWorkStatus_FieldTerminalPath struct {
  1747  	selector UserWorkStatus_FieldPathSelector
  1748  }
  1749  
  1750  var _ UserWorkStatus_FieldPath = (*UserWorkStatus_FieldTerminalPath)(nil)
  1751  
  1752  func (fp *UserWorkStatus_FieldTerminalPath) Selector() UserWorkStatus_FieldPathSelector {
  1753  	return fp.selector
  1754  }
  1755  
  1756  // String returns path representation in proto convention
  1757  func (fp *UserWorkStatus_FieldTerminalPath) String() string {
  1758  	return fp.selector.String()
  1759  }
  1760  
  1761  // JSONString returns path representation is JSON convention
  1762  func (fp *UserWorkStatus_FieldTerminalPath) JSONString() string {
  1763  	return strcase.ToLowerCamel(fp.String())
  1764  }
  1765  
  1766  // Get returns all values pointed by specific field from source User_WorkStatus
  1767  func (fp *UserWorkStatus_FieldTerminalPath) Get(source *User_WorkStatus) (values []interface{}) {
  1768  	if source != nil {
  1769  		switch fp.selector {
  1770  		case UserWorkStatus_FieldPathSelectorPending:
  1771  			values = append(values, source.Pending)
  1772  		default:
  1773  			panic(fmt.Sprintf("Invalid selector for User_WorkStatus: %d", fp.selector))
  1774  		}
  1775  	}
  1776  	return
  1777  }
  1778  
  1779  func (fp *UserWorkStatus_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1780  	return fp.Get(source.(*User_WorkStatus))
  1781  }
  1782  
  1783  // GetSingle returns value pointed by specific field of from source User_WorkStatus
  1784  func (fp *UserWorkStatus_FieldTerminalPath) GetSingle(source *User_WorkStatus) (interface{}, bool) {
  1785  	switch fp.selector {
  1786  	case UserWorkStatus_FieldPathSelectorPending:
  1787  		return source.GetPending(), source != nil
  1788  	default:
  1789  		panic(fmt.Sprintf("Invalid selector for User_WorkStatus: %d", fp.selector))
  1790  	}
  1791  }
  1792  
  1793  func (fp *UserWorkStatus_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1794  	return fp.GetSingle(source.(*User_WorkStatus))
  1795  }
  1796  
  1797  // GetDefault returns a default value of the field type
  1798  func (fp *UserWorkStatus_FieldTerminalPath) GetDefault() interface{} {
  1799  	switch fp.selector {
  1800  	case UserWorkStatus_FieldPathSelectorPending:
  1801  		return false
  1802  	default:
  1803  		panic(fmt.Sprintf("Invalid selector for User_WorkStatus: %d", fp.selector))
  1804  	}
  1805  }
  1806  
  1807  func (fp *UserWorkStatus_FieldTerminalPath) ClearValue(item *User_WorkStatus) {
  1808  	if item != nil {
  1809  		switch fp.selector {
  1810  		case UserWorkStatus_FieldPathSelectorPending:
  1811  			item.Pending = false
  1812  		default:
  1813  			panic(fmt.Sprintf("Invalid selector for User_WorkStatus: %d", fp.selector))
  1814  		}
  1815  	}
  1816  }
  1817  
  1818  func (fp *UserWorkStatus_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1819  	fp.ClearValue(item.(*User_WorkStatus))
  1820  }
  1821  
  1822  // IsLeaf - whether field path is holds simple value
  1823  func (fp *UserWorkStatus_FieldTerminalPath) IsLeaf() bool {
  1824  	return fp.selector == UserWorkStatus_FieldPathSelectorPending
  1825  }
  1826  
  1827  func (fp *UserWorkStatus_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1828  	return []gotenobject.FieldPath{fp}
  1829  }
  1830  
  1831  func (fp *UserWorkStatus_FieldTerminalPath) WithIValue(value interface{}) UserWorkStatus_FieldPathValue {
  1832  	switch fp.selector {
  1833  	case UserWorkStatus_FieldPathSelectorPending:
  1834  		return &UserWorkStatus_FieldTerminalPathValue{UserWorkStatus_FieldTerminalPath: *fp, value: value.(bool)}
  1835  	default:
  1836  		panic(fmt.Sprintf("Invalid selector for User_WorkStatus: %d", fp.selector))
  1837  	}
  1838  }
  1839  
  1840  func (fp *UserWorkStatus_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1841  	return fp.WithIValue(value)
  1842  }
  1843  
  1844  func (fp *UserWorkStatus_FieldTerminalPath) WithIArrayOfValues(values interface{}) UserWorkStatus_FieldPathArrayOfValues {
  1845  	fpaov := &UserWorkStatus_FieldTerminalPathArrayOfValues{UserWorkStatus_FieldTerminalPath: *fp}
  1846  	switch fp.selector {
  1847  	case UserWorkStatus_FieldPathSelectorPending:
  1848  		return &UserWorkStatus_FieldTerminalPathArrayOfValues{UserWorkStatus_FieldTerminalPath: *fp, values: values.([]bool)}
  1849  	default:
  1850  		panic(fmt.Sprintf("Invalid selector for User_WorkStatus: %d", fp.selector))
  1851  	}
  1852  	return fpaov
  1853  }
  1854  
  1855  func (fp *UserWorkStatus_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1856  	return fp.WithIArrayOfValues(values)
  1857  }
  1858  
  1859  func (fp *UserWorkStatus_FieldTerminalPath) WithIArrayItemValue(value interface{}) UserWorkStatus_FieldPathArrayItemValue {
  1860  	switch fp.selector {
  1861  	default:
  1862  		panic(fmt.Sprintf("Invalid selector for User_WorkStatus: %d", fp.selector))
  1863  	}
  1864  }
  1865  
  1866  func (fp *UserWorkStatus_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1867  	return fp.WithIArrayItemValue(value)
  1868  }
  1869  
  1870  // UserWorkStatus_FieldPathValue allows storing values for WorkStatus fields according to their type
  1871  type UserWorkStatus_FieldPathValue interface {
  1872  	UserWorkStatus_FieldPath
  1873  	gotenobject.FieldPathValue
  1874  	SetTo(target **User_WorkStatus)
  1875  	CompareWith(*User_WorkStatus) (cmp int, comparable bool)
  1876  }
  1877  
  1878  func ParseUserWorkStatus_FieldPathValue(pathStr, valueStr string) (UserWorkStatus_FieldPathValue, error) {
  1879  	fp, err := ParseUserWorkStatus_FieldPath(pathStr)
  1880  	if err != nil {
  1881  		return nil, err
  1882  	}
  1883  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1884  	if err != nil {
  1885  		return nil, status.Errorf(codes.InvalidArgument, "error parsing WorkStatus field path value from %s: %v", valueStr, err)
  1886  	}
  1887  	return fpv.(UserWorkStatus_FieldPathValue), nil
  1888  }
  1889  
  1890  func MustParseUserWorkStatus_FieldPathValue(pathStr, valueStr string) UserWorkStatus_FieldPathValue {
  1891  	fpv, err := ParseUserWorkStatus_FieldPathValue(pathStr, valueStr)
  1892  	if err != nil {
  1893  		panic(err)
  1894  	}
  1895  	return fpv
  1896  }
  1897  
  1898  type UserWorkStatus_FieldTerminalPathValue struct {
  1899  	UserWorkStatus_FieldTerminalPath
  1900  	value interface{}
  1901  }
  1902  
  1903  var _ UserWorkStatus_FieldPathValue = (*UserWorkStatus_FieldTerminalPathValue)(nil)
  1904  
  1905  // GetRawValue returns raw value stored under selected path for 'WorkStatus' as interface{}
  1906  func (fpv *UserWorkStatus_FieldTerminalPathValue) GetRawValue() interface{} {
  1907  	return fpv.value
  1908  }
  1909  func (fpv *UserWorkStatus_FieldTerminalPathValue) AsPendingValue() (bool, bool) {
  1910  	res, ok := fpv.value.(bool)
  1911  	return res, ok
  1912  }
  1913  
  1914  // SetTo stores value for selected field for object WorkStatus
  1915  func (fpv *UserWorkStatus_FieldTerminalPathValue) SetTo(target **User_WorkStatus) {
  1916  	if *target == nil {
  1917  		*target = new(User_WorkStatus)
  1918  	}
  1919  	switch fpv.selector {
  1920  	case UserWorkStatus_FieldPathSelectorPending:
  1921  		(*target).Pending = fpv.value.(bool)
  1922  	default:
  1923  		panic(fmt.Sprintf("Invalid selector for User_WorkStatus: %d", fpv.selector))
  1924  	}
  1925  }
  1926  
  1927  func (fpv *UserWorkStatus_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1928  	typedObject := target.(*User_WorkStatus)
  1929  	fpv.SetTo(&typedObject)
  1930  }
  1931  
  1932  // CompareWith compares value in the 'UserWorkStatus_FieldTerminalPathValue' with the value under path in 'User_WorkStatus'.
  1933  func (fpv *UserWorkStatus_FieldTerminalPathValue) CompareWith(source *User_WorkStatus) (int, bool) {
  1934  	switch fpv.selector {
  1935  	case UserWorkStatus_FieldPathSelectorPending:
  1936  		leftValue := fpv.value.(bool)
  1937  		rightValue := source.GetPending()
  1938  		if (leftValue) == (rightValue) {
  1939  			return 0, true
  1940  		} else if !(leftValue) && (rightValue) {
  1941  			return -1, true
  1942  		} else {
  1943  			return 1, true
  1944  		}
  1945  	default:
  1946  		panic(fmt.Sprintf("Invalid selector for User_WorkStatus: %d", fpv.selector))
  1947  	}
  1948  }
  1949  
  1950  func (fpv *UserWorkStatus_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1951  	return fpv.CompareWith(source.(*User_WorkStatus))
  1952  }
  1953  
  1954  // UserWorkStatus_FieldPathArrayItemValue allows storing single item in Path-specific values for WorkStatus according to their type
  1955  // Present only for array (repeated) types.
  1956  type UserWorkStatus_FieldPathArrayItemValue interface {
  1957  	gotenobject.FieldPathArrayItemValue
  1958  	UserWorkStatus_FieldPath
  1959  	ContainsValue(*User_WorkStatus) bool
  1960  }
  1961  
  1962  // ParseUserWorkStatus_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1963  func ParseUserWorkStatus_FieldPathArrayItemValue(pathStr, valueStr string) (UserWorkStatus_FieldPathArrayItemValue, error) {
  1964  	fp, err := ParseUserWorkStatus_FieldPath(pathStr)
  1965  	if err != nil {
  1966  		return nil, err
  1967  	}
  1968  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1969  	if err != nil {
  1970  		return nil, status.Errorf(codes.InvalidArgument, "error parsing WorkStatus field path array item value from %s: %v", valueStr, err)
  1971  	}
  1972  	return fpaiv.(UserWorkStatus_FieldPathArrayItemValue), nil
  1973  }
  1974  
  1975  func MustParseUserWorkStatus_FieldPathArrayItemValue(pathStr, valueStr string) UserWorkStatus_FieldPathArrayItemValue {
  1976  	fpaiv, err := ParseUserWorkStatus_FieldPathArrayItemValue(pathStr, valueStr)
  1977  	if err != nil {
  1978  		panic(err)
  1979  	}
  1980  	return fpaiv
  1981  }
  1982  
  1983  type UserWorkStatus_FieldTerminalPathArrayItemValue struct {
  1984  	UserWorkStatus_FieldTerminalPath
  1985  	value interface{}
  1986  }
  1987  
  1988  var _ UserWorkStatus_FieldPathArrayItemValue = (*UserWorkStatus_FieldTerminalPathArrayItemValue)(nil)
  1989  
  1990  // GetRawValue returns stored element value for array in object User_WorkStatus as interface{}
  1991  func (fpaiv *UserWorkStatus_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1992  	return fpaiv.value
  1993  }
  1994  
  1995  func (fpaiv *UserWorkStatus_FieldTerminalPathArrayItemValue) GetSingle(source *User_WorkStatus) (interface{}, bool) {
  1996  	return nil, false
  1997  }
  1998  
  1999  func (fpaiv *UserWorkStatus_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2000  	return fpaiv.GetSingle(source.(*User_WorkStatus))
  2001  }
  2002  
  2003  // Contains returns a boolean indicating if value that is being held is present in given 'WorkStatus'
  2004  func (fpaiv *UserWorkStatus_FieldTerminalPathArrayItemValue) ContainsValue(source *User_WorkStatus) bool {
  2005  	slice := fpaiv.UserWorkStatus_FieldTerminalPath.Get(source)
  2006  	for _, v := range slice {
  2007  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  2008  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  2009  				return true
  2010  			}
  2011  		} else if reflect.DeepEqual(v, fpaiv.value) {
  2012  			return true
  2013  		}
  2014  	}
  2015  	return false
  2016  }
  2017  
  2018  // UserWorkStatus_FieldPathArrayOfValues allows storing slice of values for WorkStatus fields according to their type
  2019  type UserWorkStatus_FieldPathArrayOfValues interface {
  2020  	gotenobject.FieldPathArrayOfValues
  2021  	UserWorkStatus_FieldPath
  2022  }
  2023  
  2024  func ParseUserWorkStatus_FieldPathArrayOfValues(pathStr, valuesStr string) (UserWorkStatus_FieldPathArrayOfValues, error) {
  2025  	fp, err := ParseUserWorkStatus_FieldPath(pathStr)
  2026  	if err != nil {
  2027  		return nil, err
  2028  	}
  2029  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  2030  	if err != nil {
  2031  		return nil, status.Errorf(codes.InvalidArgument, "error parsing WorkStatus field path array of values from %s: %v", valuesStr, err)
  2032  	}
  2033  	return fpaov.(UserWorkStatus_FieldPathArrayOfValues), nil
  2034  }
  2035  
  2036  func MustParseUserWorkStatus_FieldPathArrayOfValues(pathStr, valuesStr string) UserWorkStatus_FieldPathArrayOfValues {
  2037  	fpaov, err := ParseUserWorkStatus_FieldPathArrayOfValues(pathStr, valuesStr)
  2038  	if err != nil {
  2039  		panic(err)
  2040  	}
  2041  	return fpaov
  2042  }
  2043  
  2044  type UserWorkStatus_FieldTerminalPathArrayOfValues struct {
  2045  	UserWorkStatus_FieldTerminalPath
  2046  	values interface{}
  2047  }
  2048  
  2049  var _ UserWorkStatus_FieldPathArrayOfValues = (*UserWorkStatus_FieldTerminalPathArrayOfValues)(nil)
  2050  
  2051  func (fpaov *UserWorkStatus_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  2052  	switch fpaov.selector {
  2053  	case UserWorkStatus_FieldPathSelectorPending:
  2054  		for _, v := range fpaov.values.([]bool) {
  2055  			values = append(values, v)
  2056  		}
  2057  	}
  2058  	return
  2059  }
  2060  func (fpaov *UserWorkStatus_FieldTerminalPathArrayOfValues) AsPendingArrayOfValues() ([]bool, bool) {
  2061  	res, ok := fpaov.values.([]bool)
  2062  	return res, ok
  2063  }