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

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