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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/applications/proto/v1alpha2/pod.proto
     3  // DO NOT EDIT!!!
     4  
     5  package pod
     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/applications/resources/v1alpha2/common"
    27  	distribution "github.com/cloudwan/edgelq-sdk/applications/resources/v1alpha2/distribution"
    28  	project "github.com/cloudwan/edgelq-sdk/applications/resources/v1alpha2/project"
    29  	meta "github.com/cloudwan/goten-sdk/types/meta"
    30  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    31  )
    32  
    33  // ensure the imports are used
    34  var (
    35  	_ = new(json.Marshaler)
    36  	_ = new(fmt.Stringer)
    37  	_ = reflect.DeepEqual
    38  	_ = strings.Builder{}
    39  	_ = time.Second
    40  
    41  	_ = strcase.ToLowerCamel
    42  	_ = codes.NotFound
    43  	_ = status.Status{}
    44  	_ = protojson.UnmarshalOptions{}
    45  	_ = new(proto.Message)
    46  	_ = protoregistry.GlobalTypes
    47  
    48  	_ = new(gotenobject.FieldPath)
    49  )
    50  
    51  // make sure we're using proto imports
    52  var (
    53  	_ = &common.PodSpec{}
    54  	_ = &distribution.Distribution{}
    55  	_ = &project.Project{}
    56  	_ = &timestamppb.Timestamp{}
    57  	_ = &meta.Meta{}
    58  )
    59  
    60  // FieldPath provides implementation to handle
    61  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    62  type Pod_FieldPath interface {
    63  	gotenobject.FieldPath
    64  	Selector() Pod_FieldPathSelector
    65  	Get(source *Pod) []interface{}
    66  	GetSingle(source *Pod) (interface{}, bool)
    67  	ClearValue(item *Pod)
    68  
    69  	// Those methods build corresponding Pod_FieldPathValue
    70  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    71  	WithIValue(value interface{}) Pod_FieldPathValue
    72  	WithIArrayOfValues(values interface{}) Pod_FieldPathArrayOfValues
    73  	WithIArrayItemValue(value interface{}) Pod_FieldPathArrayItemValue
    74  }
    75  
    76  type Pod_FieldPathSelector int32
    77  
    78  const (
    79  	Pod_FieldPathSelectorName         Pod_FieldPathSelector = 0
    80  	Pod_FieldPathSelectorDisplayName  Pod_FieldPathSelector = 1
    81  	Pod_FieldPathSelectorMetadata     Pod_FieldPathSelector = 2
    82  	Pod_FieldPathSelectorSpec         Pod_FieldPathSelector = 3
    83  	Pod_FieldPathSelectorDistribution Pod_FieldPathSelector = 4
    84  	Pod_FieldPathSelectorStatus       Pod_FieldPathSelector = 5
    85  )
    86  
    87  func (s Pod_FieldPathSelector) String() string {
    88  	switch s {
    89  	case Pod_FieldPathSelectorName:
    90  		return "name"
    91  	case Pod_FieldPathSelectorDisplayName:
    92  		return "display_name"
    93  	case Pod_FieldPathSelectorMetadata:
    94  		return "metadata"
    95  	case Pod_FieldPathSelectorSpec:
    96  		return "spec"
    97  	case Pod_FieldPathSelectorDistribution:
    98  		return "distribution"
    99  	case Pod_FieldPathSelectorStatus:
   100  		return "status"
   101  	default:
   102  		panic(fmt.Sprintf("Invalid selector for Pod: %d", s))
   103  	}
   104  }
   105  
   106  func BuildPod_FieldPath(fp gotenobject.RawFieldPath) (Pod_FieldPath, error) {
   107  	if len(fp) == 0 {
   108  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Pod")
   109  	}
   110  	if len(fp) == 1 {
   111  		switch fp[0] {
   112  		case "name":
   113  			return &Pod_FieldTerminalPath{selector: Pod_FieldPathSelectorName}, nil
   114  		case "display_name", "displayName", "display-name":
   115  			return &Pod_FieldTerminalPath{selector: Pod_FieldPathSelectorDisplayName}, nil
   116  		case "metadata":
   117  			return &Pod_FieldTerminalPath{selector: Pod_FieldPathSelectorMetadata}, nil
   118  		case "spec":
   119  			return &Pod_FieldTerminalPath{selector: Pod_FieldPathSelectorSpec}, nil
   120  		case "distribution":
   121  			return &Pod_FieldTerminalPath{selector: Pod_FieldPathSelectorDistribution}, nil
   122  		case "status":
   123  			return &Pod_FieldTerminalPath{selector: Pod_FieldPathSelectorStatus}, nil
   124  		}
   125  	} else {
   126  		switch fp[0] {
   127  		case "metadata":
   128  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   129  				return nil, err
   130  			} else {
   131  				return &Pod_FieldSubPath{selector: Pod_FieldPathSelectorMetadata, subPath: subpath}, nil
   132  			}
   133  		case "spec":
   134  			if subpath, err := common.BuildPodSpec_FieldPath(fp[1:]); err != nil {
   135  				return nil, err
   136  			} else {
   137  				return &Pod_FieldSubPath{selector: Pod_FieldPathSelectorSpec, subPath: subpath}, nil
   138  			}
   139  		case "status":
   140  			if subpath, err := BuildPodStatus_FieldPath(fp[1:]); err != nil {
   141  				return nil, err
   142  			} else {
   143  				return &Pod_FieldSubPath{selector: Pod_FieldPathSelectorStatus, subPath: subpath}, nil
   144  			}
   145  		}
   146  	}
   147  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Pod", fp)
   148  }
   149  
   150  func ParsePod_FieldPath(rawField string) (Pod_FieldPath, error) {
   151  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   152  	if err != nil {
   153  		return nil, err
   154  	}
   155  	return BuildPod_FieldPath(fp)
   156  }
   157  
   158  func MustParsePod_FieldPath(rawField string) Pod_FieldPath {
   159  	fp, err := ParsePod_FieldPath(rawField)
   160  	if err != nil {
   161  		panic(err)
   162  	}
   163  	return fp
   164  }
   165  
   166  type Pod_FieldTerminalPath struct {
   167  	selector Pod_FieldPathSelector
   168  }
   169  
   170  var _ Pod_FieldPath = (*Pod_FieldTerminalPath)(nil)
   171  
   172  func (fp *Pod_FieldTerminalPath) Selector() Pod_FieldPathSelector {
   173  	return fp.selector
   174  }
   175  
   176  // String returns path representation in proto convention
   177  func (fp *Pod_FieldTerminalPath) String() string {
   178  	return fp.selector.String()
   179  }
   180  
   181  // JSONString returns path representation is JSON convention
   182  func (fp *Pod_FieldTerminalPath) JSONString() string {
   183  	return strcase.ToLowerCamel(fp.String())
   184  }
   185  
   186  // Get returns all values pointed by specific field from source Pod
   187  func (fp *Pod_FieldTerminalPath) Get(source *Pod) (values []interface{}) {
   188  	if source != nil {
   189  		switch fp.selector {
   190  		case Pod_FieldPathSelectorName:
   191  			if source.Name != nil {
   192  				values = append(values, source.Name)
   193  			}
   194  		case Pod_FieldPathSelectorDisplayName:
   195  			values = append(values, source.DisplayName)
   196  		case Pod_FieldPathSelectorMetadata:
   197  			if source.Metadata != nil {
   198  				values = append(values, source.Metadata)
   199  			}
   200  		case Pod_FieldPathSelectorSpec:
   201  			if source.Spec != nil {
   202  				values = append(values, source.Spec)
   203  			}
   204  		case Pod_FieldPathSelectorDistribution:
   205  			if source.Distribution != nil {
   206  				values = append(values, source.Distribution)
   207  			}
   208  		case Pod_FieldPathSelectorStatus:
   209  			if source.Status != nil {
   210  				values = append(values, source.Status)
   211  			}
   212  		default:
   213  			panic(fmt.Sprintf("Invalid selector for Pod: %d", fp.selector))
   214  		}
   215  	}
   216  	return
   217  }
   218  
   219  func (fp *Pod_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   220  	return fp.Get(source.(*Pod))
   221  }
   222  
   223  // GetSingle returns value pointed by specific field of from source Pod
   224  func (fp *Pod_FieldTerminalPath) GetSingle(source *Pod) (interface{}, bool) {
   225  	switch fp.selector {
   226  	case Pod_FieldPathSelectorName:
   227  		res := source.GetName()
   228  		return res, res != nil
   229  	case Pod_FieldPathSelectorDisplayName:
   230  		return source.GetDisplayName(), source != nil
   231  	case Pod_FieldPathSelectorMetadata:
   232  		res := source.GetMetadata()
   233  		return res, res != nil
   234  	case Pod_FieldPathSelectorSpec:
   235  		res := source.GetSpec()
   236  		return res, res != nil
   237  	case Pod_FieldPathSelectorDistribution:
   238  		res := source.GetDistribution()
   239  		return res, res != nil
   240  	case Pod_FieldPathSelectorStatus:
   241  		res := source.GetStatus()
   242  		return res, res != nil
   243  	default:
   244  		panic(fmt.Sprintf("Invalid selector for Pod: %d", fp.selector))
   245  	}
   246  }
   247  
   248  func (fp *Pod_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   249  	return fp.GetSingle(source.(*Pod))
   250  }
   251  
   252  // GetDefault returns a default value of the field type
   253  func (fp *Pod_FieldTerminalPath) GetDefault() interface{} {
   254  	switch fp.selector {
   255  	case Pod_FieldPathSelectorName:
   256  		return (*Name)(nil)
   257  	case Pod_FieldPathSelectorDisplayName:
   258  		return ""
   259  	case Pod_FieldPathSelectorMetadata:
   260  		return (*meta.Meta)(nil)
   261  	case Pod_FieldPathSelectorSpec:
   262  		return (*common.PodSpec)(nil)
   263  	case Pod_FieldPathSelectorDistribution:
   264  		return (*distribution.Reference)(nil)
   265  	case Pod_FieldPathSelectorStatus:
   266  		return (*Pod_Status)(nil)
   267  	default:
   268  		panic(fmt.Sprintf("Invalid selector for Pod: %d", fp.selector))
   269  	}
   270  }
   271  
   272  func (fp *Pod_FieldTerminalPath) ClearValue(item *Pod) {
   273  	if item != nil {
   274  		switch fp.selector {
   275  		case Pod_FieldPathSelectorName:
   276  			item.Name = nil
   277  		case Pod_FieldPathSelectorDisplayName:
   278  			item.DisplayName = ""
   279  		case Pod_FieldPathSelectorMetadata:
   280  			item.Metadata = nil
   281  		case Pod_FieldPathSelectorSpec:
   282  			item.Spec = nil
   283  		case Pod_FieldPathSelectorDistribution:
   284  			item.Distribution = nil
   285  		case Pod_FieldPathSelectorStatus:
   286  			item.Status = nil
   287  		default:
   288  			panic(fmt.Sprintf("Invalid selector for Pod: %d", fp.selector))
   289  		}
   290  	}
   291  }
   292  
   293  func (fp *Pod_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   294  	fp.ClearValue(item.(*Pod))
   295  }
   296  
   297  // IsLeaf - whether field path is holds simple value
   298  func (fp *Pod_FieldTerminalPath) IsLeaf() bool {
   299  	return fp.selector == Pod_FieldPathSelectorName ||
   300  		fp.selector == Pod_FieldPathSelectorDisplayName ||
   301  		fp.selector == Pod_FieldPathSelectorDistribution
   302  }
   303  
   304  func (fp *Pod_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   305  	return []gotenobject.FieldPath{fp}
   306  }
   307  
   308  func (fp *Pod_FieldTerminalPath) WithIValue(value interface{}) Pod_FieldPathValue {
   309  	switch fp.selector {
   310  	case Pod_FieldPathSelectorName:
   311  		return &Pod_FieldTerminalPathValue{Pod_FieldTerminalPath: *fp, value: value.(*Name)}
   312  	case Pod_FieldPathSelectorDisplayName:
   313  		return &Pod_FieldTerminalPathValue{Pod_FieldTerminalPath: *fp, value: value.(string)}
   314  	case Pod_FieldPathSelectorMetadata:
   315  		return &Pod_FieldTerminalPathValue{Pod_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   316  	case Pod_FieldPathSelectorSpec:
   317  		return &Pod_FieldTerminalPathValue{Pod_FieldTerminalPath: *fp, value: value.(*common.PodSpec)}
   318  	case Pod_FieldPathSelectorDistribution:
   319  		return &Pod_FieldTerminalPathValue{Pod_FieldTerminalPath: *fp, value: value.(*distribution.Reference)}
   320  	case Pod_FieldPathSelectorStatus:
   321  		return &Pod_FieldTerminalPathValue{Pod_FieldTerminalPath: *fp, value: value.(*Pod_Status)}
   322  	default:
   323  		panic(fmt.Sprintf("Invalid selector for Pod: %d", fp.selector))
   324  	}
   325  }
   326  
   327  func (fp *Pod_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   328  	return fp.WithIValue(value)
   329  }
   330  
   331  func (fp *Pod_FieldTerminalPath) WithIArrayOfValues(values interface{}) Pod_FieldPathArrayOfValues {
   332  	fpaov := &Pod_FieldTerminalPathArrayOfValues{Pod_FieldTerminalPath: *fp}
   333  	switch fp.selector {
   334  	case Pod_FieldPathSelectorName:
   335  		return &Pod_FieldTerminalPathArrayOfValues{Pod_FieldTerminalPath: *fp, values: values.([]*Name)}
   336  	case Pod_FieldPathSelectorDisplayName:
   337  		return &Pod_FieldTerminalPathArrayOfValues{Pod_FieldTerminalPath: *fp, values: values.([]string)}
   338  	case Pod_FieldPathSelectorMetadata:
   339  		return &Pod_FieldTerminalPathArrayOfValues{Pod_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   340  	case Pod_FieldPathSelectorSpec:
   341  		return &Pod_FieldTerminalPathArrayOfValues{Pod_FieldTerminalPath: *fp, values: values.([]*common.PodSpec)}
   342  	case Pod_FieldPathSelectorDistribution:
   343  		return &Pod_FieldTerminalPathArrayOfValues{Pod_FieldTerminalPath: *fp, values: values.([]*distribution.Reference)}
   344  	case Pod_FieldPathSelectorStatus:
   345  		return &Pod_FieldTerminalPathArrayOfValues{Pod_FieldTerminalPath: *fp, values: values.([]*Pod_Status)}
   346  	default:
   347  		panic(fmt.Sprintf("Invalid selector for Pod: %d", fp.selector))
   348  	}
   349  	return fpaov
   350  }
   351  
   352  func (fp *Pod_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   353  	return fp.WithIArrayOfValues(values)
   354  }
   355  
   356  func (fp *Pod_FieldTerminalPath) WithIArrayItemValue(value interface{}) Pod_FieldPathArrayItemValue {
   357  	switch fp.selector {
   358  	default:
   359  		panic(fmt.Sprintf("Invalid selector for Pod: %d", fp.selector))
   360  	}
   361  }
   362  
   363  func (fp *Pod_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   364  	return fp.WithIArrayItemValue(value)
   365  }
   366  
   367  type Pod_FieldSubPath struct {
   368  	selector Pod_FieldPathSelector
   369  	subPath  gotenobject.FieldPath
   370  }
   371  
   372  var _ Pod_FieldPath = (*Pod_FieldSubPath)(nil)
   373  
   374  func (fps *Pod_FieldSubPath) Selector() Pod_FieldPathSelector {
   375  	return fps.selector
   376  }
   377  func (fps *Pod_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   378  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   379  	return res, ok
   380  }
   381  func (fps *Pod_FieldSubPath) AsSpecSubPath() (common.PodSpec_FieldPath, bool) {
   382  	res, ok := fps.subPath.(common.PodSpec_FieldPath)
   383  	return res, ok
   384  }
   385  func (fps *Pod_FieldSubPath) AsStatusSubPath() (PodStatus_FieldPath, bool) {
   386  	res, ok := fps.subPath.(PodStatus_FieldPath)
   387  	return res, ok
   388  }
   389  
   390  // String returns path representation in proto convention
   391  func (fps *Pod_FieldSubPath) String() string {
   392  	return fps.selector.String() + "." + fps.subPath.String()
   393  }
   394  
   395  // JSONString returns path representation is JSON convention
   396  func (fps *Pod_FieldSubPath) JSONString() string {
   397  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   398  }
   399  
   400  // Get returns all values pointed by selected field from source Pod
   401  func (fps *Pod_FieldSubPath) Get(source *Pod) (values []interface{}) {
   402  	switch fps.selector {
   403  	case Pod_FieldPathSelectorMetadata:
   404  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   405  	case Pod_FieldPathSelectorSpec:
   406  		values = append(values, fps.subPath.GetRaw(source.GetSpec())...)
   407  	case Pod_FieldPathSelectorStatus:
   408  		values = append(values, fps.subPath.GetRaw(source.GetStatus())...)
   409  	default:
   410  		panic(fmt.Sprintf("Invalid selector for Pod: %d", fps.selector))
   411  	}
   412  	return
   413  }
   414  
   415  func (fps *Pod_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   416  	return fps.Get(source.(*Pod))
   417  }
   418  
   419  // GetSingle returns value of selected field from source Pod
   420  func (fps *Pod_FieldSubPath) GetSingle(source *Pod) (interface{}, bool) {
   421  	switch fps.selector {
   422  	case Pod_FieldPathSelectorMetadata:
   423  		if source.GetMetadata() == nil {
   424  			return nil, false
   425  		}
   426  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   427  	case Pod_FieldPathSelectorSpec:
   428  		if source.GetSpec() == nil {
   429  			return nil, false
   430  		}
   431  		return fps.subPath.GetSingleRaw(source.GetSpec())
   432  	case Pod_FieldPathSelectorStatus:
   433  		if source.GetStatus() == nil {
   434  			return nil, false
   435  		}
   436  		return fps.subPath.GetSingleRaw(source.GetStatus())
   437  	default:
   438  		panic(fmt.Sprintf("Invalid selector for Pod: %d", fps.selector))
   439  	}
   440  }
   441  
   442  func (fps *Pod_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   443  	return fps.GetSingle(source.(*Pod))
   444  }
   445  
   446  // GetDefault returns a default value of the field type
   447  func (fps *Pod_FieldSubPath) GetDefault() interface{} {
   448  	return fps.subPath.GetDefault()
   449  }
   450  
   451  func (fps *Pod_FieldSubPath) ClearValue(item *Pod) {
   452  	if item != nil {
   453  		switch fps.selector {
   454  		case Pod_FieldPathSelectorMetadata:
   455  			fps.subPath.ClearValueRaw(item.Metadata)
   456  		case Pod_FieldPathSelectorSpec:
   457  			fps.subPath.ClearValueRaw(item.Spec)
   458  		case Pod_FieldPathSelectorStatus:
   459  			fps.subPath.ClearValueRaw(item.Status)
   460  		default:
   461  			panic(fmt.Sprintf("Invalid selector for Pod: %d", fps.selector))
   462  		}
   463  	}
   464  }
   465  
   466  func (fps *Pod_FieldSubPath) ClearValueRaw(item proto.Message) {
   467  	fps.ClearValue(item.(*Pod))
   468  }
   469  
   470  // IsLeaf - whether field path is holds simple value
   471  func (fps *Pod_FieldSubPath) IsLeaf() bool {
   472  	return fps.subPath.IsLeaf()
   473  }
   474  
   475  func (fps *Pod_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   476  	iPaths := []gotenobject.FieldPath{&Pod_FieldTerminalPath{selector: fps.selector}}
   477  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   478  	return iPaths
   479  }
   480  
   481  func (fps *Pod_FieldSubPath) WithIValue(value interface{}) Pod_FieldPathValue {
   482  	return &Pod_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   483  }
   484  
   485  func (fps *Pod_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   486  	return fps.WithIValue(value)
   487  }
   488  
   489  func (fps *Pod_FieldSubPath) WithIArrayOfValues(values interface{}) Pod_FieldPathArrayOfValues {
   490  	return &Pod_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   491  }
   492  
   493  func (fps *Pod_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   494  	return fps.WithIArrayOfValues(values)
   495  }
   496  
   497  func (fps *Pod_FieldSubPath) WithIArrayItemValue(value interface{}) Pod_FieldPathArrayItemValue {
   498  	return &Pod_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   499  }
   500  
   501  func (fps *Pod_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   502  	return fps.WithIArrayItemValue(value)
   503  }
   504  
   505  // Pod_FieldPathValue allows storing values for Pod fields according to their type
   506  type Pod_FieldPathValue interface {
   507  	Pod_FieldPath
   508  	gotenobject.FieldPathValue
   509  	SetTo(target **Pod)
   510  	CompareWith(*Pod) (cmp int, comparable bool)
   511  }
   512  
   513  func ParsePod_FieldPathValue(pathStr, valueStr string) (Pod_FieldPathValue, error) {
   514  	fp, err := ParsePod_FieldPath(pathStr)
   515  	if err != nil {
   516  		return nil, err
   517  	}
   518  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   519  	if err != nil {
   520  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Pod field path value from %s: %v", valueStr, err)
   521  	}
   522  	return fpv.(Pod_FieldPathValue), nil
   523  }
   524  
   525  func MustParsePod_FieldPathValue(pathStr, valueStr string) Pod_FieldPathValue {
   526  	fpv, err := ParsePod_FieldPathValue(pathStr, valueStr)
   527  	if err != nil {
   528  		panic(err)
   529  	}
   530  	return fpv
   531  }
   532  
   533  type Pod_FieldTerminalPathValue struct {
   534  	Pod_FieldTerminalPath
   535  	value interface{}
   536  }
   537  
   538  var _ Pod_FieldPathValue = (*Pod_FieldTerminalPathValue)(nil)
   539  
   540  // GetRawValue returns raw value stored under selected path for 'Pod' as interface{}
   541  func (fpv *Pod_FieldTerminalPathValue) GetRawValue() interface{} {
   542  	return fpv.value
   543  }
   544  func (fpv *Pod_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   545  	res, ok := fpv.value.(*Name)
   546  	return res, ok
   547  }
   548  func (fpv *Pod_FieldTerminalPathValue) AsDisplayNameValue() (string, bool) {
   549  	res, ok := fpv.value.(string)
   550  	return res, ok
   551  }
   552  func (fpv *Pod_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   553  	res, ok := fpv.value.(*meta.Meta)
   554  	return res, ok
   555  }
   556  func (fpv *Pod_FieldTerminalPathValue) AsSpecValue() (*common.PodSpec, bool) {
   557  	res, ok := fpv.value.(*common.PodSpec)
   558  	return res, ok
   559  }
   560  func (fpv *Pod_FieldTerminalPathValue) AsDistributionValue() (*distribution.Reference, bool) {
   561  	res, ok := fpv.value.(*distribution.Reference)
   562  	return res, ok
   563  }
   564  func (fpv *Pod_FieldTerminalPathValue) AsStatusValue() (*Pod_Status, bool) {
   565  	res, ok := fpv.value.(*Pod_Status)
   566  	return res, ok
   567  }
   568  
   569  // SetTo stores value for selected field for object Pod
   570  func (fpv *Pod_FieldTerminalPathValue) SetTo(target **Pod) {
   571  	if *target == nil {
   572  		*target = new(Pod)
   573  	}
   574  	switch fpv.selector {
   575  	case Pod_FieldPathSelectorName:
   576  		(*target).Name = fpv.value.(*Name)
   577  	case Pod_FieldPathSelectorDisplayName:
   578  		(*target).DisplayName = fpv.value.(string)
   579  	case Pod_FieldPathSelectorMetadata:
   580  		(*target).Metadata = fpv.value.(*meta.Meta)
   581  	case Pod_FieldPathSelectorSpec:
   582  		(*target).Spec = fpv.value.(*common.PodSpec)
   583  	case Pod_FieldPathSelectorDistribution:
   584  		(*target).Distribution = fpv.value.(*distribution.Reference)
   585  	case Pod_FieldPathSelectorStatus:
   586  		(*target).Status = fpv.value.(*Pod_Status)
   587  	default:
   588  		panic(fmt.Sprintf("Invalid selector for Pod: %d", fpv.selector))
   589  	}
   590  }
   591  
   592  func (fpv *Pod_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   593  	typedObject := target.(*Pod)
   594  	fpv.SetTo(&typedObject)
   595  }
   596  
   597  // CompareWith compares value in the 'Pod_FieldTerminalPathValue' with the value under path in 'Pod'.
   598  func (fpv *Pod_FieldTerminalPathValue) CompareWith(source *Pod) (int, bool) {
   599  	switch fpv.selector {
   600  	case Pod_FieldPathSelectorName:
   601  		leftValue := fpv.value.(*Name)
   602  		rightValue := source.GetName()
   603  		if leftValue == nil {
   604  			if rightValue != nil {
   605  				return -1, true
   606  			}
   607  			return 0, true
   608  		}
   609  		if rightValue == nil {
   610  			return 1, true
   611  		}
   612  		if leftValue.String() == rightValue.String() {
   613  			return 0, true
   614  		} else if leftValue.String() < rightValue.String() {
   615  			return -1, true
   616  		} else {
   617  			return 1, true
   618  		}
   619  	case Pod_FieldPathSelectorDisplayName:
   620  		leftValue := fpv.value.(string)
   621  		rightValue := source.GetDisplayName()
   622  		if (leftValue) == (rightValue) {
   623  			return 0, true
   624  		} else if (leftValue) < (rightValue) {
   625  			return -1, true
   626  		} else {
   627  			return 1, true
   628  		}
   629  	case Pod_FieldPathSelectorMetadata:
   630  		return 0, false
   631  	case Pod_FieldPathSelectorSpec:
   632  		return 0, false
   633  	case Pod_FieldPathSelectorDistribution:
   634  		leftValue := fpv.value.(*distribution.Reference)
   635  		rightValue := source.GetDistribution()
   636  		if leftValue == nil {
   637  			if rightValue != nil {
   638  				return -1, true
   639  			}
   640  			return 0, true
   641  		}
   642  		if rightValue == nil {
   643  			return 1, true
   644  		}
   645  		if leftValue.String() == rightValue.String() {
   646  			return 0, true
   647  		} else if leftValue.String() < rightValue.String() {
   648  			return -1, true
   649  		} else {
   650  			return 1, true
   651  		}
   652  	case Pod_FieldPathSelectorStatus:
   653  		return 0, false
   654  	default:
   655  		panic(fmt.Sprintf("Invalid selector for Pod: %d", fpv.selector))
   656  	}
   657  }
   658  
   659  func (fpv *Pod_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   660  	return fpv.CompareWith(source.(*Pod))
   661  }
   662  
   663  type Pod_FieldSubPathValue struct {
   664  	Pod_FieldPath
   665  	subPathValue gotenobject.FieldPathValue
   666  }
   667  
   668  var _ Pod_FieldPathValue = (*Pod_FieldSubPathValue)(nil)
   669  
   670  func (fpvs *Pod_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   671  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   672  	return res, ok
   673  }
   674  func (fpvs *Pod_FieldSubPathValue) AsSpecPathValue() (common.PodSpec_FieldPathValue, bool) {
   675  	res, ok := fpvs.subPathValue.(common.PodSpec_FieldPathValue)
   676  	return res, ok
   677  }
   678  func (fpvs *Pod_FieldSubPathValue) AsStatusPathValue() (PodStatus_FieldPathValue, bool) {
   679  	res, ok := fpvs.subPathValue.(PodStatus_FieldPathValue)
   680  	return res, ok
   681  }
   682  
   683  func (fpvs *Pod_FieldSubPathValue) SetTo(target **Pod) {
   684  	if *target == nil {
   685  		*target = new(Pod)
   686  	}
   687  	switch fpvs.Selector() {
   688  	case Pod_FieldPathSelectorMetadata:
   689  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
   690  	case Pod_FieldPathSelectorSpec:
   691  		fpvs.subPathValue.(common.PodSpec_FieldPathValue).SetTo(&(*target).Spec)
   692  	case Pod_FieldPathSelectorStatus:
   693  		fpvs.subPathValue.(PodStatus_FieldPathValue).SetTo(&(*target).Status)
   694  	default:
   695  		panic(fmt.Sprintf("Invalid selector for Pod: %d", fpvs.Selector()))
   696  	}
   697  }
   698  
   699  func (fpvs *Pod_FieldSubPathValue) SetToRaw(target proto.Message) {
   700  	typedObject := target.(*Pod)
   701  	fpvs.SetTo(&typedObject)
   702  }
   703  
   704  func (fpvs *Pod_FieldSubPathValue) GetRawValue() interface{} {
   705  	return fpvs.subPathValue.GetRawValue()
   706  }
   707  
   708  func (fpvs *Pod_FieldSubPathValue) CompareWith(source *Pod) (int, bool) {
   709  	switch fpvs.Selector() {
   710  	case Pod_FieldPathSelectorMetadata:
   711  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
   712  	case Pod_FieldPathSelectorSpec:
   713  		return fpvs.subPathValue.(common.PodSpec_FieldPathValue).CompareWith(source.GetSpec())
   714  	case Pod_FieldPathSelectorStatus:
   715  		return fpvs.subPathValue.(PodStatus_FieldPathValue).CompareWith(source.GetStatus())
   716  	default:
   717  		panic(fmt.Sprintf("Invalid selector for Pod: %d", fpvs.Selector()))
   718  	}
   719  }
   720  
   721  func (fpvs *Pod_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   722  	return fpvs.CompareWith(source.(*Pod))
   723  }
   724  
   725  // Pod_FieldPathArrayItemValue allows storing single item in Path-specific values for Pod according to their type
   726  // Present only for array (repeated) types.
   727  type Pod_FieldPathArrayItemValue interface {
   728  	gotenobject.FieldPathArrayItemValue
   729  	Pod_FieldPath
   730  	ContainsValue(*Pod) bool
   731  }
   732  
   733  // ParsePod_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   734  func ParsePod_FieldPathArrayItemValue(pathStr, valueStr string) (Pod_FieldPathArrayItemValue, error) {
   735  	fp, err := ParsePod_FieldPath(pathStr)
   736  	if err != nil {
   737  		return nil, err
   738  	}
   739  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   740  	if err != nil {
   741  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Pod field path array item value from %s: %v", valueStr, err)
   742  	}
   743  	return fpaiv.(Pod_FieldPathArrayItemValue), nil
   744  }
   745  
   746  func MustParsePod_FieldPathArrayItemValue(pathStr, valueStr string) Pod_FieldPathArrayItemValue {
   747  	fpaiv, err := ParsePod_FieldPathArrayItemValue(pathStr, valueStr)
   748  	if err != nil {
   749  		panic(err)
   750  	}
   751  	return fpaiv
   752  }
   753  
   754  type Pod_FieldTerminalPathArrayItemValue struct {
   755  	Pod_FieldTerminalPath
   756  	value interface{}
   757  }
   758  
   759  var _ Pod_FieldPathArrayItemValue = (*Pod_FieldTerminalPathArrayItemValue)(nil)
   760  
   761  // GetRawValue returns stored element value for array in object Pod as interface{}
   762  func (fpaiv *Pod_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   763  	return fpaiv.value
   764  }
   765  
   766  func (fpaiv *Pod_FieldTerminalPathArrayItemValue) GetSingle(source *Pod) (interface{}, bool) {
   767  	return nil, false
   768  }
   769  
   770  func (fpaiv *Pod_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   771  	return fpaiv.GetSingle(source.(*Pod))
   772  }
   773  
   774  // Contains returns a boolean indicating if value that is being held is present in given 'Pod'
   775  func (fpaiv *Pod_FieldTerminalPathArrayItemValue) ContainsValue(source *Pod) bool {
   776  	slice := fpaiv.Pod_FieldTerminalPath.Get(source)
   777  	for _, v := range slice {
   778  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   779  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   780  				return true
   781  			}
   782  		} else if reflect.DeepEqual(v, fpaiv.value) {
   783  			return true
   784  		}
   785  	}
   786  	return false
   787  }
   788  
   789  type Pod_FieldSubPathArrayItemValue struct {
   790  	Pod_FieldPath
   791  	subPathItemValue gotenobject.FieldPathArrayItemValue
   792  }
   793  
   794  // GetRawValue returns stored array item value
   795  func (fpaivs *Pod_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
   796  	return fpaivs.subPathItemValue.GetRawItemValue()
   797  }
   798  func (fpaivs *Pod_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
   799  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
   800  	return res, ok
   801  }
   802  func (fpaivs *Pod_FieldSubPathArrayItemValue) AsSpecPathItemValue() (common.PodSpec_FieldPathArrayItemValue, bool) {
   803  	res, ok := fpaivs.subPathItemValue.(common.PodSpec_FieldPathArrayItemValue)
   804  	return res, ok
   805  }
   806  func (fpaivs *Pod_FieldSubPathArrayItemValue) AsStatusPathItemValue() (PodStatus_FieldPathArrayItemValue, bool) {
   807  	res, ok := fpaivs.subPathItemValue.(PodStatus_FieldPathArrayItemValue)
   808  	return res, ok
   809  }
   810  
   811  // Contains returns a boolean indicating if value that is being held is present in given 'Pod'
   812  func (fpaivs *Pod_FieldSubPathArrayItemValue) ContainsValue(source *Pod) bool {
   813  	switch fpaivs.Selector() {
   814  	case Pod_FieldPathSelectorMetadata:
   815  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
   816  	case Pod_FieldPathSelectorSpec:
   817  		return fpaivs.subPathItemValue.(common.PodSpec_FieldPathArrayItemValue).ContainsValue(source.GetSpec())
   818  	case Pod_FieldPathSelectorStatus:
   819  		return fpaivs.subPathItemValue.(PodStatus_FieldPathArrayItemValue).ContainsValue(source.GetStatus())
   820  	default:
   821  		panic(fmt.Sprintf("Invalid selector for Pod: %d", fpaivs.Selector()))
   822  	}
   823  }
   824  
   825  // Pod_FieldPathArrayOfValues allows storing slice of values for Pod fields according to their type
   826  type Pod_FieldPathArrayOfValues interface {
   827  	gotenobject.FieldPathArrayOfValues
   828  	Pod_FieldPath
   829  }
   830  
   831  func ParsePod_FieldPathArrayOfValues(pathStr, valuesStr string) (Pod_FieldPathArrayOfValues, error) {
   832  	fp, err := ParsePod_FieldPath(pathStr)
   833  	if err != nil {
   834  		return nil, err
   835  	}
   836  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   837  	if err != nil {
   838  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Pod field path array of values from %s: %v", valuesStr, err)
   839  	}
   840  	return fpaov.(Pod_FieldPathArrayOfValues), nil
   841  }
   842  
   843  func MustParsePod_FieldPathArrayOfValues(pathStr, valuesStr string) Pod_FieldPathArrayOfValues {
   844  	fpaov, err := ParsePod_FieldPathArrayOfValues(pathStr, valuesStr)
   845  	if err != nil {
   846  		panic(err)
   847  	}
   848  	return fpaov
   849  }
   850  
   851  type Pod_FieldTerminalPathArrayOfValues struct {
   852  	Pod_FieldTerminalPath
   853  	values interface{}
   854  }
   855  
   856  var _ Pod_FieldPathArrayOfValues = (*Pod_FieldTerminalPathArrayOfValues)(nil)
   857  
   858  func (fpaov *Pod_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   859  	switch fpaov.selector {
   860  	case Pod_FieldPathSelectorName:
   861  		for _, v := range fpaov.values.([]*Name) {
   862  			values = append(values, v)
   863  		}
   864  	case Pod_FieldPathSelectorDisplayName:
   865  		for _, v := range fpaov.values.([]string) {
   866  			values = append(values, v)
   867  		}
   868  	case Pod_FieldPathSelectorMetadata:
   869  		for _, v := range fpaov.values.([]*meta.Meta) {
   870  			values = append(values, v)
   871  		}
   872  	case Pod_FieldPathSelectorSpec:
   873  		for _, v := range fpaov.values.([]*common.PodSpec) {
   874  			values = append(values, v)
   875  		}
   876  	case Pod_FieldPathSelectorDistribution:
   877  		for _, v := range fpaov.values.([]*distribution.Reference) {
   878  			values = append(values, v)
   879  		}
   880  	case Pod_FieldPathSelectorStatus:
   881  		for _, v := range fpaov.values.([]*Pod_Status) {
   882  			values = append(values, v)
   883  		}
   884  	}
   885  	return
   886  }
   887  func (fpaov *Pod_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
   888  	res, ok := fpaov.values.([]*Name)
   889  	return res, ok
   890  }
   891  func (fpaov *Pod_FieldTerminalPathArrayOfValues) AsDisplayNameArrayOfValues() ([]string, bool) {
   892  	res, ok := fpaov.values.([]string)
   893  	return res, ok
   894  }
   895  func (fpaov *Pod_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
   896  	res, ok := fpaov.values.([]*meta.Meta)
   897  	return res, ok
   898  }
   899  func (fpaov *Pod_FieldTerminalPathArrayOfValues) AsSpecArrayOfValues() ([]*common.PodSpec, bool) {
   900  	res, ok := fpaov.values.([]*common.PodSpec)
   901  	return res, ok
   902  }
   903  func (fpaov *Pod_FieldTerminalPathArrayOfValues) AsDistributionArrayOfValues() ([]*distribution.Reference, bool) {
   904  	res, ok := fpaov.values.([]*distribution.Reference)
   905  	return res, ok
   906  }
   907  func (fpaov *Pod_FieldTerminalPathArrayOfValues) AsStatusArrayOfValues() ([]*Pod_Status, bool) {
   908  	res, ok := fpaov.values.([]*Pod_Status)
   909  	return res, ok
   910  }
   911  
   912  type Pod_FieldSubPathArrayOfValues struct {
   913  	Pod_FieldPath
   914  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
   915  }
   916  
   917  var _ Pod_FieldPathArrayOfValues = (*Pod_FieldSubPathArrayOfValues)(nil)
   918  
   919  func (fpsaov *Pod_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
   920  	return fpsaov.subPathArrayOfValues.GetRawValues()
   921  }
   922  func (fpsaov *Pod_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
   923  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
   924  	return res, ok
   925  }
   926  func (fpsaov *Pod_FieldSubPathArrayOfValues) AsSpecPathArrayOfValues() (common.PodSpec_FieldPathArrayOfValues, bool) {
   927  	res, ok := fpsaov.subPathArrayOfValues.(common.PodSpec_FieldPathArrayOfValues)
   928  	return res, ok
   929  }
   930  func (fpsaov *Pod_FieldSubPathArrayOfValues) AsStatusPathArrayOfValues() (PodStatus_FieldPathArrayOfValues, bool) {
   931  	res, ok := fpsaov.subPathArrayOfValues.(PodStatus_FieldPathArrayOfValues)
   932  	return res, ok
   933  }
   934  
   935  // FieldPath provides implementation to handle
   936  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
   937  type PodStatus_FieldPath interface {
   938  	gotenobject.FieldPath
   939  	Selector() PodStatus_FieldPathSelector
   940  	Get(source *Pod_Status) []interface{}
   941  	GetSingle(source *Pod_Status) (interface{}, bool)
   942  	ClearValue(item *Pod_Status)
   943  
   944  	// Those methods build corresponding PodStatus_FieldPathValue
   945  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
   946  	WithIValue(value interface{}) PodStatus_FieldPathValue
   947  	WithIArrayOfValues(values interface{}) PodStatus_FieldPathArrayOfValues
   948  	WithIArrayItemValue(value interface{}) PodStatus_FieldPathArrayItemValue
   949  }
   950  
   951  type PodStatus_FieldPathSelector int32
   952  
   953  const (
   954  	PodStatus_FieldPathSelectorPhase             PodStatus_FieldPathSelector = 0
   955  	PodStatus_FieldPathSelectorContainerStatuses PodStatus_FieldPathSelector = 1
   956  	PodStatus_FieldPathSelectorError             PodStatus_FieldPathSelector = 2
   957  )
   958  
   959  func (s PodStatus_FieldPathSelector) String() string {
   960  	switch s {
   961  	case PodStatus_FieldPathSelectorPhase:
   962  		return "phase"
   963  	case PodStatus_FieldPathSelectorContainerStatuses:
   964  		return "container_statuses"
   965  	case PodStatus_FieldPathSelectorError:
   966  		return "error"
   967  	default:
   968  		panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", s))
   969  	}
   970  }
   971  
   972  func BuildPodStatus_FieldPath(fp gotenobject.RawFieldPath) (PodStatus_FieldPath, error) {
   973  	if len(fp) == 0 {
   974  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Pod_Status")
   975  	}
   976  	if len(fp) == 1 {
   977  		switch fp[0] {
   978  		case "phase":
   979  			return &PodStatus_FieldTerminalPath{selector: PodStatus_FieldPathSelectorPhase}, nil
   980  		case "container_statuses", "containerStatuses", "container-statuses":
   981  			return &PodStatus_FieldTerminalPath{selector: PodStatus_FieldPathSelectorContainerStatuses}, nil
   982  		case "error":
   983  			return &PodStatus_FieldTerminalPath{selector: PodStatus_FieldPathSelectorError}, nil
   984  		}
   985  	} else {
   986  		switch fp[0] {
   987  		case "container_statuses", "containerStatuses", "container-statuses":
   988  			if subpath, err := BuildPodStatusContainer_FieldPath(fp[1:]); err != nil {
   989  				return nil, err
   990  			} else {
   991  				return &PodStatus_FieldSubPath{selector: PodStatus_FieldPathSelectorContainerStatuses, subPath: subpath}, nil
   992  			}
   993  		}
   994  	}
   995  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Pod_Status", fp)
   996  }
   997  
   998  func ParsePodStatus_FieldPath(rawField string) (PodStatus_FieldPath, error) {
   999  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1000  	if err != nil {
  1001  		return nil, err
  1002  	}
  1003  	return BuildPodStatus_FieldPath(fp)
  1004  }
  1005  
  1006  func MustParsePodStatus_FieldPath(rawField string) PodStatus_FieldPath {
  1007  	fp, err := ParsePodStatus_FieldPath(rawField)
  1008  	if err != nil {
  1009  		panic(err)
  1010  	}
  1011  	return fp
  1012  }
  1013  
  1014  type PodStatus_FieldTerminalPath struct {
  1015  	selector PodStatus_FieldPathSelector
  1016  }
  1017  
  1018  var _ PodStatus_FieldPath = (*PodStatus_FieldTerminalPath)(nil)
  1019  
  1020  func (fp *PodStatus_FieldTerminalPath) Selector() PodStatus_FieldPathSelector {
  1021  	return fp.selector
  1022  }
  1023  
  1024  // String returns path representation in proto convention
  1025  func (fp *PodStatus_FieldTerminalPath) String() string {
  1026  	return fp.selector.String()
  1027  }
  1028  
  1029  // JSONString returns path representation is JSON convention
  1030  func (fp *PodStatus_FieldTerminalPath) JSONString() string {
  1031  	return strcase.ToLowerCamel(fp.String())
  1032  }
  1033  
  1034  // Get returns all values pointed by specific field from source Pod_Status
  1035  func (fp *PodStatus_FieldTerminalPath) Get(source *Pod_Status) (values []interface{}) {
  1036  	if source != nil {
  1037  		switch fp.selector {
  1038  		case PodStatus_FieldPathSelectorPhase:
  1039  			values = append(values, source.Phase)
  1040  		case PodStatus_FieldPathSelectorContainerStatuses:
  1041  			for _, value := range source.GetContainerStatuses() {
  1042  				values = append(values, value)
  1043  			}
  1044  		case PodStatus_FieldPathSelectorError:
  1045  			values = append(values, source.Error)
  1046  		default:
  1047  			panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fp.selector))
  1048  		}
  1049  	}
  1050  	return
  1051  }
  1052  
  1053  func (fp *PodStatus_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1054  	return fp.Get(source.(*Pod_Status))
  1055  }
  1056  
  1057  // GetSingle returns value pointed by specific field of from source Pod_Status
  1058  func (fp *PodStatus_FieldTerminalPath) GetSingle(source *Pod_Status) (interface{}, bool) {
  1059  	switch fp.selector {
  1060  	case PodStatus_FieldPathSelectorPhase:
  1061  		return source.GetPhase(), source != nil
  1062  	case PodStatus_FieldPathSelectorContainerStatuses:
  1063  		res := source.GetContainerStatuses()
  1064  		return res, res != nil
  1065  	case PodStatus_FieldPathSelectorError:
  1066  		return source.GetError(), source != nil
  1067  	default:
  1068  		panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fp.selector))
  1069  	}
  1070  }
  1071  
  1072  func (fp *PodStatus_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1073  	return fp.GetSingle(source.(*Pod_Status))
  1074  }
  1075  
  1076  // GetDefault returns a default value of the field type
  1077  func (fp *PodStatus_FieldTerminalPath) GetDefault() interface{} {
  1078  	switch fp.selector {
  1079  	case PodStatus_FieldPathSelectorPhase:
  1080  		return Pod_Status_PHASE_UNSPECIFIED
  1081  	case PodStatus_FieldPathSelectorContainerStatuses:
  1082  		return ([]*Pod_Status_Container)(nil)
  1083  	case PodStatus_FieldPathSelectorError:
  1084  		return ""
  1085  	default:
  1086  		panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fp.selector))
  1087  	}
  1088  }
  1089  
  1090  func (fp *PodStatus_FieldTerminalPath) ClearValue(item *Pod_Status) {
  1091  	if item != nil {
  1092  		switch fp.selector {
  1093  		case PodStatus_FieldPathSelectorPhase:
  1094  			item.Phase = Pod_Status_PHASE_UNSPECIFIED
  1095  		case PodStatus_FieldPathSelectorContainerStatuses:
  1096  			item.ContainerStatuses = nil
  1097  		case PodStatus_FieldPathSelectorError:
  1098  			item.Error = ""
  1099  		default:
  1100  			panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fp.selector))
  1101  		}
  1102  	}
  1103  }
  1104  
  1105  func (fp *PodStatus_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1106  	fp.ClearValue(item.(*Pod_Status))
  1107  }
  1108  
  1109  // IsLeaf - whether field path is holds simple value
  1110  func (fp *PodStatus_FieldTerminalPath) IsLeaf() bool {
  1111  	return fp.selector == PodStatus_FieldPathSelectorPhase ||
  1112  		fp.selector == PodStatus_FieldPathSelectorError
  1113  }
  1114  
  1115  func (fp *PodStatus_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1116  	return []gotenobject.FieldPath{fp}
  1117  }
  1118  
  1119  func (fp *PodStatus_FieldTerminalPath) WithIValue(value interface{}) PodStatus_FieldPathValue {
  1120  	switch fp.selector {
  1121  	case PodStatus_FieldPathSelectorPhase:
  1122  		return &PodStatus_FieldTerminalPathValue{PodStatus_FieldTerminalPath: *fp, value: value.(Pod_Status_Phase)}
  1123  	case PodStatus_FieldPathSelectorContainerStatuses:
  1124  		return &PodStatus_FieldTerminalPathValue{PodStatus_FieldTerminalPath: *fp, value: value.([]*Pod_Status_Container)}
  1125  	case PodStatus_FieldPathSelectorError:
  1126  		return &PodStatus_FieldTerminalPathValue{PodStatus_FieldTerminalPath: *fp, value: value.(string)}
  1127  	default:
  1128  		panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fp.selector))
  1129  	}
  1130  }
  1131  
  1132  func (fp *PodStatus_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1133  	return fp.WithIValue(value)
  1134  }
  1135  
  1136  func (fp *PodStatus_FieldTerminalPath) WithIArrayOfValues(values interface{}) PodStatus_FieldPathArrayOfValues {
  1137  	fpaov := &PodStatus_FieldTerminalPathArrayOfValues{PodStatus_FieldTerminalPath: *fp}
  1138  	switch fp.selector {
  1139  	case PodStatus_FieldPathSelectorPhase:
  1140  		return &PodStatus_FieldTerminalPathArrayOfValues{PodStatus_FieldTerminalPath: *fp, values: values.([]Pod_Status_Phase)}
  1141  	case PodStatus_FieldPathSelectorContainerStatuses:
  1142  		return &PodStatus_FieldTerminalPathArrayOfValues{PodStatus_FieldTerminalPath: *fp, values: values.([][]*Pod_Status_Container)}
  1143  	case PodStatus_FieldPathSelectorError:
  1144  		return &PodStatus_FieldTerminalPathArrayOfValues{PodStatus_FieldTerminalPath: *fp, values: values.([]string)}
  1145  	default:
  1146  		panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fp.selector))
  1147  	}
  1148  	return fpaov
  1149  }
  1150  
  1151  func (fp *PodStatus_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1152  	return fp.WithIArrayOfValues(values)
  1153  }
  1154  
  1155  func (fp *PodStatus_FieldTerminalPath) WithIArrayItemValue(value interface{}) PodStatus_FieldPathArrayItemValue {
  1156  	switch fp.selector {
  1157  	case PodStatus_FieldPathSelectorContainerStatuses:
  1158  		return &PodStatus_FieldTerminalPathArrayItemValue{PodStatus_FieldTerminalPath: *fp, value: value.(*Pod_Status_Container)}
  1159  	default:
  1160  		panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fp.selector))
  1161  	}
  1162  }
  1163  
  1164  func (fp *PodStatus_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1165  	return fp.WithIArrayItemValue(value)
  1166  }
  1167  
  1168  type PodStatus_FieldSubPath struct {
  1169  	selector PodStatus_FieldPathSelector
  1170  	subPath  gotenobject.FieldPath
  1171  }
  1172  
  1173  var _ PodStatus_FieldPath = (*PodStatus_FieldSubPath)(nil)
  1174  
  1175  func (fps *PodStatus_FieldSubPath) Selector() PodStatus_FieldPathSelector {
  1176  	return fps.selector
  1177  }
  1178  func (fps *PodStatus_FieldSubPath) AsContainerStatusesSubPath() (PodStatusContainer_FieldPath, bool) {
  1179  	res, ok := fps.subPath.(PodStatusContainer_FieldPath)
  1180  	return res, ok
  1181  }
  1182  
  1183  // String returns path representation in proto convention
  1184  func (fps *PodStatus_FieldSubPath) String() string {
  1185  	return fps.selector.String() + "." + fps.subPath.String()
  1186  }
  1187  
  1188  // JSONString returns path representation is JSON convention
  1189  func (fps *PodStatus_FieldSubPath) JSONString() string {
  1190  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
  1191  }
  1192  
  1193  // Get returns all values pointed by selected field from source Pod_Status
  1194  func (fps *PodStatus_FieldSubPath) Get(source *Pod_Status) (values []interface{}) {
  1195  	switch fps.selector {
  1196  	case PodStatus_FieldPathSelectorContainerStatuses:
  1197  		for _, item := range source.GetContainerStatuses() {
  1198  			values = append(values, fps.subPath.GetRaw(item)...)
  1199  		}
  1200  	default:
  1201  		panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fps.selector))
  1202  	}
  1203  	return
  1204  }
  1205  
  1206  func (fps *PodStatus_FieldSubPath) GetRaw(source proto.Message) []interface{} {
  1207  	return fps.Get(source.(*Pod_Status))
  1208  }
  1209  
  1210  // GetSingle returns value of selected field from source Pod_Status
  1211  func (fps *PodStatus_FieldSubPath) GetSingle(source *Pod_Status) (interface{}, bool) {
  1212  	switch fps.selector {
  1213  	case PodStatus_FieldPathSelectorContainerStatuses:
  1214  		if len(source.GetContainerStatuses()) == 0 {
  1215  			return nil, false
  1216  		}
  1217  		return fps.subPath.GetSingleRaw(source.GetContainerStatuses()[0])
  1218  	default:
  1219  		panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fps.selector))
  1220  	}
  1221  }
  1222  
  1223  func (fps *PodStatus_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1224  	return fps.GetSingle(source.(*Pod_Status))
  1225  }
  1226  
  1227  // GetDefault returns a default value of the field type
  1228  func (fps *PodStatus_FieldSubPath) GetDefault() interface{} {
  1229  	return fps.subPath.GetDefault()
  1230  }
  1231  
  1232  func (fps *PodStatus_FieldSubPath) ClearValue(item *Pod_Status) {
  1233  	if item != nil {
  1234  		switch fps.selector {
  1235  		case PodStatus_FieldPathSelectorContainerStatuses:
  1236  			for _, subItem := range item.ContainerStatuses {
  1237  				fps.subPath.ClearValueRaw(subItem)
  1238  			}
  1239  		default:
  1240  			panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fps.selector))
  1241  		}
  1242  	}
  1243  }
  1244  
  1245  func (fps *PodStatus_FieldSubPath) ClearValueRaw(item proto.Message) {
  1246  	fps.ClearValue(item.(*Pod_Status))
  1247  }
  1248  
  1249  // IsLeaf - whether field path is holds simple value
  1250  func (fps *PodStatus_FieldSubPath) IsLeaf() bool {
  1251  	return fps.subPath.IsLeaf()
  1252  }
  1253  
  1254  func (fps *PodStatus_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1255  	iPaths := []gotenobject.FieldPath{&PodStatus_FieldTerminalPath{selector: fps.selector}}
  1256  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
  1257  	return iPaths
  1258  }
  1259  
  1260  func (fps *PodStatus_FieldSubPath) WithIValue(value interface{}) PodStatus_FieldPathValue {
  1261  	return &PodStatus_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
  1262  }
  1263  
  1264  func (fps *PodStatus_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1265  	return fps.WithIValue(value)
  1266  }
  1267  
  1268  func (fps *PodStatus_FieldSubPath) WithIArrayOfValues(values interface{}) PodStatus_FieldPathArrayOfValues {
  1269  	return &PodStatus_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
  1270  }
  1271  
  1272  func (fps *PodStatus_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1273  	return fps.WithIArrayOfValues(values)
  1274  }
  1275  
  1276  func (fps *PodStatus_FieldSubPath) WithIArrayItemValue(value interface{}) PodStatus_FieldPathArrayItemValue {
  1277  	return &PodStatus_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
  1278  }
  1279  
  1280  func (fps *PodStatus_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1281  	return fps.WithIArrayItemValue(value)
  1282  }
  1283  
  1284  // PodStatus_FieldPathValue allows storing values for Status fields according to their type
  1285  type PodStatus_FieldPathValue interface {
  1286  	PodStatus_FieldPath
  1287  	gotenobject.FieldPathValue
  1288  	SetTo(target **Pod_Status)
  1289  	CompareWith(*Pod_Status) (cmp int, comparable bool)
  1290  }
  1291  
  1292  func ParsePodStatus_FieldPathValue(pathStr, valueStr string) (PodStatus_FieldPathValue, error) {
  1293  	fp, err := ParsePodStatus_FieldPath(pathStr)
  1294  	if err != nil {
  1295  		return nil, err
  1296  	}
  1297  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1298  	if err != nil {
  1299  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Status field path value from %s: %v", valueStr, err)
  1300  	}
  1301  	return fpv.(PodStatus_FieldPathValue), nil
  1302  }
  1303  
  1304  func MustParsePodStatus_FieldPathValue(pathStr, valueStr string) PodStatus_FieldPathValue {
  1305  	fpv, err := ParsePodStatus_FieldPathValue(pathStr, valueStr)
  1306  	if err != nil {
  1307  		panic(err)
  1308  	}
  1309  	return fpv
  1310  }
  1311  
  1312  type PodStatus_FieldTerminalPathValue struct {
  1313  	PodStatus_FieldTerminalPath
  1314  	value interface{}
  1315  }
  1316  
  1317  var _ PodStatus_FieldPathValue = (*PodStatus_FieldTerminalPathValue)(nil)
  1318  
  1319  // GetRawValue returns raw value stored under selected path for 'Status' as interface{}
  1320  func (fpv *PodStatus_FieldTerminalPathValue) GetRawValue() interface{} {
  1321  	return fpv.value
  1322  }
  1323  func (fpv *PodStatus_FieldTerminalPathValue) AsPhaseValue() (Pod_Status_Phase, bool) {
  1324  	res, ok := fpv.value.(Pod_Status_Phase)
  1325  	return res, ok
  1326  }
  1327  func (fpv *PodStatus_FieldTerminalPathValue) AsContainerStatusesValue() ([]*Pod_Status_Container, bool) {
  1328  	res, ok := fpv.value.([]*Pod_Status_Container)
  1329  	return res, ok
  1330  }
  1331  func (fpv *PodStatus_FieldTerminalPathValue) AsErrorValue() (string, bool) {
  1332  	res, ok := fpv.value.(string)
  1333  	return res, ok
  1334  }
  1335  
  1336  // SetTo stores value for selected field for object Status
  1337  func (fpv *PodStatus_FieldTerminalPathValue) SetTo(target **Pod_Status) {
  1338  	if *target == nil {
  1339  		*target = new(Pod_Status)
  1340  	}
  1341  	switch fpv.selector {
  1342  	case PodStatus_FieldPathSelectorPhase:
  1343  		(*target).Phase = fpv.value.(Pod_Status_Phase)
  1344  	case PodStatus_FieldPathSelectorContainerStatuses:
  1345  		(*target).ContainerStatuses = fpv.value.([]*Pod_Status_Container)
  1346  	case PodStatus_FieldPathSelectorError:
  1347  		(*target).Error = fpv.value.(string)
  1348  	default:
  1349  		panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fpv.selector))
  1350  	}
  1351  }
  1352  
  1353  func (fpv *PodStatus_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1354  	typedObject := target.(*Pod_Status)
  1355  	fpv.SetTo(&typedObject)
  1356  }
  1357  
  1358  // CompareWith compares value in the 'PodStatus_FieldTerminalPathValue' with the value under path in 'Pod_Status'.
  1359  func (fpv *PodStatus_FieldTerminalPathValue) CompareWith(source *Pod_Status) (int, bool) {
  1360  	switch fpv.selector {
  1361  	case PodStatus_FieldPathSelectorPhase:
  1362  		leftValue := fpv.value.(Pod_Status_Phase)
  1363  		rightValue := source.GetPhase()
  1364  		if (leftValue) == (rightValue) {
  1365  			return 0, true
  1366  		} else if (leftValue) < (rightValue) {
  1367  			return -1, true
  1368  		} else {
  1369  			return 1, true
  1370  		}
  1371  	case PodStatus_FieldPathSelectorContainerStatuses:
  1372  		return 0, false
  1373  	case PodStatus_FieldPathSelectorError:
  1374  		leftValue := fpv.value.(string)
  1375  		rightValue := source.GetError()
  1376  		if (leftValue) == (rightValue) {
  1377  			return 0, true
  1378  		} else if (leftValue) < (rightValue) {
  1379  			return -1, true
  1380  		} else {
  1381  			return 1, true
  1382  		}
  1383  	default:
  1384  		panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fpv.selector))
  1385  	}
  1386  }
  1387  
  1388  func (fpv *PodStatus_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1389  	return fpv.CompareWith(source.(*Pod_Status))
  1390  }
  1391  
  1392  type PodStatus_FieldSubPathValue struct {
  1393  	PodStatus_FieldPath
  1394  	subPathValue gotenobject.FieldPathValue
  1395  }
  1396  
  1397  var _ PodStatus_FieldPathValue = (*PodStatus_FieldSubPathValue)(nil)
  1398  
  1399  func (fpvs *PodStatus_FieldSubPathValue) AsContainerStatusesPathValue() (PodStatusContainer_FieldPathValue, bool) {
  1400  	res, ok := fpvs.subPathValue.(PodStatusContainer_FieldPathValue)
  1401  	return res, ok
  1402  }
  1403  
  1404  func (fpvs *PodStatus_FieldSubPathValue) SetTo(target **Pod_Status) {
  1405  	if *target == nil {
  1406  		*target = new(Pod_Status)
  1407  	}
  1408  	switch fpvs.Selector() {
  1409  	case PodStatus_FieldPathSelectorContainerStatuses:
  1410  		panic("FieldPath setter is unsupported for array subpaths")
  1411  	default:
  1412  		panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fpvs.Selector()))
  1413  	}
  1414  }
  1415  
  1416  func (fpvs *PodStatus_FieldSubPathValue) SetToRaw(target proto.Message) {
  1417  	typedObject := target.(*Pod_Status)
  1418  	fpvs.SetTo(&typedObject)
  1419  }
  1420  
  1421  func (fpvs *PodStatus_FieldSubPathValue) GetRawValue() interface{} {
  1422  	return fpvs.subPathValue.GetRawValue()
  1423  }
  1424  
  1425  func (fpvs *PodStatus_FieldSubPathValue) CompareWith(source *Pod_Status) (int, bool) {
  1426  	switch fpvs.Selector() {
  1427  	case PodStatus_FieldPathSelectorContainerStatuses:
  1428  		return 0, false // repeated field
  1429  	default:
  1430  		panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fpvs.Selector()))
  1431  	}
  1432  }
  1433  
  1434  func (fpvs *PodStatus_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1435  	return fpvs.CompareWith(source.(*Pod_Status))
  1436  }
  1437  
  1438  // PodStatus_FieldPathArrayItemValue allows storing single item in Path-specific values for Status according to their type
  1439  // Present only for array (repeated) types.
  1440  type PodStatus_FieldPathArrayItemValue interface {
  1441  	gotenobject.FieldPathArrayItemValue
  1442  	PodStatus_FieldPath
  1443  	ContainsValue(*Pod_Status) bool
  1444  }
  1445  
  1446  // ParsePodStatus_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1447  func ParsePodStatus_FieldPathArrayItemValue(pathStr, valueStr string) (PodStatus_FieldPathArrayItemValue, error) {
  1448  	fp, err := ParsePodStatus_FieldPath(pathStr)
  1449  	if err != nil {
  1450  		return nil, err
  1451  	}
  1452  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1453  	if err != nil {
  1454  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Status field path array item value from %s: %v", valueStr, err)
  1455  	}
  1456  	return fpaiv.(PodStatus_FieldPathArrayItemValue), nil
  1457  }
  1458  
  1459  func MustParsePodStatus_FieldPathArrayItemValue(pathStr, valueStr string) PodStatus_FieldPathArrayItemValue {
  1460  	fpaiv, err := ParsePodStatus_FieldPathArrayItemValue(pathStr, valueStr)
  1461  	if err != nil {
  1462  		panic(err)
  1463  	}
  1464  	return fpaiv
  1465  }
  1466  
  1467  type PodStatus_FieldTerminalPathArrayItemValue struct {
  1468  	PodStatus_FieldTerminalPath
  1469  	value interface{}
  1470  }
  1471  
  1472  var _ PodStatus_FieldPathArrayItemValue = (*PodStatus_FieldTerminalPathArrayItemValue)(nil)
  1473  
  1474  // GetRawValue returns stored element value for array in object Pod_Status as interface{}
  1475  func (fpaiv *PodStatus_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1476  	return fpaiv.value
  1477  }
  1478  func (fpaiv *PodStatus_FieldTerminalPathArrayItemValue) AsContainerStatusesItemValue() (*Pod_Status_Container, bool) {
  1479  	res, ok := fpaiv.value.(*Pod_Status_Container)
  1480  	return res, ok
  1481  }
  1482  
  1483  func (fpaiv *PodStatus_FieldTerminalPathArrayItemValue) GetSingle(source *Pod_Status) (interface{}, bool) {
  1484  	return nil, false
  1485  }
  1486  
  1487  func (fpaiv *PodStatus_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1488  	return fpaiv.GetSingle(source.(*Pod_Status))
  1489  }
  1490  
  1491  // Contains returns a boolean indicating if value that is being held is present in given 'Status'
  1492  func (fpaiv *PodStatus_FieldTerminalPathArrayItemValue) ContainsValue(source *Pod_Status) bool {
  1493  	slice := fpaiv.PodStatus_FieldTerminalPath.Get(source)
  1494  	for _, v := range slice {
  1495  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1496  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1497  				return true
  1498  			}
  1499  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1500  			return true
  1501  		}
  1502  	}
  1503  	return false
  1504  }
  1505  
  1506  type PodStatus_FieldSubPathArrayItemValue struct {
  1507  	PodStatus_FieldPath
  1508  	subPathItemValue gotenobject.FieldPathArrayItemValue
  1509  }
  1510  
  1511  // GetRawValue returns stored array item value
  1512  func (fpaivs *PodStatus_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  1513  	return fpaivs.subPathItemValue.GetRawItemValue()
  1514  }
  1515  func (fpaivs *PodStatus_FieldSubPathArrayItemValue) AsContainerStatusesPathItemValue() (PodStatusContainer_FieldPathArrayItemValue, bool) {
  1516  	res, ok := fpaivs.subPathItemValue.(PodStatusContainer_FieldPathArrayItemValue)
  1517  	return res, ok
  1518  }
  1519  
  1520  // Contains returns a boolean indicating if value that is being held is present in given 'Status'
  1521  func (fpaivs *PodStatus_FieldSubPathArrayItemValue) ContainsValue(source *Pod_Status) bool {
  1522  	switch fpaivs.Selector() {
  1523  	case PodStatus_FieldPathSelectorContainerStatuses:
  1524  		return false // repeated/map field
  1525  	default:
  1526  		panic(fmt.Sprintf("Invalid selector for Pod_Status: %d", fpaivs.Selector()))
  1527  	}
  1528  }
  1529  
  1530  // PodStatus_FieldPathArrayOfValues allows storing slice of values for Status fields according to their type
  1531  type PodStatus_FieldPathArrayOfValues interface {
  1532  	gotenobject.FieldPathArrayOfValues
  1533  	PodStatus_FieldPath
  1534  }
  1535  
  1536  func ParsePodStatus_FieldPathArrayOfValues(pathStr, valuesStr string) (PodStatus_FieldPathArrayOfValues, error) {
  1537  	fp, err := ParsePodStatus_FieldPath(pathStr)
  1538  	if err != nil {
  1539  		return nil, err
  1540  	}
  1541  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1542  	if err != nil {
  1543  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Status field path array of values from %s: %v", valuesStr, err)
  1544  	}
  1545  	return fpaov.(PodStatus_FieldPathArrayOfValues), nil
  1546  }
  1547  
  1548  func MustParsePodStatus_FieldPathArrayOfValues(pathStr, valuesStr string) PodStatus_FieldPathArrayOfValues {
  1549  	fpaov, err := ParsePodStatus_FieldPathArrayOfValues(pathStr, valuesStr)
  1550  	if err != nil {
  1551  		panic(err)
  1552  	}
  1553  	return fpaov
  1554  }
  1555  
  1556  type PodStatus_FieldTerminalPathArrayOfValues struct {
  1557  	PodStatus_FieldTerminalPath
  1558  	values interface{}
  1559  }
  1560  
  1561  var _ PodStatus_FieldPathArrayOfValues = (*PodStatus_FieldTerminalPathArrayOfValues)(nil)
  1562  
  1563  func (fpaov *PodStatus_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1564  	switch fpaov.selector {
  1565  	case PodStatus_FieldPathSelectorPhase:
  1566  		for _, v := range fpaov.values.([]Pod_Status_Phase) {
  1567  			values = append(values, v)
  1568  		}
  1569  	case PodStatus_FieldPathSelectorContainerStatuses:
  1570  		for _, v := range fpaov.values.([][]*Pod_Status_Container) {
  1571  			values = append(values, v)
  1572  		}
  1573  	case PodStatus_FieldPathSelectorError:
  1574  		for _, v := range fpaov.values.([]string) {
  1575  			values = append(values, v)
  1576  		}
  1577  	}
  1578  	return
  1579  }
  1580  func (fpaov *PodStatus_FieldTerminalPathArrayOfValues) AsPhaseArrayOfValues() ([]Pod_Status_Phase, bool) {
  1581  	res, ok := fpaov.values.([]Pod_Status_Phase)
  1582  	return res, ok
  1583  }
  1584  func (fpaov *PodStatus_FieldTerminalPathArrayOfValues) AsContainerStatusesArrayOfValues() ([][]*Pod_Status_Container, bool) {
  1585  	res, ok := fpaov.values.([][]*Pod_Status_Container)
  1586  	return res, ok
  1587  }
  1588  func (fpaov *PodStatus_FieldTerminalPathArrayOfValues) AsErrorArrayOfValues() ([]string, bool) {
  1589  	res, ok := fpaov.values.([]string)
  1590  	return res, ok
  1591  }
  1592  
  1593  type PodStatus_FieldSubPathArrayOfValues struct {
  1594  	PodStatus_FieldPath
  1595  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  1596  }
  1597  
  1598  var _ PodStatus_FieldPathArrayOfValues = (*PodStatus_FieldSubPathArrayOfValues)(nil)
  1599  
  1600  func (fpsaov *PodStatus_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  1601  	return fpsaov.subPathArrayOfValues.GetRawValues()
  1602  }
  1603  func (fpsaov *PodStatus_FieldSubPathArrayOfValues) AsContainerStatusesPathArrayOfValues() (PodStatusContainer_FieldPathArrayOfValues, bool) {
  1604  	res, ok := fpsaov.subPathArrayOfValues.(PodStatusContainer_FieldPathArrayOfValues)
  1605  	return res, ok
  1606  }
  1607  
  1608  // FieldPath provides implementation to handle
  1609  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1610  type PodStatusContainer_FieldPath interface {
  1611  	gotenobject.FieldPath
  1612  	Selector() PodStatusContainer_FieldPathSelector
  1613  	Get(source *Pod_Status_Container) []interface{}
  1614  	GetSingle(source *Pod_Status_Container) (interface{}, bool)
  1615  	ClearValue(item *Pod_Status_Container)
  1616  
  1617  	// Those methods build corresponding PodStatusContainer_FieldPathValue
  1618  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1619  	WithIValue(value interface{}) PodStatusContainer_FieldPathValue
  1620  	WithIArrayOfValues(values interface{}) PodStatusContainer_FieldPathArrayOfValues
  1621  	WithIArrayItemValue(value interface{}) PodStatusContainer_FieldPathArrayItemValue
  1622  }
  1623  
  1624  type PodStatusContainer_FieldPathSelector int32
  1625  
  1626  const (
  1627  	PodStatusContainer_FieldPathSelectorName       PodStatusContainer_FieldPathSelector = 0
  1628  	PodStatusContainer_FieldPathSelectorState      PodStatusContainer_FieldPathSelector = 1
  1629  	PodStatusContainer_FieldPathSelectorWaiting    PodStatusContainer_FieldPathSelector = 2
  1630  	PodStatusContainer_FieldPathSelectorRunning    PodStatusContainer_FieldPathSelector = 3
  1631  	PodStatusContainer_FieldPathSelectorTerminated PodStatusContainer_FieldPathSelector = 4
  1632  )
  1633  
  1634  func (s PodStatusContainer_FieldPathSelector) String() string {
  1635  	switch s {
  1636  	case PodStatusContainer_FieldPathSelectorName:
  1637  		return "name"
  1638  	case PodStatusContainer_FieldPathSelectorState:
  1639  		return "state"
  1640  	case PodStatusContainer_FieldPathSelectorWaiting:
  1641  		return "waiting"
  1642  	case PodStatusContainer_FieldPathSelectorRunning:
  1643  		return "running"
  1644  	case PodStatusContainer_FieldPathSelectorTerminated:
  1645  		return "terminated"
  1646  	default:
  1647  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", s))
  1648  	}
  1649  }
  1650  
  1651  func BuildPodStatusContainer_FieldPath(fp gotenobject.RawFieldPath) (PodStatusContainer_FieldPath, error) {
  1652  	if len(fp) == 0 {
  1653  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Pod_Status_Container")
  1654  	}
  1655  	if len(fp) == 1 {
  1656  		switch fp[0] {
  1657  		case "name":
  1658  			return &PodStatusContainer_FieldTerminalPath{selector: PodStatusContainer_FieldPathSelectorName}, nil
  1659  		case "state":
  1660  			return &PodStatusContainer_FieldTerminalPath{selector: PodStatusContainer_FieldPathSelectorState}, nil
  1661  		case "waiting":
  1662  			return &PodStatusContainer_FieldTerminalPath{selector: PodStatusContainer_FieldPathSelectorWaiting}, nil
  1663  		case "running":
  1664  			return &PodStatusContainer_FieldTerminalPath{selector: PodStatusContainer_FieldPathSelectorRunning}, nil
  1665  		case "terminated":
  1666  			return &PodStatusContainer_FieldTerminalPath{selector: PodStatusContainer_FieldPathSelectorTerminated}, nil
  1667  		}
  1668  	} else {
  1669  		switch fp[0] {
  1670  		case "waiting":
  1671  			if subpath, err := BuildPodStatusContainerStateWaiting_FieldPath(fp[1:]); err != nil {
  1672  				return nil, err
  1673  			} else {
  1674  				return &PodStatusContainer_FieldSubPath{selector: PodStatusContainer_FieldPathSelectorWaiting, subPath: subpath}, nil
  1675  			}
  1676  		case "running":
  1677  			if subpath, err := BuildPodStatusContainerStateRunning_FieldPath(fp[1:]); err != nil {
  1678  				return nil, err
  1679  			} else {
  1680  				return &PodStatusContainer_FieldSubPath{selector: PodStatusContainer_FieldPathSelectorRunning, subPath: subpath}, nil
  1681  			}
  1682  		case "terminated":
  1683  			if subpath, err := BuildPodStatusContainerStateTerminated_FieldPath(fp[1:]); err != nil {
  1684  				return nil, err
  1685  			} else {
  1686  				return &PodStatusContainer_FieldSubPath{selector: PodStatusContainer_FieldPathSelectorTerminated, subPath: subpath}, nil
  1687  			}
  1688  		}
  1689  	}
  1690  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Pod_Status_Container", fp)
  1691  }
  1692  
  1693  func ParsePodStatusContainer_FieldPath(rawField string) (PodStatusContainer_FieldPath, error) {
  1694  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1695  	if err != nil {
  1696  		return nil, err
  1697  	}
  1698  	return BuildPodStatusContainer_FieldPath(fp)
  1699  }
  1700  
  1701  func MustParsePodStatusContainer_FieldPath(rawField string) PodStatusContainer_FieldPath {
  1702  	fp, err := ParsePodStatusContainer_FieldPath(rawField)
  1703  	if err != nil {
  1704  		panic(err)
  1705  	}
  1706  	return fp
  1707  }
  1708  
  1709  type PodStatusContainer_FieldTerminalPath struct {
  1710  	selector PodStatusContainer_FieldPathSelector
  1711  }
  1712  
  1713  var _ PodStatusContainer_FieldPath = (*PodStatusContainer_FieldTerminalPath)(nil)
  1714  
  1715  func (fp *PodStatusContainer_FieldTerminalPath) Selector() PodStatusContainer_FieldPathSelector {
  1716  	return fp.selector
  1717  }
  1718  
  1719  // String returns path representation in proto convention
  1720  func (fp *PodStatusContainer_FieldTerminalPath) String() string {
  1721  	return fp.selector.String()
  1722  }
  1723  
  1724  // JSONString returns path representation is JSON convention
  1725  func (fp *PodStatusContainer_FieldTerminalPath) JSONString() string {
  1726  	return strcase.ToLowerCamel(fp.String())
  1727  }
  1728  
  1729  // Get returns all values pointed by specific field from source Pod_Status_Container
  1730  func (fp *PodStatusContainer_FieldTerminalPath) Get(source *Pod_Status_Container) (values []interface{}) {
  1731  	if source != nil {
  1732  		switch fp.selector {
  1733  		case PodStatusContainer_FieldPathSelectorName:
  1734  			values = append(values, source.Name)
  1735  		case PodStatusContainer_FieldPathSelectorState:
  1736  			values = append(values, source.State)
  1737  		case PodStatusContainer_FieldPathSelectorWaiting:
  1738  			if source.Waiting != nil {
  1739  				values = append(values, source.Waiting)
  1740  			}
  1741  		case PodStatusContainer_FieldPathSelectorRunning:
  1742  			if source.Running != nil {
  1743  				values = append(values, source.Running)
  1744  			}
  1745  		case PodStatusContainer_FieldPathSelectorTerminated:
  1746  			if source.Terminated != nil {
  1747  				values = append(values, source.Terminated)
  1748  			}
  1749  		default:
  1750  			panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fp.selector))
  1751  		}
  1752  	}
  1753  	return
  1754  }
  1755  
  1756  func (fp *PodStatusContainer_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1757  	return fp.Get(source.(*Pod_Status_Container))
  1758  }
  1759  
  1760  // GetSingle returns value pointed by specific field of from source Pod_Status_Container
  1761  func (fp *PodStatusContainer_FieldTerminalPath) GetSingle(source *Pod_Status_Container) (interface{}, bool) {
  1762  	switch fp.selector {
  1763  	case PodStatusContainer_FieldPathSelectorName:
  1764  		return source.GetName(), source != nil
  1765  	case PodStatusContainer_FieldPathSelectorState:
  1766  		return source.GetState(), source != nil
  1767  	case PodStatusContainer_FieldPathSelectorWaiting:
  1768  		res := source.GetWaiting()
  1769  		return res, res != nil
  1770  	case PodStatusContainer_FieldPathSelectorRunning:
  1771  		res := source.GetRunning()
  1772  		return res, res != nil
  1773  	case PodStatusContainer_FieldPathSelectorTerminated:
  1774  		res := source.GetTerminated()
  1775  		return res, res != nil
  1776  	default:
  1777  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fp.selector))
  1778  	}
  1779  }
  1780  
  1781  func (fp *PodStatusContainer_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1782  	return fp.GetSingle(source.(*Pod_Status_Container))
  1783  }
  1784  
  1785  // GetDefault returns a default value of the field type
  1786  func (fp *PodStatusContainer_FieldTerminalPath) GetDefault() interface{} {
  1787  	switch fp.selector {
  1788  	case PodStatusContainer_FieldPathSelectorName:
  1789  		return ""
  1790  	case PodStatusContainer_FieldPathSelectorState:
  1791  		return Pod_Status_Container_STATE_UNSPECIFIED
  1792  	case PodStatusContainer_FieldPathSelectorWaiting:
  1793  		return (*Pod_Status_Container_StateWaiting)(nil)
  1794  	case PodStatusContainer_FieldPathSelectorRunning:
  1795  		return (*Pod_Status_Container_StateRunning)(nil)
  1796  	case PodStatusContainer_FieldPathSelectorTerminated:
  1797  		return (*Pod_Status_Container_StateTerminated)(nil)
  1798  	default:
  1799  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fp.selector))
  1800  	}
  1801  }
  1802  
  1803  func (fp *PodStatusContainer_FieldTerminalPath) ClearValue(item *Pod_Status_Container) {
  1804  	if item != nil {
  1805  		switch fp.selector {
  1806  		case PodStatusContainer_FieldPathSelectorName:
  1807  			item.Name = ""
  1808  		case PodStatusContainer_FieldPathSelectorState:
  1809  			item.State = Pod_Status_Container_STATE_UNSPECIFIED
  1810  		case PodStatusContainer_FieldPathSelectorWaiting:
  1811  			item.Waiting = nil
  1812  		case PodStatusContainer_FieldPathSelectorRunning:
  1813  			item.Running = nil
  1814  		case PodStatusContainer_FieldPathSelectorTerminated:
  1815  			item.Terminated = nil
  1816  		default:
  1817  			panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fp.selector))
  1818  		}
  1819  	}
  1820  }
  1821  
  1822  func (fp *PodStatusContainer_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1823  	fp.ClearValue(item.(*Pod_Status_Container))
  1824  }
  1825  
  1826  // IsLeaf - whether field path is holds simple value
  1827  func (fp *PodStatusContainer_FieldTerminalPath) IsLeaf() bool {
  1828  	return fp.selector == PodStatusContainer_FieldPathSelectorName ||
  1829  		fp.selector == PodStatusContainer_FieldPathSelectorState
  1830  }
  1831  
  1832  func (fp *PodStatusContainer_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1833  	return []gotenobject.FieldPath{fp}
  1834  }
  1835  
  1836  func (fp *PodStatusContainer_FieldTerminalPath) WithIValue(value interface{}) PodStatusContainer_FieldPathValue {
  1837  	switch fp.selector {
  1838  	case PodStatusContainer_FieldPathSelectorName:
  1839  		return &PodStatusContainer_FieldTerminalPathValue{PodStatusContainer_FieldTerminalPath: *fp, value: value.(string)}
  1840  	case PodStatusContainer_FieldPathSelectorState:
  1841  		return &PodStatusContainer_FieldTerminalPathValue{PodStatusContainer_FieldTerminalPath: *fp, value: value.(Pod_Status_Container_State)}
  1842  	case PodStatusContainer_FieldPathSelectorWaiting:
  1843  		return &PodStatusContainer_FieldTerminalPathValue{PodStatusContainer_FieldTerminalPath: *fp, value: value.(*Pod_Status_Container_StateWaiting)}
  1844  	case PodStatusContainer_FieldPathSelectorRunning:
  1845  		return &PodStatusContainer_FieldTerminalPathValue{PodStatusContainer_FieldTerminalPath: *fp, value: value.(*Pod_Status_Container_StateRunning)}
  1846  	case PodStatusContainer_FieldPathSelectorTerminated:
  1847  		return &PodStatusContainer_FieldTerminalPathValue{PodStatusContainer_FieldTerminalPath: *fp, value: value.(*Pod_Status_Container_StateTerminated)}
  1848  	default:
  1849  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fp.selector))
  1850  	}
  1851  }
  1852  
  1853  func (fp *PodStatusContainer_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1854  	return fp.WithIValue(value)
  1855  }
  1856  
  1857  func (fp *PodStatusContainer_FieldTerminalPath) WithIArrayOfValues(values interface{}) PodStatusContainer_FieldPathArrayOfValues {
  1858  	fpaov := &PodStatusContainer_FieldTerminalPathArrayOfValues{PodStatusContainer_FieldTerminalPath: *fp}
  1859  	switch fp.selector {
  1860  	case PodStatusContainer_FieldPathSelectorName:
  1861  		return &PodStatusContainer_FieldTerminalPathArrayOfValues{PodStatusContainer_FieldTerminalPath: *fp, values: values.([]string)}
  1862  	case PodStatusContainer_FieldPathSelectorState:
  1863  		return &PodStatusContainer_FieldTerminalPathArrayOfValues{PodStatusContainer_FieldTerminalPath: *fp, values: values.([]Pod_Status_Container_State)}
  1864  	case PodStatusContainer_FieldPathSelectorWaiting:
  1865  		return &PodStatusContainer_FieldTerminalPathArrayOfValues{PodStatusContainer_FieldTerminalPath: *fp, values: values.([]*Pod_Status_Container_StateWaiting)}
  1866  	case PodStatusContainer_FieldPathSelectorRunning:
  1867  		return &PodStatusContainer_FieldTerminalPathArrayOfValues{PodStatusContainer_FieldTerminalPath: *fp, values: values.([]*Pod_Status_Container_StateRunning)}
  1868  	case PodStatusContainer_FieldPathSelectorTerminated:
  1869  		return &PodStatusContainer_FieldTerminalPathArrayOfValues{PodStatusContainer_FieldTerminalPath: *fp, values: values.([]*Pod_Status_Container_StateTerminated)}
  1870  	default:
  1871  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fp.selector))
  1872  	}
  1873  	return fpaov
  1874  }
  1875  
  1876  func (fp *PodStatusContainer_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1877  	return fp.WithIArrayOfValues(values)
  1878  }
  1879  
  1880  func (fp *PodStatusContainer_FieldTerminalPath) WithIArrayItemValue(value interface{}) PodStatusContainer_FieldPathArrayItemValue {
  1881  	switch fp.selector {
  1882  	default:
  1883  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fp.selector))
  1884  	}
  1885  }
  1886  
  1887  func (fp *PodStatusContainer_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1888  	return fp.WithIArrayItemValue(value)
  1889  }
  1890  
  1891  type PodStatusContainer_FieldSubPath struct {
  1892  	selector PodStatusContainer_FieldPathSelector
  1893  	subPath  gotenobject.FieldPath
  1894  }
  1895  
  1896  var _ PodStatusContainer_FieldPath = (*PodStatusContainer_FieldSubPath)(nil)
  1897  
  1898  func (fps *PodStatusContainer_FieldSubPath) Selector() PodStatusContainer_FieldPathSelector {
  1899  	return fps.selector
  1900  }
  1901  func (fps *PodStatusContainer_FieldSubPath) AsWaitingSubPath() (PodStatusContainerStateWaiting_FieldPath, bool) {
  1902  	res, ok := fps.subPath.(PodStatusContainerStateWaiting_FieldPath)
  1903  	return res, ok
  1904  }
  1905  func (fps *PodStatusContainer_FieldSubPath) AsRunningSubPath() (PodStatusContainerStateRunning_FieldPath, bool) {
  1906  	res, ok := fps.subPath.(PodStatusContainerStateRunning_FieldPath)
  1907  	return res, ok
  1908  }
  1909  func (fps *PodStatusContainer_FieldSubPath) AsTerminatedSubPath() (PodStatusContainerStateTerminated_FieldPath, bool) {
  1910  	res, ok := fps.subPath.(PodStatusContainerStateTerminated_FieldPath)
  1911  	return res, ok
  1912  }
  1913  
  1914  // String returns path representation in proto convention
  1915  func (fps *PodStatusContainer_FieldSubPath) String() string {
  1916  	return fps.selector.String() + "." + fps.subPath.String()
  1917  }
  1918  
  1919  // JSONString returns path representation is JSON convention
  1920  func (fps *PodStatusContainer_FieldSubPath) JSONString() string {
  1921  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
  1922  }
  1923  
  1924  // Get returns all values pointed by selected field from source Pod_Status_Container
  1925  func (fps *PodStatusContainer_FieldSubPath) Get(source *Pod_Status_Container) (values []interface{}) {
  1926  	switch fps.selector {
  1927  	case PodStatusContainer_FieldPathSelectorWaiting:
  1928  		values = append(values, fps.subPath.GetRaw(source.GetWaiting())...)
  1929  	case PodStatusContainer_FieldPathSelectorRunning:
  1930  		values = append(values, fps.subPath.GetRaw(source.GetRunning())...)
  1931  	case PodStatusContainer_FieldPathSelectorTerminated:
  1932  		values = append(values, fps.subPath.GetRaw(source.GetTerminated())...)
  1933  	default:
  1934  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fps.selector))
  1935  	}
  1936  	return
  1937  }
  1938  
  1939  func (fps *PodStatusContainer_FieldSubPath) GetRaw(source proto.Message) []interface{} {
  1940  	return fps.Get(source.(*Pod_Status_Container))
  1941  }
  1942  
  1943  // GetSingle returns value of selected field from source Pod_Status_Container
  1944  func (fps *PodStatusContainer_FieldSubPath) GetSingle(source *Pod_Status_Container) (interface{}, bool) {
  1945  	switch fps.selector {
  1946  	case PodStatusContainer_FieldPathSelectorWaiting:
  1947  		if source.GetWaiting() == nil {
  1948  			return nil, false
  1949  		}
  1950  		return fps.subPath.GetSingleRaw(source.GetWaiting())
  1951  	case PodStatusContainer_FieldPathSelectorRunning:
  1952  		if source.GetRunning() == nil {
  1953  			return nil, false
  1954  		}
  1955  		return fps.subPath.GetSingleRaw(source.GetRunning())
  1956  	case PodStatusContainer_FieldPathSelectorTerminated:
  1957  		if source.GetTerminated() == nil {
  1958  			return nil, false
  1959  		}
  1960  		return fps.subPath.GetSingleRaw(source.GetTerminated())
  1961  	default:
  1962  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fps.selector))
  1963  	}
  1964  }
  1965  
  1966  func (fps *PodStatusContainer_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1967  	return fps.GetSingle(source.(*Pod_Status_Container))
  1968  }
  1969  
  1970  // GetDefault returns a default value of the field type
  1971  func (fps *PodStatusContainer_FieldSubPath) GetDefault() interface{} {
  1972  	return fps.subPath.GetDefault()
  1973  }
  1974  
  1975  func (fps *PodStatusContainer_FieldSubPath) ClearValue(item *Pod_Status_Container) {
  1976  	if item != nil {
  1977  		switch fps.selector {
  1978  		case PodStatusContainer_FieldPathSelectorWaiting:
  1979  			fps.subPath.ClearValueRaw(item.Waiting)
  1980  		case PodStatusContainer_FieldPathSelectorRunning:
  1981  			fps.subPath.ClearValueRaw(item.Running)
  1982  		case PodStatusContainer_FieldPathSelectorTerminated:
  1983  			fps.subPath.ClearValueRaw(item.Terminated)
  1984  		default:
  1985  			panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fps.selector))
  1986  		}
  1987  	}
  1988  }
  1989  
  1990  func (fps *PodStatusContainer_FieldSubPath) ClearValueRaw(item proto.Message) {
  1991  	fps.ClearValue(item.(*Pod_Status_Container))
  1992  }
  1993  
  1994  // IsLeaf - whether field path is holds simple value
  1995  func (fps *PodStatusContainer_FieldSubPath) IsLeaf() bool {
  1996  	return fps.subPath.IsLeaf()
  1997  }
  1998  
  1999  func (fps *PodStatusContainer_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  2000  	iPaths := []gotenobject.FieldPath{&PodStatusContainer_FieldTerminalPath{selector: fps.selector}}
  2001  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
  2002  	return iPaths
  2003  }
  2004  
  2005  func (fps *PodStatusContainer_FieldSubPath) WithIValue(value interface{}) PodStatusContainer_FieldPathValue {
  2006  	return &PodStatusContainer_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
  2007  }
  2008  
  2009  func (fps *PodStatusContainer_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  2010  	return fps.WithIValue(value)
  2011  }
  2012  
  2013  func (fps *PodStatusContainer_FieldSubPath) WithIArrayOfValues(values interface{}) PodStatusContainer_FieldPathArrayOfValues {
  2014  	return &PodStatusContainer_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
  2015  }
  2016  
  2017  func (fps *PodStatusContainer_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  2018  	return fps.WithIArrayOfValues(values)
  2019  }
  2020  
  2021  func (fps *PodStatusContainer_FieldSubPath) WithIArrayItemValue(value interface{}) PodStatusContainer_FieldPathArrayItemValue {
  2022  	return &PodStatusContainer_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
  2023  }
  2024  
  2025  func (fps *PodStatusContainer_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  2026  	return fps.WithIArrayItemValue(value)
  2027  }
  2028  
  2029  // PodStatusContainer_FieldPathValue allows storing values for Container fields according to their type
  2030  type PodStatusContainer_FieldPathValue interface {
  2031  	PodStatusContainer_FieldPath
  2032  	gotenobject.FieldPathValue
  2033  	SetTo(target **Pod_Status_Container)
  2034  	CompareWith(*Pod_Status_Container) (cmp int, comparable bool)
  2035  }
  2036  
  2037  func ParsePodStatusContainer_FieldPathValue(pathStr, valueStr string) (PodStatusContainer_FieldPathValue, error) {
  2038  	fp, err := ParsePodStatusContainer_FieldPath(pathStr)
  2039  	if err != nil {
  2040  		return nil, err
  2041  	}
  2042  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  2043  	if err != nil {
  2044  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Container field path value from %s: %v", valueStr, err)
  2045  	}
  2046  	return fpv.(PodStatusContainer_FieldPathValue), nil
  2047  }
  2048  
  2049  func MustParsePodStatusContainer_FieldPathValue(pathStr, valueStr string) PodStatusContainer_FieldPathValue {
  2050  	fpv, err := ParsePodStatusContainer_FieldPathValue(pathStr, valueStr)
  2051  	if err != nil {
  2052  		panic(err)
  2053  	}
  2054  	return fpv
  2055  }
  2056  
  2057  type PodStatusContainer_FieldTerminalPathValue struct {
  2058  	PodStatusContainer_FieldTerminalPath
  2059  	value interface{}
  2060  }
  2061  
  2062  var _ PodStatusContainer_FieldPathValue = (*PodStatusContainer_FieldTerminalPathValue)(nil)
  2063  
  2064  // GetRawValue returns raw value stored under selected path for 'Container' as interface{}
  2065  func (fpv *PodStatusContainer_FieldTerminalPathValue) GetRawValue() interface{} {
  2066  	return fpv.value
  2067  }
  2068  func (fpv *PodStatusContainer_FieldTerminalPathValue) AsNameValue() (string, bool) {
  2069  	res, ok := fpv.value.(string)
  2070  	return res, ok
  2071  }
  2072  func (fpv *PodStatusContainer_FieldTerminalPathValue) AsStateValue() (Pod_Status_Container_State, bool) {
  2073  	res, ok := fpv.value.(Pod_Status_Container_State)
  2074  	return res, ok
  2075  }
  2076  func (fpv *PodStatusContainer_FieldTerminalPathValue) AsWaitingValue() (*Pod_Status_Container_StateWaiting, bool) {
  2077  	res, ok := fpv.value.(*Pod_Status_Container_StateWaiting)
  2078  	return res, ok
  2079  }
  2080  func (fpv *PodStatusContainer_FieldTerminalPathValue) AsRunningValue() (*Pod_Status_Container_StateRunning, bool) {
  2081  	res, ok := fpv.value.(*Pod_Status_Container_StateRunning)
  2082  	return res, ok
  2083  }
  2084  func (fpv *PodStatusContainer_FieldTerminalPathValue) AsTerminatedValue() (*Pod_Status_Container_StateTerminated, bool) {
  2085  	res, ok := fpv.value.(*Pod_Status_Container_StateTerminated)
  2086  	return res, ok
  2087  }
  2088  
  2089  // SetTo stores value for selected field for object Container
  2090  func (fpv *PodStatusContainer_FieldTerminalPathValue) SetTo(target **Pod_Status_Container) {
  2091  	if *target == nil {
  2092  		*target = new(Pod_Status_Container)
  2093  	}
  2094  	switch fpv.selector {
  2095  	case PodStatusContainer_FieldPathSelectorName:
  2096  		(*target).Name = fpv.value.(string)
  2097  	case PodStatusContainer_FieldPathSelectorState:
  2098  		(*target).State = fpv.value.(Pod_Status_Container_State)
  2099  	case PodStatusContainer_FieldPathSelectorWaiting:
  2100  		(*target).Waiting = fpv.value.(*Pod_Status_Container_StateWaiting)
  2101  	case PodStatusContainer_FieldPathSelectorRunning:
  2102  		(*target).Running = fpv.value.(*Pod_Status_Container_StateRunning)
  2103  	case PodStatusContainer_FieldPathSelectorTerminated:
  2104  		(*target).Terminated = fpv.value.(*Pod_Status_Container_StateTerminated)
  2105  	default:
  2106  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fpv.selector))
  2107  	}
  2108  }
  2109  
  2110  func (fpv *PodStatusContainer_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  2111  	typedObject := target.(*Pod_Status_Container)
  2112  	fpv.SetTo(&typedObject)
  2113  }
  2114  
  2115  // CompareWith compares value in the 'PodStatusContainer_FieldTerminalPathValue' with the value under path in 'Pod_Status_Container'.
  2116  func (fpv *PodStatusContainer_FieldTerminalPathValue) CompareWith(source *Pod_Status_Container) (int, bool) {
  2117  	switch fpv.selector {
  2118  	case PodStatusContainer_FieldPathSelectorName:
  2119  		leftValue := fpv.value.(string)
  2120  		rightValue := source.GetName()
  2121  		if (leftValue) == (rightValue) {
  2122  			return 0, true
  2123  		} else if (leftValue) < (rightValue) {
  2124  			return -1, true
  2125  		} else {
  2126  			return 1, true
  2127  		}
  2128  	case PodStatusContainer_FieldPathSelectorState:
  2129  		leftValue := fpv.value.(Pod_Status_Container_State)
  2130  		rightValue := source.GetState()
  2131  		if (leftValue) == (rightValue) {
  2132  			return 0, true
  2133  		} else if (leftValue) < (rightValue) {
  2134  			return -1, true
  2135  		} else {
  2136  			return 1, true
  2137  		}
  2138  	case PodStatusContainer_FieldPathSelectorWaiting:
  2139  		return 0, false
  2140  	case PodStatusContainer_FieldPathSelectorRunning:
  2141  		return 0, false
  2142  	case PodStatusContainer_FieldPathSelectorTerminated:
  2143  		return 0, false
  2144  	default:
  2145  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fpv.selector))
  2146  	}
  2147  }
  2148  
  2149  func (fpv *PodStatusContainer_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2150  	return fpv.CompareWith(source.(*Pod_Status_Container))
  2151  }
  2152  
  2153  type PodStatusContainer_FieldSubPathValue struct {
  2154  	PodStatusContainer_FieldPath
  2155  	subPathValue gotenobject.FieldPathValue
  2156  }
  2157  
  2158  var _ PodStatusContainer_FieldPathValue = (*PodStatusContainer_FieldSubPathValue)(nil)
  2159  
  2160  func (fpvs *PodStatusContainer_FieldSubPathValue) AsWaitingPathValue() (PodStatusContainerStateWaiting_FieldPathValue, bool) {
  2161  	res, ok := fpvs.subPathValue.(PodStatusContainerStateWaiting_FieldPathValue)
  2162  	return res, ok
  2163  }
  2164  func (fpvs *PodStatusContainer_FieldSubPathValue) AsRunningPathValue() (PodStatusContainerStateRunning_FieldPathValue, bool) {
  2165  	res, ok := fpvs.subPathValue.(PodStatusContainerStateRunning_FieldPathValue)
  2166  	return res, ok
  2167  }
  2168  func (fpvs *PodStatusContainer_FieldSubPathValue) AsTerminatedPathValue() (PodStatusContainerStateTerminated_FieldPathValue, bool) {
  2169  	res, ok := fpvs.subPathValue.(PodStatusContainerStateTerminated_FieldPathValue)
  2170  	return res, ok
  2171  }
  2172  
  2173  func (fpvs *PodStatusContainer_FieldSubPathValue) SetTo(target **Pod_Status_Container) {
  2174  	if *target == nil {
  2175  		*target = new(Pod_Status_Container)
  2176  	}
  2177  	switch fpvs.Selector() {
  2178  	case PodStatusContainer_FieldPathSelectorWaiting:
  2179  		fpvs.subPathValue.(PodStatusContainerStateWaiting_FieldPathValue).SetTo(&(*target).Waiting)
  2180  	case PodStatusContainer_FieldPathSelectorRunning:
  2181  		fpvs.subPathValue.(PodStatusContainerStateRunning_FieldPathValue).SetTo(&(*target).Running)
  2182  	case PodStatusContainer_FieldPathSelectorTerminated:
  2183  		fpvs.subPathValue.(PodStatusContainerStateTerminated_FieldPathValue).SetTo(&(*target).Terminated)
  2184  	default:
  2185  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fpvs.Selector()))
  2186  	}
  2187  }
  2188  
  2189  func (fpvs *PodStatusContainer_FieldSubPathValue) SetToRaw(target proto.Message) {
  2190  	typedObject := target.(*Pod_Status_Container)
  2191  	fpvs.SetTo(&typedObject)
  2192  }
  2193  
  2194  func (fpvs *PodStatusContainer_FieldSubPathValue) GetRawValue() interface{} {
  2195  	return fpvs.subPathValue.GetRawValue()
  2196  }
  2197  
  2198  func (fpvs *PodStatusContainer_FieldSubPathValue) CompareWith(source *Pod_Status_Container) (int, bool) {
  2199  	switch fpvs.Selector() {
  2200  	case PodStatusContainer_FieldPathSelectorWaiting:
  2201  		return fpvs.subPathValue.(PodStatusContainerStateWaiting_FieldPathValue).CompareWith(source.GetWaiting())
  2202  	case PodStatusContainer_FieldPathSelectorRunning:
  2203  		return fpvs.subPathValue.(PodStatusContainerStateRunning_FieldPathValue).CompareWith(source.GetRunning())
  2204  	case PodStatusContainer_FieldPathSelectorTerminated:
  2205  		return fpvs.subPathValue.(PodStatusContainerStateTerminated_FieldPathValue).CompareWith(source.GetTerminated())
  2206  	default:
  2207  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fpvs.Selector()))
  2208  	}
  2209  }
  2210  
  2211  func (fpvs *PodStatusContainer_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2212  	return fpvs.CompareWith(source.(*Pod_Status_Container))
  2213  }
  2214  
  2215  // PodStatusContainer_FieldPathArrayItemValue allows storing single item in Path-specific values for Container according to their type
  2216  // Present only for array (repeated) types.
  2217  type PodStatusContainer_FieldPathArrayItemValue interface {
  2218  	gotenobject.FieldPathArrayItemValue
  2219  	PodStatusContainer_FieldPath
  2220  	ContainsValue(*Pod_Status_Container) bool
  2221  }
  2222  
  2223  // ParsePodStatusContainer_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  2224  func ParsePodStatusContainer_FieldPathArrayItemValue(pathStr, valueStr string) (PodStatusContainer_FieldPathArrayItemValue, error) {
  2225  	fp, err := ParsePodStatusContainer_FieldPath(pathStr)
  2226  	if err != nil {
  2227  		return nil, err
  2228  	}
  2229  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  2230  	if err != nil {
  2231  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Container field path array item value from %s: %v", valueStr, err)
  2232  	}
  2233  	return fpaiv.(PodStatusContainer_FieldPathArrayItemValue), nil
  2234  }
  2235  
  2236  func MustParsePodStatusContainer_FieldPathArrayItemValue(pathStr, valueStr string) PodStatusContainer_FieldPathArrayItemValue {
  2237  	fpaiv, err := ParsePodStatusContainer_FieldPathArrayItemValue(pathStr, valueStr)
  2238  	if err != nil {
  2239  		panic(err)
  2240  	}
  2241  	return fpaiv
  2242  }
  2243  
  2244  type PodStatusContainer_FieldTerminalPathArrayItemValue struct {
  2245  	PodStatusContainer_FieldTerminalPath
  2246  	value interface{}
  2247  }
  2248  
  2249  var _ PodStatusContainer_FieldPathArrayItemValue = (*PodStatusContainer_FieldTerminalPathArrayItemValue)(nil)
  2250  
  2251  // GetRawValue returns stored element value for array in object Pod_Status_Container as interface{}
  2252  func (fpaiv *PodStatusContainer_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  2253  	return fpaiv.value
  2254  }
  2255  
  2256  func (fpaiv *PodStatusContainer_FieldTerminalPathArrayItemValue) GetSingle(source *Pod_Status_Container) (interface{}, bool) {
  2257  	return nil, false
  2258  }
  2259  
  2260  func (fpaiv *PodStatusContainer_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2261  	return fpaiv.GetSingle(source.(*Pod_Status_Container))
  2262  }
  2263  
  2264  // Contains returns a boolean indicating if value that is being held is present in given 'Container'
  2265  func (fpaiv *PodStatusContainer_FieldTerminalPathArrayItemValue) ContainsValue(source *Pod_Status_Container) bool {
  2266  	slice := fpaiv.PodStatusContainer_FieldTerminalPath.Get(source)
  2267  	for _, v := range slice {
  2268  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  2269  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  2270  				return true
  2271  			}
  2272  		} else if reflect.DeepEqual(v, fpaiv.value) {
  2273  			return true
  2274  		}
  2275  	}
  2276  	return false
  2277  }
  2278  
  2279  type PodStatusContainer_FieldSubPathArrayItemValue struct {
  2280  	PodStatusContainer_FieldPath
  2281  	subPathItemValue gotenobject.FieldPathArrayItemValue
  2282  }
  2283  
  2284  // GetRawValue returns stored array item value
  2285  func (fpaivs *PodStatusContainer_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
  2286  	return fpaivs.subPathItemValue.GetRawItemValue()
  2287  }
  2288  func (fpaivs *PodStatusContainer_FieldSubPathArrayItemValue) AsWaitingPathItemValue() (PodStatusContainerStateWaiting_FieldPathArrayItemValue, bool) {
  2289  	res, ok := fpaivs.subPathItemValue.(PodStatusContainerStateWaiting_FieldPathArrayItemValue)
  2290  	return res, ok
  2291  }
  2292  func (fpaivs *PodStatusContainer_FieldSubPathArrayItemValue) AsRunningPathItemValue() (PodStatusContainerStateRunning_FieldPathArrayItemValue, bool) {
  2293  	res, ok := fpaivs.subPathItemValue.(PodStatusContainerStateRunning_FieldPathArrayItemValue)
  2294  	return res, ok
  2295  }
  2296  func (fpaivs *PodStatusContainer_FieldSubPathArrayItemValue) AsTerminatedPathItemValue() (PodStatusContainerStateTerminated_FieldPathArrayItemValue, bool) {
  2297  	res, ok := fpaivs.subPathItemValue.(PodStatusContainerStateTerminated_FieldPathArrayItemValue)
  2298  	return res, ok
  2299  }
  2300  
  2301  // Contains returns a boolean indicating if value that is being held is present in given 'Container'
  2302  func (fpaivs *PodStatusContainer_FieldSubPathArrayItemValue) ContainsValue(source *Pod_Status_Container) bool {
  2303  	switch fpaivs.Selector() {
  2304  	case PodStatusContainer_FieldPathSelectorWaiting:
  2305  		return fpaivs.subPathItemValue.(PodStatusContainerStateWaiting_FieldPathArrayItemValue).ContainsValue(source.GetWaiting())
  2306  	case PodStatusContainer_FieldPathSelectorRunning:
  2307  		return fpaivs.subPathItemValue.(PodStatusContainerStateRunning_FieldPathArrayItemValue).ContainsValue(source.GetRunning())
  2308  	case PodStatusContainer_FieldPathSelectorTerminated:
  2309  		return fpaivs.subPathItemValue.(PodStatusContainerStateTerminated_FieldPathArrayItemValue).ContainsValue(source.GetTerminated())
  2310  	default:
  2311  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container: %d", fpaivs.Selector()))
  2312  	}
  2313  }
  2314  
  2315  // PodStatusContainer_FieldPathArrayOfValues allows storing slice of values for Container fields according to their type
  2316  type PodStatusContainer_FieldPathArrayOfValues interface {
  2317  	gotenobject.FieldPathArrayOfValues
  2318  	PodStatusContainer_FieldPath
  2319  }
  2320  
  2321  func ParsePodStatusContainer_FieldPathArrayOfValues(pathStr, valuesStr string) (PodStatusContainer_FieldPathArrayOfValues, error) {
  2322  	fp, err := ParsePodStatusContainer_FieldPath(pathStr)
  2323  	if err != nil {
  2324  		return nil, err
  2325  	}
  2326  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  2327  	if err != nil {
  2328  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Container field path array of values from %s: %v", valuesStr, err)
  2329  	}
  2330  	return fpaov.(PodStatusContainer_FieldPathArrayOfValues), nil
  2331  }
  2332  
  2333  func MustParsePodStatusContainer_FieldPathArrayOfValues(pathStr, valuesStr string) PodStatusContainer_FieldPathArrayOfValues {
  2334  	fpaov, err := ParsePodStatusContainer_FieldPathArrayOfValues(pathStr, valuesStr)
  2335  	if err != nil {
  2336  		panic(err)
  2337  	}
  2338  	return fpaov
  2339  }
  2340  
  2341  type PodStatusContainer_FieldTerminalPathArrayOfValues struct {
  2342  	PodStatusContainer_FieldTerminalPath
  2343  	values interface{}
  2344  }
  2345  
  2346  var _ PodStatusContainer_FieldPathArrayOfValues = (*PodStatusContainer_FieldTerminalPathArrayOfValues)(nil)
  2347  
  2348  func (fpaov *PodStatusContainer_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  2349  	switch fpaov.selector {
  2350  	case PodStatusContainer_FieldPathSelectorName:
  2351  		for _, v := range fpaov.values.([]string) {
  2352  			values = append(values, v)
  2353  		}
  2354  	case PodStatusContainer_FieldPathSelectorState:
  2355  		for _, v := range fpaov.values.([]Pod_Status_Container_State) {
  2356  			values = append(values, v)
  2357  		}
  2358  	case PodStatusContainer_FieldPathSelectorWaiting:
  2359  		for _, v := range fpaov.values.([]*Pod_Status_Container_StateWaiting) {
  2360  			values = append(values, v)
  2361  		}
  2362  	case PodStatusContainer_FieldPathSelectorRunning:
  2363  		for _, v := range fpaov.values.([]*Pod_Status_Container_StateRunning) {
  2364  			values = append(values, v)
  2365  		}
  2366  	case PodStatusContainer_FieldPathSelectorTerminated:
  2367  		for _, v := range fpaov.values.([]*Pod_Status_Container_StateTerminated) {
  2368  			values = append(values, v)
  2369  		}
  2370  	}
  2371  	return
  2372  }
  2373  func (fpaov *PodStatusContainer_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]string, bool) {
  2374  	res, ok := fpaov.values.([]string)
  2375  	return res, ok
  2376  }
  2377  func (fpaov *PodStatusContainer_FieldTerminalPathArrayOfValues) AsStateArrayOfValues() ([]Pod_Status_Container_State, bool) {
  2378  	res, ok := fpaov.values.([]Pod_Status_Container_State)
  2379  	return res, ok
  2380  }
  2381  func (fpaov *PodStatusContainer_FieldTerminalPathArrayOfValues) AsWaitingArrayOfValues() ([]*Pod_Status_Container_StateWaiting, bool) {
  2382  	res, ok := fpaov.values.([]*Pod_Status_Container_StateWaiting)
  2383  	return res, ok
  2384  }
  2385  func (fpaov *PodStatusContainer_FieldTerminalPathArrayOfValues) AsRunningArrayOfValues() ([]*Pod_Status_Container_StateRunning, bool) {
  2386  	res, ok := fpaov.values.([]*Pod_Status_Container_StateRunning)
  2387  	return res, ok
  2388  }
  2389  func (fpaov *PodStatusContainer_FieldTerminalPathArrayOfValues) AsTerminatedArrayOfValues() ([]*Pod_Status_Container_StateTerminated, bool) {
  2390  	res, ok := fpaov.values.([]*Pod_Status_Container_StateTerminated)
  2391  	return res, ok
  2392  }
  2393  
  2394  type PodStatusContainer_FieldSubPathArrayOfValues struct {
  2395  	PodStatusContainer_FieldPath
  2396  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
  2397  }
  2398  
  2399  var _ PodStatusContainer_FieldPathArrayOfValues = (*PodStatusContainer_FieldSubPathArrayOfValues)(nil)
  2400  
  2401  func (fpsaov *PodStatusContainer_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
  2402  	return fpsaov.subPathArrayOfValues.GetRawValues()
  2403  }
  2404  func (fpsaov *PodStatusContainer_FieldSubPathArrayOfValues) AsWaitingPathArrayOfValues() (PodStatusContainerStateWaiting_FieldPathArrayOfValues, bool) {
  2405  	res, ok := fpsaov.subPathArrayOfValues.(PodStatusContainerStateWaiting_FieldPathArrayOfValues)
  2406  	return res, ok
  2407  }
  2408  func (fpsaov *PodStatusContainer_FieldSubPathArrayOfValues) AsRunningPathArrayOfValues() (PodStatusContainerStateRunning_FieldPathArrayOfValues, bool) {
  2409  	res, ok := fpsaov.subPathArrayOfValues.(PodStatusContainerStateRunning_FieldPathArrayOfValues)
  2410  	return res, ok
  2411  }
  2412  func (fpsaov *PodStatusContainer_FieldSubPathArrayOfValues) AsTerminatedPathArrayOfValues() (PodStatusContainerStateTerminated_FieldPathArrayOfValues, bool) {
  2413  	res, ok := fpsaov.subPathArrayOfValues.(PodStatusContainerStateTerminated_FieldPathArrayOfValues)
  2414  	return res, ok
  2415  }
  2416  
  2417  // FieldPath provides implementation to handle
  2418  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  2419  type PodStatusContainerStateWaiting_FieldPath interface {
  2420  	gotenobject.FieldPath
  2421  	Selector() PodStatusContainerStateWaiting_FieldPathSelector
  2422  	Get(source *Pod_Status_Container_StateWaiting) []interface{}
  2423  	GetSingle(source *Pod_Status_Container_StateWaiting) (interface{}, bool)
  2424  	ClearValue(item *Pod_Status_Container_StateWaiting)
  2425  
  2426  	// Those methods build corresponding PodStatusContainerStateWaiting_FieldPathValue
  2427  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  2428  	WithIValue(value interface{}) PodStatusContainerStateWaiting_FieldPathValue
  2429  	WithIArrayOfValues(values interface{}) PodStatusContainerStateWaiting_FieldPathArrayOfValues
  2430  	WithIArrayItemValue(value interface{}) PodStatusContainerStateWaiting_FieldPathArrayItemValue
  2431  }
  2432  
  2433  type PodStatusContainerStateWaiting_FieldPathSelector int32
  2434  
  2435  const (
  2436  	PodStatusContainerStateWaiting_FieldPathSelectorReason  PodStatusContainerStateWaiting_FieldPathSelector = 0
  2437  	PodStatusContainerStateWaiting_FieldPathSelectorMessage PodStatusContainerStateWaiting_FieldPathSelector = 1
  2438  )
  2439  
  2440  func (s PodStatusContainerStateWaiting_FieldPathSelector) String() string {
  2441  	switch s {
  2442  	case PodStatusContainerStateWaiting_FieldPathSelectorReason:
  2443  		return "reason"
  2444  	case PodStatusContainerStateWaiting_FieldPathSelectorMessage:
  2445  		return "message"
  2446  	default:
  2447  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateWaiting: %d", s))
  2448  	}
  2449  }
  2450  
  2451  func BuildPodStatusContainerStateWaiting_FieldPath(fp gotenobject.RawFieldPath) (PodStatusContainerStateWaiting_FieldPath, error) {
  2452  	if len(fp) == 0 {
  2453  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Pod_Status_Container_StateWaiting")
  2454  	}
  2455  	if len(fp) == 1 {
  2456  		switch fp[0] {
  2457  		case "reason":
  2458  			return &PodStatusContainerStateWaiting_FieldTerminalPath{selector: PodStatusContainerStateWaiting_FieldPathSelectorReason}, nil
  2459  		case "message":
  2460  			return &PodStatusContainerStateWaiting_FieldTerminalPath{selector: PodStatusContainerStateWaiting_FieldPathSelectorMessage}, nil
  2461  		}
  2462  	}
  2463  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Pod_Status_Container_StateWaiting", fp)
  2464  }
  2465  
  2466  func ParsePodStatusContainerStateWaiting_FieldPath(rawField string) (PodStatusContainerStateWaiting_FieldPath, error) {
  2467  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  2468  	if err != nil {
  2469  		return nil, err
  2470  	}
  2471  	return BuildPodStatusContainerStateWaiting_FieldPath(fp)
  2472  }
  2473  
  2474  func MustParsePodStatusContainerStateWaiting_FieldPath(rawField string) PodStatusContainerStateWaiting_FieldPath {
  2475  	fp, err := ParsePodStatusContainerStateWaiting_FieldPath(rawField)
  2476  	if err != nil {
  2477  		panic(err)
  2478  	}
  2479  	return fp
  2480  }
  2481  
  2482  type PodStatusContainerStateWaiting_FieldTerminalPath struct {
  2483  	selector PodStatusContainerStateWaiting_FieldPathSelector
  2484  }
  2485  
  2486  var _ PodStatusContainerStateWaiting_FieldPath = (*PodStatusContainerStateWaiting_FieldTerminalPath)(nil)
  2487  
  2488  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) Selector() PodStatusContainerStateWaiting_FieldPathSelector {
  2489  	return fp.selector
  2490  }
  2491  
  2492  // String returns path representation in proto convention
  2493  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) String() string {
  2494  	return fp.selector.String()
  2495  }
  2496  
  2497  // JSONString returns path representation is JSON convention
  2498  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) JSONString() string {
  2499  	return strcase.ToLowerCamel(fp.String())
  2500  }
  2501  
  2502  // Get returns all values pointed by specific field from source Pod_Status_Container_StateWaiting
  2503  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) Get(source *Pod_Status_Container_StateWaiting) (values []interface{}) {
  2504  	if source != nil {
  2505  		switch fp.selector {
  2506  		case PodStatusContainerStateWaiting_FieldPathSelectorReason:
  2507  			values = append(values, source.Reason)
  2508  		case PodStatusContainerStateWaiting_FieldPathSelectorMessage:
  2509  			values = append(values, source.Message)
  2510  		default:
  2511  			panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateWaiting: %d", fp.selector))
  2512  		}
  2513  	}
  2514  	return
  2515  }
  2516  
  2517  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  2518  	return fp.Get(source.(*Pod_Status_Container_StateWaiting))
  2519  }
  2520  
  2521  // GetSingle returns value pointed by specific field of from source Pod_Status_Container_StateWaiting
  2522  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) GetSingle(source *Pod_Status_Container_StateWaiting) (interface{}, bool) {
  2523  	switch fp.selector {
  2524  	case PodStatusContainerStateWaiting_FieldPathSelectorReason:
  2525  		return source.GetReason(), source != nil
  2526  	case PodStatusContainerStateWaiting_FieldPathSelectorMessage:
  2527  		return source.GetMessage(), source != nil
  2528  	default:
  2529  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateWaiting: %d", fp.selector))
  2530  	}
  2531  }
  2532  
  2533  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2534  	return fp.GetSingle(source.(*Pod_Status_Container_StateWaiting))
  2535  }
  2536  
  2537  // GetDefault returns a default value of the field type
  2538  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) GetDefault() interface{} {
  2539  	switch fp.selector {
  2540  	case PodStatusContainerStateWaiting_FieldPathSelectorReason:
  2541  		return ""
  2542  	case PodStatusContainerStateWaiting_FieldPathSelectorMessage:
  2543  		return ""
  2544  	default:
  2545  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateWaiting: %d", fp.selector))
  2546  	}
  2547  }
  2548  
  2549  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) ClearValue(item *Pod_Status_Container_StateWaiting) {
  2550  	if item != nil {
  2551  		switch fp.selector {
  2552  		case PodStatusContainerStateWaiting_FieldPathSelectorReason:
  2553  			item.Reason = ""
  2554  		case PodStatusContainerStateWaiting_FieldPathSelectorMessage:
  2555  			item.Message = ""
  2556  		default:
  2557  			panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateWaiting: %d", fp.selector))
  2558  		}
  2559  	}
  2560  }
  2561  
  2562  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  2563  	fp.ClearValue(item.(*Pod_Status_Container_StateWaiting))
  2564  }
  2565  
  2566  // IsLeaf - whether field path is holds simple value
  2567  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) IsLeaf() bool {
  2568  	return fp.selector == PodStatusContainerStateWaiting_FieldPathSelectorReason ||
  2569  		fp.selector == PodStatusContainerStateWaiting_FieldPathSelectorMessage
  2570  }
  2571  
  2572  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  2573  	return []gotenobject.FieldPath{fp}
  2574  }
  2575  
  2576  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) WithIValue(value interface{}) PodStatusContainerStateWaiting_FieldPathValue {
  2577  	switch fp.selector {
  2578  	case PodStatusContainerStateWaiting_FieldPathSelectorReason:
  2579  		return &PodStatusContainerStateWaiting_FieldTerminalPathValue{PodStatusContainerStateWaiting_FieldTerminalPath: *fp, value: value.(string)}
  2580  	case PodStatusContainerStateWaiting_FieldPathSelectorMessage:
  2581  		return &PodStatusContainerStateWaiting_FieldTerminalPathValue{PodStatusContainerStateWaiting_FieldTerminalPath: *fp, value: value.(string)}
  2582  	default:
  2583  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateWaiting: %d", fp.selector))
  2584  	}
  2585  }
  2586  
  2587  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  2588  	return fp.WithIValue(value)
  2589  }
  2590  
  2591  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) WithIArrayOfValues(values interface{}) PodStatusContainerStateWaiting_FieldPathArrayOfValues {
  2592  	fpaov := &PodStatusContainerStateWaiting_FieldTerminalPathArrayOfValues{PodStatusContainerStateWaiting_FieldTerminalPath: *fp}
  2593  	switch fp.selector {
  2594  	case PodStatusContainerStateWaiting_FieldPathSelectorReason:
  2595  		return &PodStatusContainerStateWaiting_FieldTerminalPathArrayOfValues{PodStatusContainerStateWaiting_FieldTerminalPath: *fp, values: values.([]string)}
  2596  	case PodStatusContainerStateWaiting_FieldPathSelectorMessage:
  2597  		return &PodStatusContainerStateWaiting_FieldTerminalPathArrayOfValues{PodStatusContainerStateWaiting_FieldTerminalPath: *fp, values: values.([]string)}
  2598  	default:
  2599  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateWaiting: %d", fp.selector))
  2600  	}
  2601  	return fpaov
  2602  }
  2603  
  2604  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  2605  	return fp.WithIArrayOfValues(values)
  2606  }
  2607  
  2608  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) WithIArrayItemValue(value interface{}) PodStatusContainerStateWaiting_FieldPathArrayItemValue {
  2609  	switch fp.selector {
  2610  	default:
  2611  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateWaiting: %d", fp.selector))
  2612  	}
  2613  }
  2614  
  2615  func (fp *PodStatusContainerStateWaiting_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  2616  	return fp.WithIArrayItemValue(value)
  2617  }
  2618  
  2619  // PodStatusContainerStateWaiting_FieldPathValue allows storing values for StateWaiting fields according to their type
  2620  type PodStatusContainerStateWaiting_FieldPathValue interface {
  2621  	PodStatusContainerStateWaiting_FieldPath
  2622  	gotenobject.FieldPathValue
  2623  	SetTo(target **Pod_Status_Container_StateWaiting)
  2624  	CompareWith(*Pod_Status_Container_StateWaiting) (cmp int, comparable bool)
  2625  }
  2626  
  2627  func ParsePodStatusContainerStateWaiting_FieldPathValue(pathStr, valueStr string) (PodStatusContainerStateWaiting_FieldPathValue, error) {
  2628  	fp, err := ParsePodStatusContainerStateWaiting_FieldPath(pathStr)
  2629  	if err != nil {
  2630  		return nil, err
  2631  	}
  2632  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  2633  	if err != nil {
  2634  		return nil, status.Errorf(codes.InvalidArgument, "error parsing StateWaiting field path value from %s: %v", valueStr, err)
  2635  	}
  2636  	return fpv.(PodStatusContainerStateWaiting_FieldPathValue), nil
  2637  }
  2638  
  2639  func MustParsePodStatusContainerStateWaiting_FieldPathValue(pathStr, valueStr string) PodStatusContainerStateWaiting_FieldPathValue {
  2640  	fpv, err := ParsePodStatusContainerStateWaiting_FieldPathValue(pathStr, valueStr)
  2641  	if err != nil {
  2642  		panic(err)
  2643  	}
  2644  	return fpv
  2645  }
  2646  
  2647  type PodStatusContainerStateWaiting_FieldTerminalPathValue struct {
  2648  	PodStatusContainerStateWaiting_FieldTerminalPath
  2649  	value interface{}
  2650  }
  2651  
  2652  var _ PodStatusContainerStateWaiting_FieldPathValue = (*PodStatusContainerStateWaiting_FieldTerminalPathValue)(nil)
  2653  
  2654  // GetRawValue returns raw value stored under selected path for 'StateWaiting' as interface{}
  2655  func (fpv *PodStatusContainerStateWaiting_FieldTerminalPathValue) GetRawValue() interface{} {
  2656  	return fpv.value
  2657  }
  2658  func (fpv *PodStatusContainerStateWaiting_FieldTerminalPathValue) AsReasonValue() (string, bool) {
  2659  	res, ok := fpv.value.(string)
  2660  	return res, ok
  2661  }
  2662  func (fpv *PodStatusContainerStateWaiting_FieldTerminalPathValue) AsMessageValue() (string, bool) {
  2663  	res, ok := fpv.value.(string)
  2664  	return res, ok
  2665  }
  2666  
  2667  // SetTo stores value for selected field for object StateWaiting
  2668  func (fpv *PodStatusContainerStateWaiting_FieldTerminalPathValue) SetTo(target **Pod_Status_Container_StateWaiting) {
  2669  	if *target == nil {
  2670  		*target = new(Pod_Status_Container_StateWaiting)
  2671  	}
  2672  	switch fpv.selector {
  2673  	case PodStatusContainerStateWaiting_FieldPathSelectorReason:
  2674  		(*target).Reason = fpv.value.(string)
  2675  	case PodStatusContainerStateWaiting_FieldPathSelectorMessage:
  2676  		(*target).Message = fpv.value.(string)
  2677  	default:
  2678  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateWaiting: %d", fpv.selector))
  2679  	}
  2680  }
  2681  
  2682  func (fpv *PodStatusContainerStateWaiting_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  2683  	typedObject := target.(*Pod_Status_Container_StateWaiting)
  2684  	fpv.SetTo(&typedObject)
  2685  }
  2686  
  2687  // CompareWith compares value in the 'PodStatusContainerStateWaiting_FieldTerminalPathValue' with the value under path in 'Pod_Status_Container_StateWaiting'.
  2688  func (fpv *PodStatusContainerStateWaiting_FieldTerminalPathValue) CompareWith(source *Pod_Status_Container_StateWaiting) (int, bool) {
  2689  	switch fpv.selector {
  2690  	case PodStatusContainerStateWaiting_FieldPathSelectorReason:
  2691  		leftValue := fpv.value.(string)
  2692  		rightValue := source.GetReason()
  2693  		if (leftValue) == (rightValue) {
  2694  			return 0, true
  2695  		} else if (leftValue) < (rightValue) {
  2696  			return -1, true
  2697  		} else {
  2698  			return 1, true
  2699  		}
  2700  	case PodStatusContainerStateWaiting_FieldPathSelectorMessage:
  2701  		leftValue := fpv.value.(string)
  2702  		rightValue := source.GetMessage()
  2703  		if (leftValue) == (rightValue) {
  2704  			return 0, true
  2705  		} else if (leftValue) < (rightValue) {
  2706  			return -1, true
  2707  		} else {
  2708  			return 1, true
  2709  		}
  2710  	default:
  2711  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateWaiting: %d", fpv.selector))
  2712  	}
  2713  }
  2714  
  2715  func (fpv *PodStatusContainerStateWaiting_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  2716  	return fpv.CompareWith(source.(*Pod_Status_Container_StateWaiting))
  2717  }
  2718  
  2719  // PodStatusContainerStateWaiting_FieldPathArrayItemValue allows storing single item in Path-specific values for StateWaiting according to their type
  2720  // Present only for array (repeated) types.
  2721  type PodStatusContainerStateWaiting_FieldPathArrayItemValue interface {
  2722  	gotenobject.FieldPathArrayItemValue
  2723  	PodStatusContainerStateWaiting_FieldPath
  2724  	ContainsValue(*Pod_Status_Container_StateWaiting) bool
  2725  }
  2726  
  2727  // ParsePodStatusContainerStateWaiting_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  2728  func ParsePodStatusContainerStateWaiting_FieldPathArrayItemValue(pathStr, valueStr string) (PodStatusContainerStateWaiting_FieldPathArrayItemValue, error) {
  2729  	fp, err := ParsePodStatusContainerStateWaiting_FieldPath(pathStr)
  2730  	if err != nil {
  2731  		return nil, err
  2732  	}
  2733  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  2734  	if err != nil {
  2735  		return nil, status.Errorf(codes.InvalidArgument, "error parsing StateWaiting field path array item value from %s: %v", valueStr, err)
  2736  	}
  2737  	return fpaiv.(PodStatusContainerStateWaiting_FieldPathArrayItemValue), nil
  2738  }
  2739  
  2740  func MustParsePodStatusContainerStateWaiting_FieldPathArrayItemValue(pathStr, valueStr string) PodStatusContainerStateWaiting_FieldPathArrayItemValue {
  2741  	fpaiv, err := ParsePodStatusContainerStateWaiting_FieldPathArrayItemValue(pathStr, valueStr)
  2742  	if err != nil {
  2743  		panic(err)
  2744  	}
  2745  	return fpaiv
  2746  }
  2747  
  2748  type PodStatusContainerStateWaiting_FieldTerminalPathArrayItemValue struct {
  2749  	PodStatusContainerStateWaiting_FieldTerminalPath
  2750  	value interface{}
  2751  }
  2752  
  2753  var _ PodStatusContainerStateWaiting_FieldPathArrayItemValue = (*PodStatusContainerStateWaiting_FieldTerminalPathArrayItemValue)(nil)
  2754  
  2755  // GetRawValue returns stored element value for array in object Pod_Status_Container_StateWaiting as interface{}
  2756  func (fpaiv *PodStatusContainerStateWaiting_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  2757  	return fpaiv.value
  2758  }
  2759  
  2760  func (fpaiv *PodStatusContainerStateWaiting_FieldTerminalPathArrayItemValue) GetSingle(source *Pod_Status_Container_StateWaiting) (interface{}, bool) {
  2761  	return nil, false
  2762  }
  2763  
  2764  func (fpaiv *PodStatusContainerStateWaiting_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2765  	return fpaiv.GetSingle(source.(*Pod_Status_Container_StateWaiting))
  2766  }
  2767  
  2768  // Contains returns a boolean indicating if value that is being held is present in given 'StateWaiting'
  2769  func (fpaiv *PodStatusContainerStateWaiting_FieldTerminalPathArrayItemValue) ContainsValue(source *Pod_Status_Container_StateWaiting) bool {
  2770  	slice := fpaiv.PodStatusContainerStateWaiting_FieldTerminalPath.Get(source)
  2771  	for _, v := range slice {
  2772  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  2773  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  2774  				return true
  2775  			}
  2776  		} else if reflect.DeepEqual(v, fpaiv.value) {
  2777  			return true
  2778  		}
  2779  	}
  2780  	return false
  2781  }
  2782  
  2783  // PodStatusContainerStateWaiting_FieldPathArrayOfValues allows storing slice of values for StateWaiting fields according to their type
  2784  type PodStatusContainerStateWaiting_FieldPathArrayOfValues interface {
  2785  	gotenobject.FieldPathArrayOfValues
  2786  	PodStatusContainerStateWaiting_FieldPath
  2787  }
  2788  
  2789  func ParsePodStatusContainerStateWaiting_FieldPathArrayOfValues(pathStr, valuesStr string) (PodStatusContainerStateWaiting_FieldPathArrayOfValues, error) {
  2790  	fp, err := ParsePodStatusContainerStateWaiting_FieldPath(pathStr)
  2791  	if err != nil {
  2792  		return nil, err
  2793  	}
  2794  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  2795  	if err != nil {
  2796  		return nil, status.Errorf(codes.InvalidArgument, "error parsing StateWaiting field path array of values from %s: %v", valuesStr, err)
  2797  	}
  2798  	return fpaov.(PodStatusContainerStateWaiting_FieldPathArrayOfValues), nil
  2799  }
  2800  
  2801  func MustParsePodStatusContainerStateWaiting_FieldPathArrayOfValues(pathStr, valuesStr string) PodStatusContainerStateWaiting_FieldPathArrayOfValues {
  2802  	fpaov, err := ParsePodStatusContainerStateWaiting_FieldPathArrayOfValues(pathStr, valuesStr)
  2803  	if err != nil {
  2804  		panic(err)
  2805  	}
  2806  	return fpaov
  2807  }
  2808  
  2809  type PodStatusContainerStateWaiting_FieldTerminalPathArrayOfValues struct {
  2810  	PodStatusContainerStateWaiting_FieldTerminalPath
  2811  	values interface{}
  2812  }
  2813  
  2814  var _ PodStatusContainerStateWaiting_FieldPathArrayOfValues = (*PodStatusContainerStateWaiting_FieldTerminalPathArrayOfValues)(nil)
  2815  
  2816  func (fpaov *PodStatusContainerStateWaiting_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  2817  	switch fpaov.selector {
  2818  	case PodStatusContainerStateWaiting_FieldPathSelectorReason:
  2819  		for _, v := range fpaov.values.([]string) {
  2820  			values = append(values, v)
  2821  		}
  2822  	case PodStatusContainerStateWaiting_FieldPathSelectorMessage:
  2823  		for _, v := range fpaov.values.([]string) {
  2824  			values = append(values, v)
  2825  		}
  2826  	}
  2827  	return
  2828  }
  2829  func (fpaov *PodStatusContainerStateWaiting_FieldTerminalPathArrayOfValues) AsReasonArrayOfValues() ([]string, bool) {
  2830  	res, ok := fpaov.values.([]string)
  2831  	return res, ok
  2832  }
  2833  func (fpaov *PodStatusContainerStateWaiting_FieldTerminalPathArrayOfValues) AsMessageArrayOfValues() ([]string, bool) {
  2834  	res, ok := fpaov.values.([]string)
  2835  	return res, ok
  2836  }
  2837  
  2838  // FieldPath provides implementation to handle
  2839  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  2840  type PodStatusContainerStateRunning_FieldPath interface {
  2841  	gotenobject.FieldPath
  2842  	Selector() PodStatusContainerStateRunning_FieldPathSelector
  2843  	Get(source *Pod_Status_Container_StateRunning) []interface{}
  2844  	GetSingle(source *Pod_Status_Container_StateRunning) (interface{}, bool)
  2845  	ClearValue(item *Pod_Status_Container_StateRunning)
  2846  
  2847  	// Those methods build corresponding PodStatusContainerStateRunning_FieldPathValue
  2848  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  2849  	WithIValue(value interface{}) PodStatusContainerStateRunning_FieldPathValue
  2850  	WithIArrayOfValues(values interface{}) PodStatusContainerStateRunning_FieldPathArrayOfValues
  2851  	WithIArrayItemValue(value interface{}) PodStatusContainerStateRunning_FieldPathArrayItemValue
  2852  }
  2853  
  2854  type PodStatusContainerStateRunning_FieldPathSelector int32
  2855  
  2856  const (
  2857  	PodStatusContainerStateRunning_FieldPathSelectorStartedAt PodStatusContainerStateRunning_FieldPathSelector = 0
  2858  )
  2859  
  2860  func (s PodStatusContainerStateRunning_FieldPathSelector) String() string {
  2861  	switch s {
  2862  	case PodStatusContainerStateRunning_FieldPathSelectorStartedAt:
  2863  		return "started_at"
  2864  	default:
  2865  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateRunning: %d", s))
  2866  	}
  2867  }
  2868  
  2869  func BuildPodStatusContainerStateRunning_FieldPath(fp gotenobject.RawFieldPath) (PodStatusContainerStateRunning_FieldPath, error) {
  2870  	if len(fp) == 0 {
  2871  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Pod_Status_Container_StateRunning")
  2872  	}
  2873  	if len(fp) == 1 {
  2874  		switch fp[0] {
  2875  		case "started_at", "startedAt", "started-at":
  2876  			return &PodStatusContainerStateRunning_FieldTerminalPath{selector: PodStatusContainerStateRunning_FieldPathSelectorStartedAt}, nil
  2877  		}
  2878  	}
  2879  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Pod_Status_Container_StateRunning", fp)
  2880  }
  2881  
  2882  func ParsePodStatusContainerStateRunning_FieldPath(rawField string) (PodStatusContainerStateRunning_FieldPath, error) {
  2883  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  2884  	if err != nil {
  2885  		return nil, err
  2886  	}
  2887  	return BuildPodStatusContainerStateRunning_FieldPath(fp)
  2888  }
  2889  
  2890  func MustParsePodStatusContainerStateRunning_FieldPath(rawField string) PodStatusContainerStateRunning_FieldPath {
  2891  	fp, err := ParsePodStatusContainerStateRunning_FieldPath(rawField)
  2892  	if err != nil {
  2893  		panic(err)
  2894  	}
  2895  	return fp
  2896  }
  2897  
  2898  type PodStatusContainerStateRunning_FieldTerminalPath struct {
  2899  	selector PodStatusContainerStateRunning_FieldPathSelector
  2900  }
  2901  
  2902  var _ PodStatusContainerStateRunning_FieldPath = (*PodStatusContainerStateRunning_FieldTerminalPath)(nil)
  2903  
  2904  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) Selector() PodStatusContainerStateRunning_FieldPathSelector {
  2905  	return fp.selector
  2906  }
  2907  
  2908  // String returns path representation in proto convention
  2909  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) String() string {
  2910  	return fp.selector.String()
  2911  }
  2912  
  2913  // JSONString returns path representation is JSON convention
  2914  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) JSONString() string {
  2915  	return strcase.ToLowerCamel(fp.String())
  2916  }
  2917  
  2918  // Get returns all values pointed by specific field from source Pod_Status_Container_StateRunning
  2919  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) Get(source *Pod_Status_Container_StateRunning) (values []interface{}) {
  2920  	if source != nil {
  2921  		switch fp.selector {
  2922  		case PodStatusContainerStateRunning_FieldPathSelectorStartedAt:
  2923  			if source.StartedAt != nil {
  2924  				values = append(values, source.StartedAt)
  2925  			}
  2926  		default:
  2927  			panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateRunning: %d", fp.selector))
  2928  		}
  2929  	}
  2930  	return
  2931  }
  2932  
  2933  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  2934  	return fp.Get(source.(*Pod_Status_Container_StateRunning))
  2935  }
  2936  
  2937  // GetSingle returns value pointed by specific field of from source Pod_Status_Container_StateRunning
  2938  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) GetSingle(source *Pod_Status_Container_StateRunning) (interface{}, bool) {
  2939  	switch fp.selector {
  2940  	case PodStatusContainerStateRunning_FieldPathSelectorStartedAt:
  2941  		res := source.GetStartedAt()
  2942  		return res, res != nil
  2943  	default:
  2944  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateRunning: %d", fp.selector))
  2945  	}
  2946  }
  2947  
  2948  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  2949  	return fp.GetSingle(source.(*Pod_Status_Container_StateRunning))
  2950  }
  2951  
  2952  // GetDefault returns a default value of the field type
  2953  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) GetDefault() interface{} {
  2954  	switch fp.selector {
  2955  	case PodStatusContainerStateRunning_FieldPathSelectorStartedAt:
  2956  		return (*timestamppb.Timestamp)(nil)
  2957  	default:
  2958  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateRunning: %d", fp.selector))
  2959  	}
  2960  }
  2961  
  2962  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) ClearValue(item *Pod_Status_Container_StateRunning) {
  2963  	if item != nil {
  2964  		switch fp.selector {
  2965  		case PodStatusContainerStateRunning_FieldPathSelectorStartedAt:
  2966  			item.StartedAt = nil
  2967  		default:
  2968  			panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateRunning: %d", fp.selector))
  2969  		}
  2970  	}
  2971  }
  2972  
  2973  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  2974  	fp.ClearValue(item.(*Pod_Status_Container_StateRunning))
  2975  }
  2976  
  2977  // IsLeaf - whether field path is holds simple value
  2978  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) IsLeaf() bool {
  2979  	return fp.selector == PodStatusContainerStateRunning_FieldPathSelectorStartedAt
  2980  }
  2981  
  2982  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  2983  	return []gotenobject.FieldPath{fp}
  2984  }
  2985  
  2986  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) WithIValue(value interface{}) PodStatusContainerStateRunning_FieldPathValue {
  2987  	switch fp.selector {
  2988  	case PodStatusContainerStateRunning_FieldPathSelectorStartedAt:
  2989  		return &PodStatusContainerStateRunning_FieldTerminalPathValue{PodStatusContainerStateRunning_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)}
  2990  	default:
  2991  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateRunning: %d", fp.selector))
  2992  	}
  2993  }
  2994  
  2995  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  2996  	return fp.WithIValue(value)
  2997  }
  2998  
  2999  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) WithIArrayOfValues(values interface{}) PodStatusContainerStateRunning_FieldPathArrayOfValues {
  3000  	fpaov := &PodStatusContainerStateRunning_FieldTerminalPathArrayOfValues{PodStatusContainerStateRunning_FieldTerminalPath: *fp}
  3001  	switch fp.selector {
  3002  	case PodStatusContainerStateRunning_FieldPathSelectorStartedAt:
  3003  		return &PodStatusContainerStateRunning_FieldTerminalPathArrayOfValues{PodStatusContainerStateRunning_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)}
  3004  	default:
  3005  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateRunning: %d", fp.selector))
  3006  	}
  3007  	return fpaov
  3008  }
  3009  
  3010  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  3011  	return fp.WithIArrayOfValues(values)
  3012  }
  3013  
  3014  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) WithIArrayItemValue(value interface{}) PodStatusContainerStateRunning_FieldPathArrayItemValue {
  3015  	switch fp.selector {
  3016  	default:
  3017  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateRunning: %d", fp.selector))
  3018  	}
  3019  }
  3020  
  3021  func (fp *PodStatusContainerStateRunning_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  3022  	return fp.WithIArrayItemValue(value)
  3023  }
  3024  
  3025  // PodStatusContainerStateRunning_FieldPathValue allows storing values for StateRunning fields according to their type
  3026  type PodStatusContainerStateRunning_FieldPathValue interface {
  3027  	PodStatusContainerStateRunning_FieldPath
  3028  	gotenobject.FieldPathValue
  3029  	SetTo(target **Pod_Status_Container_StateRunning)
  3030  	CompareWith(*Pod_Status_Container_StateRunning) (cmp int, comparable bool)
  3031  }
  3032  
  3033  func ParsePodStatusContainerStateRunning_FieldPathValue(pathStr, valueStr string) (PodStatusContainerStateRunning_FieldPathValue, error) {
  3034  	fp, err := ParsePodStatusContainerStateRunning_FieldPath(pathStr)
  3035  	if err != nil {
  3036  		return nil, err
  3037  	}
  3038  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  3039  	if err != nil {
  3040  		return nil, status.Errorf(codes.InvalidArgument, "error parsing StateRunning field path value from %s: %v", valueStr, err)
  3041  	}
  3042  	return fpv.(PodStatusContainerStateRunning_FieldPathValue), nil
  3043  }
  3044  
  3045  func MustParsePodStatusContainerStateRunning_FieldPathValue(pathStr, valueStr string) PodStatusContainerStateRunning_FieldPathValue {
  3046  	fpv, err := ParsePodStatusContainerStateRunning_FieldPathValue(pathStr, valueStr)
  3047  	if err != nil {
  3048  		panic(err)
  3049  	}
  3050  	return fpv
  3051  }
  3052  
  3053  type PodStatusContainerStateRunning_FieldTerminalPathValue struct {
  3054  	PodStatusContainerStateRunning_FieldTerminalPath
  3055  	value interface{}
  3056  }
  3057  
  3058  var _ PodStatusContainerStateRunning_FieldPathValue = (*PodStatusContainerStateRunning_FieldTerminalPathValue)(nil)
  3059  
  3060  // GetRawValue returns raw value stored under selected path for 'StateRunning' as interface{}
  3061  func (fpv *PodStatusContainerStateRunning_FieldTerminalPathValue) GetRawValue() interface{} {
  3062  	return fpv.value
  3063  }
  3064  func (fpv *PodStatusContainerStateRunning_FieldTerminalPathValue) AsStartedAtValue() (*timestamppb.Timestamp, bool) {
  3065  	res, ok := fpv.value.(*timestamppb.Timestamp)
  3066  	return res, ok
  3067  }
  3068  
  3069  // SetTo stores value for selected field for object StateRunning
  3070  func (fpv *PodStatusContainerStateRunning_FieldTerminalPathValue) SetTo(target **Pod_Status_Container_StateRunning) {
  3071  	if *target == nil {
  3072  		*target = new(Pod_Status_Container_StateRunning)
  3073  	}
  3074  	switch fpv.selector {
  3075  	case PodStatusContainerStateRunning_FieldPathSelectorStartedAt:
  3076  		(*target).StartedAt = fpv.value.(*timestamppb.Timestamp)
  3077  	default:
  3078  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateRunning: %d", fpv.selector))
  3079  	}
  3080  }
  3081  
  3082  func (fpv *PodStatusContainerStateRunning_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  3083  	typedObject := target.(*Pod_Status_Container_StateRunning)
  3084  	fpv.SetTo(&typedObject)
  3085  }
  3086  
  3087  // CompareWith compares value in the 'PodStatusContainerStateRunning_FieldTerminalPathValue' with the value under path in 'Pod_Status_Container_StateRunning'.
  3088  func (fpv *PodStatusContainerStateRunning_FieldTerminalPathValue) CompareWith(source *Pod_Status_Container_StateRunning) (int, bool) {
  3089  	switch fpv.selector {
  3090  	case PodStatusContainerStateRunning_FieldPathSelectorStartedAt:
  3091  		leftValue := fpv.value.(*timestamppb.Timestamp)
  3092  		rightValue := source.GetStartedAt()
  3093  		if leftValue == nil {
  3094  			if rightValue != nil {
  3095  				return -1, true
  3096  			}
  3097  			return 0, true
  3098  		}
  3099  		if rightValue == nil {
  3100  			return 1, true
  3101  		}
  3102  		if leftValue.AsTime().Equal(rightValue.AsTime()) {
  3103  			return 0, true
  3104  		} else if leftValue.AsTime().Before(rightValue.AsTime()) {
  3105  			return -1, true
  3106  		} else {
  3107  			return 1, true
  3108  		}
  3109  	default:
  3110  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateRunning: %d", fpv.selector))
  3111  	}
  3112  }
  3113  
  3114  func (fpv *PodStatusContainerStateRunning_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  3115  	return fpv.CompareWith(source.(*Pod_Status_Container_StateRunning))
  3116  }
  3117  
  3118  // PodStatusContainerStateRunning_FieldPathArrayItemValue allows storing single item in Path-specific values for StateRunning according to their type
  3119  // Present only for array (repeated) types.
  3120  type PodStatusContainerStateRunning_FieldPathArrayItemValue interface {
  3121  	gotenobject.FieldPathArrayItemValue
  3122  	PodStatusContainerStateRunning_FieldPath
  3123  	ContainsValue(*Pod_Status_Container_StateRunning) bool
  3124  }
  3125  
  3126  // ParsePodStatusContainerStateRunning_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  3127  func ParsePodStatusContainerStateRunning_FieldPathArrayItemValue(pathStr, valueStr string) (PodStatusContainerStateRunning_FieldPathArrayItemValue, error) {
  3128  	fp, err := ParsePodStatusContainerStateRunning_FieldPath(pathStr)
  3129  	if err != nil {
  3130  		return nil, err
  3131  	}
  3132  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  3133  	if err != nil {
  3134  		return nil, status.Errorf(codes.InvalidArgument, "error parsing StateRunning field path array item value from %s: %v", valueStr, err)
  3135  	}
  3136  	return fpaiv.(PodStatusContainerStateRunning_FieldPathArrayItemValue), nil
  3137  }
  3138  
  3139  func MustParsePodStatusContainerStateRunning_FieldPathArrayItemValue(pathStr, valueStr string) PodStatusContainerStateRunning_FieldPathArrayItemValue {
  3140  	fpaiv, err := ParsePodStatusContainerStateRunning_FieldPathArrayItemValue(pathStr, valueStr)
  3141  	if err != nil {
  3142  		panic(err)
  3143  	}
  3144  	return fpaiv
  3145  }
  3146  
  3147  type PodStatusContainerStateRunning_FieldTerminalPathArrayItemValue struct {
  3148  	PodStatusContainerStateRunning_FieldTerminalPath
  3149  	value interface{}
  3150  }
  3151  
  3152  var _ PodStatusContainerStateRunning_FieldPathArrayItemValue = (*PodStatusContainerStateRunning_FieldTerminalPathArrayItemValue)(nil)
  3153  
  3154  // GetRawValue returns stored element value for array in object Pod_Status_Container_StateRunning as interface{}
  3155  func (fpaiv *PodStatusContainerStateRunning_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  3156  	return fpaiv.value
  3157  }
  3158  
  3159  func (fpaiv *PodStatusContainerStateRunning_FieldTerminalPathArrayItemValue) GetSingle(source *Pod_Status_Container_StateRunning) (interface{}, bool) {
  3160  	return nil, false
  3161  }
  3162  
  3163  func (fpaiv *PodStatusContainerStateRunning_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  3164  	return fpaiv.GetSingle(source.(*Pod_Status_Container_StateRunning))
  3165  }
  3166  
  3167  // Contains returns a boolean indicating if value that is being held is present in given 'StateRunning'
  3168  func (fpaiv *PodStatusContainerStateRunning_FieldTerminalPathArrayItemValue) ContainsValue(source *Pod_Status_Container_StateRunning) bool {
  3169  	slice := fpaiv.PodStatusContainerStateRunning_FieldTerminalPath.Get(source)
  3170  	for _, v := range slice {
  3171  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  3172  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  3173  				return true
  3174  			}
  3175  		} else if reflect.DeepEqual(v, fpaiv.value) {
  3176  			return true
  3177  		}
  3178  	}
  3179  	return false
  3180  }
  3181  
  3182  // PodStatusContainerStateRunning_FieldPathArrayOfValues allows storing slice of values for StateRunning fields according to their type
  3183  type PodStatusContainerStateRunning_FieldPathArrayOfValues interface {
  3184  	gotenobject.FieldPathArrayOfValues
  3185  	PodStatusContainerStateRunning_FieldPath
  3186  }
  3187  
  3188  func ParsePodStatusContainerStateRunning_FieldPathArrayOfValues(pathStr, valuesStr string) (PodStatusContainerStateRunning_FieldPathArrayOfValues, error) {
  3189  	fp, err := ParsePodStatusContainerStateRunning_FieldPath(pathStr)
  3190  	if err != nil {
  3191  		return nil, err
  3192  	}
  3193  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  3194  	if err != nil {
  3195  		return nil, status.Errorf(codes.InvalidArgument, "error parsing StateRunning field path array of values from %s: %v", valuesStr, err)
  3196  	}
  3197  	return fpaov.(PodStatusContainerStateRunning_FieldPathArrayOfValues), nil
  3198  }
  3199  
  3200  func MustParsePodStatusContainerStateRunning_FieldPathArrayOfValues(pathStr, valuesStr string) PodStatusContainerStateRunning_FieldPathArrayOfValues {
  3201  	fpaov, err := ParsePodStatusContainerStateRunning_FieldPathArrayOfValues(pathStr, valuesStr)
  3202  	if err != nil {
  3203  		panic(err)
  3204  	}
  3205  	return fpaov
  3206  }
  3207  
  3208  type PodStatusContainerStateRunning_FieldTerminalPathArrayOfValues struct {
  3209  	PodStatusContainerStateRunning_FieldTerminalPath
  3210  	values interface{}
  3211  }
  3212  
  3213  var _ PodStatusContainerStateRunning_FieldPathArrayOfValues = (*PodStatusContainerStateRunning_FieldTerminalPathArrayOfValues)(nil)
  3214  
  3215  func (fpaov *PodStatusContainerStateRunning_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  3216  	switch fpaov.selector {
  3217  	case PodStatusContainerStateRunning_FieldPathSelectorStartedAt:
  3218  		for _, v := range fpaov.values.([]*timestamppb.Timestamp) {
  3219  			values = append(values, v)
  3220  		}
  3221  	}
  3222  	return
  3223  }
  3224  func (fpaov *PodStatusContainerStateRunning_FieldTerminalPathArrayOfValues) AsStartedAtArrayOfValues() ([]*timestamppb.Timestamp, bool) {
  3225  	res, ok := fpaov.values.([]*timestamppb.Timestamp)
  3226  	return res, ok
  3227  }
  3228  
  3229  // FieldPath provides implementation to handle
  3230  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  3231  type PodStatusContainerStateTerminated_FieldPath interface {
  3232  	gotenobject.FieldPath
  3233  	Selector() PodStatusContainerStateTerminated_FieldPathSelector
  3234  	Get(source *Pod_Status_Container_StateTerminated) []interface{}
  3235  	GetSingle(source *Pod_Status_Container_StateTerminated) (interface{}, bool)
  3236  	ClearValue(item *Pod_Status_Container_StateTerminated)
  3237  
  3238  	// Those methods build corresponding PodStatusContainerStateTerminated_FieldPathValue
  3239  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  3240  	WithIValue(value interface{}) PodStatusContainerStateTerminated_FieldPathValue
  3241  	WithIArrayOfValues(values interface{}) PodStatusContainerStateTerminated_FieldPathArrayOfValues
  3242  	WithIArrayItemValue(value interface{}) PodStatusContainerStateTerminated_FieldPathArrayItemValue
  3243  }
  3244  
  3245  type PodStatusContainerStateTerminated_FieldPathSelector int32
  3246  
  3247  const (
  3248  	PodStatusContainerStateTerminated_FieldPathSelectorExitCode    PodStatusContainerStateTerminated_FieldPathSelector = 0
  3249  	PodStatusContainerStateTerminated_FieldPathSelectorSignal      PodStatusContainerStateTerminated_FieldPathSelector = 1
  3250  	PodStatusContainerStateTerminated_FieldPathSelectorReason      PodStatusContainerStateTerminated_FieldPathSelector = 2
  3251  	PodStatusContainerStateTerminated_FieldPathSelectorMessage     PodStatusContainerStateTerminated_FieldPathSelector = 3
  3252  	PodStatusContainerStateTerminated_FieldPathSelectorStartedAt   PodStatusContainerStateTerminated_FieldPathSelector = 4
  3253  	PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt  PodStatusContainerStateTerminated_FieldPathSelector = 5
  3254  	PodStatusContainerStateTerminated_FieldPathSelectorContainerId PodStatusContainerStateTerminated_FieldPathSelector = 6
  3255  )
  3256  
  3257  func (s PodStatusContainerStateTerminated_FieldPathSelector) String() string {
  3258  	switch s {
  3259  	case PodStatusContainerStateTerminated_FieldPathSelectorExitCode:
  3260  		return "exit_code"
  3261  	case PodStatusContainerStateTerminated_FieldPathSelectorSignal:
  3262  		return "signal"
  3263  	case PodStatusContainerStateTerminated_FieldPathSelectorReason:
  3264  		return "reason"
  3265  	case PodStatusContainerStateTerminated_FieldPathSelectorMessage:
  3266  		return "message"
  3267  	case PodStatusContainerStateTerminated_FieldPathSelectorStartedAt:
  3268  		return "started_at"
  3269  	case PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt:
  3270  		return "finished_at"
  3271  	case PodStatusContainerStateTerminated_FieldPathSelectorContainerId:
  3272  		return "container_id"
  3273  	default:
  3274  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateTerminated: %d", s))
  3275  	}
  3276  }
  3277  
  3278  func BuildPodStatusContainerStateTerminated_FieldPath(fp gotenobject.RawFieldPath) (PodStatusContainerStateTerminated_FieldPath, error) {
  3279  	if len(fp) == 0 {
  3280  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Pod_Status_Container_StateTerminated")
  3281  	}
  3282  	if len(fp) == 1 {
  3283  		switch fp[0] {
  3284  		case "exit_code", "exitCode", "exit-code":
  3285  			return &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorExitCode}, nil
  3286  		case "signal":
  3287  			return &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorSignal}, nil
  3288  		case "reason":
  3289  			return &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorReason}, nil
  3290  		case "message":
  3291  			return &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorMessage}, nil
  3292  		case "started_at", "startedAt", "started-at":
  3293  			return &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorStartedAt}, nil
  3294  		case "finished_at", "finishedAt", "finished-at":
  3295  			return &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt}, nil
  3296  		case "container_id", "containerId", "container-id":
  3297  			return &PodStatusContainerStateTerminated_FieldTerminalPath{selector: PodStatusContainerStateTerminated_FieldPathSelectorContainerId}, nil
  3298  		}
  3299  	}
  3300  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Pod_Status_Container_StateTerminated", fp)
  3301  }
  3302  
  3303  func ParsePodStatusContainerStateTerminated_FieldPath(rawField string) (PodStatusContainerStateTerminated_FieldPath, error) {
  3304  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  3305  	if err != nil {
  3306  		return nil, err
  3307  	}
  3308  	return BuildPodStatusContainerStateTerminated_FieldPath(fp)
  3309  }
  3310  
  3311  func MustParsePodStatusContainerStateTerminated_FieldPath(rawField string) PodStatusContainerStateTerminated_FieldPath {
  3312  	fp, err := ParsePodStatusContainerStateTerminated_FieldPath(rawField)
  3313  	if err != nil {
  3314  		panic(err)
  3315  	}
  3316  	return fp
  3317  }
  3318  
  3319  type PodStatusContainerStateTerminated_FieldTerminalPath struct {
  3320  	selector PodStatusContainerStateTerminated_FieldPathSelector
  3321  }
  3322  
  3323  var _ PodStatusContainerStateTerminated_FieldPath = (*PodStatusContainerStateTerminated_FieldTerminalPath)(nil)
  3324  
  3325  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) Selector() PodStatusContainerStateTerminated_FieldPathSelector {
  3326  	return fp.selector
  3327  }
  3328  
  3329  // String returns path representation in proto convention
  3330  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) String() string {
  3331  	return fp.selector.String()
  3332  }
  3333  
  3334  // JSONString returns path representation is JSON convention
  3335  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) JSONString() string {
  3336  	return strcase.ToLowerCamel(fp.String())
  3337  }
  3338  
  3339  // Get returns all values pointed by specific field from source Pod_Status_Container_StateTerminated
  3340  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) Get(source *Pod_Status_Container_StateTerminated) (values []interface{}) {
  3341  	if source != nil {
  3342  		switch fp.selector {
  3343  		case PodStatusContainerStateTerminated_FieldPathSelectorExitCode:
  3344  			values = append(values, source.ExitCode)
  3345  		case PodStatusContainerStateTerminated_FieldPathSelectorSignal:
  3346  			values = append(values, source.Signal)
  3347  		case PodStatusContainerStateTerminated_FieldPathSelectorReason:
  3348  			values = append(values, source.Reason)
  3349  		case PodStatusContainerStateTerminated_FieldPathSelectorMessage:
  3350  			values = append(values, source.Message)
  3351  		case PodStatusContainerStateTerminated_FieldPathSelectorStartedAt:
  3352  			if source.StartedAt != nil {
  3353  				values = append(values, source.StartedAt)
  3354  			}
  3355  		case PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt:
  3356  			if source.FinishedAt != nil {
  3357  				values = append(values, source.FinishedAt)
  3358  			}
  3359  		case PodStatusContainerStateTerminated_FieldPathSelectorContainerId:
  3360  			values = append(values, source.ContainerId)
  3361  		default:
  3362  			panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateTerminated: %d", fp.selector))
  3363  		}
  3364  	}
  3365  	return
  3366  }
  3367  
  3368  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  3369  	return fp.Get(source.(*Pod_Status_Container_StateTerminated))
  3370  }
  3371  
  3372  // GetSingle returns value pointed by specific field of from source Pod_Status_Container_StateTerminated
  3373  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) GetSingle(source *Pod_Status_Container_StateTerminated) (interface{}, bool) {
  3374  	switch fp.selector {
  3375  	case PodStatusContainerStateTerminated_FieldPathSelectorExitCode:
  3376  		return source.GetExitCode(), source != nil
  3377  	case PodStatusContainerStateTerminated_FieldPathSelectorSignal:
  3378  		return source.GetSignal(), source != nil
  3379  	case PodStatusContainerStateTerminated_FieldPathSelectorReason:
  3380  		return source.GetReason(), source != nil
  3381  	case PodStatusContainerStateTerminated_FieldPathSelectorMessage:
  3382  		return source.GetMessage(), source != nil
  3383  	case PodStatusContainerStateTerminated_FieldPathSelectorStartedAt:
  3384  		res := source.GetStartedAt()
  3385  		return res, res != nil
  3386  	case PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt:
  3387  		res := source.GetFinishedAt()
  3388  		return res, res != nil
  3389  	case PodStatusContainerStateTerminated_FieldPathSelectorContainerId:
  3390  		return source.GetContainerId(), source != nil
  3391  	default:
  3392  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateTerminated: %d", fp.selector))
  3393  	}
  3394  }
  3395  
  3396  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  3397  	return fp.GetSingle(source.(*Pod_Status_Container_StateTerminated))
  3398  }
  3399  
  3400  // GetDefault returns a default value of the field type
  3401  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) GetDefault() interface{} {
  3402  	switch fp.selector {
  3403  	case PodStatusContainerStateTerminated_FieldPathSelectorExitCode:
  3404  		return int32(0)
  3405  	case PodStatusContainerStateTerminated_FieldPathSelectorSignal:
  3406  		return int32(0)
  3407  	case PodStatusContainerStateTerminated_FieldPathSelectorReason:
  3408  		return ""
  3409  	case PodStatusContainerStateTerminated_FieldPathSelectorMessage:
  3410  		return ""
  3411  	case PodStatusContainerStateTerminated_FieldPathSelectorStartedAt:
  3412  		return (*timestamppb.Timestamp)(nil)
  3413  	case PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt:
  3414  		return (*timestamppb.Timestamp)(nil)
  3415  	case PodStatusContainerStateTerminated_FieldPathSelectorContainerId:
  3416  		return ""
  3417  	default:
  3418  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateTerminated: %d", fp.selector))
  3419  	}
  3420  }
  3421  
  3422  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) ClearValue(item *Pod_Status_Container_StateTerminated) {
  3423  	if item != nil {
  3424  		switch fp.selector {
  3425  		case PodStatusContainerStateTerminated_FieldPathSelectorExitCode:
  3426  			item.ExitCode = int32(0)
  3427  		case PodStatusContainerStateTerminated_FieldPathSelectorSignal:
  3428  			item.Signal = int32(0)
  3429  		case PodStatusContainerStateTerminated_FieldPathSelectorReason:
  3430  			item.Reason = ""
  3431  		case PodStatusContainerStateTerminated_FieldPathSelectorMessage:
  3432  			item.Message = ""
  3433  		case PodStatusContainerStateTerminated_FieldPathSelectorStartedAt:
  3434  			item.StartedAt = nil
  3435  		case PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt:
  3436  			item.FinishedAt = nil
  3437  		case PodStatusContainerStateTerminated_FieldPathSelectorContainerId:
  3438  			item.ContainerId = ""
  3439  		default:
  3440  			panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateTerminated: %d", fp.selector))
  3441  		}
  3442  	}
  3443  }
  3444  
  3445  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  3446  	fp.ClearValue(item.(*Pod_Status_Container_StateTerminated))
  3447  }
  3448  
  3449  // IsLeaf - whether field path is holds simple value
  3450  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) IsLeaf() bool {
  3451  	return fp.selector == PodStatusContainerStateTerminated_FieldPathSelectorExitCode ||
  3452  		fp.selector == PodStatusContainerStateTerminated_FieldPathSelectorSignal ||
  3453  		fp.selector == PodStatusContainerStateTerminated_FieldPathSelectorReason ||
  3454  		fp.selector == PodStatusContainerStateTerminated_FieldPathSelectorMessage ||
  3455  		fp.selector == PodStatusContainerStateTerminated_FieldPathSelectorStartedAt ||
  3456  		fp.selector == PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt ||
  3457  		fp.selector == PodStatusContainerStateTerminated_FieldPathSelectorContainerId
  3458  }
  3459  
  3460  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  3461  	return []gotenobject.FieldPath{fp}
  3462  }
  3463  
  3464  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) WithIValue(value interface{}) PodStatusContainerStateTerminated_FieldPathValue {
  3465  	switch fp.selector {
  3466  	case PodStatusContainerStateTerminated_FieldPathSelectorExitCode:
  3467  		return &PodStatusContainerStateTerminated_FieldTerminalPathValue{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, value: value.(int32)}
  3468  	case PodStatusContainerStateTerminated_FieldPathSelectorSignal:
  3469  		return &PodStatusContainerStateTerminated_FieldTerminalPathValue{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, value: value.(int32)}
  3470  	case PodStatusContainerStateTerminated_FieldPathSelectorReason:
  3471  		return &PodStatusContainerStateTerminated_FieldTerminalPathValue{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, value: value.(string)}
  3472  	case PodStatusContainerStateTerminated_FieldPathSelectorMessage:
  3473  		return &PodStatusContainerStateTerminated_FieldTerminalPathValue{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, value: value.(string)}
  3474  	case PodStatusContainerStateTerminated_FieldPathSelectorStartedAt:
  3475  		return &PodStatusContainerStateTerminated_FieldTerminalPathValue{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)}
  3476  	case PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt:
  3477  		return &PodStatusContainerStateTerminated_FieldTerminalPathValue{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, value: value.(*timestamppb.Timestamp)}
  3478  	case PodStatusContainerStateTerminated_FieldPathSelectorContainerId:
  3479  		return &PodStatusContainerStateTerminated_FieldTerminalPathValue{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, value: value.(string)}
  3480  	default:
  3481  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateTerminated: %d", fp.selector))
  3482  	}
  3483  }
  3484  
  3485  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  3486  	return fp.WithIValue(value)
  3487  }
  3488  
  3489  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) WithIArrayOfValues(values interface{}) PodStatusContainerStateTerminated_FieldPathArrayOfValues {
  3490  	fpaov := &PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues{PodStatusContainerStateTerminated_FieldTerminalPath: *fp}
  3491  	switch fp.selector {
  3492  	case PodStatusContainerStateTerminated_FieldPathSelectorExitCode:
  3493  		return &PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, values: values.([]int32)}
  3494  	case PodStatusContainerStateTerminated_FieldPathSelectorSignal:
  3495  		return &PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, values: values.([]int32)}
  3496  	case PodStatusContainerStateTerminated_FieldPathSelectorReason:
  3497  		return &PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, values: values.([]string)}
  3498  	case PodStatusContainerStateTerminated_FieldPathSelectorMessage:
  3499  		return &PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, values: values.([]string)}
  3500  	case PodStatusContainerStateTerminated_FieldPathSelectorStartedAt:
  3501  		return &PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)}
  3502  	case PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt:
  3503  		return &PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, values: values.([]*timestamppb.Timestamp)}
  3504  	case PodStatusContainerStateTerminated_FieldPathSelectorContainerId:
  3505  		return &PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues{PodStatusContainerStateTerminated_FieldTerminalPath: *fp, values: values.([]string)}
  3506  	default:
  3507  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateTerminated: %d", fp.selector))
  3508  	}
  3509  	return fpaov
  3510  }
  3511  
  3512  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  3513  	return fp.WithIArrayOfValues(values)
  3514  }
  3515  
  3516  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) WithIArrayItemValue(value interface{}) PodStatusContainerStateTerminated_FieldPathArrayItemValue {
  3517  	switch fp.selector {
  3518  	default:
  3519  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateTerminated: %d", fp.selector))
  3520  	}
  3521  }
  3522  
  3523  func (fp *PodStatusContainerStateTerminated_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  3524  	return fp.WithIArrayItemValue(value)
  3525  }
  3526  
  3527  // PodStatusContainerStateTerminated_FieldPathValue allows storing values for StateTerminated fields according to their type
  3528  type PodStatusContainerStateTerminated_FieldPathValue interface {
  3529  	PodStatusContainerStateTerminated_FieldPath
  3530  	gotenobject.FieldPathValue
  3531  	SetTo(target **Pod_Status_Container_StateTerminated)
  3532  	CompareWith(*Pod_Status_Container_StateTerminated) (cmp int, comparable bool)
  3533  }
  3534  
  3535  func ParsePodStatusContainerStateTerminated_FieldPathValue(pathStr, valueStr string) (PodStatusContainerStateTerminated_FieldPathValue, error) {
  3536  	fp, err := ParsePodStatusContainerStateTerminated_FieldPath(pathStr)
  3537  	if err != nil {
  3538  		return nil, err
  3539  	}
  3540  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  3541  	if err != nil {
  3542  		return nil, status.Errorf(codes.InvalidArgument, "error parsing StateTerminated field path value from %s: %v", valueStr, err)
  3543  	}
  3544  	return fpv.(PodStatusContainerStateTerminated_FieldPathValue), nil
  3545  }
  3546  
  3547  func MustParsePodStatusContainerStateTerminated_FieldPathValue(pathStr, valueStr string) PodStatusContainerStateTerminated_FieldPathValue {
  3548  	fpv, err := ParsePodStatusContainerStateTerminated_FieldPathValue(pathStr, valueStr)
  3549  	if err != nil {
  3550  		panic(err)
  3551  	}
  3552  	return fpv
  3553  }
  3554  
  3555  type PodStatusContainerStateTerminated_FieldTerminalPathValue struct {
  3556  	PodStatusContainerStateTerminated_FieldTerminalPath
  3557  	value interface{}
  3558  }
  3559  
  3560  var _ PodStatusContainerStateTerminated_FieldPathValue = (*PodStatusContainerStateTerminated_FieldTerminalPathValue)(nil)
  3561  
  3562  // GetRawValue returns raw value stored under selected path for 'StateTerminated' as interface{}
  3563  func (fpv *PodStatusContainerStateTerminated_FieldTerminalPathValue) GetRawValue() interface{} {
  3564  	return fpv.value
  3565  }
  3566  func (fpv *PodStatusContainerStateTerminated_FieldTerminalPathValue) AsExitCodeValue() (int32, bool) {
  3567  	res, ok := fpv.value.(int32)
  3568  	return res, ok
  3569  }
  3570  func (fpv *PodStatusContainerStateTerminated_FieldTerminalPathValue) AsSignalValue() (int32, bool) {
  3571  	res, ok := fpv.value.(int32)
  3572  	return res, ok
  3573  }
  3574  func (fpv *PodStatusContainerStateTerminated_FieldTerminalPathValue) AsReasonValue() (string, bool) {
  3575  	res, ok := fpv.value.(string)
  3576  	return res, ok
  3577  }
  3578  func (fpv *PodStatusContainerStateTerminated_FieldTerminalPathValue) AsMessageValue() (string, bool) {
  3579  	res, ok := fpv.value.(string)
  3580  	return res, ok
  3581  }
  3582  func (fpv *PodStatusContainerStateTerminated_FieldTerminalPathValue) AsStartedAtValue() (*timestamppb.Timestamp, bool) {
  3583  	res, ok := fpv.value.(*timestamppb.Timestamp)
  3584  	return res, ok
  3585  }
  3586  func (fpv *PodStatusContainerStateTerminated_FieldTerminalPathValue) AsFinishedAtValue() (*timestamppb.Timestamp, bool) {
  3587  	res, ok := fpv.value.(*timestamppb.Timestamp)
  3588  	return res, ok
  3589  }
  3590  func (fpv *PodStatusContainerStateTerminated_FieldTerminalPathValue) AsContainerIdValue() (string, bool) {
  3591  	res, ok := fpv.value.(string)
  3592  	return res, ok
  3593  }
  3594  
  3595  // SetTo stores value for selected field for object StateTerminated
  3596  func (fpv *PodStatusContainerStateTerminated_FieldTerminalPathValue) SetTo(target **Pod_Status_Container_StateTerminated) {
  3597  	if *target == nil {
  3598  		*target = new(Pod_Status_Container_StateTerminated)
  3599  	}
  3600  	switch fpv.selector {
  3601  	case PodStatusContainerStateTerminated_FieldPathSelectorExitCode:
  3602  		(*target).ExitCode = fpv.value.(int32)
  3603  	case PodStatusContainerStateTerminated_FieldPathSelectorSignal:
  3604  		(*target).Signal = fpv.value.(int32)
  3605  	case PodStatusContainerStateTerminated_FieldPathSelectorReason:
  3606  		(*target).Reason = fpv.value.(string)
  3607  	case PodStatusContainerStateTerminated_FieldPathSelectorMessage:
  3608  		(*target).Message = fpv.value.(string)
  3609  	case PodStatusContainerStateTerminated_FieldPathSelectorStartedAt:
  3610  		(*target).StartedAt = fpv.value.(*timestamppb.Timestamp)
  3611  	case PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt:
  3612  		(*target).FinishedAt = fpv.value.(*timestamppb.Timestamp)
  3613  	case PodStatusContainerStateTerminated_FieldPathSelectorContainerId:
  3614  		(*target).ContainerId = fpv.value.(string)
  3615  	default:
  3616  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateTerminated: %d", fpv.selector))
  3617  	}
  3618  }
  3619  
  3620  func (fpv *PodStatusContainerStateTerminated_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  3621  	typedObject := target.(*Pod_Status_Container_StateTerminated)
  3622  	fpv.SetTo(&typedObject)
  3623  }
  3624  
  3625  // CompareWith compares value in the 'PodStatusContainerStateTerminated_FieldTerminalPathValue' with the value under path in 'Pod_Status_Container_StateTerminated'.
  3626  func (fpv *PodStatusContainerStateTerminated_FieldTerminalPathValue) CompareWith(source *Pod_Status_Container_StateTerminated) (int, bool) {
  3627  	switch fpv.selector {
  3628  	case PodStatusContainerStateTerminated_FieldPathSelectorExitCode:
  3629  		leftValue := fpv.value.(int32)
  3630  		rightValue := source.GetExitCode()
  3631  		if (leftValue) == (rightValue) {
  3632  			return 0, true
  3633  		} else if (leftValue) < (rightValue) {
  3634  			return -1, true
  3635  		} else {
  3636  			return 1, true
  3637  		}
  3638  	case PodStatusContainerStateTerminated_FieldPathSelectorSignal:
  3639  		leftValue := fpv.value.(int32)
  3640  		rightValue := source.GetSignal()
  3641  		if (leftValue) == (rightValue) {
  3642  			return 0, true
  3643  		} else if (leftValue) < (rightValue) {
  3644  			return -1, true
  3645  		} else {
  3646  			return 1, true
  3647  		}
  3648  	case PodStatusContainerStateTerminated_FieldPathSelectorReason:
  3649  		leftValue := fpv.value.(string)
  3650  		rightValue := source.GetReason()
  3651  		if (leftValue) == (rightValue) {
  3652  			return 0, true
  3653  		} else if (leftValue) < (rightValue) {
  3654  			return -1, true
  3655  		} else {
  3656  			return 1, true
  3657  		}
  3658  	case PodStatusContainerStateTerminated_FieldPathSelectorMessage:
  3659  		leftValue := fpv.value.(string)
  3660  		rightValue := source.GetMessage()
  3661  		if (leftValue) == (rightValue) {
  3662  			return 0, true
  3663  		} else if (leftValue) < (rightValue) {
  3664  			return -1, true
  3665  		} else {
  3666  			return 1, true
  3667  		}
  3668  	case PodStatusContainerStateTerminated_FieldPathSelectorStartedAt:
  3669  		leftValue := fpv.value.(*timestamppb.Timestamp)
  3670  		rightValue := source.GetStartedAt()
  3671  		if leftValue == nil {
  3672  			if rightValue != nil {
  3673  				return -1, true
  3674  			}
  3675  			return 0, true
  3676  		}
  3677  		if rightValue == nil {
  3678  			return 1, true
  3679  		}
  3680  		if leftValue.AsTime().Equal(rightValue.AsTime()) {
  3681  			return 0, true
  3682  		} else if leftValue.AsTime().Before(rightValue.AsTime()) {
  3683  			return -1, true
  3684  		} else {
  3685  			return 1, true
  3686  		}
  3687  	case PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt:
  3688  		leftValue := fpv.value.(*timestamppb.Timestamp)
  3689  		rightValue := source.GetFinishedAt()
  3690  		if leftValue == nil {
  3691  			if rightValue != nil {
  3692  				return -1, true
  3693  			}
  3694  			return 0, true
  3695  		}
  3696  		if rightValue == nil {
  3697  			return 1, true
  3698  		}
  3699  		if leftValue.AsTime().Equal(rightValue.AsTime()) {
  3700  			return 0, true
  3701  		} else if leftValue.AsTime().Before(rightValue.AsTime()) {
  3702  			return -1, true
  3703  		} else {
  3704  			return 1, true
  3705  		}
  3706  	case PodStatusContainerStateTerminated_FieldPathSelectorContainerId:
  3707  		leftValue := fpv.value.(string)
  3708  		rightValue := source.GetContainerId()
  3709  		if (leftValue) == (rightValue) {
  3710  			return 0, true
  3711  		} else if (leftValue) < (rightValue) {
  3712  			return -1, true
  3713  		} else {
  3714  			return 1, true
  3715  		}
  3716  	default:
  3717  		panic(fmt.Sprintf("Invalid selector for Pod_Status_Container_StateTerminated: %d", fpv.selector))
  3718  	}
  3719  }
  3720  
  3721  func (fpv *PodStatusContainerStateTerminated_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  3722  	return fpv.CompareWith(source.(*Pod_Status_Container_StateTerminated))
  3723  }
  3724  
  3725  // PodStatusContainerStateTerminated_FieldPathArrayItemValue allows storing single item in Path-specific values for StateTerminated according to their type
  3726  // Present only for array (repeated) types.
  3727  type PodStatusContainerStateTerminated_FieldPathArrayItemValue interface {
  3728  	gotenobject.FieldPathArrayItemValue
  3729  	PodStatusContainerStateTerminated_FieldPath
  3730  	ContainsValue(*Pod_Status_Container_StateTerminated) bool
  3731  }
  3732  
  3733  // ParsePodStatusContainerStateTerminated_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  3734  func ParsePodStatusContainerStateTerminated_FieldPathArrayItemValue(pathStr, valueStr string) (PodStatusContainerStateTerminated_FieldPathArrayItemValue, error) {
  3735  	fp, err := ParsePodStatusContainerStateTerminated_FieldPath(pathStr)
  3736  	if err != nil {
  3737  		return nil, err
  3738  	}
  3739  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  3740  	if err != nil {
  3741  		return nil, status.Errorf(codes.InvalidArgument, "error parsing StateTerminated field path array item value from %s: %v", valueStr, err)
  3742  	}
  3743  	return fpaiv.(PodStatusContainerStateTerminated_FieldPathArrayItemValue), nil
  3744  }
  3745  
  3746  func MustParsePodStatusContainerStateTerminated_FieldPathArrayItemValue(pathStr, valueStr string) PodStatusContainerStateTerminated_FieldPathArrayItemValue {
  3747  	fpaiv, err := ParsePodStatusContainerStateTerminated_FieldPathArrayItemValue(pathStr, valueStr)
  3748  	if err != nil {
  3749  		panic(err)
  3750  	}
  3751  	return fpaiv
  3752  }
  3753  
  3754  type PodStatusContainerStateTerminated_FieldTerminalPathArrayItemValue struct {
  3755  	PodStatusContainerStateTerminated_FieldTerminalPath
  3756  	value interface{}
  3757  }
  3758  
  3759  var _ PodStatusContainerStateTerminated_FieldPathArrayItemValue = (*PodStatusContainerStateTerminated_FieldTerminalPathArrayItemValue)(nil)
  3760  
  3761  // GetRawValue returns stored element value for array in object Pod_Status_Container_StateTerminated as interface{}
  3762  func (fpaiv *PodStatusContainerStateTerminated_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  3763  	return fpaiv.value
  3764  }
  3765  
  3766  func (fpaiv *PodStatusContainerStateTerminated_FieldTerminalPathArrayItemValue) GetSingle(source *Pod_Status_Container_StateTerminated) (interface{}, bool) {
  3767  	return nil, false
  3768  }
  3769  
  3770  func (fpaiv *PodStatusContainerStateTerminated_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  3771  	return fpaiv.GetSingle(source.(*Pod_Status_Container_StateTerminated))
  3772  }
  3773  
  3774  // Contains returns a boolean indicating if value that is being held is present in given 'StateTerminated'
  3775  func (fpaiv *PodStatusContainerStateTerminated_FieldTerminalPathArrayItemValue) ContainsValue(source *Pod_Status_Container_StateTerminated) bool {
  3776  	slice := fpaiv.PodStatusContainerStateTerminated_FieldTerminalPath.Get(source)
  3777  	for _, v := range slice {
  3778  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  3779  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  3780  				return true
  3781  			}
  3782  		} else if reflect.DeepEqual(v, fpaiv.value) {
  3783  			return true
  3784  		}
  3785  	}
  3786  	return false
  3787  }
  3788  
  3789  // PodStatusContainerStateTerminated_FieldPathArrayOfValues allows storing slice of values for StateTerminated fields according to their type
  3790  type PodStatusContainerStateTerminated_FieldPathArrayOfValues interface {
  3791  	gotenobject.FieldPathArrayOfValues
  3792  	PodStatusContainerStateTerminated_FieldPath
  3793  }
  3794  
  3795  func ParsePodStatusContainerStateTerminated_FieldPathArrayOfValues(pathStr, valuesStr string) (PodStatusContainerStateTerminated_FieldPathArrayOfValues, error) {
  3796  	fp, err := ParsePodStatusContainerStateTerminated_FieldPath(pathStr)
  3797  	if err != nil {
  3798  		return nil, err
  3799  	}
  3800  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  3801  	if err != nil {
  3802  		return nil, status.Errorf(codes.InvalidArgument, "error parsing StateTerminated field path array of values from %s: %v", valuesStr, err)
  3803  	}
  3804  	return fpaov.(PodStatusContainerStateTerminated_FieldPathArrayOfValues), nil
  3805  }
  3806  
  3807  func MustParsePodStatusContainerStateTerminated_FieldPathArrayOfValues(pathStr, valuesStr string) PodStatusContainerStateTerminated_FieldPathArrayOfValues {
  3808  	fpaov, err := ParsePodStatusContainerStateTerminated_FieldPathArrayOfValues(pathStr, valuesStr)
  3809  	if err != nil {
  3810  		panic(err)
  3811  	}
  3812  	return fpaov
  3813  }
  3814  
  3815  type PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues struct {
  3816  	PodStatusContainerStateTerminated_FieldTerminalPath
  3817  	values interface{}
  3818  }
  3819  
  3820  var _ PodStatusContainerStateTerminated_FieldPathArrayOfValues = (*PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues)(nil)
  3821  
  3822  func (fpaov *PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  3823  	switch fpaov.selector {
  3824  	case PodStatusContainerStateTerminated_FieldPathSelectorExitCode:
  3825  		for _, v := range fpaov.values.([]int32) {
  3826  			values = append(values, v)
  3827  		}
  3828  	case PodStatusContainerStateTerminated_FieldPathSelectorSignal:
  3829  		for _, v := range fpaov.values.([]int32) {
  3830  			values = append(values, v)
  3831  		}
  3832  	case PodStatusContainerStateTerminated_FieldPathSelectorReason:
  3833  		for _, v := range fpaov.values.([]string) {
  3834  			values = append(values, v)
  3835  		}
  3836  	case PodStatusContainerStateTerminated_FieldPathSelectorMessage:
  3837  		for _, v := range fpaov.values.([]string) {
  3838  			values = append(values, v)
  3839  		}
  3840  	case PodStatusContainerStateTerminated_FieldPathSelectorStartedAt:
  3841  		for _, v := range fpaov.values.([]*timestamppb.Timestamp) {
  3842  			values = append(values, v)
  3843  		}
  3844  	case PodStatusContainerStateTerminated_FieldPathSelectorFinishedAt:
  3845  		for _, v := range fpaov.values.([]*timestamppb.Timestamp) {
  3846  			values = append(values, v)
  3847  		}
  3848  	case PodStatusContainerStateTerminated_FieldPathSelectorContainerId:
  3849  		for _, v := range fpaov.values.([]string) {
  3850  			values = append(values, v)
  3851  		}
  3852  	}
  3853  	return
  3854  }
  3855  func (fpaov *PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues) AsExitCodeArrayOfValues() ([]int32, bool) {
  3856  	res, ok := fpaov.values.([]int32)
  3857  	return res, ok
  3858  }
  3859  func (fpaov *PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues) AsSignalArrayOfValues() ([]int32, bool) {
  3860  	res, ok := fpaov.values.([]int32)
  3861  	return res, ok
  3862  }
  3863  func (fpaov *PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues) AsReasonArrayOfValues() ([]string, bool) {
  3864  	res, ok := fpaov.values.([]string)
  3865  	return res, ok
  3866  }
  3867  func (fpaov *PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues) AsMessageArrayOfValues() ([]string, bool) {
  3868  	res, ok := fpaov.values.([]string)
  3869  	return res, ok
  3870  }
  3871  func (fpaov *PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues) AsStartedAtArrayOfValues() ([]*timestamppb.Timestamp, bool) {
  3872  	res, ok := fpaov.values.([]*timestamppb.Timestamp)
  3873  	return res, ok
  3874  }
  3875  func (fpaov *PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues) AsFinishedAtArrayOfValues() ([]*timestamppb.Timestamp, bool) {
  3876  	res, ok := fpaov.values.([]*timestamppb.Timestamp)
  3877  	return res, ok
  3878  }
  3879  func (fpaov *PodStatusContainerStateTerminated_FieldTerminalPathArrayOfValues) AsContainerIdArrayOfValues() ([]string, bool) {
  3880  	res, ok := fpaov.values.([]string)
  3881  	return res, ok
  3882  }