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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/iam/proto/v1alpha2/condition.proto
     3  // DO NOT EDIT!!!
     4  
     5  package condition
     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  	organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/organization"
    27  	project "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/project"
    28  	meta "github.com/cloudwan/goten-sdk/types/meta"
    29  	structpb "google.golang.org/protobuf/types/known/structpb"
    30  )
    31  
    32  // ensure the imports are used
    33  var (
    34  	_ = new(json.Marshaler)
    35  	_ = new(fmt.Stringer)
    36  	_ = reflect.DeepEqual
    37  	_ = strings.Builder{}
    38  	_ = time.Second
    39  
    40  	_ = strcase.ToLowerCamel
    41  	_ = codes.NotFound
    42  	_ = status.Status{}
    43  	_ = protojson.UnmarshalOptions{}
    44  	_ = new(proto.Message)
    45  	_ = protoregistry.GlobalTypes
    46  
    47  	_ = new(gotenobject.FieldPath)
    48  )
    49  
    50  // make sure we're using proto imports
    51  var (
    52  	_ = &organization.Organization{}
    53  	_ = &project.Project{}
    54  	_ = &structpb.Struct{}
    55  	_ = &meta.Meta{}
    56  )
    57  
    58  // FieldPath provides implementation to handle
    59  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
    60  type Condition_FieldPath interface {
    61  	gotenobject.FieldPath
    62  	Selector() Condition_FieldPathSelector
    63  	Get(source *Condition) []interface{}
    64  	GetSingle(source *Condition) (interface{}, bool)
    65  	ClearValue(item *Condition)
    66  
    67  	// Those methods build corresponding Condition_FieldPathValue
    68  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
    69  	WithIValue(value interface{}) Condition_FieldPathValue
    70  	WithIArrayOfValues(values interface{}) Condition_FieldPathArrayOfValues
    71  	WithIArrayItemValue(value interface{}) Condition_FieldPathArrayItemValue
    72  }
    73  
    74  type Condition_FieldPathSelector int32
    75  
    76  const (
    77  	Condition_FieldPathSelectorName                  Condition_FieldPathSelector = 0
    78  	Condition_FieldPathSelectorDisplayName           Condition_FieldPathSelector = 1
    79  	Condition_FieldPathSelectorDescription           Condition_FieldPathSelector = 2
    80  	Condition_FieldPathSelectorExpression            Condition_FieldPathSelector = 3
    81  	Condition_FieldPathSelectorParameterDeclarations Condition_FieldPathSelector = 4
    82  	Condition_FieldPathSelectorMetadata              Condition_FieldPathSelector = 5
    83  )
    84  
    85  func (s Condition_FieldPathSelector) String() string {
    86  	switch s {
    87  	case Condition_FieldPathSelectorName:
    88  		return "name"
    89  	case Condition_FieldPathSelectorDisplayName:
    90  		return "display_name"
    91  	case Condition_FieldPathSelectorDescription:
    92  		return "description"
    93  	case Condition_FieldPathSelectorExpression:
    94  		return "expression"
    95  	case Condition_FieldPathSelectorParameterDeclarations:
    96  		return "parameter_declarations"
    97  	case Condition_FieldPathSelectorMetadata:
    98  		return "metadata"
    99  	default:
   100  		panic(fmt.Sprintf("Invalid selector for Condition: %d", s))
   101  	}
   102  }
   103  
   104  func BuildCondition_FieldPath(fp gotenobject.RawFieldPath) (Condition_FieldPath, error) {
   105  	if len(fp) == 0 {
   106  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Condition")
   107  	}
   108  	if len(fp) == 1 {
   109  		switch fp[0] {
   110  		case "name":
   111  			return &Condition_FieldTerminalPath{selector: Condition_FieldPathSelectorName}, nil
   112  		case "display_name", "displayName", "display-name":
   113  			return &Condition_FieldTerminalPath{selector: Condition_FieldPathSelectorDisplayName}, nil
   114  		case "description":
   115  			return &Condition_FieldTerminalPath{selector: Condition_FieldPathSelectorDescription}, nil
   116  		case "expression":
   117  			return &Condition_FieldTerminalPath{selector: Condition_FieldPathSelectorExpression}, nil
   118  		case "parameter_declarations", "parameterDeclarations", "parameter-declarations":
   119  			return &Condition_FieldTerminalPath{selector: Condition_FieldPathSelectorParameterDeclarations}, nil
   120  		case "metadata":
   121  			return &Condition_FieldTerminalPath{selector: Condition_FieldPathSelectorMetadata}, nil
   122  		}
   123  	} else {
   124  		switch fp[0] {
   125  		case "parameter_declarations", "parameterDeclarations", "parameter-declarations":
   126  			if subpath, err := BuildConditionParameterDeclaration_FieldPath(fp[1:]); err != nil {
   127  				return nil, err
   128  			} else {
   129  				return &Condition_FieldSubPath{selector: Condition_FieldPathSelectorParameterDeclarations, subPath: subpath}, nil
   130  			}
   131  		case "metadata":
   132  			if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil {
   133  				return nil, err
   134  			} else {
   135  				return &Condition_FieldSubPath{selector: Condition_FieldPathSelectorMetadata, subPath: subpath}, nil
   136  			}
   137  		}
   138  	}
   139  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Condition", fp)
   140  }
   141  
   142  func ParseCondition_FieldPath(rawField string) (Condition_FieldPath, error) {
   143  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   144  	if err != nil {
   145  		return nil, err
   146  	}
   147  	return BuildCondition_FieldPath(fp)
   148  }
   149  
   150  func MustParseCondition_FieldPath(rawField string) Condition_FieldPath {
   151  	fp, err := ParseCondition_FieldPath(rawField)
   152  	if err != nil {
   153  		panic(err)
   154  	}
   155  	return fp
   156  }
   157  
   158  type Condition_FieldTerminalPath struct {
   159  	selector Condition_FieldPathSelector
   160  }
   161  
   162  var _ Condition_FieldPath = (*Condition_FieldTerminalPath)(nil)
   163  
   164  func (fp *Condition_FieldTerminalPath) Selector() Condition_FieldPathSelector {
   165  	return fp.selector
   166  }
   167  
   168  // String returns path representation in proto convention
   169  func (fp *Condition_FieldTerminalPath) String() string {
   170  	return fp.selector.String()
   171  }
   172  
   173  // JSONString returns path representation is JSON convention
   174  func (fp *Condition_FieldTerminalPath) JSONString() string {
   175  	return strcase.ToLowerCamel(fp.String())
   176  }
   177  
   178  // Get returns all values pointed by specific field from source Condition
   179  func (fp *Condition_FieldTerminalPath) Get(source *Condition) (values []interface{}) {
   180  	if source != nil {
   181  		switch fp.selector {
   182  		case Condition_FieldPathSelectorName:
   183  			if source.Name != nil {
   184  				values = append(values, source.Name)
   185  			}
   186  		case Condition_FieldPathSelectorDisplayName:
   187  			values = append(values, source.DisplayName)
   188  		case Condition_FieldPathSelectorDescription:
   189  			values = append(values, source.Description)
   190  		case Condition_FieldPathSelectorExpression:
   191  			values = append(values, source.Expression)
   192  		case Condition_FieldPathSelectorParameterDeclarations:
   193  			for _, value := range source.GetParameterDeclarations() {
   194  				values = append(values, value)
   195  			}
   196  		case Condition_FieldPathSelectorMetadata:
   197  			if source.Metadata != nil {
   198  				values = append(values, source.Metadata)
   199  			}
   200  		default:
   201  			panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector))
   202  		}
   203  	}
   204  	return
   205  }
   206  
   207  func (fp *Condition_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
   208  	return fp.Get(source.(*Condition))
   209  }
   210  
   211  // GetSingle returns value pointed by specific field of from source Condition
   212  func (fp *Condition_FieldTerminalPath) GetSingle(source *Condition) (interface{}, bool) {
   213  	switch fp.selector {
   214  	case Condition_FieldPathSelectorName:
   215  		res := source.GetName()
   216  		return res, res != nil
   217  	case Condition_FieldPathSelectorDisplayName:
   218  		return source.GetDisplayName(), source != nil
   219  	case Condition_FieldPathSelectorDescription:
   220  		return source.GetDescription(), source != nil
   221  	case Condition_FieldPathSelectorExpression:
   222  		return source.GetExpression(), source != nil
   223  	case Condition_FieldPathSelectorParameterDeclarations:
   224  		res := source.GetParameterDeclarations()
   225  		return res, res != nil
   226  	case Condition_FieldPathSelectorMetadata:
   227  		res := source.GetMetadata()
   228  		return res, res != nil
   229  	default:
   230  		panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector))
   231  	}
   232  }
   233  
   234  func (fp *Condition_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   235  	return fp.GetSingle(source.(*Condition))
   236  }
   237  
   238  // GetDefault returns a default value of the field type
   239  func (fp *Condition_FieldTerminalPath) GetDefault() interface{} {
   240  	switch fp.selector {
   241  	case Condition_FieldPathSelectorName:
   242  		return (*Name)(nil)
   243  	case Condition_FieldPathSelectorDisplayName:
   244  		return ""
   245  	case Condition_FieldPathSelectorDescription:
   246  		return ""
   247  	case Condition_FieldPathSelectorExpression:
   248  		return ""
   249  	case Condition_FieldPathSelectorParameterDeclarations:
   250  		return ([]*Condition_ParameterDeclaration)(nil)
   251  	case Condition_FieldPathSelectorMetadata:
   252  		return (*meta.Meta)(nil)
   253  	default:
   254  		panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector))
   255  	}
   256  }
   257  
   258  func (fp *Condition_FieldTerminalPath) ClearValue(item *Condition) {
   259  	if item != nil {
   260  		switch fp.selector {
   261  		case Condition_FieldPathSelectorName:
   262  			item.Name = nil
   263  		case Condition_FieldPathSelectorDisplayName:
   264  			item.DisplayName = ""
   265  		case Condition_FieldPathSelectorDescription:
   266  			item.Description = ""
   267  		case Condition_FieldPathSelectorExpression:
   268  			item.Expression = ""
   269  		case Condition_FieldPathSelectorParameterDeclarations:
   270  			item.ParameterDeclarations = nil
   271  		case Condition_FieldPathSelectorMetadata:
   272  			item.Metadata = nil
   273  		default:
   274  			panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector))
   275  		}
   276  	}
   277  }
   278  
   279  func (fp *Condition_FieldTerminalPath) ClearValueRaw(item proto.Message) {
   280  	fp.ClearValue(item.(*Condition))
   281  }
   282  
   283  // IsLeaf - whether field path is holds simple value
   284  func (fp *Condition_FieldTerminalPath) IsLeaf() bool {
   285  	return fp.selector == Condition_FieldPathSelectorName ||
   286  		fp.selector == Condition_FieldPathSelectorDisplayName ||
   287  		fp.selector == Condition_FieldPathSelectorDescription ||
   288  		fp.selector == Condition_FieldPathSelectorExpression
   289  }
   290  
   291  func (fp *Condition_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   292  	return []gotenobject.FieldPath{fp}
   293  }
   294  
   295  func (fp *Condition_FieldTerminalPath) WithIValue(value interface{}) Condition_FieldPathValue {
   296  	switch fp.selector {
   297  	case Condition_FieldPathSelectorName:
   298  		return &Condition_FieldTerminalPathValue{Condition_FieldTerminalPath: *fp, value: value.(*Name)}
   299  	case Condition_FieldPathSelectorDisplayName:
   300  		return &Condition_FieldTerminalPathValue{Condition_FieldTerminalPath: *fp, value: value.(string)}
   301  	case Condition_FieldPathSelectorDescription:
   302  		return &Condition_FieldTerminalPathValue{Condition_FieldTerminalPath: *fp, value: value.(string)}
   303  	case Condition_FieldPathSelectorExpression:
   304  		return &Condition_FieldTerminalPathValue{Condition_FieldTerminalPath: *fp, value: value.(string)}
   305  	case Condition_FieldPathSelectorParameterDeclarations:
   306  		return &Condition_FieldTerminalPathValue{Condition_FieldTerminalPath: *fp, value: value.([]*Condition_ParameterDeclaration)}
   307  	case Condition_FieldPathSelectorMetadata:
   308  		return &Condition_FieldTerminalPathValue{Condition_FieldTerminalPath: *fp, value: value.(*meta.Meta)}
   309  	default:
   310  		panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector))
   311  	}
   312  }
   313  
   314  func (fp *Condition_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   315  	return fp.WithIValue(value)
   316  }
   317  
   318  func (fp *Condition_FieldTerminalPath) WithIArrayOfValues(values interface{}) Condition_FieldPathArrayOfValues {
   319  	fpaov := &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp}
   320  	switch fp.selector {
   321  	case Condition_FieldPathSelectorName:
   322  		return &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp, values: values.([]*Name)}
   323  	case Condition_FieldPathSelectorDisplayName:
   324  		return &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp, values: values.([]string)}
   325  	case Condition_FieldPathSelectorDescription:
   326  		return &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp, values: values.([]string)}
   327  	case Condition_FieldPathSelectorExpression:
   328  		return &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp, values: values.([]string)}
   329  	case Condition_FieldPathSelectorParameterDeclarations:
   330  		return &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp, values: values.([][]*Condition_ParameterDeclaration)}
   331  	case Condition_FieldPathSelectorMetadata:
   332  		return &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp, values: values.([]*meta.Meta)}
   333  	default:
   334  		panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector))
   335  	}
   336  	return fpaov
   337  }
   338  
   339  func (fp *Condition_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   340  	return fp.WithIArrayOfValues(values)
   341  }
   342  
   343  func (fp *Condition_FieldTerminalPath) WithIArrayItemValue(value interface{}) Condition_FieldPathArrayItemValue {
   344  	switch fp.selector {
   345  	case Condition_FieldPathSelectorParameterDeclarations:
   346  		return &Condition_FieldTerminalPathArrayItemValue{Condition_FieldTerminalPath: *fp, value: value.(*Condition_ParameterDeclaration)}
   347  	default:
   348  		panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector))
   349  	}
   350  }
   351  
   352  func (fp *Condition_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   353  	return fp.WithIArrayItemValue(value)
   354  }
   355  
   356  type Condition_FieldSubPath struct {
   357  	selector Condition_FieldPathSelector
   358  	subPath  gotenobject.FieldPath
   359  }
   360  
   361  var _ Condition_FieldPath = (*Condition_FieldSubPath)(nil)
   362  
   363  func (fps *Condition_FieldSubPath) Selector() Condition_FieldPathSelector {
   364  	return fps.selector
   365  }
   366  func (fps *Condition_FieldSubPath) AsParameterDeclarationsSubPath() (ConditionParameterDeclaration_FieldPath, bool) {
   367  	res, ok := fps.subPath.(ConditionParameterDeclaration_FieldPath)
   368  	return res, ok
   369  }
   370  func (fps *Condition_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) {
   371  	res, ok := fps.subPath.(meta.Meta_FieldPath)
   372  	return res, ok
   373  }
   374  
   375  // String returns path representation in proto convention
   376  func (fps *Condition_FieldSubPath) String() string {
   377  	return fps.selector.String() + "." + fps.subPath.String()
   378  }
   379  
   380  // JSONString returns path representation is JSON convention
   381  func (fps *Condition_FieldSubPath) JSONString() string {
   382  	return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString()
   383  }
   384  
   385  // Get returns all values pointed by selected field from source Condition
   386  func (fps *Condition_FieldSubPath) Get(source *Condition) (values []interface{}) {
   387  	switch fps.selector {
   388  	case Condition_FieldPathSelectorParameterDeclarations:
   389  		for _, item := range source.GetParameterDeclarations() {
   390  			values = append(values, fps.subPath.GetRaw(item)...)
   391  		}
   392  	case Condition_FieldPathSelectorMetadata:
   393  		values = append(values, fps.subPath.GetRaw(source.GetMetadata())...)
   394  	default:
   395  		panic(fmt.Sprintf("Invalid selector for Condition: %d", fps.selector))
   396  	}
   397  	return
   398  }
   399  
   400  func (fps *Condition_FieldSubPath) GetRaw(source proto.Message) []interface{} {
   401  	return fps.Get(source.(*Condition))
   402  }
   403  
   404  // GetSingle returns value of selected field from source Condition
   405  func (fps *Condition_FieldSubPath) GetSingle(source *Condition) (interface{}, bool) {
   406  	switch fps.selector {
   407  	case Condition_FieldPathSelectorParameterDeclarations:
   408  		if len(source.GetParameterDeclarations()) == 0 {
   409  			return nil, false
   410  		}
   411  		return fps.subPath.GetSingleRaw(source.GetParameterDeclarations()[0])
   412  	case Condition_FieldPathSelectorMetadata:
   413  		if source.GetMetadata() == nil {
   414  			return nil, false
   415  		}
   416  		return fps.subPath.GetSingleRaw(source.GetMetadata())
   417  	default:
   418  		panic(fmt.Sprintf("Invalid selector for Condition: %d", fps.selector))
   419  	}
   420  }
   421  
   422  func (fps *Condition_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
   423  	return fps.GetSingle(source.(*Condition))
   424  }
   425  
   426  // GetDefault returns a default value of the field type
   427  func (fps *Condition_FieldSubPath) GetDefault() interface{} {
   428  	return fps.subPath.GetDefault()
   429  }
   430  
   431  func (fps *Condition_FieldSubPath) ClearValue(item *Condition) {
   432  	if item != nil {
   433  		switch fps.selector {
   434  		case Condition_FieldPathSelectorParameterDeclarations:
   435  			for _, subItem := range item.ParameterDeclarations {
   436  				fps.subPath.ClearValueRaw(subItem)
   437  			}
   438  		case Condition_FieldPathSelectorMetadata:
   439  			fps.subPath.ClearValueRaw(item.Metadata)
   440  		default:
   441  			panic(fmt.Sprintf("Invalid selector for Condition: %d", fps.selector))
   442  		}
   443  	}
   444  }
   445  
   446  func (fps *Condition_FieldSubPath) ClearValueRaw(item proto.Message) {
   447  	fps.ClearValue(item.(*Condition))
   448  }
   449  
   450  // IsLeaf - whether field path is holds simple value
   451  func (fps *Condition_FieldSubPath) IsLeaf() bool {
   452  	return fps.subPath.IsLeaf()
   453  }
   454  
   455  func (fps *Condition_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
   456  	iPaths := []gotenobject.FieldPath{&Condition_FieldTerminalPath{selector: fps.selector}}
   457  	iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...)
   458  	return iPaths
   459  }
   460  
   461  func (fps *Condition_FieldSubPath) WithIValue(value interface{}) Condition_FieldPathValue {
   462  	return &Condition_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)}
   463  }
   464  
   465  func (fps *Condition_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
   466  	return fps.WithIValue(value)
   467  }
   468  
   469  func (fps *Condition_FieldSubPath) WithIArrayOfValues(values interface{}) Condition_FieldPathArrayOfValues {
   470  	return &Condition_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)}
   471  }
   472  
   473  func (fps *Condition_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
   474  	return fps.WithIArrayOfValues(values)
   475  }
   476  
   477  func (fps *Condition_FieldSubPath) WithIArrayItemValue(value interface{}) Condition_FieldPathArrayItemValue {
   478  	return &Condition_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)}
   479  }
   480  
   481  func (fps *Condition_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
   482  	return fps.WithIArrayItemValue(value)
   483  }
   484  
   485  // Condition_FieldPathValue allows storing values for Condition fields according to their type
   486  type Condition_FieldPathValue interface {
   487  	Condition_FieldPath
   488  	gotenobject.FieldPathValue
   489  	SetTo(target **Condition)
   490  	CompareWith(*Condition) (cmp int, comparable bool)
   491  }
   492  
   493  func ParseCondition_FieldPathValue(pathStr, valueStr string) (Condition_FieldPathValue, error) {
   494  	fp, err := ParseCondition_FieldPath(pathStr)
   495  	if err != nil {
   496  		return nil, err
   497  	}
   498  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
   499  	if err != nil {
   500  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Condition field path value from %s: %v", valueStr, err)
   501  	}
   502  	return fpv.(Condition_FieldPathValue), nil
   503  }
   504  
   505  func MustParseCondition_FieldPathValue(pathStr, valueStr string) Condition_FieldPathValue {
   506  	fpv, err := ParseCondition_FieldPathValue(pathStr, valueStr)
   507  	if err != nil {
   508  		panic(err)
   509  	}
   510  	return fpv
   511  }
   512  
   513  type Condition_FieldTerminalPathValue struct {
   514  	Condition_FieldTerminalPath
   515  	value interface{}
   516  }
   517  
   518  var _ Condition_FieldPathValue = (*Condition_FieldTerminalPathValue)(nil)
   519  
   520  // GetRawValue returns raw value stored under selected path for 'Condition' as interface{}
   521  func (fpv *Condition_FieldTerminalPathValue) GetRawValue() interface{} {
   522  	return fpv.value
   523  }
   524  func (fpv *Condition_FieldTerminalPathValue) AsNameValue() (*Name, bool) {
   525  	res, ok := fpv.value.(*Name)
   526  	return res, ok
   527  }
   528  func (fpv *Condition_FieldTerminalPathValue) AsDisplayNameValue() (string, bool) {
   529  	res, ok := fpv.value.(string)
   530  	return res, ok
   531  }
   532  func (fpv *Condition_FieldTerminalPathValue) AsDescriptionValue() (string, bool) {
   533  	res, ok := fpv.value.(string)
   534  	return res, ok
   535  }
   536  func (fpv *Condition_FieldTerminalPathValue) AsExpressionValue() (string, bool) {
   537  	res, ok := fpv.value.(string)
   538  	return res, ok
   539  }
   540  func (fpv *Condition_FieldTerminalPathValue) AsParameterDeclarationsValue() ([]*Condition_ParameterDeclaration, bool) {
   541  	res, ok := fpv.value.([]*Condition_ParameterDeclaration)
   542  	return res, ok
   543  }
   544  func (fpv *Condition_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) {
   545  	res, ok := fpv.value.(*meta.Meta)
   546  	return res, ok
   547  }
   548  
   549  // SetTo stores value for selected field for object Condition
   550  func (fpv *Condition_FieldTerminalPathValue) SetTo(target **Condition) {
   551  	if *target == nil {
   552  		*target = new(Condition)
   553  	}
   554  	switch fpv.selector {
   555  	case Condition_FieldPathSelectorName:
   556  		(*target).Name = fpv.value.(*Name)
   557  	case Condition_FieldPathSelectorDisplayName:
   558  		(*target).DisplayName = fpv.value.(string)
   559  	case Condition_FieldPathSelectorDescription:
   560  		(*target).Description = fpv.value.(string)
   561  	case Condition_FieldPathSelectorExpression:
   562  		(*target).Expression = fpv.value.(string)
   563  	case Condition_FieldPathSelectorParameterDeclarations:
   564  		(*target).ParameterDeclarations = fpv.value.([]*Condition_ParameterDeclaration)
   565  	case Condition_FieldPathSelectorMetadata:
   566  		(*target).Metadata = fpv.value.(*meta.Meta)
   567  	default:
   568  		panic(fmt.Sprintf("Invalid selector for Condition: %d", fpv.selector))
   569  	}
   570  }
   571  
   572  func (fpv *Condition_FieldTerminalPathValue) SetToRaw(target proto.Message) {
   573  	typedObject := target.(*Condition)
   574  	fpv.SetTo(&typedObject)
   575  }
   576  
   577  // CompareWith compares value in the 'Condition_FieldTerminalPathValue' with the value under path in 'Condition'.
   578  func (fpv *Condition_FieldTerminalPathValue) CompareWith(source *Condition) (int, bool) {
   579  	switch fpv.selector {
   580  	case Condition_FieldPathSelectorName:
   581  		leftValue := fpv.value.(*Name)
   582  		rightValue := source.GetName()
   583  		if leftValue == nil {
   584  			if rightValue != nil {
   585  				return -1, true
   586  			}
   587  			return 0, true
   588  		}
   589  		if rightValue == nil {
   590  			return 1, true
   591  		}
   592  		if leftValue.String() == rightValue.String() {
   593  			return 0, true
   594  		} else if leftValue.String() < rightValue.String() {
   595  			return -1, true
   596  		} else {
   597  			return 1, true
   598  		}
   599  	case Condition_FieldPathSelectorDisplayName:
   600  		leftValue := fpv.value.(string)
   601  		rightValue := source.GetDisplayName()
   602  		if (leftValue) == (rightValue) {
   603  			return 0, true
   604  		} else if (leftValue) < (rightValue) {
   605  			return -1, true
   606  		} else {
   607  			return 1, true
   608  		}
   609  	case Condition_FieldPathSelectorDescription:
   610  		leftValue := fpv.value.(string)
   611  		rightValue := source.GetDescription()
   612  		if (leftValue) == (rightValue) {
   613  			return 0, true
   614  		} else if (leftValue) < (rightValue) {
   615  			return -1, true
   616  		} else {
   617  			return 1, true
   618  		}
   619  	case Condition_FieldPathSelectorExpression:
   620  		leftValue := fpv.value.(string)
   621  		rightValue := source.GetExpression()
   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 Condition_FieldPathSelectorParameterDeclarations:
   630  		return 0, false
   631  	case Condition_FieldPathSelectorMetadata:
   632  		return 0, false
   633  	default:
   634  		panic(fmt.Sprintf("Invalid selector for Condition: %d", fpv.selector))
   635  	}
   636  }
   637  
   638  func (fpv *Condition_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   639  	return fpv.CompareWith(source.(*Condition))
   640  }
   641  
   642  type Condition_FieldSubPathValue struct {
   643  	Condition_FieldPath
   644  	subPathValue gotenobject.FieldPathValue
   645  }
   646  
   647  var _ Condition_FieldPathValue = (*Condition_FieldSubPathValue)(nil)
   648  
   649  func (fpvs *Condition_FieldSubPathValue) AsParameterDeclarationsPathValue() (ConditionParameterDeclaration_FieldPathValue, bool) {
   650  	res, ok := fpvs.subPathValue.(ConditionParameterDeclaration_FieldPathValue)
   651  	return res, ok
   652  }
   653  func (fpvs *Condition_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) {
   654  	res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue)
   655  	return res, ok
   656  }
   657  
   658  func (fpvs *Condition_FieldSubPathValue) SetTo(target **Condition) {
   659  	if *target == nil {
   660  		*target = new(Condition)
   661  	}
   662  	switch fpvs.Selector() {
   663  	case Condition_FieldPathSelectorParameterDeclarations:
   664  		panic("FieldPath setter is unsupported for array subpaths")
   665  	case Condition_FieldPathSelectorMetadata:
   666  		fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata)
   667  	default:
   668  		panic(fmt.Sprintf("Invalid selector for Condition: %d", fpvs.Selector()))
   669  	}
   670  }
   671  
   672  func (fpvs *Condition_FieldSubPathValue) SetToRaw(target proto.Message) {
   673  	typedObject := target.(*Condition)
   674  	fpvs.SetTo(&typedObject)
   675  }
   676  
   677  func (fpvs *Condition_FieldSubPathValue) GetRawValue() interface{} {
   678  	return fpvs.subPathValue.GetRawValue()
   679  }
   680  
   681  func (fpvs *Condition_FieldSubPathValue) CompareWith(source *Condition) (int, bool) {
   682  	switch fpvs.Selector() {
   683  	case Condition_FieldPathSelectorParameterDeclarations:
   684  		return 0, false // repeated field
   685  	case Condition_FieldPathSelectorMetadata:
   686  		return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata())
   687  	default:
   688  		panic(fmt.Sprintf("Invalid selector for Condition: %d", fpvs.Selector()))
   689  	}
   690  }
   691  
   692  func (fpvs *Condition_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) {
   693  	return fpvs.CompareWith(source.(*Condition))
   694  }
   695  
   696  // Condition_FieldPathArrayItemValue allows storing single item in Path-specific values for Condition according to their type
   697  // Present only for array (repeated) types.
   698  type Condition_FieldPathArrayItemValue interface {
   699  	gotenobject.FieldPathArrayItemValue
   700  	Condition_FieldPath
   701  	ContainsValue(*Condition) bool
   702  }
   703  
   704  // ParseCondition_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
   705  func ParseCondition_FieldPathArrayItemValue(pathStr, valueStr string) (Condition_FieldPathArrayItemValue, error) {
   706  	fp, err := ParseCondition_FieldPath(pathStr)
   707  	if err != nil {
   708  		return nil, err
   709  	}
   710  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
   711  	if err != nil {
   712  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Condition field path array item value from %s: %v", valueStr, err)
   713  	}
   714  	return fpaiv.(Condition_FieldPathArrayItemValue), nil
   715  }
   716  
   717  func MustParseCondition_FieldPathArrayItemValue(pathStr, valueStr string) Condition_FieldPathArrayItemValue {
   718  	fpaiv, err := ParseCondition_FieldPathArrayItemValue(pathStr, valueStr)
   719  	if err != nil {
   720  		panic(err)
   721  	}
   722  	return fpaiv
   723  }
   724  
   725  type Condition_FieldTerminalPathArrayItemValue struct {
   726  	Condition_FieldTerminalPath
   727  	value interface{}
   728  }
   729  
   730  var _ Condition_FieldPathArrayItemValue = (*Condition_FieldTerminalPathArrayItemValue)(nil)
   731  
   732  // GetRawValue returns stored element value for array in object Condition as interface{}
   733  func (fpaiv *Condition_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
   734  	return fpaiv.value
   735  }
   736  func (fpaiv *Condition_FieldTerminalPathArrayItemValue) AsParameterDeclarationsItemValue() (*Condition_ParameterDeclaration, bool) {
   737  	res, ok := fpaiv.value.(*Condition_ParameterDeclaration)
   738  	return res, ok
   739  }
   740  
   741  func (fpaiv *Condition_FieldTerminalPathArrayItemValue) GetSingle(source *Condition) (interface{}, bool) {
   742  	return nil, false
   743  }
   744  
   745  func (fpaiv *Condition_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
   746  	return fpaiv.GetSingle(source.(*Condition))
   747  }
   748  
   749  // Contains returns a boolean indicating if value that is being held is present in given 'Condition'
   750  func (fpaiv *Condition_FieldTerminalPathArrayItemValue) ContainsValue(source *Condition) bool {
   751  	slice := fpaiv.Condition_FieldTerminalPath.Get(source)
   752  	for _, v := range slice {
   753  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
   754  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
   755  				return true
   756  			}
   757  		} else if reflect.DeepEqual(v, fpaiv.value) {
   758  			return true
   759  		}
   760  	}
   761  	return false
   762  }
   763  
   764  type Condition_FieldSubPathArrayItemValue struct {
   765  	Condition_FieldPath
   766  	subPathItemValue gotenobject.FieldPathArrayItemValue
   767  }
   768  
   769  // GetRawValue returns stored array item value
   770  func (fpaivs *Condition_FieldSubPathArrayItemValue) GetRawItemValue() interface{} {
   771  	return fpaivs.subPathItemValue.GetRawItemValue()
   772  }
   773  func (fpaivs *Condition_FieldSubPathArrayItemValue) AsParameterDeclarationsPathItemValue() (ConditionParameterDeclaration_FieldPathArrayItemValue, bool) {
   774  	res, ok := fpaivs.subPathItemValue.(ConditionParameterDeclaration_FieldPathArrayItemValue)
   775  	return res, ok
   776  }
   777  func (fpaivs *Condition_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) {
   778  	res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue)
   779  	return res, ok
   780  }
   781  
   782  // Contains returns a boolean indicating if value that is being held is present in given 'Condition'
   783  func (fpaivs *Condition_FieldSubPathArrayItemValue) ContainsValue(source *Condition) bool {
   784  	switch fpaivs.Selector() {
   785  	case Condition_FieldPathSelectorParameterDeclarations:
   786  		return false // repeated/map field
   787  	case Condition_FieldPathSelectorMetadata:
   788  		return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata())
   789  	default:
   790  		panic(fmt.Sprintf("Invalid selector for Condition: %d", fpaivs.Selector()))
   791  	}
   792  }
   793  
   794  // Condition_FieldPathArrayOfValues allows storing slice of values for Condition fields according to their type
   795  type Condition_FieldPathArrayOfValues interface {
   796  	gotenobject.FieldPathArrayOfValues
   797  	Condition_FieldPath
   798  }
   799  
   800  func ParseCondition_FieldPathArrayOfValues(pathStr, valuesStr string) (Condition_FieldPathArrayOfValues, error) {
   801  	fp, err := ParseCondition_FieldPath(pathStr)
   802  	if err != nil {
   803  		return nil, err
   804  	}
   805  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
   806  	if err != nil {
   807  		return nil, status.Errorf(codes.InvalidArgument, "error parsing Condition field path array of values from %s: %v", valuesStr, err)
   808  	}
   809  	return fpaov.(Condition_FieldPathArrayOfValues), nil
   810  }
   811  
   812  func MustParseCondition_FieldPathArrayOfValues(pathStr, valuesStr string) Condition_FieldPathArrayOfValues {
   813  	fpaov, err := ParseCondition_FieldPathArrayOfValues(pathStr, valuesStr)
   814  	if err != nil {
   815  		panic(err)
   816  	}
   817  	return fpaov
   818  }
   819  
   820  type Condition_FieldTerminalPathArrayOfValues struct {
   821  	Condition_FieldTerminalPath
   822  	values interface{}
   823  }
   824  
   825  var _ Condition_FieldPathArrayOfValues = (*Condition_FieldTerminalPathArrayOfValues)(nil)
   826  
   827  func (fpaov *Condition_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
   828  	switch fpaov.selector {
   829  	case Condition_FieldPathSelectorName:
   830  		for _, v := range fpaov.values.([]*Name) {
   831  			values = append(values, v)
   832  		}
   833  	case Condition_FieldPathSelectorDisplayName:
   834  		for _, v := range fpaov.values.([]string) {
   835  			values = append(values, v)
   836  		}
   837  	case Condition_FieldPathSelectorDescription:
   838  		for _, v := range fpaov.values.([]string) {
   839  			values = append(values, v)
   840  		}
   841  	case Condition_FieldPathSelectorExpression:
   842  		for _, v := range fpaov.values.([]string) {
   843  			values = append(values, v)
   844  		}
   845  	case Condition_FieldPathSelectorParameterDeclarations:
   846  		for _, v := range fpaov.values.([][]*Condition_ParameterDeclaration) {
   847  			values = append(values, v)
   848  		}
   849  	case Condition_FieldPathSelectorMetadata:
   850  		for _, v := range fpaov.values.([]*meta.Meta) {
   851  			values = append(values, v)
   852  		}
   853  	}
   854  	return
   855  }
   856  func (fpaov *Condition_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) {
   857  	res, ok := fpaov.values.([]*Name)
   858  	return res, ok
   859  }
   860  func (fpaov *Condition_FieldTerminalPathArrayOfValues) AsDisplayNameArrayOfValues() ([]string, bool) {
   861  	res, ok := fpaov.values.([]string)
   862  	return res, ok
   863  }
   864  func (fpaov *Condition_FieldTerminalPathArrayOfValues) AsDescriptionArrayOfValues() ([]string, bool) {
   865  	res, ok := fpaov.values.([]string)
   866  	return res, ok
   867  }
   868  func (fpaov *Condition_FieldTerminalPathArrayOfValues) AsExpressionArrayOfValues() ([]string, bool) {
   869  	res, ok := fpaov.values.([]string)
   870  	return res, ok
   871  }
   872  func (fpaov *Condition_FieldTerminalPathArrayOfValues) AsParameterDeclarationsArrayOfValues() ([][]*Condition_ParameterDeclaration, bool) {
   873  	res, ok := fpaov.values.([][]*Condition_ParameterDeclaration)
   874  	return res, ok
   875  }
   876  func (fpaov *Condition_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) {
   877  	res, ok := fpaov.values.([]*meta.Meta)
   878  	return res, ok
   879  }
   880  
   881  type Condition_FieldSubPathArrayOfValues struct {
   882  	Condition_FieldPath
   883  	subPathArrayOfValues gotenobject.FieldPathArrayOfValues
   884  }
   885  
   886  var _ Condition_FieldPathArrayOfValues = (*Condition_FieldSubPathArrayOfValues)(nil)
   887  
   888  func (fpsaov *Condition_FieldSubPathArrayOfValues) GetRawValues() []interface{} {
   889  	return fpsaov.subPathArrayOfValues.GetRawValues()
   890  }
   891  func (fpsaov *Condition_FieldSubPathArrayOfValues) AsParameterDeclarationsPathArrayOfValues() (ConditionParameterDeclaration_FieldPathArrayOfValues, bool) {
   892  	res, ok := fpsaov.subPathArrayOfValues.(ConditionParameterDeclaration_FieldPathArrayOfValues)
   893  	return res, ok
   894  }
   895  func (fpsaov *Condition_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) {
   896  	res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues)
   897  	return res, ok
   898  }
   899  
   900  // FieldPath provides implementation to handle
   901  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
   902  type ConditionParameterDeclaration_FieldPath interface {
   903  	gotenobject.FieldPath
   904  	Selector() ConditionParameterDeclaration_FieldPathSelector
   905  	Get(source *Condition_ParameterDeclaration) []interface{}
   906  	GetSingle(source *Condition_ParameterDeclaration) (interface{}, bool)
   907  	ClearValue(item *Condition_ParameterDeclaration)
   908  
   909  	// Those methods build corresponding ConditionParameterDeclaration_FieldPathValue
   910  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
   911  	WithIValue(value interface{}) ConditionParameterDeclaration_FieldPathValue
   912  	WithIArrayOfValues(values interface{}) ConditionParameterDeclaration_FieldPathArrayOfValues
   913  	WithIArrayItemValue(value interface{}) ConditionParameterDeclaration_FieldPathArrayItemValue
   914  }
   915  
   916  type ConditionParameterDeclaration_FieldPathSelector int32
   917  
   918  const (
   919  	ConditionParameterDeclaration_FieldPathSelectorKey  ConditionParameterDeclaration_FieldPathSelector = 0
   920  	ConditionParameterDeclaration_FieldPathSelectorType ConditionParameterDeclaration_FieldPathSelector = 1
   921  )
   922  
   923  func (s ConditionParameterDeclaration_FieldPathSelector) String() string {
   924  	switch s {
   925  	case ConditionParameterDeclaration_FieldPathSelectorKey:
   926  		return "key"
   927  	case ConditionParameterDeclaration_FieldPathSelectorType:
   928  		return "type"
   929  	default:
   930  		panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", s))
   931  	}
   932  }
   933  
   934  func BuildConditionParameterDeclaration_FieldPath(fp gotenobject.RawFieldPath) (ConditionParameterDeclaration_FieldPath, error) {
   935  	if len(fp) == 0 {
   936  		return nil, status.Error(codes.InvalidArgument, "empty field path for object Condition_ParameterDeclaration")
   937  	}
   938  	if len(fp) == 1 {
   939  		switch fp[0] {
   940  		case "key":
   941  			return &ConditionParameterDeclaration_FieldTerminalPath{selector: ConditionParameterDeclaration_FieldPathSelectorKey}, nil
   942  		case "type":
   943  			return &ConditionParameterDeclaration_FieldTerminalPath{selector: ConditionParameterDeclaration_FieldPathSelectorType}, nil
   944  		}
   945  	}
   946  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Condition_ParameterDeclaration", fp)
   947  }
   948  
   949  func ParseConditionParameterDeclaration_FieldPath(rawField string) (ConditionParameterDeclaration_FieldPath, error) {
   950  	fp, err := gotenobject.ParseRawFieldPath(rawField)
   951  	if err != nil {
   952  		return nil, err
   953  	}
   954  	return BuildConditionParameterDeclaration_FieldPath(fp)
   955  }
   956  
   957  func MustParseConditionParameterDeclaration_FieldPath(rawField string) ConditionParameterDeclaration_FieldPath {
   958  	fp, err := ParseConditionParameterDeclaration_FieldPath(rawField)
   959  	if err != nil {
   960  		panic(err)
   961  	}
   962  	return fp
   963  }
   964  
   965  type ConditionParameterDeclaration_FieldTerminalPath struct {
   966  	selector ConditionParameterDeclaration_FieldPathSelector
   967  }
   968  
   969  var _ ConditionParameterDeclaration_FieldPath = (*ConditionParameterDeclaration_FieldTerminalPath)(nil)
   970  
   971  func (fp *ConditionParameterDeclaration_FieldTerminalPath) Selector() ConditionParameterDeclaration_FieldPathSelector {
   972  	return fp.selector
   973  }
   974  
   975  // String returns path representation in proto convention
   976  func (fp *ConditionParameterDeclaration_FieldTerminalPath) String() string {
   977  	return fp.selector.String()
   978  }
   979  
   980  // JSONString returns path representation is JSON convention
   981  func (fp *ConditionParameterDeclaration_FieldTerminalPath) JSONString() string {
   982  	return strcase.ToLowerCamel(fp.String())
   983  }
   984  
   985  // Get returns all values pointed by specific field from source Condition_ParameterDeclaration
   986  func (fp *ConditionParameterDeclaration_FieldTerminalPath) Get(source *Condition_ParameterDeclaration) (values []interface{}) {
   987  	if source != nil {
   988  		switch fp.selector {
   989  		case ConditionParameterDeclaration_FieldPathSelectorKey:
   990  			values = append(values, source.Key)
   991  		case ConditionParameterDeclaration_FieldPathSelectorType:
   992  			values = append(values, source.Type)
   993  		default:
   994  			panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector))
   995  		}
   996  	}
   997  	return
   998  }
   999  
  1000  func (fp *ConditionParameterDeclaration_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1001  	return fp.Get(source.(*Condition_ParameterDeclaration))
  1002  }
  1003  
  1004  // GetSingle returns value pointed by specific field of from source Condition_ParameterDeclaration
  1005  func (fp *ConditionParameterDeclaration_FieldTerminalPath) GetSingle(source *Condition_ParameterDeclaration) (interface{}, bool) {
  1006  	switch fp.selector {
  1007  	case ConditionParameterDeclaration_FieldPathSelectorKey:
  1008  		return source.GetKey(), source != nil
  1009  	case ConditionParameterDeclaration_FieldPathSelectorType:
  1010  		return source.GetType(), source != nil
  1011  	default:
  1012  		panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector))
  1013  	}
  1014  }
  1015  
  1016  func (fp *ConditionParameterDeclaration_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1017  	return fp.GetSingle(source.(*Condition_ParameterDeclaration))
  1018  }
  1019  
  1020  // GetDefault returns a default value of the field type
  1021  func (fp *ConditionParameterDeclaration_FieldTerminalPath) GetDefault() interface{} {
  1022  	switch fp.selector {
  1023  	case ConditionParameterDeclaration_FieldPathSelectorKey:
  1024  		return ""
  1025  	case ConditionParameterDeclaration_FieldPathSelectorType:
  1026  		return Condition_TYPE_UNSPECIFIED
  1027  	default:
  1028  		panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector))
  1029  	}
  1030  }
  1031  
  1032  func (fp *ConditionParameterDeclaration_FieldTerminalPath) ClearValue(item *Condition_ParameterDeclaration) {
  1033  	if item != nil {
  1034  		switch fp.selector {
  1035  		case ConditionParameterDeclaration_FieldPathSelectorKey:
  1036  			item.Key = ""
  1037  		case ConditionParameterDeclaration_FieldPathSelectorType:
  1038  			item.Type = Condition_TYPE_UNSPECIFIED
  1039  		default:
  1040  			panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector))
  1041  		}
  1042  	}
  1043  }
  1044  
  1045  func (fp *ConditionParameterDeclaration_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1046  	fp.ClearValue(item.(*Condition_ParameterDeclaration))
  1047  }
  1048  
  1049  // IsLeaf - whether field path is holds simple value
  1050  func (fp *ConditionParameterDeclaration_FieldTerminalPath) IsLeaf() bool {
  1051  	return fp.selector == ConditionParameterDeclaration_FieldPathSelectorKey ||
  1052  		fp.selector == ConditionParameterDeclaration_FieldPathSelectorType
  1053  }
  1054  
  1055  func (fp *ConditionParameterDeclaration_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1056  	return []gotenobject.FieldPath{fp}
  1057  }
  1058  
  1059  func (fp *ConditionParameterDeclaration_FieldTerminalPath) WithIValue(value interface{}) ConditionParameterDeclaration_FieldPathValue {
  1060  	switch fp.selector {
  1061  	case ConditionParameterDeclaration_FieldPathSelectorKey:
  1062  		return &ConditionParameterDeclaration_FieldTerminalPathValue{ConditionParameterDeclaration_FieldTerminalPath: *fp, value: value.(string)}
  1063  	case ConditionParameterDeclaration_FieldPathSelectorType:
  1064  		return &ConditionParameterDeclaration_FieldTerminalPathValue{ConditionParameterDeclaration_FieldTerminalPath: *fp, value: value.(Condition_ParameterType)}
  1065  	default:
  1066  		panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector))
  1067  	}
  1068  }
  1069  
  1070  func (fp *ConditionParameterDeclaration_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1071  	return fp.WithIValue(value)
  1072  }
  1073  
  1074  func (fp *ConditionParameterDeclaration_FieldTerminalPath) WithIArrayOfValues(values interface{}) ConditionParameterDeclaration_FieldPathArrayOfValues {
  1075  	fpaov := &ConditionParameterDeclaration_FieldTerminalPathArrayOfValues{ConditionParameterDeclaration_FieldTerminalPath: *fp}
  1076  	switch fp.selector {
  1077  	case ConditionParameterDeclaration_FieldPathSelectorKey:
  1078  		return &ConditionParameterDeclaration_FieldTerminalPathArrayOfValues{ConditionParameterDeclaration_FieldTerminalPath: *fp, values: values.([]string)}
  1079  	case ConditionParameterDeclaration_FieldPathSelectorType:
  1080  		return &ConditionParameterDeclaration_FieldTerminalPathArrayOfValues{ConditionParameterDeclaration_FieldTerminalPath: *fp, values: values.([]Condition_ParameterType)}
  1081  	default:
  1082  		panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector))
  1083  	}
  1084  	return fpaov
  1085  }
  1086  
  1087  func (fp *ConditionParameterDeclaration_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1088  	return fp.WithIArrayOfValues(values)
  1089  }
  1090  
  1091  func (fp *ConditionParameterDeclaration_FieldTerminalPath) WithIArrayItemValue(value interface{}) ConditionParameterDeclaration_FieldPathArrayItemValue {
  1092  	switch fp.selector {
  1093  	default:
  1094  		panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector))
  1095  	}
  1096  }
  1097  
  1098  func (fp *ConditionParameterDeclaration_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1099  	return fp.WithIArrayItemValue(value)
  1100  }
  1101  
  1102  // ConditionParameterDeclaration_FieldPathValue allows storing values for ParameterDeclaration fields according to their type
  1103  type ConditionParameterDeclaration_FieldPathValue interface {
  1104  	ConditionParameterDeclaration_FieldPath
  1105  	gotenobject.FieldPathValue
  1106  	SetTo(target **Condition_ParameterDeclaration)
  1107  	CompareWith(*Condition_ParameterDeclaration) (cmp int, comparable bool)
  1108  }
  1109  
  1110  func ParseConditionParameterDeclaration_FieldPathValue(pathStr, valueStr string) (ConditionParameterDeclaration_FieldPathValue, error) {
  1111  	fp, err := ParseConditionParameterDeclaration_FieldPath(pathStr)
  1112  	if err != nil {
  1113  		return nil, err
  1114  	}
  1115  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1116  	if err != nil {
  1117  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ParameterDeclaration field path value from %s: %v", valueStr, err)
  1118  	}
  1119  	return fpv.(ConditionParameterDeclaration_FieldPathValue), nil
  1120  }
  1121  
  1122  func MustParseConditionParameterDeclaration_FieldPathValue(pathStr, valueStr string) ConditionParameterDeclaration_FieldPathValue {
  1123  	fpv, err := ParseConditionParameterDeclaration_FieldPathValue(pathStr, valueStr)
  1124  	if err != nil {
  1125  		panic(err)
  1126  	}
  1127  	return fpv
  1128  }
  1129  
  1130  type ConditionParameterDeclaration_FieldTerminalPathValue struct {
  1131  	ConditionParameterDeclaration_FieldTerminalPath
  1132  	value interface{}
  1133  }
  1134  
  1135  var _ ConditionParameterDeclaration_FieldPathValue = (*ConditionParameterDeclaration_FieldTerminalPathValue)(nil)
  1136  
  1137  // GetRawValue returns raw value stored under selected path for 'ParameterDeclaration' as interface{}
  1138  func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) GetRawValue() interface{} {
  1139  	return fpv.value
  1140  }
  1141  func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) AsKeyValue() (string, bool) {
  1142  	res, ok := fpv.value.(string)
  1143  	return res, ok
  1144  }
  1145  func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) AsTypeValue() (Condition_ParameterType, bool) {
  1146  	res, ok := fpv.value.(Condition_ParameterType)
  1147  	return res, ok
  1148  }
  1149  
  1150  // SetTo stores value for selected field for object ParameterDeclaration
  1151  func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) SetTo(target **Condition_ParameterDeclaration) {
  1152  	if *target == nil {
  1153  		*target = new(Condition_ParameterDeclaration)
  1154  	}
  1155  	switch fpv.selector {
  1156  	case ConditionParameterDeclaration_FieldPathSelectorKey:
  1157  		(*target).Key = fpv.value.(string)
  1158  	case ConditionParameterDeclaration_FieldPathSelectorType:
  1159  		(*target).Type = fpv.value.(Condition_ParameterType)
  1160  	default:
  1161  		panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fpv.selector))
  1162  	}
  1163  }
  1164  
  1165  func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1166  	typedObject := target.(*Condition_ParameterDeclaration)
  1167  	fpv.SetTo(&typedObject)
  1168  }
  1169  
  1170  // CompareWith compares value in the 'ConditionParameterDeclaration_FieldTerminalPathValue' with the value under path in 'Condition_ParameterDeclaration'.
  1171  func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) CompareWith(source *Condition_ParameterDeclaration) (int, bool) {
  1172  	switch fpv.selector {
  1173  	case ConditionParameterDeclaration_FieldPathSelectorKey:
  1174  		leftValue := fpv.value.(string)
  1175  		rightValue := source.GetKey()
  1176  		if (leftValue) == (rightValue) {
  1177  			return 0, true
  1178  		} else if (leftValue) < (rightValue) {
  1179  			return -1, true
  1180  		} else {
  1181  			return 1, true
  1182  		}
  1183  	case ConditionParameterDeclaration_FieldPathSelectorType:
  1184  		leftValue := fpv.value.(Condition_ParameterType)
  1185  		rightValue := source.GetType()
  1186  		if (leftValue) == (rightValue) {
  1187  			return 0, true
  1188  		} else if (leftValue) < (rightValue) {
  1189  			return -1, true
  1190  		} else {
  1191  			return 1, true
  1192  		}
  1193  	default:
  1194  		panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fpv.selector))
  1195  	}
  1196  }
  1197  
  1198  func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1199  	return fpv.CompareWith(source.(*Condition_ParameterDeclaration))
  1200  }
  1201  
  1202  // ConditionParameterDeclaration_FieldPathArrayItemValue allows storing single item in Path-specific values for ParameterDeclaration according to their type
  1203  // Present only for array (repeated) types.
  1204  type ConditionParameterDeclaration_FieldPathArrayItemValue interface {
  1205  	gotenobject.FieldPathArrayItemValue
  1206  	ConditionParameterDeclaration_FieldPath
  1207  	ContainsValue(*Condition_ParameterDeclaration) bool
  1208  }
  1209  
  1210  // ParseConditionParameterDeclaration_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1211  func ParseConditionParameterDeclaration_FieldPathArrayItemValue(pathStr, valueStr string) (ConditionParameterDeclaration_FieldPathArrayItemValue, error) {
  1212  	fp, err := ParseConditionParameterDeclaration_FieldPath(pathStr)
  1213  	if err != nil {
  1214  		return nil, err
  1215  	}
  1216  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1217  	if err != nil {
  1218  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ParameterDeclaration field path array item value from %s: %v", valueStr, err)
  1219  	}
  1220  	return fpaiv.(ConditionParameterDeclaration_FieldPathArrayItemValue), nil
  1221  }
  1222  
  1223  func MustParseConditionParameterDeclaration_FieldPathArrayItemValue(pathStr, valueStr string) ConditionParameterDeclaration_FieldPathArrayItemValue {
  1224  	fpaiv, err := ParseConditionParameterDeclaration_FieldPathArrayItemValue(pathStr, valueStr)
  1225  	if err != nil {
  1226  		panic(err)
  1227  	}
  1228  	return fpaiv
  1229  }
  1230  
  1231  type ConditionParameterDeclaration_FieldTerminalPathArrayItemValue struct {
  1232  	ConditionParameterDeclaration_FieldTerminalPath
  1233  	value interface{}
  1234  }
  1235  
  1236  var _ ConditionParameterDeclaration_FieldPathArrayItemValue = (*ConditionParameterDeclaration_FieldTerminalPathArrayItemValue)(nil)
  1237  
  1238  // GetRawValue returns stored element value for array in object Condition_ParameterDeclaration as interface{}
  1239  func (fpaiv *ConditionParameterDeclaration_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1240  	return fpaiv.value
  1241  }
  1242  
  1243  func (fpaiv *ConditionParameterDeclaration_FieldTerminalPathArrayItemValue) GetSingle(source *Condition_ParameterDeclaration) (interface{}, bool) {
  1244  	return nil, false
  1245  }
  1246  
  1247  func (fpaiv *ConditionParameterDeclaration_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1248  	return fpaiv.GetSingle(source.(*Condition_ParameterDeclaration))
  1249  }
  1250  
  1251  // Contains returns a boolean indicating if value that is being held is present in given 'ParameterDeclaration'
  1252  func (fpaiv *ConditionParameterDeclaration_FieldTerminalPathArrayItemValue) ContainsValue(source *Condition_ParameterDeclaration) bool {
  1253  	slice := fpaiv.ConditionParameterDeclaration_FieldTerminalPath.Get(source)
  1254  	for _, v := range slice {
  1255  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1256  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1257  				return true
  1258  			}
  1259  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1260  			return true
  1261  		}
  1262  	}
  1263  	return false
  1264  }
  1265  
  1266  // ConditionParameterDeclaration_FieldPathArrayOfValues allows storing slice of values for ParameterDeclaration fields according to their type
  1267  type ConditionParameterDeclaration_FieldPathArrayOfValues interface {
  1268  	gotenobject.FieldPathArrayOfValues
  1269  	ConditionParameterDeclaration_FieldPath
  1270  }
  1271  
  1272  func ParseConditionParameterDeclaration_FieldPathArrayOfValues(pathStr, valuesStr string) (ConditionParameterDeclaration_FieldPathArrayOfValues, error) {
  1273  	fp, err := ParseConditionParameterDeclaration_FieldPath(pathStr)
  1274  	if err != nil {
  1275  		return nil, err
  1276  	}
  1277  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1278  	if err != nil {
  1279  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ParameterDeclaration field path array of values from %s: %v", valuesStr, err)
  1280  	}
  1281  	return fpaov.(ConditionParameterDeclaration_FieldPathArrayOfValues), nil
  1282  }
  1283  
  1284  func MustParseConditionParameterDeclaration_FieldPathArrayOfValues(pathStr, valuesStr string) ConditionParameterDeclaration_FieldPathArrayOfValues {
  1285  	fpaov, err := ParseConditionParameterDeclaration_FieldPathArrayOfValues(pathStr, valuesStr)
  1286  	if err != nil {
  1287  		panic(err)
  1288  	}
  1289  	return fpaov
  1290  }
  1291  
  1292  type ConditionParameterDeclaration_FieldTerminalPathArrayOfValues struct {
  1293  	ConditionParameterDeclaration_FieldTerminalPath
  1294  	values interface{}
  1295  }
  1296  
  1297  var _ ConditionParameterDeclaration_FieldPathArrayOfValues = (*ConditionParameterDeclaration_FieldTerminalPathArrayOfValues)(nil)
  1298  
  1299  func (fpaov *ConditionParameterDeclaration_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1300  	switch fpaov.selector {
  1301  	case ConditionParameterDeclaration_FieldPathSelectorKey:
  1302  		for _, v := range fpaov.values.([]string) {
  1303  			values = append(values, v)
  1304  		}
  1305  	case ConditionParameterDeclaration_FieldPathSelectorType:
  1306  		for _, v := range fpaov.values.([]Condition_ParameterType) {
  1307  			values = append(values, v)
  1308  		}
  1309  	}
  1310  	return
  1311  }
  1312  func (fpaov *ConditionParameterDeclaration_FieldTerminalPathArrayOfValues) AsKeyArrayOfValues() ([]string, bool) {
  1313  	res, ok := fpaov.values.([]string)
  1314  	return res, ok
  1315  }
  1316  func (fpaov *ConditionParameterDeclaration_FieldTerminalPathArrayOfValues) AsTypeArrayOfValues() ([]Condition_ParameterType, bool) {
  1317  	res, ok := fpaov.values.([]Condition_ParameterType)
  1318  	return res, ok
  1319  }
  1320  
  1321  // FieldPath provides implementation to handle
  1322  // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
  1323  type ConditionBinding_FieldPath interface {
  1324  	gotenobject.FieldPath
  1325  	Selector() ConditionBinding_FieldPathSelector
  1326  	Get(source *ConditionBinding) []interface{}
  1327  	GetSingle(source *ConditionBinding) (interface{}, bool)
  1328  	ClearValue(item *ConditionBinding)
  1329  
  1330  	// Those methods build corresponding ConditionBinding_FieldPathValue
  1331  	// (or array of values) and holds passed value. Panics if injected type is incorrect.
  1332  	WithIValue(value interface{}) ConditionBinding_FieldPathValue
  1333  	WithIArrayOfValues(values interface{}) ConditionBinding_FieldPathArrayOfValues
  1334  	WithIArrayItemValue(value interface{}) ConditionBinding_FieldPathArrayItemValue
  1335  }
  1336  
  1337  type ConditionBinding_FieldPathSelector int32
  1338  
  1339  const (
  1340  	ConditionBinding_FieldPathSelectorCondition  ConditionBinding_FieldPathSelector = 0
  1341  	ConditionBinding_FieldPathSelectorParameters ConditionBinding_FieldPathSelector = 1
  1342  	ConditionBinding_FieldPathSelectorParams     ConditionBinding_FieldPathSelector = 2
  1343  )
  1344  
  1345  func (s ConditionBinding_FieldPathSelector) String() string {
  1346  	switch s {
  1347  	case ConditionBinding_FieldPathSelectorCondition:
  1348  		return "condition"
  1349  	case ConditionBinding_FieldPathSelectorParameters:
  1350  		return "parameters"
  1351  	case ConditionBinding_FieldPathSelectorParams:
  1352  		return "params"
  1353  	default:
  1354  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", s))
  1355  	}
  1356  }
  1357  
  1358  func BuildConditionBinding_FieldPath(fp gotenobject.RawFieldPath) (ConditionBinding_FieldPath, error) {
  1359  	if len(fp) == 0 {
  1360  		return nil, status.Error(codes.InvalidArgument, "empty field path for object ConditionBinding")
  1361  	}
  1362  	if len(fp) == 1 {
  1363  		switch fp[0] {
  1364  		case "condition":
  1365  			return &ConditionBinding_FieldTerminalPath{selector: ConditionBinding_FieldPathSelectorCondition}, nil
  1366  		case "parameters":
  1367  			return &ConditionBinding_FieldTerminalPath{selector: ConditionBinding_FieldPathSelectorParameters}, nil
  1368  		case "params":
  1369  			return &ConditionBinding_FieldTerminalPath{selector: ConditionBinding_FieldPathSelectorParams}, nil
  1370  		}
  1371  	} else {
  1372  		switch fp[0] {
  1373  		case "parameters":
  1374  			if len(fp) > 2 {
  1375  				return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object ConditionBinding)", fp)
  1376  			}
  1377  			return &ConditionBinding_FieldPathMap{selector: ConditionBinding_FieldPathSelectorParameters, key: fp[1]}, nil
  1378  		}
  1379  	}
  1380  	return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ConditionBinding", fp)
  1381  }
  1382  
  1383  func ParseConditionBinding_FieldPath(rawField string) (ConditionBinding_FieldPath, error) {
  1384  	fp, err := gotenobject.ParseRawFieldPath(rawField)
  1385  	if err != nil {
  1386  		return nil, err
  1387  	}
  1388  	return BuildConditionBinding_FieldPath(fp)
  1389  }
  1390  
  1391  func MustParseConditionBinding_FieldPath(rawField string) ConditionBinding_FieldPath {
  1392  	fp, err := ParseConditionBinding_FieldPath(rawField)
  1393  	if err != nil {
  1394  		panic(err)
  1395  	}
  1396  	return fp
  1397  }
  1398  
  1399  type ConditionBinding_FieldTerminalPath struct {
  1400  	selector ConditionBinding_FieldPathSelector
  1401  }
  1402  
  1403  var _ ConditionBinding_FieldPath = (*ConditionBinding_FieldTerminalPath)(nil)
  1404  
  1405  func (fp *ConditionBinding_FieldTerminalPath) Selector() ConditionBinding_FieldPathSelector {
  1406  	return fp.selector
  1407  }
  1408  
  1409  // String returns path representation in proto convention
  1410  func (fp *ConditionBinding_FieldTerminalPath) String() string {
  1411  	return fp.selector.String()
  1412  }
  1413  
  1414  // JSONString returns path representation is JSON convention
  1415  func (fp *ConditionBinding_FieldTerminalPath) JSONString() string {
  1416  	return strcase.ToLowerCamel(fp.String())
  1417  }
  1418  
  1419  // Get returns all values pointed by specific field from source ConditionBinding
  1420  func (fp *ConditionBinding_FieldTerminalPath) Get(source *ConditionBinding) (values []interface{}) {
  1421  	if source != nil {
  1422  		switch fp.selector {
  1423  		case ConditionBinding_FieldPathSelectorCondition:
  1424  			if source.Condition != nil {
  1425  				values = append(values, source.Condition)
  1426  			}
  1427  		case ConditionBinding_FieldPathSelectorParameters:
  1428  			values = append(values, source.Parameters)
  1429  		case ConditionBinding_FieldPathSelectorParams:
  1430  			if source.Params != nil {
  1431  				values = append(values, source.Params)
  1432  			}
  1433  		default:
  1434  			panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector))
  1435  		}
  1436  	}
  1437  	return
  1438  }
  1439  
  1440  func (fp *ConditionBinding_FieldTerminalPath) GetRaw(source proto.Message) []interface{} {
  1441  	return fp.Get(source.(*ConditionBinding))
  1442  }
  1443  
  1444  // GetSingle returns value pointed by specific field of from source ConditionBinding
  1445  func (fp *ConditionBinding_FieldTerminalPath) GetSingle(source *ConditionBinding) (interface{}, bool) {
  1446  	switch fp.selector {
  1447  	case ConditionBinding_FieldPathSelectorCondition:
  1448  		res := source.GetCondition()
  1449  		return res, res != nil
  1450  	case ConditionBinding_FieldPathSelectorParameters:
  1451  		res := source.GetParameters()
  1452  		return res, res != nil
  1453  	case ConditionBinding_FieldPathSelectorParams:
  1454  		res := source.GetParams()
  1455  		return res, res != nil
  1456  	default:
  1457  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector))
  1458  	}
  1459  }
  1460  
  1461  func (fp *ConditionBinding_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1462  	return fp.GetSingle(source.(*ConditionBinding))
  1463  }
  1464  
  1465  // GetDefault returns a default value of the field type
  1466  func (fp *ConditionBinding_FieldTerminalPath) GetDefault() interface{} {
  1467  	switch fp.selector {
  1468  	case ConditionBinding_FieldPathSelectorCondition:
  1469  		return (*Reference)(nil)
  1470  	case ConditionBinding_FieldPathSelectorParameters:
  1471  		return (map[string]string)(nil)
  1472  	case ConditionBinding_FieldPathSelectorParams:
  1473  		return (*structpb.Struct)(nil)
  1474  	default:
  1475  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector))
  1476  	}
  1477  }
  1478  
  1479  func (fp *ConditionBinding_FieldTerminalPath) ClearValue(item *ConditionBinding) {
  1480  	if item != nil {
  1481  		switch fp.selector {
  1482  		case ConditionBinding_FieldPathSelectorCondition:
  1483  			item.Condition = nil
  1484  		case ConditionBinding_FieldPathSelectorParameters:
  1485  			item.Parameters = nil
  1486  		case ConditionBinding_FieldPathSelectorParams:
  1487  			item.Params = nil
  1488  		default:
  1489  			panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector))
  1490  		}
  1491  	}
  1492  }
  1493  
  1494  func (fp *ConditionBinding_FieldTerminalPath) ClearValueRaw(item proto.Message) {
  1495  	fp.ClearValue(item.(*ConditionBinding))
  1496  }
  1497  
  1498  // IsLeaf - whether field path is holds simple value
  1499  func (fp *ConditionBinding_FieldTerminalPath) IsLeaf() bool {
  1500  	return fp.selector == ConditionBinding_FieldPathSelectorCondition ||
  1501  		fp.selector == ConditionBinding_FieldPathSelectorParameters ||
  1502  		fp.selector == ConditionBinding_FieldPathSelectorParams
  1503  }
  1504  
  1505  func (fp *ConditionBinding_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1506  	return []gotenobject.FieldPath{fp}
  1507  }
  1508  
  1509  func (fp *ConditionBinding_FieldTerminalPath) WithIValue(value interface{}) ConditionBinding_FieldPathValue {
  1510  	switch fp.selector {
  1511  	case ConditionBinding_FieldPathSelectorCondition:
  1512  		return &ConditionBinding_FieldTerminalPathValue{ConditionBinding_FieldTerminalPath: *fp, value: value.(*Reference)}
  1513  	case ConditionBinding_FieldPathSelectorParameters:
  1514  		return &ConditionBinding_FieldTerminalPathValue{ConditionBinding_FieldTerminalPath: *fp, value: value.(map[string]string)}
  1515  	case ConditionBinding_FieldPathSelectorParams:
  1516  		return &ConditionBinding_FieldTerminalPathValue{ConditionBinding_FieldTerminalPath: *fp, value: value.(*structpb.Struct)}
  1517  	default:
  1518  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector))
  1519  	}
  1520  }
  1521  
  1522  func (fp *ConditionBinding_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1523  	return fp.WithIValue(value)
  1524  }
  1525  
  1526  func (fp *ConditionBinding_FieldTerminalPath) WithIArrayOfValues(values interface{}) ConditionBinding_FieldPathArrayOfValues {
  1527  	fpaov := &ConditionBinding_FieldTerminalPathArrayOfValues{ConditionBinding_FieldTerminalPath: *fp}
  1528  	switch fp.selector {
  1529  	case ConditionBinding_FieldPathSelectorCondition:
  1530  		return &ConditionBinding_FieldTerminalPathArrayOfValues{ConditionBinding_FieldTerminalPath: *fp, values: values.([]*Reference)}
  1531  	case ConditionBinding_FieldPathSelectorParameters:
  1532  		return &ConditionBinding_FieldTerminalPathArrayOfValues{ConditionBinding_FieldTerminalPath: *fp, values: values.([]map[string]string)}
  1533  	case ConditionBinding_FieldPathSelectorParams:
  1534  		return &ConditionBinding_FieldTerminalPathArrayOfValues{ConditionBinding_FieldTerminalPath: *fp, values: values.([]*structpb.Struct)}
  1535  	default:
  1536  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector))
  1537  	}
  1538  	return fpaov
  1539  }
  1540  
  1541  func (fp *ConditionBinding_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1542  	return fp.WithIArrayOfValues(values)
  1543  }
  1544  
  1545  func (fp *ConditionBinding_FieldTerminalPath) WithIArrayItemValue(value interface{}) ConditionBinding_FieldPathArrayItemValue {
  1546  	switch fp.selector {
  1547  	default:
  1548  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector))
  1549  	}
  1550  }
  1551  
  1552  func (fp *ConditionBinding_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1553  	return fp.WithIArrayItemValue(value)
  1554  }
  1555  
  1556  // FieldPath for map type with additional Key information
  1557  type ConditionBinding_FieldPathMap struct {
  1558  	key      string
  1559  	selector ConditionBinding_FieldPathSelector
  1560  }
  1561  
  1562  var _ ConditionBinding_FieldPath = (*ConditionBinding_FieldPathMap)(nil)
  1563  
  1564  func (fpm *ConditionBinding_FieldPathMap) Selector() ConditionBinding_FieldPathSelector {
  1565  	return fpm.selector
  1566  }
  1567  
  1568  func (fpm *ConditionBinding_FieldPathMap) Key() string {
  1569  	return fpm.key
  1570  }
  1571  
  1572  // String returns path representation in proto convention
  1573  func (fpm *ConditionBinding_FieldPathMap) String() string {
  1574  	return fpm.selector.String() + "." + fpm.key
  1575  }
  1576  
  1577  // JSONString returns path representation is JSON convention. Note that map keys are not transformed
  1578  func (fpm *ConditionBinding_FieldPathMap) JSONString() string {
  1579  	return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key
  1580  }
  1581  
  1582  // Get returns all values pointed by selected field map key from source ConditionBinding
  1583  func (fpm *ConditionBinding_FieldPathMap) Get(source *ConditionBinding) (values []interface{}) {
  1584  	switch fpm.selector {
  1585  	case ConditionBinding_FieldPathSelectorParameters:
  1586  		if value, ok := source.GetParameters()[fpm.key]; ok {
  1587  			values = append(values, value)
  1588  		}
  1589  	default:
  1590  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector))
  1591  	}
  1592  	return
  1593  }
  1594  
  1595  func (fpm *ConditionBinding_FieldPathMap) GetRaw(source proto.Message) []interface{} {
  1596  	return fpm.Get(source.(*ConditionBinding))
  1597  }
  1598  
  1599  // GetSingle returns value by selected field map key from source ConditionBinding
  1600  func (fpm *ConditionBinding_FieldPathMap) GetSingle(source *ConditionBinding) (interface{}, bool) {
  1601  	switch fpm.selector {
  1602  	case ConditionBinding_FieldPathSelectorParameters:
  1603  		res, ok := source.GetParameters()[fpm.key]
  1604  		return res, ok
  1605  	default:
  1606  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector))
  1607  	}
  1608  }
  1609  
  1610  func (fpm *ConditionBinding_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1611  	return fpm.GetSingle(source.(*ConditionBinding))
  1612  }
  1613  
  1614  // GetDefault returns a default value of the field type
  1615  func (fpm *ConditionBinding_FieldPathMap) GetDefault() interface{} {
  1616  	switch fpm.selector {
  1617  	case ConditionBinding_FieldPathSelectorParameters:
  1618  		var v string
  1619  		return v
  1620  	default:
  1621  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector))
  1622  	}
  1623  }
  1624  
  1625  func (fpm *ConditionBinding_FieldPathMap) ClearValue(item *ConditionBinding) {
  1626  	if item != nil {
  1627  		switch fpm.selector {
  1628  		case ConditionBinding_FieldPathSelectorParameters:
  1629  			delete(item.Parameters, fpm.key)
  1630  		default:
  1631  			panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector))
  1632  		}
  1633  	}
  1634  }
  1635  
  1636  func (fpm *ConditionBinding_FieldPathMap) ClearValueRaw(item proto.Message) {
  1637  	fpm.ClearValue(item.(*ConditionBinding))
  1638  }
  1639  
  1640  // IsLeaf - whether field path is holds simple value
  1641  func (fpm *ConditionBinding_FieldPathMap) IsLeaf() bool {
  1642  	switch fpm.selector {
  1643  	case ConditionBinding_FieldPathSelectorParameters:
  1644  		return true
  1645  	default:
  1646  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector))
  1647  	}
  1648  }
  1649  
  1650  func (fpm *ConditionBinding_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath {
  1651  	return []gotenobject.FieldPath{fpm}
  1652  }
  1653  
  1654  func (fpm *ConditionBinding_FieldPathMap) WithIValue(value interface{}) ConditionBinding_FieldPathValue {
  1655  	switch fpm.selector {
  1656  	case ConditionBinding_FieldPathSelectorParameters:
  1657  		return &ConditionBinding_FieldPathMapValue{ConditionBinding_FieldPathMap: *fpm, value: value.(string)}
  1658  	default:
  1659  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector))
  1660  	}
  1661  }
  1662  
  1663  func (fpm *ConditionBinding_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue {
  1664  	return fpm.WithIValue(value)
  1665  }
  1666  
  1667  func (fpm *ConditionBinding_FieldPathMap) WithIArrayOfValues(values interface{}) ConditionBinding_FieldPathArrayOfValues {
  1668  	switch fpm.selector {
  1669  	case ConditionBinding_FieldPathSelectorParameters:
  1670  		return &ConditionBinding_FieldPathMapArrayOfValues{ConditionBinding_FieldPathMap: *fpm, values: values.([]string)}
  1671  	default:
  1672  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector))
  1673  	}
  1674  }
  1675  
  1676  func (fpm *ConditionBinding_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues {
  1677  	return fpm.WithIArrayOfValues(values)
  1678  }
  1679  
  1680  func (fpm *ConditionBinding_FieldPathMap) WithIArrayItemValue(value interface{}) ConditionBinding_FieldPathArrayItemValue {
  1681  	panic("Cannot create array item value from map fieldpath")
  1682  }
  1683  
  1684  func (fpm *ConditionBinding_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue {
  1685  	return fpm.WithIArrayItemValue(value)
  1686  }
  1687  
  1688  // ConditionBinding_FieldPathValue allows storing values for ConditionBinding fields according to their type
  1689  type ConditionBinding_FieldPathValue interface {
  1690  	ConditionBinding_FieldPath
  1691  	gotenobject.FieldPathValue
  1692  	SetTo(target **ConditionBinding)
  1693  	CompareWith(*ConditionBinding) (cmp int, comparable bool)
  1694  }
  1695  
  1696  func ParseConditionBinding_FieldPathValue(pathStr, valueStr string) (ConditionBinding_FieldPathValue, error) {
  1697  	fp, err := ParseConditionBinding_FieldPath(pathStr)
  1698  	if err != nil {
  1699  		return nil, err
  1700  	}
  1701  	fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr)
  1702  	if err != nil {
  1703  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ConditionBinding field path value from %s: %v", valueStr, err)
  1704  	}
  1705  	return fpv.(ConditionBinding_FieldPathValue), nil
  1706  }
  1707  
  1708  func MustParseConditionBinding_FieldPathValue(pathStr, valueStr string) ConditionBinding_FieldPathValue {
  1709  	fpv, err := ParseConditionBinding_FieldPathValue(pathStr, valueStr)
  1710  	if err != nil {
  1711  		panic(err)
  1712  	}
  1713  	return fpv
  1714  }
  1715  
  1716  type ConditionBinding_FieldTerminalPathValue struct {
  1717  	ConditionBinding_FieldTerminalPath
  1718  	value interface{}
  1719  }
  1720  
  1721  var _ ConditionBinding_FieldPathValue = (*ConditionBinding_FieldTerminalPathValue)(nil)
  1722  
  1723  // GetRawValue returns raw value stored under selected path for 'ConditionBinding' as interface{}
  1724  func (fpv *ConditionBinding_FieldTerminalPathValue) GetRawValue() interface{} {
  1725  	return fpv.value
  1726  }
  1727  func (fpv *ConditionBinding_FieldTerminalPathValue) AsConditionValue() (*Reference, bool) {
  1728  	res, ok := fpv.value.(*Reference)
  1729  	return res, ok
  1730  }
  1731  func (fpv *ConditionBinding_FieldTerminalPathValue) AsParametersValue() (map[string]string, bool) {
  1732  	res, ok := fpv.value.(map[string]string)
  1733  	return res, ok
  1734  }
  1735  func (fpv *ConditionBinding_FieldTerminalPathValue) AsParamsValue() (*structpb.Struct, bool) {
  1736  	res, ok := fpv.value.(*structpb.Struct)
  1737  	return res, ok
  1738  }
  1739  
  1740  // SetTo stores value for selected field for object ConditionBinding
  1741  func (fpv *ConditionBinding_FieldTerminalPathValue) SetTo(target **ConditionBinding) {
  1742  	if *target == nil {
  1743  		*target = new(ConditionBinding)
  1744  	}
  1745  	switch fpv.selector {
  1746  	case ConditionBinding_FieldPathSelectorCondition:
  1747  		(*target).Condition = fpv.value.(*Reference)
  1748  	case ConditionBinding_FieldPathSelectorParameters:
  1749  		(*target).Parameters = fpv.value.(map[string]string)
  1750  	case ConditionBinding_FieldPathSelectorParams:
  1751  		(*target).Params = fpv.value.(*structpb.Struct)
  1752  	default:
  1753  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpv.selector))
  1754  	}
  1755  }
  1756  
  1757  func (fpv *ConditionBinding_FieldTerminalPathValue) SetToRaw(target proto.Message) {
  1758  	typedObject := target.(*ConditionBinding)
  1759  	fpv.SetTo(&typedObject)
  1760  }
  1761  
  1762  // CompareWith compares value in the 'ConditionBinding_FieldTerminalPathValue' with the value under path in 'ConditionBinding'.
  1763  func (fpv *ConditionBinding_FieldTerminalPathValue) CompareWith(source *ConditionBinding) (int, bool) {
  1764  	switch fpv.selector {
  1765  	case ConditionBinding_FieldPathSelectorCondition:
  1766  		leftValue := fpv.value.(*Reference)
  1767  		rightValue := source.GetCondition()
  1768  		if leftValue == nil {
  1769  			if rightValue != nil {
  1770  				return -1, true
  1771  			}
  1772  			return 0, true
  1773  		}
  1774  		if rightValue == nil {
  1775  			return 1, true
  1776  		}
  1777  		if leftValue.String() == rightValue.String() {
  1778  			return 0, true
  1779  		} else if leftValue.String() < rightValue.String() {
  1780  			return -1, true
  1781  		} else {
  1782  			return 1, true
  1783  		}
  1784  	case ConditionBinding_FieldPathSelectorParameters:
  1785  		return 0, false
  1786  	case ConditionBinding_FieldPathSelectorParams:
  1787  		return 0, false
  1788  	default:
  1789  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpv.selector))
  1790  	}
  1791  }
  1792  
  1793  func (fpv *ConditionBinding_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) {
  1794  	return fpv.CompareWith(source.(*ConditionBinding))
  1795  }
  1796  
  1797  type ConditionBinding_FieldPathMapValue struct {
  1798  	ConditionBinding_FieldPathMap
  1799  	value interface{}
  1800  }
  1801  
  1802  var _ ConditionBinding_FieldPathValue = (*ConditionBinding_FieldPathMapValue)(nil)
  1803  
  1804  // GetValue returns value stored under selected field in ConditionBinding as interface{}
  1805  func (fpmv *ConditionBinding_FieldPathMapValue) GetRawValue() interface{} {
  1806  	return fpmv.value
  1807  }
  1808  func (fpmv *ConditionBinding_FieldPathMapValue) AsParametersElementValue() (string, bool) {
  1809  	res, ok := fpmv.value.(string)
  1810  	return res, ok
  1811  }
  1812  
  1813  // SetTo stores value for selected field in ConditionBinding
  1814  func (fpmv *ConditionBinding_FieldPathMapValue) SetTo(target **ConditionBinding) {
  1815  	if *target == nil {
  1816  		*target = new(ConditionBinding)
  1817  	}
  1818  	switch fpmv.selector {
  1819  	case ConditionBinding_FieldPathSelectorParameters:
  1820  		if (*target).Parameters == nil {
  1821  			(*target).Parameters = make(map[string]string)
  1822  		}
  1823  		(*target).Parameters[fpmv.key] = fpmv.value.(string)
  1824  	default:
  1825  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpmv.selector))
  1826  	}
  1827  }
  1828  
  1829  func (fpmv *ConditionBinding_FieldPathMapValue) SetToRaw(target proto.Message) {
  1830  	typedObject := target.(*ConditionBinding)
  1831  	fpmv.SetTo(&typedObject)
  1832  }
  1833  
  1834  // CompareWith compares value in the 'ConditionBinding_FieldPathMapValue' with the value under path in 'ConditionBinding'.
  1835  func (fpmv *ConditionBinding_FieldPathMapValue) CompareWith(source *ConditionBinding) (int, bool) {
  1836  	switch fpmv.selector {
  1837  	case ConditionBinding_FieldPathSelectorParameters:
  1838  		leftValue := fpmv.value.(string)
  1839  		rightValue := source.GetParameters()[fpmv.key]
  1840  		if (leftValue) == (rightValue) {
  1841  			return 0, true
  1842  		} else if (leftValue) < (rightValue) {
  1843  			return -1, true
  1844  		} else {
  1845  			return 1, true
  1846  		}
  1847  	default:
  1848  		panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpmv.selector))
  1849  	}
  1850  }
  1851  
  1852  func (fpmv *ConditionBinding_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) {
  1853  	return fpmv.CompareWith(source.(*ConditionBinding))
  1854  }
  1855  
  1856  // ConditionBinding_FieldPathArrayItemValue allows storing single item in Path-specific values for ConditionBinding according to their type
  1857  // Present only for array (repeated) types.
  1858  type ConditionBinding_FieldPathArrayItemValue interface {
  1859  	gotenobject.FieldPathArrayItemValue
  1860  	ConditionBinding_FieldPath
  1861  	ContainsValue(*ConditionBinding) bool
  1862  }
  1863  
  1864  // ParseConditionBinding_FieldPathArrayItemValue parses string and JSON-encoded value to its Value
  1865  func ParseConditionBinding_FieldPathArrayItemValue(pathStr, valueStr string) (ConditionBinding_FieldPathArrayItemValue, error) {
  1866  	fp, err := ParseConditionBinding_FieldPath(pathStr)
  1867  	if err != nil {
  1868  		return nil, err
  1869  	}
  1870  	fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr)
  1871  	if err != nil {
  1872  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ConditionBinding field path array item value from %s: %v", valueStr, err)
  1873  	}
  1874  	return fpaiv.(ConditionBinding_FieldPathArrayItemValue), nil
  1875  }
  1876  
  1877  func MustParseConditionBinding_FieldPathArrayItemValue(pathStr, valueStr string) ConditionBinding_FieldPathArrayItemValue {
  1878  	fpaiv, err := ParseConditionBinding_FieldPathArrayItemValue(pathStr, valueStr)
  1879  	if err != nil {
  1880  		panic(err)
  1881  	}
  1882  	return fpaiv
  1883  }
  1884  
  1885  type ConditionBinding_FieldTerminalPathArrayItemValue struct {
  1886  	ConditionBinding_FieldTerminalPath
  1887  	value interface{}
  1888  }
  1889  
  1890  var _ ConditionBinding_FieldPathArrayItemValue = (*ConditionBinding_FieldTerminalPathArrayItemValue)(nil)
  1891  
  1892  // GetRawValue returns stored element value for array in object ConditionBinding as interface{}
  1893  func (fpaiv *ConditionBinding_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} {
  1894  	return fpaiv.value
  1895  }
  1896  
  1897  func (fpaiv *ConditionBinding_FieldTerminalPathArrayItemValue) GetSingle(source *ConditionBinding) (interface{}, bool) {
  1898  	return nil, false
  1899  }
  1900  
  1901  func (fpaiv *ConditionBinding_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) {
  1902  	return fpaiv.GetSingle(source.(*ConditionBinding))
  1903  }
  1904  
  1905  // Contains returns a boolean indicating if value that is being held is present in given 'ConditionBinding'
  1906  func (fpaiv *ConditionBinding_FieldTerminalPathArrayItemValue) ContainsValue(source *ConditionBinding) bool {
  1907  	slice := fpaiv.ConditionBinding_FieldTerminalPath.Get(source)
  1908  	for _, v := range slice {
  1909  		if asProtoMsg, ok := fpaiv.value.(proto.Message); ok {
  1910  			if proto.Equal(asProtoMsg, v.(proto.Message)) {
  1911  				return true
  1912  			}
  1913  		} else if reflect.DeepEqual(v, fpaiv.value) {
  1914  			return true
  1915  		}
  1916  	}
  1917  	return false
  1918  }
  1919  
  1920  // ConditionBinding_FieldPathArrayOfValues allows storing slice of values for ConditionBinding fields according to their type
  1921  type ConditionBinding_FieldPathArrayOfValues interface {
  1922  	gotenobject.FieldPathArrayOfValues
  1923  	ConditionBinding_FieldPath
  1924  }
  1925  
  1926  func ParseConditionBinding_FieldPathArrayOfValues(pathStr, valuesStr string) (ConditionBinding_FieldPathArrayOfValues, error) {
  1927  	fp, err := ParseConditionBinding_FieldPath(pathStr)
  1928  	if err != nil {
  1929  		return nil, err
  1930  	}
  1931  	fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr)
  1932  	if err != nil {
  1933  		return nil, status.Errorf(codes.InvalidArgument, "error parsing ConditionBinding field path array of values from %s: %v", valuesStr, err)
  1934  	}
  1935  	return fpaov.(ConditionBinding_FieldPathArrayOfValues), nil
  1936  }
  1937  
  1938  func MustParseConditionBinding_FieldPathArrayOfValues(pathStr, valuesStr string) ConditionBinding_FieldPathArrayOfValues {
  1939  	fpaov, err := ParseConditionBinding_FieldPathArrayOfValues(pathStr, valuesStr)
  1940  	if err != nil {
  1941  		panic(err)
  1942  	}
  1943  	return fpaov
  1944  }
  1945  
  1946  type ConditionBinding_FieldTerminalPathArrayOfValues struct {
  1947  	ConditionBinding_FieldTerminalPath
  1948  	values interface{}
  1949  }
  1950  
  1951  var _ ConditionBinding_FieldPathArrayOfValues = (*ConditionBinding_FieldTerminalPathArrayOfValues)(nil)
  1952  
  1953  func (fpaov *ConditionBinding_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) {
  1954  	switch fpaov.selector {
  1955  	case ConditionBinding_FieldPathSelectorCondition:
  1956  		for _, v := range fpaov.values.([]*Reference) {
  1957  			values = append(values, v)
  1958  		}
  1959  	case ConditionBinding_FieldPathSelectorParameters:
  1960  		for _, v := range fpaov.values.([]map[string]string) {
  1961  			values = append(values, v)
  1962  		}
  1963  	case ConditionBinding_FieldPathSelectorParams:
  1964  		for _, v := range fpaov.values.([]*structpb.Struct) {
  1965  			values = append(values, v)
  1966  		}
  1967  	}
  1968  	return
  1969  }
  1970  func (fpaov *ConditionBinding_FieldTerminalPathArrayOfValues) AsConditionArrayOfValues() ([]*Reference, bool) {
  1971  	res, ok := fpaov.values.([]*Reference)
  1972  	return res, ok
  1973  }
  1974  func (fpaov *ConditionBinding_FieldTerminalPathArrayOfValues) AsParametersArrayOfValues() ([]map[string]string, bool) {
  1975  	res, ok := fpaov.values.([]map[string]string)
  1976  	return res, ok
  1977  }
  1978  func (fpaov *ConditionBinding_FieldTerminalPathArrayOfValues) AsParamsArrayOfValues() ([]*structpb.Struct, bool) {
  1979  	res, ok := fpaov.values.([]*structpb.Struct)
  1980  	return res, ok
  1981  }
  1982  
  1983  type ConditionBinding_FieldPathMapArrayOfValues struct {
  1984  	ConditionBinding_FieldPathMap
  1985  	values interface{}
  1986  }
  1987  
  1988  var _ ConditionBinding_FieldPathArrayOfValues = (*ConditionBinding_FieldPathMapArrayOfValues)(nil)
  1989  
  1990  func (fpmaov *ConditionBinding_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) {
  1991  	switch fpmaov.selector {
  1992  	case ConditionBinding_FieldPathSelectorParameters:
  1993  		for _, v := range fpmaov.values.([]string) {
  1994  			values = append(values, v)
  1995  		}
  1996  	}
  1997  	return
  1998  }
  1999  func (fpmaov *ConditionBinding_FieldPathMapArrayOfValues) AsParametersArrayOfElementValues() ([]string, bool) {
  2000  	res, ok := fpmaov.values.([]string)
  2001  	return res, ok
  2002  }