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 }