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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/audit/proto/v1alpha2/resource_change_log.proto
     3  // DO NOT EDIT!!!
     4  
     5  package resource_change_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  	common "github.com/cloudwan/edgelq-sdk/audit/resources/v1alpha2/common"
    27  	iam_organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/organization"
    28  	iam_project "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/project"
    29  	anypb "google.golang.org/protobuf/types/known/anypb"
    30  	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
    31  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    32  )
    33  
    34  // ensure the imports are used
    35  var (
    36  	_ = new(json.Marshaler)
    37  	_ = new(fmt.Stringer)
    38  	_ = reflect.DeepEqual
    39  	_ = strings.Builder{}
    40  	_ = time.Second
    41  
    42  	_ = strcase.ToLowerCamel
    43  	_ = codes.NotFound
    44  	_ = status.Status{}
    45  	_ = protojson.UnmarshalOptions{}
    46  	_ = new(proto.Message)
    47  	_ = protoregistry.GlobalTypes
    48  
    49  	_ = new(gotenobject.FieldPath)
    50  )
    51  
    52  // make sure we're using proto imports
    53  var (
    54  	_ = &common.Authentication{}
    55  	_ = &iam_organization.Organization{}
    56  	_ = &iam_project.Project{}
    57  	_ = &anypb.Any{}
    58  	_ = &fieldmaskpb.FieldMask{}
    59  	_ = &timestamppb.Timestamp{}
    60  )
    61  
    62  // FieldPath provides implementation to handle
    63  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    64  type ResourceChangeLog_FieldPath interface {
    65  	gotenobject.FieldPath
    66  	Selector() ResourceChangeLog_FieldPathSelector
    67  	Get(source *ResourceChangeLog) []interface{}
    68  	GetSingle(source *ResourceChangeLog) (interface{}, bool)
    69  	ClearValue(item *ResourceChangeLog)
    70  
    71  	// Those methods build corresponding ResourceChangeLog_FieldPathValue
    72  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    73  	WithIValue(value interface{}) ResourceChangeLog_FieldPathValue
    74  	WithIArrayOfValues(values interface{}) ResourceChangeLog_FieldPathArrayOfValues
    75  	WithIArrayItemValue(value interface{}) ResourceChangeLog_FieldPathArrayItemValue
    76  }
    77  
    78  type ResourceChangeLog_FieldPathSelector int32
    79  
    80  const (
    81  	ResourceChangeLog_FieldPathSelectorName           ResourceChangeLog_FieldPathSelector = 0
    82  	ResourceChangeLog_FieldPathSelectorScope          ResourceChangeLog_FieldPathSelector = 1
    83  	ResourceChangeLog_FieldPathSelectorRequestId      ResourceChangeLog_FieldPathSelector = 2
    84  	ResourceChangeLog_FieldPathSelectorTimestamp      ResourceChangeLog_FieldPathSelector = 3
    85  	ResourceChangeLog_FieldPathSelectorAuthentication ResourceChangeLog_FieldPathSelector = 4
    86  	ResourceChangeLog_FieldPathSelectorService        ResourceChangeLog_FieldPathSelector = 5
    87  	ResourceChangeLog_FieldPathSelectorResource       ResourceChangeLog_FieldPathSelector = 6
    88  	ResourceChangeLog_FieldPathSelectorTransaction    ResourceChangeLog_FieldPathSelector = 7
    89  )
    90  
    91  func (s ResourceChangeLog_FieldPathSelector) String() string {
    92  	switch s {
    93  	case ResourceChangeLog_FieldPathSelectorName:
    94  		return "name"
    95  	case ResourceChangeLog_FieldPathSelectorScope:
    96  		return "scope"
    97  	case ResourceChangeLog_FieldPathSelectorRequestId:
    98  		return "request_id"
    99  	case ResourceChangeLog_FieldPathSelectorTimestamp:
   100  		return "timestamp"
   101  	case ResourceChangeLog_FieldPathSelectorAuthentication:
   102  		return "authentication"
   103  	case ResourceChangeLog_FieldPathSelectorService:
   104  		return "service"
   105  	case ResourceChangeLog_FieldPathSelectorResource:
   106  		return "resource"
   107  	case ResourceChangeLog_FieldPathSelectorTransaction:
   108  		return "transaction"
   109  	default:
   110  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", s))
   111  	}
   112  }
   113  
   114  func BuildResourceChangeLog_FieldPath(fp gotenobject.RawFieldPath) (ResourceChangeLog_FieldPath, error) {
   115  	if len(fp) == 0 {
   116  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ResourceChangeLog")
   117  	}
   118  	if len(fp) == 1 {
   119  		switch fp[0] {
   120  		case "name":
   121  			return &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorName}, nil
   122  		case "scope":
   123  			return &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorScope}, nil
   124  		case "request_id", "requestId", "request-id":
   125  			return &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorRequestId}, nil
   126  		case "timestamp":
   127  			return &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorTimestamp}, nil
   128  		case "authentication":
   129  			return &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorAuthentication}, nil
   130  		case "service":
   131  			return &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorService}, nil
   132  		case "resource":
   133  			return &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorResource}, nil
   134  		case "transaction":
   135  			return &ResourceChangeLog_FieldTerminalPath{selector: ResourceChangeLog_FieldPathSelectorTransaction}, nil
   136  		}
   137  	} else {
   138  		switch fp[0] {
   139  		case "authentication":
   140  			if subpath, err := common.BuildAuthentication_FieldPath(fp[1:]); err != nil {
   141  				return nil, err
   142  			} else {
   143  				return &ResourceChangeLog_FieldSubPath{selector: ResourceChangeLog_FieldPathSelectorAuthentication, subPath: subpath}, nil
   144  			}
   145  		case "service":
   146  			if subpath, err := common.BuildServiceData_FieldPath(fp[1:]); err != nil {
   147  				return nil, err
   148  			} else {
   149  				return &ResourceChangeLog_FieldSubPath{selector: ResourceChangeLog_FieldPathSelectorService, subPath: subpath}, nil
   150  			}
   151  		case "resource":
   152  			if subpath, err := BuildResourceChangeLogResourceChange_FieldPath(fp[1:]); err != nil {
   153  				return nil, err
   154  			} else {
   155  				return &ResourceChangeLog_FieldSubPath{selector: ResourceChangeLog_FieldPathSelectorResource, subPath: subpath}, nil
   156  			}
   157  		case "transaction":
   158  			if subpath, err := BuildResourceChangeLogTransactionInfo_FieldPath(fp[1:]); err != nil {
   159  				return nil, err
   160  			} else {
   161  				return &ResourceChangeLog_FieldSubPath{selector: ResourceChangeLog_FieldPathSelectorTransaction, subPath: subpath}, nil
   162  			}
   163  		}
   164  	}
   165  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ResourceChangeLog", fp)
   166  }
   167  
   168  func ParseResourceChangeLog_FieldPath(rawField string) (ResourceChangeLog_FieldPath, error) {
   169  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   170  	if err != nil {
   171  		return nil, err
   172  	}
   173  	return BuildResourceChangeLog_FieldPath(fp)
   174  }
   175  
   176  func MustParseResourceChangeLog_FieldPath(rawField string) ResourceChangeLog_FieldPath {
   177  	fp, err := ParseResourceChangeLog_FieldPath(rawField)
   178  	if err != nil {
   179  		panic(err)
   180  	}
   181  	return fp
   182  }
   183  
   184  type ResourceChangeLog_FieldTerminalPath struct {
   185  	selector ResourceChangeLog_FieldPathSelector
   186  }
   187  
   188  var _ ResourceChangeLog_FieldPath = (*ResourceChangeLog_FieldTerminalPath)(nil)
   189  
   190  func (fp *ResourceChangeLog_FieldTerminalPath) Selector() ResourceChangeLog_FieldPathSelector {
   191  	return fp.selector
   192  }
   193  
   194  // String returns path representation in proto convention
   195  func (fp *ResourceChangeLog_FieldTerminalPath) String() string {
   196  	return fp.selector.String()
   197  }
   198  
   199  // JSONString returns path representation is JSON convention
   200  func (fp *ResourceChangeLog_FieldTerminalPath) JSONString() string {
   201  	return strcase.ToLowerCamel(fp.String())
   202  }
   203  
   204  // Get returns all values pointed by specific field from source ResourceChangeLog
   205  func (fp *ResourceChangeLog_FieldTerminalPath) Get(source *ResourceChangeLog) (values []interface{}) {
   206  	if source != nil {
   207  		switch fp.selector {
   208  		case ResourceChangeLog_FieldPathSelectorName:
   209  			if source.Name != nil {
   210  				values = append(values, source.Name)
   211  			}
   212  		case ResourceChangeLog_FieldPathSelectorScope:
   213  			values = append(values, source.Scope)
   214  		case ResourceChangeLog_FieldPathSelectorRequestId:
   215  			values = append(values, source.RequestId)
   216  		case ResourceChangeLog_FieldPathSelectorTimestamp:
   217  			if source.Timestamp != nil {
   218  				values = append(values, source.Timestamp)
   219  			}
   220  		case ResourceChangeLog_FieldPathSelectorAuthentication:
   221  			if source.Authentication != nil {
   222  				values = append(values, source.Authentication)
   223  			}
   224  		case ResourceChangeLog_FieldPathSelectorService:
   225  			if source.Service != nil {
   226  				values = append(values, source.Service)
   227  			}
   228  		case ResourceChangeLog_FieldPathSelectorResource:
   229  			if source.Resource != nil {
   230  				values = append(values, source.Resource)
   231  			}
   232  		case ResourceChangeLog_FieldPathSelectorTransaction:
   233  			if source.Transaction != nil {
   234  				values = append(values, source.Transaction)
   235  			}
   236  		default:
   237  			panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fp.selector))
   238  		}
   239  	}
   240  	return
   241  }
   242  
   243  func (fp *ResourceChangeLog_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   244  	return fp.Get(source.(*ResourceChangeLog))
   245  }
   246  
   247  // GetSingle returns value pointed by specific field of from source ResourceChangeLog
   248  func (fp *ResourceChangeLog_FieldTerminalPath) GetSingle(source *ResourceChangeLog) (interface{}, bool) {
   249  	switch fp.selector {
   250  	case ResourceChangeLog_FieldPathSelectorName:
   251  		res := source.GetName()
   252  		return res, res != nil
   253  	case ResourceChangeLog_FieldPathSelectorScope:
   254  		return source.GetScope(), source != nil
   255  	case ResourceChangeLog_FieldPathSelectorRequestId:
   256  		return source.GetRequestId(), source != nil
   257  	case ResourceChangeLog_FieldPathSelectorTimestamp:
   258  		res := source.GetTimestamp()
   259  		return res, res != nil
   260  	case ResourceChangeLog_FieldPathSelectorAuthentication:
   261  		res := source.GetAuthentication()
   262  		return res, res != nil
   263  	case ResourceChangeLog_FieldPathSelectorService:
   264  		res := source.GetService()
   265  		return res, res != nil
   266  	case ResourceChangeLog_FieldPathSelectorResource:
   267  		res := source.GetResource()
   268  		return res, res != nil
   269  	case ResourceChangeLog_FieldPathSelectorTransaction:
   270  		res := source.GetTransaction()
   271  		return res, res != nil
   272  	default:
   273  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fp.selector))
   274  	}
   275  }
   276  
   277  func (fp *ResourceChangeLog_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   278  	return fp.GetSingle(source.(*ResourceChangeLog))
   279  }
   280  
   281  // GetDefault returns a default value of the field type
   282  func (fp *ResourceChangeLog_FieldTerminalPath) GetDefault() interface{} {
   283  	switch fp.selector {
   284  	case ResourceChangeLog_FieldPathSelectorName:
   285  		return (*Name)(nil)
   286  	case ResourceChangeLog_FieldPathSelectorScope:
   287  		return ""
   288  	case ResourceChangeLog_FieldPathSelectorRequestId:
   289  		return uint64(0)
   290  	case ResourceChangeLog_FieldPathSelectorTimestamp:
   291  		return (*timestamppb.Timestamp)(nil)
   292  	case ResourceChangeLog_FieldPathSelectorAuthentication:
   293  		return (*common.Authentication)(nil)
   294  	case ResourceChangeLog_FieldPathSelectorService:
   295  		return (*common.ServiceData)(nil)
   296  	case ResourceChangeLog_FieldPathSelectorResource:
   297  		return (*ResourceChangeLog_ResourceChange)(nil)
   298  	case ResourceChangeLog_FieldPathSelectorTransaction:
   299  		return (*ResourceChangeLog_TransactionInfo)(nil)
   300  	default:
   301  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fp.selector))
   302  	}
   303  }
   304  
   305  func (fp *ResourceChangeLog_FieldTerminalPath) ClearValue(item *ResourceChangeLog) {
   306  	if item != nil {
   307  		switch fp.selector {
   308  		case ResourceChangeLog_FieldPathSelectorName:
   309  			item.Name = nil
   310  		case ResourceChangeLog_FieldPathSelectorScope:
   311  			item.Scope = ""
   312  		case ResourceChangeLog_FieldPathSelectorRequestId:
   313  			item.RequestId = uint64(0)
   314  		case ResourceChangeLog_FieldPathSelectorTimestamp:
   315  			item.Timestamp = nil
   316  		case ResourceChangeLog_FieldPathSelectorAuthentication:
   317  			item.Authentication = nil
   318  		case ResourceChangeLog_FieldPathSelectorService:
   319  			item.Service = nil
   320  		case ResourceChangeLog_FieldPathSelectorResource:
   321  			item.Resource = nil
   322  		case ResourceChangeLog_FieldPathSelectorTransaction:
   323  			item.Transaction = nil
   324  		default:
   325  			panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fp.selector))
   326  		}
   327  	}
   328  }
   329  
   330  func (fp *ResourceChangeLog_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   331  	fp.ClearValue(item.(*ResourceChangeLog))
   332  }
   333  
   334  // IsLeaf - whether field path is holds simple value
   335  func (fp *ResourceChangeLog_FieldTerminalPath) IsLeaf() bool {
   336  	return fp.selector == ResourceChangeLog_FieldPathSelectorName ||
   337  		fp.selector == ResourceChangeLog_FieldPathSelectorScope ||
   338  		fp.selector == ResourceChangeLog_FieldPathSelectorRequestId ||
   339  		fp.selector == ResourceChangeLog_FieldPathSelectorTimestamp
   340  }
   341  
   342  func (fp *ResourceChangeLog_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   343  	return []gotenobject.FieldPath{fp}
   344  }
   345  
   346  func (fp *ResourceChangeLog_FieldTerminalPath) WithIValue(value interface{}) ResourceChangeLog_FieldPathValue {
   347  	switch fp.selector {
   348  	case ResourceChangeLog_FieldPathSelectorName:
   349  		return &ResourceChangeLog_FieldTerminalPathValue{ResourceChangeLog_FieldTerminalPath: *fp, value: value.(*Name)}
   350  	case ResourceChangeLog_FieldPathSelectorScope:
   351  		return &ResourceChangeLog_FieldTerminalPathValue{ResourceChangeLog_FieldTerminalPath: *fp, value: value.(string)}
   352  	case ResourceChangeLog_FieldPathSelectorRequestId:
   353  		return &ResourceChangeLog_FieldTerminalPathValue{ResourceChangeLog_FieldTerminalPath: *fp, value: value.(uint64)}
   354  	case ResourceChangeLog_FieldPathSelectorTimestamp:
   355  		return &ResourceChangeLog_FieldTerminalPathValue{ResourceChangeLog_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)}
   356  	case ResourceChangeLog_FieldPathSelectorAuthentication:
   357  		return &ResourceChangeLog_FieldTerminalPathValue{ResourceChangeLog_FieldTerminalPath: *fp, value: value.(*common.Authentication)}
   358  	case ResourceChangeLog_FieldPathSelectorService:
   359  		return &ResourceChangeLog_FieldTerminalPathValue{ResourceChangeLog_FieldTerminalPath: *fp, value: value.(*common.ServiceData)}
   360  	case ResourceChangeLog_FieldPathSelectorResource:
   361  		return &ResourceChangeLog_FieldTerminalPathValue{ResourceChangeLog_FieldTerminalPath: *fp, value: value.(*ResourceChangeLog_ResourceChange)}
   362  	case ResourceChangeLog_FieldPathSelectorTransaction:
   363  		return &ResourceChangeLog_FieldTerminalPathValue{ResourceChangeLog_FieldTerminalPath: *fp, value: value.(*ResourceChangeLog_TransactionInfo)}
   364  	default:
   365  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fp.selector))
   366  	}
   367  }
   368  
   369  func (fp *ResourceChangeLog_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   370  	return fp.WithIValue(value)
   371  }
   372  
   373  func (fp *ResourceChangeLog_FieldTerminalPath) WithIArrayOfValues(values interface{}) ResourceChangeLog_FieldPathArrayOfValues {
   374  	fpaov := &ResourceChangeLog_FieldTerminalPathArrayOfValues{ResourceChangeLog_FieldTerminalPath: *fp}
   375  	switch fp.selector {
   376  	case ResourceChangeLog_FieldPathSelectorName:
   377  		return &ResourceChangeLog_FieldTerminalPathArrayOfValues{ResourceChangeLog_FieldTerminalPath: *fp, values: values.([]*Name)}
   378  	case ResourceChangeLog_FieldPathSelectorScope:
   379  		return &ResourceChangeLog_FieldTerminalPathArrayOfValues{ResourceChangeLog_FieldTerminalPath: *fp, values: values.([]string)}
   380  	case ResourceChangeLog_FieldPathSelectorRequestId:
   381  		return &ResourceChangeLog_FieldTerminalPathArrayOfValues{ResourceChangeLog_FieldTerminalPath: *fp, values: values.([]uint64)}
   382  	case ResourceChangeLog_FieldPathSelectorTimestamp:
   383  		return &ResourceChangeLog_FieldTerminalPathArrayOfValues{ResourceChangeLog_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)}
   384  	case ResourceChangeLog_FieldPathSelectorAuthentication:
   385  		return &ResourceChangeLog_FieldTerminalPathArrayOfValues{ResourceChangeLog_FieldTerminalPath: *fp, values: values.([]*common.Authentication)}
   386  	case ResourceChangeLog_FieldPathSelectorService:
   387  		return &ResourceChangeLog_FieldTerminalPathArrayOfValues{ResourceChangeLog_FieldTerminalPath: *fp, values: values.([]*common.ServiceData)}
   388  	case ResourceChangeLog_FieldPathSelectorResource:
   389  		return &ResourceChangeLog_FieldTerminalPathArrayOfValues{ResourceChangeLog_FieldTerminalPath: *fp, values: values.([]*ResourceChangeLog_ResourceChange)}
   390  	case ResourceChangeLog_FieldPathSelectorTransaction:
   391  		return &ResourceChangeLog_FieldTerminalPathArrayOfValues{ResourceChangeLog_FieldTerminalPath: *fp, values: values.([]*ResourceChangeLog_TransactionInfo)}
   392  	default:
   393  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fp.selector))
   394  	}
   395  	return fpaov
   396  }
   397  
   398  func (fp *ResourceChangeLog_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   399  	return fp.WithIArrayOfValues(values)
   400  }
   401  
   402  func (fp *ResourceChangeLog_FieldTerminalPath) WithIArrayItemValue(value interface{}) ResourceChangeLog_FieldPathArrayItemValue {
   403  	switch fp.selector {
   404  	default:
   405  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fp.selector))
   406  	}
   407  }
   408  
   409  func (fp *ResourceChangeLog_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   410  	return fp.WithIArrayItemValue(value)
   411  }
   412  
   413  type ResourceChangeLog_FieldSubPath struct {
   414  	selector ResourceChangeLog_FieldPathSelector
   415  	subPath  gotenobject.FieldPath
   416  }
   417  
   418  var _ ResourceChangeLog_FieldPath = (*ResourceChangeLog_FieldSubPath)(nil)
   419  
   420  func (fps *ResourceChangeLog_FieldSubPath) Selector() ResourceChangeLog_FieldPathSelector {
   421  	return fps.selector
   422  }
   423  func (fps *ResourceChangeLog_FieldSubPath) AsAuthenticationSubPath() (common.Authentication_FieldPath, bool) {
   424  	res, ok := fps.subPath.(common.Authentication_FieldPath)
   425  	return res, ok
   426  }
   427  func (fps *ResourceChangeLog_FieldSubPath) AsServiceSubPath() (common.ServiceData_FieldPath, bool) {
   428  	res, ok := fps.subPath.(common.ServiceData_FieldPath)
   429  	return res, ok
   430  }
   431  func (fps *ResourceChangeLog_FieldSubPath) AsResourceSubPath() (ResourceChangeLogResourceChange_FieldPath, bool) {
   432  	res, ok := fps.subPath.(ResourceChangeLogResourceChange_FieldPath)
   433  	return res, ok
   434  }
   435  func (fps *ResourceChangeLog_FieldSubPath) AsTransactionSubPath() (ResourceChangeLogTransactionInfo_FieldPath, bool) {
   436  	res, ok := fps.subPath.(ResourceChangeLogTransactionInfo_FieldPath)
   437  	return res, ok
   438  }
   439  
   440  // String returns path representation in proto convention
   441  func (fps *ResourceChangeLog_FieldSubPath) String() string {
   442  	return fps.selector.String() + "." + fps.subPath.String()
   443  }
   444  
   445  // JSONString returns path representation is JSON convention
   446  func (fps *ResourceChangeLog_FieldSubPath) JSONString() string {
   447  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   448  }
   449  
   450  // Get returns all values pointed by selected field from source ResourceChangeLog
   451  func (fps *ResourceChangeLog_FieldSubPath) Get(source *ResourceChangeLog) (values []interface{}) {
   452  	switch fps.selector {
   453  	case ResourceChangeLog_FieldPathSelectorAuthentication:
   454  		values = append(values, fps.subPath.GetRaw(source.GetAuthentication())...)
   455  	case ResourceChangeLog_FieldPathSelectorService:
   456  		values = append(values, fps.subPath.GetRaw(source.GetService())...)
   457  	case ResourceChangeLog_FieldPathSelectorResource:
   458  		values = append(values, fps.subPath.GetRaw(source.GetResource())...)
   459  	case ResourceChangeLog_FieldPathSelectorTransaction:
   460  		values = append(values, fps.subPath.GetRaw(source.GetTransaction())...)
   461  	default:
   462  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fps.selector))
   463  	}
   464  	return
   465  }
   466  
   467  func (fps *ResourceChangeLog_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   468  	return fps.Get(source.(*ResourceChangeLog))
   469  }
   470  
   471  // GetSingle returns value of selected field from source ResourceChangeLog
   472  func (fps *ResourceChangeLog_FieldSubPath) GetSingle(source *ResourceChangeLog) (interface{}, bool) {
   473  	switch fps.selector {
   474  	case ResourceChangeLog_FieldPathSelectorAuthentication:
   475  		if source.GetAuthentication() == nil {
   476  			return nil, false
   477  		}
   478  		return fps.subPath.GetSingleRaw(source.GetAuthentication())
   479  	case ResourceChangeLog_FieldPathSelectorService:
   480  		if source.GetService() == nil {
   481  			return nil, false
   482  		}
   483  		return fps.subPath.GetSingleRaw(source.GetService())
   484  	case ResourceChangeLog_FieldPathSelectorResource:
   485  		if source.GetResource() == nil {
   486  			return nil, false
   487  		}
   488  		return fps.subPath.GetSingleRaw(source.GetResource())
   489  	case ResourceChangeLog_FieldPathSelectorTransaction:
   490  		if source.GetTransaction() == nil {
   491  			return nil, false
   492  		}
   493  		return fps.subPath.GetSingleRaw(source.GetTransaction())
   494  	default:
   495  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fps.selector))
   496  	}
   497  }
   498  
   499  func (fps *ResourceChangeLog_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   500  	return fps.GetSingle(source.(*ResourceChangeLog))
   501  }
   502  
   503  // GetDefault returns a default value of the field type
   504  func (fps *ResourceChangeLog_FieldSubPath) GetDefault() interface{} {
   505  	return fps.subPath.GetDefault()
   506  }
   507  
   508  func (fps *ResourceChangeLog_FieldSubPath) ClearValue(item *ResourceChangeLog) {
   509  	if item != nil {
   510  		switch fps.selector {
   511  		case ResourceChangeLog_FieldPathSelectorAuthentication:
   512  			fps.subPath.ClearValueRaw(item.Authentication)
   513  		case ResourceChangeLog_FieldPathSelectorService:
   514  			fps.subPath.ClearValueRaw(item.Service)
   515  		case ResourceChangeLog_FieldPathSelectorResource:
   516  			fps.subPath.ClearValueRaw(item.Resource)
   517  		case ResourceChangeLog_FieldPathSelectorTransaction:
   518  			fps.subPath.ClearValueRaw(item.Transaction)
   519  		default:
   520  			panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fps.selector))
   521  		}
   522  	}
   523  }
   524  
   525  func (fps *ResourceChangeLog_FieldSubPath) ClearValueRaw(item proto.Message) {
   526  	fps.ClearValue(item.(*ResourceChangeLog))
   527  }
   528  
   529  // IsLeaf - whether field path is holds simple value
   530  func (fps *ResourceChangeLog_FieldSubPath) IsLeaf() bool {
   531  	return fps.subPath.IsLeaf()
   532  }
   533  
   534  func (fps *ResourceChangeLog_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   535  	iPaths := []gotenobject.FieldPath{&ResourceChangeLog_FieldTerminalPath{selector: fps.selector}}
   536  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   537  	return iPaths
   538  }
   539  
   540  func (fps *ResourceChangeLog_FieldSubPath) WithIValue(value interface{}) ResourceChangeLog_FieldPathValue {
   541  	return &ResourceChangeLog_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   542  }
   543  
   544  func (fps *ResourceChangeLog_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   545  	return fps.WithIValue(value)
   546  }
   547  
   548  func (fps *ResourceChangeLog_FieldSubPath) WithIArrayOfValues(values interface{}) ResourceChangeLog_FieldPathArrayOfValues {
   549  	return &ResourceChangeLog_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   550  }
   551  
   552  func (fps *ResourceChangeLog_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   553  	return fps.WithIArrayOfValues(values)
   554  }
   555  
   556  func (fps *ResourceChangeLog_FieldSubPath) WithIArrayItemValue(value interface{}) ResourceChangeLog_FieldPathArrayItemValue {
   557  	return &ResourceChangeLog_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   558  }
   559  
   560  func (fps *ResourceChangeLog_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   561  	return fps.WithIArrayItemValue(value)
   562  }
   563  
   564  // ResourceChangeLog_FieldPathValue allows storing values for ResourceChangeLog fields according to their type
   565  type ResourceChangeLog_FieldPathValue interface {
   566  	ResourceChangeLog_FieldPath
   567  	gotenobject.FieldPathValue
   568  	SetTo(target **ResourceChangeLog)
   569  	CompareWith(*ResourceChangeLog) (cmp int, comparable bool)
   570  }
   571  
   572  func ParseResourceChangeLog_FieldPathValue(pathStr, valueStr string) (ResourceChangeLog_FieldPathValue, error) {
   573  	fp, err := ParseResourceChangeLog_FieldPath(pathStr)
   574  	if err != nil {
   575  		return nil, err
   576  	}
   577  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   578  	if err != nil {
   579  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ResourceChangeLog field path value from %s: %v", valueStr, err)
   580  	}
   581  	return fpv.(ResourceChangeLog_FieldPathValue), nil
   582  }
   583  
   584  func MustParseResourceChangeLog_FieldPathValue(pathStr, valueStr string) ResourceChangeLog_FieldPathValue {
   585  	fpv, err := ParseResourceChangeLog_FieldPathValue(pathStr, valueStr)
   586  	if err != nil {
   587  		panic(err)
   588  	}
   589  	return fpv
   590  }
   591  
   592  type ResourceChangeLog_FieldTerminalPathValue struct {
   593  	ResourceChangeLog_FieldTerminalPath
   594  	value interface{}
   595  }
   596  
   597  var _ ResourceChangeLog_FieldPathValue = (*ResourceChangeLog_FieldTerminalPathValue)(nil)
   598  
   599  // GetRawValue returns raw value stored under selected path for 'ResourceChangeLog' as interface{}
   600  func (fpv *ResourceChangeLog_FieldTerminalPathValue) GetRawValue() interface{} {
   601  	return fpv.value
   602  }
   603  func (fpv *ResourceChangeLog_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   604  	res, ok := fpv.value.(*Name)
   605  	return res, ok
   606  }
   607  func (fpv *ResourceChangeLog_FieldTerminalPathValue) AsScopeValue() (string, bool) {
   608  	res, ok := fpv.value.(string)
   609  	return res, ok
   610  }
   611  func (fpv *ResourceChangeLog_FieldTerminalPathValue) AsRequestIdValue() (uint64, bool) {
   612  	res, ok := fpv.value.(uint64)
   613  	return res, ok
   614  }
   615  func (fpv *ResourceChangeLog_FieldTerminalPathValue) AsTimestampValue() (*timestamppb.Timestamp, bool) {
   616  	res, ok := fpv.value.(*timestamppb.Timestamp)
   617  	return res, ok
   618  }
   619  func (fpv *ResourceChangeLog_FieldTerminalPathValue) AsAuthenticationValue() (*common.Authentication, bool) {
   620  	res, ok := fpv.value.(*common.Authentication)
   621  	return res, ok
   622  }
   623  func (fpv *ResourceChangeLog_FieldTerminalPathValue) AsServiceValue() (*common.ServiceData, bool) {
   624  	res, ok := fpv.value.(*common.ServiceData)
   625  	return res, ok
   626  }
   627  func (fpv *ResourceChangeLog_FieldTerminalPathValue) AsResourceValue() (*ResourceChangeLog_ResourceChange, bool) {
   628  	res, ok := fpv.value.(*ResourceChangeLog_ResourceChange)
   629  	return res, ok
   630  }
   631  func (fpv *ResourceChangeLog_FieldTerminalPathValue) AsTransactionValue() (*ResourceChangeLog_TransactionInfo, bool) {
   632  	res, ok := fpv.value.(*ResourceChangeLog_TransactionInfo)
   633  	return res, ok
   634  }
   635  
   636  // SetTo stores value for selected field for object ResourceChangeLog
   637  func (fpv *ResourceChangeLog_FieldTerminalPathValue) SetTo(target **ResourceChangeLog) {
   638  	if *target == nil {
   639  		*target = new(ResourceChangeLog)
   640  	}
   641  	switch fpv.selector {
   642  	case ResourceChangeLog_FieldPathSelectorName:
   643  		(*target).Name = fpv.value.(*Name)
   644  	case ResourceChangeLog_FieldPathSelectorScope:
   645  		(*target).Scope = fpv.value.(string)
   646  	case ResourceChangeLog_FieldPathSelectorRequestId:
   647  		(*target).RequestId = fpv.value.(uint64)
   648  	case ResourceChangeLog_FieldPathSelectorTimestamp:
   649  		(*target).Timestamp = fpv.value.(*timestamppb.Timestamp)
   650  	case ResourceChangeLog_FieldPathSelectorAuthentication:
   651  		(*target).Authentication = fpv.value.(*common.Authentication)
   652  	case ResourceChangeLog_FieldPathSelectorService:
   653  		(*target).Service = fpv.value.(*common.ServiceData)
   654  	case ResourceChangeLog_FieldPathSelectorResource:
   655  		(*target).Resource = fpv.value.(*ResourceChangeLog_ResourceChange)
   656  	case ResourceChangeLog_FieldPathSelectorTransaction:
   657  		(*target).Transaction = fpv.value.(*ResourceChangeLog_TransactionInfo)
   658  	default:
   659  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fpv.selector))
   660  	}
   661  }
   662  
   663  func (fpv *ResourceChangeLog_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   664  	typedObject := target.(*ResourceChangeLog)
   665  	fpv.SetTo(&typedObject)
   666  }
   667  
   668  // CompareWith compares value in the 'ResourceChangeLog_FieldTerminalPathValue' with the value under path in 'ResourceChangeLog'.
   669  func (fpv *ResourceChangeLog_FieldTerminalPathValue) CompareWith(source *ResourceChangeLog) (int, bool) {
   670  	switch fpv.selector {
   671  	case ResourceChangeLog_FieldPathSelectorName:
   672  		leftValue := fpv.value.(*Name)
   673  		rightValue := source.GetName()
   674  		if leftValue == nil {
   675  			if rightValue != nil {
   676  				return -1, true
   677  			}
   678  			return 0, true
   679  		}
   680  		if rightValue == nil {
   681  			return 1, true
   682  		}
   683  		if leftValue.String() == rightValue.String() {
   684  			return 0, true
   685  		} else if leftValue.String() < rightValue.String() {
   686  			return -1, true
   687  		} else {
   688  			return 1, true
   689  		}
   690  	case ResourceChangeLog_FieldPathSelectorScope:
   691  		leftValue := fpv.value.(string)
   692  		rightValue := source.GetScope()
   693  		if (leftValue) == (rightValue) {
   694  			return 0, true
   695  		} else if (leftValue) < (rightValue) {
   696  			return -1, true
   697  		} else {
   698  			return 1, true
   699  		}
   700  	case ResourceChangeLog_FieldPathSelectorRequestId:
   701  		leftValue := fpv.value.(uint64)
   702  		rightValue := source.GetRequestId()
   703  		if (leftValue) == (rightValue) {
   704  			return 0, true
   705  		} else if (leftValue) < (rightValue) {
   706  			return -1, true
   707  		} else {
   708  			return 1, true
   709  		}
   710  	case ResourceChangeLog_FieldPathSelectorTimestamp:
   711  		leftValue := fpv.value.(*timestamppb.Timestamp)
   712  		rightValue := source.GetTimestamp()
   713  		if leftValue == nil {
   714  			if rightValue != nil {
   715  				return -1, true
   716  			}
   717  			return 0, true
   718  		}
   719  		if rightValue == nil {
   720  			return 1, true
   721  		}
   722  		if leftValue.AsTime().Equal(rightValue.AsTime()) {
   723  			return 0, true
   724  		} else if leftValue.AsTime().Before(rightValue.AsTime()) {
   725  			return -1, true
   726  		} else {
   727  			return 1, true
   728  		}
   729  	case ResourceChangeLog_FieldPathSelectorAuthentication:
   730  		return 0, false
   731  	case ResourceChangeLog_FieldPathSelectorService:
   732  		return 0, false
   733  	case ResourceChangeLog_FieldPathSelectorResource:
   734  		return 0, false
   735  	case ResourceChangeLog_FieldPathSelectorTransaction:
   736  		return 0, false
   737  	default:
   738  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fpv.selector))
   739  	}
   740  }
   741  
   742  func (fpv *ResourceChangeLog_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   743  	return fpv.CompareWith(source.(*ResourceChangeLog))
   744  }
   745  
   746  type ResourceChangeLog_FieldSubPathValue struct {
   747  	ResourceChangeLog_FieldPath
   748  	subPathValue gotenobject.FieldPathValue
   749  }
   750  
   751  var _ ResourceChangeLog_FieldPathValue = (*ResourceChangeLog_FieldSubPathValue)(nil)
   752  
   753  func (fpvs *ResourceChangeLog_FieldSubPathValue) AsAuthenticationPathValue() (common.Authentication_FieldPathValue, bool) {
   754  	res, ok := fpvs.subPathValue.(common.Authentication_FieldPathValue)
   755  	return res, ok
   756  }
   757  func (fpvs *ResourceChangeLog_FieldSubPathValue) AsServicePathValue() (common.ServiceData_FieldPathValue, bool) {
   758  	res, ok := fpvs.subPathValue.(common.ServiceData_FieldPathValue)
   759  	return res, ok
   760  }
   761  func (fpvs *ResourceChangeLog_FieldSubPathValue) AsResourcePathValue() (ResourceChangeLogResourceChange_FieldPathValue, bool) {
   762  	res, ok := fpvs.subPathValue.(ResourceChangeLogResourceChange_FieldPathValue)
   763  	return res, ok
   764  }
   765  func (fpvs *ResourceChangeLog_FieldSubPathValue) AsTransactionPathValue() (ResourceChangeLogTransactionInfo_FieldPathValue, bool) {
   766  	res, ok := fpvs.subPathValue.(ResourceChangeLogTransactionInfo_FieldPathValue)
   767  	return res, ok
   768  }
   769  
   770  func (fpvs *ResourceChangeLog_FieldSubPathValue) SetTo(target **ResourceChangeLog) {
   771  	if *target == nil {
   772  		*target = new(ResourceChangeLog)
   773  	}
   774  	switch fpvs.Selector() {
   775  	case ResourceChangeLog_FieldPathSelectorAuthentication:
   776  		fpvs.subPathValue.(common.Authentication_FieldPathValue).SetTo(&(*target).Authentication)
   777  	case ResourceChangeLog_FieldPathSelectorService:
   778  		fpvs.subPathValue.(common.ServiceData_FieldPathValue).SetTo(&(*target).Service)
   779  	case ResourceChangeLog_FieldPathSelectorResource:
   780  		fpvs.subPathValue.(ResourceChangeLogResourceChange_FieldPathValue).SetTo(&(*target).Resource)
   781  	case ResourceChangeLog_FieldPathSelectorTransaction:
   782  		fpvs.subPathValue.(ResourceChangeLogTransactionInfo_FieldPathValue).SetTo(&(*target).Transaction)
   783  	default:
   784  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fpvs.Selector()))
   785  	}
   786  }
   787  
   788  func (fpvs *ResourceChangeLog_FieldSubPathValue) SetToRaw(target proto.Message) {
   789  	typedObject := target.(*ResourceChangeLog)
   790  	fpvs.SetTo(&typedObject)
   791  }
   792  
   793  func (fpvs *ResourceChangeLog_FieldSubPathValue) GetRawValue() interface{} {
   794  	return fpvs.subPathValue.GetRawValue()
   795  }
   796  
   797  func (fpvs *ResourceChangeLog_FieldSubPathValue) CompareWith(source *ResourceChangeLog) (int, bool) {
   798  	switch fpvs.Selector() {
   799  	case ResourceChangeLog_FieldPathSelectorAuthentication:
   800  		return fpvs.subPathValue.(common.Authentication_FieldPathValue).CompareWith(source.GetAuthentication())
   801  	case ResourceChangeLog_FieldPathSelectorService:
   802  		return fpvs.subPathValue.(common.ServiceData_FieldPathValue).CompareWith(source.GetService())
   803  	case ResourceChangeLog_FieldPathSelectorResource:
   804  		return fpvs.subPathValue.(ResourceChangeLogResourceChange_FieldPathValue).CompareWith(source.GetResource())
   805  	case ResourceChangeLog_FieldPathSelectorTransaction:
   806  		return fpvs.subPathValue.(ResourceChangeLogTransactionInfo_FieldPathValue).CompareWith(source.GetTransaction())
   807  	default:
   808  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fpvs.Selector()))
   809  	}
   810  }
   811  
   812  func (fpvs *ResourceChangeLog_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   813  	return fpvs.CompareWith(source.(*ResourceChangeLog))
   814  }
   815  
   816  // ResourceChangeLog_FieldPathArrayItemValue allows storing single item in Path-specific values for ResourceChangeLog according to their type
   817  // Present only for array (repeated) types.
   818  type ResourceChangeLog_FieldPathArrayItemValue interface {
   819  	gotenobject.FieldPathArrayItemValue
   820  	ResourceChangeLog_FieldPath
   821  	ContainsValue(*ResourceChangeLog) bool
   822  }
   823  
   824  // ParseResourceChangeLog_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   825  func ParseResourceChangeLog_FieldPathArrayItemValue(pathStr, valueStr string) (ResourceChangeLog_FieldPathArrayItemValue, error) {
   826  	fp, err := ParseResourceChangeLog_FieldPath(pathStr)
   827  	if err != nil {
   828  		return nil, err
   829  	}
   830  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   831  	if err != nil {
   832  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ResourceChangeLog field path array item value from %s: %v", valueStr, err)
   833  	}
   834  	return fpaiv.(ResourceChangeLog_FieldPathArrayItemValue), nil
   835  }
   836  
   837  func MustParseResourceChangeLog_FieldPathArrayItemValue(pathStr, valueStr string) ResourceChangeLog_FieldPathArrayItemValue {
   838  	fpaiv, err := ParseResourceChangeLog_FieldPathArrayItemValue(pathStr, valueStr)
   839  	if err != nil {
   840  		panic(err)
   841  	}
   842  	return fpaiv
   843  }
   844  
   845  type ResourceChangeLog_FieldTerminalPathArrayItemValue struct {
   846  	ResourceChangeLog_FieldTerminalPath
   847  	value interface{}
   848  }
   849  
   850  var _ ResourceChangeLog_FieldPathArrayItemValue = (*ResourceChangeLog_FieldTerminalPathArrayItemValue)(nil)
   851  
   852  // GetRawValue returns stored element value for array in object ResourceChangeLog as interface{}
   853  func (fpaiv *ResourceChangeLog_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   854  	return fpaiv.value
   855  }
   856  
   857  func (fpaiv *ResourceChangeLog_FieldTerminalPathArrayItemValue) GetSingle(source *ResourceChangeLog) (interface{}, bool) {
   858  	return nil, false
   859  }
   860  
   861  func (fpaiv *ResourceChangeLog_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   862  	return fpaiv.GetSingle(source.(*ResourceChangeLog))
   863  }
   864  
   865  // Contains returns a boolean indicating if value that is being held is present in given 'ResourceChangeLog'
   866  func (fpaiv *ResourceChangeLog_FieldTerminalPathArrayItemValue) ContainsValue(source *ResourceChangeLog) bool {
   867  	slice := fpaiv.ResourceChangeLog_FieldTerminalPath.Get(source)
   868  	for _, v := range slice {
   869  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   870  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   871  				return true
   872  			}
   873  		} else if reflect.DeepEqual(v, fpaiv.value) {
   874  			return true
   875  		}
   876  	}
   877  	return false
   878  }
   879  
   880  type ResourceChangeLog_FieldSubPathArrayItemValue struct {
   881  	ResourceChangeLog_FieldPath
   882  	subPathItemValue gotenobject.FieldPathArrayItemValue
   883  }
   884  
   885  // GetRawValue returns stored array item value
   886  func (fpaivs *ResourceChangeLog_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
   887  	return fpaivs.subPathItemValue.GetRawItemValue()
   888  }
   889  func (fpaivs *ResourceChangeLog_FieldSubPathArrayItemValue) AsAuthenticationPathItemValue() (common.Authentication_FieldPathArrayItemValue, bool) {
   890  	res, ok := fpaivs.subPathItemValue.(common.Authentication_FieldPathArrayItemValue)
   891  	return res, ok
   892  }
   893  func (fpaivs *ResourceChangeLog_FieldSubPathArrayItemValue) AsServicePathItemValue() (common.ServiceData_FieldPathArrayItemValue, bool) {
   894  	res, ok := fpaivs.subPathItemValue.(common.ServiceData_FieldPathArrayItemValue)
   895  	return res, ok
   896  }
   897  func (fpaivs *ResourceChangeLog_FieldSubPathArrayItemValue) AsResourcePathItemValue() (ResourceChangeLogResourceChange_FieldPathArrayItemValue, bool) {
   898  	res, ok := fpaivs.subPathItemValue.(ResourceChangeLogResourceChange_FieldPathArrayItemValue)
   899  	return res, ok
   900  }
   901  func (fpaivs *ResourceChangeLog_FieldSubPathArrayItemValue) AsTransactionPathItemValue() (ResourceChangeLogTransactionInfo_FieldPathArrayItemValue, bool) {
   902  	res, ok := fpaivs.subPathItemValue.(ResourceChangeLogTransactionInfo_FieldPathArrayItemValue)
   903  	return res, ok
   904  }
   905  
   906  // Contains returns a boolean indicating if value that is being held is present in given 'ResourceChangeLog'
   907  func (fpaivs *ResourceChangeLog_FieldSubPathArrayItemValue) ContainsValue(source *ResourceChangeLog) bool {
   908  	switch fpaivs.Selector() {
   909  	case ResourceChangeLog_FieldPathSelectorAuthentication:
   910  		return fpaivs.subPathItemValue.(common.Authentication_FieldPathArrayItemValue).ContainsValue(source.GetAuthentication())
   911  	case ResourceChangeLog_FieldPathSelectorService:
   912  		return fpaivs.subPathItemValue.(common.ServiceData_FieldPathArrayItemValue).ContainsValue(source.GetService())
   913  	case ResourceChangeLog_FieldPathSelectorResource:
   914  		return fpaivs.subPathItemValue.(ResourceChangeLogResourceChange_FieldPathArrayItemValue).ContainsValue(source.GetResource())
   915  	case ResourceChangeLog_FieldPathSelectorTransaction:
   916  		return fpaivs.subPathItemValue.(ResourceChangeLogTransactionInfo_FieldPathArrayItemValue).ContainsValue(source.GetTransaction())
   917  	default:
   918  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog: %d", fpaivs.Selector()))
   919  	}
   920  }
   921  
   922  // ResourceChangeLog_FieldPathArrayOfValues allows storing slice of values for ResourceChangeLog fields according to their type
   923  type ResourceChangeLog_FieldPathArrayOfValues interface {
   924  	gotenobject.FieldPathArrayOfValues
   925  	ResourceChangeLog_FieldPath
   926  }
   927  
   928  func ParseResourceChangeLog_FieldPathArrayOfValues(pathStr, valuesStr string) (ResourceChangeLog_FieldPathArrayOfValues, error) {
   929  	fp, err := ParseResourceChangeLog_FieldPath(pathStr)
   930  	if err != nil {
   931  		return nil, err
   932  	}
   933  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   934  	if err != nil {
   935  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ResourceChangeLog field path array of values from %s: %v", valuesStr, err)
   936  	}
   937  	return fpaov.(ResourceChangeLog_FieldPathArrayOfValues), nil
   938  }
   939  
   940  func MustParseResourceChangeLog_FieldPathArrayOfValues(pathStr, valuesStr string) ResourceChangeLog_FieldPathArrayOfValues {
   941  	fpaov, err := ParseResourceChangeLog_FieldPathArrayOfValues(pathStr, valuesStr)
   942  	if err != nil {
   943  		panic(err)
   944  	}
   945  	return fpaov
   946  }
   947  
   948  type ResourceChangeLog_FieldTerminalPathArrayOfValues struct {
   949  	ResourceChangeLog_FieldTerminalPath
   950  	values interface{}
   951  }
   952  
   953  var _ ResourceChangeLog_FieldPathArrayOfValues = (*ResourceChangeLog_FieldTerminalPathArrayOfValues)(nil)
   954  
   955  func (fpaov *ResourceChangeLog_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   956  	switch fpaov.selector {
   957  	case ResourceChangeLog_FieldPathSelectorName:
   958  		for _, v := range fpaov.values.([]*Name) {
   959  			values = append(values, v)
   960  		}
   961  	case ResourceChangeLog_FieldPathSelectorScope:
   962  		for _, v := range fpaov.values.([]string) {
   963  			values = append(values, v)
   964  		}
   965  	case ResourceChangeLog_FieldPathSelectorRequestId:
   966  		for _, v := range fpaov.values.([]uint64) {
   967  			values = append(values, v)
   968  		}
   969  	case ResourceChangeLog_FieldPathSelectorTimestamp:
   970  		for _, v := range fpaov.values.([]*timestamppb.Timestamp) {
   971  			values = append(values, v)
   972  		}
   973  	case ResourceChangeLog_FieldPathSelectorAuthentication:
   974  		for _, v := range fpaov.values.([]*common.Authentication) {
   975  			values = append(values, v)
   976  		}
   977  	case ResourceChangeLog_FieldPathSelectorService:
   978  		for _, v := range fpaov.values.([]*common.ServiceData) {
   979  			values = append(values, v)
   980  		}
   981  	case ResourceChangeLog_FieldPathSelectorResource:
   982  		for _, v := range fpaov.values.([]*ResourceChangeLog_ResourceChange) {
   983  			values = append(values, v)
   984  		}
   985  	case ResourceChangeLog_FieldPathSelectorTransaction:
   986  		for _, v := range fpaov.values.([]*ResourceChangeLog_TransactionInfo) {
   987  			values = append(values, v)
   988  		}
   989  	}
   990  	return
   991  }
   992  func (fpaov *ResourceChangeLog_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
   993  	res, ok := fpaov.values.([]*Name)
   994  	return res, ok
   995  }
   996  func (fpaov *ResourceChangeLog_FieldTerminalPathArrayOfValues) AsScopeArrayOfValues() ([]string, bool) {
   997  	res, ok := fpaov.values.([]string)
   998  	return res, ok
   999  }
  1000  func (fpaov *ResourceChangeLog_FieldTerminalPathArrayOfValues) AsRequestIdArrayOfValues() ([]uint64, bool) {
  1001  	res, ok := fpaov.values.([]uint64)
  1002  	return res, ok
  1003  }
  1004  func (fpaov *ResourceChangeLog_FieldTerminalPathArrayOfValues) AsTimestampArrayOfValues() ([]*timestamppb.Timestamp, bool) {
  1005  	res, ok := fpaov.values.([]*timestamppb.Timestamp)
  1006  	return res, ok
  1007  }
  1008  func (fpaov *ResourceChangeLog_FieldTerminalPathArrayOfValues) AsAuthenticationArrayOfValues() ([]*common.Authentication, bool) {
  1009  	res, ok := fpaov.values.([]*common.Authentication)
  1010  	return res, ok
  1011  }
  1012  func (fpaov *ResourceChangeLog_FieldTerminalPathArrayOfValues) AsServiceArrayOfValues() ([]*common.ServiceData, bool) {
  1013  	res, ok := fpaov.values.([]*common.ServiceData)
  1014  	return res, ok
  1015  }
  1016  func (fpaov *ResourceChangeLog_FieldTerminalPathArrayOfValues) AsResourceArrayOfValues() ([]*ResourceChangeLog_ResourceChange, bool) {
  1017  	res, ok := fpaov.values.([]*ResourceChangeLog_ResourceChange)
  1018  	return res, ok
  1019  }
  1020  func (fpaov *ResourceChangeLog_FieldTerminalPathArrayOfValues) AsTransactionArrayOfValues() ([]*ResourceChangeLog_TransactionInfo, bool) {
  1021  	res, ok := fpaov.values.([]*ResourceChangeLog_TransactionInfo)
  1022  	return res, ok
  1023  }
  1024  
  1025  type ResourceChangeLog_FieldSubPathArrayOfValues struct {
  1026  	ResourceChangeLog_FieldPath
  1027  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  1028  }
  1029  
  1030  var _ ResourceChangeLog_FieldPathArrayOfValues = (*ResourceChangeLog_FieldSubPathArrayOfValues)(nil)
  1031  
  1032  func (fpsaov *ResourceChangeLog_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  1033  	return fpsaov.subPathArrayOfValues.GetRawValues()
  1034  }
  1035  func (fpsaov *ResourceChangeLog_FieldSubPathArrayOfValues) AsAuthenticationPathArrayOfValues() (common.Authentication_FieldPathArrayOfValues, bool) {
  1036  	res, ok := fpsaov.subPathArrayOfValues.(common.Authentication_FieldPathArrayOfValues)
  1037  	return res, ok
  1038  }
  1039  func (fpsaov *ResourceChangeLog_FieldSubPathArrayOfValues) AsServicePathArrayOfValues() (common.ServiceData_FieldPathArrayOfValues, bool) {
  1040  	res, ok := fpsaov.subPathArrayOfValues.(common.ServiceData_FieldPathArrayOfValues)
  1041  	return res, ok
  1042  }
  1043  func (fpsaov *ResourceChangeLog_FieldSubPathArrayOfValues) AsResourcePathArrayOfValues() (ResourceChangeLogResourceChange_FieldPathArrayOfValues, bool) {
  1044  	res, ok := fpsaov.subPathArrayOfValues.(ResourceChangeLogResourceChange_FieldPathArrayOfValues)
  1045  	return res, ok
  1046  }
  1047  func (fpsaov *ResourceChangeLog_FieldSubPathArrayOfValues) AsTransactionPathArrayOfValues() (ResourceChangeLogTransactionInfo_FieldPathArrayOfValues, bool) {
  1048  	res, ok := fpsaov.subPathArrayOfValues.(ResourceChangeLogTransactionInfo_FieldPathArrayOfValues)
  1049  	return res, ok
  1050  }
  1051  
  1052  // FieldPath provides implementation to handle
  1053  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1054  type ResourceChangeLogResourceChange_FieldPath interface {
  1055  	gotenobject.FieldPath
  1056  	Selector() ResourceChangeLogResourceChange_FieldPathSelector
  1057  	Get(source *ResourceChangeLog_ResourceChange) []interface{}
  1058  	GetSingle(source *ResourceChangeLog_ResourceChange) (interface{}, bool)
  1059  	ClearValue(item *ResourceChangeLog_ResourceChange)
  1060  
  1061  	// Those methods build corresponding ResourceChangeLogResourceChange_FieldPathValue
  1062  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1063  	WithIValue(value interface{}) ResourceChangeLogResourceChange_FieldPathValue
  1064  	WithIArrayOfValues(values interface{}) ResourceChangeLogResourceChange_FieldPathArrayOfValues
  1065  	WithIArrayItemValue(value interface{}) ResourceChangeLogResourceChange_FieldPathArrayItemValue
  1066  }
  1067  
  1068  type ResourceChangeLogResourceChange_FieldPathSelector int32
  1069  
  1070  const (
  1071  	ResourceChangeLogResourceChange_FieldPathSelectorName          ResourceChangeLogResourceChange_FieldPathSelector = 0
  1072  	ResourceChangeLogResourceChange_FieldPathSelectorType          ResourceChangeLogResourceChange_FieldPathSelector = 1
  1073  	ResourceChangeLogResourceChange_FieldPathSelectorAction        ResourceChangeLogResourceChange_FieldPathSelector = 2
  1074  	ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields ResourceChangeLogResourceChange_FieldPathSelector = 3
  1075  	ResourceChangeLogResourceChange_FieldPathSelectorPrevious      ResourceChangeLogResourceChange_FieldPathSelector = 4
  1076  	ResourceChangeLogResourceChange_FieldPathSelectorCurrent       ResourceChangeLogResourceChange_FieldPathSelector = 5
  1077  	ResourceChangeLogResourceChange_FieldPathSelectorLabels        ResourceChangeLogResourceChange_FieldPathSelector = 6
  1078  	ResourceChangeLogResourceChange_FieldPathSelectorPre           ResourceChangeLogResourceChange_FieldPathSelector = 7
  1079  	ResourceChangeLogResourceChange_FieldPathSelectorPost          ResourceChangeLogResourceChange_FieldPathSelector = 8
  1080  )
  1081  
  1082  func (s ResourceChangeLogResourceChange_FieldPathSelector) String() string {
  1083  	switch s {
  1084  	case ResourceChangeLogResourceChange_FieldPathSelectorName:
  1085  		return "name"
  1086  	case ResourceChangeLogResourceChange_FieldPathSelectorType:
  1087  		return "type"
  1088  	case ResourceChangeLogResourceChange_FieldPathSelectorAction:
  1089  		return "action"
  1090  	case ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields:
  1091  		return "updated_fields"
  1092  	case ResourceChangeLogResourceChange_FieldPathSelectorPrevious:
  1093  		return "previous"
  1094  	case ResourceChangeLogResourceChange_FieldPathSelectorCurrent:
  1095  		return "current"
  1096  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1097  		return "labels"
  1098  	case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1099  		return "pre"
  1100  	case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1101  		return "post"
  1102  	default:
  1103  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", s))
  1104  	}
  1105  }
  1106  
  1107  func BuildResourceChangeLogResourceChange_FieldPath(fp gotenobject.RawFieldPath) (ResourceChangeLogResourceChange_FieldPath, error) {
  1108  	if len(fp) == 0 {
  1109  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ResourceChangeLog_ResourceChange")
  1110  	}
  1111  	if len(fp) == 1 {
  1112  		switch fp[0] {
  1113  		case "name":
  1114  			return &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorName}, nil
  1115  		case "type":
  1116  			return &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorType}, nil
  1117  		case "action":
  1118  			return &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorAction}, nil
  1119  		case "updated_fields", "updatedFields", "updated-fields":
  1120  			return &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields}, nil
  1121  		case "previous":
  1122  			return &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorPrevious}, nil
  1123  		case "current":
  1124  			return &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorCurrent}, nil
  1125  		case "labels":
  1126  			return &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorLabels}, nil
  1127  		case "pre":
  1128  			return &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorPre}, nil
  1129  		case "post":
  1130  			return &ResourceChangeLogResourceChange_FieldTerminalPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorPost}, nil
  1131  		}
  1132  	} else {
  1133  		switch fp[0] {
  1134  		case "pre":
  1135  			if subpath, err := common.BuildObjectState_FieldPath(fp[1:]); err != nil {
  1136  				return nil, err
  1137  			} else {
  1138  				return &ResourceChangeLogResourceChange_FieldSubPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorPre, subPath: subpath}, nil
  1139  			}
  1140  		case "post":
  1141  			if subpath, err := common.BuildObjectState_FieldPath(fp[1:]); err != nil {
  1142  				return nil, err
  1143  			} else {
  1144  				return &ResourceChangeLogResourceChange_FieldSubPath{selector: ResourceChangeLogResourceChange_FieldPathSelectorPost, subPath: subpath}, nil
  1145  			}
  1146  		case "labels":
  1147  			if len(fp) > 2 {
  1148  				return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object ResourceChangeLog_ResourceChange)", fp)
  1149  			}
  1150  			return &ResourceChangeLogResourceChange_FieldPathMap{selector: ResourceChangeLogResourceChange_FieldPathSelectorLabels, key: fp[1]}, nil
  1151  		}
  1152  	}
  1153  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ResourceChangeLog_ResourceChange", fp)
  1154  }
  1155  
  1156  func ParseResourceChangeLogResourceChange_FieldPath(rawField string) (ResourceChangeLogResourceChange_FieldPath, error) {
  1157  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1158  	if err != nil {
  1159  		return nil, err
  1160  	}
  1161  	return BuildResourceChangeLogResourceChange_FieldPath(fp)
  1162  }
  1163  
  1164  func MustParseResourceChangeLogResourceChange_FieldPath(rawField string) ResourceChangeLogResourceChange_FieldPath {
  1165  	fp, err := ParseResourceChangeLogResourceChange_FieldPath(rawField)
  1166  	if err != nil {
  1167  		panic(err)
  1168  	}
  1169  	return fp
  1170  }
  1171  
  1172  type ResourceChangeLogResourceChange_FieldTerminalPath struct {
  1173  	selector ResourceChangeLogResourceChange_FieldPathSelector
  1174  }
  1175  
  1176  var _ ResourceChangeLogResourceChange_FieldPath = (*ResourceChangeLogResourceChange_FieldTerminalPath)(nil)
  1177  
  1178  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) Selector() ResourceChangeLogResourceChange_FieldPathSelector {
  1179  	return fp.selector
  1180  }
  1181  
  1182  // String returns path representation in proto convention
  1183  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) String() string {
  1184  	return fp.selector.String()
  1185  }
  1186  
  1187  // JSONString returns path representation is JSON convention
  1188  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) JSONString() string {
  1189  	return strcase.ToLowerCamel(fp.String())
  1190  }
  1191  
  1192  // Get returns all values pointed by specific field from source ResourceChangeLog_ResourceChange
  1193  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) Get(source *ResourceChangeLog_ResourceChange) (values []interface{}) {
  1194  	if source != nil {
  1195  		switch fp.selector {
  1196  		case ResourceChangeLogResourceChange_FieldPathSelectorName:
  1197  			values = append(values, source.Name)
  1198  		case ResourceChangeLogResourceChange_FieldPathSelectorType:
  1199  			values = append(values, source.Type)
  1200  		case ResourceChangeLogResourceChange_FieldPathSelectorAction:
  1201  			values = append(values, source.Action)
  1202  		case ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields:
  1203  			if source.UpdatedFields != nil {
  1204  				values = append(values, source.UpdatedFields)
  1205  			}
  1206  		case ResourceChangeLogResourceChange_FieldPathSelectorPrevious:
  1207  			if source.Previous != nil {
  1208  				values = append(values, source.Previous)
  1209  			}
  1210  		case ResourceChangeLogResourceChange_FieldPathSelectorCurrent:
  1211  			if source.Current != nil {
  1212  				values = append(values, source.Current)
  1213  			}
  1214  		case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1215  			values = append(values, source.Labels)
  1216  		case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1217  			if source.Pre != nil {
  1218  				values = append(values, source.Pre)
  1219  			}
  1220  		case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1221  			if source.Post != nil {
  1222  				values = append(values, source.Post)
  1223  			}
  1224  		default:
  1225  			panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fp.selector))
  1226  		}
  1227  	}
  1228  	return
  1229  }
  1230  
  1231  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1232  	return fp.Get(source.(*ResourceChangeLog_ResourceChange))
  1233  }
  1234  
  1235  // GetSingle returns value pointed by specific field of from source ResourceChangeLog_ResourceChange
  1236  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) GetSingle(source *ResourceChangeLog_ResourceChange) (interface{}, bool) {
  1237  	switch fp.selector {
  1238  	case ResourceChangeLogResourceChange_FieldPathSelectorName:
  1239  		return source.GetName(), source != nil
  1240  	case ResourceChangeLogResourceChange_FieldPathSelectorType:
  1241  		return source.GetType(), source != nil
  1242  	case ResourceChangeLogResourceChange_FieldPathSelectorAction:
  1243  		return source.GetAction(), source != nil
  1244  	case ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields:
  1245  		res := source.GetUpdatedFields()
  1246  		return res, res != nil
  1247  	case ResourceChangeLogResourceChange_FieldPathSelectorPrevious:
  1248  		res := source.GetPrevious()
  1249  		return res, res != nil
  1250  	case ResourceChangeLogResourceChange_FieldPathSelectorCurrent:
  1251  		res := source.GetCurrent()
  1252  		return res, res != nil
  1253  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1254  		res := source.GetLabels()
  1255  		return res, res != nil
  1256  	case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1257  		res := source.GetPre()
  1258  		return res, res != nil
  1259  	case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1260  		res := source.GetPost()
  1261  		return res, res != nil
  1262  	default:
  1263  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fp.selector))
  1264  	}
  1265  }
  1266  
  1267  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1268  	return fp.GetSingle(source.(*ResourceChangeLog_ResourceChange))
  1269  }
  1270  
  1271  // GetDefault returns a default value of the field type
  1272  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) GetDefault() interface{} {
  1273  	switch fp.selector {
  1274  	case ResourceChangeLogResourceChange_FieldPathSelectorName:
  1275  		return ""
  1276  	case ResourceChangeLogResourceChange_FieldPathSelectorType:
  1277  		return ""
  1278  	case ResourceChangeLogResourceChange_FieldPathSelectorAction:
  1279  		return ResourceChangeLog_ResourceChange_UNDEFINED
  1280  	case ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields:
  1281  		return (*fieldmaskpb.FieldMask)(nil)
  1282  	case ResourceChangeLogResourceChange_FieldPathSelectorPrevious:
  1283  		return (*anypb.Any)(nil)
  1284  	case ResourceChangeLogResourceChange_FieldPathSelectorCurrent:
  1285  		return (*anypb.Any)(nil)
  1286  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1287  		return (map[string]string)(nil)
  1288  	case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1289  		return (*common.ObjectState)(nil)
  1290  	case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1291  		return (*common.ObjectState)(nil)
  1292  	default:
  1293  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fp.selector))
  1294  	}
  1295  }
  1296  
  1297  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) ClearValue(item *ResourceChangeLog_ResourceChange) {
  1298  	if item != nil {
  1299  		switch fp.selector {
  1300  		case ResourceChangeLogResourceChange_FieldPathSelectorName:
  1301  			item.Name = ""
  1302  		case ResourceChangeLogResourceChange_FieldPathSelectorType:
  1303  			item.Type = ""
  1304  		case ResourceChangeLogResourceChange_FieldPathSelectorAction:
  1305  			item.Action = ResourceChangeLog_ResourceChange_UNDEFINED
  1306  		case ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields:
  1307  			item.UpdatedFields = nil
  1308  		case ResourceChangeLogResourceChange_FieldPathSelectorPrevious:
  1309  			item.Previous = nil
  1310  		case ResourceChangeLogResourceChange_FieldPathSelectorCurrent:
  1311  			item.Current = nil
  1312  		case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1313  			item.Labels = nil
  1314  		case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1315  			item.Pre = nil
  1316  		case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1317  			item.Post = nil
  1318  		default:
  1319  			panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fp.selector))
  1320  		}
  1321  	}
  1322  }
  1323  
  1324  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1325  	fp.ClearValue(item.(*ResourceChangeLog_ResourceChange))
  1326  }
  1327  
  1328  // IsLeaf - whether field path is holds simple value
  1329  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) IsLeaf() bool {
  1330  	return fp.selector == ResourceChangeLogResourceChange_FieldPathSelectorName ||
  1331  		fp.selector == ResourceChangeLogResourceChange_FieldPathSelectorType ||
  1332  		fp.selector == ResourceChangeLogResourceChange_FieldPathSelectorAction ||
  1333  		fp.selector == ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields ||
  1334  		fp.selector == ResourceChangeLogResourceChange_FieldPathSelectorPrevious ||
  1335  		fp.selector == ResourceChangeLogResourceChange_FieldPathSelectorCurrent ||
  1336  		fp.selector == ResourceChangeLogResourceChange_FieldPathSelectorLabels
  1337  }
  1338  
  1339  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1340  	return []gotenobject.FieldPath{fp}
  1341  }
  1342  
  1343  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) WithIValue(value interface{}) ResourceChangeLogResourceChange_FieldPathValue {
  1344  	switch fp.selector {
  1345  	case ResourceChangeLogResourceChange_FieldPathSelectorName:
  1346  		return &ResourceChangeLogResourceChange_FieldTerminalPathValue{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, value: value.(string)}
  1347  	case ResourceChangeLogResourceChange_FieldPathSelectorType:
  1348  		return &ResourceChangeLogResourceChange_FieldTerminalPathValue{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, value: value.(string)}
  1349  	case ResourceChangeLogResourceChange_FieldPathSelectorAction:
  1350  		return &ResourceChangeLogResourceChange_FieldTerminalPathValue{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, value: value.(ResourceChangeLog_ResourceChange_Action)}
  1351  	case ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields:
  1352  		return &ResourceChangeLogResourceChange_FieldTerminalPathValue{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, value: value.(*fieldmaskpb.FieldMask)}
  1353  	case ResourceChangeLogResourceChange_FieldPathSelectorPrevious:
  1354  		return &ResourceChangeLogResourceChange_FieldTerminalPathValue{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, value: value.(*anypb.Any)}
  1355  	case ResourceChangeLogResourceChange_FieldPathSelectorCurrent:
  1356  		return &ResourceChangeLogResourceChange_FieldTerminalPathValue{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, value: value.(*anypb.Any)}
  1357  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1358  		return &ResourceChangeLogResourceChange_FieldTerminalPathValue{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, value: value.(map[string]string)}
  1359  	case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1360  		return &ResourceChangeLogResourceChange_FieldTerminalPathValue{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, value: value.(*common.ObjectState)}
  1361  	case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1362  		return &ResourceChangeLogResourceChange_FieldTerminalPathValue{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, value: value.(*common.ObjectState)}
  1363  	default:
  1364  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fp.selector))
  1365  	}
  1366  }
  1367  
  1368  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1369  	return fp.WithIValue(value)
  1370  }
  1371  
  1372  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) WithIArrayOfValues(values interface{}) ResourceChangeLogResourceChange_FieldPathArrayOfValues {
  1373  	fpaov := &ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues{ResourceChangeLogResourceChange_FieldTerminalPath: *fp}
  1374  	switch fp.selector {
  1375  	case ResourceChangeLogResourceChange_FieldPathSelectorName:
  1376  		return &ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, values: values.([]string)}
  1377  	case ResourceChangeLogResourceChange_FieldPathSelectorType:
  1378  		return &ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, values: values.([]string)}
  1379  	case ResourceChangeLogResourceChange_FieldPathSelectorAction:
  1380  		return &ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, values: values.([]ResourceChangeLog_ResourceChange_Action)}
  1381  	case ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields:
  1382  		return &ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, values: values.([]*fieldmaskpb.FieldMask)}
  1383  	case ResourceChangeLogResourceChange_FieldPathSelectorPrevious:
  1384  		return &ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, values: values.([]*anypb.Any)}
  1385  	case ResourceChangeLogResourceChange_FieldPathSelectorCurrent:
  1386  		return &ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, values: values.([]*anypb.Any)}
  1387  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1388  		return &ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, values: values.([]map[string]string)}
  1389  	case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1390  		return &ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, values: values.([]*common.ObjectState)}
  1391  	case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1392  		return &ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues{ResourceChangeLogResourceChange_FieldTerminalPath: *fp, values: values.([]*common.ObjectState)}
  1393  	default:
  1394  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fp.selector))
  1395  	}
  1396  	return fpaov
  1397  }
  1398  
  1399  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1400  	return fp.WithIArrayOfValues(values)
  1401  }
  1402  
  1403  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) WithIArrayItemValue(value interface{}) ResourceChangeLogResourceChange_FieldPathArrayItemValue {
  1404  	switch fp.selector {
  1405  	default:
  1406  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fp.selector))
  1407  	}
  1408  }
  1409  
  1410  func (fp *ResourceChangeLogResourceChange_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1411  	return fp.WithIArrayItemValue(value)
  1412  }
  1413  
  1414  // FieldPath for map type with additional Key information
  1415  type ResourceChangeLogResourceChange_FieldPathMap struct {
  1416  	key      string
  1417  	selector ResourceChangeLogResourceChange_FieldPathSelector
  1418  }
  1419  
  1420  var _ ResourceChangeLogResourceChange_FieldPath = (*ResourceChangeLogResourceChange_FieldPathMap)(nil)
  1421  
  1422  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) Selector() ResourceChangeLogResourceChange_FieldPathSelector {
  1423  	return fpm.selector
  1424  }
  1425  
  1426  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) Key() string {
  1427  	return fpm.key
  1428  }
  1429  
  1430  // String returns path representation in proto convention
  1431  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) String() string {
  1432  	return fpm.selector.String() + "." + fpm.key
  1433  }
  1434  
  1435  // JSONString returns path representation is JSON convention. Note that map keys are not transformed
  1436  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) JSONString() string {
  1437  	return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key
  1438  }
  1439  
  1440  // Get returns all values pointed by selected field map key from source ResourceChangeLog_ResourceChange
  1441  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) Get(source *ResourceChangeLog_ResourceChange) (values []interface{}) {
  1442  	switch fpm.selector {
  1443  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1444  		if value, ok := source.GetLabels()[fpm.key]; ok {
  1445  			values = append(values, value)
  1446  		}
  1447  	default:
  1448  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpm.selector))
  1449  	}
  1450  	return
  1451  }
  1452  
  1453  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) GetRaw(source proto.Message) []interface{} {
  1454  	return fpm.Get(source.(*ResourceChangeLog_ResourceChange))
  1455  }
  1456  
  1457  // GetSingle returns value by selected field map key from source ResourceChangeLog_ResourceChange
  1458  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) GetSingle(source *ResourceChangeLog_ResourceChange) (interface{}, bool) {
  1459  	switch fpm.selector {
  1460  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1461  		res, ok := source.GetLabels()[fpm.key]
  1462  		return res, ok
  1463  	default:
  1464  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpm.selector))
  1465  	}
  1466  }
  1467  
  1468  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1469  	return fpm.GetSingle(source.(*ResourceChangeLog_ResourceChange))
  1470  }
  1471  
  1472  // GetDefault returns a default value of the field type
  1473  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) GetDefault() interface{} {
  1474  	switch fpm.selector {
  1475  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1476  		var v string
  1477  		return v
  1478  	default:
  1479  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpm.selector))
  1480  	}
  1481  }
  1482  
  1483  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) ClearValue(item *ResourceChangeLog_ResourceChange) {
  1484  	if item != nil {
  1485  		switch fpm.selector {
  1486  		case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1487  			delete(item.Labels, fpm.key)
  1488  		default:
  1489  			panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpm.selector))
  1490  		}
  1491  	}
  1492  }
  1493  
  1494  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) ClearValueRaw(item proto.Message) {
  1495  	fpm.ClearValue(item.(*ResourceChangeLog_ResourceChange))
  1496  }
  1497  
  1498  // IsLeaf - whether field path is holds simple value
  1499  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) IsLeaf() bool {
  1500  	switch fpm.selector {
  1501  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1502  		return true
  1503  	default:
  1504  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpm.selector))
  1505  	}
  1506  }
  1507  
  1508  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1509  	return []gotenobject.FieldPath{fpm}
  1510  }
  1511  
  1512  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) WithIValue(value interface{}) ResourceChangeLogResourceChange_FieldPathValue {
  1513  	switch fpm.selector {
  1514  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1515  		return &ResourceChangeLogResourceChange_FieldPathMapValue{ResourceChangeLogResourceChange_FieldPathMap: *fpm, value: value.(string)}
  1516  	default:
  1517  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpm.selector))
  1518  	}
  1519  }
  1520  
  1521  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1522  	return fpm.WithIValue(value)
  1523  }
  1524  
  1525  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) WithIArrayOfValues(values interface{}) ResourceChangeLogResourceChange_FieldPathArrayOfValues {
  1526  	switch fpm.selector {
  1527  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1528  		return &ResourceChangeLogResourceChange_FieldPathMapArrayOfValues{ResourceChangeLogResourceChange_FieldPathMap: *fpm, values: values.([]string)}
  1529  	default:
  1530  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpm.selector))
  1531  	}
  1532  }
  1533  
  1534  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1535  	return fpm.WithIArrayOfValues(values)
  1536  }
  1537  
  1538  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) WithIArrayItemValue(value interface{}) ResourceChangeLogResourceChange_FieldPathArrayItemValue {
  1539  	panic("Cannot create array item value from map fieldpath")
  1540  }
  1541  
  1542  func (fpm *ResourceChangeLogResourceChange_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1543  	return fpm.WithIArrayItemValue(value)
  1544  }
  1545  
  1546  type ResourceChangeLogResourceChange_FieldSubPath struct {
  1547  	selector ResourceChangeLogResourceChange_FieldPathSelector
  1548  	subPath  gotenobject.FieldPath
  1549  }
  1550  
  1551  var _ ResourceChangeLogResourceChange_FieldPath = (*ResourceChangeLogResourceChange_FieldSubPath)(nil)
  1552  
  1553  func (fps *ResourceChangeLogResourceChange_FieldSubPath) Selector() ResourceChangeLogResourceChange_FieldPathSelector {
  1554  	return fps.selector
  1555  }
  1556  func (fps *ResourceChangeLogResourceChange_FieldSubPath) AsPreSubPath() (common.ObjectState_FieldPath, bool) {
  1557  	res, ok := fps.subPath.(common.ObjectState_FieldPath)
  1558  	return res, ok
  1559  }
  1560  func (fps *ResourceChangeLogResourceChange_FieldSubPath) AsPostSubPath() (common.ObjectState_FieldPath, bool) {
  1561  	res, ok := fps.subPath.(common.ObjectState_FieldPath)
  1562  	return res, ok
  1563  }
  1564  
  1565  // String returns path representation in proto convention
  1566  func (fps *ResourceChangeLogResourceChange_FieldSubPath) String() string {
  1567  	return fps.selector.String() + "." + fps.subPath.String()
  1568  }
  1569  
  1570  // JSONString returns path representation is JSON convention
  1571  func (fps *ResourceChangeLogResourceChange_FieldSubPath) JSONString() string {
  1572  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
  1573  }
  1574  
  1575  // Get returns all values pointed by selected field from source ResourceChangeLog_ResourceChange
  1576  func (fps *ResourceChangeLogResourceChange_FieldSubPath) Get(source *ResourceChangeLog_ResourceChange) (values []interface{}) {
  1577  	switch fps.selector {
  1578  	case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1579  		values = append(values, fps.subPath.GetRaw(source.GetPre())...)
  1580  	case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1581  		values = append(values, fps.subPath.GetRaw(source.GetPost())...)
  1582  	default:
  1583  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fps.selector))
  1584  	}
  1585  	return
  1586  }
  1587  
  1588  func (fps *ResourceChangeLogResourceChange_FieldSubPath) GetRaw(source proto.Message) []interface{} {
  1589  	return fps.Get(source.(*ResourceChangeLog_ResourceChange))
  1590  }
  1591  
  1592  // GetSingle returns value of selected field from source ResourceChangeLog_ResourceChange
  1593  func (fps *ResourceChangeLogResourceChange_FieldSubPath) GetSingle(source *ResourceChangeLog_ResourceChange) (interface{}, bool) {
  1594  	switch fps.selector {
  1595  	case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1596  		if source.GetPre() == nil {
  1597  			return nil, false
  1598  		}
  1599  		return fps.subPath.GetSingleRaw(source.GetPre())
  1600  	case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1601  		if source.GetPost() == nil {
  1602  			return nil, false
  1603  		}
  1604  		return fps.subPath.GetSingleRaw(source.GetPost())
  1605  	default:
  1606  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fps.selector))
  1607  	}
  1608  }
  1609  
  1610  func (fps *ResourceChangeLogResourceChange_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1611  	return fps.GetSingle(source.(*ResourceChangeLog_ResourceChange))
  1612  }
  1613  
  1614  // GetDefault returns a default value of the field type
  1615  func (fps *ResourceChangeLogResourceChange_FieldSubPath) GetDefault() interface{} {
  1616  	return fps.subPath.GetDefault()
  1617  }
  1618  
  1619  func (fps *ResourceChangeLogResourceChange_FieldSubPath) ClearValue(item *ResourceChangeLog_ResourceChange) {
  1620  	if item != nil {
  1621  		switch fps.selector {
  1622  		case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1623  			fps.subPath.ClearValueRaw(item.Pre)
  1624  		case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1625  			fps.subPath.ClearValueRaw(item.Post)
  1626  		default:
  1627  			panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fps.selector))
  1628  		}
  1629  	}
  1630  }
  1631  
  1632  func (fps *ResourceChangeLogResourceChange_FieldSubPath) ClearValueRaw(item proto.Message) {
  1633  	fps.ClearValue(item.(*ResourceChangeLog_ResourceChange))
  1634  }
  1635  
  1636  // IsLeaf - whether field path is holds simple value
  1637  func (fps *ResourceChangeLogResourceChange_FieldSubPath) IsLeaf() bool {
  1638  	return fps.subPath.IsLeaf()
  1639  }
  1640  
  1641  func (fps *ResourceChangeLogResourceChange_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1642  	iPaths := []gotenobject.FieldPath{&ResourceChangeLogResourceChange_FieldTerminalPath{selector: fps.selector}}
  1643  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
  1644  	return iPaths
  1645  }
  1646  
  1647  func (fps *ResourceChangeLogResourceChange_FieldSubPath) WithIValue(value interface{}) ResourceChangeLogResourceChange_FieldPathValue {
  1648  	return &ResourceChangeLogResourceChange_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
  1649  }
  1650  
  1651  func (fps *ResourceChangeLogResourceChange_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1652  	return fps.WithIValue(value)
  1653  }
  1654  
  1655  func (fps *ResourceChangeLogResourceChange_FieldSubPath) WithIArrayOfValues(values interface{}) ResourceChangeLogResourceChange_FieldPathArrayOfValues {
  1656  	return &ResourceChangeLogResourceChange_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
  1657  }
  1658  
  1659  func (fps *ResourceChangeLogResourceChange_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1660  	return fps.WithIArrayOfValues(values)
  1661  }
  1662  
  1663  func (fps *ResourceChangeLogResourceChange_FieldSubPath) WithIArrayItemValue(value interface{}) ResourceChangeLogResourceChange_FieldPathArrayItemValue {
  1664  	return &ResourceChangeLogResourceChange_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
  1665  }
  1666  
  1667  func (fps *ResourceChangeLogResourceChange_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1668  	return fps.WithIArrayItemValue(value)
  1669  }
  1670  
  1671  // ResourceChangeLogResourceChange_FieldPathValue allows storing values for ResourceChange fields according to their type
  1672  type ResourceChangeLogResourceChange_FieldPathValue interface {
  1673  	ResourceChangeLogResourceChange_FieldPath
  1674  	gotenobject.FieldPathValue
  1675  	SetTo(target **ResourceChangeLog_ResourceChange)
  1676  	CompareWith(*ResourceChangeLog_ResourceChange) (cmp int, comparable bool)
  1677  }
  1678  
  1679  func ParseResourceChangeLogResourceChange_FieldPathValue(pathStr, valueStr string) (ResourceChangeLogResourceChange_FieldPathValue, error) {
  1680  	fp, err := ParseResourceChangeLogResourceChange_FieldPath(pathStr)
  1681  	if err != nil {
  1682  		return nil, err
  1683  	}
  1684  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1685  	if err != nil {
  1686  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ResourceChange field path value from %s: %v", valueStr, err)
  1687  	}
  1688  	return fpv.(ResourceChangeLogResourceChange_FieldPathValue), nil
  1689  }
  1690  
  1691  func MustParseResourceChangeLogResourceChange_FieldPathValue(pathStr, valueStr string) ResourceChangeLogResourceChange_FieldPathValue {
  1692  	fpv, err := ParseResourceChangeLogResourceChange_FieldPathValue(pathStr, valueStr)
  1693  	if err != nil {
  1694  		panic(err)
  1695  	}
  1696  	return fpv
  1697  }
  1698  
  1699  type ResourceChangeLogResourceChange_FieldTerminalPathValue struct {
  1700  	ResourceChangeLogResourceChange_FieldTerminalPath
  1701  	value interface{}
  1702  }
  1703  
  1704  var _ ResourceChangeLogResourceChange_FieldPathValue = (*ResourceChangeLogResourceChange_FieldTerminalPathValue)(nil)
  1705  
  1706  // GetRawValue returns raw value stored under selected path for 'ResourceChange' as interface{}
  1707  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) GetRawValue() interface{} {
  1708  	return fpv.value
  1709  }
  1710  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) AsNameValue() (string, bool) {
  1711  	res, ok := fpv.value.(string)
  1712  	return res, ok
  1713  }
  1714  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) AsTypeValue() (string, bool) {
  1715  	res, ok := fpv.value.(string)
  1716  	return res, ok
  1717  }
  1718  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) AsActionValue() (ResourceChangeLog_ResourceChange_Action, bool) {
  1719  	res, ok := fpv.value.(ResourceChangeLog_ResourceChange_Action)
  1720  	return res, ok
  1721  }
  1722  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) AsUpdatedFieldsValue() (*fieldmaskpb.FieldMask, bool) {
  1723  	res, ok := fpv.value.(*fieldmaskpb.FieldMask)
  1724  	return res, ok
  1725  }
  1726  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) AsPreviousValue() (*anypb.Any, bool) {
  1727  	res, ok := fpv.value.(*anypb.Any)
  1728  	return res, ok
  1729  }
  1730  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) AsCurrentValue() (*anypb.Any, bool) {
  1731  	res, ok := fpv.value.(*anypb.Any)
  1732  	return res, ok
  1733  }
  1734  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) AsLabelsValue() (map[string]string, bool) {
  1735  	res, ok := fpv.value.(map[string]string)
  1736  	return res, ok
  1737  }
  1738  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) AsPreValue() (*common.ObjectState, bool) {
  1739  	res, ok := fpv.value.(*common.ObjectState)
  1740  	return res, ok
  1741  }
  1742  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) AsPostValue() (*common.ObjectState, bool) {
  1743  	res, ok := fpv.value.(*common.ObjectState)
  1744  	return res, ok
  1745  }
  1746  
  1747  // SetTo stores value for selected field for object ResourceChange
  1748  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) SetTo(target **ResourceChangeLog_ResourceChange) {
  1749  	if *target == nil {
  1750  		*target = new(ResourceChangeLog_ResourceChange)
  1751  	}
  1752  	switch fpv.selector {
  1753  	case ResourceChangeLogResourceChange_FieldPathSelectorName:
  1754  		(*target).Name = fpv.value.(string)
  1755  	case ResourceChangeLogResourceChange_FieldPathSelectorType:
  1756  		(*target).Type = fpv.value.(string)
  1757  	case ResourceChangeLogResourceChange_FieldPathSelectorAction:
  1758  		(*target).Action = fpv.value.(ResourceChangeLog_ResourceChange_Action)
  1759  	case ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields:
  1760  		(*target).UpdatedFields = fpv.value.(*fieldmaskpb.FieldMask)
  1761  	case ResourceChangeLogResourceChange_FieldPathSelectorPrevious:
  1762  		(*target).Previous = fpv.value.(*anypb.Any)
  1763  	case ResourceChangeLogResourceChange_FieldPathSelectorCurrent:
  1764  		(*target).Current = fpv.value.(*anypb.Any)
  1765  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1766  		(*target).Labels = fpv.value.(map[string]string)
  1767  	case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1768  		(*target).Pre = fpv.value.(*common.ObjectState)
  1769  	case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1770  		(*target).Post = fpv.value.(*common.ObjectState)
  1771  	default:
  1772  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpv.selector))
  1773  	}
  1774  }
  1775  
  1776  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1777  	typedObject := target.(*ResourceChangeLog_ResourceChange)
  1778  	fpv.SetTo(&typedObject)
  1779  }
  1780  
  1781  // CompareWith compares value in the 'ResourceChangeLogResourceChange_FieldTerminalPathValue' with the value under path in 'ResourceChangeLog_ResourceChange'.
  1782  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) CompareWith(source *ResourceChangeLog_ResourceChange) (int, bool) {
  1783  	switch fpv.selector {
  1784  	case ResourceChangeLogResourceChange_FieldPathSelectorName:
  1785  		leftValue := fpv.value.(string)
  1786  		rightValue := source.GetName()
  1787  		if (leftValue) == (rightValue) {
  1788  			return 0, true
  1789  		} else if (leftValue) < (rightValue) {
  1790  			return -1, true
  1791  		} else {
  1792  			return 1, true
  1793  		}
  1794  	case ResourceChangeLogResourceChange_FieldPathSelectorType:
  1795  		leftValue := fpv.value.(string)
  1796  		rightValue := source.GetType()
  1797  		if (leftValue) == (rightValue) {
  1798  			return 0, true
  1799  		} else if (leftValue) < (rightValue) {
  1800  			return -1, true
  1801  		} else {
  1802  			return 1, true
  1803  		}
  1804  	case ResourceChangeLogResourceChange_FieldPathSelectorAction:
  1805  		leftValue := fpv.value.(ResourceChangeLog_ResourceChange_Action)
  1806  		rightValue := source.GetAction()
  1807  		if (leftValue) == (rightValue) {
  1808  			return 0, true
  1809  		} else if (leftValue) < (rightValue) {
  1810  			return -1, true
  1811  		} else {
  1812  			return 1, true
  1813  		}
  1814  	case ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields:
  1815  		return 0, false
  1816  	case ResourceChangeLogResourceChange_FieldPathSelectorPrevious:
  1817  		return 0, false
  1818  	case ResourceChangeLogResourceChange_FieldPathSelectorCurrent:
  1819  		return 0, false
  1820  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1821  		return 0, false
  1822  	case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1823  		return 0, false
  1824  	case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1825  		return 0, false
  1826  	default:
  1827  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpv.selector))
  1828  	}
  1829  }
  1830  
  1831  func (fpv *ResourceChangeLogResourceChange_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1832  	return fpv.CompareWith(source.(*ResourceChangeLog_ResourceChange))
  1833  }
  1834  
  1835  type ResourceChangeLogResourceChange_FieldPathMapValue struct {
  1836  	ResourceChangeLogResourceChange_FieldPathMap
  1837  	value interface{}
  1838  }
  1839  
  1840  var _ ResourceChangeLogResourceChange_FieldPathValue = (*ResourceChangeLogResourceChange_FieldPathMapValue)(nil)
  1841  
  1842  // GetValue returns value stored under selected field in ResourceChange as interface{}
  1843  func (fpmv *ResourceChangeLogResourceChange_FieldPathMapValue) GetRawValue() interface{} {
  1844  	return fpmv.value
  1845  }
  1846  func (fpmv *ResourceChangeLogResourceChange_FieldPathMapValue) AsLabelsElementValue() (string, bool) {
  1847  	res, ok := fpmv.value.(string)
  1848  	return res, ok
  1849  }
  1850  
  1851  // SetTo stores value for selected field in ResourceChange
  1852  func (fpmv *ResourceChangeLogResourceChange_FieldPathMapValue) SetTo(target **ResourceChangeLog_ResourceChange) {
  1853  	if *target == nil {
  1854  		*target = new(ResourceChangeLog_ResourceChange)
  1855  	}
  1856  	switch fpmv.selector {
  1857  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1858  		if (*target).Labels == nil {
  1859  			(*target).Labels = make(map[string]string)
  1860  		}
  1861  		(*target).Labels[fpmv.key] = fpmv.value.(string)
  1862  	default:
  1863  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpmv.selector))
  1864  	}
  1865  }
  1866  
  1867  func (fpmv *ResourceChangeLogResourceChange_FieldPathMapValue) SetToRaw(target proto.Message) {
  1868  	typedObject := target.(*ResourceChangeLog_ResourceChange)
  1869  	fpmv.SetTo(&typedObject)
  1870  }
  1871  
  1872  // CompareWith compares value in the 'ResourceChangeLogResourceChange_FieldPathMapValue' with the value under path in 'ResourceChangeLog_ResourceChange'.
  1873  func (fpmv *ResourceChangeLogResourceChange_FieldPathMapValue) CompareWith(source *ResourceChangeLog_ResourceChange) (int, bool) {
  1874  	switch fpmv.selector {
  1875  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  1876  		leftValue := fpmv.value.(string)
  1877  		rightValue := source.GetLabels()[fpmv.key]
  1878  		if (leftValue) == (rightValue) {
  1879  			return 0, true
  1880  		} else if (leftValue) < (rightValue) {
  1881  			return -1, true
  1882  		} else {
  1883  			return 1, true
  1884  		}
  1885  	default:
  1886  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpmv.selector))
  1887  	}
  1888  }
  1889  
  1890  func (fpmv *ResourceChangeLogResourceChange_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) {
  1891  	return fpmv.CompareWith(source.(*ResourceChangeLog_ResourceChange))
  1892  }
  1893  
  1894  type ResourceChangeLogResourceChange_FieldSubPathValue struct {
  1895  	ResourceChangeLogResourceChange_FieldPath
  1896  	subPathValue gotenobject.FieldPathValue
  1897  }
  1898  
  1899  var _ ResourceChangeLogResourceChange_FieldPathValue = (*ResourceChangeLogResourceChange_FieldSubPathValue)(nil)
  1900  
  1901  func (fpvs *ResourceChangeLogResourceChange_FieldSubPathValue) AsPrePathValue() (common.ObjectState_FieldPathValue, bool) {
  1902  	res, ok := fpvs.subPathValue.(common.ObjectState_FieldPathValue)
  1903  	return res, ok
  1904  }
  1905  func (fpvs *ResourceChangeLogResourceChange_FieldSubPathValue) AsPostPathValue() (common.ObjectState_FieldPathValue, bool) {
  1906  	res, ok := fpvs.subPathValue.(common.ObjectState_FieldPathValue)
  1907  	return res, ok
  1908  }
  1909  
  1910  func (fpvs *ResourceChangeLogResourceChange_FieldSubPathValue) SetTo(target **ResourceChangeLog_ResourceChange) {
  1911  	if *target == nil {
  1912  		*target = new(ResourceChangeLog_ResourceChange)
  1913  	}
  1914  	switch fpvs.Selector() {
  1915  	case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1916  		fpvs.subPathValue.(common.ObjectState_FieldPathValue).SetTo(&(*target).Pre)
  1917  	case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1918  		fpvs.subPathValue.(common.ObjectState_FieldPathValue).SetTo(&(*target).Post)
  1919  	default:
  1920  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpvs.Selector()))
  1921  	}
  1922  }
  1923  
  1924  func (fpvs *ResourceChangeLogResourceChange_FieldSubPathValue) SetToRaw(target proto.Message) {
  1925  	typedObject := target.(*ResourceChangeLog_ResourceChange)
  1926  	fpvs.SetTo(&typedObject)
  1927  }
  1928  
  1929  func (fpvs *ResourceChangeLogResourceChange_FieldSubPathValue) GetRawValue() interface{} {
  1930  	return fpvs.subPathValue.GetRawValue()
  1931  }
  1932  
  1933  func (fpvs *ResourceChangeLogResourceChange_FieldSubPathValue) CompareWith(source *ResourceChangeLog_ResourceChange) (int, bool) {
  1934  	switch fpvs.Selector() {
  1935  	case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  1936  		return fpvs.subPathValue.(common.ObjectState_FieldPathValue).CompareWith(source.GetPre())
  1937  	case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  1938  		return fpvs.subPathValue.(common.ObjectState_FieldPathValue).CompareWith(source.GetPost())
  1939  	default:
  1940  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpvs.Selector()))
  1941  	}
  1942  }
  1943  
  1944  func (fpvs *ResourceChangeLogResourceChange_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1945  	return fpvs.CompareWith(source.(*ResourceChangeLog_ResourceChange))
  1946  }
  1947  
  1948  // ResourceChangeLogResourceChange_FieldPathArrayItemValue allows storing single item in Path-specific values for ResourceChange according to their type
  1949  // Present only for array (repeated) types.
  1950  type ResourceChangeLogResourceChange_FieldPathArrayItemValue interface {
  1951  	gotenobject.FieldPathArrayItemValue
  1952  	ResourceChangeLogResourceChange_FieldPath
  1953  	ContainsValue(*ResourceChangeLog_ResourceChange) bool
  1954  }
  1955  
  1956  // ParseResourceChangeLogResourceChange_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1957  func ParseResourceChangeLogResourceChange_FieldPathArrayItemValue(pathStr, valueStr string) (ResourceChangeLogResourceChange_FieldPathArrayItemValue, error) {
  1958  	fp, err := ParseResourceChangeLogResourceChange_FieldPath(pathStr)
  1959  	if err != nil {
  1960  		return nil, err
  1961  	}
  1962  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1963  	if err != nil {
  1964  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ResourceChange field path array item value from %s: %v", valueStr, err)
  1965  	}
  1966  	return fpaiv.(ResourceChangeLogResourceChange_FieldPathArrayItemValue), nil
  1967  }
  1968  
  1969  func MustParseResourceChangeLogResourceChange_FieldPathArrayItemValue(pathStr, valueStr string) ResourceChangeLogResourceChange_FieldPathArrayItemValue {
  1970  	fpaiv, err := ParseResourceChangeLogResourceChange_FieldPathArrayItemValue(pathStr, valueStr)
  1971  	if err != nil {
  1972  		panic(err)
  1973  	}
  1974  	return fpaiv
  1975  }
  1976  
  1977  type ResourceChangeLogResourceChange_FieldTerminalPathArrayItemValue struct {
  1978  	ResourceChangeLogResourceChange_FieldTerminalPath
  1979  	value interface{}
  1980  }
  1981  
  1982  var _ ResourceChangeLogResourceChange_FieldPathArrayItemValue = (*ResourceChangeLogResourceChange_FieldTerminalPathArrayItemValue)(nil)
  1983  
  1984  // GetRawValue returns stored element value for array in object ResourceChangeLog_ResourceChange as interface{}
  1985  func (fpaiv *ResourceChangeLogResourceChange_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1986  	return fpaiv.value
  1987  }
  1988  
  1989  func (fpaiv *ResourceChangeLogResourceChange_FieldTerminalPathArrayItemValue) GetSingle(source *ResourceChangeLog_ResourceChange) (interface{}, bool) {
  1990  	return nil, false
  1991  }
  1992  
  1993  func (fpaiv *ResourceChangeLogResourceChange_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1994  	return fpaiv.GetSingle(source.(*ResourceChangeLog_ResourceChange))
  1995  }
  1996  
  1997  // Contains returns a boolean indicating if value that is being held is present in given 'ResourceChange'
  1998  func (fpaiv *ResourceChangeLogResourceChange_FieldTerminalPathArrayItemValue) ContainsValue(source *ResourceChangeLog_ResourceChange) bool {
  1999  	slice := fpaiv.ResourceChangeLogResourceChange_FieldTerminalPath.Get(source)
  2000  	for _, v := range slice {
  2001  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  2002  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  2003  				return true
  2004  			}
  2005  		} else if reflect.DeepEqual(v, fpaiv.value) {
  2006  			return true
  2007  		}
  2008  	}
  2009  	return false
  2010  }
  2011  
  2012  type ResourceChangeLogResourceChange_FieldSubPathArrayItemValue struct {
  2013  	ResourceChangeLogResourceChange_FieldPath
  2014  	subPathItemValue gotenobject.FieldPathArrayItemValue
  2015  }
  2016  
  2017  // GetRawValue returns stored array item value
  2018  func (fpaivs *ResourceChangeLogResourceChange_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  2019  	return fpaivs.subPathItemValue.GetRawItemValue()
  2020  }
  2021  func (fpaivs *ResourceChangeLogResourceChange_FieldSubPathArrayItemValue) AsPrePathItemValue() (common.ObjectState_FieldPathArrayItemValue, bool) {
  2022  	res, ok := fpaivs.subPathItemValue.(common.ObjectState_FieldPathArrayItemValue)
  2023  	return res, ok
  2024  }
  2025  func (fpaivs *ResourceChangeLogResourceChange_FieldSubPathArrayItemValue) AsPostPathItemValue() (common.ObjectState_FieldPathArrayItemValue, bool) {
  2026  	res, ok := fpaivs.subPathItemValue.(common.ObjectState_FieldPathArrayItemValue)
  2027  	return res, ok
  2028  }
  2029  
  2030  // Contains returns a boolean indicating if value that is being held is present in given 'ResourceChange'
  2031  func (fpaivs *ResourceChangeLogResourceChange_FieldSubPathArrayItemValue) ContainsValue(source *ResourceChangeLog_ResourceChange) bool {
  2032  	switch fpaivs.Selector() {
  2033  	case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  2034  		return fpaivs.subPathItemValue.(common.ObjectState_FieldPathArrayItemValue).ContainsValue(source.GetPre())
  2035  	case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  2036  		return fpaivs.subPathItemValue.(common.ObjectState_FieldPathArrayItemValue).ContainsValue(source.GetPost())
  2037  	default:
  2038  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_ResourceChange: %d", fpaivs.Selector()))
  2039  	}
  2040  }
  2041  
  2042  // ResourceChangeLogResourceChange_FieldPathArrayOfValues allows storing slice of values for ResourceChange fields according to their type
  2043  type ResourceChangeLogResourceChange_FieldPathArrayOfValues interface {
  2044  	gotenobject.FieldPathArrayOfValues
  2045  	ResourceChangeLogResourceChange_FieldPath
  2046  }
  2047  
  2048  func ParseResourceChangeLogResourceChange_FieldPathArrayOfValues(pathStr, valuesStr string) (ResourceChangeLogResourceChange_FieldPathArrayOfValues, error) {
  2049  	fp, err := ParseResourceChangeLogResourceChange_FieldPath(pathStr)
  2050  	if err != nil {
  2051  		return nil, err
  2052  	}
  2053  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  2054  	if err != nil {
  2055  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ResourceChange field path array of values from %s: %v", valuesStr, err)
  2056  	}
  2057  	return fpaov.(ResourceChangeLogResourceChange_FieldPathArrayOfValues), nil
  2058  }
  2059  
  2060  func MustParseResourceChangeLogResourceChange_FieldPathArrayOfValues(pathStr, valuesStr string) ResourceChangeLogResourceChange_FieldPathArrayOfValues {
  2061  	fpaov, err := ParseResourceChangeLogResourceChange_FieldPathArrayOfValues(pathStr, valuesStr)
  2062  	if err != nil {
  2063  		panic(err)
  2064  	}
  2065  	return fpaov
  2066  }
  2067  
  2068  type ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues struct {
  2069  	ResourceChangeLogResourceChange_FieldTerminalPath
  2070  	values interface{}
  2071  }
  2072  
  2073  var _ ResourceChangeLogResourceChange_FieldPathArrayOfValues = (*ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues)(nil)
  2074  
  2075  func (fpaov *ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  2076  	switch fpaov.selector {
  2077  	case ResourceChangeLogResourceChange_FieldPathSelectorName:
  2078  		for _, v := range fpaov.values.([]string) {
  2079  			values = append(values, v)
  2080  		}
  2081  	case ResourceChangeLogResourceChange_FieldPathSelectorType:
  2082  		for _, v := range fpaov.values.([]string) {
  2083  			values = append(values, v)
  2084  		}
  2085  	case ResourceChangeLogResourceChange_FieldPathSelectorAction:
  2086  		for _, v := range fpaov.values.([]ResourceChangeLog_ResourceChange_Action) {
  2087  			values = append(values, v)
  2088  		}
  2089  	case ResourceChangeLogResourceChange_FieldPathSelectorUpdatedFields:
  2090  		for _, v := range fpaov.values.([]*fieldmaskpb.FieldMask) {
  2091  			values = append(values, v)
  2092  		}
  2093  	case ResourceChangeLogResourceChange_FieldPathSelectorPrevious:
  2094  		for _, v := range fpaov.values.([]*anypb.Any) {
  2095  			values = append(values, v)
  2096  		}
  2097  	case ResourceChangeLogResourceChange_FieldPathSelectorCurrent:
  2098  		for _, v := range fpaov.values.([]*anypb.Any) {
  2099  			values = append(values, v)
  2100  		}
  2101  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  2102  		for _, v := range fpaov.values.([]map[string]string) {
  2103  			values = append(values, v)
  2104  		}
  2105  	case ResourceChangeLogResourceChange_FieldPathSelectorPre:
  2106  		for _, v := range fpaov.values.([]*common.ObjectState) {
  2107  			values = append(values, v)
  2108  		}
  2109  	case ResourceChangeLogResourceChange_FieldPathSelectorPost:
  2110  		for _, v := range fpaov.values.([]*common.ObjectState) {
  2111  			values = append(values, v)
  2112  		}
  2113  	}
  2114  	return
  2115  }
  2116  func (fpaov *ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]string, bool) {
  2117  	res, ok := fpaov.values.([]string)
  2118  	return res, ok
  2119  }
  2120  func (fpaov *ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues) AsTypeArrayOfValues() ([]string, bool) {
  2121  	res, ok := fpaov.values.([]string)
  2122  	return res, ok
  2123  }
  2124  func (fpaov *ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues) AsActionArrayOfValues() ([]ResourceChangeLog_ResourceChange_Action, bool) {
  2125  	res, ok := fpaov.values.([]ResourceChangeLog_ResourceChange_Action)
  2126  	return res, ok
  2127  }
  2128  func (fpaov *ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues) AsUpdatedFieldsArrayOfValues() ([]*fieldmaskpb.FieldMask, bool) {
  2129  	res, ok := fpaov.values.([]*fieldmaskpb.FieldMask)
  2130  	return res, ok
  2131  }
  2132  func (fpaov *ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues) AsPreviousArrayOfValues() ([]*anypb.Any, bool) {
  2133  	res, ok := fpaov.values.([]*anypb.Any)
  2134  	return res, ok
  2135  }
  2136  func (fpaov *ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues) AsCurrentArrayOfValues() ([]*anypb.Any, bool) {
  2137  	res, ok := fpaov.values.([]*anypb.Any)
  2138  	return res, ok
  2139  }
  2140  func (fpaov *ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues) AsLabelsArrayOfValues() ([]map[string]string, bool) {
  2141  	res, ok := fpaov.values.([]map[string]string)
  2142  	return res, ok
  2143  }
  2144  func (fpaov *ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues) AsPreArrayOfValues() ([]*common.ObjectState, bool) {
  2145  	res, ok := fpaov.values.([]*common.ObjectState)
  2146  	return res, ok
  2147  }
  2148  func (fpaov *ResourceChangeLogResourceChange_FieldTerminalPathArrayOfValues) AsPostArrayOfValues() ([]*common.ObjectState, bool) {
  2149  	res, ok := fpaov.values.([]*common.ObjectState)
  2150  	return res, ok
  2151  }
  2152  
  2153  type ResourceChangeLogResourceChange_FieldPathMapArrayOfValues struct {
  2154  	ResourceChangeLogResourceChange_FieldPathMap
  2155  	values interface{}
  2156  }
  2157  
  2158  var _ ResourceChangeLogResourceChange_FieldPathArrayOfValues = (*ResourceChangeLogResourceChange_FieldPathMapArrayOfValues)(nil)
  2159  
  2160  func (fpmaov *ResourceChangeLogResourceChange_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) {
  2161  	switch fpmaov.selector {
  2162  	case ResourceChangeLogResourceChange_FieldPathSelectorLabels:
  2163  		for _, v := range fpmaov.values.([]string) {
  2164  			values = append(values, v)
  2165  		}
  2166  	}
  2167  	return
  2168  }
  2169  func (fpmaov *ResourceChangeLogResourceChange_FieldPathMapArrayOfValues) AsLabelsArrayOfElementValues() ([]string, bool) {
  2170  	res, ok := fpmaov.values.([]string)
  2171  	return res, ok
  2172  }
  2173  
  2174  type ResourceChangeLogResourceChange_FieldSubPathArrayOfValues struct {
  2175  	ResourceChangeLogResourceChange_FieldPath
  2176  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  2177  }
  2178  
  2179  var _ ResourceChangeLogResourceChange_FieldPathArrayOfValues = (*ResourceChangeLogResourceChange_FieldSubPathArrayOfValues)(nil)
  2180  
  2181  func (fpsaov *ResourceChangeLogResourceChange_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  2182  	return fpsaov.subPathArrayOfValues.GetRawValues()
  2183  }
  2184  func (fpsaov *ResourceChangeLogResourceChange_FieldSubPathArrayOfValues) AsPrePathArrayOfValues() (common.ObjectState_FieldPathArrayOfValues, bool) {
  2185  	res, ok := fpsaov.subPathArrayOfValues.(common.ObjectState_FieldPathArrayOfValues)
  2186  	return res, ok
  2187  }
  2188  func (fpsaov *ResourceChangeLogResourceChange_FieldSubPathArrayOfValues) AsPostPathArrayOfValues() (common.ObjectState_FieldPathArrayOfValues, bool) {
  2189  	res, ok := fpsaov.subPathArrayOfValues.(common.ObjectState_FieldPathArrayOfValues)
  2190  	return res, ok
  2191  }
  2192  
  2193  // FieldPath provides implementation to handle
  2194  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  2195  type ResourceChangeLogTransactionInfo_FieldPath interface {
  2196  	gotenobject.FieldPath
  2197  	Selector() ResourceChangeLogTransactionInfo_FieldPathSelector
  2198  	Get(source *ResourceChangeLog_TransactionInfo) []interface{}
  2199  	GetSingle(source *ResourceChangeLog_TransactionInfo) (interface{}, bool)
  2200  	ClearValue(item *ResourceChangeLog_TransactionInfo)
  2201  
  2202  	// Those methods build corresponding ResourceChangeLogTransactionInfo_FieldPathValue
  2203  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  2204  	WithIValue(value interface{}) ResourceChangeLogTransactionInfo_FieldPathValue
  2205  	WithIArrayOfValues(values interface{}) ResourceChangeLogTransactionInfo_FieldPathArrayOfValues
  2206  	WithIArrayItemValue(value interface{}) ResourceChangeLogTransactionInfo_FieldPathArrayItemValue
  2207  }
  2208  
  2209  type ResourceChangeLogTransactionInfo_FieldPathSelector int32
  2210  
  2211  const (
  2212  	ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier ResourceChangeLogTransactionInfo_FieldPathSelector = 0
  2213  	ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter ResourceChangeLogTransactionInfo_FieldPathSelector = 1
  2214  	ResourceChangeLogTransactionInfo_FieldPathSelectorState      ResourceChangeLogTransactionInfo_FieldPathSelector = 2
  2215  )
  2216  
  2217  func (s ResourceChangeLogTransactionInfo_FieldPathSelector) String() string {
  2218  	switch s {
  2219  	case ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier:
  2220  		return "identifier"
  2221  	case ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter:
  2222  		return "try_counter"
  2223  	case ResourceChangeLogTransactionInfo_FieldPathSelectorState:
  2224  		return "state"
  2225  	default:
  2226  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_TransactionInfo: %d", s))
  2227  	}
  2228  }
  2229  
  2230  func BuildResourceChangeLogTransactionInfo_FieldPath(fp gotenobject.RawFieldPath) (ResourceChangeLogTransactionInfo_FieldPath, error) {
  2231  	if len(fp) == 0 {
  2232  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ResourceChangeLog_TransactionInfo")
  2233  	}
  2234  	if len(fp) == 1 {
  2235  		switch fp[0] {
  2236  		case "identifier":
  2237  			return &ResourceChangeLogTransactionInfo_FieldTerminalPath{selector: ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier}, nil
  2238  		case "try_counter", "tryCounter", "try-counter":
  2239  			return &ResourceChangeLogTransactionInfo_FieldTerminalPath{selector: ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter}, nil
  2240  		case "state":
  2241  			return &ResourceChangeLogTransactionInfo_FieldTerminalPath{selector: ResourceChangeLogTransactionInfo_FieldPathSelectorState}, nil
  2242  		}
  2243  	}
  2244  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ResourceChangeLog_TransactionInfo", fp)
  2245  }
  2246  
  2247  func ParseResourceChangeLogTransactionInfo_FieldPath(rawField string) (ResourceChangeLogTransactionInfo_FieldPath, error) {
  2248  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  2249  	if err != nil {
  2250  		return nil, err
  2251  	}
  2252  	return BuildResourceChangeLogTransactionInfo_FieldPath(fp)
  2253  }
  2254  
  2255  func MustParseResourceChangeLogTransactionInfo_FieldPath(rawField string) ResourceChangeLogTransactionInfo_FieldPath {
  2256  	fp, err := ParseResourceChangeLogTransactionInfo_FieldPath(rawField)
  2257  	if err != nil {
  2258  		panic(err)
  2259  	}
  2260  	return fp
  2261  }
  2262  
  2263  type ResourceChangeLogTransactionInfo_FieldTerminalPath struct {
  2264  	selector ResourceChangeLogTransactionInfo_FieldPathSelector
  2265  }
  2266  
  2267  var _ ResourceChangeLogTransactionInfo_FieldPath = (*ResourceChangeLogTransactionInfo_FieldTerminalPath)(nil)
  2268  
  2269  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) Selector() ResourceChangeLogTransactionInfo_FieldPathSelector {
  2270  	return fp.selector
  2271  }
  2272  
  2273  // String returns path representation in proto convention
  2274  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) String() string {
  2275  	return fp.selector.String()
  2276  }
  2277  
  2278  // JSONString returns path representation is JSON convention
  2279  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) JSONString() string {
  2280  	return strcase.ToLowerCamel(fp.String())
  2281  }
  2282  
  2283  // Get returns all values pointed by specific field from source ResourceChangeLog_TransactionInfo
  2284  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) Get(source *ResourceChangeLog_TransactionInfo) (values []interface{}) {
  2285  	if source != nil {
  2286  		switch fp.selector {
  2287  		case ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier:
  2288  			values = append(values, source.Identifier)
  2289  		case ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter:
  2290  			values = append(values, source.TryCounter)
  2291  		case ResourceChangeLogTransactionInfo_FieldPathSelectorState:
  2292  			values = append(values, source.State)
  2293  		default:
  2294  			panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_TransactionInfo: %d", fp.selector))
  2295  		}
  2296  	}
  2297  	return
  2298  }
  2299  
  2300  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  2301  	return fp.Get(source.(*ResourceChangeLog_TransactionInfo))
  2302  }
  2303  
  2304  // GetSingle returns value pointed by specific field of from source ResourceChangeLog_TransactionInfo
  2305  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) GetSingle(source *ResourceChangeLog_TransactionInfo) (interface{}, bool) {
  2306  	switch fp.selector {
  2307  	case ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier:
  2308  		return source.GetIdentifier(), source != nil
  2309  	case ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter:
  2310  		return source.GetTryCounter(), source != nil
  2311  	case ResourceChangeLogTransactionInfo_FieldPathSelectorState:
  2312  		return source.GetState(), source != nil
  2313  	default:
  2314  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_TransactionInfo: %d", fp.selector))
  2315  	}
  2316  }
  2317  
  2318  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2319  	return fp.GetSingle(source.(*ResourceChangeLog_TransactionInfo))
  2320  }
  2321  
  2322  // GetDefault returns a default value of the field type
  2323  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) GetDefault() interface{} {
  2324  	switch fp.selector {
  2325  	case ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier:
  2326  		return ""
  2327  	case ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter:
  2328  		return int32(0)
  2329  	case ResourceChangeLogTransactionInfo_FieldPathSelectorState:
  2330  		return ResourceChangeLog_TransactionInfo_UNDEFINED
  2331  	default:
  2332  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_TransactionInfo: %d", fp.selector))
  2333  	}
  2334  }
  2335  
  2336  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) ClearValue(item *ResourceChangeLog_TransactionInfo) {
  2337  	if item != nil {
  2338  		switch fp.selector {
  2339  		case ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier:
  2340  			item.Identifier = ""
  2341  		case ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter:
  2342  			item.TryCounter = int32(0)
  2343  		case ResourceChangeLogTransactionInfo_FieldPathSelectorState:
  2344  			item.State = ResourceChangeLog_TransactionInfo_UNDEFINED
  2345  		default:
  2346  			panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_TransactionInfo: %d", fp.selector))
  2347  		}
  2348  	}
  2349  }
  2350  
  2351  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  2352  	fp.ClearValue(item.(*ResourceChangeLog_TransactionInfo))
  2353  }
  2354  
  2355  // IsLeaf - whether field path is holds simple value
  2356  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) IsLeaf() bool {
  2357  	return fp.selector == ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier ||
  2358  		fp.selector == ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter ||
  2359  		fp.selector == ResourceChangeLogTransactionInfo_FieldPathSelectorState
  2360  }
  2361  
  2362  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  2363  	return []gotenobject.FieldPath{fp}
  2364  }
  2365  
  2366  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) WithIValue(value interface{}) ResourceChangeLogTransactionInfo_FieldPathValue {
  2367  	switch fp.selector {
  2368  	case ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier:
  2369  		return &ResourceChangeLogTransactionInfo_FieldTerminalPathValue{ResourceChangeLogTransactionInfo_FieldTerminalPath: *fp, value: value.(string)}
  2370  	case ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter:
  2371  		return &ResourceChangeLogTransactionInfo_FieldTerminalPathValue{ResourceChangeLogTransactionInfo_FieldTerminalPath: *fp, value: value.(int32)}
  2372  	case ResourceChangeLogTransactionInfo_FieldPathSelectorState:
  2373  		return &ResourceChangeLogTransactionInfo_FieldTerminalPathValue{ResourceChangeLogTransactionInfo_FieldTerminalPath: *fp, value: value.(ResourceChangeLog_TransactionInfo_State)}
  2374  	default:
  2375  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_TransactionInfo: %d", fp.selector))
  2376  	}
  2377  }
  2378  
  2379  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  2380  	return fp.WithIValue(value)
  2381  }
  2382  
  2383  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) WithIArrayOfValues(values interface{}) ResourceChangeLogTransactionInfo_FieldPathArrayOfValues {
  2384  	fpaov := &ResourceChangeLogTransactionInfo_FieldTerminalPathArrayOfValues{ResourceChangeLogTransactionInfo_FieldTerminalPath: *fp}
  2385  	switch fp.selector {
  2386  	case ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier:
  2387  		return &ResourceChangeLogTransactionInfo_FieldTerminalPathArrayOfValues{ResourceChangeLogTransactionInfo_FieldTerminalPath: *fp, values: values.([]string)}
  2388  	case ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter:
  2389  		return &ResourceChangeLogTransactionInfo_FieldTerminalPathArrayOfValues{ResourceChangeLogTransactionInfo_FieldTerminalPath: *fp, values: values.([]int32)}
  2390  	case ResourceChangeLogTransactionInfo_FieldPathSelectorState:
  2391  		return &ResourceChangeLogTransactionInfo_FieldTerminalPathArrayOfValues{ResourceChangeLogTransactionInfo_FieldTerminalPath: *fp, values: values.([]ResourceChangeLog_TransactionInfo_State)}
  2392  	default:
  2393  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_TransactionInfo: %d", fp.selector))
  2394  	}
  2395  	return fpaov
  2396  }
  2397  
  2398  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  2399  	return fp.WithIArrayOfValues(values)
  2400  }
  2401  
  2402  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) WithIArrayItemValue(value interface{}) ResourceChangeLogTransactionInfo_FieldPathArrayItemValue {
  2403  	switch fp.selector {
  2404  	default:
  2405  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_TransactionInfo: %d", fp.selector))
  2406  	}
  2407  }
  2408  
  2409  func (fp *ResourceChangeLogTransactionInfo_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  2410  	return fp.WithIArrayItemValue(value)
  2411  }
  2412  
  2413  // ResourceChangeLogTransactionInfo_FieldPathValue allows storing values for TransactionInfo fields according to their type
  2414  type ResourceChangeLogTransactionInfo_FieldPathValue interface {
  2415  	ResourceChangeLogTransactionInfo_FieldPath
  2416  	gotenobject.FieldPathValue
  2417  	SetTo(target **ResourceChangeLog_TransactionInfo)
  2418  	CompareWith(*ResourceChangeLog_TransactionInfo) (cmp int, comparable bool)
  2419  }
  2420  
  2421  func ParseResourceChangeLogTransactionInfo_FieldPathValue(pathStr, valueStr string) (ResourceChangeLogTransactionInfo_FieldPathValue, error) {
  2422  	fp, err := ParseResourceChangeLogTransactionInfo_FieldPath(pathStr)
  2423  	if err != nil {
  2424  		return nil, err
  2425  	}
  2426  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  2427  	if err != nil {
  2428  		return nil, status.Errorf(codes.InvalidArgument, "error parsing TransactionInfo field path value from %s: %v", valueStr, err)
  2429  	}
  2430  	return fpv.(ResourceChangeLogTransactionInfo_FieldPathValue), nil
  2431  }
  2432  
  2433  func MustParseResourceChangeLogTransactionInfo_FieldPathValue(pathStr, valueStr string) ResourceChangeLogTransactionInfo_FieldPathValue {
  2434  	fpv, err := ParseResourceChangeLogTransactionInfo_FieldPathValue(pathStr, valueStr)
  2435  	if err != nil {
  2436  		panic(err)
  2437  	}
  2438  	return fpv
  2439  }
  2440  
  2441  type ResourceChangeLogTransactionInfo_FieldTerminalPathValue struct {
  2442  	ResourceChangeLogTransactionInfo_FieldTerminalPath
  2443  	value interface{}
  2444  }
  2445  
  2446  var _ ResourceChangeLogTransactionInfo_FieldPathValue = (*ResourceChangeLogTransactionInfo_FieldTerminalPathValue)(nil)
  2447  
  2448  // GetRawValue returns raw value stored under selected path for 'TransactionInfo' as interface{}
  2449  func (fpv *ResourceChangeLogTransactionInfo_FieldTerminalPathValue) GetRawValue() interface{} {
  2450  	return fpv.value
  2451  }
  2452  func (fpv *ResourceChangeLogTransactionInfo_FieldTerminalPathValue) AsIdentifierValue() (string, bool) {
  2453  	res, ok := fpv.value.(string)
  2454  	return res, ok
  2455  }
  2456  func (fpv *ResourceChangeLogTransactionInfo_FieldTerminalPathValue) AsTryCounterValue() (int32, bool) {
  2457  	res, ok := fpv.value.(int32)
  2458  	return res, ok
  2459  }
  2460  func (fpv *ResourceChangeLogTransactionInfo_FieldTerminalPathValue) AsStateValue() (ResourceChangeLog_TransactionInfo_State, bool) {
  2461  	res, ok := fpv.value.(ResourceChangeLog_TransactionInfo_State)
  2462  	return res, ok
  2463  }
  2464  
  2465  // SetTo stores value for selected field for object TransactionInfo
  2466  func (fpv *ResourceChangeLogTransactionInfo_FieldTerminalPathValue) SetTo(target **ResourceChangeLog_TransactionInfo) {
  2467  	if *target == nil {
  2468  		*target = new(ResourceChangeLog_TransactionInfo)
  2469  	}
  2470  	switch fpv.selector {
  2471  	case ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier:
  2472  		(*target).Identifier = fpv.value.(string)
  2473  	case ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter:
  2474  		(*target).TryCounter = fpv.value.(int32)
  2475  	case ResourceChangeLogTransactionInfo_FieldPathSelectorState:
  2476  		(*target).State = fpv.value.(ResourceChangeLog_TransactionInfo_State)
  2477  	default:
  2478  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_TransactionInfo: %d", fpv.selector))
  2479  	}
  2480  }
  2481  
  2482  func (fpv *ResourceChangeLogTransactionInfo_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  2483  	typedObject := target.(*ResourceChangeLog_TransactionInfo)
  2484  	fpv.SetTo(&typedObject)
  2485  }
  2486  
  2487  // CompareWith compares value in the 'ResourceChangeLogTransactionInfo_FieldTerminalPathValue' with the value under path in 'ResourceChangeLog_TransactionInfo'.
  2488  func (fpv *ResourceChangeLogTransactionInfo_FieldTerminalPathValue) CompareWith(source *ResourceChangeLog_TransactionInfo) (int, bool) {
  2489  	switch fpv.selector {
  2490  	case ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier:
  2491  		leftValue := fpv.value.(string)
  2492  		rightValue := source.GetIdentifier()
  2493  		if (leftValue) == (rightValue) {
  2494  			return 0, true
  2495  		} else if (leftValue) < (rightValue) {
  2496  			return -1, true
  2497  		} else {
  2498  			return 1, true
  2499  		}
  2500  	case ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter:
  2501  		leftValue := fpv.value.(int32)
  2502  		rightValue := source.GetTryCounter()
  2503  		if (leftValue) == (rightValue) {
  2504  			return 0, true
  2505  		} else if (leftValue) < (rightValue) {
  2506  			return -1, true
  2507  		} else {
  2508  			return 1, true
  2509  		}
  2510  	case ResourceChangeLogTransactionInfo_FieldPathSelectorState:
  2511  		leftValue := fpv.value.(ResourceChangeLog_TransactionInfo_State)
  2512  		rightValue := source.GetState()
  2513  		if (leftValue) == (rightValue) {
  2514  			return 0, true
  2515  		} else if (leftValue) < (rightValue) {
  2516  			return -1, true
  2517  		} else {
  2518  			return 1, true
  2519  		}
  2520  	default:
  2521  		panic(fmt.Sprintf("Invalid selector for ResourceChangeLog_TransactionInfo: %d", fpv.selector))
  2522  	}
  2523  }
  2524  
  2525  func (fpv *ResourceChangeLogTransactionInfo_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2526  	return fpv.CompareWith(source.(*ResourceChangeLog_TransactionInfo))
  2527  }
  2528  
  2529  // ResourceChangeLogTransactionInfo_FieldPathArrayItemValue allows storing single item in Path-specific values for TransactionInfo according to their type
  2530  // Present only for array (repeated) types.
  2531  type ResourceChangeLogTransactionInfo_FieldPathArrayItemValue interface {
  2532  	gotenobject.FieldPathArrayItemValue
  2533  	ResourceChangeLogTransactionInfo_FieldPath
  2534  	ContainsValue(*ResourceChangeLog_TransactionInfo) bool
  2535  }
  2536  
  2537  // ParseResourceChangeLogTransactionInfo_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  2538  func ParseResourceChangeLogTransactionInfo_FieldPathArrayItemValue(pathStr, valueStr string) (ResourceChangeLogTransactionInfo_FieldPathArrayItemValue, error) {
  2539  	fp, err := ParseResourceChangeLogTransactionInfo_FieldPath(pathStr)
  2540  	if err != nil {
  2541  		return nil, err
  2542  	}
  2543  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  2544  	if err != nil {
  2545  		return nil, status.Errorf(codes.InvalidArgument, "error parsing TransactionInfo field path array item value from %s: %v", valueStr, err)
  2546  	}
  2547  	return fpaiv.(ResourceChangeLogTransactionInfo_FieldPathArrayItemValue), nil
  2548  }
  2549  
  2550  func MustParseResourceChangeLogTransactionInfo_FieldPathArrayItemValue(pathStr, valueStr string) ResourceChangeLogTransactionInfo_FieldPathArrayItemValue {
  2551  	fpaiv, err := ParseResourceChangeLogTransactionInfo_FieldPathArrayItemValue(pathStr, valueStr)
  2552  	if err != nil {
  2553  		panic(err)
  2554  	}
  2555  	return fpaiv
  2556  }
  2557  
  2558  type ResourceChangeLogTransactionInfo_FieldTerminalPathArrayItemValue struct {
  2559  	ResourceChangeLogTransactionInfo_FieldTerminalPath
  2560  	value interface{}
  2561  }
  2562  
  2563  var _ ResourceChangeLogTransactionInfo_FieldPathArrayItemValue = (*ResourceChangeLogTransactionInfo_FieldTerminalPathArrayItemValue)(nil)
  2564  
  2565  // GetRawValue returns stored element value for array in object ResourceChangeLog_TransactionInfo as interface{}
  2566  func (fpaiv *ResourceChangeLogTransactionInfo_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  2567  	return fpaiv.value
  2568  }
  2569  
  2570  func (fpaiv *ResourceChangeLogTransactionInfo_FieldTerminalPathArrayItemValue) GetSingle(source *ResourceChangeLog_TransactionInfo) (interface{}, bool) {
  2571  	return nil, false
  2572  }
  2573  
  2574  func (fpaiv *ResourceChangeLogTransactionInfo_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2575  	return fpaiv.GetSingle(source.(*ResourceChangeLog_TransactionInfo))
  2576  }
  2577  
  2578  // Contains returns a boolean indicating if value that is being held is present in given 'TransactionInfo'
  2579  func (fpaiv *ResourceChangeLogTransactionInfo_FieldTerminalPathArrayItemValue) ContainsValue(source *ResourceChangeLog_TransactionInfo) bool {
  2580  	slice := fpaiv.ResourceChangeLogTransactionInfo_FieldTerminalPath.Get(source)
  2581  	for _, v := range slice {
  2582  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  2583  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  2584  				return true
  2585  			}
  2586  		} else if reflect.DeepEqual(v, fpaiv.value) {
  2587  			return true
  2588  		}
  2589  	}
  2590  	return false
  2591  }
  2592  
  2593  // ResourceChangeLogTransactionInfo_FieldPathArrayOfValues allows storing slice of values for TransactionInfo fields according to their type
  2594  type ResourceChangeLogTransactionInfo_FieldPathArrayOfValues interface {
  2595  	gotenobject.FieldPathArrayOfValues
  2596  	ResourceChangeLogTransactionInfo_FieldPath
  2597  }
  2598  
  2599  func ParseResourceChangeLogTransactionInfo_FieldPathArrayOfValues(pathStr, valuesStr string) (ResourceChangeLogTransactionInfo_FieldPathArrayOfValues, error) {
  2600  	fp, err := ParseResourceChangeLogTransactionInfo_FieldPath(pathStr)
  2601  	if err != nil {
  2602  		return nil, err
  2603  	}
  2604  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  2605  	if err != nil {
  2606  		return nil, status.Errorf(codes.InvalidArgument, "error parsing TransactionInfo field path array of values from %s: %v", valuesStr, err)
  2607  	}
  2608  	return fpaov.(ResourceChangeLogTransactionInfo_FieldPathArrayOfValues), nil
  2609  }
  2610  
  2611  func MustParseResourceChangeLogTransactionInfo_FieldPathArrayOfValues(pathStr, valuesStr string) ResourceChangeLogTransactionInfo_FieldPathArrayOfValues {
  2612  	fpaov, err := ParseResourceChangeLogTransactionInfo_FieldPathArrayOfValues(pathStr, valuesStr)
  2613  	if err != nil {
  2614  		panic(err)
  2615  	}
  2616  	return fpaov
  2617  }
  2618  
  2619  type ResourceChangeLogTransactionInfo_FieldTerminalPathArrayOfValues struct {
  2620  	ResourceChangeLogTransactionInfo_FieldTerminalPath
  2621  	values interface{}
  2622  }
  2623  
  2624  var _ ResourceChangeLogTransactionInfo_FieldPathArrayOfValues = (*ResourceChangeLogTransactionInfo_FieldTerminalPathArrayOfValues)(nil)
  2625  
  2626  func (fpaov *ResourceChangeLogTransactionInfo_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  2627  	switch fpaov.selector {
  2628  	case ResourceChangeLogTransactionInfo_FieldPathSelectorIdentifier:
  2629  		for _, v := range fpaov.values.([]string) {
  2630  			values = append(values, v)
  2631  		}
  2632  	case ResourceChangeLogTransactionInfo_FieldPathSelectorTryCounter:
  2633  		for _, v := range fpaov.values.([]int32) {
  2634  			values = append(values, v)
  2635  		}
  2636  	case ResourceChangeLogTransactionInfo_FieldPathSelectorState:
  2637  		for _, v := range fpaov.values.([]ResourceChangeLog_TransactionInfo_State) {
  2638  			values = append(values, v)
  2639  		}
  2640  	}
  2641  	return
  2642  }
  2643  func (fpaov *ResourceChangeLogTransactionInfo_FieldTerminalPathArrayOfValues) AsIdentifierArrayOfValues() ([]string, bool) {
  2644  	res, ok := fpaov.values.([]string)
  2645  	return res, ok
  2646  }
  2647  func (fpaov *ResourceChangeLogTransactionInfo_FieldTerminalPathArrayOfValues) AsTryCounterArrayOfValues() ([]int32, bool) {
  2648  	res, ok := fpaov.values.([]int32)
  2649  	return res, ok
  2650  }
  2651  func (fpaov *ResourceChangeLogTransactionInfo_FieldTerminalPathArrayOfValues) AsStateArrayOfValues() ([]ResourceChangeLog_TransactionInfo_State, bool) {
  2652  	res, ok := fpaov.values.([]ResourceChangeLog_TransactionInfo_State)
  2653  	return res, ok
  2654  }