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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/monitoring/proto/v4/bucket.proto
     3  // DO NOT EDIT!!!
     4  
     5  package bucket
     6  
     7  import (
     8  	"encoding/json"
     9  	"fmt"
    10  	"reflect"
    11  	"strings"
    12  	"time"
    13  
    14  	"google.golang.org/grpc/codes"
    15  	"google.golang.org/grpc/status"
    16  	"google.golang.org/protobuf/encoding/protojson"
    17  	"google.golang.org/protobuf/proto"
    18  	"google.golang.org/protobuf/reflect/protoregistry"
    19  
    20  	gotenobject "github.com/cloudwan/goten-sdk/runtime/object"
    21  	"github.com/cloudwan/goten-sdk/runtime/strcase"
    22  )
    23  
    24  // proto imports
    25  import (
    26  	project "github.com/cloudwan/edgelq-sdk/monitoring/resources/v4/project"
    27  	meta "github.com/cloudwan/goten-sdk/types/meta"
    28  )
    29  
    30  // ensure the imports are used
    31  var (
    32  	_ = new(json.Marshaler)
    33  	_ = new(fmt.Stringer)
    34  	_ = reflect.DeepEqual
    35  	_ = strings.Builder{}
    36  	_ = time.Second
    37  
    38  	_ = strcase.ToLowerCamel
    39  	_ = codes.NotFound
    40  	_ = status.Status{}
    41  	_ = protojson.UnmarshalOptions{}
    42  	_ = new(proto.Message)
    43  	_ = protoregistry.GlobalTypes
    44  
    45  	_ = new(gotenobject.FieldPath)
    46  )
    47  
    48  // make sure we're using proto imports
    49  var (
    50  	_ = &project.Project{}
    51  	_ = &meta.Meta{}
    52  )
    53  
    54  // FieldPath provides implementation to handle
    55  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    56  type Bucket_FieldPath interface {
    57  	gotenobject.FieldPath
    58  	Selector() Bucket_FieldPathSelector
    59  	Get(source *Bucket) []interface{}
    60  	GetSingle(source *Bucket) (interface{}, bool)
    61  	ClearValue(item *Bucket)
    62  
    63  	// Those methods build corresponding Bucket_FieldPathValue
    64  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    65  	WithIValue(value interface{}) Bucket_FieldPathValue
    66  	WithIArrayOfValues(values interface{}) Bucket_FieldPathArrayOfValues
    67  	WithIArrayItemValue(value interface{}) Bucket_FieldPathArrayItemValue
    68  }
    69  
    70  type Bucket_FieldPathSelector int32
    71  
    72  const (
    73  	Bucket_FieldPathSelectorName           Bucket_FieldPathSelector = 0
    74  	Bucket_FieldPathSelectorMetadata       Bucket_FieldPathSelector = 1
    75  	Bucket_FieldPathSelectorMetrics        Bucket_FieldPathSelector = 2
    76  	Bucket_FieldPathSelectorResources      Bucket_FieldPathSelector = 3
    77  	Bucket_FieldPathSelectorRequiredAltKvs Bucket_FieldPathSelector = 4
    78  )
    79  
    80  func (s Bucket_FieldPathSelector) String() string {
    81  	switch s {
    82  	case Bucket_FieldPathSelectorName:
    83  		return "name"
    84  	case Bucket_FieldPathSelectorMetadata:
    85  		return "metadata"
    86  	case Bucket_FieldPathSelectorMetrics:
    87  		return "metrics"
    88  	case Bucket_FieldPathSelectorResources:
    89  		return "resources"
    90  	case Bucket_FieldPathSelectorRequiredAltKvs:
    91  		return "required_alt_kvs"
    92  	default:
    93  		panic(fmt.Sprintf("Invalid selector for Bucket: %d", s))
    94  	}
    95  }
    96  
    97  func BuildBucket_FieldPath(fp gotenobject.RawFieldPath) (Bucket_FieldPath, error) {
    98  	if len(fp) == 0 {
    99  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Bucket")
   100  	}
   101  	if len(fp) == 1 {
   102  		switch fp[0] {
   103  		case "name":
   104  			return &Bucket_FieldTerminalPath{selector: Bucket_FieldPathSelectorName}, nil
   105  		case "metadata":
   106  			return &Bucket_FieldTerminalPath{selector: Bucket_FieldPathSelectorMetadata}, nil
   107  		case "metrics":
   108  			return &Bucket_FieldTerminalPath{selector: Bucket_FieldPathSelectorMetrics}, nil
   109  		case "resources":
   110  			return &Bucket_FieldTerminalPath{selector: Bucket_FieldPathSelectorResources}, nil
   111  		case "required_alt_kvs", "requiredAltKvs", "required-alt-kvs":
   112  			return &Bucket_FieldTerminalPath{selector: Bucket_FieldPathSelectorRequiredAltKvs}, nil
   113  		}
   114  	} else {
   115  		switch fp[0] {
   116  		case "metadata":
   117  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   118  				return nil, err
   119  			} else {
   120  				return &Bucket_FieldSubPath{selector: Bucket_FieldPathSelectorMetadata, subPath: subpath}, nil
   121  			}
   122  		case "metrics":
   123  			if subpath, err := BuildBucketRequiredTypedLabels_FieldPath(fp[1:]); err != nil {
   124  				return nil, err
   125  			} else {
   126  				return &Bucket_FieldSubPath{selector: Bucket_FieldPathSelectorMetrics, subPath: subpath}, nil
   127  			}
   128  		case "resources":
   129  			if subpath, err := BuildBucketRequiredTypedLabels_FieldPath(fp[1:]); err != nil {
   130  				return nil, err
   131  			} else {
   132  				return &Bucket_FieldSubPath{selector: Bucket_FieldPathSelectorResources, subPath: subpath}, nil
   133  			}
   134  		case "required_alt_kvs", "requiredAltKvs", "required-alt-kvs":
   135  			if subpath, err := BuildBucketResolvedKeysWithValues_FieldPath(fp[1:]); err != nil {
   136  				return nil, err
   137  			} else {
   138  				return &Bucket_FieldSubPath{selector: Bucket_FieldPathSelectorRequiredAltKvs, subPath: subpath}, nil
   139  			}
   140  		}
   141  	}
   142  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Bucket", fp)
   143  }
   144  
   145  func ParseBucket_FieldPath(rawField string) (Bucket_FieldPath, error) {
   146  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   147  	if err != nil {
   148  		return nil, err
   149  	}
   150  	return BuildBucket_FieldPath(fp)
   151  }
   152  
   153  func MustParseBucket_FieldPath(rawField string) Bucket_FieldPath {
   154  	fp, err := ParseBucket_FieldPath(rawField)
   155  	if err != nil {
   156  		panic(err)
   157  	}
   158  	return fp
   159  }
   160  
   161  type Bucket_FieldTerminalPath struct {
   162  	selector Bucket_FieldPathSelector
   163  }
   164  
   165  var _ Bucket_FieldPath = (*Bucket_FieldTerminalPath)(nil)
   166  
   167  func (fp *Bucket_FieldTerminalPath) Selector() Bucket_FieldPathSelector {
   168  	return fp.selector
   169  }
   170  
   171  // String returns path representation in proto convention
   172  func (fp *Bucket_FieldTerminalPath) String() string {
   173  	return fp.selector.String()
   174  }
   175  
   176  // JSONString returns path representation is JSON convention
   177  func (fp *Bucket_FieldTerminalPath) JSONString() string {
   178  	return strcase.ToLowerCamel(fp.String())
   179  }
   180  
   181  // Get returns all values pointed by specific field from source Bucket
   182  func (fp *Bucket_FieldTerminalPath) Get(source *Bucket) (values []interface{}) {
   183  	if source != nil {
   184  		switch fp.selector {
   185  		case Bucket_FieldPathSelectorName:
   186  			if source.Name != nil {
   187  				values = append(values, source.Name)
   188  			}
   189  		case Bucket_FieldPathSelectorMetadata:
   190  			if source.Metadata != nil {
   191  				values = append(values, source.Metadata)
   192  			}
   193  		case Bucket_FieldPathSelectorMetrics:
   194  			for _, value := range source.GetMetrics() {
   195  				values = append(values, value)
   196  			}
   197  		case Bucket_FieldPathSelectorResources:
   198  			for _, value := range source.GetResources() {
   199  				values = append(values, value)
   200  			}
   201  		case Bucket_FieldPathSelectorRequiredAltKvs:
   202  			for _, value := range source.GetRequiredAltKvs() {
   203  				values = append(values, value)
   204  			}
   205  		default:
   206  			panic(fmt.Sprintf("Invalid selector for Bucket: %d", fp.selector))
   207  		}
   208  	}
   209  	return
   210  }
   211  
   212  func (fp *Bucket_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   213  	return fp.Get(source.(*Bucket))
   214  }
   215  
   216  // GetSingle returns value pointed by specific field of from source Bucket
   217  func (fp *Bucket_FieldTerminalPath) GetSingle(source *Bucket) (interface{}, bool) {
   218  	switch fp.selector {
   219  	case Bucket_FieldPathSelectorName:
   220  		res := source.GetName()
   221  		return res, res != nil
   222  	case Bucket_FieldPathSelectorMetadata:
   223  		res := source.GetMetadata()
   224  		return res, res != nil
   225  	case Bucket_FieldPathSelectorMetrics:
   226  		res := source.GetMetrics()
   227  		return res, res != nil
   228  	case Bucket_FieldPathSelectorResources:
   229  		res := source.GetResources()
   230  		return res, res != nil
   231  	case Bucket_FieldPathSelectorRequiredAltKvs:
   232  		res := source.GetRequiredAltKvs()
   233  		return res, res != nil
   234  	default:
   235  		panic(fmt.Sprintf("Invalid selector for Bucket: %d", fp.selector))
   236  	}
   237  }
   238  
   239  func (fp *Bucket_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   240  	return fp.GetSingle(source.(*Bucket))
   241  }
   242  
   243  // GetDefault returns a default value of the field type
   244  func (fp *Bucket_FieldTerminalPath) GetDefault() interface{} {
   245  	switch fp.selector {
   246  	case Bucket_FieldPathSelectorName:
   247  		return (*Name)(nil)
   248  	case Bucket_FieldPathSelectorMetadata:
   249  		return (*meta.Meta)(nil)
   250  	case Bucket_FieldPathSelectorMetrics:
   251  		return ([]*Bucket_RequiredTypedLabels)(nil)
   252  	case Bucket_FieldPathSelectorResources:
   253  		return ([]*Bucket_RequiredTypedLabels)(nil)
   254  	case Bucket_FieldPathSelectorRequiredAltKvs:
   255  		return ([]*Bucket_ResolvedKeysWithValues)(nil)
   256  	default:
   257  		panic(fmt.Sprintf("Invalid selector for Bucket: %d", fp.selector))
   258  	}
   259  }
   260  
   261  func (fp *Bucket_FieldTerminalPath) ClearValue(item *Bucket) {
   262  	if item != nil {
   263  		switch fp.selector {
   264  		case Bucket_FieldPathSelectorName:
   265  			item.Name = nil
   266  		case Bucket_FieldPathSelectorMetadata:
   267  			item.Metadata = nil
   268  		case Bucket_FieldPathSelectorMetrics:
   269  			item.Metrics = nil
   270  		case Bucket_FieldPathSelectorResources:
   271  			item.Resources = nil
   272  		case Bucket_FieldPathSelectorRequiredAltKvs:
   273  			item.RequiredAltKvs = nil
   274  		default:
   275  			panic(fmt.Sprintf("Invalid selector for Bucket: %d", fp.selector))
   276  		}
   277  	}
   278  }
   279  
   280  func (fp *Bucket_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   281  	fp.ClearValue(item.(*Bucket))
   282  }
   283  
   284  // IsLeaf - whether field path is holds simple value
   285  func (fp *Bucket_FieldTerminalPath) IsLeaf() bool {
   286  	return fp.selector == Bucket_FieldPathSelectorName
   287  }
   288  
   289  func (fp *Bucket_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   290  	return []gotenobject.FieldPath{fp}
   291  }
   292  
   293  func (fp *Bucket_FieldTerminalPath) WithIValue(value interface{}) Bucket_FieldPathValue {
   294  	switch fp.selector {
   295  	case Bucket_FieldPathSelectorName:
   296  		return &Bucket_FieldTerminalPathValue{Bucket_FieldTerminalPath: *fp, value: value.(*Name)}
   297  	case Bucket_FieldPathSelectorMetadata:
   298  		return &Bucket_FieldTerminalPathValue{Bucket_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   299  	case Bucket_FieldPathSelectorMetrics:
   300  		return &Bucket_FieldTerminalPathValue{Bucket_FieldTerminalPath: *fp, value: value.([]*Bucket_RequiredTypedLabels)}
   301  	case Bucket_FieldPathSelectorResources:
   302  		return &Bucket_FieldTerminalPathValue{Bucket_FieldTerminalPath: *fp, value: value.([]*Bucket_RequiredTypedLabels)}
   303  	case Bucket_FieldPathSelectorRequiredAltKvs:
   304  		return &Bucket_FieldTerminalPathValue{Bucket_FieldTerminalPath: *fp, value: value.([]*Bucket_ResolvedKeysWithValues)}
   305  	default:
   306  		panic(fmt.Sprintf("Invalid selector for Bucket: %d", fp.selector))
   307  	}
   308  }
   309  
   310  func (fp *Bucket_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   311  	return fp.WithIValue(value)
   312  }
   313  
   314  func (fp *Bucket_FieldTerminalPath) WithIArrayOfValues(values interface{}) Bucket_FieldPathArrayOfValues {
   315  	fpaov := &Bucket_FieldTerminalPathArrayOfValues{Bucket_FieldTerminalPath: *fp}
   316  	switch fp.selector {
   317  	case Bucket_FieldPathSelectorName:
   318  		return &Bucket_FieldTerminalPathArrayOfValues{Bucket_FieldTerminalPath: *fp, values: values.([]*Name)}
   319  	case Bucket_FieldPathSelectorMetadata:
   320  		return &Bucket_FieldTerminalPathArrayOfValues{Bucket_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   321  	case Bucket_FieldPathSelectorMetrics:
   322  		return &Bucket_FieldTerminalPathArrayOfValues{Bucket_FieldTerminalPath: *fp, values: values.([][]*Bucket_RequiredTypedLabels)}
   323  	case Bucket_FieldPathSelectorResources:
   324  		return &Bucket_FieldTerminalPathArrayOfValues{Bucket_FieldTerminalPath: *fp, values: values.([][]*Bucket_RequiredTypedLabels)}
   325  	case Bucket_FieldPathSelectorRequiredAltKvs:
   326  		return &Bucket_FieldTerminalPathArrayOfValues{Bucket_FieldTerminalPath: *fp, values: values.([][]*Bucket_ResolvedKeysWithValues)}
   327  	default:
   328  		panic(fmt.Sprintf("Invalid selector for Bucket: %d", fp.selector))
   329  	}
   330  	return fpaov
   331  }
   332  
   333  func (fp *Bucket_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   334  	return fp.WithIArrayOfValues(values)
   335  }
   336  
   337  func (fp *Bucket_FieldTerminalPath) WithIArrayItemValue(value interface{}) Bucket_FieldPathArrayItemValue {
   338  	switch fp.selector {
   339  	case Bucket_FieldPathSelectorMetrics:
   340  		return &Bucket_FieldTerminalPathArrayItemValue{Bucket_FieldTerminalPath: *fp, value: value.(*Bucket_RequiredTypedLabels)}
   341  	case Bucket_FieldPathSelectorResources:
   342  		return &Bucket_FieldTerminalPathArrayItemValue{Bucket_FieldTerminalPath: *fp, value: value.(*Bucket_RequiredTypedLabels)}
   343  	case Bucket_FieldPathSelectorRequiredAltKvs:
   344  		return &Bucket_FieldTerminalPathArrayItemValue{Bucket_FieldTerminalPath: *fp, value: value.(*Bucket_ResolvedKeysWithValues)}
   345  	default:
   346  		panic(fmt.Sprintf("Invalid selector for Bucket: %d", fp.selector))
   347  	}
   348  }
   349  
   350  func (fp *Bucket_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   351  	return fp.WithIArrayItemValue(value)
   352  }
   353  
   354  type Bucket_FieldSubPath struct {
   355  	selector Bucket_FieldPathSelector
   356  	subPath  gotenobject.FieldPath
   357  }
   358  
   359  var _ Bucket_FieldPath = (*Bucket_FieldSubPath)(nil)
   360  
   361  func (fps *Bucket_FieldSubPath) Selector() Bucket_FieldPathSelector {
   362  	return fps.selector
   363  }
   364  func (fps *Bucket_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   365  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   366  	return res, ok
   367  }
   368  func (fps *Bucket_FieldSubPath) AsMetricsSubPath() (BucketRequiredTypedLabels_FieldPath, bool) {
   369  	res, ok := fps.subPath.(BucketRequiredTypedLabels_FieldPath)
   370  	return res, ok
   371  }
   372  func (fps *Bucket_FieldSubPath) AsResourcesSubPath() (BucketRequiredTypedLabels_FieldPath, bool) {
   373  	res, ok := fps.subPath.(BucketRequiredTypedLabels_FieldPath)
   374  	return res, ok
   375  }
   376  func (fps *Bucket_FieldSubPath) AsRequiredAltKvsSubPath() (BucketResolvedKeysWithValues_FieldPath, bool) {
   377  	res, ok := fps.subPath.(BucketResolvedKeysWithValues_FieldPath)
   378  	return res, ok
   379  }
   380  
   381  // String returns path representation in proto convention
   382  func (fps *Bucket_FieldSubPath) String() string {
   383  	return fps.selector.String() + "." + fps.subPath.String()
   384  }
   385  
   386  // JSONString returns path representation is JSON convention
   387  func (fps *Bucket_FieldSubPath) JSONString() string {
   388  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   389  }
   390  
   391  // Get returns all values pointed by selected field from source Bucket
   392  func (fps *Bucket_FieldSubPath) Get(source *Bucket) (values []interface{}) {
   393  	switch fps.selector {
   394  	case Bucket_FieldPathSelectorMetadata:
   395  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   396  	case Bucket_FieldPathSelectorMetrics:
   397  		for _, item := range source.GetMetrics() {
   398  			values = append(values, fps.subPath.GetRaw(item)...)
   399  		}
   400  	case Bucket_FieldPathSelectorResources:
   401  		for _, item := range source.GetResources() {
   402  			values = append(values, fps.subPath.GetRaw(item)...)
   403  		}
   404  	case Bucket_FieldPathSelectorRequiredAltKvs:
   405  		for _, item := range source.GetRequiredAltKvs() {
   406  			values = append(values, fps.subPath.GetRaw(item)...)
   407  		}
   408  	default:
   409  		panic(fmt.Sprintf("Invalid selector for Bucket: %d", fps.selector))
   410  	}
   411  	return
   412  }
   413  
   414  func (fps *Bucket_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   415  	return fps.Get(source.(*Bucket))
   416  }
   417  
   418  // GetSingle returns value of selected field from source Bucket
   419  func (fps *Bucket_FieldSubPath) GetSingle(source *Bucket) (interface{}, bool) {
   420  	switch fps.selector {
   421  	case Bucket_FieldPathSelectorMetadata:
   422  		if source.GetMetadata() == nil {
   423  			return nil, false
   424  		}
   425  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   426  	case Bucket_FieldPathSelectorMetrics:
   427  		if len(source.GetMetrics()) == 0 {
   428  			return nil, false
   429  		}
   430  		return fps.subPath.GetSingleRaw(source.GetMetrics()[0])
   431  	case Bucket_FieldPathSelectorResources:
   432  		if len(source.GetResources()) == 0 {
   433  			return nil, false
   434  		}
   435  		return fps.subPath.GetSingleRaw(source.GetResources()[0])
   436  	case Bucket_FieldPathSelectorRequiredAltKvs:
   437  		if len(source.GetRequiredAltKvs()) == 0 {
   438  			return nil, false
   439  		}
   440  		return fps.subPath.GetSingleRaw(source.GetRequiredAltKvs()[0])
   441  	default:
   442  		panic(fmt.Sprintf("Invalid selector for Bucket: %d", fps.selector))
   443  	}
   444  }
   445  
   446  func (fps *Bucket_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   447  	return fps.GetSingle(source.(*Bucket))
   448  }
   449  
   450  // GetDefault returns a default value of the field type
   451  func (fps *Bucket_FieldSubPath) GetDefault() interface{} {
   452  	return fps.subPath.GetDefault()
   453  }
   454  
   455  func (fps *Bucket_FieldSubPath) ClearValue(item *Bucket) {
   456  	if item != nil {
   457  		switch fps.selector {
   458  		case Bucket_FieldPathSelectorMetadata:
   459  			fps.subPath.ClearValueRaw(item.Metadata)
   460  		case Bucket_FieldPathSelectorMetrics:
   461  			for _, subItem := range item.Metrics {
   462  				fps.subPath.ClearValueRaw(subItem)
   463  			}
   464  		case Bucket_FieldPathSelectorResources:
   465  			for _, subItem := range item.Resources {
   466  				fps.subPath.ClearValueRaw(subItem)
   467  			}
   468  		case Bucket_FieldPathSelectorRequiredAltKvs:
   469  			for _, subItem := range item.RequiredAltKvs {
   470  				fps.subPath.ClearValueRaw(subItem)
   471  			}
   472  		default:
   473  			panic(fmt.Sprintf("Invalid selector for Bucket: %d", fps.selector))
   474  		}
   475  	}
   476  }
   477  
   478  func (fps *Bucket_FieldSubPath) ClearValueRaw(item proto.Message) {
   479  	fps.ClearValue(item.(*Bucket))
   480  }
   481  
   482  // IsLeaf - whether field path is holds simple value
   483  func (fps *Bucket_FieldSubPath) IsLeaf() bool {
   484  	return fps.subPath.IsLeaf()
   485  }
   486  
   487  func (fps *Bucket_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   488  	iPaths := []gotenobject.FieldPath{&Bucket_FieldTerminalPath{selector: fps.selector}}
   489  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   490  	return iPaths
   491  }
   492  
   493  func (fps *Bucket_FieldSubPath) WithIValue(value interface{}) Bucket_FieldPathValue {
   494  	return &Bucket_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   495  }
   496  
   497  func (fps *Bucket_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   498  	return fps.WithIValue(value)
   499  }
   500  
   501  func (fps *Bucket_FieldSubPath) WithIArrayOfValues(values interface{}) Bucket_FieldPathArrayOfValues {
   502  	return &Bucket_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   503  }
   504  
   505  func (fps *Bucket_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   506  	return fps.WithIArrayOfValues(values)
   507  }
   508  
   509  func (fps *Bucket_FieldSubPath) WithIArrayItemValue(value interface{}) Bucket_FieldPathArrayItemValue {
   510  	return &Bucket_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   511  }
   512  
   513  func (fps *Bucket_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   514  	return fps.WithIArrayItemValue(value)
   515  }
   516  
   517  // Bucket_FieldPathValue allows storing values for Bucket fields according to their type
   518  type Bucket_FieldPathValue interface {
   519  	Bucket_FieldPath
   520  	gotenobject.FieldPathValue
   521  	SetTo(target **Bucket)
   522  	CompareWith(*Bucket) (cmp int, comparable bool)
   523  }
   524  
   525  func ParseBucket_FieldPathValue(pathStr, valueStr string) (Bucket_FieldPathValue, error) {
   526  	fp, err := ParseBucket_FieldPath(pathStr)
   527  	if err != nil {
   528  		return nil, err
   529  	}
   530  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   531  	if err != nil {
   532  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Bucket field path value from %s: %v", valueStr, err)
   533  	}
   534  	return fpv.(Bucket_FieldPathValue), nil
   535  }
   536  
   537  func MustParseBucket_FieldPathValue(pathStr, valueStr string) Bucket_FieldPathValue {
   538  	fpv, err := ParseBucket_FieldPathValue(pathStr, valueStr)
   539  	if err != nil {
   540  		panic(err)
   541  	}
   542  	return fpv
   543  }
   544  
   545  type Bucket_FieldTerminalPathValue struct {
   546  	Bucket_FieldTerminalPath
   547  	value interface{}
   548  }
   549  
   550  var _ Bucket_FieldPathValue = (*Bucket_FieldTerminalPathValue)(nil)
   551  
   552  // GetRawValue returns raw value stored under selected path for 'Bucket' as interface{}
   553  func (fpv *Bucket_FieldTerminalPathValue) GetRawValue() interface{} {
   554  	return fpv.value
   555  }
   556  func (fpv *Bucket_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   557  	res, ok := fpv.value.(*Name)
   558  	return res, ok
   559  }
   560  func (fpv *Bucket_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   561  	res, ok := fpv.value.(*meta.Meta)
   562  	return res, ok
   563  }
   564  func (fpv *Bucket_FieldTerminalPathValue) AsMetricsValue() ([]*Bucket_RequiredTypedLabels, bool) {
   565  	res, ok := fpv.value.([]*Bucket_RequiredTypedLabels)
   566  	return res, ok
   567  }
   568  func (fpv *Bucket_FieldTerminalPathValue) AsResourcesValue() ([]*Bucket_RequiredTypedLabels, bool) {
   569  	res, ok := fpv.value.([]*Bucket_RequiredTypedLabels)
   570  	return res, ok
   571  }
   572  func (fpv *Bucket_FieldTerminalPathValue) AsRequiredAltKvsValue() ([]*Bucket_ResolvedKeysWithValues, bool) {
   573  	res, ok := fpv.value.([]*Bucket_ResolvedKeysWithValues)
   574  	return res, ok
   575  }
   576  
   577  // SetTo stores value for selected field for object Bucket
   578  func (fpv *Bucket_FieldTerminalPathValue) SetTo(target **Bucket) {
   579  	if *target == nil {
   580  		*target = new(Bucket)
   581  	}
   582  	switch fpv.selector {
   583  	case Bucket_FieldPathSelectorName:
   584  		(*target).Name = fpv.value.(*Name)
   585  	case Bucket_FieldPathSelectorMetadata:
   586  		(*target).Metadata = fpv.value.(*meta.Meta)
   587  	case Bucket_FieldPathSelectorMetrics:
   588  		(*target).Metrics = fpv.value.([]*Bucket_RequiredTypedLabels)
   589  	case Bucket_FieldPathSelectorResources:
   590  		(*target).Resources = fpv.value.([]*Bucket_RequiredTypedLabels)
   591  	case Bucket_FieldPathSelectorRequiredAltKvs:
   592  		(*target).RequiredAltKvs = fpv.value.([]*Bucket_ResolvedKeysWithValues)
   593  	default:
   594  		panic(fmt.Sprintf("Invalid selector for Bucket: %d", fpv.selector))
   595  	}
   596  }
   597  
   598  func (fpv *Bucket_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   599  	typedObject := target.(*Bucket)
   600  	fpv.SetTo(&typedObject)
   601  }
   602  
   603  // CompareWith compares value in the 'Bucket_FieldTerminalPathValue' with the value under path in 'Bucket'.
   604  func (fpv *Bucket_FieldTerminalPathValue) CompareWith(source *Bucket) (int, bool) {
   605  	switch fpv.selector {
   606  	case Bucket_FieldPathSelectorName:
   607  		leftValue := fpv.value.(*Name)
   608  		rightValue := source.GetName()
   609  		if leftValue == nil {
   610  			if rightValue != nil {
   611  				return -1, true
   612  			}
   613  			return 0, true
   614  		}
   615  		if rightValue == nil {
   616  			return 1, true
   617  		}
   618  		if leftValue.String() == rightValue.String() {
   619  			return 0, true
   620  		} else if leftValue.String() < rightValue.String() {
   621  			return -1, true
   622  		} else {
   623  			return 1, true
   624  		}
   625  	case Bucket_FieldPathSelectorMetadata:
   626  		return 0, false
   627  	case Bucket_FieldPathSelectorMetrics:
   628  		return 0, false
   629  	case Bucket_FieldPathSelectorResources:
   630  		return 0, false
   631  	case Bucket_FieldPathSelectorRequiredAltKvs:
   632  		return 0, false
   633  	default:
   634  		panic(fmt.Sprintf("Invalid selector for Bucket: %d", fpv.selector))
   635  	}
   636  }
   637  
   638  func (fpv *Bucket_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   639  	return fpv.CompareWith(source.(*Bucket))
   640  }
   641  
   642  type Bucket_FieldSubPathValue struct {
   643  	Bucket_FieldPath
   644  	subPathValue gotenobject.FieldPathValue
   645  }
   646  
   647  var _ Bucket_FieldPathValue = (*Bucket_FieldSubPathValue)(nil)
   648  
   649  func (fpvs *Bucket_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   650  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   651  	return res, ok
   652  }
   653  func (fpvs *Bucket_FieldSubPathValue) AsMetricsPathValue() (BucketRequiredTypedLabels_FieldPathValue, bool) {
   654  	res, ok := fpvs.subPathValue.(BucketRequiredTypedLabels_FieldPathValue)
   655  	return res, ok
   656  }
   657  func (fpvs *Bucket_FieldSubPathValue) AsResourcesPathValue() (BucketRequiredTypedLabels_FieldPathValue, bool) {
   658  	res, ok := fpvs.subPathValue.(BucketRequiredTypedLabels_FieldPathValue)
   659  	return res, ok
   660  }
   661  func (fpvs *Bucket_FieldSubPathValue) AsRequiredAltKvsPathValue() (BucketResolvedKeysWithValues_FieldPathValue, bool) {
   662  	res, ok := fpvs.subPathValue.(BucketResolvedKeysWithValues_FieldPathValue)
   663  	return res, ok
   664  }
   665  
   666  func (fpvs *Bucket_FieldSubPathValue) SetTo(target **Bucket) {
   667  	if *target == nil {
   668  		*target = new(Bucket)
   669  	}
   670  	switch fpvs.Selector() {
   671  	case Bucket_FieldPathSelectorMetadata:
   672  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
   673  	case Bucket_FieldPathSelectorMetrics:
   674  		panic("FieldPath setter is unsupported for array subpaths")
   675  	case Bucket_FieldPathSelectorResources:
   676  		panic("FieldPath setter is unsupported for array subpaths")
   677  	case Bucket_FieldPathSelectorRequiredAltKvs:
   678  		panic("FieldPath setter is unsupported for array subpaths")
   679  	default:
   680  		panic(fmt.Sprintf("Invalid selector for Bucket: %d", fpvs.Selector()))
   681  	}
   682  }
   683  
   684  func (fpvs *Bucket_FieldSubPathValue) SetToRaw(target proto.Message) {
   685  	typedObject := target.(*Bucket)
   686  	fpvs.SetTo(&typedObject)
   687  }
   688  
   689  func (fpvs *Bucket_FieldSubPathValue) GetRawValue() interface{} {
   690  	return fpvs.subPathValue.GetRawValue()
   691  }
   692  
   693  func (fpvs *Bucket_FieldSubPathValue) CompareWith(source *Bucket) (int, bool) {
   694  	switch fpvs.Selector() {
   695  	case Bucket_FieldPathSelectorMetadata:
   696  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
   697  	case Bucket_FieldPathSelectorMetrics:
   698  		return 0, false // repeated field
   699  	case Bucket_FieldPathSelectorResources:
   700  		return 0, false // repeated field
   701  	case Bucket_FieldPathSelectorRequiredAltKvs:
   702  		return 0, false // repeated field
   703  	default:
   704  		panic(fmt.Sprintf("Invalid selector for Bucket: %d", fpvs.Selector()))
   705  	}
   706  }
   707  
   708  func (fpvs *Bucket_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   709  	return fpvs.CompareWith(source.(*Bucket))
   710  }
   711  
   712  // Bucket_FieldPathArrayItemValue allows storing single item in Path-specific values for Bucket according to their type
   713  // Present only for array (repeated) types.
   714  type Bucket_FieldPathArrayItemValue interface {
   715  	gotenobject.FieldPathArrayItemValue
   716  	Bucket_FieldPath
   717  	ContainsValue(*Bucket) bool
   718  }
   719  
   720  // ParseBucket_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   721  func ParseBucket_FieldPathArrayItemValue(pathStr, valueStr string) (Bucket_FieldPathArrayItemValue, error) {
   722  	fp, err := ParseBucket_FieldPath(pathStr)
   723  	if err != nil {
   724  		return nil, err
   725  	}
   726  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   727  	if err != nil {
   728  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Bucket field path array item value from %s: %v", valueStr, err)
   729  	}
   730  	return fpaiv.(Bucket_FieldPathArrayItemValue), nil
   731  }
   732  
   733  func MustParseBucket_FieldPathArrayItemValue(pathStr, valueStr string) Bucket_FieldPathArrayItemValue {
   734  	fpaiv, err := ParseBucket_FieldPathArrayItemValue(pathStr, valueStr)
   735  	if err != nil {
   736  		panic(err)
   737  	}
   738  	return fpaiv
   739  }
   740  
   741  type Bucket_FieldTerminalPathArrayItemValue struct {
   742  	Bucket_FieldTerminalPath
   743  	value interface{}
   744  }
   745  
   746  var _ Bucket_FieldPathArrayItemValue = (*Bucket_FieldTerminalPathArrayItemValue)(nil)
   747  
   748  // GetRawValue returns stored element value for array in object Bucket as interface{}
   749  func (fpaiv *Bucket_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   750  	return fpaiv.value
   751  }
   752  func (fpaiv *Bucket_FieldTerminalPathArrayItemValue) AsMetricsItemValue() (*Bucket_RequiredTypedLabels, bool) {
   753  	res, ok := fpaiv.value.(*Bucket_RequiredTypedLabels)
   754  	return res, ok
   755  }
   756  func (fpaiv *Bucket_FieldTerminalPathArrayItemValue) AsResourcesItemValue() (*Bucket_RequiredTypedLabels, bool) {
   757  	res, ok := fpaiv.value.(*Bucket_RequiredTypedLabels)
   758  	return res, ok
   759  }
   760  func (fpaiv *Bucket_FieldTerminalPathArrayItemValue) AsRequiredAltKvsItemValue() (*Bucket_ResolvedKeysWithValues, bool) {
   761  	res, ok := fpaiv.value.(*Bucket_ResolvedKeysWithValues)
   762  	return res, ok
   763  }
   764  
   765  func (fpaiv *Bucket_FieldTerminalPathArrayItemValue) GetSingle(source *Bucket) (interface{}, bool) {
   766  	return nil, false
   767  }
   768  
   769  func (fpaiv *Bucket_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   770  	return fpaiv.GetSingle(source.(*Bucket))
   771  }
   772  
   773  // Contains returns a boolean indicating if value that is being held is present in given 'Bucket'
   774  func (fpaiv *Bucket_FieldTerminalPathArrayItemValue) ContainsValue(source *Bucket) bool {
   775  	slice := fpaiv.Bucket_FieldTerminalPath.Get(source)
   776  	for _, v := range slice {
   777  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   778  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   779  				return true
   780  			}
   781  		} else if reflect.DeepEqual(v, fpaiv.value) {
   782  			return true
   783  		}
   784  	}
   785  	return false
   786  }
   787  
   788  type Bucket_FieldSubPathArrayItemValue struct {
   789  	Bucket_FieldPath
   790  	subPathItemValue gotenobject.FieldPathArrayItemValue
   791  }
   792  
   793  // GetRawValue returns stored array item value
   794  func (fpaivs *Bucket_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
   795  	return fpaivs.subPathItemValue.GetRawItemValue()
   796  }
   797  func (fpaivs *Bucket_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
   798  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
   799  	return res, ok
   800  }
   801  func (fpaivs *Bucket_FieldSubPathArrayItemValue) AsMetricsPathItemValue() (BucketRequiredTypedLabels_FieldPathArrayItemValue, bool) {
   802  	res, ok := fpaivs.subPathItemValue.(BucketRequiredTypedLabels_FieldPathArrayItemValue)
   803  	return res, ok
   804  }
   805  func (fpaivs *Bucket_FieldSubPathArrayItemValue) AsResourcesPathItemValue() (BucketRequiredTypedLabels_FieldPathArrayItemValue, bool) {
   806  	res, ok := fpaivs.subPathItemValue.(BucketRequiredTypedLabels_FieldPathArrayItemValue)
   807  	return res, ok
   808  }
   809  func (fpaivs *Bucket_FieldSubPathArrayItemValue) AsRequiredAltKvsPathItemValue() (BucketResolvedKeysWithValues_FieldPathArrayItemValue, bool) {
   810  	res, ok := fpaivs.subPathItemValue.(BucketResolvedKeysWithValues_FieldPathArrayItemValue)
   811  	return res, ok
   812  }
   813  
   814  // Contains returns a boolean indicating if value that is being held is present in given 'Bucket'
   815  func (fpaivs *Bucket_FieldSubPathArrayItemValue) ContainsValue(source *Bucket) bool {
   816  	switch fpaivs.Selector() {
   817  	case Bucket_FieldPathSelectorMetadata:
   818  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
   819  	case Bucket_FieldPathSelectorMetrics:
   820  		return false // repeated/map field
   821  	case Bucket_FieldPathSelectorResources:
   822  		return false // repeated/map field
   823  	case Bucket_FieldPathSelectorRequiredAltKvs:
   824  		return false // repeated/map field
   825  	default:
   826  		panic(fmt.Sprintf("Invalid selector for Bucket: %d", fpaivs.Selector()))
   827  	}
   828  }
   829  
   830  // Bucket_FieldPathArrayOfValues allows storing slice of values for Bucket fields according to their type
   831  type Bucket_FieldPathArrayOfValues interface {
   832  	gotenobject.FieldPathArrayOfValues
   833  	Bucket_FieldPath
   834  }
   835  
   836  func ParseBucket_FieldPathArrayOfValues(pathStr, valuesStr string) (Bucket_FieldPathArrayOfValues, error) {
   837  	fp, err := ParseBucket_FieldPath(pathStr)
   838  	if err != nil {
   839  		return nil, err
   840  	}
   841  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   842  	if err != nil {
   843  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Bucket field path array of values from %s: %v", valuesStr, err)
   844  	}
   845  	return fpaov.(Bucket_FieldPathArrayOfValues), nil
   846  }
   847  
   848  func MustParseBucket_FieldPathArrayOfValues(pathStr, valuesStr string) Bucket_FieldPathArrayOfValues {
   849  	fpaov, err := ParseBucket_FieldPathArrayOfValues(pathStr, valuesStr)
   850  	if err != nil {
   851  		panic(err)
   852  	}
   853  	return fpaov
   854  }
   855  
   856  type Bucket_FieldTerminalPathArrayOfValues struct {
   857  	Bucket_FieldTerminalPath
   858  	values interface{}
   859  }
   860  
   861  var _ Bucket_FieldPathArrayOfValues = (*Bucket_FieldTerminalPathArrayOfValues)(nil)
   862  
   863  func (fpaov *Bucket_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   864  	switch fpaov.selector {
   865  	case Bucket_FieldPathSelectorName:
   866  		for _, v := range fpaov.values.([]*Name) {
   867  			values = append(values, v)
   868  		}
   869  	case Bucket_FieldPathSelectorMetadata:
   870  		for _, v := range fpaov.values.([]*meta.Meta) {
   871  			values = append(values, v)
   872  		}
   873  	case Bucket_FieldPathSelectorMetrics:
   874  		for _, v := range fpaov.values.([][]*Bucket_RequiredTypedLabels) {
   875  			values = append(values, v)
   876  		}
   877  	case Bucket_FieldPathSelectorResources:
   878  		for _, v := range fpaov.values.([][]*Bucket_RequiredTypedLabels) {
   879  			values = append(values, v)
   880  		}
   881  	case Bucket_FieldPathSelectorRequiredAltKvs:
   882  		for _, v := range fpaov.values.([][]*Bucket_ResolvedKeysWithValues) {
   883  			values = append(values, v)
   884  		}
   885  	}
   886  	return
   887  }
   888  func (fpaov *Bucket_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
   889  	res, ok := fpaov.values.([]*Name)
   890  	return res, ok
   891  }
   892  func (fpaov *Bucket_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
   893  	res, ok := fpaov.values.([]*meta.Meta)
   894  	return res, ok
   895  }
   896  func (fpaov *Bucket_FieldTerminalPathArrayOfValues) AsMetricsArrayOfValues() ([][]*Bucket_RequiredTypedLabels, bool) {
   897  	res, ok := fpaov.values.([][]*Bucket_RequiredTypedLabels)
   898  	return res, ok
   899  }
   900  func (fpaov *Bucket_FieldTerminalPathArrayOfValues) AsResourcesArrayOfValues() ([][]*Bucket_RequiredTypedLabels, bool) {
   901  	res, ok := fpaov.values.([][]*Bucket_RequiredTypedLabels)
   902  	return res, ok
   903  }
   904  func (fpaov *Bucket_FieldTerminalPathArrayOfValues) AsRequiredAltKvsArrayOfValues() ([][]*Bucket_ResolvedKeysWithValues, bool) {
   905  	res, ok := fpaov.values.([][]*Bucket_ResolvedKeysWithValues)
   906  	return res, ok
   907  }
   908  
   909  type Bucket_FieldSubPathArrayOfValues struct {
   910  	Bucket_FieldPath
   911  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
   912  }
   913  
   914  var _ Bucket_FieldPathArrayOfValues = (*Bucket_FieldSubPathArrayOfValues)(nil)
   915  
   916  func (fpsaov *Bucket_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
   917  	return fpsaov.subPathArrayOfValues.GetRawValues()
   918  }
   919  func (fpsaov *Bucket_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
   920  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
   921  	return res, ok
   922  }
   923  func (fpsaov *Bucket_FieldSubPathArrayOfValues) AsMetricsPathArrayOfValues() (BucketRequiredTypedLabels_FieldPathArrayOfValues, bool) {
   924  	res, ok := fpsaov.subPathArrayOfValues.(BucketRequiredTypedLabels_FieldPathArrayOfValues)
   925  	return res, ok
   926  }
   927  func (fpsaov *Bucket_FieldSubPathArrayOfValues) AsResourcesPathArrayOfValues() (BucketRequiredTypedLabels_FieldPathArrayOfValues, bool) {
   928  	res, ok := fpsaov.subPathArrayOfValues.(BucketRequiredTypedLabels_FieldPathArrayOfValues)
   929  	return res, ok
   930  }
   931  func (fpsaov *Bucket_FieldSubPathArrayOfValues) AsRequiredAltKvsPathArrayOfValues() (BucketResolvedKeysWithValues_FieldPathArrayOfValues, bool) {
   932  	res, ok := fpsaov.subPathArrayOfValues.(BucketResolvedKeysWithValues_FieldPathArrayOfValues)
   933  	return res, ok
   934  }
   935  
   936  // FieldPath provides implementation to handle
   937  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
   938  type BucketResolvedValues_FieldPath interface {
   939  	gotenobject.FieldPath
   940  	Selector() BucketResolvedValues_FieldPathSelector
   941  	Get(source *Bucket_ResolvedValues) []interface{}
   942  	GetSingle(source *Bucket_ResolvedValues) (interface{}, bool)
   943  	ClearValue(item *Bucket_ResolvedValues)
   944  
   945  	// Those methods build corresponding BucketResolvedValues_FieldPathValue
   946  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
   947  	WithIValue(value interface{}) BucketResolvedValues_FieldPathValue
   948  	WithIArrayOfValues(values interface{}) BucketResolvedValues_FieldPathArrayOfValues
   949  	WithIArrayItemValue(value interface{}) BucketResolvedValues_FieldPathArrayItemValue
   950  }
   951  
   952  type BucketResolvedValues_FieldPathSelector int32
   953  
   954  const (
   955  	BucketResolvedValues_FieldPathSelectorKey    BucketResolvedValues_FieldPathSelector = 0
   956  	BucketResolvedValues_FieldPathSelectorValues BucketResolvedValues_FieldPathSelector = 1
   957  )
   958  
   959  func (s BucketResolvedValues_FieldPathSelector) String() string {
   960  	switch s {
   961  	case BucketResolvedValues_FieldPathSelectorKey:
   962  		return "key"
   963  	case BucketResolvedValues_FieldPathSelectorValues:
   964  		return "values"
   965  	default:
   966  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedValues: %d", s))
   967  	}
   968  }
   969  
   970  func BuildBucketResolvedValues_FieldPath(fp gotenobject.RawFieldPath) (BucketResolvedValues_FieldPath, error) {
   971  	if len(fp) == 0 {
   972  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Bucket_ResolvedValues")
   973  	}
   974  	if len(fp) == 1 {
   975  		switch fp[0] {
   976  		case "key":
   977  			return &BucketResolvedValues_FieldTerminalPath{selector: BucketResolvedValues_FieldPathSelectorKey}, nil
   978  		case "values":
   979  			return &BucketResolvedValues_FieldTerminalPath{selector: BucketResolvedValues_FieldPathSelectorValues}, nil
   980  		}
   981  	}
   982  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Bucket_ResolvedValues", fp)
   983  }
   984  
   985  func ParseBucketResolvedValues_FieldPath(rawField string) (BucketResolvedValues_FieldPath, error) {
   986  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   987  	if err != nil {
   988  		return nil, err
   989  	}
   990  	return BuildBucketResolvedValues_FieldPath(fp)
   991  }
   992  
   993  func MustParseBucketResolvedValues_FieldPath(rawField string) BucketResolvedValues_FieldPath {
   994  	fp, err := ParseBucketResolvedValues_FieldPath(rawField)
   995  	if err != nil {
   996  		panic(err)
   997  	}
   998  	return fp
   999  }
  1000  
  1001  type BucketResolvedValues_FieldTerminalPath struct {
  1002  	selector BucketResolvedValues_FieldPathSelector
  1003  }
  1004  
  1005  var _ BucketResolvedValues_FieldPath = (*BucketResolvedValues_FieldTerminalPath)(nil)
  1006  
  1007  func (fp *BucketResolvedValues_FieldTerminalPath) Selector() BucketResolvedValues_FieldPathSelector {
  1008  	return fp.selector
  1009  }
  1010  
  1011  // String returns path representation in proto convention
  1012  func (fp *BucketResolvedValues_FieldTerminalPath) String() string {
  1013  	return fp.selector.String()
  1014  }
  1015  
  1016  // JSONString returns path representation is JSON convention
  1017  func (fp *BucketResolvedValues_FieldTerminalPath) JSONString() string {
  1018  	return strcase.ToLowerCamel(fp.String())
  1019  }
  1020  
  1021  // Get returns all values pointed by specific field from source Bucket_ResolvedValues
  1022  func (fp *BucketResolvedValues_FieldTerminalPath) Get(source *Bucket_ResolvedValues) (values []interface{}) {
  1023  	if source != nil {
  1024  		switch fp.selector {
  1025  		case BucketResolvedValues_FieldPathSelectorKey:
  1026  			values = append(values, source.Key)
  1027  		case BucketResolvedValues_FieldPathSelectorValues:
  1028  			for _, value := range source.GetValues() {
  1029  				values = append(values, value)
  1030  			}
  1031  		default:
  1032  			panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedValues: %d", fp.selector))
  1033  		}
  1034  	}
  1035  	return
  1036  }
  1037  
  1038  func (fp *BucketResolvedValues_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1039  	return fp.Get(source.(*Bucket_ResolvedValues))
  1040  }
  1041  
  1042  // GetSingle returns value pointed by specific field of from source Bucket_ResolvedValues
  1043  func (fp *BucketResolvedValues_FieldTerminalPath) GetSingle(source *Bucket_ResolvedValues) (interface{}, bool) {
  1044  	switch fp.selector {
  1045  	case BucketResolvedValues_FieldPathSelectorKey:
  1046  		return source.GetKey(), source != nil
  1047  	case BucketResolvedValues_FieldPathSelectorValues:
  1048  		res := source.GetValues()
  1049  		return res, res != nil
  1050  	default:
  1051  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedValues: %d", fp.selector))
  1052  	}
  1053  }
  1054  
  1055  func (fp *BucketResolvedValues_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1056  	return fp.GetSingle(source.(*Bucket_ResolvedValues))
  1057  }
  1058  
  1059  // GetDefault returns a default value of the field type
  1060  func (fp *BucketResolvedValues_FieldTerminalPath) GetDefault() interface{} {
  1061  	switch fp.selector {
  1062  	case BucketResolvedValues_FieldPathSelectorKey:
  1063  		return int64(0)
  1064  	case BucketResolvedValues_FieldPathSelectorValues:
  1065  		return ([]int64)(nil)
  1066  	default:
  1067  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedValues: %d", fp.selector))
  1068  	}
  1069  }
  1070  
  1071  func (fp *BucketResolvedValues_FieldTerminalPath) ClearValue(item *Bucket_ResolvedValues) {
  1072  	if item != nil {
  1073  		switch fp.selector {
  1074  		case BucketResolvedValues_FieldPathSelectorKey:
  1075  			item.Key = int64(0)
  1076  		case BucketResolvedValues_FieldPathSelectorValues:
  1077  			item.Values = nil
  1078  		default:
  1079  			panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedValues: %d", fp.selector))
  1080  		}
  1081  	}
  1082  }
  1083  
  1084  func (fp *BucketResolvedValues_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1085  	fp.ClearValue(item.(*Bucket_ResolvedValues))
  1086  }
  1087  
  1088  // IsLeaf - whether field path is holds simple value
  1089  func (fp *BucketResolvedValues_FieldTerminalPath) IsLeaf() bool {
  1090  	return fp.selector == BucketResolvedValues_FieldPathSelectorKey ||
  1091  		fp.selector == BucketResolvedValues_FieldPathSelectorValues
  1092  }
  1093  
  1094  func (fp *BucketResolvedValues_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1095  	return []gotenobject.FieldPath{fp}
  1096  }
  1097  
  1098  func (fp *BucketResolvedValues_FieldTerminalPath) WithIValue(value interface{}) BucketResolvedValues_FieldPathValue {
  1099  	switch fp.selector {
  1100  	case BucketResolvedValues_FieldPathSelectorKey:
  1101  		return &BucketResolvedValues_FieldTerminalPathValue{BucketResolvedValues_FieldTerminalPath: *fp, value: value.(int64)}
  1102  	case BucketResolvedValues_FieldPathSelectorValues:
  1103  		return &BucketResolvedValues_FieldTerminalPathValue{BucketResolvedValues_FieldTerminalPath: *fp, value: value.([]int64)}
  1104  	default:
  1105  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedValues: %d", fp.selector))
  1106  	}
  1107  }
  1108  
  1109  func (fp *BucketResolvedValues_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1110  	return fp.WithIValue(value)
  1111  }
  1112  
  1113  func (fp *BucketResolvedValues_FieldTerminalPath) WithIArrayOfValues(values interface{}) BucketResolvedValues_FieldPathArrayOfValues {
  1114  	fpaov := &BucketResolvedValues_FieldTerminalPathArrayOfValues{BucketResolvedValues_FieldTerminalPath: *fp}
  1115  	switch fp.selector {
  1116  	case BucketResolvedValues_FieldPathSelectorKey:
  1117  		return &BucketResolvedValues_FieldTerminalPathArrayOfValues{BucketResolvedValues_FieldTerminalPath: *fp, values: values.([]int64)}
  1118  	case BucketResolvedValues_FieldPathSelectorValues:
  1119  		return &BucketResolvedValues_FieldTerminalPathArrayOfValues{BucketResolvedValues_FieldTerminalPath: *fp, values: values.([][]int64)}
  1120  	default:
  1121  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedValues: %d", fp.selector))
  1122  	}
  1123  	return fpaov
  1124  }
  1125  
  1126  func (fp *BucketResolvedValues_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1127  	return fp.WithIArrayOfValues(values)
  1128  }
  1129  
  1130  func (fp *BucketResolvedValues_FieldTerminalPath) WithIArrayItemValue(value interface{}) BucketResolvedValues_FieldPathArrayItemValue {
  1131  	switch fp.selector {
  1132  	case BucketResolvedValues_FieldPathSelectorValues:
  1133  		return &BucketResolvedValues_FieldTerminalPathArrayItemValue{BucketResolvedValues_FieldTerminalPath: *fp, value: value.(int64)}
  1134  	default:
  1135  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedValues: %d", fp.selector))
  1136  	}
  1137  }
  1138  
  1139  func (fp *BucketResolvedValues_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1140  	return fp.WithIArrayItemValue(value)
  1141  }
  1142  
  1143  // BucketResolvedValues_FieldPathValue allows storing values for ResolvedValues fields according to their type
  1144  type BucketResolvedValues_FieldPathValue interface {
  1145  	BucketResolvedValues_FieldPath
  1146  	gotenobject.FieldPathValue
  1147  	SetTo(target **Bucket_ResolvedValues)
  1148  	CompareWith(*Bucket_ResolvedValues) (cmp int, comparable bool)
  1149  }
  1150  
  1151  func ParseBucketResolvedValues_FieldPathValue(pathStr, valueStr string) (BucketResolvedValues_FieldPathValue, error) {
  1152  	fp, err := ParseBucketResolvedValues_FieldPath(pathStr)
  1153  	if err != nil {
  1154  		return nil, err
  1155  	}
  1156  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1157  	if err != nil {
  1158  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ResolvedValues field path value from %s: %v", valueStr, err)
  1159  	}
  1160  	return fpv.(BucketResolvedValues_FieldPathValue), nil
  1161  }
  1162  
  1163  func MustParseBucketResolvedValues_FieldPathValue(pathStr, valueStr string) BucketResolvedValues_FieldPathValue {
  1164  	fpv, err := ParseBucketResolvedValues_FieldPathValue(pathStr, valueStr)
  1165  	if err != nil {
  1166  		panic(err)
  1167  	}
  1168  	return fpv
  1169  }
  1170  
  1171  type BucketResolvedValues_FieldTerminalPathValue struct {
  1172  	BucketResolvedValues_FieldTerminalPath
  1173  	value interface{}
  1174  }
  1175  
  1176  var _ BucketResolvedValues_FieldPathValue = (*BucketResolvedValues_FieldTerminalPathValue)(nil)
  1177  
  1178  // GetRawValue returns raw value stored under selected path for 'ResolvedValues' as interface{}
  1179  func (fpv *BucketResolvedValues_FieldTerminalPathValue) GetRawValue() interface{} {
  1180  	return fpv.value
  1181  }
  1182  func (fpv *BucketResolvedValues_FieldTerminalPathValue) AsKeyValue() (int64, bool) {
  1183  	res, ok := fpv.value.(int64)
  1184  	return res, ok
  1185  }
  1186  func (fpv *BucketResolvedValues_FieldTerminalPathValue) AsValuesValue() ([]int64, bool) {
  1187  	res, ok := fpv.value.([]int64)
  1188  	return res, ok
  1189  }
  1190  
  1191  // SetTo stores value for selected field for object ResolvedValues
  1192  func (fpv *BucketResolvedValues_FieldTerminalPathValue) SetTo(target **Bucket_ResolvedValues) {
  1193  	if *target == nil {
  1194  		*target = new(Bucket_ResolvedValues)
  1195  	}
  1196  	switch fpv.selector {
  1197  	case BucketResolvedValues_FieldPathSelectorKey:
  1198  		(*target).Key = fpv.value.(int64)
  1199  	case BucketResolvedValues_FieldPathSelectorValues:
  1200  		(*target).Values = fpv.value.([]int64)
  1201  	default:
  1202  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedValues: %d", fpv.selector))
  1203  	}
  1204  }
  1205  
  1206  func (fpv *BucketResolvedValues_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1207  	typedObject := target.(*Bucket_ResolvedValues)
  1208  	fpv.SetTo(&typedObject)
  1209  }
  1210  
  1211  // CompareWith compares value in the 'BucketResolvedValues_FieldTerminalPathValue' with the value under path in 'Bucket_ResolvedValues'.
  1212  func (fpv *BucketResolvedValues_FieldTerminalPathValue) CompareWith(source *Bucket_ResolvedValues) (int, bool) {
  1213  	switch fpv.selector {
  1214  	case BucketResolvedValues_FieldPathSelectorKey:
  1215  		leftValue := fpv.value.(int64)
  1216  		rightValue := source.GetKey()
  1217  		if (leftValue) == (rightValue) {
  1218  			return 0, true
  1219  		} else if (leftValue) < (rightValue) {
  1220  			return -1, true
  1221  		} else {
  1222  			return 1, true
  1223  		}
  1224  	case BucketResolvedValues_FieldPathSelectorValues:
  1225  		return 0, false
  1226  	default:
  1227  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedValues: %d", fpv.selector))
  1228  	}
  1229  }
  1230  
  1231  func (fpv *BucketResolvedValues_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1232  	return fpv.CompareWith(source.(*Bucket_ResolvedValues))
  1233  }
  1234  
  1235  // BucketResolvedValues_FieldPathArrayItemValue allows storing single item in Path-specific values for ResolvedValues according to their type
  1236  // Present only for array (repeated) types.
  1237  type BucketResolvedValues_FieldPathArrayItemValue interface {
  1238  	gotenobject.FieldPathArrayItemValue
  1239  	BucketResolvedValues_FieldPath
  1240  	ContainsValue(*Bucket_ResolvedValues) bool
  1241  }
  1242  
  1243  // ParseBucketResolvedValues_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1244  func ParseBucketResolvedValues_FieldPathArrayItemValue(pathStr, valueStr string) (BucketResolvedValues_FieldPathArrayItemValue, error) {
  1245  	fp, err := ParseBucketResolvedValues_FieldPath(pathStr)
  1246  	if err != nil {
  1247  		return nil, err
  1248  	}
  1249  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1250  	if err != nil {
  1251  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ResolvedValues field path array item value from %s: %v", valueStr, err)
  1252  	}
  1253  	return fpaiv.(BucketResolvedValues_FieldPathArrayItemValue), nil
  1254  }
  1255  
  1256  func MustParseBucketResolvedValues_FieldPathArrayItemValue(pathStr, valueStr string) BucketResolvedValues_FieldPathArrayItemValue {
  1257  	fpaiv, err := ParseBucketResolvedValues_FieldPathArrayItemValue(pathStr, valueStr)
  1258  	if err != nil {
  1259  		panic(err)
  1260  	}
  1261  	return fpaiv
  1262  }
  1263  
  1264  type BucketResolvedValues_FieldTerminalPathArrayItemValue struct {
  1265  	BucketResolvedValues_FieldTerminalPath
  1266  	value interface{}
  1267  }
  1268  
  1269  var _ BucketResolvedValues_FieldPathArrayItemValue = (*BucketResolvedValues_FieldTerminalPathArrayItemValue)(nil)
  1270  
  1271  // GetRawValue returns stored element value for array in object Bucket_ResolvedValues as interface{}
  1272  func (fpaiv *BucketResolvedValues_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1273  	return fpaiv.value
  1274  }
  1275  func (fpaiv *BucketResolvedValues_FieldTerminalPathArrayItemValue) AsValuesItemValue() (int64, bool) {
  1276  	res, ok := fpaiv.value.(int64)
  1277  	return res, ok
  1278  }
  1279  
  1280  func (fpaiv *BucketResolvedValues_FieldTerminalPathArrayItemValue) GetSingle(source *Bucket_ResolvedValues) (interface{}, bool) {
  1281  	return nil, false
  1282  }
  1283  
  1284  func (fpaiv *BucketResolvedValues_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1285  	return fpaiv.GetSingle(source.(*Bucket_ResolvedValues))
  1286  }
  1287  
  1288  // Contains returns a boolean indicating if value that is being held is present in given 'ResolvedValues'
  1289  func (fpaiv *BucketResolvedValues_FieldTerminalPathArrayItemValue) ContainsValue(source *Bucket_ResolvedValues) bool {
  1290  	slice := fpaiv.BucketResolvedValues_FieldTerminalPath.Get(source)
  1291  	for _, v := range slice {
  1292  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1293  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1294  				return true
  1295  			}
  1296  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1297  			return true
  1298  		}
  1299  	}
  1300  	return false
  1301  }
  1302  
  1303  // BucketResolvedValues_FieldPathArrayOfValues allows storing slice of values for ResolvedValues fields according to their type
  1304  type BucketResolvedValues_FieldPathArrayOfValues interface {
  1305  	gotenobject.FieldPathArrayOfValues
  1306  	BucketResolvedValues_FieldPath
  1307  }
  1308  
  1309  func ParseBucketResolvedValues_FieldPathArrayOfValues(pathStr, valuesStr string) (BucketResolvedValues_FieldPathArrayOfValues, error) {
  1310  	fp, err := ParseBucketResolvedValues_FieldPath(pathStr)
  1311  	if err != nil {
  1312  		return nil, err
  1313  	}
  1314  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1315  	if err != nil {
  1316  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ResolvedValues field path array of values from %s: %v", valuesStr, err)
  1317  	}
  1318  	return fpaov.(BucketResolvedValues_FieldPathArrayOfValues), nil
  1319  }
  1320  
  1321  func MustParseBucketResolvedValues_FieldPathArrayOfValues(pathStr, valuesStr string) BucketResolvedValues_FieldPathArrayOfValues {
  1322  	fpaov, err := ParseBucketResolvedValues_FieldPathArrayOfValues(pathStr, valuesStr)
  1323  	if err != nil {
  1324  		panic(err)
  1325  	}
  1326  	return fpaov
  1327  }
  1328  
  1329  type BucketResolvedValues_FieldTerminalPathArrayOfValues struct {
  1330  	BucketResolvedValues_FieldTerminalPath
  1331  	values interface{}
  1332  }
  1333  
  1334  var _ BucketResolvedValues_FieldPathArrayOfValues = (*BucketResolvedValues_FieldTerminalPathArrayOfValues)(nil)
  1335  
  1336  func (fpaov *BucketResolvedValues_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1337  	switch fpaov.selector {
  1338  	case BucketResolvedValues_FieldPathSelectorKey:
  1339  		for _, v := range fpaov.values.([]int64) {
  1340  			values = append(values, v)
  1341  		}
  1342  	case BucketResolvedValues_FieldPathSelectorValues:
  1343  		for _, v := range fpaov.values.([][]int64) {
  1344  			values = append(values, v)
  1345  		}
  1346  	}
  1347  	return
  1348  }
  1349  func (fpaov *BucketResolvedValues_FieldTerminalPathArrayOfValues) AsKeyArrayOfValues() ([]int64, bool) {
  1350  	res, ok := fpaov.values.([]int64)
  1351  	return res, ok
  1352  }
  1353  func (fpaov *BucketResolvedValues_FieldTerminalPathArrayOfValues) AsValuesArrayOfValues() ([][]int64, bool) {
  1354  	res, ok := fpaov.values.([][]int64)
  1355  	return res, ok
  1356  }
  1357  
  1358  // FieldPath provides implementation to handle
  1359  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1360  type BucketResolvedKeysWithValues_FieldPath interface {
  1361  	gotenobject.FieldPath
  1362  	Selector() BucketResolvedKeysWithValues_FieldPathSelector
  1363  	Get(source *Bucket_ResolvedKeysWithValues) []interface{}
  1364  	GetSingle(source *Bucket_ResolvedKeysWithValues) (interface{}, bool)
  1365  	ClearValue(item *Bucket_ResolvedKeysWithValues)
  1366  
  1367  	// Those methods build corresponding BucketResolvedKeysWithValues_FieldPathValue
  1368  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1369  	WithIValue(value interface{}) BucketResolvedKeysWithValues_FieldPathValue
  1370  	WithIArrayOfValues(values interface{}) BucketResolvedKeysWithValues_FieldPathArrayOfValues
  1371  	WithIArrayItemValue(value interface{}) BucketResolvedKeysWithValues_FieldPathArrayItemValue
  1372  }
  1373  
  1374  type BucketResolvedKeysWithValues_FieldPathSelector int32
  1375  
  1376  const (
  1377  	BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs BucketResolvedKeysWithValues_FieldPathSelector = 0
  1378  )
  1379  
  1380  func (s BucketResolvedKeysWithValues_FieldPathSelector) String() string {
  1381  	switch s {
  1382  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1383  		return "resolved_kvs"
  1384  	default:
  1385  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", s))
  1386  	}
  1387  }
  1388  
  1389  func BuildBucketResolvedKeysWithValues_FieldPath(fp gotenobject.RawFieldPath) (BucketResolvedKeysWithValues_FieldPath, error) {
  1390  	if len(fp) == 0 {
  1391  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Bucket_ResolvedKeysWithValues")
  1392  	}
  1393  	if len(fp) == 1 {
  1394  		switch fp[0] {
  1395  		case "resolved_kvs", "resolvedKvs", "resolved-kvs":
  1396  			return &BucketResolvedKeysWithValues_FieldTerminalPath{selector: BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs}, nil
  1397  		}
  1398  	} else {
  1399  		switch fp[0] {
  1400  		case "resolved_kvs", "resolvedKvs", "resolved-kvs":
  1401  			if subpath, err := BuildBucketResolvedValues_FieldPath(fp[1:]); err != nil {
  1402  				return nil, err
  1403  			} else {
  1404  				return &BucketResolvedKeysWithValues_FieldSubPath{selector: BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs, subPath: subpath}, nil
  1405  			}
  1406  		}
  1407  	}
  1408  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Bucket_ResolvedKeysWithValues", fp)
  1409  }
  1410  
  1411  func ParseBucketResolvedKeysWithValues_FieldPath(rawField string) (BucketResolvedKeysWithValues_FieldPath, error) {
  1412  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1413  	if err != nil {
  1414  		return nil, err
  1415  	}
  1416  	return BuildBucketResolvedKeysWithValues_FieldPath(fp)
  1417  }
  1418  
  1419  func MustParseBucketResolvedKeysWithValues_FieldPath(rawField string) BucketResolvedKeysWithValues_FieldPath {
  1420  	fp, err := ParseBucketResolvedKeysWithValues_FieldPath(rawField)
  1421  	if err != nil {
  1422  		panic(err)
  1423  	}
  1424  	return fp
  1425  }
  1426  
  1427  type BucketResolvedKeysWithValues_FieldTerminalPath struct {
  1428  	selector BucketResolvedKeysWithValues_FieldPathSelector
  1429  }
  1430  
  1431  var _ BucketResolvedKeysWithValues_FieldPath = (*BucketResolvedKeysWithValues_FieldTerminalPath)(nil)
  1432  
  1433  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) Selector() BucketResolvedKeysWithValues_FieldPathSelector {
  1434  	return fp.selector
  1435  }
  1436  
  1437  // String returns path representation in proto convention
  1438  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) String() string {
  1439  	return fp.selector.String()
  1440  }
  1441  
  1442  // JSONString returns path representation is JSON convention
  1443  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) JSONString() string {
  1444  	return strcase.ToLowerCamel(fp.String())
  1445  }
  1446  
  1447  // Get returns all values pointed by specific field from source Bucket_ResolvedKeysWithValues
  1448  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) Get(source *Bucket_ResolvedKeysWithValues) (values []interface{}) {
  1449  	if source != nil {
  1450  		switch fp.selector {
  1451  		case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1452  			for _, value := range source.GetResolvedKvs() {
  1453  				values = append(values, value)
  1454  			}
  1455  		default:
  1456  			panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fp.selector))
  1457  		}
  1458  	}
  1459  	return
  1460  }
  1461  
  1462  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1463  	return fp.Get(source.(*Bucket_ResolvedKeysWithValues))
  1464  }
  1465  
  1466  // GetSingle returns value pointed by specific field of from source Bucket_ResolvedKeysWithValues
  1467  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) GetSingle(source *Bucket_ResolvedKeysWithValues) (interface{}, bool) {
  1468  	switch fp.selector {
  1469  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1470  		res := source.GetResolvedKvs()
  1471  		return res, res != nil
  1472  	default:
  1473  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fp.selector))
  1474  	}
  1475  }
  1476  
  1477  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1478  	return fp.GetSingle(source.(*Bucket_ResolvedKeysWithValues))
  1479  }
  1480  
  1481  // GetDefault returns a default value of the field type
  1482  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) GetDefault() interface{} {
  1483  	switch fp.selector {
  1484  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1485  		return ([]*Bucket_ResolvedValues)(nil)
  1486  	default:
  1487  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fp.selector))
  1488  	}
  1489  }
  1490  
  1491  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) ClearValue(item *Bucket_ResolvedKeysWithValues) {
  1492  	if item != nil {
  1493  		switch fp.selector {
  1494  		case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1495  			item.ResolvedKvs = nil
  1496  		default:
  1497  			panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fp.selector))
  1498  		}
  1499  	}
  1500  }
  1501  
  1502  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1503  	fp.ClearValue(item.(*Bucket_ResolvedKeysWithValues))
  1504  }
  1505  
  1506  // IsLeaf - whether field path is holds simple value
  1507  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) IsLeaf() bool {
  1508  	return false
  1509  }
  1510  
  1511  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1512  	return []gotenobject.FieldPath{fp}
  1513  }
  1514  
  1515  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) WithIValue(value interface{}) BucketResolvedKeysWithValues_FieldPathValue {
  1516  	switch fp.selector {
  1517  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1518  		return &BucketResolvedKeysWithValues_FieldTerminalPathValue{BucketResolvedKeysWithValues_FieldTerminalPath: *fp, value: value.([]*Bucket_ResolvedValues)}
  1519  	default:
  1520  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fp.selector))
  1521  	}
  1522  }
  1523  
  1524  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1525  	return fp.WithIValue(value)
  1526  }
  1527  
  1528  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) WithIArrayOfValues(values interface{}) BucketResolvedKeysWithValues_FieldPathArrayOfValues {
  1529  	fpaov := &BucketResolvedKeysWithValues_FieldTerminalPathArrayOfValues{BucketResolvedKeysWithValues_FieldTerminalPath: *fp}
  1530  	switch fp.selector {
  1531  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1532  		return &BucketResolvedKeysWithValues_FieldTerminalPathArrayOfValues{BucketResolvedKeysWithValues_FieldTerminalPath: *fp, values: values.([][]*Bucket_ResolvedValues)}
  1533  	default:
  1534  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fp.selector))
  1535  	}
  1536  	return fpaov
  1537  }
  1538  
  1539  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1540  	return fp.WithIArrayOfValues(values)
  1541  }
  1542  
  1543  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) WithIArrayItemValue(value interface{}) BucketResolvedKeysWithValues_FieldPathArrayItemValue {
  1544  	switch fp.selector {
  1545  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1546  		return &BucketResolvedKeysWithValues_FieldTerminalPathArrayItemValue{BucketResolvedKeysWithValues_FieldTerminalPath: *fp, value: value.(*Bucket_ResolvedValues)}
  1547  	default:
  1548  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fp.selector))
  1549  	}
  1550  }
  1551  
  1552  func (fp *BucketResolvedKeysWithValues_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1553  	return fp.WithIArrayItemValue(value)
  1554  }
  1555  
  1556  type BucketResolvedKeysWithValues_FieldSubPath struct {
  1557  	selector BucketResolvedKeysWithValues_FieldPathSelector
  1558  	subPath  gotenobject.FieldPath
  1559  }
  1560  
  1561  var _ BucketResolvedKeysWithValues_FieldPath = (*BucketResolvedKeysWithValues_FieldSubPath)(nil)
  1562  
  1563  func (fps *BucketResolvedKeysWithValues_FieldSubPath) Selector() BucketResolvedKeysWithValues_FieldPathSelector {
  1564  	return fps.selector
  1565  }
  1566  func (fps *BucketResolvedKeysWithValues_FieldSubPath) AsResolvedKvsSubPath() (BucketResolvedValues_FieldPath, bool) {
  1567  	res, ok := fps.subPath.(BucketResolvedValues_FieldPath)
  1568  	return res, ok
  1569  }
  1570  
  1571  // String returns path representation in proto convention
  1572  func (fps *BucketResolvedKeysWithValues_FieldSubPath) String() string {
  1573  	return fps.selector.String() + "." + fps.subPath.String()
  1574  }
  1575  
  1576  // JSONString returns path representation is JSON convention
  1577  func (fps *BucketResolvedKeysWithValues_FieldSubPath) JSONString() string {
  1578  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
  1579  }
  1580  
  1581  // Get returns all values pointed by selected field from source Bucket_ResolvedKeysWithValues
  1582  func (fps *BucketResolvedKeysWithValues_FieldSubPath) Get(source *Bucket_ResolvedKeysWithValues) (values []interface{}) {
  1583  	switch fps.selector {
  1584  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1585  		for _, item := range source.GetResolvedKvs() {
  1586  			values = append(values, fps.subPath.GetRaw(item)...)
  1587  		}
  1588  	default:
  1589  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fps.selector))
  1590  	}
  1591  	return
  1592  }
  1593  
  1594  func (fps *BucketResolvedKeysWithValues_FieldSubPath) GetRaw(source proto.Message) []interface{} {
  1595  	return fps.Get(source.(*Bucket_ResolvedKeysWithValues))
  1596  }
  1597  
  1598  // GetSingle returns value of selected field from source Bucket_ResolvedKeysWithValues
  1599  func (fps *BucketResolvedKeysWithValues_FieldSubPath) GetSingle(source *Bucket_ResolvedKeysWithValues) (interface{}, bool) {
  1600  	switch fps.selector {
  1601  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1602  		if len(source.GetResolvedKvs()) == 0 {
  1603  			return nil, false
  1604  		}
  1605  		return fps.subPath.GetSingleRaw(source.GetResolvedKvs()[0])
  1606  	default:
  1607  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fps.selector))
  1608  	}
  1609  }
  1610  
  1611  func (fps *BucketResolvedKeysWithValues_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1612  	return fps.GetSingle(source.(*Bucket_ResolvedKeysWithValues))
  1613  }
  1614  
  1615  // GetDefault returns a default value of the field type
  1616  func (fps *BucketResolvedKeysWithValues_FieldSubPath) GetDefault() interface{} {
  1617  	return fps.subPath.GetDefault()
  1618  }
  1619  
  1620  func (fps *BucketResolvedKeysWithValues_FieldSubPath) ClearValue(item *Bucket_ResolvedKeysWithValues) {
  1621  	if item != nil {
  1622  		switch fps.selector {
  1623  		case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1624  			for _, subItem := range item.ResolvedKvs {
  1625  				fps.subPath.ClearValueRaw(subItem)
  1626  			}
  1627  		default:
  1628  			panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fps.selector))
  1629  		}
  1630  	}
  1631  }
  1632  
  1633  func (fps *BucketResolvedKeysWithValues_FieldSubPath) ClearValueRaw(item proto.Message) {
  1634  	fps.ClearValue(item.(*Bucket_ResolvedKeysWithValues))
  1635  }
  1636  
  1637  // IsLeaf - whether field path is holds simple value
  1638  func (fps *BucketResolvedKeysWithValues_FieldSubPath) IsLeaf() bool {
  1639  	return fps.subPath.IsLeaf()
  1640  }
  1641  
  1642  func (fps *BucketResolvedKeysWithValues_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1643  	iPaths := []gotenobject.FieldPath{&BucketResolvedKeysWithValues_FieldTerminalPath{selector: fps.selector}}
  1644  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
  1645  	return iPaths
  1646  }
  1647  
  1648  func (fps *BucketResolvedKeysWithValues_FieldSubPath) WithIValue(value interface{}) BucketResolvedKeysWithValues_FieldPathValue {
  1649  	return &BucketResolvedKeysWithValues_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
  1650  }
  1651  
  1652  func (fps *BucketResolvedKeysWithValues_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1653  	return fps.WithIValue(value)
  1654  }
  1655  
  1656  func (fps *BucketResolvedKeysWithValues_FieldSubPath) WithIArrayOfValues(values interface{}) BucketResolvedKeysWithValues_FieldPathArrayOfValues {
  1657  	return &BucketResolvedKeysWithValues_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
  1658  }
  1659  
  1660  func (fps *BucketResolvedKeysWithValues_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1661  	return fps.WithIArrayOfValues(values)
  1662  }
  1663  
  1664  func (fps *BucketResolvedKeysWithValues_FieldSubPath) WithIArrayItemValue(value interface{}) BucketResolvedKeysWithValues_FieldPathArrayItemValue {
  1665  	return &BucketResolvedKeysWithValues_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
  1666  }
  1667  
  1668  func (fps *BucketResolvedKeysWithValues_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1669  	return fps.WithIArrayItemValue(value)
  1670  }
  1671  
  1672  // BucketResolvedKeysWithValues_FieldPathValue allows storing values for ResolvedKeysWithValues fields according to their type
  1673  type BucketResolvedKeysWithValues_FieldPathValue interface {
  1674  	BucketResolvedKeysWithValues_FieldPath
  1675  	gotenobject.FieldPathValue
  1676  	SetTo(target **Bucket_ResolvedKeysWithValues)
  1677  	CompareWith(*Bucket_ResolvedKeysWithValues) (cmp int, comparable bool)
  1678  }
  1679  
  1680  func ParseBucketResolvedKeysWithValues_FieldPathValue(pathStr, valueStr string) (BucketResolvedKeysWithValues_FieldPathValue, error) {
  1681  	fp, err := ParseBucketResolvedKeysWithValues_FieldPath(pathStr)
  1682  	if err != nil {
  1683  		return nil, err
  1684  	}
  1685  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1686  	if err != nil {
  1687  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ResolvedKeysWithValues field path value from %s: %v", valueStr, err)
  1688  	}
  1689  	return fpv.(BucketResolvedKeysWithValues_FieldPathValue), nil
  1690  }
  1691  
  1692  func MustParseBucketResolvedKeysWithValues_FieldPathValue(pathStr, valueStr string) BucketResolvedKeysWithValues_FieldPathValue {
  1693  	fpv, err := ParseBucketResolvedKeysWithValues_FieldPathValue(pathStr, valueStr)
  1694  	if err != nil {
  1695  		panic(err)
  1696  	}
  1697  	return fpv
  1698  }
  1699  
  1700  type BucketResolvedKeysWithValues_FieldTerminalPathValue struct {
  1701  	BucketResolvedKeysWithValues_FieldTerminalPath
  1702  	value interface{}
  1703  }
  1704  
  1705  var _ BucketResolvedKeysWithValues_FieldPathValue = (*BucketResolvedKeysWithValues_FieldTerminalPathValue)(nil)
  1706  
  1707  // GetRawValue returns raw value stored under selected path for 'ResolvedKeysWithValues' as interface{}
  1708  func (fpv *BucketResolvedKeysWithValues_FieldTerminalPathValue) GetRawValue() interface{} {
  1709  	return fpv.value
  1710  }
  1711  func (fpv *BucketResolvedKeysWithValues_FieldTerminalPathValue) AsResolvedKvsValue() ([]*Bucket_ResolvedValues, bool) {
  1712  	res, ok := fpv.value.([]*Bucket_ResolvedValues)
  1713  	return res, ok
  1714  }
  1715  
  1716  // SetTo stores value for selected field for object ResolvedKeysWithValues
  1717  func (fpv *BucketResolvedKeysWithValues_FieldTerminalPathValue) SetTo(target **Bucket_ResolvedKeysWithValues) {
  1718  	if *target == nil {
  1719  		*target = new(Bucket_ResolvedKeysWithValues)
  1720  	}
  1721  	switch fpv.selector {
  1722  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1723  		(*target).ResolvedKvs = fpv.value.([]*Bucket_ResolvedValues)
  1724  	default:
  1725  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fpv.selector))
  1726  	}
  1727  }
  1728  
  1729  func (fpv *BucketResolvedKeysWithValues_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1730  	typedObject := target.(*Bucket_ResolvedKeysWithValues)
  1731  	fpv.SetTo(&typedObject)
  1732  }
  1733  
  1734  // CompareWith compares value in the 'BucketResolvedKeysWithValues_FieldTerminalPathValue' with the value under path in 'Bucket_ResolvedKeysWithValues'.
  1735  func (fpv *BucketResolvedKeysWithValues_FieldTerminalPathValue) CompareWith(source *Bucket_ResolvedKeysWithValues) (int, bool) {
  1736  	switch fpv.selector {
  1737  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1738  		return 0, false
  1739  	default:
  1740  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fpv.selector))
  1741  	}
  1742  }
  1743  
  1744  func (fpv *BucketResolvedKeysWithValues_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1745  	return fpv.CompareWith(source.(*Bucket_ResolvedKeysWithValues))
  1746  }
  1747  
  1748  type BucketResolvedKeysWithValues_FieldSubPathValue struct {
  1749  	BucketResolvedKeysWithValues_FieldPath
  1750  	subPathValue gotenobject.FieldPathValue
  1751  }
  1752  
  1753  var _ BucketResolvedKeysWithValues_FieldPathValue = (*BucketResolvedKeysWithValues_FieldSubPathValue)(nil)
  1754  
  1755  func (fpvs *BucketResolvedKeysWithValues_FieldSubPathValue) AsResolvedKvsPathValue() (BucketResolvedValues_FieldPathValue, bool) {
  1756  	res, ok := fpvs.subPathValue.(BucketResolvedValues_FieldPathValue)
  1757  	return res, ok
  1758  }
  1759  
  1760  func (fpvs *BucketResolvedKeysWithValues_FieldSubPathValue) SetTo(target **Bucket_ResolvedKeysWithValues) {
  1761  	if *target == nil {
  1762  		*target = new(Bucket_ResolvedKeysWithValues)
  1763  	}
  1764  	switch fpvs.Selector() {
  1765  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1766  		panic("FieldPath setter is unsupported for array subpaths")
  1767  	default:
  1768  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fpvs.Selector()))
  1769  	}
  1770  }
  1771  
  1772  func (fpvs *BucketResolvedKeysWithValues_FieldSubPathValue) SetToRaw(target proto.Message) {
  1773  	typedObject := target.(*Bucket_ResolvedKeysWithValues)
  1774  	fpvs.SetTo(&typedObject)
  1775  }
  1776  
  1777  func (fpvs *BucketResolvedKeysWithValues_FieldSubPathValue) GetRawValue() interface{} {
  1778  	return fpvs.subPathValue.GetRawValue()
  1779  }
  1780  
  1781  func (fpvs *BucketResolvedKeysWithValues_FieldSubPathValue) CompareWith(source *Bucket_ResolvedKeysWithValues) (int, bool) {
  1782  	switch fpvs.Selector() {
  1783  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1784  		return 0, false // repeated field
  1785  	default:
  1786  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fpvs.Selector()))
  1787  	}
  1788  }
  1789  
  1790  func (fpvs *BucketResolvedKeysWithValues_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1791  	return fpvs.CompareWith(source.(*Bucket_ResolvedKeysWithValues))
  1792  }
  1793  
  1794  // BucketResolvedKeysWithValues_FieldPathArrayItemValue allows storing single item in Path-specific values for ResolvedKeysWithValues according to their type
  1795  // Present only for array (repeated) types.
  1796  type BucketResolvedKeysWithValues_FieldPathArrayItemValue interface {
  1797  	gotenobject.FieldPathArrayItemValue
  1798  	BucketResolvedKeysWithValues_FieldPath
  1799  	ContainsValue(*Bucket_ResolvedKeysWithValues) bool
  1800  }
  1801  
  1802  // ParseBucketResolvedKeysWithValues_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1803  func ParseBucketResolvedKeysWithValues_FieldPathArrayItemValue(pathStr, valueStr string) (BucketResolvedKeysWithValues_FieldPathArrayItemValue, error) {
  1804  	fp, err := ParseBucketResolvedKeysWithValues_FieldPath(pathStr)
  1805  	if err != nil {
  1806  		return nil, err
  1807  	}
  1808  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1809  	if err != nil {
  1810  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ResolvedKeysWithValues field path array item value from %s: %v", valueStr, err)
  1811  	}
  1812  	return fpaiv.(BucketResolvedKeysWithValues_FieldPathArrayItemValue), nil
  1813  }
  1814  
  1815  func MustParseBucketResolvedKeysWithValues_FieldPathArrayItemValue(pathStr, valueStr string) BucketResolvedKeysWithValues_FieldPathArrayItemValue {
  1816  	fpaiv, err := ParseBucketResolvedKeysWithValues_FieldPathArrayItemValue(pathStr, valueStr)
  1817  	if err != nil {
  1818  		panic(err)
  1819  	}
  1820  	return fpaiv
  1821  }
  1822  
  1823  type BucketResolvedKeysWithValues_FieldTerminalPathArrayItemValue struct {
  1824  	BucketResolvedKeysWithValues_FieldTerminalPath
  1825  	value interface{}
  1826  }
  1827  
  1828  var _ BucketResolvedKeysWithValues_FieldPathArrayItemValue = (*BucketResolvedKeysWithValues_FieldTerminalPathArrayItemValue)(nil)
  1829  
  1830  // GetRawValue returns stored element value for array in object Bucket_ResolvedKeysWithValues as interface{}
  1831  func (fpaiv *BucketResolvedKeysWithValues_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1832  	return fpaiv.value
  1833  }
  1834  func (fpaiv *BucketResolvedKeysWithValues_FieldTerminalPathArrayItemValue) AsResolvedKvsItemValue() (*Bucket_ResolvedValues, bool) {
  1835  	res, ok := fpaiv.value.(*Bucket_ResolvedValues)
  1836  	return res, ok
  1837  }
  1838  
  1839  func (fpaiv *BucketResolvedKeysWithValues_FieldTerminalPathArrayItemValue) GetSingle(source *Bucket_ResolvedKeysWithValues) (interface{}, bool) {
  1840  	return nil, false
  1841  }
  1842  
  1843  func (fpaiv *BucketResolvedKeysWithValues_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1844  	return fpaiv.GetSingle(source.(*Bucket_ResolvedKeysWithValues))
  1845  }
  1846  
  1847  // Contains returns a boolean indicating if value that is being held is present in given 'ResolvedKeysWithValues'
  1848  func (fpaiv *BucketResolvedKeysWithValues_FieldTerminalPathArrayItemValue) ContainsValue(source *Bucket_ResolvedKeysWithValues) bool {
  1849  	slice := fpaiv.BucketResolvedKeysWithValues_FieldTerminalPath.Get(source)
  1850  	for _, v := range slice {
  1851  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1852  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1853  				return true
  1854  			}
  1855  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1856  			return true
  1857  		}
  1858  	}
  1859  	return false
  1860  }
  1861  
  1862  type BucketResolvedKeysWithValues_FieldSubPathArrayItemValue struct {
  1863  	BucketResolvedKeysWithValues_FieldPath
  1864  	subPathItemValue gotenobject.FieldPathArrayItemValue
  1865  }
  1866  
  1867  // GetRawValue returns stored array item value
  1868  func (fpaivs *BucketResolvedKeysWithValues_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  1869  	return fpaivs.subPathItemValue.GetRawItemValue()
  1870  }
  1871  func (fpaivs *BucketResolvedKeysWithValues_FieldSubPathArrayItemValue) AsResolvedKvsPathItemValue() (BucketResolvedValues_FieldPathArrayItemValue, bool) {
  1872  	res, ok := fpaivs.subPathItemValue.(BucketResolvedValues_FieldPathArrayItemValue)
  1873  	return res, ok
  1874  }
  1875  
  1876  // Contains returns a boolean indicating if value that is being held is present in given 'ResolvedKeysWithValues'
  1877  func (fpaivs *BucketResolvedKeysWithValues_FieldSubPathArrayItemValue) ContainsValue(source *Bucket_ResolvedKeysWithValues) bool {
  1878  	switch fpaivs.Selector() {
  1879  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1880  		return false // repeated/map field
  1881  	default:
  1882  		panic(fmt.Sprintf("Invalid selector for Bucket_ResolvedKeysWithValues: %d", fpaivs.Selector()))
  1883  	}
  1884  }
  1885  
  1886  // BucketResolvedKeysWithValues_FieldPathArrayOfValues allows storing slice of values for ResolvedKeysWithValues fields according to their type
  1887  type BucketResolvedKeysWithValues_FieldPathArrayOfValues interface {
  1888  	gotenobject.FieldPathArrayOfValues
  1889  	BucketResolvedKeysWithValues_FieldPath
  1890  }
  1891  
  1892  func ParseBucketResolvedKeysWithValues_FieldPathArrayOfValues(pathStr, valuesStr string) (BucketResolvedKeysWithValues_FieldPathArrayOfValues, error) {
  1893  	fp, err := ParseBucketResolvedKeysWithValues_FieldPath(pathStr)
  1894  	if err != nil {
  1895  		return nil, err
  1896  	}
  1897  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1898  	if err != nil {
  1899  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ResolvedKeysWithValues field path array of values from %s: %v", valuesStr, err)
  1900  	}
  1901  	return fpaov.(BucketResolvedKeysWithValues_FieldPathArrayOfValues), nil
  1902  }
  1903  
  1904  func MustParseBucketResolvedKeysWithValues_FieldPathArrayOfValues(pathStr, valuesStr string) BucketResolvedKeysWithValues_FieldPathArrayOfValues {
  1905  	fpaov, err := ParseBucketResolvedKeysWithValues_FieldPathArrayOfValues(pathStr, valuesStr)
  1906  	if err != nil {
  1907  		panic(err)
  1908  	}
  1909  	return fpaov
  1910  }
  1911  
  1912  type BucketResolvedKeysWithValues_FieldTerminalPathArrayOfValues struct {
  1913  	BucketResolvedKeysWithValues_FieldTerminalPath
  1914  	values interface{}
  1915  }
  1916  
  1917  var _ BucketResolvedKeysWithValues_FieldPathArrayOfValues = (*BucketResolvedKeysWithValues_FieldTerminalPathArrayOfValues)(nil)
  1918  
  1919  func (fpaov *BucketResolvedKeysWithValues_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1920  	switch fpaov.selector {
  1921  	case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs:
  1922  		for _, v := range fpaov.values.([][]*Bucket_ResolvedValues) {
  1923  			values = append(values, v)
  1924  		}
  1925  	}
  1926  	return
  1927  }
  1928  func (fpaov *BucketResolvedKeysWithValues_FieldTerminalPathArrayOfValues) AsResolvedKvsArrayOfValues() ([][]*Bucket_ResolvedValues, bool) {
  1929  	res, ok := fpaov.values.([][]*Bucket_ResolvedValues)
  1930  	return res, ok
  1931  }
  1932  
  1933  type BucketResolvedKeysWithValues_FieldSubPathArrayOfValues struct {
  1934  	BucketResolvedKeysWithValues_FieldPath
  1935  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  1936  }
  1937  
  1938  var _ BucketResolvedKeysWithValues_FieldPathArrayOfValues = (*BucketResolvedKeysWithValues_FieldSubPathArrayOfValues)(nil)
  1939  
  1940  func (fpsaov *BucketResolvedKeysWithValues_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  1941  	return fpsaov.subPathArrayOfValues.GetRawValues()
  1942  }
  1943  func (fpsaov *BucketResolvedKeysWithValues_FieldSubPathArrayOfValues) AsResolvedKvsPathArrayOfValues() (BucketResolvedValues_FieldPathArrayOfValues, bool) {
  1944  	res, ok := fpsaov.subPathArrayOfValues.(BucketResolvedValues_FieldPathArrayOfValues)
  1945  	return res, ok
  1946  }
  1947  
  1948  // FieldPath provides implementation to handle
  1949  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1950  type BucketRequiredTypedLabels_FieldPath interface {
  1951  	gotenobject.FieldPath
  1952  	Selector() BucketRequiredTypedLabels_FieldPathSelector
  1953  	Get(source *Bucket_RequiredTypedLabels) []interface{}
  1954  	GetSingle(source *Bucket_RequiredTypedLabels) (interface{}, bool)
  1955  	ClearValue(item *Bucket_RequiredTypedLabels)
  1956  
  1957  	// Those methods build corresponding BucketRequiredTypedLabels_FieldPathValue
  1958  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1959  	WithIValue(value interface{}) BucketRequiredTypedLabels_FieldPathValue
  1960  	WithIArrayOfValues(values interface{}) BucketRequiredTypedLabels_FieldPathArrayOfValues
  1961  	WithIArrayItemValue(value interface{}) BucketRequiredTypedLabels_FieldPathArrayItemValue
  1962  }
  1963  
  1964  type BucketRequiredTypedLabels_FieldPathSelector int32
  1965  
  1966  const (
  1967  	BucketRequiredTypedLabels_FieldPathSelectorTypes  BucketRequiredTypedLabels_FieldPathSelector = 0
  1968  	BucketRequiredTypedLabels_FieldPathSelectorLabels BucketRequiredTypedLabels_FieldPathSelector = 1
  1969  )
  1970  
  1971  func (s BucketRequiredTypedLabels_FieldPathSelector) String() string {
  1972  	switch s {
  1973  	case BucketRequiredTypedLabels_FieldPathSelectorTypes:
  1974  		return "types"
  1975  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  1976  		return "labels"
  1977  	default:
  1978  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", s))
  1979  	}
  1980  }
  1981  
  1982  func BuildBucketRequiredTypedLabels_FieldPath(fp gotenobject.RawFieldPath) (BucketRequiredTypedLabels_FieldPath, error) {
  1983  	if len(fp) == 0 {
  1984  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Bucket_RequiredTypedLabels")
  1985  	}
  1986  	if len(fp) == 1 {
  1987  		switch fp[0] {
  1988  		case "types":
  1989  			return &BucketRequiredTypedLabels_FieldTerminalPath{selector: BucketRequiredTypedLabels_FieldPathSelectorTypes}, nil
  1990  		case "labels":
  1991  			return &BucketRequiredTypedLabels_FieldTerminalPath{selector: BucketRequiredTypedLabels_FieldPathSelectorLabels}, nil
  1992  		}
  1993  	} else {
  1994  		switch fp[0] {
  1995  		case "labels":
  1996  			if len(fp) > 2 {
  1997  				return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object Bucket_RequiredTypedLabels)", fp)
  1998  			}
  1999  			return &BucketRequiredTypedLabels_FieldPathMap{selector: BucketRequiredTypedLabels_FieldPathSelectorLabels, key: fp[1]}, nil
  2000  		}
  2001  	}
  2002  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Bucket_RequiredTypedLabels", fp)
  2003  }
  2004  
  2005  func ParseBucketRequiredTypedLabels_FieldPath(rawField string) (BucketRequiredTypedLabels_FieldPath, error) {
  2006  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  2007  	if err != nil {
  2008  		return nil, err
  2009  	}
  2010  	return BuildBucketRequiredTypedLabels_FieldPath(fp)
  2011  }
  2012  
  2013  func MustParseBucketRequiredTypedLabels_FieldPath(rawField string) BucketRequiredTypedLabels_FieldPath {
  2014  	fp, err := ParseBucketRequiredTypedLabels_FieldPath(rawField)
  2015  	if err != nil {
  2016  		panic(err)
  2017  	}
  2018  	return fp
  2019  }
  2020  
  2021  type BucketRequiredTypedLabels_FieldTerminalPath struct {
  2022  	selector BucketRequiredTypedLabels_FieldPathSelector
  2023  }
  2024  
  2025  var _ BucketRequiredTypedLabels_FieldPath = (*BucketRequiredTypedLabels_FieldTerminalPath)(nil)
  2026  
  2027  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) Selector() BucketRequiredTypedLabels_FieldPathSelector {
  2028  	return fp.selector
  2029  }
  2030  
  2031  // String returns path representation in proto convention
  2032  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) String() string {
  2033  	return fp.selector.String()
  2034  }
  2035  
  2036  // JSONString returns path representation is JSON convention
  2037  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) JSONString() string {
  2038  	return strcase.ToLowerCamel(fp.String())
  2039  }
  2040  
  2041  // Get returns all values pointed by specific field from source Bucket_RequiredTypedLabels
  2042  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) Get(source *Bucket_RequiredTypedLabels) (values []interface{}) {
  2043  	if source != nil {
  2044  		switch fp.selector {
  2045  		case BucketRequiredTypedLabels_FieldPathSelectorTypes:
  2046  			for _, value := range source.GetTypes() {
  2047  				values = append(values, value)
  2048  			}
  2049  		case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2050  			if source.Labels != nil {
  2051  				values = append(values, source.Labels)
  2052  			}
  2053  		default:
  2054  			panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fp.selector))
  2055  		}
  2056  	}
  2057  	return
  2058  }
  2059  
  2060  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  2061  	return fp.Get(source.(*Bucket_RequiredTypedLabels))
  2062  }
  2063  
  2064  // GetSingle returns value pointed by specific field of from source Bucket_RequiredTypedLabels
  2065  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) GetSingle(source *Bucket_RequiredTypedLabels) (interface{}, bool) {
  2066  	switch fp.selector {
  2067  	case BucketRequiredTypedLabels_FieldPathSelectorTypes:
  2068  		res := source.GetTypes()
  2069  		return res, res != nil
  2070  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2071  		res := source.GetLabels()
  2072  		return res, res != nil
  2073  	default:
  2074  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fp.selector))
  2075  	}
  2076  }
  2077  
  2078  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2079  	return fp.GetSingle(source.(*Bucket_RequiredTypedLabels))
  2080  }
  2081  
  2082  // GetDefault returns a default value of the field type
  2083  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) GetDefault() interface{} {
  2084  	switch fp.selector {
  2085  	case BucketRequiredTypedLabels_FieldPathSelectorTypes:
  2086  		return ([]string)(nil)
  2087  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2088  		return (map[string]*Bucket_RequiredTypedLabels_Strings)(nil)
  2089  	default:
  2090  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fp.selector))
  2091  	}
  2092  }
  2093  
  2094  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) ClearValue(item *Bucket_RequiredTypedLabels) {
  2095  	if item != nil {
  2096  		switch fp.selector {
  2097  		case BucketRequiredTypedLabels_FieldPathSelectorTypes:
  2098  			item.Types = nil
  2099  		case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2100  			item.Labels = nil
  2101  		default:
  2102  			panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fp.selector))
  2103  		}
  2104  	}
  2105  }
  2106  
  2107  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  2108  	fp.ClearValue(item.(*Bucket_RequiredTypedLabels))
  2109  }
  2110  
  2111  // IsLeaf - whether field path is holds simple value
  2112  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) IsLeaf() bool {
  2113  	return fp.selector == BucketRequiredTypedLabels_FieldPathSelectorTypes
  2114  }
  2115  
  2116  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  2117  	return []gotenobject.FieldPath{fp}
  2118  }
  2119  
  2120  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) WithIValue(value interface{}) BucketRequiredTypedLabels_FieldPathValue {
  2121  	switch fp.selector {
  2122  	case BucketRequiredTypedLabels_FieldPathSelectorTypes:
  2123  		return &BucketRequiredTypedLabels_FieldTerminalPathValue{BucketRequiredTypedLabels_FieldTerminalPath: *fp, value: value.([]string)}
  2124  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2125  		return &BucketRequiredTypedLabels_FieldTerminalPathValue{BucketRequiredTypedLabels_FieldTerminalPath: *fp, value: value.(map[string]*Bucket_RequiredTypedLabels_Strings)}
  2126  	default:
  2127  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fp.selector))
  2128  	}
  2129  }
  2130  
  2131  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  2132  	return fp.WithIValue(value)
  2133  }
  2134  
  2135  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) WithIArrayOfValues(values interface{}) BucketRequiredTypedLabels_FieldPathArrayOfValues {
  2136  	fpaov := &BucketRequiredTypedLabels_FieldTerminalPathArrayOfValues{BucketRequiredTypedLabels_FieldTerminalPath: *fp}
  2137  	switch fp.selector {
  2138  	case BucketRequiredTypedLabels_FieldPathSelectorTypes:
  2139  		return &BucketRequiredTypedLabels_FieldTerminalPathArrayOfValues{BucketRequiredTypedLabels_FieldTerminalPath: *fp, values: values.([][]string)}
  2140  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2141  		return &BucketRequiredTypedLabels_FieldTerminalPathArrayOfValues{BucketRequiredTypedLabels_FieldTerminalPath: *fp, values: values.([]map[string]*Bucket_RequiredTypedLabels_Strings)}
  2142  	default:
  2143  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fp.selector))
  2144  	}
  2145  	return fpaov
  2146  }
  2147  
  2148  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  2149  	return fp.WithIArrayOfValues(values)
  2150  }
  2151  
  2152  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) WithIArrayItemValue(value interface{}) BucketRequiredTypedLabels_FieldPathArrayItemValue {
  2153  	switch fp.selector {
  2154  	case BucketRequiredTypedLabels_FieldPathSelectorTypes:
  2155  		return &BucketRequiredTypedLabels_FieldTerminalPathArrayItemValue{BucketRequiredTypedLabels_FieldTerminalPath: *fp, value: value.(string)}
  2156  	default:
  2157  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fp.selector))
  2158  	}
  2159  }
  2160  
  2161  func (fp *BucketRequiredTypedLabels_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  2162  	return fp.WithIArrayItemValue(value)
  2163  }
  2164  
  2165  // FieldPath for map type with additional Key information
  2166  type BucketRequiredTypedLabels_FieldPathMap struct {
  2167  	key      string
  2168  	selector BucketRequiredTypedLabels_FieldPathSelector
  2169  }
  2170  
  2171  var _ BucketRequiredTypedLabels_FieldPath = (*BucketRequiredTypedLabels_FieldPathMap)(nil)
  2172  
  2173  func (fpm *BucketRequiredTypedLabels_FieldPathMap) Selector() BucketRequiredTypedLabels_FieldPathSelector {
  2174  	return fpm.selector
  2175  }
  2176  
  2177  func (fpm *BucketRequiredTypedLabels_FieldPathMap) Key() string {
  2178  	return fpm.key
  2179  }
  2180  
  2181  // String returns path representation in proto convention
  2182  func (fpm *BucketRequiredTypedLabels_FieldPathMap) String() string {
  2183  	return fpm.selector.String() + "." + fpm.key
  2184  }
  2185  
  2186  // JSONString returns path representation is JSON convention. Note that map keys are not transformed
  2187  func (fpm *BucketRequiredTypedLabels_FieldPathMap) JSONString() string {
  2188  	return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key
  2189  }
  2190  
  2191  // Get returns all values pointed by selected field map key from source Bucket_RequiredTypedLabels
  2192  func (fpm *BucketRequiredTypedLabels_FieldPathMap) Get(source *Bucket_RequiredTypedLabels) (values []interface{}) {
  2193  	switch fpm.selector {
  2194  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2195  		if value, ok := source.GetLabels()[fpm.key]; ok {
  2196  			values = append(values, value)
  2197  		}
  2198  	default:
  2199  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fpm.selector))
  2200  	}
  2201  	return
  2202  }
  2203  
  2204  func (fpm *BucketRequiredTypedLabels_FieldPathMap) GetRaw(source proto.Message) []interface{} {
  2205  	return fpm.Get(source.(*Bucket_RequiredTypedLabels))
  2206  }
  2207  
  2208  // GetSingle returns value by selected field map key from source Bucket_RequiredTypedLabels
  2209  func (fpm *BucketRequiredTypedLabels_FieldPathMap) GetSingle(source *Bucket_RequiredTypedLabels) (interface{}, bool) {
  2210  	switch fpm.selector {
  2211  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2212  		res, ok := source.GetLabels()[fpm.key]
  2213  		return res, ok
  2214  	default:
  2215  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fpm.selector))
  2216  	}
  2217  }
  2218  
  2219  func (fpm *BucketRequiredTypedLabels_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2220  	return fpm.GetSingle(source.(*Bucket_RequiredTypedLabels))
  2221  }
  2222  
  2223  // GetDefault returns a default value of the field type
  2224  func (fpm *BucketRequiredTypedLabels_FieldPathMap) GetDefault() interface{} {
  2225  	switch fpm.selector {
  2226  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2227  		var v *Bucket_RequiredTypedLabels_Strings
  2228  		return v
  2229  	default:
  2230  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fpm.selector))
  2231  	}
  2232  }
  2233  
  2234  func (fpm *BucketRequiredTypedLabels_FieldPathMap) ClearValue(item *Bucket_RequiredTypedLabels) {
  2235  	if item != nil {
  2236  		switch fpm.selector {
  2237  		case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2238  			delete(item.Labels, fpm.key)
  2239  		default:
  2240  			panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fpm.selector))
  2241  		}
  2242  	}
  2243  }
  2244  
  2245  func (fpm *BucketRequiredTypedLabels_FieldPathMap) ClearValueRaw(item proto.Message) {
  2246  	fpm.ClearValue(item.(*Bucket_RequiredTypedLabels))
  2247  }
  2248  
  2249  // IsLeaf - whether field path is holds simple value
  2250  func (fpm *BucketRequiredTypedLabels_FieldPathMap) IsLeaf() bool {
  2251  	switch fpm.selector {
  2252  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2253  		return false
  2254  	default:
  2255  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fpm.selector))
  2256  	}
  2257  }
  2258  
  2259  func (fpm *BucketRequiredTypedLabels_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  2260  	return []gotenobject.FieldPath{fpm}
  2261  }
  2262  
  2263  func (fpm *BucketRequiredTypedLabels_FieldPathMap) WithIValue(value interface{}) BucketRequiredTypedLabels_FieldPathValue {
  2264  	switch fpm.selector {
  2265  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2266  		return &BucketRequiredTypedLabels_FieldPathMapValue{BucketRequiredTypedLabels_FieldPathMap: *fpm, value: value.(*Bucket_RequiredTypedLabels_Strings)}
  2267  	default:
  2268  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fpm.selector))
  2269  	}
  2270  }
  2271  
  2272  func (fpm *BucketRequiredTypedLabels_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  2273  	return fpm.WithIValue(value)
  2274  }
  2275  
  2276  func (fpm *BucketRequiredTypedLabels_FieldPathMap) WithIArrayOfValues(values interface{}) BucketRequiredTypedLabels_FieldPathArrayOfValues {
  2277  	switch fpm.selector {
  2278  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2279  		return &BucketRequiredTypedLabels_FieldPathMapArrayOfValues{BucketRequiredTypedLabels_FieldPathMap: *fpm, values: values.([]*Bucket_RequiredTypedLabels_Strings)}
  2280  	default:
  2281  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fpm.selector))
  2282  	}
  2283  }
  2284  
  2285  func (fpm *BucketRequiredTypedLabels_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  2286  	return fpm.WithIArrayOfValues(values)
  2287  }
  2288  
  2289  func (fpm *BucketRequiredTypedLabels_FieldPathMap) WithIArrayItemValue(value interface{}) BucketRequiredTypedLabels_FieldPathArrayItemValue {
  2290  	panic("Cannot create array item value from map fieldpath")
  2291  }
  2292  
  2293  func (fpm *BucketRequiredTypedLabels_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  2294  	return fpm.WithIArrayItemValue(value)
  2295  }
  2296  
  2297  // BucketRequiredTypedLabels_FieldPathValue allows storing values for RequiredTypedLabels fields according to their type
  2298  type BucketRequiredTypedLabels_FieldPathValue interface {
  2299  	BucketRequiredTypedLabels_FieldPath
  2300  	gotenobject.FieldPathValue
  2301  	SetTo(target **Bucket_RequiredTypedLabels)
  2302  	CompareWith(*Bucket_RequiredTypedLabels) (cmp int, comparable bool)
  2303  }
  2304  
  2305  func ParseBucketRequiredTypedLabels_FieldPathValue(pathStr, valueStr string) (BucketRequiredTypedLabels_FieldPathValue, error) {
  2306  	fp, err := ParseBucketRequiredTypedLabels_FieldPath(pathStr)
  2307  	if err != nil {
  2308  		return nil, err
  2309  	}
  2310  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  2311  	if err != nil {
  2312  		return nil, status.Errorf(codes.InvalidArgument, "error parsing RequiredTypedLabels field path value from %s: %v", valueStr, err)
  2313  	}
  2314  	return fpv.(BucketRequiredTypedLabels_FieldPathValue), nil
  2315  }
  2316  
  2317  func MustParseBucketRequiredTypedLabels_FieldPathValue(pathStr, valueStr string) BucketRequiredTypedLabels_FieldPathValue {
  2318  	fpv, err := ParseBucketRequiredTypedLabels_FieldPathValue(pathStr, valueStr)
  2319  	if err != nil {
  2320  		panic(err)
  2321  	}
  2322  	return fpv
  2323  }
  2324  
  2325  type BucketRequiredTypedLabels_FieldTerminalPathValue struct {
  2326  	BucketRequiredTypedLabels_FieldTerminalPath
  2327  	value interface{}
  2328  }
  2329  
  2330  var _ BucketRequiredTypedLabels_FieldPathValue = (*BucketRequiredTypedLabels_FieldTerminalPathValue)(nil)
  2331  
  2332  // GetRawValue returns raw value stored under selected path for 'RequiredTypedLabels' as interface{}
  2333  func (fpv *BucketRequiredTypedLabels_FieldTerminalPathValue) GetRawValue() interface{} {
  2334  	return fpv.value
  2335  }
  2336  func (fpv *BucketRequiredTypedLabels_FieldTerminalPathValue) AsTypesValue() ([]string, bool) {
  2337  	res, ok := fpv.value.([]string)
  2338  	return res, ok
  2339  }
  2340  func (fpv *BucketRequiredTypedLabels_FieldTerminalPathValue) AsLabelsValue() (map[string]*Bucket_RequiredTypedLabels_Strings, bool) {
  2341  	res, ok := fpv.value.(map[string]*Bucket_RequiredTypedLabels_Strings)
  2342  	return res, ok
  2343  }
  2344  
  2345  // SetTo stores value for selected field for object RequiredTypedLabels
  2346  func (fpv *BucketRequiredTypedLabels_FieldTerminalPathValue) SetTo(target **Bucket_RequiredTypedLabels) {
  2347  	if *target == nil {
  2348  		*target = new(Bucket_RequiredTypedLabels)
  2349  	}
  2350  	switch fpv.selector {
  2351  	case BucketRequiredTypedLabels_FieldPathSelectorTypes:
  2352  		(*target).Types = fpv.value.([]string)
  2353  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2354  		(*target).Labels = fpv.value.(map[string]*Bucket_RequiredTypedLabels_Strings)
  2355  	default:
  2356  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fpv.selector))
  2357  	}
  2358  }
  2359  
  2360  func (fpv *BucketRequiredTypedLabels_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  2361  	typedObject := target.(*Bucket_RequiredTypedLabels)
  2362  	fpv.SetTo(&typedObject)
  2363  }
  2364  
  2365  // CompareWith compares value in the 'BucketRequiredTypedLabels_FieldTerminalPathValue' with the value under path in 'Bucket_RequiredTypedLabels'.
  2366  func (fpv *BucketRequiredTypedLabels_FieldTerminalPathValue) CompareWith(source *Bucket_RequiredTypedLabels) (int, bool) {
  2367  	switch fpv.selector {
  2368  	case BucketRequiredTypedLabels_FieldPathSelectorTypes:
  2369  		return 0, false
  2370  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2371  		return 0, false
  2372  	default:
  2373  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fpv.selector))
  2374  	}
  2375  }
  2376  
  2377  func (fpv *BucketRequiredTypedLabels_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2378  	return fpv.CompareWith(source.(*Bucket_RequiredTypedLabels))
  2379  }
  2380  
  2381  type BucketRequiredTypedLabels_FieldPathMapValue struct {
  2382  	BucketRequiredTypedLabels_FieldPathMap
  2383  	value interface{}
  2384  }
  2385  
  2386  var _ BucketRequiredTypedLabels_FieldPathValue = (*BucketRequiredTypedLabels_FieldPathMapValue)(nil)
  2387  
  2388  // GetValue returns value stored under selected field in RequiredTypedLabels as interface{}
  2389  func (fpmv *BucketRequiredTypedLabels_FieldPathMapValue) GetRawValue() interface{} {
  2390  	return fpmv.value
  2391  }
  2392  func (fpmv *BucketRequiredTypedLabels_FieldPathMapValue) AsLabelsElementValue() (*Bucket_RequiredTypedLabels_Strings, bool) {
  2393  	res, ok := fpmv.value.(*Bucket_RequiredTypedLabels_Strings)
  2394  	return res, ok
  2395  }
  2396  
  2397  // SetTo stores value for selected field in RequiredTypedLabels
  2398  func (fpmv *BucketRequiredTypedLabels_FieldPathMapValue) SetTo(target **Bucket_RequiredTypedLabels) {
  2399  	if *target == nil {
  2400  		*target = new(Bucket_RequiredTypedLabels)
  2401  	}
  2402  	switch fpmv.selector {
  2403  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2404  		if (*target).Labels == nil {
  2405  			(*target).Labels = make(map[string]*Bucket_RequiredTypedLabels_Strings)
  2406  		}
  2407  		(*target).Labels[fpmv.key] = fpmv.value.(*Bucket_RequiredTypedLabels_Strings)
  2408  	default:
  2409  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fpmv.selector))
  2410  	}
  2411  }
  2412  
  2413  func (fpmv *BucketRequiredTypedLabels_FieldPathMapValue) SetToRaw(target proto.Message) {
  2414  	typedObject := target.(*Bucket_RequiredTypedLabels)
  2415  	fpmv.SetTo(&typedObject)
  2416  }
  2417  
  2418  // CompareWith compares value in the 'BucketRequiredTypedLabels_FieldPathMapValue' with the value under path in 'Bucket_RequiredTypedLabels'.
  2419  func (fpmv *BucketRequiredTypedLabels_FieldPathMapValue) CompareWith(source *Bucket_RequiredTypedLabels) (int, bool) {
  2420  	switch fpmv.selector {
  2421  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2422  		return 0, false
  2423  	default:
  2424  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels: %d", fpmv.selector))
  2425  	}
  2426  }
  2427  
  2428  func (fpmv *BucketRequiredTypedLabels_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) {
  2429  	return fpmv.CompareWith(source.(*Bucket_RequiredTypedLabels))
  2430  }
  2431  
  2432  // BucketRequiredTypedLabels_FieldPathArrayItemValue allows storing single item in Path-specific values for RequiredTypedLabels according to their type
  2433  // Present only for array (repeated) types.
  2434  type BucketRequiredTypedLabels_FieldPathArrayItemValue interface {
  2435  	gotenobject.FieldPathArrayItemValue
  2436  	BucketRequiredTypedLabels_FieldPath
  2437  	ContainsValue(*Bucket_RequiredTypedLabels) bool
  2438  }
  2439  
  2440  // ParseBucketRequiredTypedLabels_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  2441  func ParseBucketRequiredTypedLabels_FieldPathArrayItemValue(pathStr, valueStr string) (BucketRequiredTypedLabels_FieldPathArrayItemValue, error) {
  2442  	fp, err := ParseBucketRequiredTypedLabels_FieldPath(pathStr)
  2443  	if err != nil {
  2444  		return nil, err
  2445  	}
  2446  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  2447  	if err != nil {
  2448  		return nil, status.Errorf(codes.InvalidArgument, "error parsing RequiredTypedLabels field path array item value from %s: %v", valueStr, err)
  2449  	}
  2450  	return fpaiv.(BucketRequiredTypedLabels_FieldPathArrayItemValue), nil
  2451  }
  2452  
  2453  func MustParseBucketRequiredTypedLabels_FieldPathArrayItemValue(pathStr, valueStr string) BucketRequiredTypedLabels_FieldPathArrayItemValue {
  2454  	fpaiv, err := ParseBucketRequiredTypedLabels_FieldPathArrayItemValue(pathStr, valueStr)
  2455  	if err != nil {
  2456  		panic(err)
  2457  	}
  2458  	return fpaiv
  2459  }
  2460  
  2461  type BucketRequiredTypedLabels_FieldTerminalPathArrayItemValue struct {
  2462  	BucketRequiredTypedLabels_FieldTerminalPath
  2463  	value interface{}
  2464  }
  2465  
  2466  var _ BucketRequiredTypedLabels_FieldPathArrayItemValue = (*BucketRequiredTypedLabels_FieldTerminalPathArrayItemValue)(nil)
  2467  
  2468  // GetRawValue returns stored element value for array in object Bucket_RequiredTypedLabels as interface{}
  2469  func (fpaiv *BucketRequiredTypedLabels_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  2470  	return fpaiv.value
  2471  }
  2472  func (fpaiv *BucketRequiredTypedLabels_FieldTerminalPathArrayItemValue) AsTypesItemValue() (string, bool) {
  2473  	res, ok := fpaiv.value.(string)
  2474  	return res, ok
  2475  }
  2476  
  2477  func (fpaiv *BucketRequiredTypedLabels_FieldTerminalPathArrayItemValue) GetSingle(source *Bucket_RequiredTypedLabels) (interface{}, bool) {
  2478  	return nil, false
  2479  }
  2480  
  2481  func (fpaiv *BucketRequiredTypedLabels_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2482  	return fpaiv.GetSingle(source.(*Bucket_RequiredTypedLabels))
  2483  }
  2484  
  2485  // Contains returns a boolean indicating if value that is being held is present in given 'RequiredTypedLabels'
  2486  func (fpaiv *BucketRequiredTypedLabels_FieldTerminalPathArrayItemValue) ContainsValue(source *Bucket_RequiredTypedLabels) bool {
  2487  	slice := fpaiv.BucketRequiredTypedLabels_FieldTerminalPath.Get(source)
  2488  	for _, v := range slice {
  2489  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  2490  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  2491  				return true
  2492  			}
  2493  		} else if reflect.DeepEqual(v, fpaiv.value) {
  2494  			return true
  2495  		}
  2496  	}
  2497  	return false
  2498  }
  2499  
  2500  // BucketRequiredTypedLabels_FieldPathArrayOfValues allows storing slice of values for RequiredTypedLabels fields according to their type
  2501  type BucketRequiredTypedLabels_FieldPathArrayOfValues interface {
  2502  	gotenobject.FieldPathArrayOfValues
  2503  	BucketRequiredTypedLabels_FieldPath
  2504  }
  2505  
  2506  func ParseBucketRequiredTypedLabels_FieldPathArrayOfValues(pathStr, valuesStr string) (BucketRequiredTypedLabels_FieldPathArrayOfValues, error) {
  2507  	fp, err := ParseBucketRequiredTypedLabels_FieldPath(pathStr)
  2508  	if err != nil {
  2509  		return nil, err
  2510  	}
  2511  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  2512  	if err != nil {
  2513  		return nil, status.Errorf(codes.InvalidArgument, "error parsing RequiredTypedLabels field path array of values from %s: %v", valuesStr, err)
  2514  	}
  2515  	return fpaov.(BucketRequiredTypedLabels_FieldPathArrayOfValues), nil
  2516  }
  2517  
  2518  func MustParseBucketRequiredTypedLabels_FieldPathArrayOfValues(pathStr, valuesStr string) BucketRequiredTypedLabels_FieldPathArrayOfValues {
  2519  	fpaov, err := ParseBucketRequiredTypedLabels_FieldPathArrayOfValues(pathStr, valuesStr)
  2520  	if err != nil {
  2521  		panic(err)
  2522  	}
  2523  	return fpaov
  2524  }
  2525  
  2526  type BucketRequiredTypedLabels_FieldTerminalPathArrayOfValues struct {
  2527  	BucketRequiredTypedLabels_FieldTerminalPath
  2528  	values interface{}
  2529  }
  2530  
  2531  var _ BucketRequiredTypedLabels_FieldPathArrayOfValues = (*BucketRequiredTypedLabels_FieldTerminalPathArrayOfValues)(nil)
  2532  
  2533  func (fpaov *BucketRequiredTypedLabels_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  2534  	switch fpaov.selector {
  2535  	case BucketRequiredTypedLabels_FieldPathSelectorTypes:
  2536  		for _, v := range fpaov.values.([][]string) {
  2537  			values = append(values, v)
  2538  		}
  2539  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2540  		for _, v := range fpaov.values.([]map[string]*Bucket_RequiredTypedLabels_Strings) {
  2541  			values = append(values, v)
  2542  		}
  2543  	}
  2544  	return
  2545  }
  2546  func (fpaov *BucketRequiredTypedLabels_FieldTerminalPathArrayOfValues) AsTypesArrayOfValues() ([][]string, bool) {
  2547  	res, ok := fpaov.values.([][]string)
  2548  	return res, ok
  2549  }
  2550  func (fpaov *BucketRequiredTypedLabels_FieldTerminalPathArrayOfValues) AsLabelsArrayOfValues() ([]map[string]*Bucket_RequiredTypedLabels_Strings, bool) {
  2551  	res, ok := fpaov.values.([]map[string]*Bucket_RequiredTypedLabels_Strings)
  2552  	return res, ok
  2553  }
  2554  
  2555  type BucketRequiredTypedLabels_FieldPathMapArrayOfValues struct {
  2556  	BucketRequiredTypedLabels_FieldPathMap
  2557  	values interface{}
  2558  }
  2559  
  2560  var _ BucketRequiredTypedLabels_FieldPathArrayOfValues = (*BucketRequiredTypedLabels_FieldPathMapArrayOfValues)(nil)
  2561  
  2562  func (fpmaov *BucketRequiredTypedLabels_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) {
  2563  	switch fpmaov.selector {
  2564  	case BucketRequiredTypedLabels_FieldPathSelectorLabels:
  2565  		for _, v := range fpmaov.values.([]*Bucket_RequiredTypedLabels_Strings) {
  2566  			values = append(values, v)
  2567  		}
  2568  	}
  2569  	return
  2570  }
  2571  func (fpmaov *BucketRequiredTypedLabels_FieldPathMapArrayOfValues) AsLabelsArrayOfElementValues() ([]*Bucket_RequiredTypedLabels_Strings, bool) {
  2572  	res, ok := fpmaov.values.([]*Bucket_RequiredTypedLabels_Strings)
  2573  	return res, ok
  2574  }
  2575  
  2576  // FieldPath provides implementation to handle
  2577  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  2578  type BucketRequiredTypedLabelsStrings_FieldPath interface {
  2579  	gotenobject.FieldPath
  2580  	Selector() BucketRequiredTypedLabelsStrings_FieldPathSelector
  2581  	Get(source *Bucket_RequiredTypedLabels_Strings) []interface{}
  2582  	GetSingle(source *Bucket_RequiredTypedLabels_Strings) (interface{}, bool)
  2583  	ClearValue(item *Bucket_RequiredTypedLabels_Strings)
  2584  
  2585  	// Those methods build corresponding BucketRequiredTypedLabelsStrings_FieldPathValue
  2586  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  2587  	WithIValue(value interface{}) BucketRequiredTypedLabelsStrings_FieldPathValue
  2588  	WithIArrayOfValues(values interface{}) BucketRequiredTypedLabelsStrings_FieldPathArrayOfValues
  2589  	WithIArrayItemValue(value interface{}) BucketRequiredTypedLabelsStrings_FieldPathArrayItemValue
  2590  }
  2591  
  2592  type BucketRequiredTypedLabelsStrings_FieldPathSelector int32
  2593  
  2594  const (
  2595  	BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings BucketRequiredTypedLabelsStrings_FieldPathSelector = 0
  2596  )
  2597  
  2598  func (s BucketRequiredTypedLabelsStrings_FieldPathSelector) String() string {
  2599  	switch s {
  2600  	case BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings:
  2601  		return "strings"
  2602  	default:
  2603  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels_Strings: %d", s))
  2604  	}
  2605  }
  2606  
  2607  func BuildBucketRequiredTypedLabelsStrings_FieldPath(fp gotenobject.RawFieldPath) (BucketRequiredTypedLabelsStrings_FieldPath, error) {
  2608  	if len(fp) == 0 {
  2609  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Bucket_RequiredTypedLabels_Strings")
  2610  	}
  2611  	if len(fp) == 1 {
  2612  		switch fp[0] {
  2613  		case "strings":
  2614  			return &BucketRequiredTypedLabelsStrings_FieldTerminalPath{selector: BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings}, nil
  2615  		}
  2616  	}
  2617  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Bucket_RequiredTypedLabels_Strings", fp)
  2618  }
  2619  
  2620  func ParseBucketRequiredTypedLabelsStrings_FieldPath(rawField string) (BucketRequiredTypedLabelsStrings_FieldPath, error) {
  2621  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  2622  	if err != nil {
  2623  		return nil, err
  2624  	}
  2625  	return BuildBucketRequiredTypedLabelsStrings_FieldPath(fp)
  2626  }
  2627  
  2628  func MustParseBucketRequiredTypedLabelsStrings_FieldPath(rawField string) BucketRequiredTypedLabelsStrings_FieldPath {
  2629  	fp, err := ParseBucketRequiredTypedLabelsStrings_FieldPath(rawField)
  2630  	if err != nil {
  2631  		panic(err)
  2632  	}
  2633  	return fp
  2634  }
  2635  
  2636  type BucketRequiredTypedLabelsStrings_FieldTerminalPath struct {
  2637  	selector BucketRequiredTypedLabelsStrings_FieldPathSelector
  2638  }
  2639  
  2640  var _ BucketRequiredTypedLabelsStrings_FieldPath = (*BucketRequiredTypedLabelsStrings_FieldTerminalPath)(nil)
  2641  
  2642  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) Selector() BucketRequiredTypedLabelsStrings_FieldPathSelector {
  2643  	return fp.selector
  2644  }
  2645  
  2646  // String returns path representation in proto convention
  2647  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) String() string {
  2648  	return fp.selector.String()
  2649  }
  2650  
  2651  // JSONString returns path representation is JSON convention
  2652  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) JSONString() string {
  2653  	return strcase.ToLowerCamel(fp.String())
  2654  }
  2655  
  2656  // Get returns all values pointed by specific field from source Bucket_RequiredTypedLabels_Strings
  2657  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) Get(source *Bucket_RequiredTypedLabels_Strings) (values []interface{}) {
  2658  	if source != nil {
  2659  		switch fp.selector {
  2660  		case BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings:
  2661  			for _, value := range source.GetStrings() {
  2662  				values = append(values, value)
  2663  			}
  2664  		default:
  2665  			panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels_Strings: %d", fp.selector))
  2666  		}
  2667  	}
  2668  	return
  2669  }
  2670  
  2671  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  2672  	return fp.Get(source.(*Bucket_RequiredTypedLabels_Strings))
  2673  }
  2674  
  2675  // GetSingle returns value pointed by specific field of from source Bucket_RequiredTypedLabels_Strings
  2676  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) GetSingle(source *Bucket_RequiredTypedLabels_Strings) (interface{}, bool) {
  2677  	switch fp.selector {
  2678  	case BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings:
  2679  		res := source.GetStrings()
  2680  		return res, res != nil
  2681  	default:
  2682  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels_Strings: %d", fp.selector))
  2683  	}
  2684  }
  2685  
  2686  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2687  	return fp.GetSingle(source.(*Bucket_RequiredTypedLabels_Strings))
  2688  }
  2689  
  2690  // GetDefault returns a default value of the field type
  2691  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) GetDefault() interface{} {
  2692  	switch fp.selector {
  2693  	case BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings:
  2694  		return ([]string)(nil)
  2695  	default:
  2696  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels_Strings: %d", fp.selector))
  2697  	}
  2698  }
  2699  
  2700  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) ClearValue(item *Bucket_RequiredTypedLabels_Strings) {
  2701  	if item != nil {
  2702  		switch fp.selector {
  2703  		case BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings:
  2704  			item.Strings = nil
  2705  		default:
  2706  			panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels_Strings: %d", fp.selector))
  2707  		}
  2708  	}
  2709  }
  2710  
  2711  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  2712  	fp.ClearValue(item.(*Bucket_RequiredTypedLabels_Strings))
  2713  }
  2714  
  2715  // IsLeaf - whether field path is holds simple value
  2716  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) IsLeaf() bool {
  2717  	return fp.selector == BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings
  2718  }
  2719  
  2720  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  2721  	return []gotenobject.FieldPath{fp}
  2722  }
  2723  
  2724  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) WithIValue(value interface{}) BucketRequiredTypedLabelsStrings_FieldPathValue {
  2725  	switch fp.selector {
  2726  	case BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings:
  2727  		return &BucketRequiredTypedLabelsStrings_FieldTerminalPathValue{BucketRequiredTypedLabelsStrings_FieldTerminalPath: *fp, value: value.([]string)}
  2728  	default:
  2729  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels_Strings: %d", fp.selector))
  2730  	}
  2731  }
  2732  
  2733  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  2734  	return fp.WithIValue(value)
  2735  }
  2736  
  2737  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) WithIArrayOfValues(values interface{}) BucketRequiredTypedLabelsStrings_FieldPathArrayOfValues {
  2738  	fpaov := &BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayOfValues{BucketRequiredTypedLabelsStrings_FieldTerminalPath: *fp}
  2739  	switch fp.selector {
  2740  	case BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings:
  2741  		return &BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayOfValues{BucketRequiredTypedLabelsStrings_FieldTerminalPath: *fp, values: values.([][]string)}
  2742  	default:
  2743  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels_Strings: %d", fp.selector))
  2744  	}
  2745  	return fpaov
  2746  }
  2747  
  2748  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  2749  	return fp.WithIArrayOfValues(values)
  2750  }
  2751  
  2752  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) WithIArrayItemValue(value interface{}) BucketRequiredTypedLabelsStrings_FieldPathArrayItemValue {
  2753  	switch fp.selector {
  2754  	case BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings:
  2755  		return &BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayItemValue{BucketRequiredTypedLabelsStrings_FieldTerminalPath: *fp, value: value.(string)}
  2756  	default:
  2757  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels_Strings: %d", fp.selector))
  2758  	}
  2759  }
  2760  
  2761  func (fp *BucketRequiredTypedLabelsStrings_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  2762  	return fp.WithIArrayItemValue(value)
  2763  }
  2764  
  2765  // BucketRequiredTypedLabelsStrings_FieldPathValue allows storing values for Strings fields according to their type
  2766  type BucketRequiredTypedLabelsStrings_FieldPathValue interface {
  2767  	BucketRequiredTypedLabelsStrings_FieldPath
  2768  	gotenobject.FieldPathValue
  2769  	SetTo(target **Bucket_RequiredTypedLabels_Strings)
  2770  	CompareWith(*Bucket_RequiredTypedLabels_Strings) (cmp int, comparable bool)
  2771  }
  2772  
  2773  func ParseBucketRequiredTypedLabelsStrings_FieldPathValue(pathStr, valueStr string) (BucketRequiredTypedLabelsStrings_FieldPathValue, error) {
  2774  	fp, err := ParseBucketRequiredTypedLabelsStrings_FieldPath(pathStr)
  2775  	if err != nil {
  2776  		return nil, err
  2777  	}
  2778  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  2779  	if err != nil {
  2780  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Strings field path value from %s: %v", valueStr, err)
  2781  	}
  2782  	return fpv.(BucketRequiredTypedLabelsStrings_FieldPathValue), nil
  2783  }
  2784  
  2785  func MustParseBucketRequiredTypedLabelsStrings_FieldPathValue(pathStr, valueStr string) BucketRequiredTypedLabelsStrings_FieldPathValue {
  2786  	fpv, err := ParseBucketRequiredTypedLabelsStrings_FieldPathValue(pathStr, valueStr)
  2787  	if err != nil {
  2788  		panic(err)
  2789  	}
  2790  	return fpv
  2791  }
  2792  
  2793  type BucketRequiredTypedLabelsStrings_FieldTerminalPathValue struct {
  2794  	BucketRequiredTypedLabelsStrings_FieldTerminalPath
  2795  	value interface{}
  2796  }
  2797  
  2798  var _ BucketRequiredTypedLabelsStrings_FieldPathValue = (*BucketRequiredTypedLabelsStrings_FieldTerminalPathValue)(nil)
  2799  
  2800  // GetRawValue returns raw value stored under selected path for 'Strings' as interface{}
  2801  func (fpv *BucketRequiredTypedLabelsStrings_FieldTerminalPathValue) GetRawValue() interface{} {
  2802  	return fpv.value
  2803  }
  2804  func (fpv *BucketRequiredTypedLabelsStrings_FieldTerminalPathValue) AsStringsValue() ([]string, bool) {
  2805  	res, ok := fpv.value.([]string)
  2806  	return res, ok
  2807  }
  2808  
  2809  // SetTo stores value for selected field for object Strings
  2810  func (fpv *BucketRequiredTypedLabelsStrings_FieldTerminalPathValue) SetTo(target **Bucket_RequiredTypedLabels_Strings) {
  2811  	if *target == nil {
  2812  		*target = new(Bucket_RequiredTypedLabels_Strings)
  2813  	}
  2814  	switch fpv.selector {
  2815  	case BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings:
  2816  		(*target).Strings = fpv.value.([]string)
  2817  	default:
  2818  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels_Strings: %d", fpv.selector))
  2819  	}
  2820  }
  2821  
  2822  func (fpv *BucketRequiredTypedLabelsStrings_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  2823  	typedObject := target.(*Bucket_RequiredTypedLabels_Strings)
  2824  	fpv.SetTo(&typedObject)
  2825  }
  2826  
  2827  // CompareWith compares value in the 'BucketRequiredTypedLabelsStrings_FieldTerminalPathValue' with the value under path in 'Bucket_RequiredTypedLabels_Strings'.
  2828  func (fpv *BucketRequiredTypedLabelsStrings_FieldTerminalPathValue) CompareWith(source *Bucket_RequiredTypedLabels_Strings) (int, bool) {
  2829  	switch fpv.selector {
  2830  	case BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings:
  2831  		return 0, false
  2832  	default:
  2833  		panic(fmt.Sprintf("Invalid selector for Bucket_RequiredTypedLabels_Strings: %d", fpv.selector))
  2834  	}
  2835  }
  2836  
  2837  func (fpv *BucketRequiredTypedLabelsStrings_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2838  	return fpv.CompareWith(source.(*Bucket_RequiredTypedLabels_Strings))
  2839  }
  2840  
  2841  // BucketRequiredTypedLabelsStrings_FieldPathArrayItemValue allows storing single item in Path-specific values for Strings according to their type
  2842  // Present only for array (repeated) types.
  2843  type BucketRequiredTypedLabelsStrings_FieldPathArrayItemValue interface {
  2844  	gotenobject.FieldPathArrayItemValue
  2845  	BucketRequiredTypedLabelsStrings_FieldPath
  2846  	ContainsValue(*Bucket_RequiredTypedLabels_Strings) bool
  2847  }
  2848  
  2849  // ParseBucketRequiredTypedLabelsStrings_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  2850  func ParseBucketRequiredTypedLabelsStrings_FieldPathArrayItemValue(pathStr, valueStr string) (BucketRequiredTypedLabelsStrings_FieldPathArrayItemValue, error) {
  2851  	fp, err := ParseBucketRequiredTypedLabelsStrings_FieldPath(pathStr)
  2852  	if err != nil {
  2853  		return nil, err
  2854  	}
  2855  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  2856  	if err != nil {
  2857  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Strings field path array item value from %s: %v", valueStr, err)
  2858  	}
  2859  	return fpaiv.(BucketRequiredTypedLabelsStrings_FieldPathArrayItemValue), nil
  2860  }
  2861  
  2862  func MustParseBucketRequiredTypedLabelsStrings_FieldPathArrayItemValue(pathStr, valueStr string) BucketRequiredTypedLabelsStrings_FieldPathArrayItemValue {
  2863  	fpaiv, err := ParseBucketRequiredTypedLabelsStrings_FieldPathArrayItemValue(pathStr, valueStr)
  2864  	if err != nil {
  2865  		panic(err)
  2866  	}
  2867  	return fpaiv
  2868  }
  2869  
  2870  type BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayItemValue struct {
  2871  	BucketRequiredTypedLabelsStrings_FieldTerminalPath
  2872  	value interface{}
  2873  }
  2874  
  2875  var _ BucketRequiredTypedLabelsStrings_FieldPathArrayItemValue = (*BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayItemValue)(nil)
  2876  
  2877  // GetRawValue returns stored element value for array in object Bucket_RequiredTypedLabels_Strings as interface{}
  2878  func (fpaiv *BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  2879  	return fpaiv.value
  2880  }
  2881  func (fpaiv *BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayItemValue) AsStringsItemValue() (string, bool) {
  2882  	res, ok := fpaiv.value.(string)
  2883  	return res, ok
  2884  }
  2885  
  2886  func (fpaiv *BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayItemValue) GetSingle(source *Bucket_RequiredTypedLabels_Strings) (interface{}, bool) {
  2887  	return nil, false
  2888  }
  2889  
  2890  func (fpaiv *BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2891  	return fpaiv.GetSingle(source.(*Bucket_RequiredTypedLabels_Strings))
  2892  }
  2893  
  2894  // Contains returns a boolean indicating if value that is being held is present in given 'Strings'
  2895  func (fpaiv *BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayItemValue) ContainsValue(source *Bucket_RequiredTypedLabels_Strings) bool {
  2896  	slice := fpaiv.BucketRequiredTypedLabelsStrings_FieldTerminalPath.Get(source)
  2897  	for _, v := range slice {
  2898  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  2899  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  2900  				return true
  2901  			}
  2902  		} else if reflect.DeepEqual(v, fpaiv.value) {
  2903  			return true
  2904  		}
  2905  	}
  2906  	return false
  2907  }
  2908  
  2909  // BucketRequiredTypedLabelsStrings_FieldPathArrayOfValues allows storing slice of values for Strings fields according to their type
  2910  type BucketRequiredTypedLabelsStrings_FieldPathArrayOfValues interface {
  2911  	gotenobject.FieldPathArrayOfValues
  2912  	BucketRequiredTypedLabelsStrings_FieldPath
  2913  }
  2914  
  2915  func ParseBucketRequiredTypedLabelsStrings_FieldPathArrayOfValues(pathStr, valuesStr string) (BucketRequiredTypedLabelsStrings_FieldPathArrayOfValues, error) {
  2916  	fp, err := ParseBucketRequiredTypedLabelsStrings_FieldPath(pathStr)
  2917  	if err != nil {
  2918  		return nil, err
  2919  	}
  2920  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  2921  	if err != nil {
  2922  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Strings field path array of values from %s: %v", valuesStr, err)
  2923  	}
  2924  	return fpaov.(BucketRequiredTypedLabelsStrings_FieldPathArrayOfValues), nil
  2925  }
  2926  
  2927  func MustParseBucketRequiredTypedLabelsStrings_FieldPathArrayOfValues(pathStr, valuesStr string) BucketRequiredTypedLabelsStrings_FieldPathArrayOfValues {
  2928  	fpaov, err := ParseBucketRequiredTypedLabelsStrings_FieldPathArrayOfValues(pathStr, valuesStr)
  2929  	if err != nil {
  2930  		panic(err)
  2931  	}
  2932  	return fpaov
  2933  }
  2934  
  2935  type BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayOfValues struct {
  2936  	BucketRequiredTypedLabelsStrings_FieldTerminalPath
  2937  	values interface{}
  2938  }
  2939  
  2940  var _ BucketRequiredTypedLabelsStrings_FieldPathArrayOfValues = (*BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayOfValues)(nil)
  2941  
  2942  func (fpaov *BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  2943  	switch fpaov.selector {
  2944  	case BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings:
  2945  		for _, v := range fpaov.values.([][]string) {
  2946  			values = append(values, v)
  2947  		}
  2948  	}
  2949  	return
  2950  }
  2951  func (fpaov *BucketRequiredTypedLabelsStrings_FieldTerminalPathArrayOfValues) AsStringsArrayOfValues() ([][]string, bool) {
  2952  	res, ok := fpaov.values.([][]string)
  2953  	return res, ok
  2954  }