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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/logging/proto/v1alpha2/log.proto
     3  // DO NOT EDIT!!!
     4  
     5  package log
     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/v1alpha2/organization"
    27  	iam_project "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/project"
    28  	log_descriptor "github.com/cloudwan/edgelq-sdk/logging/resources/v1alpha2/log_descriptor"
    29  	structpb "google.golang.org/protobuf/types/known/structpb"
    30  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    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  	_ = &structpb.Struct{}
    57  	_ = &timestamppb.Timestamp{}
    58  )
    59  
    60  // FieldPath provides implementation to handle
    61  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    62  type Log_FieldPath interface {
    63  	gotenobject.FieldPath
    64  	Selector() Log_FieldPathSelector
    65  	Get(source *Log) []interface{}
    66  	GetSingle(source *Log) (interface{}, bool)
    67  	ClearValue(item *Log)
    68  
    69  	// Those methods build corresponding Log_FieldPathValue
    70  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    71  	WithIValue(value interface{}) Log_FieldPathValue
    72  	WithIArrayOfValues(values interface{}) Log_FieldPathArrayOfValues
    73  	WithIArrayItemValue(value interface{}) Log_FieldPathArrayItemValue
    74  }
    75  
    76  type Log_FieldPathSelector int32
    77  
    78  const (
    79  	Log_FieldPathSelectorName          Log_FieldPathSelector = 0
    80  	Log_FieldPathSelectorScope         Log_FieldPathSelector = 1
    81  	Log_FieldPathSelectorService       Log_FieldPathSelector = 2
    82  	Log_FieldPathSelectorRegion        Log_FieldPathSelector = 3
    83  	Log_FieldPathSelectorVersion       Log_FieldPathSelector = 4
    84  	Log_FieldPathSelectorLogDescriptor Log_FieldPathSelector = 5
    85  	Log_FieldPathSelectorLabels        Log_FieldPathSelector = 6
    86  	Log_FieldPathSelectorTime          Log_FieldPathSelector = 7
    87  	Log_FieldPathSelectorPayload       Log_FieldPathSelector = 8
    88  )
    89  
    90  func (s Log_FieldPathSelector) String() string {
    91  	switch s {
    92  	case Log_FieldPathSelectorName:
    93  		return "name"
    94  	case Log_FieldPathSelectorScope:
    95  		return "scope"
    96  	case Log_FieldPathSelectorService:
    97  		return "service"
    98  	case Log_FieldPathSelectorRegion:
    99  		return "region"
   100  	case Log_FieldPathSelectorVersion:
   101  		return "version"
   102  	case Log_FieldPathSelectorLogDescriptor:
   103  		return "log_descriptor"
   104  	case Log_FieldPathSelectorLabels:
   105  		return "labels"
   106  	case Log_FieldPathSelectorTime:
   107  		return "time"
   108  	case Log_FieldPathSelectorPayload:
   109  		return "payload"
   110  	default:
   111  		panic(fmt.Sprintf("Invalid selector for Log: %d", s))
   112  	}
   113  }
   114  
   115  func BuildLog_FieldPath(fp gotenobject.RawFieldPath) (Log_FieldPath, error) {
   116  	if len(fp) == 0 {
   117  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Log")
   118  	}
   119  	if len(fp) == 1 {
   120  		switch fp[0] {
   121  		case "name":
   122  			return &Log_FieldTerminalPath{selector: Log_FieldPathSelectorName}, nil
   123  		case "scope":
   124  			return &Log_FieldTerminalPath{selector: Log_FieldPathSelectorScope}, nil
   125  		case "service":
   126  			return &Log_FieldTerminalPath{selector: Log_FieldPathSelectorService}, nil
   127  		case "region":
   128  			return &Log_FieldTerminalPath{selector: Log_FieldPathSelectorRegion}, nil
   129  		case "version":
   130  			return &Log_FieldTerminalPath{selector: Log_FieldPathSelectorVersion}, nil
   131  		case "log_descriptor", "logDescriptor", "log-descriptor":
   132  			return &Log_FieldTerminalPath{selector: Log_FieldPathSelectorLogDescriptor}, nil
   133  		case "labels":
   134  			return &Log_FieldTerminalPath{selector: Log_FieldPathSelectorLabels}, nil
   135  		case "time":
   136  			return &Log_FieldTerminalPath{selector: Log_FieldPathSelectorTime}, nil
   137  		case "payload":
   138  			return &Log_FieldTerminalPath{selector: Log_FieldPathSelectorPayload}, nil
   139  		}
   140  	} else {
   141  		switch fp[0] {
   142  		case "labels":
   143  			if len(fp) > 2 {
   144  				return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object Log)", fp)
   145  			}
   146  			return &Log_FieldPathMap{selector: Log_FieldPathSelectorLabels, key: fp[1]}, nil
   147  		}
   148  	}
   149  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Log", fp)
   150  }
   151  
   152  func ParseLog_FieldPath(rawField string) (Log_FieldPath, error) {
   153  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   154  	if err != nil {
   155  		return nil, err
   156  	}
   157  	return BuildLog_FieldPath(fp)
   158  }
   159  
   160  func MustParseLog_FieldPath(rawField string) Log_FieldPath {
   161  	fp, err := ParseLog_FieldPath(rawField)
   162  	if err != nil {
   163  		panic(err)
   164  	}
   165  	return fp
   166  }
   167  
   168  type Log_FieldTerminalPath struct {
   169  	selector Log_FieldPathSelector
   170  }
   171  
   172  var _ Log_FieldPath = (*Log_FieldTerminalPath)(nil)
   173  
   174  func (fp *Log_FieldTerminalPath) Selector() Log_FieldPathSelector {
   175  	return fp.selector
   176  }
   177  
   178  // String returns path representation in proto convention
   179  func (fp *Log_FieldTerminalPath) String() string {
   180  	return fp.selector.String()
   181  }
   182  
   183  // JSONString returns path representation is JSON convention
   184  func (fp *Log_FieldTerminalPath) JSONString() string {
   185  	return strcase.ToLowerCamel(fp.String())
   186  }
   187  
   188  // Get returns all values pointed by specific field from source Log
   189  func (fp *Log_FieldTerminalPath) Get(source *Log) (values []interface{}) {
   190  	if source != nil {
   191  		switch fp.selector {
   192  		case Log_FieldPathSelectorName:
   193  			if source.Name != nil {
   194  				values = append(values, source.Name)
   195  			}
   196  		case Log_FieldPathSelectorScope:
   197  			values = append(values, source.Scope)
   198  		case Log_FieldPathSelectorService:
   199  			values = append(values, source.Service)
   200  		case Log_FieldPathSelectorRegion:
   201  			values = append(values, source.Region)
   202  		case Log_FieldPathSelectorVersion:
   203  			values = append(values, source.Version)
   204  		case Log_FieldPathSelectorLogDescriptor:
   205  			if source.LogDescriptor != nil {
   206  				values = append(values, source.LogDescriptor)
   207  			}
   208  		case Log_FieldPathSelectorLabels:
   209  			values = append(values, source.Labels)
   210  		case Log_FieldPathSelectorTime:
   211  			if source.Time != nil {
   212  				values = append(values, source.Time)
   213  			}
   214  		case Log_FieldPathSelectorPayload:
   215  			if source.Payload != nil {
   216  				values = append(values, source.Payload)
   217  			}
   218  		default:
   219  			panic(fmt.Sprintf("Invalid selector for Log: %d", fp.selector))
   220  		}
   221  	}
   222  	return
   223  }
   224  
   225  func (fp *Log_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   226  	return fp.Get(source.(*Log))
   227  }
   228  
   229  // GetSingle returns value pointed by specific field of from source Log
   230  func (fp *Log_FieldTerminalPath) GetSingle(source *Log) (interface{}, bool) {
   231  	switch fp.selector {
   232  	case Log_FieldPathSelectorName:
   233  		res := source.GetName()
   234  		return res, res != nil
   235  	case Log_FieldPathSelectorScope:
   236  		return source.GetScope(), source != nil
   237  	case Log_FieldPathSelectorService:
   238  		return source.GetService(), source != nil
   239  	case Log_FieldPathSelectorRegion:
   240  		return source.GetRegion(), source != nil
   241  	case Log_FieldPathSelectorVersion:
   242  		return source.GetVersion(), source != nil
   243  	case Log_FieldPathSelectorLogDescriptor:
   244  		res := source.GetLogDescriptor()
   245  		return res, res != nil
   246  	case Log_FieldPathSelectorLabels:
   247  		res := source.GetLabels()
   248  		return res, res != nil
   249  	case Log_FieldPathSelectorTime:
   250  		res := source.GetTime()
   251  		return res, res != nil
   252  	case Log_FieldPathSelectorPayload:
   253  		res := source.GetPayload()
   254  		return res, res != nil
   255  	default:
   256  		panic(fmt.Sprintf("Invalid selector for Log: %d", fp.selector))
   257  	}
   258  }
   259  
   260  func (fp *Log_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   261  	return fp.GetSingle(source.(*Log))
   262  }
   263  
   264  // GetDefault returns a default value of the field type
   265  func (fp *Log_FieldTerminalPath) GetDefault() interface{} {
   266  	switch fp.selector {
   267  	case Log_FieldPathSelectorName:
   268  		return (*Name)(nil)
   269  	case Log_FieldPathSelectorScope:
   270  		return ""
   271  	case Log_FieldPathSelectorService:
   272  		return ""
   273  	case Log_FieldPathSelectorRegion:
   274  		return ""
   275  	case Log_FieldPathSelectorVersion:
   276  		return ""
   277  	case Log_FieldPathSelectorLogDescriptor:
   278  		return (*log_descriptor.Reference)(nil)
   279  	case Log_FieldPathSelectorLabels:
   280  		return (map[string]string)(nil)
   281  	case Log_FieldPathSelectorTime:
   282  		return (*timestamppb.Timestamp)(nil)
   283  	case Log_FieldPathSelectorPayload:
   284  		return (*structpb.Struct)(nil)
   285  	default:
   286  		panic(fmt.Sprintf("Invalid selector for Log: %d", fp.selector))
   287  	}
   288  }
   289  
   290  func (fp *Log_FieldTerminalPath) ClearValue(item *Log) {
   291  	if item != nil {
   292  		switch fp.selector {
   293  		case Log_FieldPathSelectorName:
   294  			item.Name = nil
   295  		case Log_FieldPathSelectorScope:
   296  			item.Scope = ""
   297  		case Log_FieldPathSelectorService:
   298  			item.Service = ""
   299  		case Log_FieldPathSelectorRegion:
   300  			item.Region = ""
   301  		case Log_FieldPathSelectorVersion:
   302  			item.Version = ""
   303  		case Log_FieldPathSelectorLogDescriptor:
   304  			item.LogDescriptor = nil
   305  		case Log_FieldPathSelectorLabels:
   306  			item.Labels = nil
   307  		case Log_FieldPathSelectorTime:
   308  			item.Time = nil
   309  		case Log_FieldPathSelectorPayload:
   310  			item.Payload = nil
   311  		default:
   312  			panic(fmt.Sprintf("Invalid selector for Log: %d", fp.selector))
   313  		}
   314  	}
   315  }
   316  
   317  func (fp *Log_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   318  	fp.ClearValue(item.(*Log))
   319  }
   320  
   321  // IsLeaf - whether field path is holds simple value
   322  func (fp *Log_FieldTerminalPath) IsLeaf() bool {
   323  	return fp.selector == Log_FieldPathSelectorName ||
   324  		fp.selector == Log_FieldPathSelectorScope ||
   325  		fp.selector == Log_FieldPathSelectorService ||
   326  		fp.selector == Log_FieldPathSelectorRegion ||
   327  		fp.selector == Log_FieldPathSelectorVersion ||
   328  		fp.selector == Log_FieldPathSelectorLogDescriptor ||
   329  		fp.selector == Log_FieldPathSelectorLabels ||
   330  		fp.selector == Log_FieldPathSelectorTime ||
   331  		fp.selector == Log_FieldPathSelectorPayload
   332  }
   333  
   334  func (fp *Log_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   335  	return []gotenobject.FieldPath{fp}
   336  }
   337  
   338  func (fp *Log_FieldTerminalPath) WithIValue(value interface{}) Log_FieldPathValue {
   339  	switch fp.selector {
   340  	case Log_FieldPathSelectorName:
   341  		return &Log_FieldTerminalPathValue{Log_FieldTerminalPath: *fp, value: value.(*Name)}
   342  	case Log_FieldPathSelectorScope:
   343  		return &Log_FieldTerminalPathValue{Log_FieldTerminalPath: *fp, value: value.(string)}
   344  	case Log_FieldPathSelectorService:
   345  		return &Log_FieldTerminalPathValue{Log_FieldTerminalPath: *fp, value: value.(string)}
   346  	case Log_FieldPathSelectorRegion:
   347  		return &Log_FieldTerminalPathValue{Log_FieldTerminalPath: *fp, value: value.(string)}
   348  	case Log_FieldPathSelectorVersion:
   349  		return &Log_FieldTerminalPathValue{Log_FieldTerminalPath: *fp, value: value.(string)}
   350  	case Log_FieldPathSelectorLogDescriptor:
   351  		return &Log_FieldTerminalPathValue{Log_FieldTerminalPath: *fp, value: value.(*log_descriptor.Reference)}
   352  	case Log_FieldPathSelectorLabels:
   353  		return &Log_FieldTerminalPathValue{Log_FieldTerminalPath: *fp, value: value.(map[string]string)}
   354  	case Log_FieldPathSelectorTime:
   355  		return &Log_FieldTerminalPathValue{Log_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)}
   356  	case Log_FieldPathSelectorPayload:
   357  		return &Log_FieldTerminalPathValue{Log_FieldTerminalPath: *fp, value: value.(*structpb.Struct)}
   358  	default:
   359  		panic(fmt.Sprintf("Invalid selector for Log: %d", fp.selector))
   360  	}
   361  }
   362  
   363  func (fp *Log_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   364  	return fp.WithIValue(value)
   365  }
   366  
   367  func (fp *Log_FieldTerminalPath) WithIArrayOfValues(values interface{}) Log_FieldPathArrayOfValues {
   368  	fpaov := &Log_FieldTerminalPathArrayOfValues{Log_FieldTerminalPath: *fp}
   369  	switch fp.selector {
   370  	case Log_FieldPathSelectorName:
   371  		return &Log_FieldTerminalPathArrayOfValues{Log_FieldTerminalPath: *fp, values: values.([]*Name)}
   372  	case Log_FieldPathSelectorScope:
   373  		return &Log_FieldTerminalPathArrayOfValues{Log_FieldTerminalPath: *fp, values: values.([]string)}
   374  	case Log_FieldPathSelectorService:
   375  		return &Log_FieldTerminalPathArrayOfValues{Log_FieldTerminalPath: *fp, values: values.([]string)}
   376  	case Log_FieldPathSelectorRegion:
   377  		return &Log_FieldTerminalPathArrayOfValues{Log_FieldTerminalPath: *fp, values: values.([]string)}
   378  	case Log_FieldPathSelectorVersion:
   379  		return &Log_FieldTerminalPathArrayOfValues{Log_FieldTerminalPath: *fp, values: values.([]string)}
   380  	case Log_FieldPathSelectorLogDescriptor:
   381  		return &Log_FieldTerminalPathArrayOfValues{Log_FieldTerminalPath: *fp, values: values.([]*log_descriptor.Reference)}
   382  	case Log_FieldPathSelectorLabels:
   383  		return &Log_FieldTerminalPathArrayOfValues{Log_FieldTerminalPath: *fp, values: values.([]map[string]string)}
   384  	case Log_FieldPathSelectorTime:
   385  		return &Log_FieldTerminalPathArrayOfValues{Log_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)}
   386  	case Log_FieldPathSelectorPayload:
   387  		return &Log_FieldTerminalPathArrayOfValues{Log_FieldTerminalPath: *fp, values: values.([]*structpb.Struct)}
   388  	default:
   389  		panic(fmt.Sprintf("Invalid selector for Log: %d", fp.selector))
   390  	}
   391  	return fpaov
   392  }
   393  
   394  func (fp *Log_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   395  	return fp.WithIArrayOfValues(values)
   396  }
   397  
   398  func (fp *Log_FieldTerminalPath) WithIArrayItemValue(value interface{}) Log_FieldPathArrayItemValue {
   399  	switch fp.selector {
   400  	default:
   401  		panic(fmt.Sprintf("Invalid selector for Log: %d", fp.selector))
   402  	}
   403  }
   404  
   405  func (fp *Log_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   406  	return fp.WithIArrayItemValue(value)
   407  }
   408  
   409  // FieldPath for map type with additional Key information
   410  type Log_FieldPathMap struct {
   411  	key      string
   412  	selector Log_FieldPathSelector
   413  }
   414  
   415  var _ Log_FieldPath = (*Log_FieldPathMap)(nil)
   416  
   417  func (fpm *Log_FieldPathMap) Selector() Log_FieldPathSelector {
   418  	return fpm.selector
   419  }
   420  
   421  func (fpm *Log_FieldPathMap) Key() string {
   422  	return fpm.key
   423  }
   424  
   425  // String returns path representation in proto convention
   426  func (fpm *Log_FieldPathMap) String() string {
   427  	return fpm.selector.String() + "." + fpm.key
   428  }
   429  
   430  // JSONString returns path representation is JSON convention. Note that map keys are not transformed
   431  func (fpm *Log_FieldPathMap) JSONString() string {
   432  	return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key
   433  }
   434  
   435  // Get returns all values pointed by selected field map key from source Log
   436  func (fpm *Log_FieldPathMap) Get(source *Log) (values []interface{}) {
   437  	switch fpm.selector {
   438  	case Log_FieldPathSelectorLabels:
   439  		if value, ok := source.GetLabels()[fpm.key]; ok {
   440  			values = append(values, value)
   441  		}
   442  	default:
   443  		panic(fmt.Sprintf("Invalid selector for Log: %d", fpm.selector))
   444  	}
   445  	return
   446  }
   447  
   448  func (fpm *Log_FieldPathMap) GetRaw(source proto.Message) []interface{} {
   449  	return fpm.Get(source.(*Log))
   450  }
   451  
   452  // GetSingle returns value by selected field map key from source Log
   453  func (fpm *Log_FieldPathMap) GetSingle(source *Log) (interface{}, bool) {
   454  	switch fpm.selector {
   455  	case Log_FieldPathSelectorLabels:
   456  		res, ok := source.GetLabels()[fpm.key]
   457  		return res, ok
   458  	default:
   459  		panic(fmt.Sprintf("Invalid selector for Log: %d", fpm.selector))
   460  	}
   461  }
   462  
   463  func (fpm *Log_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) {
   464  	return fpm.GetSingle(source.(*Log))
   465  }
   466  
   467  // GetDefault returns a default value of the field type
   468  func (fpm *Log_FieldPathMap) GetDefault() interface{} {
   469  	switch fpm.selector {
   470  	case Log_FieldPathSelectorLabels:
   471  		var v string
   472  		return v
   473  	default:
   474  		panic(fmt.Sprintf("Invalid selector for Log: %d", fpm.selector))
   475  	}
   476  }
   477  
   478  func (fpm *Log_FieldPathMap) ClearValue(item *Log) {
   479  	if item != nil {
   480  		switch fpm.selector {
   481  		case Log_FieldPathSelectorLabels:
   482  			delete(item.Labels, fpm.key)
   483  		default:
   484  			panic(fmt.Sprintf("Invalid selector for Log: %d", fpm.selector))
   485  		}
   486  	}
   487  }
   488  
   489  func (fpm *Log_FieldPathMap) ClearValueRaw(item proto.Message) {
   490  	fpm.ClearValue(item.(*Log))
   491  }
   492  
   493  // IsLeaf - whether field path is holds simple value
   494  func (fpm *Log_FieldPathMap) IsLeaf() bool {
   495  	switch fpm.selector {
   496  	case Log_FieldPathSelectorLabels:
   497  		return true
   498  	default:
   499  		panic(fmt.Sprintf("Invalid selector for Log: %d", fpm.selector))
   500  	}
   501  }
   502  
   503  func (fpm *Log_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   504  	return []gotenobject.FieldPath{fpm}
   505  }
   506  
   507  func (fpm *Log_FieldPathMap) WithIValue(value interface{}) Log_FieldPathValue {
   508  	switch fpm.selector {
   509  	case Log_FieldPathSelectorLabels:
   510  		return &Log_FieldPathMapValue{Log_FieldPathMap: *fpm, value: value.(string)}
   511  	default:
   512  		panic(fmt.Sprintf("Invalid selector for Log: %d", fpm.selector))
   513  	}
   514  }
   515  
   516  func (fpm *Log_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   517  	return fpm.WithIValue(value)
   518  }
   519  
   520  func (fpm *Log_FieldPathMap) WithIArrayOfValues(values interface{}) Log_FieldPathArrayOfValues {
   521  	switch fpm.selector {
   522  	case Log_FieldPathSelectorLabels:
   523  		return &Log_FieldPathMapArrayOfValues{Log_FieldPathMap: *fpm, values: values.([]string)}
   524  	default:
   525  		panic(fmt.Sprintf("Invalid selector for Log: %d", fpm.selector))
   526  	}
   527  }
   528  
   529  func (fpm *Log_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   530  	return fpm.WithIArrayOfValues(values)
   531  }
   532  
   533  func (fpm *Log_FieldPathMap) WithIArrayItemValue(value interface{}) Log_FieldPathArrayItemValue {
   534  	panic("Cannot create array item value from map fieldpath")
   535  }
   536  
   537  func (fpm *Log_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   538  	return fpm.WithIArrayItemValue(value)
   539  }
   540  
   541  // Log_FieldPathValue allows storing values for Log fields according to their type
   542  type Log_FieldPathValue interface {
   543  	Log_FieldPath
   544  	gotenobject.FieldPathValue
   545  	SetTo(target **Log)
   546  	CompareWith(*Log) (cmp int, comparable bool)
   547  }
   548  
   549  func ParseLog_FieldPathValue(pathStr, valueStr string) (Log_FieldPathValue, error) {
   550  	fp, err := ParseLog_FieldPath(pathStr)
   551  	if err != nil {
   552  		return nil, err
   553  	}
   554  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   555  	if err != nil {
   556  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Log field path value from %s: %v", valueStr, err)
   557  	}
   558  	return fpv.(Log_FieldPathValue), nil
   559  }
   560  
   561  func MustParseLog_FieldPathValue(pathStr, valueStr string) Log_FieldPathValue {
   562  	fpv, err := ParseLog_FieldPathValue(pathStr, valueStr)
   563  	if err != nil {
   564  		panic(err)
   565  	}
   566  	return fpv
   567  }
   568  
   569  type Log_FieldTerminalPathValue struct {
   570  	Log_FieldTerminalPath
   571  	value interface{}
   572  }
   573  
   574  var _ Log_FieldPathValue = (*Log_FieldTerminalPathValue)(nil)
   575  
   576  // GetRawValue returns raw value stored under selected path for 'Log' as interface{}
   577  func (fpv *Log_FieldTerminalPathValue) GetRawValue() interface{} {
   578  	return fpv.value
   579  }
   580  func (fpv *Log_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   581  	res, ok := fpv.value.(*Name)
   582  	return res, ok
   583  }
   584  func (fpv *Log_FieldTerminalPathValue) AsScopeValue() (string, bool) {
   585  	res, ok := fpv.value.(string)
   586  	return res, ok
   587  }
   588  func (fpv *Log_FieldTerminalPathValue) AsServiceValue() (string, bool) {
   589  	res, ok := fpv.value.(string)
   590  	return res, ok
   591  }
   592  func (fpv *Log_FieldTerminalPathValue) AsRegionValue() (string, bool) {
   593  	res, ok := fpv.value.(string)
   594  	return res, ok
   595  }
   596  func (fpv *Log_FieldTerminalPathValue) AsVersionValue() (string, bool) {
   597  	res, ok := fpv.value.(string)
   598  	return res, ok
   599  }
   600  func (fpv *Log_FieldTerminalPathValue) AsLogDescriptorValue() (*log_descriptor.Reference, bool) {
   601  	res, ok := fpv.value.(*log_descriptor.Reference)
   602  	return res, ok
   603  }
   604  func (fpv *Log_FieldTerminalPathValue) AsLabelsValue() (map[string]string, bool) {
   605  	res, ok := fpv.value.(map[string]string)
   606  	return res, ok
   607  }
   608  func (fpv *Log_FieldTerminalPathValue) AsTimeValue() (*timestamppb.Timestamp, bool) {
   609  	res, ok := fpv.value.(*timestamppb.Timestamp)
   610  	return res, ok
   611  }
   612  func (fpv *Log_FieldTerminalPathValue) AsPayloadValue() (*structpb.Struct, bool) {
   613  	res, ok := fpv.value.(*structpb.Struct)
   614  	return res, ok
   615  }
   616  
   617  // SetTo stores value for selected field for object Log
   618  func (fpv *Log_FieldTerminalPathValue) SetTo(target **Log) {
   619  	if *target == nil {
   620  		*target = new(Log)
   621  	}
   622  	switch fpv.selector {
   623  	case Log_FieldPathSelectorName:
   624  		(*target).Name = fpv.value.(*Name)
   625  	case Log_FieldPathSelectorScope:
   626  		(*target).Scope = fpv.value.(string)
   627  	case Log_FieldPathSelectorService:
   628  		(*target).Service = fpv.value.(string)
   629  	case Log_FieldPathSelectorRegion:
   630  		(*target).Region = fpv.value.(string)
   631  	case Log_FieldPathSelectorVersion:
   632  		(*target).Version = fpv.value.(string)
   633  	case Log_FieldPathSelectorLogDescriptor:
   634  		(*target).LogDescriptor = fpv.value.(*log_descriptor.Reference)
   635  	case Log_FieldPathSelectorLabels:
   636  		(*target).Labels = fpv.value.(map[string]string)
   637  	case Log_FieldPathSelectorTime:
   638  		(*target).Time = fpv.value.(*timestamppb.Timestamp)
   639  	case Log_FieldPathSelectorPayload:
   640  		(*target).Payload = fpv.value.(*structpb.Struct)
   641  	default:
   642  		panic(fmt.Sprintf("Invalid selector for Log: %d", fpv.selector))
   643  	}
   644  }
   645  
   646  func (fpv *Log_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   647  	typedObject := target.(*Log)
   648  	fpv.SetTo(&typedObject)
   649  }
   650  
   651  // CompareWith compares value in the 'Log_FieldTerminalPathValue' with the value under path in 'Log'.
   652  func (fpv *Log_FieldTerminalPathValue) CompareWith(source *Log) (int, bool) {
   653  	switch fpv.selector {
   654  	case Log_FieldPathSelectorName:
   655  		leftValue := fpv.value.(*Name)
   656  		rightValue := source.GetName()
   657  		if leftValue == nil {
   658  			if rightValue != nil {
   659  				return -1, true
   660  			}
   661  			return 0, true
   662  		}
   663  		if rightValue == nil {
   664  			return 1, true
   665  		}
   666  		if leftValue.String() == rightValue.String() {
   667  			return 0, true
   668  		} else if leftValue.String() < rightValue.String() {
   669  			return -1, true
   670  		} else {
   671  			return 1, true
   672  		}
   673  	case Log_FieldPathSelectorScope:
   674  		leftValue := fpv.value.(string)
   675  		rightValue := source.GetScope()
   676  		if (leftValue) == (rightValue) {
   677  			return 0, true
   678  		} else if (leftValue) < (rightValue) {
   679  			return -1, true
   680  		} else {
   681  			return 1, true
   682  		}
   683  	case Log_FieldPathSelectorService:
   684  		leftValue := fpv.value.(string)
   685  		rightValue := source.GetService()
   686  		if (leftValue) == (rightValue) {
   687  			return 0, true
   688  		} else if (leftValue) < (rightValue) {
   689  			return -1, true
   690  		} else {
   691  			return 1, true
   692  		}
   693  	case Log_FieldPathSelectorRegion:
   694  		leftValue := fpv.value.(string)
   695  		rightValue := source.GetRegion()
   696  		if (leftValue) == (rightValue) {
   697  			return 0, true
   698  		} else if (leftValue) < (rightValue) {
   699  			return -1, true
   700  		} else {
   701  			return 1, true
   702  		}
   703  	case Log_FieldPathSelectorVersion:
   704  		leftValue := fpv.value.(string)
   705  		rightValue := source.GetVersion()
   706  		if (leftValue) == (rightValue) {
   707  			return 0, true
   708  		} else if (leftValue) < (rightValue) {
   709  			return -1, true
   710  		} else {
   711  			return 1, true
   712  		}
   713  	case Log_FieldPathSelectorLogDescriptor:
   714  		leftValue := fpv.value.(*log_descriptor.Reference)
   715  		rightValue := source.GetLogDescriptor()
   716  		if leftValue == nil {
   717  			if rightValue != nil {
   718  				return -1, true
   719  			}
   720  			return 0, true
   721  		}
   722  		if rightValue == nil {
   723  			return 1, true
   724  		}
   725  		if leftValue.String() == rightValue.String() {
   726  			return 0, true
   727  		} else if leftValue.String() < rightValue.String() {
   728  			return -1, true
   729  		} else {
   730  			return 1, true
   731  		}
   732  	case Log_FieldPathSelectorLabels:
   733  		return 0, false
   734  	case Log_FieldPathSelectorTime:
   735  		leftValue := fpv.value.(*timestamppb.Timestamp)
   736  		rightValue := source.GetTime()
   737  		if leftValue == nil {
   738  			if rightValue != nil {
   739  				return -1, true
   740  			}
   741  			return 0, true
   742  		}
   743  		if rightValue == nil {
   744  			return 1, true
   745  		}
   746  		if leftValue.AsTime().Equal(rightValue.AsTime()) {
   747  			return 0, true
   748  		} else if leftValue.AsTime().Before(rightValue.AsTime()) {
   749  			return -1, true
   750  		} else {
   751  			return 1, true
   752  		}
   753  	case Log_FieldPathSelectorPayload:
   754  		return 0, false
   755  	default:
   756  		panic(fmt.Sprintf("Invalid selector for Log: %d", fpv.selector))
   757  	}
   758  }
   759  
   760  func (fpv *Log_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   761  	return fpv.CompareWith(source.(*Log))
   762  }
   763  
   764  type Log_FieldPathMapValue struct {
   765  	Log_FieldPathMap
   766  	value interface{}
   767  }
   768  
   769  var _ Log_FieldPathValue = (*Log_FieldPathMapValue)(nil)
   770  
   771  // GetValue returns value stored under selected field in Log as interface{}
   772  func (fpmv *Log_FieldPathMapValue) GetRawValue() interface{} {
   773  	return fpmv.value
   774  }
   775  func (fpmv *Log_FieldPathMapValue) AsLabelsElementValue() (string, bool) {
   776  	res, ok := fpmv.value.(string)
   777  	return res, ok
   778  }
   779  
   780  // SetTo stores value for selected field in Log
   781  func (fpmv *Log_FieldPathMapValue) SetTo(target **Log) {
   782  	if *target == nil {
   783  		*target = new(Log)
   784  	}
   785  	switch fpmv.selector {
   786  	case Log_FieldPathSelectorLabels:
   787  		if (*target).Labels == nil {
   788  			(*target).Labels = make(map[string]string)
   789  		}
   790  		(*target).Labels[fpmv.key] = fpmv.value.(string)
   791  	default:
   792  		panic(fmt.Sprintf("Invalid selector for Log: %d", fpmv.selector))
   793  	}
   794  }
   795  
   796  func (fpmv *Log_FieldPathMapValue) SetToRaw(target proto.Message) {
   797  	typedObject := target.(*Log)
   798  	fpmv.SetTo(&typedObject)
   799  }
   800  
   801  // CompareWith compares value in the 'Log_FieldPathMapValue' with the value under path in 'Log'.
   802  func (fpmv *Log_FieldPathMapValue) CompareWith(source *Log) (int, bool) {
   803  	switch fpmv.selector {
   804  	case Log_FieldPathSelectorLabels:
   805  		leftValue := fpmv.value.(string)
   806  		rightValue := source.GetLabels()[fpmv.key]
   807  		if (leftValue) == (rightValue) {
   808  			return 0, true
   809  		} else if (leftValue) < (rightValue) {
   810  			return -1, true
   811  		} else {
   812  			return 1, true
   813  		}
   814  	default:
   815  		panic(fmt.Sprintf("Invalid selector for Log: %d", fpmv.selector))
   816  	}
   817  }
   818  
   819  func (fpmv *Log_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) {
   820  	return fpmv.CompareWith(source.(*Log))
   821  }
   822  
   823  // Log_FieldPathArrayItemValue allows storing single item in Path-specific values for Log according to their type
   824  // Present only for array (repeated) types.
   825  type Log_FieldPathArrayItemValue interface {
   826  	gotenobject.FieldPathArrayItemValue
   827  	Log_FieldPath
   828  	ContainsValue(*Log) bool
   829  }
   830  
   831  // ParseLog_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   832  func ParseLog_FieldPathArrayItemValue(pathStr, valueStr string) (Log_FieldPathArrayItemValue, error) {
   833  	fp, err := ParseLog_FieldPath(pathStr)
   834  	if err != nil {
   835  		return nil, err
   836  	}
   837  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   838  	if err != nil {
   839  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Log field path array item value from %s: %v", valueStr, err)
   840  	}
   841  	return fpaiv.(Log_FieldPathArrayItemValue), nil
   842  }
   843  
   844  func MustParseLog_FieldPathArrayItemValue(pathStr, valueStr string) Log_FieldPathArrayItemValue {
   845  	fpaiv, err := ParseLog_FieldPathArrayItemValue(pathStr, valueStr)
   846  	if err != nil {
   847  		panic(err)
   848  	}
   849  	return fpaiv
   850  }
   851  
   852  type Log_FieldTerminalPathArrayItemValue struct {
   853  	Log_FieldTerminalPath
   854  	value interface{}
   855  }
   856  
   857  var _ Log_FieldPathArrayItemValue = (*Log_FieldTerminalPathArrayItemValue)(nil)
   858  
   859  // GetRawValue returns stored element value for array in object Log as interface{}
   860  func (fpaiv *Log_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   861  	return fpaiv.value
   862  }
   863  
   864  func (fpaiv *Log_FieldTerminalPathArrayItemValue) GetSingle(source *Log) (interface{}, bool) {
   865  	return nil, false
   866  }
   867  
   868  func (fpaiv *Log_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   869  	return fpaiv.GetSingle(source.(*Log))
   870  }
   871  
   872  // Contains returns a boolean indicating if value that is being held is present in given 'Log'
   873  func (fpaiv *Log_FieldTerminalPathArrayItemValue) ContainsValue(source *Log) bool {
   874  	slice := fpaiv.Log_FieldTerminalPath.Get(source)
   875  	for _, v := range slice {
   876  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   877  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   878  				return true
   879  			}
   880  		} else if reflect.DeepEqual(v, fpaiv.value) {
   881  			return true
   882  		}
   883  	}
   884  	return false
   885  }
   886  
   887  // Log_FieldPathArrayOfValues allows storing slice of values for Log fields according to their type
   888  type Log_FieldPathArrayOfValues interface {
   889  	gotenobject.FieldPathArrayOfValues
   890  	Log_FieldPath
   891  }
   892  
   893  func ParseLog_FieldPathArrayOfValues(pathStr, valuesStr string) (Log_FieldPathArrayOfValues, error) {
   894  	fp, err := ParseLog_FieldPath(pathStr)
   895  	if err != nil {
   896  		return nil, err
   897  	}
   898  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   899  	if err != nil {
   900  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Log field path array of values from %s: %v", valuesStr, err)
   901  	}
   902  	return fpaov.(Log_FieldPathArrayOfValues), nil
   903  }
   904  
   905  func MustParseLog_FieldPathArrayOfValues(pathStr, valuesStr string) Log_FieldPathArrayOfValues {
   906  	fpaov, err := ParseLog_FieldPathArrayOfValues(pathStr, valuesStr)
   907  	if err != nil {
   908  		panic(err)
   909  	}
   910  	return fpaov
   911  }
   912  
   913  type Log_FieldTerminalPathArrayOfValues struct {
   914  	Log_FieldTerminalPath
   915  	values interface{}
   916  }
   917  
   918  var _ Log_FieldPathArrayOfValues = (*Log_FieldTerminalPathArrayOfValues)(nil)
   919  
   920  func (fpaov *Log_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   921  	switch fpaov.selector {
   922  	case Log_FieldPathSelectorName:
   923  		for _, v := range fpaov.values.([]*Name) {
   924  			values = append(values, v)
   925  		}
   926  	case Log_FieldPathSelectorScope:
   927  		for _, v := range fpaov.values.([]string) {
   928  			values = append(values, v)
   929  		}
   930  	case Log_FieldPathSelectorService:
   931  		for _, v := range fpaov.values.([]string) {
   932  			values = append(values, v)
   933  		}
   934  	case Log_FieldPathSelectorRegion:
   935  		for _, v := range fpaov.values.([]string) {
   936  			values = append(values, v)
   937  		}
   938  	case Log_FieldPathSelectorVersion:
   939  		for _, v := range fpaov.values.([]string) {
   940  			values = append(values, v)
   941  		}
   942  	case Log_FieldPathSelectorLogDescriptor:
   943  		for _, v := range fpaov.values.([]*log_descriptor.Reference) {
   944  			values = append(values, v)
   945  		}
   946  	case Log_FieldPathSelectorLabels:
   947  		for _, v := range fpaov.values.([]map[string]string) {
   948  			values = append(values, v)
   949  		}
   950  	case Log_FieldPathSelectorTime:
   951  		for _, v := range fpaov.values.([]*timestamppb.Timestamp) {
   952  			values = append(values, v)
   953  		}
   954  	case Log_FieldPathSelectorPayload:
   955  		for _, v := range fpaov.values.([]*structpb.Struct) {
   956  			values = append(values, v)
   957  		}
   958  	}
   959  	return
   960  }
   961  func (fpaov *Log_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
   962  	res, ok := fpaov.values.([]*Name)
   963  	return res, ok
   964  }
   965  func (fpaov *Log_FieldTerminalPathArrayOfValues) AsScopeArrayOfValues() ([]string, bool) {
   966  	res, ok := fpaov.values.([]string)
   967  	return res, ok
   968  }
   969  func (fpaov *Log_FieldTerminalPathArrayOfValues) AsServiceArrayOfValues() ([]string, bool) {
   970  	res, ok := fpaov.values.([]string)
   971  	return res, ok
   972  }
   973  func (fpaov *Log_FieldTerminalPathArrayOfValues) AsRegionArrayOfValues() ([]string, bool) {
   974  	res, ok := fpaov.values.([]string)
   975  	return res, ok
   976  }
   977  func (fpaov *Log_FieldTerminalPathArrayOfValues) AsVersionArrayOfValues() ([]string, bool) {
   978  	res, ok := fpaov.values.([]string)
   979  	return res, ok
   980  }
   981  func (fpaov *Log_FieldTerminalPathArrayOfValues) AsLogDescriptorArrayOfValues() ([]*log_descriptor.Reference, bool) {
   982  	res, ok := fpaov.values.([]*log_descriptor.Reference)
   983  	return res, ok
   984  }
   985  func (fpaov *Log_FieldTerminalPathArrayOfValues) AsLabelsArrayOfValues() ([]map[string]string, bool) {
   986  	res, ok := fpaov.values.([]map[string]string)
   987  	return res, ok
   988  }
   989  func (fpaov *Log_FieldTerminalPathArrayOfValues) AsTimeArrayOfValues() ([]*timestamppb.Timestamp, bool) {
   990  	res, ok := fpaov.values.([]*timestamppb.Timestamp)
   991  	return res, ok
   992  }
   993  func (fpaov *Log_FieldTerminalPathArrayOfValues) AsPayloadArrayOfValues() ([]*structpb.Struct, bool) {
   994  	res, ok := fpaov.values.([]*structpb.Struct)
   995  	return res, ok
   996  }
   997  
   998  type Log_FieldPathMapArrayOfValues struct {
   999  	Log_FieldPathMap
  1000  	values interface{}
  1001  }
  1002  
  1003  var _ Log_FieldPathArrayOfValues = (*Log_FieldPathMapArrayOfValues)(nil)
  1004  
  1005  func (fpmaov *Log_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) {
  1006  	switch fpmaov.selector {
  1007  	case Log_FieldPathSelectorLabels:
  1008  		for _, v := range fpmaov.values.([]string) {
  1009  			values = append(values, v)
  1010  		}
  1011  	}
  1012  	return
  1013  }
  1014  func (fpmaov *Log_FieldPathMapArrayOfValues) AsLabelsArrayOfElementValues() ([]string, bool) {
  1015  	res, ok := fpmaov.values.([]string)
  1016  	return res, ok
  1017  }