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

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