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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/audit/proto/v1alpha2/audited_resource_descriptor.proto
     3  // DO NOT EDIT!!!
     4  
     5  package audited_resource_descriptor
     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  	common "github.com/cloudwan/edgelq-sdk/audit/resources/v1alpha2/common"
    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  	_ = &common.Authentication{}
    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 AuditedResourceDescriptor_FieldPath interface {
    57  	gotenobject.FieldPath
    58  	Selector() AuditedResourceDescriptor_FieldPathSelector
    59  	Get(source *AuditedResourceDescriptor) []interface{}
    60  	GetSingle(source *AuditedResourceDescriptor) (interface{}, bool)
    61  	ClearValue(item *AuditedResourceDescriptor)
    62  
    63  	// Those methods build corresponding AuditedResourceDescriptor_FieldPathValue
    64  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    65  	WithIValue(value interface{}) AuditedResourceDescriptor_FieldPathValue
    66  	WithIArrayOfValues(values interface{}) AuditedResourceDescriptor_FieldPathArrayOfValues
    67  	WithIArrayItemValue(value interface{}) AuditedResourceDescriptor_FieldPathArrayItemValue
    68  }
    69  
    70  type AuditedResourceDescriptor_FieldPathSelector int32
    71  
    72  const (
    73  	AuditedResourceDescriptor_FieldPathSelectorName                 AuditedResourceDescriptor_FieldPathSelector = 0
    74  	AuditedResourceDescriptor_FieldPathSelectorDisplayName          AuditedResourceDescriptor_FieldPathSelector = 1
    75  	AuditedResourceDescriptor_FieldPathSelectorDescription          AuditedResourceDescriptor_FieldPathSelector = 2
    76  	AuditedResourceDescriptor_FieldPathSelectorLabels               AuditedResourceDescriptor_FieldPathSelector = 3
    77  	AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets AuditedResourceDescriptor_FieldPathSelector = 4
    78  	AuditedResourceDescriptor_FieldPathSelectorVersions             AuditedResourceDescriptor_FieldPathSelector = 5
    79  	AuditedResourceDescriptor_FieldPathSelectorSpecFields           AuditedResourceDescriptor_FieldPathSelector = 6
    80  	AuditedResourceDescriptor_FieldPathSelectorStateFields          AuditedResourceDescriptor_FieldPathSelector = 7
    81  	AuditedResourceDescriptor_FieldPathSelectorMetaFields           AuditedResourceDescriptor_FieldPathSelector = 8
    82  	AuditedResourceDescriptor_FieldPathSelectorMetadata             AuditedResourceDescriptor_FieldPathSelector = 9
    83  )
    84  
    85  func (s AuditedResourceDescriptor_FieldPathSelector) String() string {
    86  	switch s {
    87  	case AuditedResourceDescriptor_FieldPathSelectorName:
    88  		return "name"
    89  	case AuditedResourceDescriptor_FieldPathSelectorDisplayName:
    90  		return "display_name"
    91  	case AuditedResourceDescriptor_FieldPathSelectorDescription:
    92  		return "description"
    93  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
    94  		return "labels"
    95  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
    96  		return "promoted_label_key_sets"
    97  	case AuditedResourceDescriptor_FieldPathSelectorVersions:
    98  		return "versions"
    99  	case AuditedResourceDescriptor_FieldPathSelectorSpecFields:
   100  		return "spec_fields"
   101  	case AuditedResourceDescriptor_FieldPathSelectorStateFields:
   102  		return "state_fields"
   103  	case AuditedResourceDescriptor_FieldPathSelectorMetaFields:
   104  		return "meta_fields"
   105  	case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   106  		return "metadata"
   107  	default:
   108  		panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", s))
   109  	}
   110  }
   111  
   112  func BuildAuditedResourceDescriptor_FieldPath(fp gotenobject.RawFieldPath) (AuditedResourceDescriptor_FieldPath, error) {
   113  	if len(fp) == 0 {
   114  		return nil, status.Error(codes.InvalidArgument, "empty field path for object AuditedResourceDescriptor")
   115  	}
   116  	if len(fp) == 1 {
   117  		switch fp[0] {
   118  		case "name":
   119  			return &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorName}, nil
   120  		case "display_name", "displayName", "display-name":
   121  			return &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorDisplayName}, nil
   122  		case "description":
   123  			return &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorDescription}, nil
   124  		case "labels":
   125  			return &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorLabels}, nil
   126  		case "promoted_label_key_sets", "promotedLabelKeySets", "promoted-label-key-sets":
   127  			return &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets}, nil
   128  		case "versions":
   129  			return &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorVersions}, nil
   130  		case "spec_fields", "specFields", "spec-fields":
   131  			return &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorSpecFields}, nil
   132  		case "state_fields", "stateFields", "state-fields":
   133  			return &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorStateFields}, nil
   134  		case "meta_fields", "metaFields", "meta-fields":
   135  			return &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorMetaFields}, nil
   136  		case "metadata":
   137  			return &AuditedResourceDescriptor_FieldTerminalPath{selector: AuditedResourceDescriptor_FieldPathSelectorMetadata}, nil
   138  		}
   139  	} else {
   140  		switch fp[0] {
   141  		case "labels":
   142  			if subpath, err := common.BuildLabelDescriptor_FieldPath(fp[1:]); err != nil {
   143  				return nil, err
   144  			} else {
   145  				return &AuditedResourceDescriptor_FieldSubPath{selector: AuditedResourceDescriptor_FieldPathSelectorLabels, subPath: subpath}, nil
   146  			}
   147  		case "promoted_label_key_sets", "promotedLabelKeySets", "promoted-label-key-sets":
   148  			if subpath, err := common.BuildLabelKeySet_FieldPath(fp[1:]); err != nil {
   149  				return nil, err
   150  			} else {
   151  				return &AuditedResourceDescriptor_FieldSubPath{selector: AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets, subPath: subpath}, nil
   152  			}
   153  		case "metadata":
   154  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   155  				return nil, err
   156  			} else {
   157  				return &AuditedResourceDescriptor_FieldSubPath{selector: AuditedResourceDescriptor_FieldPathSelectorMetadata, subPath: subpath}, nil
   158  			}
   159  		}
   160  	}
   161  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object AuditedResourceDescriptor", fp)
   162  }
   163  
   164  func ParseAuditedResourceDescriptor_FieldPath(rawField string) (AuditedResourceDescriptor_FieldPath, error) {
   165  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   166  	if err != nil {
   167  		return nil, err
   168  	}
   169  	return BuildAuditedResourceDescriptor_FieldPath(fp)
   170  }
   171  
   172  func MustParseAuditedResourceDescriptor_FieldPath(rawField string) AuditedResourceDescriptor_FieldPath {
   173  	fp, err := ParseAuditedResourceDescriptor_FieldPath(rawField)
   174  	if err != nil {
   175  		panic(err)
   176  	}
   177  	return fp
   178  }
   179  
   180  type AuditedResourceDescriptor_FieldTerminalPath struct {
   181  	selector AuditedResourceDescriptor_FieldPathSelector
   182  }
   183  
   184  var _ AuditedResourceDescriptor_FieldPath = (*AuditedResourceDescriptor_FieldTerminalPath)(nil)
   185  
   186  func (fp *AuditedResourceDescriptor_FieldTerminalPath) Selector() AuditedResourceDescriptor_FieldPathSelector {
   187  	return fp.selector
   188  }
   189  
   190  // String returns path representation in proto convention
   191  func (fp *AuditedResourceDescriptor_FieldTerminalPath) String() string {
   192  	return fp.selector.String()
   193  }
   194  
   195  // JSONString returns path representation is JSON convention
   196  func (fp *AuditedResourceDescriptor_FieldTerminalPath) JSONString() string {
   197  	return strcase.ToLowerCamel(fp.String())
   198  }
   199  
   200  // Get returns all values pointed by specific field from source AuditedResourceDescriptor
   201  func (fp *AuditedResourceDescriptor_FieldTerminalPath) Get(source *AuditedResourceDescriptor) (values []interface{}) {
   202  	if source != nil {
   203  		switch fp.selector {
   204  		case AuditedResourceDescriptor_FieldPathSelectorName:
   205  			if source.Name != nil {
   206  				values = append(values, source.Name)
   207  			}
   208  		case AuditedResourceDescriptor_FieldPathSelectorDisplayName:
   209  			values = append(values, source.DisplayName)
   210  		case AuditedResourceDescriptor_FieldPathSelectorDescription:
   211  			values = append(values, source.Description)
   212  		case AuditedResourceDescriptor_FieldPathSelectorLabels:
   213  			for _, value := range source.GetLabels() {
   214  				values = append(values, value)
   215  			}
   216  		case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   217  			for _, value := range source.GetPromotedLabelKeySets() {
   218  				values = append(values, value)
   219  			}
   220  		case AuditedResourceDescriptor_FieldPathSelectorVersions:
   221  			for _, value := range source.GetVersions() {
   222  				values = append(values, value)
   223  			}
   224  		case AuditedResourceDescriptor_FieldPathSelectorSpecFields:
   225  			for _, value := range source.GetSpecFields() {
   226  				values = append(values, value)
   227  			}
   228  		case AuditedResourceDescriptor_FieldPathSelectorStateFields:
   229  			for _, value := range source.GetStateFields() {
   230  				values = append(values, value)
   231  			}
   232  		case AuditedResourceDescriptor_FieldPathSelectorMetaFields:
   233  			for _, value := range source.GetMetaFields() {
   234  				values = append(values, value)
   235  			}
   236  		case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   237  			if source.Metadata != nil {
   238  				values = append(values, source.Metadata)
   239  			}
   240  		default:
   241  			panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fp.selector))
   242  		}
   243  	}
   244  	return
   245  }
   246  
   247  func (fp *AuditedResourceDescriptor_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   248  	return fp.Get(source.(*AuditedResourceDescriptor))
   249  }
   250  
   251  // GetSingle returns value pointed by specific field of from source AuditedResourceDescriptor
   252  func (fp *AuditedResourceDescriptor_FieldTerminalPath) GetSingle(source *AuditedResourceDescriptor) (interface{}, bool) {
   253  	switch fp.selector {
   254  	case AuditedResourceDescriptor_FieldPathSelectorName:
   255  		res := source.GetName()
   256  		return res, res != nil
   257  	case AuditedResourceDescriptor_FieldPathSelectorDisplayName:
   258  		return source.GetDisplayName(), source != nil
   259  	case AuditedResourceDescriptor_FieldPathSelectorDescription:
   260  		return source.GetDescription(), source != nil
   261  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
   262  		res := source.GetLabels()
   263  		return res, res != nil
   264  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   265  		res := source.GetPromotedLabelKeySets()
   266  		return res, res != nil
   267  	case AuditedResourceDescriptor_FieldPathSelectorVersions:
   268  		res := source.GetVersions()
   269  		return res, res != nil
   270  	case AuditedResourceDescriptor_FieldPathSelectorSpecFields:
   271  		res := source.GetSpecFields()
   272  		return res, res != nil
   273  	case AuditedResourceDescriptor_FieldPathSelectorStateFields:
   274  		res := source.GetStateFields()
   275  		return res, res != nil
   276  	case AuditedResourceDescriptor_FieldPathSelectorMetaFields:
   277  		res := source.GetMetaFields()
   278  		return res, res != nil
   279  	case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   280  		res := source.GetMetadata()
   281  		return res, res != nil
   282  	default:
   283  		panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fp.selector))
   284  	}
   285  }
   286  
   287  func (fp *AuditedResourceDescriptor_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   288  	return fp.GetSingle(source.(*AuditedResourceDescriptor))
   289  }
   290  
   291  // GetDefault returns a default value of the field type
   292  func (fp *AuditedResourceDescriptor_FieldTerminalPath) GetDefault() interface{} {
   293  	switch fp.selector {
   294  	case AuditedResourceDescriptor_FieldPathSelectorName:
   295  		return (*Name)(nil)
   296  	case AuditedResourceDescriptor_FieldPathSelectorDisplayName:
   297  		return ""
   298  	case AuditedResourceDescriptor_FieldPathSelectorDescription:
   299  		return ""
   300  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
   301  		return ([]*common.LabelDescriptor)(nil)
   302  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   303  		return ([]*common.LabelKeySet)(nil)
   304  	case AuditedResourceDescriptor_FieldPathSelectorVersions:
   305  		return ([]string)(nil)
   306  	case AuditedResourceDescriptor_FieldPathSelectorSpecFields:
   307  		return ([]string)(nil)
   308  	case AuditedResourceDescriptor_FieldPathSelectorStateFields:
   309  		return ([]string)(nil)
   310  	case AuditedResourceDescriptor_FieldPathSelectorMetaFields:
   311  		return ([]string)(nil)
   312  	case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   313  		return (*meta.Meta)(nil)
   314  	default:
   315  		panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fp.selector))
   316  	}
   317  }
   318  
   319  func (fp *AuditedResourceDescriptor_FieldTerminalPath) ClearValue(item *AuditedResourceDescriptor) {
   320  	if item != nil {
   321  		switch fp.selector {
   322  		case AuditedResourceDescriptor_FieldPathSelectorName:
   323  			item.Name = nil
   324  		case AuditedResourceDescriptor_FieldPathSelectorDisplayName:
   325  			item.DisplayName = ""
   326  		case AuditedResourceDescriptor_FieldPathSelectorDescription:
   327  			item.Description = ""
   328  		case AuditedResourceDescriptor_FieldPathSelectorLabels:
   329  			item.Labels = nil
   330  		case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   331  			item.PromotedLabelKeySets = nil
   332  		case AuditedResourceDescriptor_FieldPathSelectorVersions:
   333  			item.Versions = nil
   334  		case AuditedResourceDescriptor_FieldPathSelectorSpecFields:
   335  			item.SpecFields = nil
   336  		case AuditedResourceDescriptor_FieldPathSelectorStateFields:
   337  			item.StateFields = nil
   338  		case AuditedResourceDescriptor_FieldPathSelectorMetaFields:
   339  			item.MetaFields = nil
   340  		case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   341  			item.Metadata = nil
   342  		default:
   343  			panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fp.selector))
   344  		}
   345  	}
   346  }
   347  
   348  func (fp *AuditedResourceDescriptor_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   349  	fp.ClearValue(item.(*AuditedResourceDescriptor))
   350  }
   351  
   352  // IsLeaf - whether field path is holds simple value
   353  func (fp *AuditedResourceDescriptor_FieldTerminalPath) IsLeaf() bool {
   354  	return fp.selector == AuditedResourceDescriptor_FieldPathSelectorName ||
   355  		fp.selector == AuditedResourceDescriptor_FieldPathSelectorDisplayName ||
   356  		fp.selector == AuditedResourceDescriptor_FieldPathSelectorDescription ||
   357  		fp.selector == AuditedResourceDescriptor_FieldPathSelectorVersions ||
   358  		fp.selector == AuditedResourceDescriptor_FieldPathSelectorSpecFields ||
   359  		fp.selector == AuditedResourceDescriptor_FieldPathSelectorStateFields ||
   360  		fp.selector == AuditedResourceDescriptor_FieldPathSelectorMetaFields
   361  }
   362  
   363  func (fp *AuditedResourceDescriptor_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   364  	return []gotenobject.FieldPath{fp}
   365  }
   366  
   367  func (fp *AuditedResourceDescriptor_FieldTerminalPath) WithIValue(value interface{}) AuditedResourceDescriptor_FieldPathValue {
   368  	switch fp.selector {
   369  	case AuditedResourceDescriptor_FieldPathSelectorName:
   370  		return &AuditedResourceDescriptor_FieldTerminalPathValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.(*Name)}
   371  	case AuditedResourceDescriptor_FieldPathSelectorDisplayName:
   372  		return &AuditedResourceDescriptor_FieldTerminalPathValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.(string)}
   373  	case AuditedResourceDescriptor_FieldPathSelectorDescription:
   374  		return &AuditedResourceDescriptor_FieldTerminalPathValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.(string)}
   375  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
   376  		return &AuditedResourceDescriptor_FieldTerminalPathValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.([]*common.LabelDescriptor)}
   377  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   378  		return &AuditedResourceDescriptor_FieldTerminalPathValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.([]*common.LabelKeySet)}
   379  	case AuditedResourceDescriptor_FieldPathSelectorVersions:
   380  		return &AuditedResourceDescriptor_FieldTerminalPathValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.([]string)}
   381  	case AuditedResourceDescriptor_FieldPathSelectorSpecFields:
   382  		return &AuditedResourceDescriptor_FieldTerminalPathValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.([]string)}
   383  	case AuditedResourceDescriptor_FieldPathSelectorStateFields:
   384  		return &AuditedResourceDescriptor_FieldTerminalPathValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.([]string)}
   385  	case AuditedResourceDescriptor_FieldPathSelectorMetaFields:
   386  		return &AuditedResourceDescriptor_FieldTerminalPathValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.([]string)}
   387  	case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   388  		return &AuditedResourceDescriptor_FieldTerminalPathValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   389  	default:
   390  		panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fp.selector))
   391  	}
   392  }
   393  
   394  func (fp *AuditedResourceDescriptor_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   395  	return fp.WithIValue(value)
   396  }
   397  
   398  func (fp *AuditedResourceDescriptor_FieldTerminalPath) WithIArrayOfValues(values interface{}) AuditedResourceDescriptor_FieldPathArrayOfValues {
   399  	fpaov := &AuditedResourceDescriptor_FieldTerminalPathArrayOfValues{AuditedResourceDescriptor_FieldTerminalPath: *fp}
   400  	switch fp.selector {
   401  	case AuditedResourceDescriptor_FieldPathSelectorName:
   402  		return &AuditedResourceDescriptor_FieldTerminalPathArrayOfValues{AuditedResourceDescriptor_FieldTerminalPath: *fp, values: values.([]*Name)}
   403  	case AuditedResourceDescriptor_FieldPathSelectorDisplayName:
   404  		return &AuditedResourceDescriptor_FieldTerminalPathArrayOfValues{AuditedResourceDescriptor_FieldTerminalPath: *fp, values: values.([]string)}
   405  	case AuditedResourceDescriptor_FieldPathSelectorDescription:
   406  		return &AuditedResourceDescriptor_FieldTerminalPathArrayOfValues{AuditedResourceDescriptor_FieldTerminalPath: *fp, values: values.([]string)}
   407  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
   408  		return &AuditedResourceDescriptor_FieldTerminalPathArrayOfValues{AuditedResourceDescriptor_FieldTerminalPath: *fp, values: values.([][]*common.LabelDescriptor)}
   409  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   410  		return &AuditedResourceDescriptor_FieldTerminalPathArrayOfValues{AuditedResourceDescriptor_FieldTerminalPath: *fp, values: values.([][]*common.LabelKeySet)}
   411  	case AuditedResourceDescriptor_FieldPathSelectorVersions:
   412  		return &AuditedResourceDescriptor_FieldTerminalPathArrayOfValues{AuditedResourceDescriptor_FieldTerminalPath: *fp, values: values.([][]string)}
   413  	case AuditedResourceDescriptor_FieldPathSelectorSpecFields:
   414  		return &AuditedResourceDescriptor_FieldTerminalPathArrayOfValues{AuditedResourceDescriptor_FieldTerminalPath: *fp, values: values.([][]string)}
   415  	case AuditedResourceDescriptor_FieldPathSelectorStateFields:
   416  		return &AuditedResourceDescriptor_FieldTerminalPathArrayOfValues{AuditedResourceDescriptor_FieldTerminalPath: *fp, values: values.([][]string)}
   417  	case AuditedResourceDescriptor_FieldPathSelectorMetaFields:
   418  		return &AuditedResourceDescriptor_FieldTerminalPathArrayOfValues{AuditedResourceDescriptor_FieldTerminalPath: *fp, values: values.([][]string)}
   419  	case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   420  		return &AuditedResourceDescriptor_FieldTerminalPathArrayOfValues{AuditedResourceDescriptor_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   421  	default:
   422  		panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fp.selector))
   423  	}
   424  	return fpaov
   425  }
   426  
   427  func (fp *AuditedResourceDescriptor_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   428  	return fp.WithIArrayOfValues(values)
   429  }
   430  
   431  func (fp *AuditedResourceDescriptor_FieldTerminalPath) WithIArrayItemValue(value interface{}) AuditedResourceDescriptor_FieldPathArrayItemValue {
   432  	switch fp.selector {
   433  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
   434  		return &AuditedResourceDescriptor_FieldTerminalPathArrayItemValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.(*common.LabelDescriptor)}
   435  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   436  		return &AuditedResourceDescriptor_FieldTerminalPathArrayItemValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.(*common.LabelKeySet)}
   437  	case AuditedResourceDescriptor_FieldPathSelectorVersions:
   438  		return &AuditedResourceDescriptor_FieldTerminalPathArrayItemValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.(string)}
   439  	case AuditedResourceDescriptor_FieldPathSelectorSpecFields:
   440  		return &AuditedResourceDescriptor_FieldTerminalPathArrayItemValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.(string)}
   441  	case AuditedResourceDescriptor_FieldPathSelectorStateFields:
   442  		return &AuditedResourceDescriptor_FieldTerminalPathArrayItemValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.(string)}
   443  	case AuditedResourceDescriptor_FieldPathSelectorMetaFields:
   444  		return &AuditedResourceDescriptor_FieldTerminalPathArrayItemValue{AuditedResourceDescriptor_FieldTerminalPath: *fp, value: value.(string)}
   445  	default:
   446  		panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fp.selector))
   447  	}
   448  }
   449  
   450  func (fp *AuditedResourceDescriptor_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   451  	return fp.WithIArrayItemValue(value)
   452  }
   453  
   454  type AuditedResourceDescriptor_FieldSubPath struct {
   455  	selector AuditedResourceDescriptor_FieldPathSelector
   456  	subPath  gotenobject.FieldPath
   457  }
   458  
   459  var _ AuditedResourceDescriptor_FieldPath = (*AuditedResourceDescriptor_FieldSubPath)(nil)
   460  
   461  func (fps *AuditedResourceDescriptor_FieldSubPath) Selector() AuditedResourceDescriptor_FieldPathSelector {
   462  	return fps.selector
   463  }
   464  func (fps *AuditedResourceDescriptor_FieldSubPath) AsLabelsSubPath() (common.LabelDescriptor_FieldPath, bool) {
   465  	res, ok := fps.subPath.(common.LabelDescriptor_FieldPath)
   466  	return res, ok
   467  }
   468  func (fps *AuditedResourceDescriptor_FieldSubPath) AsPromotedLabelKeySetsSubPath() (common.LabelKeySet_FieldPath, bool) {
   469  	res, ok := fps.subPath.(common.LabelKeySet_FieldPath)
   470  	return res, ok
   471  }
   472  func (fps *AuditedResourceDescriptor_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   473  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   474  	return res, ok
   475  }
   476  
   477  // String returns path representation in proto convention
   478  func (fps *AuditedResourceDescriptor_FieldSubPath) String() string {
   479  	return fps.selector.String() + "." + fps.subPath.String()
   480  }
   481  
   482  // JSONString returns path representation is JSON convention
   483  func (fps *AuditedResourceDescriptor_FieldSubPath) JSONString() string {
   484  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   485  }
   486  
   487  // Get returns all values pointed by selected field from source AuditedResourceDescriptor
   488  func (fps *AuditedResourceDescriptor_FieldSubPath) Get(source *AuditedResourceDescriptor) (values []interface{}) {
   489  	switch fps.selector {
   490  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
   491  		for _, item := range source.GetLabels() {
   492  			values = append(values, fps.subPath.GetRaw(item)...)
   493  		}
   494  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   495  		for _, item := range source.GetPromotedLabelKeySets() {
   496  			values = append(values, fps.subPath.GetRaw(item)...)
   497  		}
   498  	case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   499  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   500  	default:
   501  		panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fps.selector))
   502  	}
   503  	return
   504  }
   505  
   506  func (fps *AuditedResourceDescriptor_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   507  	return fps.Get(source.(*AuditedResourceDescriptor))
   508  }
   509  
   510  // GetSingle returns value of selected field from source AuditedResourceDescriptor
   511  func (fps *AuditedResourceDescriptor_FieldSubPath) GetSingle(source *AuditedResourceDescriptor) (interface{}, bool) {
   512  	switch fps.selector {
   513  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
   514  		if len(source.GetLabels()) == 0 {
   515  			return nil, false
   516  		}
   517  		return fps.subPath.GetSingleRaw(source.GetLabels()[0])
   518  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   519  		if len(source.GetPromotedLabelKeySets()) == 0 {
   520  			return nil, false
   521  		}
   522  		return fps.subPath.GetSingleRaw(source.GetPromotedLabelKeySets()[0])
   523  	case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   524  		if source.GetMetadata() == nil {
   525  			return nil, false
   526  		}
   527  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   528  	default:
   529  		panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fps.selector))
   530  	}
   531  }
   532  
   533  func (fps *AuditedResourceDescriptor_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   534  	return fps.GetSingle(source.(*AuditedResourceDescriptor))
   535  }
   536  
   537  // GetDefault returns a default value of the field type
   538  func (fps *AuditedResourceDescriptor_FieldSubPath) GetDefault() interface{} {
   539  	return fps.subPath.GetDefault()
   540  }
   541  
   542  func (fps *AuditedResourceDescriptor_FieldSubPath) ClearValue(item *AuditedResourceDescriptor) {
   543  	if item != nil {
   544  		switch fps.selector {
   545  		case AuditedResourceDescriptor_FieldPathSelectorLabels:
   546  			for _, subItem := range item.Labels {
   547  				fps.subPath.ClearValueRaw(subItem)
   548  			}
   549  		case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   550  			for _, subItem := range item.PromotedLabelKeySets {
   551  				fps.subPath.ClearValueRaw(subItem)
   552  			}
   553  		case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   554  			fps.subPath.ClearValueRaw(item.Metadata)
   555  		default:
   556  			panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fps.selector))
   557  		}
   558  	}
   559  }
   560  
   561  func (fps *AuditedResourceDescriptor_FieldSubPath) ClearValueRaw(item proto.Message) {
   562  	fps.ClearValue(item.(*AuditedResourceDescriptor))
   563  }
   564  
   565  // IsLeaf - whether field path is holds simple value
   566  func (fps *AuditedResourceDescriptor_FieldSubPath) IsLeaf() bool {
   567  	return fps.subPath.IsLeaf()
   568  }
   569  
   570  func (fps *AuditedResourceDescriptor_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   571  	iPaths := []gotenobject.FieldPath{&AuditedResourceDescriptor_FieldTerminalPath{selector: fps.selector}}
   572  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   573  	return iPaths
   574  }
   575  
   576  func (fps *AuditedResourceDescriptor_FieldSubPath) WithIValue(value interface{}) AuditedResourceDescriptor_FieldPathValue {
   577  	return &AuditedResourceDescriptor_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   578  }
   579  
   580  func (fps *AuditedResourceDescriptor_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   581  	return fps.WithIValue(value)
   582  }
   583  
   584  func (fps *AuditedResourceDescriptor_FieldSubPath) WithIArrayOfValues(values interface{}) AuditedResourceDescriptor_FieldPathArrayOfValues {
   585  	return &AuditedResourceDescriptor_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   586  }
   587  
   588  func (fps *AuditedResourceDescriptor_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   589  	return fps.WithIArrayOfValues(values)
   590  }
   591  
   592  func (fps *AuditedResourceDescriptor_FieldSubPath) WithIArrayItemValue(value interface{}) AuditedResourceDescriptor_FieldPathArrayItemValue {
   593  	return &AuditedResourceDescriptor_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   594  }
   595  
   596  func (fps *AuditedResourceDescriptor_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   597  	return fps.WithIArrayItemValue(value)
   598  }
   599  
   600  // AuditedResourceDescriptor_FieldPathValue allows storing values for AuditedResourceDescriptor fields according to their type
   601  type AuditedResourceDescriptor_FieldPathValue interface {
   602  	AuditedResourceDescriptor_FieldPath
   603  	gotenobject.FieldPathValue
   604  	SetTo(target **AuditedResourceDescriptor)
   605  	CompareWith(*AuditedResourceDescriptor) (cmp int, comparable bool)
   606  }
   607  
   608  func ParseAuditedResourceDescriptor_FieldPathValue(pathStr, valueStr string) (AuditedResourceDescriptor_FieldPathValue, error) {
   609  	fp, err := ParseAuditedResourceDescriptor_FieldPath(pathStr)
   610  	if err != nil {
   611  		return nil, err
   612  	}
   613  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   614  	if err != nil {
   615  		return nil, status.Errorf(codes.InvalidArgument, "error parsing AuditedResourceDescriptor field path value from %s: %v", valueStr, err)
   616  	}
   617  	return fpv.(AuditedResourceDescriptor_FieldPathValue), nil
   618  }
   619  
   620  func MustParseAuditedResourceDescriptor_FieldPathValue(pathStr, valueStr string) AuditedResourceDescriptor_FieldPathValue {
   621  	fpv, err := ParseAuditedResourceDescriptor_FieldPathValue(pathStr, valueStr)
   622  	if err != nil {
   623  		panic(err)
   624  	}
   625  	return fpv
   626  }
   627  
   628  type AuditedResourceDescriptor_FieldTerminalPathValue struct {
   629  	AuditedResourceDescriptor_FieldTerminalPath
   630  	value interface{}
   631  }
   632  
   633  var _ AuditedResourceDescriptor_FieldPathValue = (*AuditedResourceDescriptor_FieldTerminalPathValue)(nil)
   634  
   635  // GetRawValue returns raw value stored under selected path for 'AuditedResourceDescriptor' as interface{}
   636  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) GetRawValue() interface{} {
   637  	return fpv.value
   638  }
   639  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   640  	res, ok := fpv.value.(*Name)
   641  	return res, ok
   642  }
   643  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) AsDisplayNameValue() (string, bool) {
   644  	res, ok := fpv.value.(string)
   645  	return res, ok
   646  }
   647  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) AsDescriptionValue() (string, bool) {
   648  	res, ok := fpv.value.(string)
   649  	return res, ok
   650  }
   651  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) AsLabelsValue() ([]*common.LabelDescriptor, bool) {
   652  	res, ok := fpv.value.([]*common.LabelDescriptor)
   653  	return res, ok
   654  }
   655  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) AsPromotedLabelKeySetsValue() ([]*common.LabelKeySet, bool) {
   656  	res, ok := fpv.value.([]*common.LabelKeySet)
   657  	return res, ok
   658  }
   659  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) AsVersionsValue() ([]string, bool) {
   660  	res, ok := fpv.value.([]string)
   661  	return res, ok
   662  }
   663  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) AsSpecFieldsValue() ([]string, bool) {
   664  	res, ok := fpv.value.([]string)
   665  	return res, ok
   666  }
   667  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) AsStateFieldsValue() ([]string, bool) {
   668  	res, ok := fpv.value.([]string)
   669  	return res, ok
   670  }
   671  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) AsMetaFieldsValue() ([]string, bool) {
   672  	res, ok := fpv.value.([]string)
   673  	return res, ok
   674  }
   675  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   676  	res, ok := fpv.value.(*meta.Meta)
   677  	return res, ok
   678  }
   679  
   680  // SetTo stores value for selected field for object AuditedResourceDescriptor
   681  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) SetTo(target **AuditedResourceDescriptor) {
   682  	if *target == nil {
   683  		*target = new(AuditedResourceDescriptor)
   684  	}
   685  	switch fpv.selector {
   686  	case AuditedResourceDescriptor_FieldPathSelectorName:
   687  		(*target).Name = fpv.value.(*Name)
   688  	case AuditedResourceDescriptor_FieldPathSelectorDisplayName:
   689  		(*target).DisplayName = fpv.value.(string)
   690  	case AuditedResourceDescriptor_FieldPathSelectorDescription:
   691  		(*target).Description = fpv.value.(string)
   692  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
   693  		(*target).Labels = fpv.value.([]*common.LabelDescriptor)
   694  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   695  		(*target).PromotedLabelKeySets = fpv.value.([]*common.LabelKeySet)
   696  	case AuditedResourceDescriptor_FieldPathSelectorVersions:
   697  		(*target).Versions = fpv.value.([]string)
   698  	case AuditedResourceDescriptor_FieldPathSelectorSpecFields:
   699  		(*target).SpecFields = fpv.value.([]string)
   700  	case AuditedResourceDescriptor_FieldPathSelectorStateFields:
   701  		(*target).StateFields = fpv.value.([]string)
   702  	case AuditedResourceDescriptor_FieldPathSelectorMetaFields:
   703  		(*target).MetaFields = fpv.value.([]string)
   704  	case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   705  		(*target).Metadata = fpv.value.(*meta.Meta)
   706  	default:
   707  		panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fpv.selector))
   708  	}
   709  }
   710  
   711  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   712  	typedObject := target.(*AuditedResourceDescriptor)
   713  	fpv.SetTo(&typedObject)
   714  }
   715  
   716  // CompareWith compares value in the 'AuditedResourceDescriptor_FieldTerminalPathValue' with the value under path in 'AuditedResourceDescriptor'.
   717  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) CompareWith(source *AuditedResourceDescriptor) (int, bool) {
   718  	switch fpv.selector {
   719  	case AuditedResourceDescriptor_FieldPathSelectorName:
   720  		leftValue := fpv.value.(*Name)
   721  		rightValue := source.GetName()
   722  		if leftValue == nil {
   723  			if rightValue != nil {
   724  				return -1, true
   725  			}
   726  			return 0, true
   727  		}
   728  		if rightValue == nil {
   729  			return 1, true
   730  		}
   731  		if leftValue.String() == rightValue.String() {
   732  			return 0, true
   733  		} else if leftValue.String() < rightValue.String() {
   734  			return -1, true
   735  		} else {
   736  			return 1, true
   737  		}
   738  	case AuditedResourceDescriptor_FieldPathSelectorDisplayName:
   739  		leftValue := fpv.value.(string)
   740  		rightValue := source.GetDisplayName()
   741  		if (leftValue) == (rightValue) {
   742  			return 0, true
   743  		} else if (leftValue) < (rightValue) {
   744  			return -1, true
   745  		} else {
   746  			return 1, true
   747  		}
   748  	case AuditedResourceDescriptor_FieldPathSelectorDescription:
   749  		leftValue := fpv.value.(string)
   750  		rightValue := source.GetDescription()
   751  		if (leftValue) == (rightValue) {
   752  			return 0, true
   753  		} else if (leftValue) < (rightValue) {
   754  			return -1, true
   755  		} else {
   756  			return 1, true
   757  		}
   758  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
   759  		return 0, false
   760  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   761  		return 0, false
   762  	case AuditedResourceDescriptor_FieldPathSelectorVersions:
   763  		return 0, false
   764  	case AuditedResourceDescriptor_FieldPathSelectorSpecFields:
   765  		return 0, false
   766  	case AuditedResourceDescriptor_FieldPathSelectorStateFields:
   767  		return 0, false
   768  	case AuditedResourceDescriptor_FieldPathSelectorMetaFields:
   769  		return 0, false
   770  	case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   771  		return 0, false
   772  	default:
   773  		panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fpv.selector))
   774  	}
   775  }
   776  
   777  func (fpv *AuditedResourceDescriptor_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   778  	return fpv.CompareWith(source.(*AuditedResourceDescriptor))
   779  }
   780  
   781  type AuditedResourceDescriptor_FieldSubPathValue struct {
   782  	AuditedResourceDescriptor_FieldPath
   783  	subPathValue gotenobject.FieldPathValue
   784  }
   785  
   786  var _ AuditedResourceDescriptor_FieldPathValue = (*AuditedResourceDescriptor_FieldSubPathValue)(nil)
   787  
   788  func (fpvs *AuditedResourceDescriptor_FieldSubPathValue) AsLabelsPathValue() (common.LabelDescriptor_FieldPathValue, bool) {
   789  	res, ok := fpvs.subPathValue.(common.LabelDescriptor_FieldPathValue)
   790  	return res, ok
   791  }
   792  func (fpvs *AuditedResourceDescriptor_FieldSubPathValue) AsPromotedLabelKeySetsPathValue() (common.LabelKeySet_FieldPathValue, bool) {
   793  	res, ok := fpvs.subPathValue.(common.LabelKeySet_FieldPathValue)
   794  	return res, ok
   795  }
   796  func (fpvs *AuditedResourceDescriptor_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   797  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   798  	return res, ok
   799  }
   800  
   801  func (fpvs *AuditedResourceDescriptor_FieldSubPathValue) SetTo(target **AuditedResourceDescriptor) {
   802  	if *target == nil {
   803  		*target = new(AuditedResourceDescriptor)
   804  	}
   805  	switch fpvs.Selector() {
   806  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
   807  		panic("FieldPath setter is unsupported for array subpaths")
   808  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   809  		panic("FieldPath setter is unsupported for array subpaths")
   810  	case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   811  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
   812  	default:
   813  		panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fpvs.Selector()))
   814  	}
   815  }
   816  
   817  func (fpvs *AuditedResourceDescriptor_FieldSubPathValue) SetToRaw(target proto.Message) {
   818  	typedObject := target.(*AuditedResourceDescriptor)
   819  	fpvs.SetTo(&typedObject)
   820  }
   821  
   822  func (fpvs *AuditedResourceDescriptor_FieldSubPathValue) GetRawValue() interface{} {
   823  	return fpvs.subPathValue.GetRawValue()
   824  }
   825  
   826  func (fpvs *AuditedResourceDescriptor_FieldSubPathValue) CompareWith(source *AuditedResourceDescriptor) (int, bool) {
   827  	switch fpvs.Selector() {
   828  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
   829  		return 0, false // repeated field
   830  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   831  		return 0, false // repeated field
   832  	case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   833  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
   834  	default:
   835  		panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fpvs.Selector()))
   836  	}
   837  }
   838  
   839  func (fpvs *AuditedResourceDescriptor_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   840  	return fpvs.CompareWith(source.(*AuditedResourceDescriptor))
   841  }
   842  
   843  // AuditedResourceDescriptor_FieldPathArrayItemValue allows storing single item in Path-specific values for AuditedResourceDescriptor according to their type
   844  // Present only for array (repeated) types.
   845  type AuditedResourceDescriptor_FieldPathArrayItemValue interface {
   846  	gotenobject.FieldPathArrayItemValue
   847  	AuditedResourceDescriptor_FieldPath
   848  	ContainsValue(*AuditedResourceDescriptor) bool
   849  }
   850  
   851  // ParseAuditedResourceDescriptor_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   852  func ParseAuditedResourceDescriptor_FieldPathArrayItemValue(pathStr, valueStr string) (AuditedResourceDescriptor_FieldPathArrayItemValue, error) {
   853  	fp, err := ParseAuditedResourceDescriptor_FieldPath(pathStr)
   854  	if err != nil {
   855  		return nil, err
   856  	}
   857  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   858  	if err != nil {
   859  		return nil, status.Errorf(codes.InvalidArgument, "error parsing AuditedResourceDescriptor field path array item value from %s: %v", valueStr, err)
   860  	}
   861  	return fpaiv.(AuditedResourceDescriptor_FieldPathArrayItemValue), nil
   862  }
   863  
   864  func MustParseAuditedResourceDescriptor_FieldPathArrayItemValue(pathStr, valueStr string) AuditedResourceDescriptor_FieldPathArrayItemValue {
   865  	fpaiv, err := ParseAuditedResourceDescriptor_FieldPathArrayItemValue(pathStr, valueStr)
   866  	if err != nil {
   867  		panic(err)
   868  	}
   869  	return fpaiv
   870  }
   871  
   872  type AuditedResourceDescriptor_FieldTerminalPathArrayItemValue struct {
   873  	AuditedResourceDescriptor_FieldTerminalPath
   874  	value interface{}
   875  }
   876  
   877  var _ AuditedResourceDescriptor_FieldPathArrayItemValue = (*AuditedResourceDescriptor_FieldTerminalPathArrayItemValue)(nil)
   878  
   879  // GetRawValue returns stored element value for array in object AuditedResourceDescriptor as interface{}
   880  func (fpaiv *AuditedResourceDescriptor_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   881  	return fpaiv.value
   882  }
   883  func (fpaiv *AuditedResourceDescriptor_FieldTerminalPathArrayItemValue) AsLabelsItemValue() (*common.LabelDescriptor, bool) {
   884  	res, ok := fpaiv.value.(*common.LabelDescriptor)
   885  	return res, ok
   886  }
   887  func (fpaiv *AuditedResourceDescriptor_FieldTerminalPathArrayItemValue) AsPromotedLabelKeySetsItemValue() (*common.LabelKeySet, bool) {
   888  	res, ok := fpaiv.value.(*common.LabelKeySet)
   889  	return res, ok
   890  }
   891  func (fpaiv *AuditedResourceDescriptor_FieldTerminalPathArrayItemValue) AsVersionsItemValue() (string, bool) {
   892  	res, ok := fpaiv.value.(string)
   893  	return res, ok
   894  }
   895  func (fpaiv *AuditedResourceDescriptor_FieldTerminalPathArrayItemValue) AsSpecFieldsItemValue() (string, bool) {
   896  	res, ok := fpaiv.value.(string)
   897  	return res, ok
   898  }
   899  func (fpaiv *AuditedResourceDescriptor_FieldTerminalPathArrayItemValue) AsStateFieldsItemValue() (string, bool) {
   900  	res, ok := fpaiv.value.(string)
   901  	return res, ok
   902  }
   903  func (fpaiv *AuditedResourceDescriptor_FieldTerminalPathArrayItemValue) AsMetaFieldsItemValue() (string, bool) {
   904  	res, ok := fpaiv.value.(string)
   905  	return res, ok
   906  }
   907  
   908  func (fpaiv *AuditedResourceDescriptor_FieldTerminalPathArrayItemValue) GetSingle(source *AuditedResourceDescriptor) (interface{}, bool) {
   909  	return nil, false
   910  }
   911  
   912  func (fpaiv *AuditedResourceDescriptor_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   913  	return fpaiv.GetSingle(source.(*AuditedResourceDescriptor))
   914  }
   915  
   916  // Contains returns a boolean indicating if value that is being held is present in given 'AuditedResourceDescriptor'
   917  func (fpaiv *AuditedResourceDescriptor_FieldTerminalPathArrayItemValue) ContainsValue(source *AuditedResourceDescriptor) bool {
   918  	slice := fpaiv.AuditedResourceDescriptor_FieldTerminalPath.Get(source)
   919  	for _, v := range slice {
   920  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   921  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   922  				return true
   923  			}
   924  		} else if reflect.DeepEqual(v, fpaiv.value) {
   925  			return true
   926  		}
   927  	}
   928  	return false
   929  }
   930  
   931  type AuditedResourceDescriptor_FieldSubPathArrayItemValue struct {
   932  	AuditedResourceDescriptor_FieldPath
   933  	subPathItemValue gotenobject.FieldPathArrayItemValue
   934  }
   935  
   936  // GetRawValue returns stored array item value
   937  func (fpaivs *AuditedResourceDescriptor_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
   938  	return fpaivs.subPathItemValue.GetRawItemValue()
   939  }
   940  func (fpaivs *AuditedResourceDescriptor_FieldSubPathArrayItemValue) AsLabelsPathItemValue() (common.LabelDescriptor_FieldPathArrayItemValue, bool) {
   941  	res, ok := fpaivs.subPathItemValue.(common.LabelDescriptor_FieldPathArrayItemValue)
   942  	return res, ok
   943  }
   944  func (fpaivs *AuditedResourceDescriptor_FieldSubPathArrayItemValue) AsPromotedLabelKeySetsPathItemValue() (common.LabelKeySet_FieldPathArrayItemValue, bool) {
   945  	res, ok := fpaivs.subPathItemValue.(common.LabelKeySet_FieldPathArrayItemValue)
   946  	return res, ok
   947  }
   948  func (fpaivs *AuditedResourceDescriptor_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
   949  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
   950  	return res, ok
   951  }
   952  
   953  // Contains returns a boolean indicating if value that is being held is present in given 'AuditedResourceDescriptor'
   954  func (fpaivs *AuditedResourceDescriptor_FieldSubPathArrayItemValue) ContainsValue(source *AuditedResourceDescriptor) bool {
   955  	switch fpaivs.Selector() {
   956  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
   957  		return false // repeated/map field
   958  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
   959  		return false // repeated/map field
   960  	case AuditedResourceDescriptor_FieldPathSelectorMetadata:
   961  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
   962  	default:
   963  		panic(fmt.Sprintf("Invalid selector for AuditedResourceDescriptor: %d", fpaivs.Selector()))
   964  	}
   965  }
   966  
   967  // AuditedResourceDescriptor_FieldPathArrayOfValues allows storing slice of values for AuditedResourceDescriptor fields according to their type
   968  type AuditedResourceDescriptor_FieldPathArrayOfValues interface {
   969  	gotenobject.FieldPathArrayOfValues
   970  	AuditedResourceDescriptor_FieldPath
   971  }
   972  
   973  func ParseAuditedResourceDescriptor_FieldPathArrayOfValues(pathStr, valuesStr string) (AuditedResourceDescriptor_FieldPathArrayOfValues, error) {
   974  	fp, err := ParseAuditedResourceDescriptor_FieldPath(pathStr)
   975  	if err != nil {
   976  		return nil, err
   977  	}
   978  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   979  	if err != nil {
   980  		return nil, status.Errorf(codes.InvalidArgument, "error parsing AuditedResourceDescriptor field path array of values from %s: %v", valuesStr, err)
   981  	}
   982  	return fpaov.(AuditedResourceDescriptor_FieldPathArrayOfValues), nil
   983  }
   984  
   985  func MustParseAuditedResourceDescriptor_FieldPathArrayOfValues(pathStr, valuesStr string) AuditedResourceDescriptor_FieldPathArrayOfValues {
   986  	fpaov, err := ParseAuditedResourceDescriptor_FieldPathArrayOfValues(pathStr, valuesStr)
   987  	if err != nil {
   988  		panic(err)
   989  	}
   990  	return fpaov
   991  }
   992  
   993  type AuditedResourceDescriptor_FieldTerminalPathArrayOfValues struct {
   994  	AuditedResourceDescriptor_FieldTerminalPath
   995  	values interface{}
   996  }
   997  
   998  var _ AuditedResourceDescriptor_FieldPathArrayOfValues = (*AuditedResourceDescriptor_FieldTerminalPathArrayOfValues)(nil)
   999  
  1000  func (fpaov *AuditedResourceDescriptor_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1001  	switch fpaov.selector {
  1002  	case AuditedResourceDescriptor_FieldPathSelectorName:
  1003  		for _, v := range fpaov.values.([]*Name) {
  1004  			values = append(values, v)
  1005  		}
  1006  	case AuditedResourceDescriptor_FieldPathSelectorDisplayName:
  1007  		for _, v := range fpaov.values.([]string) {
  1008  			values = append(values, v)
  1009  		}
  1010  	case AuditedResourceDescriptor_FieldPathSelectorDescription:
  1011  		for _, v := range fpaov.values.([]string) {
  1012  			values = append(values, v)
  1013  		}
  1014  	case AuditedResourceDescriptor_FieldPathSelectorLabels:
  1015  		for _, v := range fpaov.values.([][]*common.LabelDescriptor) {
  1016  			values = append(values, v)
  1017  		}
  1018  	case AuditedResourceDescriptor_FieldPathSelectorPromotedLabelKeySets:
  1019  		for _, v := range fpaov.values.([][]*common.LabelKeySet) {
  1020  			values = append(values, v)
  1021  		}
  1022  	case AuditedResourceDescriptor_FieldPathSelectorVersions:
  1023  		for _, v := range fpaov.values.([][]string) {
  1024  			values = append(values, v)
  1025  		}
  1026  	case AuditedResourceDescriptor_FieldPathSelectorSpecFields:
  1027  		for _, v := range fpaov.values.([][]string) {
  1028  			values = append(values, v)
  1029  		}
  1030  	case AuditedResourceDescriptor_FieldPathSelectorStateFields:
  1031  		for _, v := range fpaov.values.([][]string) {
  1032  			values = append(values, v)
  1033  		}
  1034  	case AuditedResourceDescriptor_FieldPathSelectorMetaFields:
  1035  		for _, v := range fpaov.values.([][]string) {
  1036  			values = append(values, v)
  1037  		}
  1038  	case AuditedResourceDescriptor_FieldPathSelectorMetadata:
  1039  		for _, v := range fpaov.values.([]*meta.Meta) {
  1040  			values = append(values, v)
  1041  		}
  1042  	}
  1043  	return
  1044  }
  1045  func (fpaov *AuditedResourceDescriptor_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
  1046  	res, ok := fpaov.values.([]*Name)
  1047  	return res, ok
  1048  }
  1049  func (fpaov *AuditedResourceDescriptor_FieldTerminalPathArrayOfValues) AsDisplayNameArrayOfValues() ([]string, bool) {
  1050  	res, ok := fpaov.values.([]string)
  1051  	return res, ok
  1052  }
  1053  func (fpaov *AuditedResourceDescriptor_FieldTerminalPathArrayOfValues) AsDescriptionArrayOfValues() ([]string, bool) {
  1054  	res, ok := fpaov.values.([]string)
  1055  	return res, ok
  1056  }
  1057  func (fpaov *AuditedResourceDescriptor_FieldTerminalPathArrayOfValues) AsLabelsArrayOfValues() ([][]*common.LabelDescriptor, bool) {
  1058  	res, ok := fpaov.values.([][]*common.LabelDescriptor)
  1059  	return res, ok
  1060  }
  1061  func (fpaov *AuditedResourceDescriptor_FieldTerminalPathArrayOfValues) AsPromotedLabelKeySetsArrayOfValues() ([][]*common.LabelKeySet, bool) {
  1062  	res, ok := fpaov.values.([][]*common.LabelKeySet)
  1063  	return res, ok
  1064  }
  1065  func (fpaov *AuditedResourceDescriptor_FieldTerminalPathArrayOfValues) AsVersionsArrayOfValues() ([][]string, bool) {
  1066  	res, ok := fpaov.values.([][]string)
  1067  	return res, ok
  1068  }
  1069  func (fpaov *AuditedResourceDescriptor_FieldTerminalPathArrayOfValues) AsSpecFieldsArrayOfValues() ([][]string, bool) {
  1070  	res, ok := fpaov.values.([][]string)
  1071  	return res, ok
  1072  }
  1073  func (fpaov *AuditedResourceDescriptor_FieldTerminalPathArrayOfValues) AsStateFieldsArrayOfValues() ([][]string, bool) {
  1074  	res, ok := fpaov.values.([][]string)
  1075  	return res, ok
  1076  }
  1077  func (fpaov *AuditedResourceDescriptor_FieldTerminalPathArrayOfValues) AsMetaFieldsArrayOfValues() ([][]string, bool) {
  1078  	res, ok := fpaov.values.([][]string)
  1079  	return res, ok
  1080  }
  1081  func (fpaov *AuditedResourceDescriptor_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
  1082  	res, ok := fpaov.values.([]*meta.Meta)
  1083  	return res, ok
  1084  }
  1085  
  1086  type AuditedResourceDescriptor_FieldSubPathArrayOfValues struct {
  1087  	AuditedResourceDescriptor_FieldPath
  1088  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  1089  }
  1090  
  1091  var _ AuditedResourceDescriptor_FieldPathArrayOfValues = (*AuditedResourceDescriptor_FieldSubPathArrayOfValues)(nil)
  1092  
  1093  func (fpsaov *AuditedResourceDescriptor_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  1094  	return fpsaov.subPathArrayOfValues.GetRawValues()
  1095  }
  1096  func (fpsaov *AuditedResourceDescriptor_FieldSubPathArrayOfValues) AsLabelsPathArrayOfValues() (common.LabelDescriptor_FieldPathArrayOfValues, bool) {
  1097  	res, ok := fpsaov.subPathArrayOfValues.(common.LabelDescriptor_FieldPathArrayOfValues)
  1098  	return res, ok
  1099  }
  1100  func (fpsaov *AuditedResourceDescriptor_FieldSubPathArrayOfValues) AsPromotedLabelKeySetsPathArrayOfValues() (common.LabelKeySet_FieldPathArrayOfValues, bool) {
  1101  	res, ok := fpsaov.subPathArrayOfValues.(common.LabelKeySet_FieldPathArrayOfValues)
  1102  	return res, ok
  1103  }
  1104  func (fpsaov *AuditedResourceDescriptor_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
  1105  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
  1106  	return res, ok
  1107  }