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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/devices/proto/v1alpha2/provisioning_approval_request.proto
     3  // DO NOT EDIT!!!
     4  
     5  package provisioning_approval_request
     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  	provisioning_policy "github.com/cloudwan/edgelq-sdk/devices/resources/v1alpha2/provisioning_policy"
    27  	iam_service_account "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/service_account"
    28  	meta "github.com/cloudwan/goten-sdk/types/meta"
    29  )
    30  
    31  // ensure the imports are used
    32  var (
    33  	_ = new(json.Marshaler)
    34  	_ = new(fmt.Stringer)
    35  	_ = reflect.DeepEqual
    36  	_ = strings.Builder{}
    37  	_ = time.Second
    38  
    39  	_ = strcase.ToLowerCamel
    40  	_ = codes.NotFound
    41  	_ = status.Status{}
    42  	_ = protojson.UnmarshalOptions{}
    43  	_ = new(proto.Message)
    44  	_ = protoregistry.GlobalTypes
    45  
    46  	_ = new(gotenobject.FieldPath)
    47  )
    48  
    49  // make sure we're using proto imports
    50  var (
    51  	_ = &provisioning_policy.ProvisioningPolicy{}
    52  	_ = &iam_service_account.ServiceAccount{}
    53  	_ = &meta.Meta{}
    54  )
    55  
    56  // FieldPath provides implementation to handle
    57  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    58  type ProvisioningApprovalRequest_FieldPath interface {
    59  	gotenobject.FieldPath
    60  	Selector() ProvisioningApprovalRequest_FieldPathSelector
    61  	Get(source *ProvisioningApprovalRequest) []interface{}
    62  	GetSingle(source *ProvisioningApprovalRequest) (interface{}, bool)
    63  	ClearValue(item *ProvisioningApprovalRequest)
    64  
    65  	// Those methods build corresponding ProvisioningApprovalRequest_FieldPathValue
    66  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    67  	WithIValue(value interface{}) ProvisioningApprovalRequest_FieldPathValue
    68  	WithIArrayOfValues(values interface{}) ProvisioningApprovalRequest_FieldPathArrayOfValues
    69  	WithIArrayItemValue(value interface{}) ProvisioningApprovalRequest_FieldPathArrayItemValue
    70  }
    71  
    72  type ProvisioningApprovalRequest_FieldPathSelector int32
    73  
    74  const (
    75  	ProvisioningApprovalRequest_FieldPathSelectorName     ProvisioningApprovalRequest_FieldPathSelector = 0
    76  	ProvisioningApprovalRequest_FieldPathSelectorSpec     ProvisioningApprovalRequest_FieldPathSelector = 1
    77  	ProvisioningApprovalRequest_FieldPathSelectorStatus   ProvisioningApprovalRequest_FieldPathSelector = 2
    78  	ProvisioningApprovalRequest_FieldPathSelectorMetadata ProvisioningApprovalRequest_FieldPathSelector = 3
    79  )
    80  
    81  func (s ProvisioningApprovalRequest_FieldPathSelector) String() string {
    82  	switch s {
    83  	case ProvisioningApprovalRequest_FieldPathSelectorName:
    84  		return "name"
    85  	case ProvisioningApprovalRequest_FieldPathSelectorSpec:
    86  		return "spec"
    87  	case ProvisioningApprovalRequest_FieldPathSelectorStatus:
    88  		return "status"
    89  	case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
    90  		return "metadata"
    91  	default:
    92  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", s))
    93  	}
    94  }
    95  
    96  func BuildProvisioningApprovalRequest_FieldPath(fp gotenobject.RawFieldPath) (ProvisioningApprovalRequest_FieldPath, error) {
    97  	if len(fp) == 0 {
    98  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ProvisioningApprovalRequest")
    99  	}
   100  	if len(fp) == 1 {
   101  		switch fp[0] {
   102  		case "name":
   103  			return &ProvisioningApprovalRequest_FieldTerminalPath{selector: ProvisioningApprovalRequest_FieldPathSelectorName}, nil
   104  		case "spec":
   105  			return &ProvisioningApprovalRequest_FieldTerminalPath{selector: ProvisioningApprovalRequest_FieldPathSelectorSpec}, nil
   106  		case "status":
   107  			return &ProvisioningApprovalRequest_FieldTerminalPath{selector: ProvisioningApprovalRequest_FieldPathSelectorStatus}, nil
   108  		case "metadata":
   109  			return &ProvisioningApprovalRequest_FieldTerminalPath{selector: ProvisioningApprovalRequest_FieldPathSelectorMetadata}, nil
   110  		}
   111  	} else {
   112  		switch fp[0] {
   113  		case "spec":
   114  			if subpath, err := BuildProvisioningApprovalRequestSpec_FieldPath(fp[1:]); err != nil {
   115  				return nil, err
   116  			} else {
   117  				return &ProvisioningApprovalRequest_FieldSubPath{selector: ProvisioningApprovalRequest_FieldPathSelectorSpec, subPath: subpath}, nil
   118  			}
   119  		case "status":
   120  			if subpath, err := BuildProvisioningApprovalRequestStatus_FieldPath(fp[1:]); err != nil {
   121  				return nil, err
   122  			} else {
   123  				return &ProvisioningApprovalRequest_FieldSubPath{selector: ProvisioningApprovalRequest_FieldPathSelectorStatus, subPath: subpath}, nil
   124  			}
   125  		case "metadata":
   126  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   127  				return nil, err
   128  			} else {
   129  				return &ProvisioningApprovalRequest_FieldSubPath{selector: ProvisioningApprovalRequest_FieldPathSelectorMetadata, subPath: subpath}, nil
   130  			}
   131  		}
   132  	}
   133  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ProvisioningApprovalRequest", fp)
   134  }
   135  
   136  func ParseProvisioningApprovalRequest_FieldPath(rawField string) (ProvisioningApprovalRequest_FieldPath, error) {
   137  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   138  	if err != nil {
   139  		return nil, err
   140  	}
   141  	return BuildProvisioningApprovalRequest_FieldPath(fp)
   142  }
   143  
   144  func MustParseProvisioningApprovalRequest_FieldPath(rawField string) ProvisioningApprovalRequest_FieldPath {
   145  	fp, err := ParseProvisioningApprovalRequest_FieldPath(rawField)
   146  	if err != nil {
   147  		panic(err)
   148  	}
   149  	return fp
   150  }
   151  
   152  type ProvisioningApprovalRequest_FieldTerminalPath struct {
   153  	selector ProvisioningApprovalRequest_FieldPathSelector
   154  }
   155  
   156  var _ ProvisioningApprovalRequest_FieldPath = (*ProvisioningApprovalRequest_FieldTerminalPath)(nil)
   157  
   158  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) Selector() ProvisioningApprovalRequest_FieldPathSelector {
   159  	return fp.selector
   160  }
   161  
   162  // String returns path representation in proto convention
   163  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) String() string {
   164  	return fp.selector.String()
   165  }
   166  
   167  // JSONString returns path representation is JSON convention
   168  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) JSONString() string {
   169  	return strcase.ToLowerCamel(fp.String())
   170  }
   171  
   172  // Get returns all values pointed by specific field from source ProvisioningApprovalRequest
   173  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) Get(source *ProvisioningApprovalRequest) (values []interface{}) {
   174  	if source != nil {
   175  		switch fp.selector {
   176  		case ProvisioningApprovalRequest_FieldPathSelectorName:
   177  			if source.Name != nil {
   178  				values = append(values, source.Name)
   179  			}
   180  		case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   181  			if source.Spec != nil {
   182  				values = append(values, source.Spec)
   183  			}
   184  		case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   185  			if source.Status != nil {
   186  				values = append(values, source.Status)
   187  			}
   188  		case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   189  			if source.Metadata != nil {
   190  				values = append(values, source.Metadata)
   191  			}
   192  		default:
   193  			panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fp.selector))
   194  		}
   195  	}
   196  	return
   197  }
   198  
   199  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   200  	return fp.Get(source.(*ProvisioningApprovalRequest))
   201  }
   202  
   203  // GetSingle returns value pointed by specific field of from source ProvisioningApprovalRequest
   204  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) GetSingle(source *ProvisioningApprovalRequest) (interface{}, bool) {
   205  	switch fp.selector {
   206  	case ProvisioningApprovalRequest_FieldPathSelectorName:
   207  		res := source.GetName()
   208  		return res, res != nil
   209  	case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   210  		res := source.GetSpec()
   211  		return res, res != nil
   212  	case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   213  		res := source.GetStatus()
   214  		return res, res != nil
   215  	case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   216  		res := source.GetMetadata()
   217  		return res, res != nil
   218  	default:
   219  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fp.selector))
   220  	}
   221  }
   222  
   223  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   224  	return fp.GetSingle(source.(*ProvisioningApprovalRequest))
   225  }
   226  
   227  // GetDefault returns a default value of the field type
   228  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) GetDefault() interface{} {
   229  	switch fp.selector {
   230  	case ProvisioningApprovalRequest_FieldPathSelectorName:
   231  		return (*Name)(nil)
   232  	case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   233  		return (*ProvisioningApprovalRequest_Spec)(nil)
   234  	case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   235  		return (*ProvisioningApprovalRequest_Status)(nil)
   236  	case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   237  		return (*meta.Meta)(nil)
   238  	default:
   239  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fp.selector))
   240  	}
   241  }
   242  
   243  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) ClearValue(item *ProvisioningApprovalRequest) {
   244  	if item != nil {
   245  		switch fp.selector {
   246  		case ProvisioningApprovalRequest_FieldPathSelectorName:
   247  			item.Name = nil
   248  		case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   249  			item.Spec = nil
   250  		case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   251  			item.Status = nil
   252  		case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   253  			item.Metadata = nil
   254  		default:
   255  			panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fp.selector))
   256  		}
   257  	}
   258  }
   259  
   260  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   261  	fp.ClearValue(item.(*ProvisioningApprovalRequest))
   262  }
   263  
   264  // IsLeaf - whether field path is holds simple value
   265  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) IsLeaf() bool {
   266  	return fp.selector == ProvisioningApprovalRequest_FieldPathSelectorName
   267  }
   268  
   269  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   270  	return []gotenobject.FieldPath{fp}
   271  }
   272  
   273  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) WithIValue(value interface{}) ProvisioningApprovalRequest_FieldPathValue {
   274  	switch fp.selector {
   275  	case ProvisioningApprovalRequest_FieldPathSelectorName:
   276  		return &ProvisioningApprovalRequest_FieldTerminalPathValue{ProvisioningApprovalRequest_FieldTerminalPath: *fp, value: value.(*Name)}
   277  	case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   278  		return &ProvisioningApprovalRequest_FieldTerminalPathValue{ProvisioningApprovalRequest_FieldTerminalPath: *fp, value: value.(*ProvisioningApprovalRequest_Spec)}
   279  	case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   280  		return &ProvisioningApprovalRequest_FieldTerminalPathValue{ProvisioningApprovalRequest_FieldTerminalPath: *fp, value: value.(*ProvisioningApprovalRequest_Status)}
   281  	case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   282  		return &ProvisioningApprovalRequest_FieldTerminalPathValue{ProvisioningApprovalRequest_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   283  	default:
   284  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fp.selector))
   285  	}
   286  }
   287  
   288  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   289  	return fp.WithIValue(value)
   290  }
   291  
   292  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) WithIArrayOfValues(values interface{}) ProvisioningApprovalRequest_FieldPathArrayOfValues {
   293  	fpaov := &ProvisioningApprovalRequest_FieldTerminalPathArrayOfValues{ProvisioningApprovalRequest_FieldTerminalPath: *fp}
   294  	switch fp.selector {
   295  	case ProvisioningApprovalRequest_FieldPathSelectorName:
   296  		return &ProvisioningApprovalRequest_FieldTerminalPathArrayOfValues{ProvisioningApprovalRequest_FieldTerminalPath: *fp, values: values.([]*Name)}
   297  	case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   298  		return &ProvisioningApprovalRequest_FieldTerminalPathArrayOfValues{ProvisioningApprovalRequest_FieldTerminalPath: *fp, values: values.([]*ProvisioningApprovalRequest_Spec)}
   299  	case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   300  		return &ProvisioningApprovalRequest_FieldTerminalPathArrayOfValues{ProvisioningApprovalRequest_FieldTerminalPath: *fp, values: values.([]*ProvisioningApprovalRequest_Status)}
   301  	case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   302  		return &ProvisioningApprovalRequest_FieldTerminalPathArrayOfValues{ProvisioningApprovalRequest_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   303  	default:
   304  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fp.selector))
   305  	}
   306  	return fpaov
   307  }
   308  
   309  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   310  	return fp.WithIArrayOfValues(values)
   311  }
   312  
   313  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) WithIArrayItemValue(value interface{}) ProvisioningApprovalRequest_FieldPathArrayItemValue {
   314  	switch fp.selector {
   315  	default:
   316  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fp.selector))
   317  	}
   318  }
   319  
   320  func (fp *ProvisioningApprovalRequest_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   321  	return fp.WithIArrayItemValue(value)
   322  }
   323  
   324  type ProvisioningApprovalRequest_FieldSubPath struct {
   325  	selector ProvisioningApprovalRequest_FieldPathSelector
   326  	subPath  gotenobject.FieldPath
   327  }
   328  
   329  var _ ProvisioningApprovalRequest_FieldPath = (*ProvisioningApprovalRequest_FieldSubPath)(nil)
   330  
   331  func (fps *ProvisioningApprovalRequest_FieldSubPath) Selector() ProvisioningApprovalRequest_FieldPathSelector {
   332  	return fps.selector
   333  }
   334  func (fps *ProvisioningApprovalRequest_FieldSubPath) AsSpecSubPath() (ProvisioningApprovalRequestSpec_FieldPath, bool) {
   335  	res, ok := fps.subPath.(ProvisioningApprovalRequestSpec_FieldPath)
   336  	return res, ok
   337  }
   338  func (fps *ProvisioningApprovalRequest_FieldSubPath) AsStatusSubPath() (ProvisioningApprovalRequestStatus_FieldPath, bool) {
   339  	res, ok := fps.subPath.(ProvisioningApprovalRequestStatus_FieldPath)
   340  	return res, ok
   341  }
   342  func (fps *ProvisioningApprovalRequest_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   343  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   344  	return res, ok
   345  }
   346  
   347  // String returns path representation in proto convention
   348  func (fps *ProvisioningApprovalRequest_FieldSubPath) String() string {
   349  	return fps.selector.String() + "." + fps.subPath.String()
   350  }
   351  
   352  // JSONString returns path representation is JSON convention
   353  func (fps *ProvisioningApprovalRequest_FieldSubPath) JSONString() string {
   354  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   355  }
   356  
   357  // Get returns all values pointed by selected field from source ProvisioningApprovalRequest
   358  func (fps *ProvisioningApprovalRequest_FieldSubPath) Get(source *ProvisioningApprovalRequest) (values []interface{}) {
   359  	switch fps.selector {
   360  	case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   361  		values = append(values, fps.subPath.GetRaw(source.GetSpec())...)
   362  	case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   363  		values = append(values, fps.subPath.GetRaw(source.GetStatus())...)
   364  	case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   365  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   366  	default:
   367  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fps.selector))
   368  	}
   369  	return
   370  }
   371  
   372  func (fps *ProvisioningApprovalRequest_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   373  	return fps.Get(source.(*ProvisioningApprovalRequest))
   374  }
   375  
   376  // GetSingle returns value of selected field from source ProvisioningApprovalRequest
   377  func (fps *ProvisioningApprovalRequest_FieldSubPath) GetSingle(source *ProvisioningApprovalRequest) (interface{}, bool) {
   378  	switch fps.selector {
   379  	case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   380  		if source.GetSpec() == nil {
   381  			return nil, false
   382  		}
   383  		return fps.subPath.GetSingleRaw(source.GetSpec())
   384  	case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   385  		if source.GetStatus() == nil {
   386  			return nil, false
   387  		}
   388  		return fps.subPath.GetSingleRaw(source.GetStatus())
   389  	case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   390  		if source.GetMetadata() == nil {
   391  			return nil, false
   392  		}
   393  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   394  	default:
   395  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fps.selector))
   396  	}
   397  }
   398  
   399  func (fps *ProvisioningApprovalRequest_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   400  	return fps.GetSingle(source.(*ProvisioningApprovalRequest))
   401  }
   402  
   403  // GetDefault returns a default value of the field type
   404  func (fps *ProvisioningApprovalRequest_FieldSubPath) GetDefault() interface{} {
   405  	return fps.subPath.GetDefault()
   406  }
   407  
   408  func (fps *ProvisioningApprovalRequest_FieldSubPath) ClearValue(item *ProvisioningApprovalRequest) {
   409  	if item != nil {
   410  		switch fps.selector {
   411  		case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   412  			fps.subPath.ClearValueRaw(item.Spec)
   413  		case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   414  			fps.subPath.ClearValueRaw(item.Status)
   415  		case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   416  			fps.subPath.ClearValueRaw(item.Metadata)
   417  		default:
   418  			panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fps.selector))
   419  		}
   420  	}
   421  }
   422  
   423  func (fps *ProvisioningApprovalRequest_FieldSubPath) ClearValueRaw(item proto.Message) {
   424  	fps.ClearValue(item.(*ProvisioningApprovalRequest))
   425  }
   426  
   427  // IsLeaf - whether field path is holds simple value
   428  func (fps *ProvisioningApprovalRequest_FieldSubPath) IsLeaf() bool {
   429  	return fps.subPath.IsLeaf()
   430  }
   431  
   432  func (fps *ProvisioningApprovalRequest_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   433  	iPaths := []gotenobject.FieldPath{&ProvisioningApprovalRequest_FieldTerminalPath{selector: fps.selector}}
   434  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   435  	return iPaths
   436  }
   437  
   438  func (fps *ProvisioningApprovalRequest_FieldSubPath) WithIValue(value interface{}) ProvisioningApprovalRequest_FieldPathValue {
   439  	return &ProvisioningApprovalRequest_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   440  }
   441  
   442  func (fps *ProvisioningApprovalRequest_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   443  	return fps.WithIValue(value)
   444  }
   445  
   446  func (fps *ProvisioningApprovalRequest_FieldSubPath) WithIArrayOfValues(values interface{}) ProvisioningApprovalRequest_FieldPathArrayOfValues {
   447  	return &ProvisioningApprovalRequest_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   448  }
   449  
   450  func (fps *ProvisioningApprovalRequest_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   451  	return fps.WithIArrayOfValues(values)
   452  }
   453  
   454  func (fps *ProvisioningApprovalRequest_FieldSubPath) WithIArrayItemValue(value interface{}) ProvisioningApprovalRequest_FieldPathArrayItemValue {
   455  	return &ProvisioningApprovalRequest_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   456  }
   457  
   458  func (fps *ProvisioningApprovalRequest_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   459  	return fps.WithIArrayItemValue(value)
   460  }
   461  
   462  // ProvisioningApprovalRequest_FieldPathValue allows storing values for ProvisioningApprovalRequest fields according to their type
   463  type ProvisioningApprovalRequest_FieldPathValue interface {
   464  	ProvisioningApprovalRequest_FieldPath
   465  	gotenobject.FieldPathValue
   466  	SetTo(target **ProvisioningApprovalRequest)
   467  	CompareWith(*ProvisioningApprovalRequest) (cmp int, comparable bool)
   468  }
   469  
   470  func ParseProvisioningApprovalRequest_FieldPathValue(pathStr, valueStr string) (ProvisioningApprovalRequest_FieldPathValue, error) {
   471  	fp, err := ParseProvisioningApprovalRequest_FieldPath(pathStr)
   472  	if err != nil {
   473  		return nil, err
   474  	}
   475  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   476  	if err != nil {
   477  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ProvisioningApprovalRequest field path value from %s: %v", valueStr, err)
   478  	}
   479  	return fpv.(ProvisioningApprovalRequest_FieldPathValue), nil
   480  }
   481  
   482  func MustParseProvisioningApprovalRequest_FieldPathValue(pathStr, valueStr string) ProvisioningApprovalRequest_FieldPathValue {
   483  	fpv, err := ParseProvisioningApprovalRequest_FieldPathValue(pathStr, valueStr)
   484  	if err != nil {
   485  		panic(err)
   486  	}
   487  	return fpv
   488  }
   489  
   490  type ProvisioningApprovalRequest_FieldTerminalPathValue struct {
   491  	ProvisioningApprovalRequest_FieldTerminalPath
   492  	value interface{}
   493  }
   494  
   495  var _ ProvisioningApprovalRequest_FieldPathValue = (*ProvisioningApprovalRequest_FieldTerminalPathValue)(nil)
   496  
   497  // GetRawValue returns raw value stored under selected path for 'ProvisioningApprovalRequest' as interface{}
   498  func (fpv *ProvisioningApprovalRequest_FieldTerminalPathValue) GetRawValue() interface{} {
   499  	return fpv.value
   500  }
   501  func (fpv *ProvisioningApprovalRequest_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   502  	res, ok := fpv.value.(*Name)
   503  	return res, ok
   504  }
   505  func (fpv *ProvisioningApprovalRequest_FieldTerminalPathValue) AsSpecValue() (*ProvisioningApprovalRequest_Spec, bool) {
   506  	res, ok := fpv.value.(*ProvisioningApprovalRequest_Spec)
   507  	return res, ok
   508  }
   509  func (fpv *ProvisioningApprovalRequest_FieldTerminalPathValue) AsStatusValue() (*ProvisioningApprovalRequest_Status, bool) {
   510  	res, ok := fpv.value.(*ProvisioningApprovalRequest_Status)
   511  	return res, ok
   512  }
   513  func (fpv *ProvisioningApprovalRequest_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   514  	res, ok := fpv.value.(*meta.Meta)
   515  	return res, ok
   516  }
   517  
   518  // SetTo stores value for selected field for object ProvisioningApprovalRequest
   519  func (fpv *ProvisioningApprovalRequest_FieldTerminalPathValue) SetTo(target **ProvisioningApprovalRequest) {
   520  	if *target == nil {
   521  		*target = new(ProvisioningApprovalRequest)
   522  	}
   523  	switch fpv.selector {
   524  	case ProvisioningApprovalRequest_FieldPathSelectorName:
   525  		(*target).Name = fpv.value.(*Name)
   526  	case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   527  		(*target).Spec = fpv.value.(*ProvisioningApprovalRequest_Spec)
   528  	case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   529  		(*target).Status = fpv.value.(*ProvisioningApprovalRequest_Status)
   530  	case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   531  		(*target).Metadata = fpv.value.(*meta.Meta)
   532  	default:
   533  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fpv.selector))
   534  	}
   535  }
   536  
   537  func (fpv *ProvisioningApprovalRequest_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   538  	typedObject := target.(*ProvisioningApprovalRequest)
   539  	fpv.SetTo(&typedObject)
   540  }
   541  
   542  // CompareWith compares value in the 'ProvisioningApprovalRequest_FieldTerminalPathValue' with the value under path in 'ProvisioningApprovalRequest'.
   543  func (fpv *ProvisioningApprovalRequest_FieldTerminalPathValue) CompareWith(source *ProvisioningApprovalRequest) (int, bool) {
   544  	switch fpv.selector {
   545  	case ProvisioningApprovalRequest_FieldPathSelectorName:
   546  		leftValue := fpv.value.(*Name)
   547  		rightValue := source.GetName()
   548  		if leftValue == nil {
   549  			if rightValue != nil {
   550  				return -1, true
   551  			}
   552  			return 0, true
   553  		}
   554  		if rightValue == nil {
   555  			return 1, true
   556  		}
   557  		if leftValue.String() == rightValue.String() {
   558  			return 0, true
   559  		} else if leftValue.String() < rightValue.String() {
   560  			return -1, true
   561  		} else {
   562  			return 1, true
   563  		}
   564  	case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   565  		return 0, false
   566  	case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   567  		return 0, false
   568  	case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   569  		return 0, false
   570  	default:
   571  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fpv.selector))
   572  	}
   573  }
   574  
   575  func (fpv *ProvisioningApprovalRequest_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   576  	return fpv.CompareWith(source.(*ProvisioningApprovalRequest))
   577  }
   578  
   579  type ProvisioningApprovalRequest_FieldSubPathValue struct {
   580  	ProvisioningApprovalRequest_FieldPath
   581  	subPathValue gotenobject.FieldPathValue
   582  }
   583  
   584  var _ ProvisioningApprovalRequest_FieldPathValue = (*ProvisioningApprovalRequest_FieldSubPathValue)(nil)
   585  
   586  func (fpvs *ProvisioningApprovalRequest_FieldSubPathValue) AsSpecPathValue() (ProvisioningApprovalRequestSpec_FieldPathValue, bool) {
   587  	res, ok := fpvs.subPathValue.(ProvisioningApprovalRequestSpec_FieldPathValue)
   588  	return res, ok
   589  }
   590  func (fpvs *ProvisioningApprovalRequest_FieldSubPathValue) AsStatusPathValue() (ProvisioningApprovalRequestStatus_FieldPathValue, bool) {
   591  	res, ok := fpvs.subPathValue.(ProvisioningApprovalRequestStatus_FieldPathValue)
   592  	return res, ok
   593  }
   594  func (fpvs *ProvisioningApprovalRequest_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   595  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   596  	return res, ok
   597  }
   598  
   599  func (fpvs *ProvisioningApprovalRequest_FieldSubPathValue) SetTo(target **ProvisioningApprovalRequest) {
   600  	if *target == nil {
   601  		*target = new(ProvisioningApprovalRequest)
   602  	}
   603  	switch fpvs.Selector() {
   604  	case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   605  		fpvs.subPathValue.(ProvisioningApprovalRequestSpec_FieldPathValue).SetTo(&(*target).Spec)
   606  	case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   607  		fpvs.subPathValue.(ProvisioningApprovalRequestStatus_FieldPathValue).SetTo(&(*target).Status)
   608  	case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   609  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
   610  	default:
   611  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fpvs.Selector()))
   612  	}
   613  }
   614  
   615  func (fpvs *ProvisioningApprovalRequest_FieldSubPathValue) SetToRaw(target proto.Message) {
   616  	typedObject := target.(*ProvisioningApprovalRequest)
   617  	fpvs.SetTo(&typedObject)
   618  }
   619  
   620  func (fpvs *ProvisioningApprovalRequest_FieldSubPathValue) GetRawValue() interface{} {
   621  	return fpvs.subPathValue.GetRawValue()
   622  }
   623  
   624  func (fpvs *ProvisioningApprovalRequest_FieldSubPathValue) CompareWith(source *ProvisioningApprovalRequest) (int, bool) {
   625  	switch fpvs.Selector() {
   626  	case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   627  		return fpvs.subPathValue.(ProvisioningApprovalRequestSpec_FieldPathValue).CompareWith(source.GetSpec())
   628  	case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   629  		return fpvs.subPathValue.(ProvisioningApprovalRequestStatus_FieldPathValue).CompareWith(source.GetStatus())
   630  	case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   631  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
   632  	default:
   633  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fpvs.Selector()))
   634  	}
   635  }
   636  
   637  func (fpvs *ProvisioningApprovalRequest_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   638  	return fpvs.CompareWith(source.(*ProvisioningApprovalRequest))
   639  }
   640  
   641  // ProvisioningApprovalRequest_FieldPathArrayItemValue allows storing single item in Path-specific values for ProvisioningApprovalRequest according to their type
   642  // Present only for array (repeated) types.
   643  type ProvisioningApprovalRequest_FieldPathArrayItemValue interface {
   644  	gotenobject.FieldPathArrayItemValue
   645  	ProvisioningApprovalRequest_FieldPath
   646  	ContainsValue(*ProvisioningApprovalRequest) bool
   647  }
   648  
   649  // ParseProvisioningApprovalRequest_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   650  func ParseProvisioningApprovalRequest_FieldPathArrayItemValue(pathStr, valueStr string) (ProvisioningApprovalRequest_FieldPathArrayItemValue, error) {
   651  	fp, err := ParseProvisioningApprovalRequest_FieldPath(pathStr)
   652  	if err != nil {
   653  		return nil, err
   654  	}
   655  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   656  	if err != nil {
   657  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ProvisioningApprovalRequest field path array item value from %s: %v", valueStr, err)
   658  	}
   659  	return fpaiv.(ProvisioningApprovalRequest_FieldPathArrayItemValue), nil
   660  }
   661  
   662  func MustParseProvisioningApprovalRequest_FieldPathArrayItemValue(pathStr, valueStr string) ProvisioningApprovalRequest_FieldPathArrayItemValue {
   663  	fpaiv, err := ParseProvisioningApprovalRequest_FieldPathArrayItemValue(pathStr, valueStr)
   664  	if err != nil {
   665  		panic(err)
   666  	}
   667  	return fpaiv
   668  }
   669  
   670  type ProvisioningApprovalRequest_FieldTerminalPathArrayItemValue struct {
   671  	ProvisioningApprovalRequest_FieldTerminalPath
   672  	value interface{}
   673  }
   674  
   675  var _ ProvisioningApprovalRequest_FieldPathArrayItemValue = (*ProvisioningApprovalRequest_FieldTerminalPathArrayItemValue)(nil)
   676  
   677  // GetRawValue returns stored element value for array in object ProvisioningApprovalRequest as interface{}
   678  func (fpaiv *ProvisioningApprovalRequest_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   679  	return fpaiv.value
   680  }
   681  
   682  func (fpaiv *ProvisioningApprovalRequest_FieldTerminalPathArrayItemValue) GetSingle(source *ProvisioningApprovalRequest) (interface{}, bool) {
   683  	return nil, false
   684  }
   685  
   686  func (fpaiv *ProvisioningApprovalRequest_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   687  	return fpaiv.GetSingle(source.(*ProvisioningApprovalRequest))
   688  }
   689  
   690  // Contains returns a boolean indicating if value that is being held is present in given 'ProvisioningApprovalRequest'
   691  func (fpaiv *ProvisioningApprovalRequest_FieldTerminalPathArrayItemValue) ContainsValue(source *ProvisioningApprovalRequest) bool {
   692  	slice := fpaiv.ProvisioningApprovalRequest_FieldTerminalPath.Get(source)
   693  	for _, v := range slice {
   694  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   695  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   696  				return true
   697  			}
   698  		} else if reflect.DeepEqual(v, fpaiv.value) {
   699  			return true
   700  		}
   701  	}
   702  	return false
   703  }
   704  
   705  type ProvisioningApprovalRequest_FieldSubPathArrayItemValue struct {
   706  	ProvisioningApprovalRequest_FieldPath
   707  	subPathItemValue gotenobject.FieldPathArrayItemValue
   708  }
   709  
   710  // GetRawValue returns stored array item value
   711  func (fpaivs *ProvisioningApprovalRequest_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
   712  	return fpaivs.subPathItemValue.GetRawItemValue()
   713  }
   714  func (fpaivs *ProvisioningApprovalRequest_FieldSubPathArrayItemValue) AsSpecPathItemValue() (ProvisioningApprovalRequestSpec_FieldPathArrayItemValue, bool) {
   715  	res, ok := fpaivs.subPathItemValue.(ProvisioningApprovalRequestSpec_FieldPathArrayItemValue)
   716  	return res, ok
   717  }
   718  func (fpaivs *ProvisioningApprovalRequest_FieldSubPathArrayItemValue) AsStatusPathItemValue() (ProvisioningApprovalRequestStatus_FieldPathArrayItemValue, bool) {
   719  	res, ok := fpaivs.subPathItemValue.(ProvisioningApprovalRequestStatus_FieldPathArrayItemValue)
   720  	return res, ok
   721  }
   722  func (fpaivs *ProvisioningApprovalRequest_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
   723  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
   724  	return res, ok
   725  }
   726  
   727  // Contains returns a boolean indicating if value that is being held is present in given 'ProvisioningApprovalRequest'
   728  func (fpaivs *ProvisioningApprovalRequest_FieldSubPathArrayItemValue) ContainsValue(source *ProvisioningApprovalRequest) bool {
   729  	switch fpaivs.Selector() {
   730  	case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   731  		return fpaivs.subPathItemValue.(ProvisioningApprovalRequestSpec_FieldPathArrayItemValue).ContainsValue(source.GetSpec())
   732  	case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   733  		return fpaivs.subPathItemValue.(ProvisioningApprovalRequestStatus_FieldPathArrayItemValue).ContainsValue(source.GetStatus())
   734  	case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   735  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
   736  	default:
   737  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest: %d", fpaivs.Selector()))
   738  	}
   739  }
   740  
   741  // ProvisioningApprovalRequest_FieldPathArrayOfValues allows storing slice of values for ProvisioningApprovalRequest fields according to their type
   742  type ProvisioningApprovalRequest_FieldPathArrayOfValues interface {
   743  	gotenobject.FieldPathArrayOfValues
   744  	ProvisioningApprovalRequest_FieldPath
   745  }
   746  
   747  func ParseProvisioningApprovalRequest_FieldPathArrayOfValues(pathStr, valuesStr string) (ProvisioningApprovalRequest_FieldPathArrayOfValues, error) {
   748  	fp, err := ParseProvisioningApprovalRequest_FieldPath(pathStr)
   749  	if err != nil {
   750  		return nil, err
   751  	}
   752  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   753  	if err != nil {
   754  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ProvisioningApprovalRequest field path array of values from %s: %v", valuesStr, err)
   755  	}
   756  	return fpaov.(ProvisioningApprovalRequest_FieldPathArrayOfValues), nil
   757  }
   758  
   759  func MustParseProvisioningApprovalRequest_FieldPathArrayOfValues(pathStr, valuesStr string) ProvisioningApprovalRequest_FieldPathArrayOfValues {
   760  	fpaov, err := ParseProvisioningApprovalRequest_FieldPathArrayOfValues(pathStr, valuesStr)
   761  	if err != nil {
   762  		panic(err)
   763  	}
   764  	return fpaov
   765  }
   766  
   767  type ProvisioningApprovalRequest_FieldTerminalPathArrayOfValues struct {
   768  	ProvisioningApprovalRequest_FieldTerminalPath
   769  	values interface{}
   770  }
   771  
   772  var _ ProvisioningApprovalRequest_FieldPathArrayOfValues = (*ProvisioningApprovalRequest_FieldTerminalPathArrayOfValues)(nil)
   773  
   774  func (fpaov *ProvisioningApprovalRequest_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   775  	switch fpaov.selector {
   776  	case ProvisioningApprovalRequest_FieldPathSelectorName:
   777  		for _, v := range fpaov.values.([]*Name) {
   778  			values = append(values, v)
   779  		}
   780  	case ProvisioningApprovalRequest_FieldPathSelectorSpec:
   781  		for _, v := range fpaov.values.([]*ProvisioningApprovalRequest_Spec) {
   782  			values = append(values, v)
   783  		}
   784  	case ProvisioningApprovalRequest_FieldPathSelectorStatus:
   785  		for _, v := range fpaov.values.([]*ProvisioningApprovalRequest_Status) {
   786  			values = append(values, v)
   787  		}
   788  	case ProvisioningApprovalRequest_FieldPathSelectorMetadata:
   789  		for _, v := range fpaov.values.([]*meta.Meta) {
   790  			values = append(values, v)
   791  		}
   792  	}
   793  	return
   794  }
   795  func (fpaov *ProvisioningApprovalRequest_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
   796  	res, ok := fpaov.values.([]*Name)
   797  	return res, ok
   798  }
   799  func (fpaov *ProvisioningApprovalRequest_FieldTerminalPathArrayOfValues) AsSpecArrayOfValues() ([]*ProvisioningApprovalRequest_Spec, bool) {
   800  	res, ok := fpaov.values.([]*ProvisioningApprovalRequest_Spec)
   801  	return res, ok
   802  }
   803  func (fpaov *ProvisioningApprovalRequest_FieldTerminalPathArrayOfValues) AsStatusArrayOfValues() ([]*ProvisioningApprovalRequest_Status, bool) {
   804  	res, ok := fpaov.values.([]*ProvisioningApprovalRequest_Status)
   805  	return res, ok
   806  }
   807  func (fpaov *ProvisioningApprovalRequest_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
   808  	res, ok := fpaov.values.([]*meta.Meta)
   809  	return res, ok
   810  }
   811  
   812  type ProvisioningApprovalRequest_FieldSubPathArrayOfValues struct {
   813  	ProvisioningApprovalRequest_FieldPath
   814  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
   815  }
   816  
   817  var _ ProvisioningApprovalRequest_FieldPathArrayOfValues = (*ProvisioningApprovalRequest_FieldSubPathArrayOfValues)(nil)
   818  
   819  func (fpsaov *ProvisioningApprovalRequest_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
   820  	return fpsaov.subPathArrayOfValues.GetRawValues()
   821  }
   822  func (fpsaov *ProvisioningApprovalRequest_FieldSubPathArrayOfValues) AsSpecPathArrayOfValues() (ProvisioningApprovalRequestSpec_FieldPathArrayOfValues, bool) {
   823  	res, ok := fpsaov.subPathArrayOfValues.(ProvisioningApprovalRequestSpec_FieldPathArrayOfValues)
   824  	return res, ok
   825  }
   826  func (fpsaov *ProvisioningApprovalRequest_FieldSubPathArrayOfValues) AsStatusPathArrayOfValues() (ProvisioningApprovalRequestStatus_FieldPathArrayOfValues, bool) {
   827  	res, ok := fpsaov.subPathArrayOfValues.(ProvisioningApprovalRequestStatus_FieldPathArrayOfValues)
   828  	return res, ok
   829  }
   830  func (fpsaov *ProvisioningApprovalRequest_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
   831  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
   832  	return res, ok
   833  }
   834  
   835  // FieldPath provides implementation to handle
   836  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
   837  type ProvisioningApprovalRequestSpec_FieldPath interface {
   838  	gotenobject.FieldPath
   839  	Selector() ProvisioningApprovalRequestSpec_FieldPathSelector
   840  	Get(source *ProvisioningApprovalRequest_Spec) []interface{}
   841  	GetSingle(source *ProvisioningApprovalRequest_Spec) (interface{}, bool)
   842  	ClearValue(item *ProvisioningApprovalRequest_Spec)
   843  
   844  	// Those methods build corresponding ProvisioningApprovalRequestSpec_FieldPathValue
   845  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
   846  	WithIValue(value interface{}) ProvisioningApprovalRequestSpec_FieldPathValue
   847  	WithIArrayOfValues(values interface{}) ProvisioningApprovalRequestSpec_FieldPathArrayOfValues
   848  	WithIArrayItemValue(value interface{}) ProvisioningApprovalRequestSpec_FieldPathArrayItemValue
   849  }
   850  
   851  type ProvisioningApprovalRequestSpec_FieldPathSelector int32
   852  
   853  const (
   854  	ProvisioningApprovalRequestSpec_FieldPathSelectorConclusion     ProvisioningApprovalRequestSpec_FieldPathSelector = 0
   855  	ProvisioningApprovalRequestSpec_FieldPathSelectorServiceAccount ProvisioningApprovalRequestSpec_FieldPathSelector = 1
   856  )
   857  
   858  func (s ProvisioningApprovalRequestSpec_FieldPathSelector) String() string {
   859  	switch s {
   860  	case ProvisioningApprovalRequestSpec_FieldPathSelectorConclusion:
   861  		return "conclusion"
   862  	case ProvisioningApprovalRequestSpec_FieldPathSelectorServiceAccount:
   863  		return "service_account"
   864  	default:
   865  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Spec: %d", s))
   866  	}
   867  }
   868  
   869  func BuildProvisioningApprovalRequestSpec_FieldPath(fp gotenobject.RawFieldPath) (ProvisioningApprovalRequestSpec_FieldPath, error) {
   870  	if len(fp) == 0 {
   871  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ProvisioningApprovalRequest_Spec")
   872  	}
   873  	if len(fp) == 1 {
   874  		switch fp[0] {
   875  		case "conclusion":
   876  			return &ProvisioningApprovalRequestSpec_FieldTerminalPath{selector: ProvisioningApprovalRequestSpec_FieldPathSelectorConclusion}, nil
   877  		case "service_account", "serviceAccount", "service-account":
   878  			return &ProvisioningApprovalRequestSpec_FieldTerminalPath{selector: ProvisioningApprovalRequestSpec_FieldPathSelectorServiceAccount}, nil
   879  		}
   880  	}
   881  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ProvisioningApprovalRequest_Spec", fp)
   882  }
   883  
   884  func ParseProvisioningApprovalRequestSpec_FieldPath(rawField string) (ProvisioningApprovalRequestSpec_FieldPath, error) {
   885  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   886  	if err != nil {
   887  		return nil, err
   888  	}
   889  	return BuildProvisioningApprovalRequestSpec_FieldPath(fp)
   890  }
   891  
   892  func MustParseProvisioningApprovalRequestSpec_FieldPath(rawField string) ProvisioningApprovalRequestSpec_FieldPath {
   893  	fp, err := ParseProvisioningApprovalRequestSpec_FieldPath(rawField)
   894  	if err != nil {
   895  		panic(err)
   896  	}
   897  	return fp
   898  }
   899  
   900  type ProvisioningApprovalRequestSpec_FieldTerminalPath struct {
   901  	selector ProvisioningApprovalRequestSpec_FieldPathSelector
   902  }
   903  
   904  var _ ProvisioningApprovalRequestSpec_FieldPath = (*ProvisioningApprovalRequestSpec_FieldTerminalPath)(nil)
   905  
   906  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) Selector() ProvisioningApprovalRequestSpec_FieldPathSelector {
   907  	return fp.selector
   908  }
   909  
   910  // String returns path representation in proto convention
   911  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) String() string {
   912  	return fp.selector.String()
   913  }
   914  
   915  // JSONString returns path representation is JSON convention
   916  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) JSONString() string {
   917  	return strcase.ToLowerCamel(fp.String())
   918  }
   919  
   920  // Get returns all values pointed by specific field from source ProvisioningApprovalRequest_Spec
   921  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) Get(source *ProvisioningApprovalRequest_Spec) (values []interface{}) {
   922  	if source != nil {
   923  		switch fp.selector {
   924  		case ProvisioningApprovalRequestSpec_FieldPathSelectorConclusion:
   925  			values = append(values, source.Conclusion)
   926  		case ProvisioningApprovalRequestSpec_FieldPathSelectorServiceAccount:
   927  			if source.ServiceAccount != nil {
   928  				values = append(values, source.ServiceAccount)
   929  			}
   930  		default:
   931  			panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Spec: %d", fp.selector))
   932  		}
   933  	}
   934  	return
   935  }
   936  
   937  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   938  	return fp.Get(source.(*ProvisioningApprovalRequest_Spec))
   939  }
   940  
   941  // GetSingle returns value pointed by specific field of from source ProvisioningApprovalRequest_Spec
   942  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) GetSingle(source *ProvisioningApprovalRequest_Spec) (interface{}, bool) {
   943  	switch fp.selector {
   944  	case ProvisioningApprovalRequestSpec_FieldPathSelectorConclusion:
   945  		return source.GetConclusion(), source != nil
   946  	case ProvisioningApprovalRequestSpec_FieldPathSelectorServiceAccount:
   947  		res := source.GetServiceAccount()
   948  		return res, res != nil
   949  	default:
   950  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Spec: %d", fp.selector))
   951  	}
   952  }
   953  
   954  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   955  	return fp.GetSingle(source.(*ProvisioningApprovalRequest_Spec))
   956  }
   957  
   958  // GetDefault returns a default value of the field type
   959  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) GetDefault() interface{} {
   960  	switch fp.selector {
   961  	case ProvisioningApprovalRequestSpec_FieldPathSelectorConclusion:
   962  		return ProvisioningApprovalRequest_Spec_CONCLUSION_NOT_SPECIFIED
   963  	case ProvisioningApprovalRequestSpec_FieldPathSelectorServiceAccount:
   964  		return (*iam_service_account.Reference)(nil)
   965  	default:
   966  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Spec: %d", fp.selector))
   967  	}
   968  }
   969  
   970  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) ClearValue(item *ProvisioningApprovalRequest_Spec) {
   971  	if item != nil {
   972  		switch fp.selector {
   973  		case ProvisioningApprovalRequestSpec_FieldPathSelectorConclusion:
   974  			item.Conclusion = ProvisioningApprovalRequest_Spec_CONCLUSION_NOT_SPECIFIED
   975  		case ProvisioningApprovalRequestSpec_FieldPathSelectorServiceAccount:
   976  			item.ServiceAccount = nil
   977  		default:
   978  			panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Spec: %d", fp.selector))
   979  		}
   980  	}
   981  }
   982  
   983  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   984  	fp.ClearValue(item.(*ProvisioningApprovalRequest_Spec))
   985  }
   986  
   987  // IsLeaf - whether field path is holds simple value
   988  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) IsLeaf() bool {
   989  	return fp.selector == ProvisioningApprovalRequestSpec_FieldPathSelectorConclusion ||
   990  		fp.selector == ProvisioningApprovalRequestSpec_FieldPathSelectorServiceAccount
   991  }
   992  
   993  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   994  	return []gotenobject.FieldPath{fp}
   995  }
   996  
   997  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) WithIValue(value interface{}) ProvisioningApprovalRequestSpec_FieldPathValue {
   998  	switch fp.selector {
   999  	case ProvisioningApprovalRequestSpec_FieldPathSelectorConclusion:
  1000  		return &ProvisioningApprovalRequestSpec_FieldTerminalPathValue{ProvisioningApprovalRequestSpec_FieldTerminalPath: *fp, value: value.(ProvisioningApprovalRequest_Spec_Conclusion)}
  1001  	case ProvisioningApprovalRequestSpec_FieldPathSelectorServiceAccount:
  1002  		return &ProvisioningApprovalRequestSpec_FieldTerminalPathValue{ProvisioningApprovalRequestSpec_FieldTerminalPath: *fp, value: value.(*iam_service_account.Reference)}
  1003  	default:
  1004  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Spec: %d", fp.selector))
  1005  	}
  1006  }
  1007  
  1008  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1009  	return fp.WithIValue(value)
  1010  }
  1011  
  1012  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) WithIArrayOfValues(values interface{}) ProvisioningApprovalRequestSpec_FieldPathArrayOfValues {
  1013  	fpaov := &ProvisioningApprovalRequestSpec_FieldTerminalPathArrayOfValues{ProvisioningApprovalRequestSpec_FieldTerminalPath: *fp}
  1014  	switch fp.selector {
  1015  	case ProvisioningApprovalRequestSpec_FieldPathSelectorConclusion:
  1016  		return &ProvisioningApprovalRequestSpec_FieldTerminalPathArrayOfValues{ProvisioningApprovalRequestSpec_FieldTerminalPath: *fp, values: values.([]ProvisioningApprovalRequest_Spec_Conclusion)}
  1017  	case ProvisioningApprovalRequestSpec_FieldPathSelectorServiceAccount:
  1018  		return &ProvisioningApprovalRequestSpec_FieldTerminalPathArrayOfValues{ProvisioningApprovalRequestSpec_FieldTerminalPath: *fp, values: values.([]*iam_service_account.Reference)}
  1019  	default:
  1020  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Spec: %d", fp.selector))
  1021  	}
  1022  	return fpaov
  1023  }
  1024  
  1025  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1026  	return fp.WithIArrayOfValues(values)
  1027  }
  1028  
  1029  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) WithIArrayItemValue(value interface{}) ProvisioningApprovalRequestSpec_FieldPathArrayItemValue {
  1030  	switch fp.selector {
  1031  	default:
  1032  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Spec: %d", fp.selector))
  1033  	}
  1034  }
  1035  
  1036  func (fp *ProvisioningApprovalRequestSpec_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1037  	return fp.WithIArrayItemValue(value)
  1038  }
  1039  
  1040  // ProvisioningApprovalRequestSpec_FieldPathValue allows storing values for Spec fields according to their type
  1041  type ProvisioningApprovalRequestSpec_FieldPathValue interface {
  1042  	ProvisioningApprovalRequestSpec_FieldPath
  1043  	gotenobject.FieldPathValue
  1044  	SetTo(target **ProvisioningApprovalRequest_Spec)
  1045  	CompareWith(*ProvisioningApprovalRequest_Spec) (cmp int, comparable bool)
  1046  }
  1047  
  1048  func ParseProvisioningApprovalRequestSpec_FieldPathValue(pathStr, valueStr string) (ProvisioningApprovalRequestSpec_FieldPathValue, error) {
  1049  	fp, err := ParseProvisioningApprovalRequestSpec_FieldPath(pathStr)
  1050  	if err != nil {
  1051  		return nil, err
  1052  	}
  1053  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1054  	if err != nil {
  1055  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Spec field path value from %s: %v", valueStr, err)
  1056  	}
  1057  	return fpv.(ProvisioningApprovalRequestSpec_FieldPathValue), nil
  1058  }
  1059  
  1060  func MustParseProvisioningApprovalRequestSpec_FieldPathValue(pathStr, valueStr string) ProvisioningApprovalRequestSpec_FieldPathValue {
  1061  	fpv, err := ParseProvisioningApprovalRequestSpec_FieldPathValue(pathStr, valueStr)
  1062  	if err != nil {
  1063  		panic(err)
  1064  	}
  1065  	return fpv
  1066  }
  1067  
  1068  type ProvisioningApprovalRequestSpec_FieldTerminalPathValue struct {
  1069  	ProvisioningApprovalRequestSpec_FieldTerminalPath
  1070  	value interface{}
  1071  }
  1072  
  1073  var _ ProvisioningApprovalRequestSpec_FieldPathValue = (*ProvisioningApprovalRequestSpec_FieldTerminalPathValue)(nil)
  1074  
  1075  // GetRawValue returns raw value stored under selected path for 'Spec' as interface{}
  1076  func (fpv *ProvisioningApprovalRequestSpec_FieldTerminalPathValue) GetRawValue() interface{} {
  1077  	return fpv.value
  1078  }
  1079  func (fpv *ProvisioningApprovalRequestSpec_FieldTerminalPathValue) AsConclusionValue() (ProvisioningApprovalRequest_Spec_Conclusion, bool) {
  1080  	res, ok := fpv.value.(ProvisioningApprovalRequest_Spec_Conclusion)
  1081  	return res, ok
  1082  }
  1083  func (fpv *ProvisioningApprovalRequestSpec_FieldTerminalPathValue) AsServiceAccountValue() (*iam_service_account.Reference, bool) {
  1084  	res, ok := fpv.value.(*iam_service_account.Reference)
  1085  	return res, ok
  1086  }
  1087  
  1088  // SetTo stores value for selected field for object Spec
  1089  func (fpv *ProvisioningApprovalRequestSpec_FieldTerminalPathValue) SetTo(target **ProvisioningApprovalRequest_Spec) {
  1090  	if *target == nil {
  1091  		*target = new(ProvisioningApprovalRequest_Spec)
  1092  	}
  1093  	switch fpv.selector {
  1094  	case ProvisioningApprovalRequestSpec_FieldPathSelectorConclusion:
  1095  		(*target).Conclusion = fpv.value.(ProvisioningApprovalRequest_Spec_Conclusion)
  1096  	case ProvisioningApprovalRequestSpec_FieldPathSelectorServiceAccount:
  1097  		(*target).ServiceAccount = fpv.value.(*iam_service_account.Reference)
  1098  	default:
  1099  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Spec: %d", fpv.selector))
  1100  	}
  1101  }
  1102  
  1103  func (fpv *ProvisioningApprovalRequestSpec_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1104  	typedObject := target.(*ProvisioningApprovalRequest_Spec)
  1105  	fpv.SetTo(&typedObject)
  1106  }
  1107  
  1108  // CompareWith compares value in the 'ProvisioningApprovalRequestSpec_FieldTerminalPathValue' with the value under path in 'ProvisioningApprovalRequest_Spec'.
  1109  func (fpv *ProvisioningApprovalRequestSpec_FieldTerminalPathValue) CompareWith(source *ProvisioningApprovalRequest_Spec) (int, bool) {
  1110  	switch fpv.selector {
  1111  	case ProvisioningApprovalRequestSpec_FieldPathSelectorConclusion:
  1112  		leftValue := fpv.value.(ProvisioningApprovalRequest_Spec_Conclusion)
  1113  		rightValue := source.GetConclusion()
  1114  		if (leftValue) == (rightValue) {
  1115  			return 0, true
  1116  		} else if (leftValue) < (rightValue) {
  1117  			return -1, true
  1118  		} else {
  1119  			return 1, true
  1120  		}
  1121  	case ProvisioningApprovalRequestSpec_FieldPathSelectorServiceAccount:
  1122  		leftValue := fpv.value.(*iam_service_account.Reference)
  1123  		rightValue := source.GetServiceAccount()
  1124  		if leftValue == nil {
  1125  			if rightValue != nil {
  1126  				return -1, true
  1127  			}
  1128  			return 0, true
  1129  		}
  1130  		if rightValue == nil {
  1131  			return 1, true
  1132  		}
  1133  		if leftValue.String() == rightValue.String() {
  1134  			return 0, true
  1135  		} else if leftValue.String() < rightValue.String() {
  1136  			return -1, true
  1137  		} else {
  1138  			return 1, true
  1139  		}
  1140  	default:
  1141  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Spec: %d", fpv.selector))
  1142  	}
  1143  }
  1144  
  1145  func (fpv *ProvisioningApprovalRequestSpec_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1146  	return fpv.CompareWith(source.(*ProvisioningApprovalRequest_Spec))
  1147  }
  1148  
  1149  // ProvisioningApprovalRequestSpec_FieldPathArrayItemValue allows storing single item in Path-specific values for Spec according to their type
  1150  // Present only for array (repeated) types.
  1151  type ProvisioningApprovalRequestSpec_FieldPathArrayItemValue interface {
  1152  	gotenobject.FieldPathArrayItemValue
  1153  	ProvisioningApprovalRequestSpec_FieldPath
  1154  	ContainsValue(*ProvisioningApprovalRequest_Spec) bool
  1155  }
  1156  
  1157  // ParseProvisioningApprovalRequestSpec_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1158  func ParseProvisioningApprovalRequestSpec_FieldPathArrayItemValue(pathStr, valueStr string) (ProvisioningApprovalRequestSpec_FieldPathArrayItemValue, error) {
  1159  	fp, err := ParseProvisioningApprovalRequestSpec_FieldPath(pathStr)
  1160  	if err != nil {
  1161  		return nil, err
  1162  	}
  1163  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1164  	if err != nil {
  1165  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Spec field path array item value from %s: %v", valueStr, err)
  1166  	}
  1167  	return fpaiv.(ProvisioningApprovalRequestSpec_FieldPathArrayItemValue), nil
  1168  }
  1169  
  1170  func MustParseProvisioningApprovalRequestSpec_FieldPathArrayItemValue(pathStr, valueStr string) ProvisioningApprovalRequestSpec_FieldPathArrayItemValue {
  1171  	fpaiv, err := ParseProvisioningApprovalRequestSpec_FieldPathArrayItemValue(pathStr, valueStr)
  1172  	if err != nil {
  1173  		panic(err)
  1174  	}
  1175  	return fpaiv
  1176  }
  1177  
  1178  type ProvisioningApprovalRequestSpec_FieldTerminalPathArrayItemValue struct {
  1179  	ProvisioningApprovalRequestSpec_FieldTerminalPath
  1180  	value interface{}
  1181  }
  1182  
  1183  var _ ProvisioningApprovalRequestSpec_FieldPathArrayItemValue = (*ProvisioningApprovalRequestSpec_FieldTerminalPathArrayItemValue)(nil)
  1184  
  1185  // GetRawValue returns stored element value for array in object ProvisioningApprovalRequest_Spec as interface{}
  1186  func (fpaiv *ProvisioningApprovalRequestSpec_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1187  	return fpaiv.value
  1188  }
  1189  
  1190  func (fpaiv *ProvisioningApprovalRequestSpec_FieldTerminalPathArrayItemValue) GetSingle(source *ProvisioningApprovalRequest_Spec) (interface{}, bool) {
  1191  	return nil, false
  1192  }
  1193  
  1194  func (fpaiv *ProvisioningApprovalRequestSpec_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1195  	return fpaiv.GetSingle(source.(*ProvisioningApprovalRequest_Spec))
  1196  }
  1197  
  1198  // Contains returns a boolean indicating if value that is being held is present in given 'Spec'
  1199  func (fpaiv *ProvisioningApprovalRequestSpec_FieldTerminalPathArrayItemValue) ContainsValue(source *ProvisioningApprovalRequest_Spec) bool {
  1200  	slice := fpaiv.ProvisioningApprovalRequestSpec_FieldTerminalPath.Get(source)
  1201  	for _, v := range slice {
  1202  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1203  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1204  				return true
  1205  			}
  1206  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1207  			return true
  1208  		}
  1209  	}
  1210  	return false
  1211  }
  1212  
  1213  // ProvisioningApprovalRequestSpec_FieldPathArrayOfValues allows storing slice of values for Spec fields according to their type
  1214  type ProvisioningApprovalRequestSpec_FieldPathArrayOfValues interface {
  1215  	gotenobject.FieldPathArrayOfValues
  1216  	ProvisioningApprovalRequestSpec_FieldPath
  1217  }
  1218  
  1219  func ParseProvisioningApprovalRequestSpec_FieldPathArrayOfValues(pathStr, valuesStr string) (ProvisioningApprovalRequestSpec_FieldPathArrayOfValues, error) {
  1220  	fp, err := ParseProvisioningApprovalRequestSpec_FieldPath(pathStr)
  1221  	if err != nil {
  1222  		return nil, err
  1223  	}
  1224  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1225  	if err != nil {
  1226  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Spec field path array of values from %s: %v", valuesStr, err)
  1227  	}
  1228  	return fpaov.(ProvisioningApprovalRequestSpec_FieldPathArrayOfValues), nil
  1229  }
  1230  
  1231  func MustParseProvisioningApprovalRequestSpec_FieldPathArrayOfValues(pathStr, valuesStr string) ProvisioningApprovalRequestSpec_FieldPathArrayOfValues {
  1232  	fpaov, err := ParseProvisioningApprovalRequestSpec_FieldPathArrayOfValues(pathStr, valuesStr)
  1233  	if err != nil {
  1234  		panic(err)
  1235  	}
  1236  	return fpaov
  1237  }
  1238  
  1239  type ProvisioningApprovalRequestSpec_FieldTerminalPathArrayOfValues struct {
  1240  	ProvisioningApprovalRequestSpec_FieldTerminalPath
  1241  	values interface{}
  1242  }
  1243  
  1244  var _ ProvisioningApprovalRequestSpec_FieldPathArrayOfValues = (*ProvisioningApprovalRequestSpec_FieldTerminalPathArrayOfValues)(nil)
  1245  
  1246  func (fpaov *ProvisioningApprovalRequestSpec_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1247  	switch fpaov.selector {
  1248  	case ProvisioningApprovalRequestSpec_FieldPathSelectorConclusion:
  1249  		for _, v := range fpaov.values.([]ProvisioningApprovalRequest_Spec_Conclusion) {
  1250  			values = append(values, v)
  1251  		}
  1252  	case ProvisioningApprovalRequestSpec_FieldPathSelectorServiceAccount:
  1253  		for _, v := range fpaov.values.([]*iam_service_account.Reference) {
  1254  			values = append(values, v)
  1255  		}
  1256  	}
  1257  	return
  1258  }
  1259  func (fpaov *ProvisioningApprovalRequestSpec_FieldTerminalPathArrayOfValues) AsConclusionArrayOfValues() ([]ProvisioningApprovalRequest_Spec_Conclusion, bool) {
  1260  	res, ok := fpaov.values.([]ProvisioningApprovalRequest_Spec_Conclusion)
  1261  	return res, ok
  1262  }
  1263  func (fpaov *ProvisioningApprovalRequestSpec_FieldTerminalPathArrayOfValues) AsServiceAccountArrayOfValues() ([]*iam_service_account.Reference, bool) {
  1264  	res, ok := fpaov.values.([]*iam_service_account.Reference)
  1265  	return res, ok
  1266  }
  1267  
  1268  // FieldPath provides implementation to handle
  1269  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1270  type ProvisioningApprovalRequestStatus_FieldPath interface {
  1271  	gotenobject.FieldPath
  1272  	Selector() ProvisioningApprovalRequestStatus_FieldPathSelector
  1273  	Get(source *ProvisioningApprovalRequest_Status) []interface{}
  1274  	GetSingle(source *ProvisioningApprovalRequest_Status) (interface{}, bool)
  1275  	ClearValue(item *ProvisioningApprovalRequest_Status)
  1276  
  1277  	// Those methods build corresponding ProvisioningApprovalRequestStatus_FieldPathValue
  1278  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1279  	WithIValue(value interface{}) ProvisioningApprovalRequestStatus_FieldPathValue
  1280  	WithIArrayOfValues(values interface{}) ProvisioningApprovalRequestStatus_FieldPathArrayOfValues
  1281  	WithIArrayItemValue(value interface{}) ProvisioningApprovalRequestStatus_FieldPathArrayItemValue
  1282  }
  1283  
  1284  type ProvisioningApprovalRequestStatus_FieldPathSelector int32
  1285  
  1286  func (s ProvisioningApprovalRequestStatus_FieldPathSelector) String() string {
  1287  	switch s {
  1288  	default:
  1289  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Status: %d", s))
  1290  	}
  1291  }
  1292  
  1293  func BuildProvisioningApprovalRequestStatus_FieldPath(fp gotenobject.RawFieldPath) (ProvisioningApprovalRequestStatus_FieldPath, error) {
  1294  	if len(fp) == 0 {
  1295  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ProvisioningApprovalRequest_Status")
  1296  	}
  1297  	if len(fp) == 1 {
  1298  		switch fp[0] {
  1299  		}
  1300  	}
  1301  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ProvisioningApprovalRequest_Status", fp)
  1302  }
  1303  
  1304  func ParseProvisioningApprovalRequestStatus_FieldPath(rawField string) (ProvisioningApprovalRequestStatus_FieldPath, error) {
  1305  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1306  	if err != nil {
  1307  		return nil, err
  1308  	}
  1309  	return BuildProvisioningApprovalRequestStatus_FieldPath(fp)
  1310  }
  1311  
  1312  func MustParseProvisioningApprovalRequestStatus_FieldPath(rawField string) ProvisioningApprovalRequestStatus_FieldPath {
  1313  	fp, err := ParseProvisioningApprovalRequestStatus_FieldPath(rawField)
  1314  	if err != nil {
  1315  		panic(err)
  1316  	}
  1317  	return fp
  1318  }
  1319  
  1320  type ProvisioningApprovalRequestStatus_FieldTerminalPath struct {
  1321  	selector ProvisioningApprovalRequestStatus_FieldPathSelector
  1322  }
  1323  
  1324  var _ ProvisioningApprovalRequestStatus_FieldPath = (*ProvisioningApprovalRequestStatus_FieldTerminalPath)(nil)
  1325  
  1326  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) Selector() ProvisioningApprovalRequestStatus_FieldPathSelector {
  1327  	return fp.selector
  1328  }
  1329  
  1330  // String returns path representation in proto convention
  1331  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) String() string {
  1332  	return fp.selector.String()
  1333  }
  1334  
  1335  // JSONString returns path representation is JSON convention
  1336  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) JSONString() string {
  1337  	return strcase.ToLowerCamel(fp.String())
  1338  }
  1339  
  1340  // Get returns all values pointed by specific field from source ProvisioningApprovalRequest_Status
  1341  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) Get(source *ProvisioningApprovalRequest_Status) (values []interface{}) {
  1342  	if source != nil {
  1343  		switch fp.selector {
  1344  		default:
  1345  			panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Status: %d", fp.selector))
  1346  		}
  1347  	}
  1348  	return
  1349  }
  1350  
  1351  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1352  	return fp.Get(source.(*ProvisioningApprovalRequest_Status))
  1353  }
  1354  
  1355  // GetSingle returns value pointed by specific field of from source ProvisioningApprovalRequest_Status
  1356  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) GetSingle(source *ProvisioningApprovalRequest_Status) (interface{}, bool) {
  1357  	switch fp.selector {
  1358  	default:
  1359  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Status: %d", fp.selector))
  1360  	}
  1361  }
  1362  
  1363  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1364  	return fp.GetSingle(source.(*ProvisioningApprovalRequest_Status))
  1365  }
  1366  
  1367  // GetDefault returns a default value of the field type
  1368  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) GetDefault() interface{} {
  1369  	switch fp.selector {
  1370  	default:
  1371  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Status: %d", fp.selector))
  1372  	}
  1373  }
  1374  
  1375  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) ClearValue(item *ProvisioningApprovalRequest_Status) {
  1376  	if item != nil {
  1377  		switch fp.selector {
  1378  		default:
  1379  			panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Status: %d", fp.selector))
  1380  		}
  1381  	}
  1382  }
  1383  
  1384  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1385  	fp.ClearValue(item.(*ProvisioningApprovalRequest_Status))
  1386  }
  1387  
  1388  // IsLeaf - whether field path is holds simple value
  1389  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) IsLeaf() bool {
  1390  	return false
  1391  }
  1392  
  1393  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1394  	return []gotenobject.FieldPath{fp}
  1395  }
  1396  
  1397  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) WithIValue(value interface{}) ProvisioningApprovalRequestStatus_FieldPathValue {
  1398  	switch fp.selector {
  1399  	default:
  1400  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Status: %d", fp.selector))
  1401  	}
  1402  }
  1403  
  1404  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1405  	return fp.WithIValue(value)
  1406  }
  1407  
  1408  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) WithIArrayOfValues(values interface{}) ProvisioningApprovalRequestStatus_FieldPathArrayOfValues {
  1409  	fpaov := &ProvisioningApprovalRequestStatus_FieldTerminalPathArrayOfValues{ProvisioningApprovalRequestStatus_FieldTerminalPath: *fp}
  1410  	switch fp.selector {
  1411  	default:
  1412  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Status: %d", fp.selector))
  1413  	}
  1414  	return fpaov
  1415  }
  1416  
  1417  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1418  	return fp.WithIArrayOfValues(values)
  1419  }
  1420  
  1421  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) WithIArrayItemValue(value interface{}) ProvisioningApprovalRequestStatus_FieldPathArrayItemValue {
  1422  	switch fp.selector {
  1423  	default:
  1424  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Status: %d", fp.selector))
  1425  	}
  1426  }
  1427  
  1428  func (fp *ProvisioningApprovalRequestStatus_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1429  	return fp.WithIArrayItemValue(value)
  1430  }
  1431  
  1432  // ProvisioningApprovalRequestStatus_FieldPathValue allows storing values for Status fields according to their type
  1433  type ProvisioningApprovalRequestStatus_FieldPathValue interface {
  1434  	ProvisioningApprovalRequestStatus_FieldPath
  1435  	gotenobject.FieldPathValue
  1436  	SetTo(target **ProvisioningApprovalRequest_Status)
  1437  	CompareWith(*ProvisioningApprovalRequest_Status) (cmp int, comparable bool)
  1438  }
  1439  
  1440  func ParseProvisioningApprovalRequestStatus_FieldPathValue(pathStr, valueStr string) (ProvisioningApprovalRequestStatus_FieldPathValue, error) {
  1441  	fp, err := ParseProvisioningApprovalRequestStatus_FieldPath(pathStr)
  1442  	if err != nil {
  1443  		return nil, err
  1444  	}
  1445  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1446  	if err != nil {
  1447  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Status field path value from %s: %v", valueStr, err)
  1448  	}
  1449  	return fpv.(ProvisioningApprovalRequestStatus_FieldPathValue), nil
  1450  }
  1451  
  1452  func MustParseProvisioningApprovalRequestStatus_FieldPathValue(pathStr, valueStr string) ProvisioningApprovalRequestStatus_FieldPathValue {
  1453  	fpv, err := ParseProvisioningApprovalRequestStatus_FieldPathValue(pathStr, valueStr)
  1454  	if err != nil {
  1455  		panic(err)
  1456  	}
  1457  	return fpv
  1458  }
  1459  
  1460  type ProvisioningApprovalRequestStatus_FieldTerminalPathValue struct {
  1461  	ProvisioningApprovalRequestStatus_FieldTerminalPath
  1462  	value interface{}
  1463  }
  1464  
  1465  var _ ProvisioningApprovalRequestStatus_FieldPathValue = (*ProvisioningApprovalRequestStatus_FieldTerminalPathValue)(nil)
  1466  
  1467  // GetRawValue returns raw value stored under selected path for 'Status' as interface{}
  1468  func (fpv *ProvisioningApprovalRequestStatus_FieldTerminalPathValue) GetRawValue() interface{} {
  1469  	return fpv.value
  1470  }
  1471  
  1472  // SetTo stores value for selected field for object Status
  1473  func (fpv *ProvisioningApprovalRequestStatus_FieldTerminalPathValue) SetTo(target **ProvisioningApprovalRequest_Status) {
  1474  	if *target == nil {
  1475  		*target = new(ProvisioningApprovalRequest_Status)
  1476  	}
  1477  	switch fpv.selector {
  1478  	default:
  1479  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Status: %d", fpv.selector))
  1480  	}
  1481  }
  1482  
  1483  func (fpv *ProvisioningApprovalRequestStatus_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1484  	typedObject := target.(*ProvisioningApprovalRequest_Status)
  1485  	fpv.SetTo(&typedObject)
  1486  }
  1487  
  1488  // CompareWith compares value in the 'ProvisioningApprovalRequestStatus_FieldTerminalPathValue' with the value under path in 'ProvisioningApprovalRequest_Status'.
  1489  func (fpv *ProvisioningApprovalRequestStatus_FieldTerminalPathValue) CompareWith(source *ProvisioningApprovalRequest_Status) (int, bool) {
  1490  	switch fpv.selector {
  1491  	default:
  1492  		panic(fmt.Sprintf("Invalid selector for ProvisioningApprovalRequest_Status: %d", fpv.selector))
  1493  	}
  1494  }
  1495  
  1496  func (fpv *ProvisioningApprovalRequestStatus_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1497  	return fpv.CompareWith(source.(*ProvisioningApprovalRequest_Status))
  1498  }
  1499  
  1500  // ProvisioningApprovalRequestStatus_FieldPathArrayItemValue allows storing single item in Path-specific values for Status according to their type
  1501  // Present only for array (repeated) types.
  1502  type ProvisioningApprovalRequestStatus_FieldPathArrayItemValue interface {
  1503  	gotenobject.FieldPathArrayItemValue
  1504  	ProvisioningApprovalRequestStatus_FieldPath
  1505  	ContainsValue(*ProvisioningApprovalRequest_Status) bool
  1506  }
  1507  
  1508  // ParseProvisioningApprovalRequestStatus_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1509  func ParseProvisioningApprovalRequestStatus_FieldPathArrayItemValue(pathStr, valueStr string) (ProvisioningApprovalRequestStatus_FieldPathArrayItemValue, error) {
  1510  	fp, err := ParseProvisioningApprovalRequestStatus_FieldPath(pathStr)
  1511  	if err != nil {
  1512  		return nil, err
  1513  	}
  1514  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1515  	if err != nil {
  1516  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Status field path array item value from %s: %v", valueStr, err)
  1517  	}
  1518  	return fpaiv.(ProvisioningApprovalRequestStatus_FieldPathArrayItemValue), nil
  1519  }
  1520  
  1521  func MustParseProvisioningApprovalRequestStatus_FieldPathArrayItemValue(pathStr, valueStr string) ProvisioningApprovalRequestStatus_FieldPathArrayItemValue {
  1522  	fpaiv, err := ParseProvisioningApprovalRequestStatus_FieldPathArrayItemValue(pathStr, valueStr)
  1523  	if err != nil {
  1524  		panic(err)
  1525  	}
  1526  	return fpaiv
  1527  }
  1528  
  1529  type ProvisioningApprovalRequestStatus_FieldTerminalPathArrayItemValue struct {
  1530  	ProvisioningApprovalRequestStatus_FieldTerminalPath
  1531  	value interface{}
  1532  }
  1533  
  1534  var _ ProvisioningApprovalRequestStatus_FieldPathArrayItemValue = (*ProvisioningApprovalRequestStatus_FieldTerminalPathArrayItemValue)(nil)
  1535  
  1536  // GetRawValue returns stored element value for array in object ProvisioningApprovalRequest_Status as interface{}
  1537  func (fpaiv *ProvisioningApprovalRequestStatus_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1538  	return fpaiv.value
  1539  }
  1540  
  1541  func (fpaiv *ProvisioningApprovalRequestStatus_FieldTerminalPathArrayItemValue) GetSingle(source *ProvisioningApprovalRequest_Status) (interface{}, bool) {
  1542  	return nil, false
  1543  }
  1544  
  1545  func (fpaiv *ProvisioningApprovalRequestStatus_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1546  	return fpaiv.GetSingle(source.(*ProvisioningApprovalRequest_Status))
  1547  }
  1548  
  1549  // Contains returns a boolean indicating if value that is being held is present in given 'Status'
  1550  func (fpaiv *ProvisioningApprovalRequestStatus_FieldTerminalPathArrayItemValue) ContainsValue(source *ProvisioningApprovalRequest_Status) bool {
  1551  	slice := fpaiv.ProvisioningApprovalRequestStatus_FieldTerminalPath.Get(source)
  1552  	for _, v := range slice {
  1553  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1554  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1555  				return true
  1556  			}
  1557  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1558  			return true
  1559  		}
  1560  	}
  1561  	return false
  1562  }
  1563  
  1564  // ProvisioningApprovalRequestStatus_FieldPathArrayOfValues allows storing slice of values for Status fields according to their type
  1565  type ProvisioningApprovalRequestStatus_FieldPathArrayOfValues interface {
  1566  	gotenobject.FieldPathArrayOfValues
  1567  	ProvisioningApprovalRequestStatus_FieldPath
  1568  }
  1569  
  1570  func ParseProvisioningApprovalRequestStatus_FieldPathArrayOfValues(pathStr, valuesStr string) (ProvisioningApprovalRequestStatus_FieldPathArrayOfValues, error) {
  1571  	fp, err := ParseProvisioningApprovalRequestStatus_FieldPath(pathStr)
  1572  	if err != nil {
  1573  		return nil, err
  1574  	}
  1575  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1576  	if err != nil {
  1577  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Status field path array of values from %s: %v", valuesStr, err)
  1578  	}
  1579  	return fpaov.(ProvisioningApprovalRequestStatus_FieldPathArrayOfValues), nil
  1580  }
  1581  
  1582  func MustParseProvisioningApprovalRequestStatus_FieldPathArrayOfValues(pathStr, valuesStr string) ProvisioningApprovalRequestStatus_FieldPathArrayOfValues {
  1583  	fpaov, err := ParseProvisioningApprovalRequestStatus_FieldPathArrayOfValues(pathStr, valuesStr)
  1584  	if err != nil {
  1585  		panic(err)
  1586  	}
  1587  	return fpaov
  1588  }
  1589  
  1590  type ProvisioningApprovalRequestStatus_FieldTerminalPathArrayOfValues struct {
  1591  	ProvisioningApprovalRequestStatus_FieldTerminalPath
  1592  	values interface{}
  1593  }
  1594  
  1595  var _ ProvisioningApprovalRequestStatus_FieldPathArrayOfValues = (*ProvisioningApprovalRequestStatus_FieldTerminalPathArrayOfValues)(nil)
  1596  
  1597  func (fpaov *ProvisioningApprovalRequestStatus_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1598  	switch fpaov.selector {
  1599  	}
  1600  	return
  1601  }