github.com/cloudwan/edgelq-sdk@v1.15.4/monitoring/resources/v4/project/project.pb.fieldpath.go (about)

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