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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/iam/proto/v1/group_member.proto
     3  // DO NOT EDIT!!!
     4  
     5  package group_member
     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  	group "github.com/cloudwan/edgelq-sdk/iam/resources/v1/group"
    27  	meta "github.com/cloudwan/goten-sdk/types/meta"
    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  	_ = &group.Group{}
    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 GroupMember_FieldPath interface {
    57  	gotenobject.FieldPath
    58  	Selector() GroupMember_FieldPathSelector
    59  	Get(source *GroupMember) []interface{}
    60  	GetSingle(source *GroupMember) (interface{}, bool)
    61  	ClearValue(item *GroupMember)
    62  
    63  	// Those methods build corresponding GroupMember_FieldPathValue
    64  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    65  	WithIValue(value interface{}) GroupMember_FieldPathValue
    66  	WithIArrayOfValues(values interface{}) GroupMember_FieldPathArrayOfValues
    67  	WithIArrayItemValue(value interface{}) GroupMember_FieldPathArrayItemValue
    68  }
    69  
    70  type GroupMember_FieldPathSelector int32
    71  
    72  const (
    73  	GroupMember_FieldPathSelectorName               GroupMember_FieldPathSelector = 0
    74  	GroupMember_FieldPathSelectorMetadata           GroupMember_FieldPathSelector = 1
    75  	GroupMember_FieldPathSelectorMember             GroupMember_FieldPathSelector = 2
    76  	GroupMember_FieldPathSelectorParentMember       GroupMember_FieldPathSelector = 3
    77  	GroupMember_FieldPathSelectorMinAncestryMembers GroupMember_FieldPathSelector = 4
    78  )
    79  
    80  func (s GroupMember_FieldPathSelector) String() string {
    81  	switch s {
    82  	case GroupMember_FieldPathSelectorName:
    83  		return "name"
    84  	case GroupMember_FieldPathSelectorMetadata:
    85  		return "metadata"
    86  	case GroupMember_FieldPathSelectorMember:
    87  		return "member"
    88  	case GroupMember_FieldPathSelectorParentMember:
    89  		return "parent_member"
    90  	case GroupMember_FieldPathSelectorMinAncestryMembers:
    91  		return "min_ancestry_members"
    92  	default:
    93  		panic(fmt.Sprintf("Invalid selector for GroupMember: %d", s))
    94  	}
    95  }
    96  
    97  func BuildGroupMember_FieldPath(fp gotenobject.RawFieldPath) (GroupMember_FieldPath, error) {
    98  	if len(fp) == 0 {
    99  		return nil, status.Error(codes.InvalidArgument, "empty field path for object GroupMember")
   100  	}
   101  	if len(fp) == 1 {
   102  		switch fp[0] {
   103  		case "name":
   104  			return &GroupMember_FieldTerminalPath{selector: GroupMember_FieldPathSelectorName}, nil
   105  		case "metadata":
   106  			return &GroupMember_FieldTerminalPath{selector: GroupMember_FieldPathSelectorMetadata}, nil
   107  		case "member":
   108  			return &GroupMember_FieldTerminalPath{selector: GroupMember_FieldPathSelectorMember}, nil
   109  		case "parent_member", "parentMember", "parent-member":
   110  			return &GroupMember_FieldTerminalPath{selector: GroupMember_FieldPathSelectorParentMember}, nil
   111  		case "min_ancestry_members", "minAncestryMembers", "min-ancestry-members":
   112  			return &GroupMember_FieldTerminalPath{selector: GroupMember_FieldPathSelectorMinAncestryMembers}, nil
   113  		}
   114  	} else {
   115  		switch fp[0] {
   116  		case "metadata":
   117  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   118  				return nil, err
   119  			} else {
   120  				return &GroupMember_FieldSubPath{selector: GroupMember_FieldPathSelectorMetadata, subPath: subpath}, nil
   121  			}
   122  		}
   123  	}
   124  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object GroupMember", fp)
   125  }
   126  
   127  func ParseGroupMember_FieldPath(rawField string) (GroupMember_FieldPath, error) {
   128  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   129  	if err != nil {
   130  		return nil, err
   131  	}
   132  	return BuildGroupMember_FieldPath(fp)
   133  }
   134  
   135  func MustParseGroupMember_FieldPath(rawField string) GroupMember_FieldPath {
   136  	fp, err := ParseGroupMember_FieldPath(rawField)
   137  	if err != nil {
   138  		panic(err)
   139  	}
   140  	return fp
   141  }
   142  
   143  type GroupMember_FieldTerminalPath struct {
   144  	selector GroupMember_FieldPathSelector
   145  }
   146  
   147  var _ GroupMember_FieldPath = (*GroupMember_FieldTerminalPath)(nil)
   148  
   149  func (fp *GroupMember_FieldTerminalPath) Selector() GroupMember_FieldPathSelector {
   150  	return fp.selector
   151  }
   152  
   153  // String returns path representation in proto convention
   154  func (fp *GroupMember_FieldTerminalPath) String() string {
   155  	return fp.selector.String()
   156  }
   157  
   158  // JSONString returns path representation is JSON convention
   159  func (fp *GroupMember_FieldTerminalPath) JSONString() string {
   160  	return strcase.ToLowerCamel(fp.String())
   161  }
   162  
   163  // Get returns all values pointed by specific field from source GroupMember
   164  func (fp *GroupMember_FieldTerminalPath) Get(source *GroupMember) (values []interface{}) {
   165  	if source != nil {
   166  		switch fp.selector {
   167  		case GroupMember_FieldPathSelectorName:
   168  			if source.Name != nil {
   169  				values = append(values, source.Name)
   170  			}
   171  		case GroupMember_FieldPathSelectorMetadata:
   172  			if source.Metadata != nil {
   173  				values = append(values, source.Metadata)
   174  			}
   175  		case GroupMember_FieldPathSelectorMember:
   176  			values = append(values, source.Member)
   177  		case GroupMember_FieldPathSelectorParentMember:
   178  			values = append(values, source.ParentMember)
   179  		case GroupMember_FieldPathSelectorMinAncestryMembers:
   180  			for _, value := range source.GetMinAncestryMembers() {
   181  				values = append(values, value)
   182  			}
   183  		default:
   184  			panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fp.selector))
   185  		}
   186  	}
   187  	return
   188  }
   189  
   190  func (fp *GroupMember_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   191  	return fp.Get(source.(*GroupMember))
   192  }
   193  
   194  // GetSingle returns value pointed by specific field of from source GroupMember
   195  func (fp *GroupMember_FieldTerminalPath) GetSingle(source *GroupMember) (interface{}, bool) {
   196  	switch fp.selector {
   197  	case GroupMember_FieldPathSelectorName:
   198  		res := source.GetName()
   199  		return res, res != nil
   200  	case GroupMember_FieldPathSelectorMetadata:
   201  		res := source.GetMetadata()
   202  		return res, res != nil
   203  	case GroupMember_FieldPathSelectorMember:
   204  		return source.GetMember(), source != nil
   205  	case GroupMember_FieldPathSelectorParentMember:
   206  		return source.GetParentMember(), source != nil
   207  	case GroupMember_FieldPathSelectorMinAncestryMembers:
   208  		res := source.GetMinAncestryMembers()
   209  		return res, res != nil
   210  	default:
   211  		panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fp.selector))
   212  	}
   213  }
   214  
   215  func (fp *GroupMember_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   216  	return fp.GetSingle(source.(*GroupMember))
   217  }
   218  
   219  // GetDefault returns a default value of the field type
   220  func (fp *GroupMember_FieldTerminalPath) GetDefault() interface{} {
   221  	switch fp.selector {
   222  	case GroupMember_FieldPathSelectorName:
   223  		return (*Name)(nil)
   224  	case GroupMember_FieldPathSelectorMetadata:
   225  		return (*meta.Meta)(nil)
   226  	case GroupMember_FieldPathSelectorMember:
   227  		return ""
   228  	case GroupMember_FieldPathSelectorParentMember:
   229  		return ""
   230  	case GroupMember_FieldPathSelectorMinAncestryMembers:
   231  		return ([]string)(nil)
   232  	default:
   233  		panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fp.selector))
   234  	}
   235  }
   236  
   237  func (fp *GroupMember_FieldTerminalPath) ClearValue(item *GroupMember) {
   238  	if item != nil {
   239  		switch fp.selector {
   240  		case GroupMember_FieldPathSelectorName:
   241  			item.Name = nil
   242  		case GroupMember_FieldPathSelectorMetadata:
   243  			item.Metadata = nil
   244  		case GroupMember_FieldPathSelectorMember:
   245  			item.Member = ""
   246  		case GroupMember_FieldPathSelectorParentMember:
   247  			item.ParentMember = ""
   248  		case GroupMember_FieldPathSelectorMinAncestryMembers:
   249  			item.MinAncestryMembers = nil
   250  		default:
   251  			panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fp.selector))
   252  		}
   253  	}
   254  }
   255  
   256  func (fp *GroupMember_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   257  	fp.ClearValue(item.(*GroupMember))
   258  }
   259  
   260  // IsLeaf - whether field path is holds simple value
   261  func (fp *GroupMember_FieldTerminalPath) IsLeaf() bool {
   262  	return fp.selector == GroupMember_FieldPathSelectorName ||
   263  		fp.selector == GroupMember_FieldPathSelectorMember ||
   264  		fp.selector == GroupMember_FieldPathSelectorParentMember ||
   265  		fp.selector == GroupMember_FieldPathSelectorMinAncestryMembers
   266  }
   267  
   268  func (fp *GroupMember_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   269  	return []gotenobject.FieldPath{fp}
   270  }
   271  
   272  func (fp *GroupMember_FieldTerminalPath) WithIValue(value interface{}) GroupMember_FieldPathValue {
   273  	switch fp.selector {
   274  	case GroupMember_FieldPathSelectorName:
   275  		return &GroupMember_FieldTerminalPathValue{GroupMember_FieldTerminalPath: *fp, value: value.(*Name)}
   276  	case GroupMember_FieldPathSelectorMetadata:
   277  		return &GroupMember_FieldTerminalPathValue{GroupMember_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   278  	case GroupMember_FieldPathSelectorMember:
   279  		return &GroupMember_FieldTerminalPathValue{GroupMember_FieldTerminalPath: *fp, value: value.(string)}
   280  	case GroupMember_FieldPathSelectorParentMember:
   281  		return &GroupMember_FieldTerminalPathValue{GroupMember_FieldTerminalPath: *fp, value: value.(string)}
   282  	case GroupMember_FieldPathSelectorMinAncestryMembers:
   283  		return &GroupMember_FieldTerminalPathValue{GroupMember_FieldTerminalPath: *fp, value: value.([]string)}
   284  	default:
   285  		panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fp.selector))
   286  	}
   287  }
   288  
   289  func (fp *GroupMember_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   290  	return fp.WithIValue(value)
   291  }
   292  
   293  func (fp *GroupMember_FieldTerminalPath) WithIArrayOfValues(values interface{}) GroupMember_FieldPathArrayOfValues {
   294  	fpaov := &GroupMember_FieldTerminalPathArrayOfValues{GroupMember_FieldTerminalPath: *fp}
   295  	switch fp.selector {
   296  	case GroupMember_FieldPathSelectorName:
   297  		return &GroupMember_FieldTerminalPathArrayOfValues{GroupMember_FieldTerminalPath: *fp, values: values.([]*Name)}
   298  	case GroupMember_FieldPathSelectorMetadata:
   299  		return &GroupMember_FieldTerminalPathArrayOfValues{GroupMember_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   300  	case GroupMember_FieldPathSelectorMember:
   301  		return &GroupMember_FieldTerminalPathArrayOfValues{GroupMember_FieldTerminalPath: *fp, values: values.([]string)}
   302  	case GroupMember_FieldPathSelectorParentMember:
   303  		return &GroupMember_FieldTerminalPathArrayOfValues{GroupMember_FieldTerminalPath: *fp, values: values.([]string)}
   304  	case GroupMember_FieldPathSelectorMinAncestryMembers:
   305  		return &GroupMember_FieldTerminalPathArrayOfValues{GroupMember_FieldTerminalPath: *fp, values: values.([][]string)}
   306  	default:
   307  		panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fp.selector))
   308  	}
   309  	return fpaov
   310  }
   311  
   312  func (fp *GroupMember_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   313  	return fp.WithIArrayOfValues(values)
   314  }
   315  
   316  func (fp *GroupMember_FieldTerminalPath) WithIArrayItemValue(value interface{}) GroupMember_FieldPathArrayItemValue {
   317  	switch fp.selector {
   318  	case GroupMember_FieldPathSelectorMinAncestryMembers:
   319  		return &GroupMember_FieldTerminalPathArrayItemValue{GroupMember_FieldTerminalPath: *fp, value: value.(string)}
   320  	default:
   321  		panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fp.selector))
   322  	}
   323  }
   324  
   325  func (fp *GroupMember_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   326  	return fp.WithIArrayItemValue(value)
   327  }
   328  
   329  type GroupMember_FieldSubPath struct {
   330  	selector GroupMember_FieldPathSelector
   331  	subPath  gotenobject.FieldPath
   332  }
   333  
   334  var _ GroupMember_FieldPath = (*GroupMember_FieldSubPath)(nil)
   335  
   336  func (fps *GroupMember_FieldSubPath) Selector() GroupMember_FieldPathSelector {
   337  	return fps.selector
   338  }
   339  func (fps *GroupMember_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   340  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   341  	return res, ok
   342  }
   343  
   344  // String returns path representation in proto convention
   345  func (fps *GroupMember_FieldSubPath) String() string {
   346  	return fps.selector.String() + "." + fps.subPath.String()
   347  }
   348  
   349  // JSONString returns path representation is JSON convention
   350  func (fps *GroupMember_FieldSubPath) JSONString() string {
   351  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   352  }
   353  
   354  // Get returns all values pointed by selected field from source GroupMember
   355  func (fps *GroupMember_FieldSubPath) Get(source *GroupMember) (values []interface{}) {
   356  	switch fps.selector {
   357  	case GroupMember_FieldPathSelectorMetadata:
   358  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   359  	default:
   360  		panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fps.selector))
   361  	}
   362  	return
   363  }
   364  
   365  func (fps *GroupMember_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   366  	return fps.Get(source.(*GroupMember))
   367  }
   368  
   369  // GetSingle returns value of selected field from source GroupMember
   370  func (fps *GroupMember_FieldSubPath) GetSingle(source *GroupMember) (interface{}, bool) {
   371  	switch fps.selector {
   372  	case GroupMember_FieldPathSelectorMetadata:
   373  		if source.GetMetadata() == nil {
   374  			return nil, false
   375  		}
   376  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   377  	default:
   378  		panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fps.selector))
   379  	}
   380  }
   381  
   382  func (fps *GroupMember_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   383  	return fps.GetSingle(source.(*GroupMember))
   384  }
   385  
   386  // GetDefault returns a default value of the field type
   387  func (fps *GroupMember_FieldSubPath) GetDefault() interface{} {
   388  	return fps.subPath.GetDefault()
   389  }
   390  
   391  func (fps *GroupMember_FieldSubPath) ClearValue(item *GroupMember) {
   392  	if item != nil {
   393  		switch fps.selector {
   394  		case GroupMember_FieldPathSelectorMetadata:
   395  			fps.subPath.ClearValueRaw(item.Metadata)
   396  		default:
   397  			panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fps.selector))
   398  		}
   399  	}
   400  }
   401  
   402  func (fps *GroupMember_FieldSubPath) ClearValueRaw(item proto.Message) {
   403  	fps.ClearValue(item.(*GroupMember))
   404  }
   405  
   406  // IsLeaf - whether field path is holds simple value
   407  func (fps *GroupMember_FieldSubPath) IsLeaf() bool {
   408  	return fps.subPath.IsLeaf()
   409  }
   410  
   411  func (fps *GroupMember_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   412  	iPaths := []gotenobject.FieldPath{&GroupMember_FieldTerminalPath{selector: fps.selector}}
   413  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   414  	return iPaths
   415  }
   416  
   417  func (fps *GroupMember_FieldSubPath) WithIValue(value interface{}) GroupMember_FieldPathValue {
   418  	return &GroupMember_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   419  }
   420  
   421  func (fps *GroupMember_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   422  	return fps.WithIValue(value)
   423  }
   424  
   425  func (fps *GroupMember_FieldSubPath) WithIArrayOfValues(values interface{}) GroupMember_FieldPathArrayOfValues {
   426  	return &GroupMember_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   427  }
   428  
   429  func (fps *GroupMember_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   430  	return fps.WithIArrayOfValues(values)
   431  }
   432  
   433  func (fps *GroupMember_FieldSubPath) WithIArrayItemValue(value interface{}) GroupMember_FieldPathArrayItemValue {
   434  	return &GroupMember_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   435  }
   436  
   437  func (fps *GroupMember_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   438  	return fps.WithIArrayItemValue(value)
   439  }
   440  
   441  // GroupMember_FieldPathValue allows storing values for GroupMember fields according to their type
   442  type GroupMember_FieldPathValue interface {
   443  	GroupMember_FieldPath
   444  	gotenobject.FieldPathValue
   445  	SetTo(target **GroupMember)
   446  	CompareWith(*GroupMember) (cmp int, comparable bool)
   447  }
   448  
   449  func ParseGroupMember_FieldPathValue(pathStr, valueStr string) (GroupMember_FieldPathValue, error) {
   450  	fp, err := ParseGroupMember_FieldPath(pathStr)
   451  	if err != nil {
   452  		return nil, err
   453  	}
   454  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   455  	if err != nil {
   456  		return nil, status.Errorf(codes.InvalidArgument, "error parsing GroupMember field path value from %s: %v", valueStr, err)
   457  	}
   458  	return fpv.(GroupMember_FieldPathValue), nil
   459  }
   460  
   461  func MustParseGroupMember_FieldPathValue(pathStr, valueStr string) GroupMember_FieldPathValue {
   462  	fpv, err := ParseGroupMember_FieldPathValue(pathStr, valueStr)
   463  	if err != nil {
   464  		panic(err)
   465  	}
   466  	return fpv
   467  }
   468  
   469  type GroupMember_FieldTerminalPathValue struct {
   470  	GroupMember_FieldTerminalPath
   471  	value interface{}
   472  }
   473  
   474  var _ GroupMember_FieldPathValue = (*GroupMember_FieldTerminalPathValue)(nil)
   475  
   476  // GetRawValue returns raw value stored under selected path for 'GroupMember' as interface{}
   477  func (fpv *GroupMember_FieldTerminalPathValue) GetRawValue() interface{} {
   478  	return fpv.value
   479  }
   480  func (fpv *GroupMember_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   481  	res, ok := fpv.value.(*Name)
   482  	return res, ok
   483  }
   484  func (fpv *GroupMember_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   485  	res, ok := fpv.value.(*meta.Meta)
   486  	return res, ok
   487  }
   488  func (fpv *GroupMember_FieldTerminalPathValue) AsMemberValue() (string, bool) {
   489  	res, ok := fpv.value.(string)
   490  	return res, ok
   491  }
   492  func (fpv *GroupMember_FieldTerminalPathValue) AsParentMemberValue() (string, bool) {
   493  	res, ok := fpv.value.(string)
   494  	return res, ok
   495  }
   496  func (fpv *GroupMember_FieldTerminalPathValue) AsMinAncestryMembersValue() ([]string, bool) {
   497  	res, ok := fpv.value.([]string)
   498  	return res, ok
   499  }
   500  
   501  // SetTo stores value for selected field for object GroupMember
   502  func (fpv *GroupMember_FieldTerminalPathValue) SetTo(target **GroupMember) {
   503  	if *target == nil {
   504  		*target = new(GroupMember)
   505  	}
   506  	switch fpv.selector {
   507  	case GroupMember_FieldPathSelectorName:
   508  		(*target).Name = fpv.value.(*Name)
   509  	case GroupMember_FieldPathSelectorMetadata:
   510  		(*target).Metadata = fpv.value.(*meta.Meta)
   511  	case GroupMember_FieldPathSelectorMember:
   512  		(*target).Member = fpv.value.(string)
   513  	case GroupMember_FieldPathSelectorParentMember:
   514  		(*target).ParentMember = fpv.value.(string)
   515  	case GroupMember_FieldPathSelectorMinAncestryMembers:
   516  		(*target).MinAncestryMembers = fpv.value.([]string)
   517  	default:
   518  		panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fpv.selector))
   519  	}
   520  }
   521  
   522  func (fpv *GroupMember_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   523  	typedObject := target.(*GroupMember)
   524  	fpv.SetTo(&typedObject)
   525  }
   526  
   527  // CompareWith compares value in the 'GroupMember_FieldTerminalPathValue' with the value under path in 'GroupMember'.
   528  func (fpv *GroupMember_FieldTerminalPathValue) CompareWith(source *GroupMember) (int, bool) {
   529  	switch fpv.selector {
   530  	case GroupMember_FieldPathSelectorName:
   531  		leftValue := fpv.value.(*Name)
   532  		rightValue := source.GetName()
   533  		if leftValue == nil {
   534  			if rightValue != nil {
   535  				return -1, true
   536  			}
   537  			return 0, true
   538  		}
   539  		if rightValue == nil {
   540  			return 1, true
   541  		}
   542  		if leftValue.String() == rightValue.String() {
   543  			return 0, true
   544  		} else if leftValue.String() < rightValue.String() {
   545  			return -1, true
   546  		} else {
   547  			return 1, true
   548  		}
   549  	case GroupMember_FieldPathSelectorMetadata:
   550  		return 0, false
   551  	case GroupMember_FieldPathSelectorMember:
   552  		leftValue := fpv.value.(string)
   553  		rightValue := source.GetMember()
   554  		if (leftValue) == (rightValue) {
   555  			return 0, true
   556  		} else if (leftValue) < (rightValue) {
   557  			return -1, true
   558  		} else {
   559  			return 1, true
   560  		}
   561  	case GroupMember_FieldPathSelectorParentMember:
   562  		leftValue := fpv.value.(string)
   563  		rightValue := source.GetParentMember()
   564  		if (leftValue) == (rightValue) {
   565  			return 0, true
   566  		} else if (leftValue) < (rightValue) {
   567  			return -1, true
   568  		} else {
   569  			return 1, true
   570  		}
   571  	case GroupMember_FieldPathSelectorMinAncestryMembers:
   572  		return 0, false
   573  	default:
   574  		panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fpv.selector))
   575  	}
   576  }
   577  
   578  func (fpv *GroupMember_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   579  	return fpv.CompareWith(source.(*GroupMember))
   580  }
   581  
   582  type GroupMember_FieldSubPathValue struct {
   583  	GroupMember_FieldPath
   584  	subPathValue gotenobject.FieldPathValue
   585  }
   586  
   587  var _ GroupMember_FieldPathValue = (*GroupMember_FieldSubPathValue)(nil)
   588  
   589  func (fpvs *GroupMember_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   590  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   591  	return res, ok
   592  }
   593  
   594  func (fpvs *GroupMember_FieldSubPathValue) SetTo(target **GroupMember) {
   595  	if *target == nil {
   596  		*target = new(GroupMember)
   597  	}
   598  	switch fpvs.Selector() {
   599  	case GroupMember_FieldPathSelectorMetadata:
   600  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
   601  	default:
   602  		panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fpvs.Selector()))
   603  	}
   604  }
   605  
   606  func (fpvs *GroupMember_FieldSubPathValue) SetToRaw(target proto.Message) {
   607  	typedObject := target.(*GroupMember)
   608  	fpvs.SetTo(&typedObject)
   609  }
   610  
   611  func (fpvs *GroupMember_FieldSubPathValue) GetRawValue() interface{} {
   612  	return fpvs.subPathValue.GetRawValue()
   613  }
   614  
   615  func (fpvs *GroupMember_FieldSubPathValue) CompareWith(source *GroupMember) (int, bool) {
   616  	switch fpvs.Selector() {
   617  	case GroupMember_FieldPathSelectorMetadata:
   618  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
   619  	default:
   620  		panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fpvs.Selector()))
   621  	}
   622  }
   623  
   624  func (fpvs *GroupMember_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   625  	return fpvs.CompareWith(source.(*GroupMember))
   626  }
   627  
   628  // GroupMember_FieldPathArrayItemValue allows storing single item in Path-specific values for GroupMember according to their type
   629  // Present only for array (repeated) types.
   630  type GroupMember_FieldPathArrayItemValue interface {
   631  	gotenobject.FieldPathArrayItemValue
   632  	GroupMember_FieldPath
   633  	ContainsValue(*GroupMember) bool
   634  }
   635  
   636  // ParseGroupMember_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   637  func ParseGroupMember_FieldPathArrayItemValue(pathStr, valueStr string) (GroupMember_FieldPathArrayItemValue, error) {
   638  	fp, err := ParseGroupMember_FieldPath(pathStr)
   639  	if err != nil {
   640  		return nil, err
   641  	}
   642  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   643  	if err != nil {
   644  		return nil, status.Errorf(codes.InvalidArgument, "error parsing GroupMember field path array item value from %s: %v", valueStr, err)
   645  	}
   646  	return fpaiv.(GroupMember_FieldPathArrayItemValue), nil
   647  }
   648  
   649  func MustParseGroupMember_FieldPathArrayItemValue(pathStr, valueStr string) GroupMember_FieldPathArrayItemValue {
   650  	fpaiv, err := ParseGroupMember_FieldPathArrayItemValue(pathStr, valueStr)
   651  	if err != nil {
   652  		panic(err)
   653  	}
   654  	return fpaiv
   655  }
   656  
   657  type GroupMember_FieldTerminalPathArrayItemValue struct {
   658  	GroupMember_FieldTerminalPath
   659  	value interface{}
   660  }
   661  
   662  var _ GroupMember_FieldPathArrayItemValue = (*GroupMember_FieldTerminalPathArrayItemValue)(nil)
   663  
   664  // GetRawValue returns stored element value for array in object GroupMember as interface{}
   665  func (fpaiv *GroupMember_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   666  	return fpaiv.value
   667  }
   668  func (fpaiv *GroupMember_FieldTerminalPathArrayItemValue) AsMinAncestryMembersItemValue() (string, bool) {
   669  	res, ok := fpaiv.value.(string)
   670  	return res, ok
   671  }
   672  
   673  func (fpaiv *GroupMember_FieldTerminalPathArrayItemValue) GetSingle(source *GroupMember) (interface{}, bool) {
   674  	return nil, false
   675  }
   676  
   677  func (fpaiv *GroupMember_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   678  	return fpaiv.GetSingle(source.(*GroupMember))
   679  }
   680  
   681  // Contains returns a boolean indicating if value that is being held is present in given 'GroupMember'
   682  func (fpaiv *GroupMember_FieldTerminalPathArrayItemValue) ContainsValue(source *GroupMember) bool {
   683  	slice := fpaiv.GroupMember_FieldTerminalPath.Get(source)
   684  	for _, v := range slice {
   685  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   686  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   687  				return true
   688  			}
   689  		} else if reflect.DeepEqual(v, fpaiv.value) {
   690  			return true
   691  		}
   692  	}
   693  	return false
   694  }
   695  
   696  type GroupMember_FieldSubPathArrayItemValue struct {
   697  	GroupMember_FieldPath
   698  	subPathItemValue gotenobject.FieldPathArrayItemValue
   699  }
   700  
   701  // GetRawValue returns stored array item value
   702  func (fpaivs *GroupMember_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
   703  	return fpaivs.subPathItemValue.GetRawItemValue()
   704  }
   705  func (fpaivs *GroupMember_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
   706  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
   707  	return res, ok
   708  }
   709  
   710  // Contains returns a boolean indicating if value that is being held is present in given 'GroupMember'
   711  func (fpaivs *GroupMember_FieldSubPathArrayItemValue) ContainsValue(source *GroupMember) bool {
   712  	switch fpaivs.Selector() {
   713  	case GroupMember_FieldPathSelectorMetadata:
   714  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
   715  	default:
   716  		panic(fmt.Sprintf("Invalid selector for GroupMember: %d", fpaivs.Selector()))
   717  	}
   718  }
   719  
   720  // GroupMember_FieldPathArrayOfValues allows storing slice of values for GroupMember fields according to their type
   721  type GroupMember_FieldPathArrayOfValues interface {
   722  	gotenobject.FieldPathArrayOfValues
   723  	GroupMember_FieldPath
   724  }
   725  
   726  func ParseGroupMember_FieldPathArrayOfValues(pathStr, valuesStr string) (GroupMember_FieldPathArrayOfValues, error) {
   727  	fp, err := ParseGroupMember_FieldPath(pathStr)
   728  	if err != nil {
   729  		return nil, err
   730  	}
   731  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   732  	if err != nil {
   733  		return nil, status.Errorf(codes.InvalidArgument, "error parsing GroupMember field path array of values from %s: %v", valuesStr, err)
   734  	}
   735  	return fpaov.(GroupMember_FieldPathArrayOfValues), nil
   736  }
   737  
   738  func MustParseGroupMember_FieldPathArrayOfValues(pathStr, valuesStr string) GroupMember_FieldPathArrayOfValues {
   739  	fpaov, err := ParseGroupMember_FieldPathArrayOfValues(pathStr, valuesStr)
   740  	if err != nil {
   741  		panic(err)
   742  	}
   743  	return fpaov
   744  }
   745  
   746  type GroupMember_FieldTerminalPathArrayOfValues struct {
   747  	GroupMember_FieldTerminalPath
   748  	values interface{}
   749  }
   750  
   751  var _ GroupMember_FieldPathArrayOfValues = (*GroupMember_FieldTerminalPathArrayOfValues)(nil)
   752  
   753  func (fpaov *GroupMember_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   754  	switch fpaov.selector {
   755  	case GroupMember_FieldPathSelectorName:
   756  		for _, v := range fpaov.values.([]*Name) {
   757  			values = append(values, v)
   758  		}
   759  	case GroupMember_FieldPathSelectorMetadata:
   760  		for _, v := range fpaov.values.([]*meta.Meta) {
   761  			values = append(values, v)
   762  		}
   763  	case GroupMember_FieldPathSelectorMember:
   764  		for _, v := range fpaov.values.([]string) {
   765  			values = append(values, v)
   766  		}
   767  	case GroupMember_FieldPathSelectorParentMember:
   768  		for _, v := range fpaov.values.([]string) {
   769  			values = append(values, v)
   770  		}
   771  	case GroupMember_FieldPathSelectorMinAncestryMembers:
   772  		for _, v := range fpaov.values.([][]string) {
   773  			values = append(values, v)
   774  		}
   775  	}
   776  	return
   777  }
   778  func (fpaov *GroupMember_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
   779  	res, ok := fpaov.values.([]*Name)
   780  	return res, ok
   781  }
   782  func (fpaov *GroupMember_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
   783  	res, ok := fpaov.values.([]*meta.Meta)
   784  	return res, ok
   785  }
   786  func (fpaov *GroupMember_FieldTerminalPathArrayOfValues) AsMemberArrayOfValues() ([]string, bool) {
   787  	res, ok := fpaov.values.([]string)
   788  	return res, ok
   789  }
   790  func (fpaov *GroupMember_FieldTerminalPathArrayOfValues) AsParentMemberArrayOfValues() ([]string, bool) {
   791  	res, ok := fpaov.values.([]string)
   792  	return res, ok
   793  }
   794  func (fpaov *GroupMember_FieldTerminalPathArrayOfValues) AsMinAncestryMembersArrayOfValues() ([][]string, bool) {
   795  	res, ok := fpaov.values.([][]string)
   796  	return res, ok
   797  }
   798  
   799  type GroupMember_FieldSubPathArrayOfValues struct {
   800  	GroupMember_FieldPath
   801  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
   802  }
   803  
   804  var _ GroupMember_FieldPathArrayOfValues = (*GroupMember_FieldSubPathArrayOfValues)(nil)
   805  
   806  func (fpsaov *GroupMember_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
   807  	return fpsaov.subPathArrayOfValues.GetRawValues()
   808  }
   809  func (fpsaov *GroupMember_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
   810  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
   811  	return res, ok
   812  }