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

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