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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/iam/proto/v1/common.proto
     3  // DO NOT EDIT!!!
     4  
     5  package iam_common
     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_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/service"
    27  )
    28  
    29  // ensure the imports are used
    30  var (
    31  	_ = new(json.Marshaler)
    32  	_ = new(fmt.Stringer)
    33  	_ = reflect.DeepEqual
    34  	_ = strings.Builder{}
    35  	_ = time.Second
    36  
    37  	_ = strcase.ToLowerCamel
    38  	_ = codes.NotFound
    39  	_ = status.Status{}
    40  	_ = protojson.UnmarshalOptions{}
    41  	_ = new(proto.Message)
    42  	_ = protoregistry.GlobalTypes
    43  
    44  	_ = new(gotenobject.FieldPath)
    45  )
    46  
    47  // make sure we're using proto imports
    48  var (
    49  	_ = &meta_service.Service{}
    50  )
    51  
    52  // FieldPath provides implementation to handle
    53  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    54  type PCR_FieldPath interface {
    55  	gotenobject.FieldPath
    56  	Selector() PCR_FieldPathSelector
    57  	Get(source *PCR) []interface{}
    58  	GetSingle(source *PCR) (interface{}, bool)
    59  	ClearValue(item *PCR)
    60  
    61  	// Those methods build corresponding PCR_FieldPathValue
    62  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    63  	WithIValue(value interface{}) PCR_FieldPathValue
    64  	WithIArrayOfValues(values interface{}) PCR_FieldPathArrayOfValues
    65  	WithIArrayItemValue(value interface{}) PCR_FieldPathArrayItemValue
    66  }
    67  
    68  type PCR_FieldPathSelector int32
    69  
    70  const (
    71  	PCR_FieldPathSelectorIndex     PCR_FieldPathSelector = 0
    72  	PCR_FieldPathSelectorDigestHex PCR_FieldPathSelector = 1
    73  	PCR_FieldPathSelectorDigestAlg PCR_FieldPathSelector = 2
    74  	PCR_FieldPathSelectorComment   PCR_FieldPathSelector = 3
    75  )
    76  
    77  func (s PCR_FieldPathSelector) String() string {
    78  	switch s {
    79  	case PCR_FieldPathSelectorIndex:
    80  		return "index"
    81  	case PCR_FieldPathSelectorDigestHex:
    82  		return "digest_hex"
    83  	case PCR_FieldPathSelectorDigestAlg:
    84  		return "digest_alg"
    85  	case PCR_FieldPathSelectorComment:
    86  		return "comment"
    87  	default:
    88  		panic(fmt.Sprintf("Invalid selector for PCR: %d", s))
    89  	}
    90  }
    91  
    92  func BuildPCR_FieldPath(fp gotenobject.RawFieldPath) (PCR_FieldPath, error) {
    93  	if len(fp) == 0 {
    94  		return nil, status.Error(codes.InvalidArgument, "empty field path for object PCR")
    95  	}
    96  	if len(fp) == 1 {
    97  		switch fp[0] {
    98  		case "index":
    99  			return &PCR_FieldTerminalPath{selector: PCR_FieldPathSelectorIndex}, nil
   100  		case "digest_hex", "digestHex", "digest-hex":
   101  			return &PCR_FieldTerminalPath{selector: PCR_FieldPathSelectorDigestHex}, nil
   102  		case "digest_alg", "digestAlg", "digest-alg":
   103  			return &PCR_FieldTerminalPath{selector: PCR_FieldPathSelectorDigestAlg}, nil
   104  		case "comment":
   105  			return &PCR_FieldTerminalPath{selector: PCR_FieldPathSelectorComment}, nil
   106  		}
   107  	}
   108  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object PCR", fp)
   109  }
   110  
   111  func ParsePCR_FieldPath(rawField string) (PCR_FieldPath, error) {
   112  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   113  	if err != nil {
   114  		return nil, err
   115  	}
   116  	return BuildPCR_FieldPath(fp)
   117  }
   118  
   119  func MustParsePCR_FieldPath(rawField string) PCR_FieldPath {
   120  	fp, err := ParsePCR_FieldPath(rawField)
   121  	if err != nil {
   122  		panic(err)
   123  	}
   124  	return fp
   125  }
   126  
   127  type PCR_FieldTerminalPath struct {
   128  	selector PCR_FieldPathSelector
   129  }
   130  
   131  var _ PCR_FieldPath = (*PCR_FieldTerminalPath)(nil)
   132  
   133  func (fp *PCR_FieldTerminalPath) Selector() PCR_FieldPathSelector {
   134  	return fp.selector
   135  }
   136  
   137  // String returns path representation in proto convention
   138  func (fp *PCR_FieldTerminalPath) String() string {
   139  	return fp.selector.String()
   140  }
   141  
   142  // JSONString returns path representation is JSON convention
   143  func (fp *PCR_FieldTerminalPath) JSONString() string {
   144  	return strcase.ToLowerCamel(fp.String())
   145  }
   146  
   147  // Get returns all values pointed by specific field from source PCR
   148  func (fp *PCR_FieldTerminalPath) Get(source *PCR) (values []interface{}) {
   149  	if source != nil {
   150  		switch fp.selector {
   151  		case PCR_FieldPathSelectorIndex:
   152  			values = append(values, source.Index)
   153  		case PCR_FieldPathSelectorDigestHex:
   154  			values = append(values, source.DigestHex)
   155  		case PCR_FieldPathSelectorDigestAlg:
   156  			values = append(values, source.DigestAlg)
   157  		case PCR_FieldPathSelectorComment:
   158  			values = append(values, source.Comment)
   159  		default:
   160  			panic(fmt.Sprintf("Invalid selector for PCR: %d", fp.selector))
   161  		}
   162  	}
   163  	return
   164  }
   165  
   166  func (fp *PCR_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   167  	return fp.Get(source.(*PCR))
   168  }
   169  
   170  // GetSingle returns value pointed by specific field of from source PCR
   171  func (fp *PCR_FieldTerminalPath) GetSingle(source *PCR) (interface{}, bool) {
   172  	switch fp.selector {
   173  	case PCR_FieldPathSelectorIndex:
   174  		return source.GetIndex(), source != nil
   175  	case PCR_FieldPathSelectorDigestHex:
   176  		return source.GetDigestHex(), source != nil
   177  	case PCR_FieldPathSelectorDigestAlg:
   178  		return source.GetDigestAlg(), source != nil
   179  	case PCR_FieldPathSelectorComment:
   180  		return source.GetComment(), source != nil
   181  	default:
   182  		panic(fmt.Sprintf("Invalid selector for PCR: %d", fp.selector))
   183  	}
   184  }
   185  
   186  func (fp *PCR_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   187  	return fp.GetSingle(source.(*PCR))
   188  }
   189  
   190  // GetDefault returns a default value of the field type
   191  func (fp *PCR_FieldTerminalPath) GetDefault() interface{} {
   192  	switch fp.selector {
   193  	case PCR_FieldPathSelectorIndex:
   194  		return uint32(0)
   195  	case PCR_FieldPathSelectorDigestHex:
   196  		return ""
   197  	case PCR_FieldPathSelectorDigestAlg:
   198  		return DigestAlg_SHA1
   199  	case PCR_FieldPathSelectorComment:
   200  		return ""
   201  	default:
   202  		panic(fmt.Sprintf("Invalid selector for PCR: %d", fp.selector))
   203  	}
   204  }
   205  
   206  func (fp *PCR_FieldTerminalPath) ClearValue(item *PCR) {
   207  	if item != nil {
   208  		switch fp.selector {
   209  		case PCR_FieldPathSelectorIndex:
   210  			item.Index = uint32(0)
   211  		case PCR_FieldPathSelectorDigestHex:
   212  			item.DigestHex = ""
   213  		case PCR_FieldPathSelectorDigestAlg:
   214  			item.DigestAlg = DigestAlg_SHA1
   215  		case PCR_FieldPathSelectorComment:
   216  			item.Comment = ""
   217  		default:
   218  			panic(fmt.Sprintf("Invalid selector for PCR: %d", fp.selector))
   219  		}
   220  	}
   221  }
   222  
   223  func (fp *PCR_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   224  	fp.ClearValue(item.(*PCR))
   225  }
   226  
   227  // IsLeaf - whether field path is holds simple value
   228  func (fp *PCR_FieldTerminalPath) IsLeaf() bool {
   229  	return fp.selector == PCR_FieldPathSelectorIndex ||
   230  		fp.selector == PCR_FieldPathSelectorDigestHex ||
   231  		fp.selector == PCR_FieldPathSelectorDigestAlg ||
   232  		fp.selector == PCR_FieldPathSelectorComment
   233  }
   234  
   235  func (fp *PCR_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   236  	return []gotenobject.FieldPath{fp}
   237  }
   238  
   239  func (fp *PCR_FieldTerminalPath) WithIValue(value interface{}) PCR_FieldPathValue {
   240  	switch fp.selector {
   241  	case PCR_FieldPathSelectorIndex:
   242  		return &PCR_FieldTerminalPathValue{PCR_FieldTerminalPath: *fp, value: value.(uint32)}
   243  	case PCR_FieldPathSelectorDigestHex:
   244  		return &PCR_FieldTerminalPathValue{PCR_FieldTerminalPath: *fp, value: value.(string)}
   245  	case PCR_FieldPathSelectorDigestAlg:
   246  		return &PCR_FieldTerminalPathValue{PCR_FieldTerminalPath: *fp, value: value.(DigestAlg)}
   247  	case PCR_FieldPathSelectorComment:
   248  		return &PCR_FieldTerminalPathValue{PCR_FieldTerminalPath: *fp, value: value.(string)}
   249  	default:
   250  		panic(fmt.Sprintf("Invalid selector for PCR: %d", fp.selector))
   251  	}
   252  }
   253  
   254  func (fp *PCR_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   255  	return fp.WithIValue(value)
   256  }
   257  
   258  func (fp *PCR_FieldTerminalPath) WithIArrayOfValues(values interface{}) PCR_FieldPathArrayOfValues {
   259  	fpaov := &PCR_FieldTerminalPathArrayOfValues{PCR_FieldTerminalPath: *fp}
   260  	switch fp.selector {
   261  	case PCR_FieldPathSelectorIndex:
   262  		return &PCR_FieldTerminalPathArrayOfValues{PCR_FieldTerminalPath: *fp, values: values.([]uint32)}
   263  	case PCR_FieldPathSelectorDigestHex:
   264  		return &PCR_FieldTerminalPathArrayOfValues{PCR_FieldTerminalPath: *fp, values: values.([]string)}
   265  	case PCR_FieldPathSelectorDigestAlg:
   266  		return &PCR_FieldTerminalPathArrayOfValues{PCR_FieldTerminalPath: *fp, values: values.([]DigestAlg)}
   267  	case PCR_FieldPathSelectorComment:
   268  		return &PCR_FieldTerminalPathArrayOfValues{PCR_FieldTerminalPath: *fp, values: values.([]string)}
   269  	default:
   270  		panic(fmt.Sprintf("Invalid selector for PCR: %d", fp.selector))
   271  	}
   272  	return fpaov
   273  }
   274  
   275  func (fp *PCR_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   276  	return fp.WithIArrayOfValues(values)
   277  }
   278  
   279  func (fp *PCR_FieldTerminalPath) WithIArrayItemValue(value interface{}) PCR_FieldPathArrayItemValue {
   280  	switch fp.selector {
   281  	default:
   282  		panic(fmt.Sprintf("Invalid selector for PCR: %d", fp.selector))
   283  	}
   284  }
   285  
   286  func (fp *PCR_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   287  	return fp.WithIArrayItemValue(value)
   288  }
   289  
   290  // PCR_FieldPathValue allows storing values for PCR fields according to their type
   291  type PCR_FieldPathValue interface {
   292  	PCR_FieldPath
   293  	gotenobject.FieldPathValue
   294  	SetTo(target **PCR)
   295  	CompareWith(*PCR) (cmp int, comparable bool)
   296  }
   297  
   298  func ParsePCR_FieldPathValue(pathStr, valueStr string) (PCR_FieldPathValue, error) {
   299  	fp, err := ParsePCR_FieldPath(pathStr)
   300  	if err != nil {
   301  		return nil, err
   302  	}
   303  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   304  	if err != nil {
   305  		return nil, status.Errorf(codes.InvalidArgument, "error parsing PCR field path value from %s: %v", valueStr, err)
   306  	}
   307  	return fpv.(PCR_FieldPathValue), nil
   308  }
   309  
   310  func MustParsePCR_FieldPathValue(pathStr, valueStr string) PCR_FieldPathValue {
   311  	fpv, err := ParsePCR_FieldPathValue(pathStr, valueStr)
   312  	if err != nil {
   313  		panic(err)
   314  	}
   315  	return fpv
   316  }
   317  
   318  type PCR_FieldTerminalPathValue struct {
   319  	PCR_FieldTerminalPath
   320  	value interface{}
   321  }
   322  
   323  var _ PCR_FieldPathValue = (*PCR_FieldTerminalPathValue)(nil)
   324  
   325  // GetRawValue returns raw value stored under selected path for 'PCR' as interface{}
   326  func (fpv *PCR_FieldTerminalPathValue) GetRawValue() interface{} {
   327  	return fpv.value
   328  }
   329  func (fpv *PCR_FieldTerminalPathValue) AsIndexValue() (uint32, bool) {
   330  	res, ok := fpv.value.(uint32)
   331  	return res, ok
   332  }
   333  func (fpv *PCR_FieldTerminalPathValue) AsDigestHexValue() (string, bool) {
   334  	res, ok := fpv.value.(string)
   335  	return res, ok
   336  }
   337  func (fpv *PCR_FieldTerminalPathValue) AsDigestAlgValue() (DigestAlg, bool) {
   338  	res, ok := fpv.value.(DigestAlg)
   339  	return res, ok
   340  }
   341  func (fpv *PCR_FieldTerminalPathValue) AsCommentValue() (string, bool) {
   342  	res, ok := fpv.value.(string)
   343  	return res, ok
   344  }
   345  
   346  // SetTo stores value for selected field for object PCR
   347  func (fpv *PCR_FieldTerminalPathValue) SetTo(target **PCR) {
   348  	if *target == nil {
   349  		*target = new(PCR)
   350  	}
   351  	switch fpv.selector {
   352  	case PCR_FieldPathSelectorIndex:
   353  		(*target).Index = fpv.value.(uint32)
   354  	case PCR_FieldPathSelectorDigestHex:
   355  		(*target).DigestHex = fpv.value.(string)
   356  	case PCR_FieldPathSelectorDigestAlg:
   357  		(*target).DigestAlg = fpv.value.(DigestAlg)
   358  	case PCR_FieldPathSelectorComment:
   359  		(*target).Comment = fpv.value.(string)
   360  	default:
   361  		panic(fmt.Sprintf("Invalid selector for PCR: %d", fpv.selector))
   362  	}
   363  }
   364  
   365  func (fpv *PCR_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   366  	typedObject := target.(*PCR)
   367  	fpv.SetTo(&typedObject)
   368  }
   369  
   370  // CompareWith compares value in the 'PCR_FieldTerminalPathValue' with the value under path in 'PCR'.
   371  func (fpv *PCR_FieldTerminalPathValue) CompareWith(source *PCR) (int, bool) {
   372  	switch fpv.selector {
   373  	case PCR_FieldPathSelectorIndex:
   374  		leftValue := fpv.value.(uint32)
   375  		rightValue := source.GetIndex()
   376  		if (leftValue) == (rightValue) {
   377  			return 0, true
   378  		} else if (leftValue) < (rightValue) {
   379  			return -1, true
   380  		} else {
   381  			return 1, true
   382  		}
   383  	case PCR_FieldPathSelectorDigestHex:
   384  		leftValue := fpv.value.(string)
   385  		rightValue := source.GetDigestHex()
   386  		if (leftValue) == (rightValue) {
   387  			return 0, true
   388  		} else if (leftValue) < (rightValue) {
   389  			return -1, true
   390  		} else {
   391  			return 1, true
   392  		}
   393  	case PCR_FieldPathSelectorDigestAlg:
   394  		leftValue := fpv.value.(DigestAlg)
   395  		rightValue := source.GetDigestAlg()
   396  		if (leftValue) == (rightValue) {
   397  			return 0, true
   398  		} else if (leftValue) < (rightValue) {
   399  			return -1, true
   400  		} else {
   401  			return 1, true
   402  		}
   403  	case PCR_FieldPathSelectorComment:
   404  		leftValue := fpv.value.(string)
   405  		rightValue := source.GetComment()
   406  		if (leftValue) == (rightValue) {
   407  			return 0, true
   408  		} else if (leftValue) < (rightValue) {
   409  			return -1, true
   410  		} else {
   411  			return 1, true
   412  		}
   413  	default:
   414  		panic(fmt.Sprintf("Invalid selector for PCR: %d", fpv.selector))
   415  	}
   416  }
   417  
   418  func (fpv *PCR_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   419  	return fpv.CompareWith(source.(*PCR))
   420  }
   421  
   422  // PCR_FieldPathArrayItemValue allows storing single item in Path-specific values for PCR according to their type
   423  // Present only for array (repeated) types.
   424  type PCR_FieldPathArrayItemValue interface {
   425  	gotenobject.FieldPathArrayItemValue
   426  	PCR_FieldPath
   427  	ContainsValue(*PCR) bool
   428  }
   429  
   430  // ParsePCR_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   431  func ParsePCR_FieldPathArrayItemValue(pathStr, valueStr string) (PCR_FieldPathArrayItemValue, error) {
   432  	fp, err := ParsePCR_FieldPath(pathStr)
   433  	if err != nil {
   434  		return nil, err
   435  	}
   436  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   437  	if err != nil {
   438  		return nil, status.Errorf(codes.InvalidArgument, "error parsing PCR field path array item value from %s: %v", valueStr, err)
   439  	}
   440  	return fpaiv.(PCR_FieldPathArrayItemValue), nil
   441  }
   442  
   443  func MustParsePCR_FieldPathArrayItemValue(pathStr, valueStr string) PCR_FieldPathArrayItemValue {
   444  	fpaiv, err := ParsePCR_FieldPathArrayItemValue(pathStr, valueStr)
   445  	if err != nil {
   446  		panic(err)
   447  	}
   448  	return fpaiv
   449  }
   450  
   451  type PCR_FieldTerminalPathArrayItemValue struct {
   452  	PCR_FieldTerminalPath
   453  	value interface{}
   454  }
   455  
   456  var _ PCR_FieldPathArrayItemValue = (*PCR_FieldTerminalPathArrayItemValue)(nil)
   457  
   458  // GetRawValue returns stored element value for array in object PCR as interface{}
   459  func (fpaiv *PCR_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   460  	return fpaiv.value
   461  }
   462  
   463  func (fpaiv *PCR_FieldTerminalPathArrayItemValue) GetSingle(source *PCR) (interface{}, bool) {
   464  	return nil, false
   465  }
   466  
   467  func (fpaiv *PCR_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   468  	return fpaiv.GetSingle(source.(*PCR))
   469  }
   470  
   471  // Contains returns a boolean indicating if value that is being held is present in given 'PCR'
   472  func (fpaiv *PCR_FieldTerminalPathArrayItemValue) ContainsValue(source *PCR) bool {
   473  	slice := fpaiv.PCR_FieldTerminalPath.Get(source)
   474  	for _, v := range slice {
   475  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   476  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   477  				return true
   478  			}
   479  		} else if reflect.DeepEqual(v, fpaiv.value) {
   480  			return true
   481  		}
   482  	}
   483  	return false
   484  }
   485  
   486  // PCR_FieldPathArrayOfValues allows storing slice of values for PCR fields according to their type
   487  type PCR_FieldPathArrayOfValues interface {
   488  	gotenobject.FieldPathArrayOfValues
   489  	PCR_FieldPath
   490  }
   491  
   492  func ParsePCR_FieldPathArrayOfValues(pathStr, valuesStr string) (PCR_FieldPathArrayOfValues, error) {
   493  	fp, err := ParsePCR_FieldPath(pathStr)
   494  	if err != nil {
   495  		return nil, err
   496  	}
   497  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   498  	if err != nil {
   499  		return nil, status.Errorf(codes.InvalidArgument, "error parsing PCR field path array of values from %s: %v", valuesStr, err)
   500  	}
   501  	return fpaov.(PCR_FieldPathArrayOfValues), nil
   502  }
   503  
   504  func MustParsePCR_FieldPathArrayOfValues(pathStr, valuesStr string) PCR_FieldPathArrayOfValues {
   505  	fpaov, err := ParsePCR_FieldPathArrayOfValues(pathStr, valuesStr)
   506  	if err != nil {
   507  		panic(err)
   508  	}
   509  	return fpaov
   510  }
   511  
   512  type PCR_FieldTerminalPathArrayOfValues struct {
   513  	PCR_FieldTerminalPath
   514  	values interface{}
   515  }
   516  
   517  var _ PCR_FieldPathArrayOfValues = (*PCR_FieldTerminalPathArrayOfValues)(nil)
   518  
   519  func (fpaov *PCR_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   520  	switch fpaov.selector {
   521  	case PCR_FieldPathSelectorIndex:
   522  		for _, v := range fpaov.values.([]uint32) {
   523  			values = append(values, v)
   524  		}
   525  	case PCR_FieldPathSelectorDigestHex:
   526  		for _, v := range fpaov.values.([]string) {
   527  			values = append(values, v)
   528  		}
   529  	case PCR_FieldPathSelectorDigestAlg:
   530  		for _, v := range fpaov.values.([]DigestAlg) {
   531  			values = append(values, v)
   532  		}
   533  	case PCR_FieldPathSelectorComment:
   534  		for _, v := range fpaov.values.([]string) {
   535  			values = append(values, v)
   536  		}
   537  	}
   538  	return
   539  }
   540  func (fpaov *PCR_FieldTerminalPathArrayOfValues) AsIndexArrayOfValues() ([]uint32, bool) {
   541  	res, ok := fpaov.values.([]uint32)
   542  	return res, ok
   543  }
   544  func (fpaov *PCR_FieldTerminalPathArrayOfValues) AsDigestHexArrayOfValues() ([]string, bool) {
   545  	res, ok := fpaov.values.([]string)
   546  	return res, ok
   547  }
   548  func (fpaov *PCR_FieldTerminalPathArrayOfValues) AsDigestAlgArrayOfValues() ([]DigestAlg, bool) {
   549  	res, ok := fpaov.values.([]DigestAlg)
   550  	return res, ok
   551  }
   552  func (fpaov *PCR_FieldTerminalPathArrayOfValues) AsCommentArrayOfValues() ([]string, bool) {
   553  	res, ok := fpaov.values.([]string)
   554  	return res, ok
   555  }
   556  
   557  // FieldPath provides implementation to handle
   558  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
   559  type ServiceBusinessTier_FieldPath interface {
   560  	gotenobject.FieldPath
   561  	Selector() ServiceBusinessTier_FieldPathSelector
   562  	Get(source *ServiceBusinessTier) []interface{}
   563  	GetSingle(source *ServiceBusinessTier) (interface{}, bool)
   564  	ClearValue(item *ServiceBusinessTier)
   565  
   566  	// Those methods build corresponding ServiceBusinessTier_FieldPathValue
   567  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
   568  	WithIValue(value interface{}) ServiceBusinessTier_FieldPathValue
   569  	WithIArrayOfValues(values interface{}) ServiceBusinessTier_FieldPathArrayOfValues
   570  	WithIArrayItemValue(value interface{}) ServiceBusinessTier_FieldPathArrayItemValue
   571  }
   572  
   573  type ServiceBusinessTier_FieldPathSelector int32
   574  
   575  const (
   576  	ServiceBusinessTier_FieldPathSelectorService      ServiceBusinessTier_FieldPathSelector = 0
   577  	ServiceBusinessTier_FieldPathSelectorBusinessTier ServiceBusinessTier_FieldPathSelector = 1
   578  )
   579  
   580  func (s ServiceBusinessTier_FieldPathSelector) String() string {
   581  	switch s {
   582  	case ServiceBusinessTier_FieldPathSelectorService:
   583  		return "service"
   584  	case ServiceBusinessTier_FieldPathSelectorBusinessTier:
   585  		return "business_tier"
   586  	default:
   587  		panic(fmt.Sprintf("Invalid selector for ServiceBusinessTier: %d", s))
   588  	}
   589  }
   590  
   591  func BuildServiceBusinessTier_FieldPath(fp gotenobject.RawFieldPath) (ServiceBusinessTier_FieldPath, error) {
   592  	if len(fp) == 0 {
   593  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ServiceBusinessTier")
   594  	}
   595  	if len(fp) == 1 {
   596  		switch fp[0] {
   597  		case "service":
   598  			return &ServiceBusinessTier_FieldTerminalPath{selector: ServiceBusinessTier_FieldPathSelectorService}, nil
   599  		case "business_tier", "businessTier", "business-tier":
   600  			return &ServiceBusinessTier_FieldTerminalPath{selector: ServiceBusinessTier_FieldPathSelectorBusinessTier}, nil
   601  		}
   602  	}
   603  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ServiceBusinessTier", fp)
   604  }
   605  
   606  func ParseServiceBusinessTier_FieldPath(rawField string) (ServiceBusinessTier_FieldPath, error) {
   607  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   608  	if err != nil {
   609  		return nil, err
   610  	}
   611  	return BuildServiceBusinessTier_FieldPath(fp)
   612  }
   613  
   614  func MustParseServiceBusinessTier_FieldPath(rawField string) ServiceBusinessTier_FieldPath {
   615  	fp, err := ParseServiceBusinessTier_FieldPath(rawField)
   616  	if err != nil {
   617  		panic(err)
   618  	}
   619  	return fp
   620  }
   621  
   622  type ServiceBusinessTier_FieldTerminalPath struct {
   623  	selector ServiceBusinessTier_FieldPathSelector
   624  }
   625  
   626  var _ ServiceBusinessTier_FieldPath = (*ServiceBusinessTier_FieldTerminalPath)(nil)
   627  
   628  func (fp *ServiceBusinessTier_FieldTerminalPath) Selector() ServiceBusinessTier_FieldPathSelector {
   629  	return fp.selector
   630  }
   631  
   632  // String returns path representation in proto convention
   633  func (fp *ServiceBusinessTier_FieldTerminalPath) String() string {
   634  	return fp.selector.String()
   635  }
   636  
   637  // JSONString returns path representation is JSON convention
   638  func (fp *ServiceBusinessTier_FieldTerminalPath) JSONString() string {
   639  	return strcase.ToLowerCamel(fp.String())
   640  }
   641  
   642  // Get returns all values pointed by specific field from source ServiceBusinessTier
   643  func (fp *ServiceBusinessTier_FieldTerminalPath) Get(source *ServiceBusinessTier) (values []interface{}) {
   644  	if source != nil {
   645  		switch fp.selector {
   646  		case ServiceBusinessTier_FieldPathSelectorService:
   647  			if source.Service != nil {
   648  				values = append(values, source.Service)
   649  			}
   650  		case ServiceBusinessTier_FieldPathSelectorBusinessTier:
   651  			values = append(values, source.BusinessTier)
   652  		default:
   653  			panic(fmt.Sprintf("Invalid selector for ServiceBusinessTier: %d", fp.selector))
   654  		}
   655  	}
   656  	return
   657  }
   658  
   659  func (fp *ServiceBusinessTier_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   660  	return fp.Get(source.(*ServiceBusinessTier))
   661  }
   662  
   663  // GetSingle returns value pointed by specific field of from source ServiceBusinessTier
   664  func (fp *ServiceBusinessTier_FieldTerminalPath) GetSingle(source *ServiceBusinessTier) (interface{}, bool) {
   665  	switch fp.selector {
   666  	case ServiceBusinessTier_FieldPathSelectorService:
   667  		res := source.GetService()
   668  		return res, res != nil
   669  	case ServiceBusinessTier_FieldPathSelectorBusinessTier:
   670  		return source.GetBusinessTier(), source != nil
   671  	default:
   672  		panic(fmt.Sprintf("Invalid selector for ServiceBusinessTier: %d", fp.selector))
   673  	}
   674  }
   675  
   676  func (fp *ServiceBusinessTier_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   677  	return fp.GetSingle(source.(*ServiceBusinessTier))
   678  }
   679  
   680  // GetDefault returns a default value of the field type
   681  func (fp *ServiceBusinessTier_FieldTerminalPath) GetDefault() interface{} {
   682  	switch fp.selector {
   683  	case ServiceBusinessTier_FieldPathSelectorService:
   684  		return (*meta_service.Name)(nil)
   685  	case ServiceBusinessTier_FieldPathSelectorBusinessTier:
   686  		return BusinessTier_UNDEFINED
   687  	default:
   688  		panic(fmt.Sprintf("Invalid selector for ServiceBusinessTier: %d", fp.selector))
   689  	}
   690  }
   691  
   692  func (fp *ServiceBusinessTier_FieldTerminalPath) ClearValue(item *ServiceBusinessTier) {
   693  	if item != nil {
   694  		switch fp.selector {
   695  		case ServiceBusinessTier_FieldPathSelectorService:
   696  			item.Service = nil
   697  		case ServiceBusinessTier_FieldPathSelectorBusinessTier:
   698  			item.BusinessTier = BusinessTier_UNDEFINED
   699  		default:
   700  			panic(fmt.Sprintf("Invalid selector for ServiceBusinessTier: %d", fp.selector))
   701  		}
   702  	}
   703  }
   704  
   705  func (fp *ServiceBusinessTier_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   706  	fp.ClearValue(item.(*ServiceBusinessTier))
   707  }
   708  
   709  // IsLeaf - whether field path is holds simple value
   710  func (fp *ServiceBusinessTier_FieldTerminalPath) IsLeaf() bool {
   711  	return fp.selector == ServiceBusinessTier_FieldPathSelectorService ||
   712  		fp.selector == ServiceBusinessTier_FieldPathSelectorBusinessTier
   713  }
   714  
   715  func (fp *ServiceBusinessTier_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   716  	return []gotenobject.FieldPath{fp}
   717  }
   718  
   719  func (fp *ServiceBusinessTier_FieldTerminalPath) WithIValue(value interface{}) ServiceBusinessTier_FieldPathValue {
   720  	switch fp.selector {
   721  	case ServiceBusinessTier_FieldPathSelectorService:
   722  		return &ServiceBusinessTier_FieldTerminalPathValue{ServiceBusinessTier_FieldTerminalPath: *fp, value: value.(*meta_service.Name)}
   723  	case ServiceBusinessTier_FieldPathSelectorBusinessTier:
   724  		return &ServiceBusinessTier_FieldTerminalPathValue{ServiceBusinessTier_FieldTerminalPath: *fp, value: value.(BusinessTier)}
   725  	default:
   726  		panic(fmt.Sprintf("Invalid selector for ServiceBusinessTier: %d", fp.selector))
   727  	}
   728  }
   729  
   730  func (fp *ServiceBusinessTier_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   731  	return fp.WithIValue(value)
   732  }
   733  
   734  func (fp *ServiceBusinessTier_FieldTerminalPath) WithIArrayOfValues(values interface{}) ServiceBusinessTier_FieldPathArrayOfValues {
   735  	fpaov := &ServiceBusinessTier_FieldTerminalPathArrayOfValues{ServiceBusinessTier_FieldTerminalPath: *fp}
   736  	switch fp.selector {
   737  	case ServiceBusinessTier_FieldPathSelectorService:
   738  		return &ServiceBusinessTier_FieldTerminalPathArrayOfValues{ServiceBusinessTier_FieldTerminalPath: *fp, values: values.([]*meta_service.Name)}
   739  	case ServiceBusinessTier_FieldPathSelectorBusinessTier:
   740  		return &ServiceBusinessTier_FieldTerminalPathArrayOfValues{ServiceBusinessTier_FieldTerminalPath: *fp, values: values.([]BusinessTier)}
   741  	default:
   742  		panic(fmt.Sprintf("Invalid selector for ServiceBusinessTier: %d", fp.selector))
   743  	}
   744  	return fpaov
   745  }
   746  
   747  func (fp *ServiceBusinessTier_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   748  	return fp.WithIArrayOfValues(values)
   749  }
   750  
   751  func (fp *ServiceBusinessTier_FieldTerminalPath) WithIArrayItemValue(value interface{}) ServiceBusinessTier_FieldPathArrayItemValue {
   752  	switch fp.selector {
   753  	default:
   754  		panic(fmt.Sprintf("Invalid selector for ServiceBusinessTier: %d", fp.selector))
   755  	}
   756  }
   757  
   758  func (fp *ServiceBusinessTier_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   759  	return fp.WithIArrayItemValue(value)
   760  }
   761  
   762  // ServiceBusinessTier_FieldPathValue allows storing values for ServiceBusinessTier fields according to their type
   763  type ServiceBusinessTier_FieldPathValue interface {
   764  	ServiceBusinessTier_FieldPath
   765  	gotenobject.FieldPathValue
   766  	SetTo(target **ServiceBusinessTier)
   767  	CompareWith(*ServiceBusinessTier) (cmp int, comparable bool)
   768  }
   769  
   770  func ParseServiceBusinessTier_FieldPathValue(pathStr, valueStr string) (ServiceBusinessTier_FieldPathValue, error) {
   771  	fp, err := ParseServiceBusinessTier_FieldPath(pathStr)
   772  	if err != nil {
   773  		return nil, err
   774  	}
   775  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   776  	if err != nil {
   777  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ServiceBusinessTier field path value from %s: %v", valueStr, err)
   778  	}
   779  	return fpv.(ServiceBusinessTier_FieldPathValue), nil
   780  }
   781  
   782  func MustParseServiceBusinessTier_FieldPathValue(pathStr, valueStr string) ServiceBusinessTier_FieldPathValue {
   783  	fpv, err := ParseServiceBusinessTier_FieldPathValue(pathStr, valueStr)
   784  	if err != nil {
   785  		panic(err)
   786  	}
   787  	return fpv
   788  }
   789  
   790  type ServiceBusinessTier_FieldTerminalPathValue struct {
   791  	ServiceBusinessTier_FieldTerminalPath
   792  	value interface{}
   793  }
   794  
   795  var _ ServiceBusinessTier_FieldPathValue = (*ServiceBusinessTier_FieldTerminalPathValue)(nil)
   796  
   797  // GetRawValue returns raw value stored under selected path for 'ServiceBusinessTier' as interface{}
   798  func (fpv *ServiceBusinessTier_FieldTerminalPathValue) GetRawValue() interface{} {
   799  	return fpv.value
   800  }
   801  func (fpv *ServiceBusinessTier_FieldTerminalPathValue) AsServiceValue() (*meta_service.Name, bool) {
   802  	res, ok := fpv.value.(*meta_service.Name)
   803  	return res, ok
   804  }
   805  func (fpv *ServiceBusinessTier_FieldTerminalPathValue) AsBusinessTierValue() (BusinessTier, bool) {
   806  	res, ok := fpv.value.(BusinessTier)
   807  	return res, ok
   808  }
   809  
   810  // SetTo stores value for selected field for object ServiceBusinessTier
   811  func (fpv *ServiceBusinessTier_FieldTerminalPathValue) SetTo(target **ServiceBusinessTier) {
   812  	if *target == nil {
   813  		*target = new(ServiceBusinessTier)
   814  	}
   815  	switch fpv.selector {
   816  	case ServiceBusinessTier_FieldPathSelectorService:
   817  		(*target).Service = fpv.value.(*meta_service.Name)
   818  	case ServiceBusinessTier_FieldPathSelectorBusinessTier:
   819  		(*target).BusinessTier = fpv.value.(BusinessTier)
   820  	default:
   821  		panic(fmt.Sprintf("Invalid selector for ServiceBusinessTier: %d", fpv.selector))
   822  	}
   823  }
   824  
   825  func (fpv *ServiceBusinessTier_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   826  	typedObject := target.(*ServiceBusinessTier)
   827  	fpv.SetTo(&typedObject)
   828  }
   829  
   830  // CompareWith compares value in the 'ServiceBusinessTier_FieldTerminalPathValue' with the value under path in 'ServiceBusinessTier'.
   831  func (fpv *ServiceBusinessTier_FieldTerminalPathValue) CompareWith(source *ServiceBusinessTier) (int, bool) {
   832  	switch fpv.selector {
   833  	case ServiceBusinessTier_FieldPathSelectorService:
   834  		leftValue := fpv.value.(*meta_service.Name)
   835  		rightValue := source.GetService()
   836  		if leftValue == nil {
   837  			if rightValue != nil {
   838  				return -1, true
   839  			}
   840  			return 0, true
   841  		}
   842  		if rightValue == nil {
   843  			return 1, true
   844  		}
   845  		if leftValue.String() == rightValue.String() {
   846  			return 0, true
   847  		} else if leftValue.String() < rightValue.String() {
   848  			return -1, true
   849  		} else {
   850  			return 1, true
   851  		}
   852  	case ServiceBusinessTier_FieldPathSelectorBusinessTier:
   853  		leftValue := fpv.value.(BusinessTier)
   854  		rightValue := source.GetBusinessTier()
   855  		if (leftValue) == (rightValue) {
   856  			return 0, true
   857  		} else if (leftValue) < (rightValue) {
   858  			return -1, true
   859  		} else {
   860  			return 1, true
   861  		}
   862  	default:
   863  		panic(fmt.Sprintf("Invalid selector for ServiceBusinessTier: %d", fpv.selector))
   864  	}
   865  }
   866  
   867  func (fpv *ServiceBusinessTier_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   868  	return fpv.CompareWith(source.(*ServiceBusinessTier))
   869  }
   870  
   871  // ServiceBusinessTier_FieldPathArrayItemValue allows storing single item in Path-specific values for ServiceBusinessTier according to their type
   872  // Present only for array (repeated) types.
   873  type ServiceBusinessTier_FieldPathArrayItemValue interface {
   874  	gotenobject.FieldPathArrayItemValue
   875  	ServiceBusinessTier_FieldPath
   876  	ContainsValue(*ServiceBusinessTier) bool
   877  }
   878  
   879  // ParseServiceBusinessTier_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   880  func ParseServiceBusinessTier_FieldPathArrayItemValue(pathStr, valueStr string) (ServiceBusinessTier_FieldPathArrayItemValue, error) {
   881  	fp, err := ParseServiceBusinessTier_FieldPath(pathStr)
   882  	if err != nil {
   883  		return nil, err
   884  	}
   885  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   886  	if err != nil {
   887  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ServiceBusinessTier field path array item value from %s: %v", valueStr, err)
   888  	}
   889  	return fpaiv.(ServiceBusinessTier_FieldPathArrayItemValue), nil
   890  }
   891  
   892  func MustParseServiceBusinessTier_FieldPathArrayItemValue(pathStr, valueStr string) ServiceBusinessTier_FieldPathArrayItemValue {
   893  	fpaiv, err := ParseServiceBusinessTier_FieldPathArrayItemValue(pathStr, valueStr)
   894  	if err != nil {
   895  		panic(err)
   896  	}
   897  	return fpaiv
   898  }
   899  
   900  type ServiceBusinessTier_FieldTerminalPathArrayItemValue struct {
   901  	ServiceBusinessTier_FieldTerminalPath
   902  	value interface{}
   903  }
   904  
   905  var _ ServiceBusinessTier_FieldPathArrayItemValue = (*ServiceBusinessTier_FieldTerminalPathArrayItemValue)(nil)
   906  
   907  // GetRawValue returns stored element value for array in object ServiceBusinessTier as interface{}
   908  func (fpaiv *ServiceBusinessTier_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   909  	return fpaiv.value
   910  }
   911  
   912  func (fpaiv *ServiceBusinessTier_FieldTerminalPathArrayItemValue) GetSingle(source *ServiceBusinessTier) (interface{}, bool) {
   913  	return nil, false
   914  }
   915  
   916  func (fpaiv *ServiceBusinessTier_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   917  	return fpaiv.GetSingle(source.(*ServiceBusinessTier))
   918  }
   919  
   920  // Contains returns a boolean indicating if value that is being held is present in given 'ServiceBusinessTier'
   921  func (fpaiv *ServiceBusinessTier_FieldTerminalPathArrayItemValue) ContainsValue(source *ServiceBusinessTier) bool {
   922  	slice := fpaiv.ServiceBusinessTier_FieldTerminalPath.Get(source)
   923  	for _, v := range slice {
   924  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   925  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   926  				return true
   927  			}
   928  		} else if reflect.DeepEqual(v, fpaiv.value) {
   929  			return true
   930  		}
   931  	}
   932  	return false
   933  }
   934  
   935  // ServiceBusinessTier_FieldPathArrayOfValues allows storing slice of values for ServiceBusinessTier fields according to their type
   936  type ServiceBusinessTier_FieldPathArrayOfValues interface {
   937  	gotenobject.FieldPathArrayOfValues
   938  	ServiceBusinessTier_FieldPath
   939  }
   940  
   941  func ParseServiceBusinessTier_FieldPathArrayOfValues(pathStr, valuesStr string) (ServiceBusinessTier_FieldPathArrayOfValues, error) {
   942  	fp, err := ParseServiceBusinessTier_FieldPath(pathStr)
   943  	if err != nil {
   944  		return nil, err
   945  	}
   946  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   947  	if err != nil {
   948  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ServiceBusinessTier field path array of values from %s: %v", valuesStr, err)
   949  	}
   950  	return fpaov.(ServiceBusinessTier_FieldPathArrayOfValues), nil
   951  }
   952  
   953  func MustParseServiceBusinessTier_FieldPathArrayOfValues(pathStr, valuesStr string) ServiceBusinessTier_FieldPathArrayOfValues {
   954  	fpaov, err := ParseServiceBusinessTier_FieldPathArrayOfValues(pathStr, valuesStr)
   955  	if err != nil {
   956  		panic(err)
   957  	}
   958  	return fpaov
   959  }
   960  
   961  type ServiceBusinessTier_FieldTerminalPathArrayOfValues struct {
   962  	ServiceBusinessTier_FieldTerminalPath
   963  	values interface{}
   964  }
   965  
   966  var _ ServiceBusinessTier_FieldPathArrayOfValues = (*ServiceBusinessTier_FieldTerminalPathArrayOfValues)(nil)
   967  
   968  func (fpaov *ServiceBusinessTier_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   969  	switch fpaov.selector {
   970  	case ServiceBusinessTier_FieldPathSelectorService:
   971  		for _, v := range fpaov.values.([]*meta_service.Name) {
   972  			values = append(values, v)
   973  		}
   974  	case ServiceBusinessTier_FieldPathSelectorBusinessTier:
   975  		for _, v := range fpaov.values.([]BusinessTier) {
   976  			values = append(values, v)
   977  		}
   978  	}
   979  	return
   980  }
   981  func (fpaov *ServiceBusinessTier_FieldTerminalPathArrayOfValues) AsServiceArrayOfValues() ([]*meta_service.Name, bool) {
   982  	res, ok := fpaov.values.([]*meta_service.Name)
   983  	return res, ok
   984  }
   985  func (fpaov *ServiceBusinessTier_FieldTerminalPathArrayOfValues) AsBusinessTierArrayOfValues() ([]BusinessTier, bool) {
   986  	res, ok := fpaov.values.([]BusinessTier)
   987  	return res, ok
   988  }
   989  
   990  // FieldPath provides implementation to handle
   991  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
   992  type ServiceErrors_FieldPath interface {
   993  	gotenobject.FieldPath
   994  	Selector() ServiceErrors_FieldPathSelector
   995  	Get(source *ServiceErrors) []interface{}
   996  	GetSingle(source *ServiceErrors) (interface{}, bool)
   997  	ClearValue(item *ServiceErrors)
   998  
   999  	// Those methods build corresponding ServiceErrors_FieldPathValue
  1000  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1001  	WithIValue(value interface{}) ServiceErrors_FieldPathValue
  1002  	WithIArrayOfValues(values interface{}) ServiceErrors_FieldPathArrayOfValues
  1003  	WithIArrayItemValue(value interface{}) ServiceErrors_FieldPathArrayItemValue
  1004  }
  1005  
  1006  type ServiceErrors_FieldPathSelector int32
  1007  
  1008  const (
  1009  	ServiceErrors_FieldPathSelectorErrors ServiceErrors_FieldPathSelector = 0
  1010  )
  1011  
  1012  func (s ServiceErrors_FieldPathSelector) String() string {
  1013  	switch s {
  1014  	case ServiceErrors_FieldPathSelectorErrors:
  1015  		return "errors"
  1016  	default:
  1017  		panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", s))
  1018  	}
  1019  }
  1020  
  1021  func BuildServiceErrors_FieldPath(fp gotenobject.RawFieldPath) (ServiceErrors_FieldPath, error) {
  1022  	if len(fp) == 0 {
  1023  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ServiceErrors")
  1024  	}
  1025  	if len(fp) == 1 {
  1026  		switch fp[0] {
  1027  		case "errors":
  1028  			return &ServiceErrors_FieldTerminalPath{selector: ServiceErrors_FieldPathSelectorErrors}, nil
  1029  		}
  1030  	} else {
  1031  		switch fp[0] {
  1032  		case "errors":
  1033  			if subpath, err := BuildServiceErrorsError_FieldPath(fp[1:]); err != nil {
  1034  				return nil, err
  1035  			} else {
  1036  				return &ServiceErrors_FieldSubPath{selector: ServiceErrors_FieldPathSelectorErrors, subPath: subpath}, nil
  1037  			}
  1038  		}
  1039  	}
  1040  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ServiceErrors", fp)
  1041  }
  1042  
  1043  func ParseServiceErrors_FieldPath(rawField string) (ServiceErrors_FieldPath, error) {
  1044  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1045  	if err != nil {
  1046  		return nil, err
  1047  	}
  1048  	return BuildServiceErrors_FieldPath(fp)
  1049  }
  1050  
  1051  func MustParseServiceErrors_FieldPath(rawField string) ServiceErrors_FieldPath {
  1052  	fp, err := ParseServiceErrors_FieldPath(rawField)
  1053  	if err != nil {
  1054  		panic(err)
  1055  	}
  1056  	return fp
  1057  }
  1058  
  1059  type ServiceErrors_FieldTerminalPath struct {
  1060  	selector ServiceErrors_FieldPathSelector
  1061  }
  1062  
  1063  var _ ServiceErrors_FieldPath = (*ServiceErrors_FieldTerminalPath)(nil)
  1064  
  1065  func (fp *ServiceErrors_FieldTerminalPath) Selector() ServiceErrors_FieldPathSelector {
  1066  	return fp.selector
  1067  }
  1068  
  1069  // String returns path representation in proto convention
  1070  func (fp *ServiceErrors_FieldTerminalPath) String() string {
  1071  	return fp.selector.String()
  1072  }
  1073  
  1074  // JSONString returns path representation is JSON convention
  1075  func (fp *ServiceErrors_FieldTerminalPath) JSONString() string {
  1076  	return strcase.ToLowerCamel(fp.String())
  1077  }
  1078  
  1079  // Get returns all values pointed by specific field from source ServiceErrors
  1080  func (fp *ServiceErrors_FieldTerminalPath) Get(source *ServiceErrors) (values []interface{}) {
  1081  	if source != nil {
  1082  		switch fp.selector {
  1083  		case ServiceErrors_FieldPathSelectorErrors:
  1084  			for _, value := range source.GetErrors() {
  1085  				values = append(values, value)
  1086  			}
  1087  		default:
  1088  			panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fp.selector))
  1089  		}
  1090  	}
  1091  	return
  1092  }
  1093  
  1094  func (fp *ServiceErrors_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1095  	return fp.Get(source.(*ServiceErrors))
  1096  }
  1097  
  1098  // GetSingle returns value pointed by specific field of from source ServiceErrors
  1099  func (fp *ServiceErrors_FieldTerminalPath) GetSingle(source *ServiceErrors) (interface{}, bool) {
  1100  	switch fp.selector {
  1101  	case ServiceErrors_FieldPathSelectorErrors:
  1102  		res := source.GetErrors()
  1103  		return res, res != nil
  1104  	default:
  1105  		panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fp.selector))
  1106  	}
  1107  }
  1108  
  1109  func (fp *ServiceErrors_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1110  	return fp.GetSingle(source.(*ServiceErrors))
  1111  }
  1112  
  1113  // GetDefault returns a default value of the field type
  1114  func (fp *ServiceErrors_FieldTerminalPath) GetDefault() interface{} {
  1115  	switch fp.selector {
  1116  	case ServiceErrors_FieldPathSelectorErrors:
  1117  		return ([]*ServiceErrors_Error)(nil)
  1118  	default:
  1119  		panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fp.selector))
  1120  	}
  1121  }
  1122  
  1123  func (fp *ServiceErrors_FieldTerminalPath) ClearValue(item *ServiceErrors) {
  1124  	if item != nil {
  1125  		switch fp.selector {
  1126  		case ServiceErrors_FieldPathSelectorErrors:
  1127  			item.Errors = nil
  1128  		default:
  1129  			panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fp.selector))
  1130  		}
  1131  	}
  1132  }
  1133  
  1134  func (fp *ServiceErrors_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1135  	fp.ClearValue(item.(*ServiceErrors))
  1136  }
  1137  
  1138  // IsLeaf - whether field path is holds simple value
  1139  func (fp *ServiceErrors_FieldTerminalPath) IsLeaf() bool {
  1140  	return false
  1141  }
  1142  
  1143  func (fp *ServiceErrors_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1144  	return []gotenobject.FieldPath{fp}
  1145  }
  1146  
  1147  func (fp *ServiceErrors_FieldTerminalPath) WithIValue(value interface{}) ServiceErrors_FieldPathValue {
  1148  	switch fp.selector {
  1149  	case ServiceErrors_FieldPathSelectorErrors:
  1150  		return &ServiceErrors_FieldTerminalPathValue{ServiceErrors_FieldTerminalPath: *fp, value: value.([]*ServiceErrors_Error)}
  1151  	default:
  1152  		panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fp.selector))
  1153  	}
  1154  }
  1155  
  1156  func (fp *ServiceErrors_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1157  	return fp.WithIValue(value)
  1158  }
  1159  
  1160  func (fp *ServiceErrors_FieldTerminalPath) WithIArrayOfValues(values interface{}) ServiceErrors_FieldPathArrayOfValues {
  1161  	fpaov := &ServiceErrors_FieldTerminalPathArrayOfValues{ServiceErrors_FieldTerminalPath: *fp}
  1162  	switch fp.selector {
  1163  	case ServiceErrors_FieldPathSelectorErrors:
  1164  		return &ServiceErrors_FieldTerminalPathArrayOfValues{ServiceErrors_FieldTerminalPath: *fp, values: values.([][]*ServiceErrors_Error)}
  1165  	default:
  1166  		panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fp.selector))
  1167  	}
  1168  	return fpaov
  1169  }
  1170  
  1171  func (fp *ServiceErrors_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1172  	return fp.WithIArrayOfValues(values)
  1173  }
  1174  
  1175  func (fp *ServiceErrors_FieldTerminalPath) WithIArrayItemValue(value interface{}) ServiceErrors_FieldPathArrayItemValue {
  1176  	switch fp.selector {
  1177  	case ServiceErrors_FieldPathSelectorErrors:
  1178  		return &ServiceErrors_FieldTerminalPathArrayItemValue{ServiceErrors_FieldTerminalPath: *fp, value: value.(*ServiceErrors_Error)}
  1179  	default:
  1180  		panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fp.selector))
  1181  	}
  1182  }
  1183  
  1184  func (fp *ServiceErrors_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1185  	return fp.WithIArrayItemValue(value)
  1186  }
  1187  
  1188  type ServiceErrors_FieldSubPath struct {
  1189  	selector ServiceErrors_FieldPathSelector
  1190  	subPath  gotenobject.FieldPath
  1191  }
  1192  
  1193  var _ ServiceErrors_FieldPath = (*ServiceErrors_FieldSubPath)(nil)
  1194  
  1195  func (fps *ServiceErrors_FieldSubPath) Selector() ServiceErrors_FieldPathSelector {
  1196  	return fps.selector
  1197  }
  1198  func (fps *ServiceErrors_FieldSubPath) AsErrorsSubPath() (ServiceErrorsError_FieldPath, bool) {
  1199  	res, ok := fps.subPath.(ServiceErrorsError_FieldPath)
  1200  	return res, ok
  1201  }
  1202  
  1203  // String returns path representation in proto convention
  1204  func (fps *ServiceErrors_FieldSubPath) String() string {
  1205  	return fps.selector.String() + "." + fps.subPath.String()
  1206  }
  1207  
  1208  // JSONString returns path representation is JSON convention
  1209  func (fps *ServiceErrors_FieldSubPath) JSONString() string {
  1210  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
  1211  }
  1212  
  1213  // Get returns all values pointed by selected field from source ServiceErrors
  1214  func (fps *ServiceErrors_FieldSubPath) Get(source *ServiceErrors) (values []interface{}) {
  1215  	switch fps.selector {
  1216  	case ServiceErrors_FieldPathSelectorErrors:
  1217  		for _, item := range source.GetErrors() {
  1218  			values = append(values, fps.subPath.GetRaw(item)...)
  1219  		}
  1220  	default:
  1221  		panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fps.selector))
  1222  	}
  1223  	return
  1224  }
  1225  
  1226  func (fps *ServiceErrors_FieldSubPath) GetRaw(source proto.Message) []interface{} {
  1227  	return fps.Get(source.(*ServiceErrors))
  1228  }
  1229  
  1230  // GetSingle returns value of selected field from source ServiceErrors
  1231  func (fps *ServiceErrors_FieldSubPath) GetSingle(source *ServiceErrors) (interface{}, bool) {
  1232  	switch fps.selector {
  1233  	case ServiceErrors_FieldPathSelectorErrors:
  1234  		if len(source.GetErrors()) == 0 {
  1235  			return nil, false
  1236  		}
  1237  		return fps.subPath.GetSingleRaw(source.GetErrors()[0])
  1238  	default:
  1239  		panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fps.selector))
  1240  	}
  1241  }
  1242  
  1243  func (fps *ServiceErrors_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1244  	return fps.GetSingle(source.(*ServiceErrors))
  1245  }
  1246  
  1247  // GetDefault returns a default value of the field type
  1248  func (fps *ServiceErrors_FieldSubPath) GetDefault() interface{} {
  1249  	return fps.subPath.GetDefault()
  1250  }
  1251  
  1252  func (fps *ServiceErrors_FieldSubPath) ClearValue(item *ServiceErrors) {
  1253  	if item != nil {
  1254  		switch fps.selector {
  1255  		case ServiceErrors_FieldPathSelectorErrors:
  1256  			for _, subItem := range item.Errors {
  1257  				fps.subPath.ClearValueRaw(subItem)
  1258  			}
  1259  		default:
  1260  			panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fps.selector))
  1261  		}
  1262  	}
  1263  }
  1264  
  1265  func (fps *ServiceErrors_FieldSubPath) ClearValueRaw(item proto.Message) {
  1266  	fps.ClearValue(item.(*ServiceErrors))
  1267  }
  1268  
  1269  // IsLeaf - whether field path is holds simple value
  1270  func (fps *ServiceErrors_FieldSubPath) IsLeaf() bool {
  1271  	return fps.subPath.IsLeaf()
  1272  }
  1273  
  1274  func (fps *ServiceErrors_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1275  	iPaths := []gotenobject.FieldPath{&ServiceErrors_FieldTerminalPath{selector: fps.selector}}
  1276  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
  1277  	return iPaths
  1278  }
  1279  
  1280  func (fps *ServiceErrors_FieldSubPath) WithIValue(value interface{}) ServiceErrors_FieldPathValue {
  1281  	return &ServiceErrors_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
  1282  }
  1283  
  1284  func (fps *ServiceErrors_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1285  	return fps.WithIValue(value)
  1286  }
  1287  
  1288  func (fps *ServiceErrors_FieldSubPath) WithIArrayOfValues(values interface{}) ServiceErrors_FieldPathArrayOfValues {
  1289  	return &ServiceErrors_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
  1290  }
  1291  
  1292  func (fps *ServiceErrors_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1293  	return fps.WithIArrayOfValues(values)
  1294  }
  1295  
  1296  func (fps *ServiceErrors_FieldSubPath) WithIArrayItemValue(value interface{}) ServiceErrors_FieldPathArrayItemValue {
  1297  	return &ServiceErrors_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
  1298  }
  1299  
  1300  func (fps *ServiceErrors_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1301  	return fps.WithIArrayItemValue(value)
  1302  }
  1303  
  1304  // ServiceErrors_FieldPathValue allows storing values for ServiceErrors fields according to their type
  1305  type ServiceErrors_FieldPathValue interface {
  1306  	ServiceErrors_FieldPath
  1307  	gotenobject.FieldPathValue
  1308  	SetTo(target **ServiceErrors)
  1309  	CompareWith(*ServiceErrors) (cmp int, comparable bool)
  1310  }
  1311  
  1312  func ParseServiceErrors_FieldPathValue(pathStr, valueStr string) (ServiceErrors_FieldPathValue, error) {
  1313  	fp, err := ParseServiceErrors_FieldPath(pathStr)
  1314  	if err != nil {
  1315  		return nil, err
  1316  	}
  1317  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1318  	if err != nil {
  1319  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ServiceErrors field path value from %s: %v", valueStr, err)
  1320  	}
  1321  	return fpv.(ServiceErrors_FieldPathValue), nil
  1322  }
  1323  
  1324  func MustParseServiceErrors_FieldPathValue(pathStr, valueStr string) ServiceErrors_FieldPathValue {
  1325  	fpv, err := ParseServiceErrors_FieldPathValue(pathStr, valueStr)
  1326  	if err != nil {
  1327  		panic(err)
  1328  	}
  1329  	return fpv
  1330  }
  1331  
  1332  type ServiceErrors_FieldTerminalPathValue struct {
  1333  	ServiceErrors_FieldTerminalPath
  1334  	value interface{}
  1335  }
  1336  
  1337  var _ ServiceErrors_FieldPathValue = (*ServiceErrors_FieldTerminalPathValue)(nil)
  1338  
  1339  // GetRawValue returns raw value stored under selected path for 'ServiceErrors' as interface{}
  1340  func (fpv *ServiceErrors_FieldTerminalPathValue) GetRawValue() interface{} {
  1341  	return fpv.value
  1342  }
  1343  func (fpv *ServiceErrors_FieldTerminalPathValue) AsErrorsValue() ([]*ServiceErrors_Error, bool) {
  1344  	res, ok := fpv.value.([]*ServiceErrors_Error)
  1345  	return res, ok
  1346  }
  1347  
  1348  // SetTo stores value for selected field for object ServiceErrors
  1349  func (fpv *ServiceErrors_FieldTerminalPathValue) SetTo(target **ServiceErrors) {
  1350  	if *target == nil {
  1351  		*target = new(ServiceErrors)
  1352  	}
  1353  	switch fpv.selector {
  1354  	case ServiceErrors_FieldPathSelectorErrors:
  1355  		(*target).Errors = fpv.value.([]*ServiceErrors_Error)
  1356  	default:
  1357  		panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fpv.selector))
  1358  	}
  1359  }
  1360  
  1361  func (fpv *ServiceErrors_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1362  	typedObject := target.(*ServiceErrors)
  1363  	fpv.SetTo(&typedObject)
  1364  }
  1365  
  1366  // CompareWith compares value in the 'ServiceErrors_FieldTerminalPathValue' with the value under path in 'ServiceErrors'.
  1367  func (fpv *ServiceErrors_FieldTerminalPathValue) CompareWith(source *ServiceErrors) (int, bool) {
  1368  	switch fpv.selector {
  1369  	case ServiceErrors_FieldPathSelectorErrors:
  1370  		return 0, false
  1371  	default:
  1372  		panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fpv.selector))
  1373  	}
  1374  }
  1375  
  1376  func (fpv *ServiceErrors_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1377  	return fpv.CompareWith(source.(*ServiceErrors))
  1378  }
  1379  
  1380  type ServiceErrors_FieldSubPathValue struct {
  1381  	ServiceErrors_FieldPath
  1382  	subPathValue gotenobject.FieldPathValue
  1383  }
  1384  
  1385  var _ ServiceErrors_FieldPathValue = (*ServiceErrors_FieldSubPathValue)(nil)
  1386  
  1387  func (fpvs *ServiceErrors_FieldSubPathValue) AsErrorsPathValue() (ServiceErrorsError_FieldPathValue, bool) {
  1388  	res, ok := fpvs.subPathValue.(ServiceErrorsError_FieldPathValue)
  1389  	return res, ok
  1390  }
  1391  
  1392  func (fpvs *ServiceErrors_FieldSubPathValue) SetTo(target **ServiceErrors) {
  1393  	if *target == nil {
  1394  		*target = new(ServiceErrors)
  1395  	}
  1396  	switch fpvs.Selector() {
  1397  	case ServiceErrors_FieldPathSelectorErrors:
  1398  		panic("FieldPath setter is unsupported for array subpaths")
  1399  	default:
  1400  		panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fpvs.Selector()))
  1401  	}
  1402  }
  1403  
  1404  func (fpvs *ServiceErrors_FieldSubPathValue) SetToRaw(target proto.Message) {
  1405  	typedObject := target.(*ServiceErrors)
  1406  	fpvs.SetTo(&typedObject)
  1407  }
  1408  
  1409  func (fpvs *ServiceErrors_FieldSubPathValue) GetRawValue() interface{} {
  1410  	return fpvs.subPathValue.GetRawValue()
  1411  }
  1412  
  1413  func (fpvs *ServiceErrors_FieldSubPathValue) CompareWith(source *ServiceErrors) (int, bool) {
  1414  	switch fpvs.Selector() {
  1415  	case ServiceErrors_FieldPathSelectorErrors:
  1416  		return 0, false // repeated field
  1417  	default:
  1418  		panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fpvs.Selector()))
  1419  	}
  1420  }
  1421  
  1422  func (fpvs *ServiceErrors_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1423  	return fpvs.CompareWith(source.(*ServiceErrors))
  1424  }
  1425  
  1426  // ServiceErrors_FieldPathArrayItemValue allows storing single item in Path-specific values for ServiceErrors according to their type
  1427  // Present only for array (repeated) types.
  1428  type ServiceErrors_FieldPathArrayItemValue interface {
  1429  	gotenobject.FieldPathArrayItemValue
  1430  	ServiceErrors_FieldPath
  1431  	ContainsValue(*ServiceErrors) bool
  1432  }
  1433  
  1434  // ParseServiceErrors_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1435  func ParseServiceErrors_FieldPathArrayItemValue(pathStr, valueStr string) (ServiceErrors_FieldPathArrayItemValue, error) {
  1436  	fp, err := ParseServiceErrors_FieldPath(pathStr)
  1437  	if err != nil {
  1438  		return nil, err
  1439  	}
  1440  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1441  	if err != nil {
  1442  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ServiceErrors field path array item value from %s: %v", valueStr, err)
  1443  	}
  1444  	return fpaiv.(ServiceErrors_FieldPathArrayItemValue), nil
  1445  }
  1446  
  1447  func MustParseServiceErrors_FieldPathArrayItemValue(pathStr, valueStr string) ServiceErrors_FieldPathArrayItemValue {
  1448  	fpaiv, err := ParseServiceErrors_FieldPathArrayItemValue(pathStr, valueStr)
  1449  	if err != nil {
  1450  		panic(err)
  1451  	}
  1452  	return fpaiv
  1453  }
  1454  
  1455  type ServiceErrors_FieldTerminalPathArrayItemValue struct {
  1456  	ServiceErrors_FieldTerminalPath
  1457  	value interface{}
  1458  }
  1459  
  1460  var _ ServiceErrors_FieldPathArrayItemValue = (*ServiceErrors_FieldTerminalPathArrayItemValue)(nil)
  1461  
  1462  // GetRawValue returns stored element value for array in object ServiceErrors as interface{}
  1463  func (fpaiv *ServiceErrors_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1464  	return fpaiv.value
  1465  }
  1466  func (fpaiv *ServiceErrors_FieldTerminalPathArrayItemValue) AsErrorsItemValue() (*ServiceErrors_Error, bool) {
  1467  	res, ok := fpaiv.value.(*ServiceErrors_Error)
  1468  	return res, ok
  1469  }
  1470  
  1471  func (fpaiv *ServiceErrors_FieldTerminalPathArrayItemValue) GetSingle(source *ServiceErrors) (interface{}, bool) {
  1472  	return nil, false
  1473  }
  1474  
  1475  func (fpaiv *ServiceErrors_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1476  	return fpaiv.GetSingle(source.(*ServiceErrors))
  1477  }
  1478  
  1479  // Contains returns a boolean indicating if value that is being held is present in given 'ServiceErrors'
  1480  func (fpaiv *ServiceErrors_FieldTerminalPathArrayItemValue) ContainsValue(source *ServiceErrors) bool {
  1481  	slice := fpaiv.ServiceErrors_FieldTerminalPath.Get(source)
  1482  	for _, v := range slice {
  1483  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1484  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1485  				return true
  1486  			}
  1487  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1488  			return true
  1489  		}
  1490  	}
  1491  	return false
  1492  }
  1493  
  1494  type ServiceErrors_FieldSubPathArrayItemValue struct {
  1495  	ServiceErrors_FieldPath
  1496  	subPathItemValue gotenobject.FieldPathArrayItemValue
  1497  }
  1498  
  1499  // GetRawValue returns stored array item value
  1500  func (fpaivs *ServiceErrors_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  1501  	return fpaivs.subPathItemValue.GetRawItemValue()
  1502  }
  1503  func (fpaivs *ServiceErrors_FieldSubPathArrayItemValue) AsErrorsPathItemValue() (ServiceErrorsError_FieldPathArrayItemValue, bool) {
  1504  	res, ok := fpaivs.subPathItemValue.(ServiceErrorsError_FieldPathArrayItemValue)
  1505  	return res, ok
  1506  }
  1507  
  1508  // Contains returns a boolean indicating if value that is being held is present in given 'ServiceErrors'
  1509  func (fpaivs *ServiceErrors_FieldSubPathArrayItemValue) ContainsValue(source *ServiceErrors) bool {
  1510  	switch fpaivs.Selector() {
  1511  	case ServiceErrors_FieldPathSelectorErrors:
  1512  		return false // repeated/map field
  1513  	default:
  1514  		panic(fmt.Sprintf("Invalid selector for ServiceErrors: %d", fpaivs.Selector()))
  1515  	}
  1516  }
  1517  
  1518  // ServiceErrors_FieldPathArrayOfValues allows storing slice of values for ServiceErrors fields according to their type
  1519  type ServiceErrors_FieldPathArrayOfValues interface {
  1520  	gotenobject.FieldPathArrayOfValues
  1521  	ServiceErrors_FieldPath
  1522  }
  1523  
  1524  func ParseServiceErrors_FieldPathArrayOfValues(pathStr, valuesStr string) (ServiceErrors_FieldPathArrayOfValues, error) {
  1525  	fp, err := ParseServiceErrors_FieldPath(pathStr)
  1526  	if err != nil {
  1527  		return nil, err
  1528  	}
  1529  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1530  	if err != nil {
  1531  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ServiceErrors field path array of values from %s: %v", valuesStr, err)
  1532  	}
  1533  	return fpaov.(ServiceErrors_FieldPathArrayOfValues), nil
  1534  }
  1535  
  1536  func MustParseServiceErrors_FieldPathArrayOfValues(pathStr, valuesStr string) ServiceErrors_FieldPathArrayOfValues {
  1537  	fpaov, err := ParseServiceErrors_FieldPathArrayOfValues(pathStr, valuesStr)
  1538  	if err != nil {
  1539  		panic(err)
  1540  	}
  1541  	return fpaov
  1542  }
  1543  
  1544  type ServiceErrors_FieldTerminalPathArrayOfValues struct {
  1545  	ServiceErrors_FieldTerminalPath
  1546  	values interface{}
  1547  }
  1548  
  1549  var _ ServiceErrors_FieldPathArrayOfValues = (*ServiceErrors_FieldTerminalPathArrayOfValues)(nil)
  1550  
  1551  func (fpaov *ServiceErrors_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1552  	switch fpaov.selector {
  1553  	case ServiceErrors_FieldPathSelectorErrors:
  1554  		for _, v := range fpaov.values.([][]*ServiceErrors_Error) {
  1555  			values = append(values, v)
  1556  		}
  1557  	}
  1558  	return
  1559  }
  1560  func (fpaov *ServiceErrors_FieldTerminalPathArrayOfValues) AsErrorsArrayOfValues() ([][]*ServiceErrors_Error, bool) {
  1561  	res, ok := fpaov.values.([][]*ServiceErrors_Error)
  1562  	return res, ok
  1563  }
  1564  
  1565  type ServiceErrors_FieldSubPathArrayOfValues struct {
  1566  	ServiceErrors_FieldPath
  1567  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  1568  }
  1569  
  1570  var _ ServiceErrors_FieldPathArrayOfValues = (*ServiceErrors_FieldSubPathArrayOfValues)(nil)
  1571  
  1572  func (fpsaov *ServiceErrors_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  1573  	return fpsaov.subPathArrayOfValues.GetRawValues()
  1574  }
  1575  func (fpsaov *ServiceErrors_FieldSubPathArrayOfValues) AsErrorsPathArrayOfValues() (ServiceErrorsError_FieldPathArrayOfValues, bool) {
  1576  	res, ok := fpsaov.subPathArrayOfValues.(ServiceErrorsError_FieldPathArrayOfValues)
  1577  	return res, ok
  1578  }
  1579  
  1580  // FieldPath provides implementation to handle
  1581  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1582  type ServiceErrorsError_FieldPath interface {
  1583  	gotenobject.FieldPath
  1584  	Selector() ServiceErrorsError_FieldPathSelector
  1585  	Get(source *ServiceErrors_Error) []interface{}
  1586  	GetSingle(source *ServiceErrors_Error) (interface{}, bool)
  1587  	ClearValue(item *ServiceErrors_Error)
  1588  
  1589  	// Those methods build corresponding ServiceErrorsError_FieldPathValue
  1590  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1591  	WithIValue(value interface{}) ServiceErrorsError_FieldPathValue
  1592  	WithIArrayOfValues(values interface{}) ServiceErrorsError_FieldPathArrayOfValues
  1593  	WithIArrayItemValue(value interface{}) ServiceErrorsError_FieldPathArrayItemValue
  1594  }
  1595  
  1596  type ServiceErrorsError_FieldPathSelector int32
  1597  
  1598  const (
  1599  	ServiceErrorsError_FieldPathSelectorService ServiceErrorsError_FieldPathSelector = 0
  1600  	ServiceErrorsError_FieldPathSelectorMessage ServiceErrorsError_FieldPathSelector = 1
  1601  )
  1602  
  1603  func (s ServiceErrorsError_FieldPathSelector) String() string {
  1604  	switch s {
  1605  	case ServiceErrorsError_FieldPathSelectorService:
  1606  		return "service"
  1607  	case ServiceErrorsError_FieldPathSelectorMessage:
  1608  		return "message"
  1609  	default:
  1610  		panic(fmt.Sprintf("Invalid selector for ServiceErrors_Error: %d", s))
  1611  	}
  1612  }
  1613  
  1614  func BuildServiceErrorsError_FieldPath(fp gotenobject.RawFieldPath) (ServiceErrorsError_FieldPath, error) {
  1615  	if len(fp) == 0 {
  1616  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ServiceErrors_Error")
  1617  	}
  1618  	if len(fp) == 1 {
  1619  		switch fp[0] {
  1620  		case "service":
  1621  			return &ServiceErrorsError_FieldTerminalPath{selector: ServiceErrorsError_FieldPathSelectorService}, nil
  1622  		case "message":
  1623  			return &ServiceErrorsError_FieldTerminalPath{selector: ServiceErrorsError_FieldPathSelectorMessage}, nil
  1624  		}
  1625  	}
  1626  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ServiceErrors_Error", fp)
  1627  }
  1628  
  1629  func ParseServiceErrorsError_FieldPath(rawField string) (ServiceErrorsError_FieldPath, error) {
  1630  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1631  	if err != nil {
  1632  		return nil, err
  1633  	}
  1634  	return BuildServiceErrorsError_FieldPath(fp)
  1635  }
  1636  
  1637  func MustParseServiceErrorsError_FieldPath(rawField string) ServiceErrorsError_FieldPath {
  1638  	fp, err := ParseServiceErrorsError_FieldPath(rawField)
  1639  	if err != nil {
  1640  		panic(err)
  1641  	}
  1642  	return fp
  1643  }
  1644  
  1645  type ServiceErrorsError_FieldTerminalPath struct {
  1646  	selector ServiceErrorsError_FieldPathSelector
  1647  }
  1648  
  1649  var _ ServiceErrorsError_FieldPath = (*ServiceErrorsError_FieldTerminalPath)(nil)
  1650  
  1651  func (fp *ServiceErrorsError_FieldTerminalPath) Selector() ServiceErrorsError_FieldPathSelector {
  1652  	return fp.selector
  1653  }
  1654  
  1655  // String returns path representation in proto convention
  1656  func (fp *ServiceErrorsError_FieldTerminalPath) String() string {
  1657  	return fp.selector.String()
  1658  }
  1659  
  1660  // JSONString returns path representation is JSON convention
  1661  func (fp *ServiceErrorsError_FieldTerminalPath) JSONString() string {
  1662  	return strcase.ToLowerCamel(fp.String())
  1663  }
  1664  
  1665  // Get returns all values pointed by specific field from source ServiceErrors_Error
  1666  func (fp *ServiceErrorsError_FieldTerminalPath) Get(source *ServiceErrors_Error) (values []interface{}) {
  1667  	if source != nil {
  1668  		switch fp.selector {
  1669  		case ServiceErrorsError_FieldPathSelectorService:
  1670  			if source.Service != nil {
  1671  				values = append(values, source.Service)
  1672  			}
  1673  		case ServiceErrorsError_FieldPathSelectorMessage:
  1674  			values = append(values, source.Message)
  1675  		default:
  1676  			panic(fmt.Sprintf("Invalid selector for ServiceErrors_Error: %d", fp.selector))
  1677  		}
  1678  	}
  1679  	return
  1680  }
  1681  
  1682  func (fp *ServiceErrorsError_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1683  	return fp.Get(source.(*ServiceErrors_Error))
  1684  }
  1685  
  1686  // GetSingle returns value pointed by specific field of from source ServiceErrors_Error
  1687  func (fp *ServiceErrorsError_FieldTerminalPath) GetSingle(source *ServiceErrors_Error) (interface{}, bool) {
  1688  	switch fp.selector {
  1689  	case ServiceErrorsError_FieldPathSelectorService:
  1690  		res := source.GetService()
  1691  		return res, res != nil
  1692  	case ServiceErrorsError_FieldPathSelectorMessage:
  1693  		return source.GetMessage(), source != nil
  1694  	default:
  1695  		panic(fmt.Sprintf("Invalid selector for ServiceErrors_Error: %d", fp.selector))
  1696  	}
  1697  }
  1698  
  1699  func (fp *ServiceErrorsError_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1700  	return fp.GetSingle(source.(*ServiceErrors_Error))
  1701  }
  1702  
  1703  // GetDefault returns a default value of the field type
  1704  func (fp *ServiceErrorsError_FieldTerminalPath) GetDefault() interface{} {
  1705  	switch fp.selector {
  1706  	case ServiceErrorsError_FieldPathSelectorService:
  1707  		return (*meta_service.Name)(nil)
  1708  	case ServiceErrorsError_FieldPathSelectorMessage:
  1709  		return ""
  1710  	default:
  1711  		panic(fmt.Sprintf("Invalid selector for ServiceErrors_Error: %d", fp.selector))
  1712  	}
  1713  }
  1714  
  1715  func (fp *ServiceErrorsError_FieldTerminalPath) ClearValue(item *ServiceErrors_Error) {
  1716  	if item != nil {
  1717  		switch fp.selector {
  1718  		case ServiceErrorsError_FieldPathSelectorService:
  1719  			item.Service = nil
  1720  		case ServiceErrorsError_FieldPathSelectorMessage:
  1721  			item.Message = ""
  1722  		default:
  1723  			panic(fmt.Sprintf("Invalid selector for ServiceErrors_Error: %d", fp.selector))
  1724  		}
  1725  	}
  1726  }
  1727  
  1728  func (fp *ServiceErrorsError_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1729  	fp.ClearValue(item.(*ServiceErrors_Error))
  1730  }
  1731  
  1732  // IsLeaf - whether field path is holds simple value
  1733  func (fp *ServiceErrorsError_FieldTerminalPath) IsLeaf() bool {
  1734  	return fp.selector == ServiceErrorsError_FieldPathSelectorService ||
  1735  		fp.selector == ServiceErrorsError_FieldPathSelectorMessage
  1736  }
  1737  
  1738  func (fp *ServiceErrorsError_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1739  	return []gotenobject.FieldPath{fp}
  1740  }
  1741  
  1742  func (fp *ServiceErrorsError_FieldTerminalPath) WithIValue(value interface{}) ServiceErrorsError_FieldPathValue {
  1743  	switch fp.selector {
  1744  	case ServiceErrorsError_FieldPathSelectorService:
  1745  		return &ServiceErrorsError_FieldTerminalPathValue{ServiceErrorsError_FieldTerminalPath: *fp, value: value.(*meta_service.Name)}
  1746  	case ServiceErrorsError_FieldPathSelectorMessage:
  1747  		return &ServiceErrorsError_FieldTerminalPathValue{ServiceErrorsError_FieldTerminalPath: *fp, value: value.(string)}
  1748  	default:
  1749  		panic(fmt.Sprintf("Invalid selector for ServiceErrors_Error: %d", fp.selector))
  1750  	}
  1751  }
  1752  
  1753  func (fp *ServiceErrorsError_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1754  	return fp.WithIValue(value)
  1755  }
  1756  
  1757  func (fp *ServiceErrorsError_FieldTerminalPath) WithIArrayOfValues(values interface{}) ServiceErrorsError_FieldPathArrayOfValues {
  1758  	fpaov := &ServiceErrorsError_FieldTerminalPathArrayOfValues{ServiceErrorsError_FieldTerminalPath: *fp}
  1759  	switch fp.selector {
  1760  	case ServiceErrorsError_FieldPathSelectorService:
  1761  		return &ServiceErrorsError_FieldTerminalPathArrayOfValues{ServiceErrorsError_FieldTerminalPath: *fp, values: values.([]*meta_service.Name)}
  1762  	case ServiceErrorsError_FieldPathSelectorMessage:
  1763  		return &ServiceErrorsError_FieldTerminalPathArrayOfValues{ServiceErrorsError_FieldTerminalPath: *fp, values: values.([]string)}
  1764  	default:
  1765  		panic(fmt.Sprintf("Invalid selector for ServiceErrors_Error: %d", fp.selector))
  1766  	}
  1767  	return fpaov
  1768  }
  1769  
  1770  func (fp *ServiceErrorsError_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1771  	return fp.WithIArrayOfValues(values)
  1772  }
  1773  
  1774  func (fp *ServiceErrorsError_FieldTerminalPath) WithIArrayItemValue(value interface{}) ServiceErrorsError_FieldPathArrayItemValue {
  1775  	switch fp.selector {
  1776  	default:
  1777  		panic(fmt.Sprintf("Invalid selector for ServiceErrors_Error: %d", fp.selector))
  1778  	}
  1779  }
  1780  
  1781  func (fp *ServiceErrorsError_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1782  	return fp.WithIArrayItemValue(value)
  1783  }
  1784  
  1785  // ServiceErrorsError_FieldPathValue allows storing values for Error fields according to their type
  1786  type ServiceErrorsError_FieldPathValue interface {
  1787  	ServiceErrorsError_FieldPath
  1788  	gotenobject.FieldPathValue
  1789  	SetTo(target **ServiceErrors_Error)
  1790  	CompareWith(*ServiceErrors_Error) (cmp int, comparable bool)
  1791  }
  1792  
  1793  func ParseServiceErrorsError_FieldPathValue(pathStr, valueStr string) (ServiceErrorsError_FieldPathValue, error) {
  1794  	fp, err := ParseServiceErrorsError_FieldPath(pathStr)
  1795  	if err != nil {
  1796  		return nil, err
  1797  	}
  1798  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1799  	if err != nil {
  1800  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Error field path value from %s: %v", valueStr, err)
  1801  	}
  1802  	return fpv.(ServiceErrorsError_FieldPathValue), nil
  1803  }
  1804  
  1805  func MustParseServiceErrorsError_FieldPathValue(pathStr, valueStr string) ServiceErrorsError_FieldPathValue {
  1806  	fpv, err := ParseServiceErrorsError_FieldPathValue(pathStr, valueStr)
  1807  	if err != nil {
  1808  		panic(err)
  1809  	}
  1810  	return fpv
  1811  }
  1812  
  1813  type ServiceErrorsError_FieldTerminalPathValue struct {
  1814  	ServiceErrorsError_FieldTerminalPath
  1815  	value interface{}
  1816  }
  1817  
  1818  var _ ServiceErrorsError_FieldPathValue = (*ServiceErrorsError_FieldTerminalPathValue)(nil)
  1819  
  1820  // GetRawValue returns raw value stored under selected path for 'Error' as interface{}
  1821  func (fpv *ServiceErrorsError_FieldTerminalPathValue) GetRawValue() interface{} {
  1822  	return fpv.value
  1823  }
  1824  func (fpv *ServiceErrorsError_FieldTerminalPathValue) AsServiceValue() (*meta_service.Name, bool) {
  1825  	res, ok := fpv.value.(*meta_service.Name)
  1826  	return res, ok
  1827  }
  1828  func (fpv *ServiceErrorsError_FieldTerminalPathValue) AsMessageValue() (string, bool) {
  1829  	res, ok := fpv.value.(string)
  1830  	return res, ok
  1831  }
  1832  
  1833  // SetTo stores value for selected field for object Error
  1834  func (fpv *ServiceErrorsError_FieldTerminalPathValue) SetTo(target **ServiceErrors_Error) {
  1835  	if *target == nil {
  1836  		*target = new(ServiceErrors_Error)
  1837  	}
  1838  	switch fpv.selector {
  1839  	case ServiceErrorsError_FieldPathSelectorService:
  1840  		(*target).Service = fpv.value.(*meta_service.Name)
  1841  	case ServiceErrorsError_FieldPathSelectorMessage:
  1842  		(*target).Message = fpv.value.(string)
  1843  	default:
  1844  		panic(fmt.Sprintf("Invalid selector for ServiceErrors_Error: %d", fpv.selector))
  1845  	}
  1846  }
  1847  
  1848  func (fpv *ServiceErrorsError_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1849  	typedObject := target.(*ServiceErrors_Error)
  1850  	fpv.SetTo(&typedObject)
  1851  }
  1852  
  1853  // CompareWith compares value in the 'ServiceErrorsError_FieldTerminalPathValue' with the value under path in 'ServiceErrors_Error'.
  1854  func (fpv *ServiceErrorsError_FieldTerminalPathValue) CompareWith(source *ServiceErrors_Error) (int, bool) {
  1855  	switch fpv.selector {
  1856  	case ServiceErrorsError_FieldPathSelectorService:
  1857  		leftValue := fpv.value.(*meta_service.Name)
  1858  		rightValue := source.GetService()
  1859  		if leftValue == nil {
  1860  			if rightValue != nil {
  1861  				return -1, true
  1862  			}
  1863  			return 0, true
  1864  		}
  1865  		if rightValue == nil {
  1866  			return 1, true
  1867  		}
  1868  		if leftValue.String() == rightValue.String() {
  1869  			return 0, true
  1870  		} else if leftValue.String() < rightValue.String() {
  1871  			return -1, true
  1872  		} else {
  1873  			return 1, true
  1874  		}
  1875  	case ServiceErrorsError_FieldPathSelectorMessage:
  1876  		leftValue := fpv.value.(string)
  1877  		rightValue := source.GetMessage()
  1878  		if (leftValue) == (rightValue) {
  1879  			return 0, true
  1880  		} else if (leftValue) < (rightValue) {
  1881  			return -1, true
  1882  		} else {
  1883  			return 1, true
  1884  		}
  1885  	default:
  1886  		panic(fmt.Sprintf("Invalid selector for ServiceErrors_Error: %d", fpv.selector))
  1887  	}
  1888  }
  1889  
  1890  func (fpv *ServiceErrorsError_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1891  	return fpv.CompareWith(source.(*ServiceErrors_Error))
  1892  }
  1893  
  1894  // ServiceErrorsError_FieldPathArrayItemValue allows storing single item in Path-specific values for Error according to their type
  1895  // Present only for array (repeated) types.
  1896  type ServiceErrorsError_FieldPathArrayItemValue interface {
  1897  	gotenobject.FieldPathArrayItemValue
  1898  	ServiceErrorsError_FieldPath
  1899  	ContainsValue(*ServiceErrors_Error) bool
  1900  }
  1901  
  1902  // ParseServiceErrorsError_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1903  func ParseServiceErrorsError_FieldPathArrayItemValue(pathStr, valueStr string) (ServiceErrorsError_FieldPathArrayItemValue, error) {
  1904  	fp, err := ParseServiceErrorsError_FieldPath(pathStr)
  1905  	if err != nil {
  1906  		return nil, err
  1907  	}
  1908  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1909  	if err != nil {
  1910  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Error field path array item value from %s: %v", valueStr, err)
  1911  	}
  1912  	return fpaiv.(ServiceErrorsError_FieldPathArrayItemValue), nil
  1913  }
  1914  
  1915  func MustParseServiceErrorsError_FieldPathArrayItemValue(pathStr, valueStr string) ServiceErrorsError_FieldPathArrayItemValue {
  1916  	fpaiv, err := ParseServiceErrorsError_FieldPathArrayItemValue(pathStr, valueStr)
  1917  	if err != nil {
  1918  		panic(err)
  1919  	}
  1920  	return fpaiv
  1921  }
  1922  
  1923  type ServiceErrorsError_FieldTerminalPathArrayItemValue struct {
  1924  	ServiceErrorsError_FieldTerminalPath
  1925  	value interface{}
  1926  }
  1927  
  1928  var _ ServiceErrorsError_FieldPathArrayItemValue = (*ServiceErrorsError_FieldTerminalPathArrayItemValue)(nil)
  1929  
  1930  // GetRawValue returns stored element value for array in object ServiceErrors_Error as interface{}
  1931  func (fpaiv *ServiceErrorsError_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1932  	return fpaiv.value
  1933  }
  1934  
  1935  func (fpaiv *ServiceErrorsError_FieldTerminalPathArrayItemValue) GetSingle(source *ServiceErrors_Error) (interface{}, bool) {
  1936  	return nil, false
  1937  }
  1938  
  1939  func (fpaiv *ServiceErrorsError_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1940  	return fpaiv.GetSingle(source.(*ServiceErrors_Error))
  1941  }
  1942  
  1943  // Contains returns a boolean indicating if value that is being held is present in given 'Error'
  1944  func (fpaiv *ServiceErrorsError_FieldTerminalPathArrayItemValue) ContainsValue(source *ServiceErrors_Error) bool {
  1945  	slice := fpaiv.ServiceErrorsError_FieldTerminalPath.Get(source)
  1946  	for _, v := range slice {
  1947  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1948  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1949  				return true
  1950  			}
  1951  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1952  			return true
  1953  		}
  1954  	}
  1955  	return false
  1956  }
  1957  
  1958  // ServiceErrorsError_FieldPathArrayOfValues allows storing slice of values for Error fields according to their type
  1959  type ServiceErrorsError_FieldPathArrayOfValues interface {
  1960  	gotenobject.FieldPathArrayOfValues
  1961  	ServiceErrorsError_FieldPath
  1962  }
  1963  
  1964  func ParseServiceErrorsError_FieldPathArrayOfValues(pathStr, valuesStr string) (ServiceErrorsError_FieldPathArrayOfValues, error) {
  1965  	fp, err := ParseServiceErrorsError_FieldPath(pathStr)
  1966  	if err != nil {
  1967  		return nil, err
  1968  	}
  1969  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1970  	if err != nil {
  1971  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Error field path array of values from %s: %v", valuesStr, err)
  1972  	}
  1973  	return fpaov.(ServiceErrorsError_FieldPathArrayOfValues), nil
  1974  }
  1975  
  1976  func MustParseServiceErrorsError_FieldPathArrayOfValues(pathStr, valuesStr string) ServiceErrorsError_FieldPathArrayOfValues {
  1977  	fpaov, err := ParseServiceErrorsError_FieldPathArrayOfValues(pathStr, valuesStr)
  1978  	if err != nil {
  1979  		panic(err)
  1980  	}
  1981  	return fpaov
  1982  }
  1983  
  1984  type ServiceErrorsError_FieldTerminalPathArrayOfValues struct {
  1985  	ServiceErrorsError_FieldTerminalPath
  1986  	values interface{}
  1987  }
  1988  
  1989  var _ ServiceErrorsError_FieldPathArrayOfValues = (*ServiceErrorsError_FieldTerminalPathArrayOfValues)(nil)
  1990  
  1991  func (fpaov *ServiceErrorsError_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1992  	switch fpaov.selector {
  1993  	case ServiceErrorsError_FieldPathSelectorService:
  1994  		for _, v := range fpaov.values.([]*meta_service.Name) {
  1995  			values = append(values, v)
  1996  		}
  1997  	case ServiceErrorsError_FieldPathSelectorMessage:
  1998  		for _, v := range fpaov.values.([]string) {
  1999  			values = append(values, v)
  2000  		}
  2001  	}
  2002  	return
  2003  }
  2004  func (fpaov *ServiceErrorsError_FieldTerminalPathArrayOfValues) AsServiceArrayOfValues() ([]*meta_service.Name, bool) {
  2005  	res, ok := fpaov.values.([]*meta_service.Name)
  2006  	return res, ok
  2007  }
  2008  func (fpaov *ServiceErrorsError_FieldTerminalPathArrayOfValues) AsMessageArrayOfValues() ([]string, bool) {
  2009  	res, ok := fpaov.values.([]string)
  2010  	return res, ok
  2011  }