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

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