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

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