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

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