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

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