github.com/cloudwan/edgelq-sdk@v1.15.4/limits/resources/v1alpha2/limit/limit.pb.fieldpath.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/limits/proto/v1alpha2/limit.proto 3 // DO NOT EDIT!!! 4 5 package limit 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 iam_project "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/project" 27 limit_pool "github.com/cloudwan/edgelq-sdk/limits/resources/v1alpha2/limit_pool" 28 meta_resource "github.com/cloudwan/edgelq-sdk/meta/resources/v1alpha2/resource" 29 meta_service "github.com/cloudwan/edgelq-sdk/meta/resources/v1alpha2/service" 30 meta "github.com/cloudwan/goten-sdk/types/meta" 31 ) 32 33 // ensure the imports are used 34 var ( 35 _ = new(json.Marshaler) 36 _ = new(fmt.Stringer) 37 _ = reflect.DeepEqual 38 _ = strings.Builder{} 39 _ = time.Second 40 41 _ = strcase.ToLowerCamel 42 _ = codes.NotFound 43 _ = status.Status{} 44 _ = protojson.UnmarshalOptions{} 45 _ = new(proto.Message) 46 _ = protoregistry.GlobalTypes 47 48 _ = new(gotenobject.FieldPath) 49 ) 50 51 // make sure we're using proto imports 52 var ( 53 _ = &iam_project.Project{} 54 _ = &limit_pool.LimitPool{} 55 _ = &meta_resource.Resource{} 56 _ = &meta_service.Service{} 57 _ = &meta.Meta{} 58 ) 59 60 // FieldPath provides implementation to handle 61 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 62 type Limit_FieldPath interface { 63 gotenobject.FieldPath 64 Selector() Limit_FieldPathSelector 65 Get(source *Limit) []interface{} 66 GetSingle(source *Limit) (interface{}, bool) 67 ClearValue(item *Limit) 68 69 // Those methods build corresponding Limit_FieldPathValue 70 // (or array of values) and holds passed value. Panics if injected type is incorrect. 71 WithIValue(value interface{}) Limit_FieldPathValue 72 WithIArrayOfValues(values interface{}) Limit_FieldPathArrayOfValues 73 WithIArrayItemValue(value interface{}) Limit_FieldPathArrayItemValue 74 } 75 76 type Limit_FieldPathSelector int32 77 78 const ( 79 Limit_FieldPathSelectorName Limit_FieldPathSelector = 0 80 Limit_FieldPathSelectorService Limit_FieldPathSelector = 1 81 Limit_FieldPathSelectorResource Limit_FieldPathSelector = 2 82 Limit_FieldPathSelectorRegion Limit_FieldPathSelector = 3 83 Limit_FieldPathSelectorConfiguredLimit Limit_FieldPathSelector = 4 84 Limit_FieldPathSelectorActiveLimit Limit_FieldPathSelector = 5 85 Limit_FieldPathSelectorUsage Limit_FieldPathSelector = 6 86 Limit_FieldPathSelectorSource Limit_FieldPathSelector = 7 87 Limit_FieldPathSelectorMetadata Limit_FieldPathSelector = 8 88 ) 89 90 func (s Limit_FieldPathSelector) String() string { 91 switch s { 92 case Limit_FieldPathSelectorName: 93 return "name" 94 case Limit_FieldPathSelectorService: 95 return "service" 96 case Limit_FieldPathSelectorResource: 97 return "resource" 98 case Limit_FieldPathSelectorRegion: 99 return "region" 100 case Limit_FieldPathSelectorConfiguredLimit: 101 return "configured_limit" 102 case Limit_FieldPathSelectorActiveLimit: 103 return "active_limit" 104 case Limit_FieldPathSelectorUsage: 105 return "usage" 106 case Limit_FieldPathSelectorSource: 107 return "source" 108 case Limit_FieldPathSelectorMetadata: 109 return "metadata" 110 default: 111 panic(fmt.Sprintf("Invalid selector for Limit: %d", s)) 112 } 113 } 114 115 func BuildLimit_FieldPath(fp gotenobject.RawFieldPath) (Limit_FieldPath, error) { 116 if len(fp) == 0 { 117 return nil, status.Error(codes.InvalidArgument, "empty field path for object Limit") 118 } 119 if len(fp) == 1 { 120 switch fp[0] { 121 case "name": 122 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorName}, nil 123 case "service": 124 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorService}, nil 125 case "resource": 126 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorResource}, nil 127 case "region": 128 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorRegion}, nil 129 case "configured_limit", "configuredLimit", "configured-limit": 130 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorConfiguredLimit}, nil 131 case "active_limit", "activeLimit", "active-limit": 132 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorActiveLimit}, nil 133 case "usage": 134 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorUsage}, nil 135 case "source": 136 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorSource}, nil 137 case "metadata": 138 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorMetadata}, nil 139 } 140 } else { 141 switch fp[0] { 142 case "metadata": 143 if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil { 144 return nil, err 145 } else { 146 return &Limit_FieldSubPath{selector: Limit_FieldPathSelectorMetadata, subPath: subpath}, nil 147 } 148 } 149 } 150 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Limit", fp) 151 } 152 153 func ParseLimit_FieldPath(rawField string) (Limit_FieldPath, error) { 154 fp, err := gotenobject.ParseRawFieldPath(rawField) 155 if err != nil { 156 return nil, err 157 } 158 return BuildLimit_FieldPath(fp) 159 } 160 161 func MustParseLimit_FieldPath(rawField string) Limit_FieldPath { 162 fp, err := ParseLimit_FieldPath(rawField) 163 if err != nil { 164 panic(err) 165 } 166 return fp 167 } 168 169 type Limit_FieldTerminalPath struct { 170 selector Limit_FieldPathSelector 171 } 172 173 var _ Limit_FieldPath = (*Limit_FieldTerminalPath)(nil) 174 175 func (fp *Limit_FieldTerminalPath) Selector() Limit_FieldPathSelector { 176 return fp.selector 177 } 178 179 // String returns path representation in proto convention 180 func (fp *Limit_FieldTerminalPath) String() string { 181 return fp.selector.String() 182 } 183 184 // JSONString returns path representation is JSON convention 185 func (fp *Limit_FieldTerminalPath) JSONString() string { 186 return strcase.ToLowerCamel(fp.String()) 187 } 188 189 // Get returns all values pointed by specific field from source Limit 190 func (fp *Limit_FieldTerminalPath) Get(source *Limit) (values []interface{}) { 191 if source != nil { 192 switch fp.selector { 193 case Limit_FieldPathSelectorName: 194 if source.Name != nil { 195 values = append(values, source.Name) 196 } 197 case Limit_FieldPathSelectorService: 198 if source.Service != nil { 199 values = append(values, source.Service) 200 } 201 case Limit_FieldPathSelectorResource: 202 if source.Resource != nil { 203 values = append(values, source.Resource) 204 } 205 case Limit_FieldPathSelectorRegion: 206 values = append(values, source.Region) 207 case Limit_FieldPathSelectorConfiguredLimit: 208 values = append(values, source.ConfiguredLimit) 209 case Limit_FieldPathSelectorActiveLimit: 210 values = append(values, source.ActiveLimit) 211 case Limit_FieldPathSelectorUsage: 212 values = append(values, source.Usage) 213 case Limit_FieldPathSelectorSource: 214 if source.Source != nil { 215 values = append(values, source.Source) 216 } 217 case Limit_FieldPathSelectorMetadata: 218 if source.Metadata != nil { 219 values = append(values, source.Metadata) 220 } 221 default: 222 panic(fmt.Sprintf("Invalid selector for Limit: %d", fp.selector)) 223 } 224 } 225 return 226 } 227 228 func (fp *Limit_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 229 return fp.Get(source.(*Limit)) 230 } 231 232 // GetSingle returns value pointed by specific field of from source Limit 233 func (fp *Limit_FieldTerminalPath) GetSingle(source *Limit) (interface{}, bool) { 234 switch fp.selector { 235 case Limit_FieldPathSelectorName: 236 res := source.GetName() 237 return res, res != nil 238 case Limit_FieldPathSelectorService: 239 res := source.GetService() 240 return res, res != nil 241 case Limit_FieldPathSelectorResource: 242 res := source.GetResource() 243 return res, res != nil 244 case Limit_FieldPathSelectorRegion: 245 return source.GetRegion(), source != nil 246 case Limit_FieldPathSelectorConfiguredLimit: 247 return source.GetConfiguredLimit(), source != nil 248 case Limit_FieldPathSelectorActiveLimit: 249 return source.GetActiveLimit(), source != nil 250 case Limit_FieldPathSelectorUsage: 251 return source.GetUsage(), source != nil 252 case Limit_FieldPathSelectorSource: 253 res := source.GetSource() 254 return res, res != nil 255 case Limit_FieldPathSelectorMetadata: 256 res := source.GetMetadata() 257 return res, res != nil 258 default: 259 panic(fmt.Sprintf("Invalid selector for Limit: %d", fp.selector)) 260 } 261 } 262 263 func (fp *Limit_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 264 return fp.GetSingle(source.(*Limit)) 265 } 266 267 // GetDefault returns a default value of the field type 268 func (fp *Limit_FieldTerminalPath) GetDefault() interface{} { 269 switch fp.selector { 270 case Limit_FieldPathSelectorName: 271 return (*Name)(nil) 272 case Limit_FieldPathSelectorService: 273 return (*meta_service.Reference)(nil) 274 case Limit_FieldPathSelectorResource: 275 return (*meta_resource.Reference)(nil) 276 case Limit_FieldPathSelectorRegion: 277 return "" 278 case Limit_FieldPathSelectorConfiguredLimit: 279 return int64(0) 280 case Limit_FieldPathSelectorActiveLimit: 281 return int64(0) 282 case Limit_FieldPathSelectorUsage: 283 return int64(0) 284 case Limit_FieldPathSelectorSource: 285 return (*limit_pool.Reference)(nil) 286 case Limit_FieldPathSelectorMetadata: 287 return (*meta.Meta)(nil) 288 default: 289 panic(fmt.Sprintf("Invalid selector for Limit: %d", fp.selector)) 290 } 291 } 292 293 func (fp *Limit_FieldTerminalPath) ClearValue(item *Limit) { 294 if item != nil { 295 switch fp.selector { 296 case Limit_FieldPathSelectorName: 297 item.Name = nil 298 case Limit_FieldPathSelectorService: 299 item.Service = nil 300 case Limit_FieldPathSelectorResource: 301 item.Resource = nil 302 case Limit_FieldPathSelectorRegion: 303 item.Region = "" 304 case Limit_FieldPathSelectorConfiguredLimit: 305 item.ConfiguredLimit = int64(0) 306 case Limit_FieldPathSelectorActiveLimit: 307 item.ActiveLimit = int64(0) 308 case Limit_FieldPathSelectorUsage: 309 item.Usage = int64(0) 310 case Limit_FieldPathSelectorSource: 311 item.Source = nil 312 case Limit_FieldPathSelectorMetadata: 313 item.Metadata = nil 314 default: 315 panic(fmt.Sprintf("Invalid selector for Limit: %d", fp.selector)) 316 } 317 } 318 } 319 320 func (fp *Limit_FieldTerminalPath) ClearValueRaw(item proto.Message) { 321 fp.ClearValue(item.(*Limit)) 322 } 323 324 // IsLeaf - whether field path is holds simple value 325 func (fp *Limit_FieldTerminalPath) IsLeaf() bool { 326 return fp.selector == Limit_FieldPathSelectorName || 327 fp.selector == Limit_FieldPathSelectorService || 328 fp.selector == Limit_FieldPathSelectorResource || 329 fp.selector == Limit_FieldPathSelectorRegion || 330 fp.selector == Limit_FieldPathSelectorConfiguredLimit || 331 fp.selector == Limit_FieldPathSelectorActiveLimit || 332 fp.selector == Limit_FieldPathSelectorUsage || 333 fp.selector == Limit_FieldPathSelectorSource 334 } 335 336 func (fp *Limit_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 337 return []gotenobject.FieldPath{fp} 338 } 339 340 func (fp *Limit_FieldTerminalPath) WithIValue(value interface{}) Limit_FieldPathValue { 341 switch fp.selector { 342 case Limit_FieldPathSelectorName: 343 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(*Name)} 344 case Limit_FieldPathSelectorService: 345 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(*meta_service.Reference)} 346 case Limit_FieldPathSelectorResource: 347 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(*meta_resource.Reference)} 348 case Limit_FieldPathSelectorRegion: 349 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(string)} 350 case Limit_FieldPathSelectorConfiguredLimit: 351 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(int64)} 352 case Limit_FieldPathSelectorActiveLimit: 353 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(int64)} 354 case Limit_FieldPathSelectorUsage: 355 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(int64)} 356 case Limit_FieldPathSelectorSource: 357 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(*limit_pool.Reference)} 358 case Limit_FieldPathSelectorMetadata: 359 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(*meta.Meta)} 360 default: 361 panic(fmt.Sprintf("Invalid selector for Limit: %d", fp.selector)) 362 } 363 } 364 365 func (fp *Limit_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 366 return fp.WithIValue(value) 367 } 368 369 func (fp *Limit_FieldTerminalPath) WithIArrayOfValues(values interface{}) Limit_FieldPathArrayOfValues { 370 fpaov := &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp} 371 switch fp.selector { 372 case Limit_FieldPathSelectorName: 373 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]*Name)} 374 case Limit_FieldPathSelectorService: 375 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]*meta_service.Reference)} 376 case Limit_FieldPathSelectorResource: 377 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]*meta_resource.Reference)} 378 case Limit_FieldPathSelectorRegion: 379 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]string)} 380 case Limit_FieldPathSelectorConfiguredLimit: 381 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]int64)} 382 case Limit_FieldPathSelectorActiveLimit: 383 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]int64)} 384 case Limit_FieldPathSelectorUsage: 385 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]int64)} 386 case Limit_FieldPathSelectorSource: 387 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]*limit_pool.Reference)} 388 case Limit_FieldPathSelectorMetadata: 389 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]*meta.Meta)} 390 default: 391 panic(fmt.Sprintf("Invalid selector for Limit: %d", fp.selector)) 392 } 393 return fpaov 394 } 395 396 func (fp *Limit_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 397 return fp.WithIArrayOfValues(values) 398 } 399 400 func (fp *Limit_FieldTerminalPath) WithIArrayItemValue(value interface{}) Limit_FieldPathArrayItemValue { 401 switch fp.selector { 402 default: 403 panic(fmt.Sprintf("Invalid selector for Limit: %d", fp.selector)) 404 } 405 } 406 407 func (fp *Limit_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 408 return fp.WithIArrayItemValue(value) 409 } 410 411 type Limit_FieldSubPath struct { 412 selector Limit_FieldPathSelector 413 subPath gotenobject.FieldPath 414 } 415 416 var _ Limit_FieldPath = (*Limit_FieldSubPath)(nil) 417 418 func (fps *Limit_FieldSubPath) Selector() Limit_FieldPathSelector { 419 return fps.selector 420 } 421 func (fps *Limit_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) { 422 res, ok := fps.subPath.(meta.Meta_FieldPath) 423 return res, ok 424 } 425 426 // String returns path representation in proto convention 427 func (fps *Limit_FieldSubPath) String() string { 428 return fps.selector.String() + "." + fps.subPath.String() 429 } 430 431 // JSONString returns path representation is JSON convention 432 func (fps *Limit_FieldSubPath) JSONString() string { 433 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 434 } 435 436 // Get returns all values pointed by selected field from source Limit 437 func (fps *Limit_FieldSubPath) Get(source *Limit) (values []interface{}) { 438 switch fps.selector { 439 case Limit_FieldPathSelectorMetadata: 440 values = append(values, fps.subPath.GetRaw(source.GetMetadata())...) 441 default: 442 panic(fmt.Sprintf("Invalid selector for Limit: %d", fps.selector)) 443 } 444 return 445 } 446 447 func (fps *Limit_FieldSubPath) GetRaw(source proto.Message) []interface{} { 448 return fps.Get(source.(*Limit)) 449 } 450 451 // GetSingle returns value of selected field from source Limit 452 func (fps *Limit_FieldSubPath) GetSingle(source *Limit) (interface{}, bool) { 453 switch fps.selector { 454 case Limit_FieldPathSelectorMetadata: 455 if source.GetMetadata() == nil { 456 return nil, false 457 } 458 return fps.subPath.GetSingleRaw(source.GetMetadata()) 459 default: 460 panic(fmt.Sprintf("Invalid selector for Limit: %d", fps.selector)) 461 } 462 } 463 464 func (fps *Limit_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 465 return fps.GetSingle(source.(*Limit)) 466 } 467 468 // GetDefault returns a default value of the field type 469 func (fps *Limit_FieldSubPath) GetDefault() interface{} { 470 return fps.subPath.GetDefault() 471 } 472 473 func (fps *Limit_FieldSubPath) ClearValue(item *Limit) { 474 if item != nil { 475 switch fps.selector { 476 case Limit_FieldPathSelectorMetadata: 477 fps.subPath.ClearValueRaw(item.Metadata) 478 default: 479 panic(fmt.Sprintf("Invalid selector for Limit: %d", fps.selector)) 480 } 481 } 482 } 483 484 func (fps *Limit_FieldSubPath) ClearValueRaw(item proto.Message) { 485 fps.ClearValue(item.(*Limit)) 486 } 487 488 // IsLeaf - whether field path is holds simple value 489 func (fps *Limit_FieldSubPath) IsLeaf() bool { 490 return fps.subPath.IsLeaf() 491 } 492 493 func (fps *Limit_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 494 iPaths := []gotenobject.FieldPath{&Limit_FieldTerminalPath{selector: fps.selector}} 495 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 496 return iPaths 497 } 498 499 func (fps *Limit_FieldSubPath) WithIValue(value interface{}) Limit_FieldPathValue { 500 return &Limit_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 501 } 502 503 func (fps *Limit_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 504 return fps.WithIValue(value) 505 } 506 507 func (fps *Limit_FieldSubPath) WithIArrayOfValues(values interface{}) Limit_FieldPathArrayOfValues { 508 return &Limit_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 509 } 510 511 func (fps *Limit_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 512 return fps.WithIArrayOfValues(values) 513 } 514 515 func (fps *Limit_FieldSubPath) WithIArrayItemValue(value interface{}) Limit_FieldPathArrayItemValue { 516 return &Limit_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 517 } 518 519 func (fps *Limit_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 520 return fps.WithIArrayItemValue(value) 521 } 522 523 // Limit_FieldPathValue allows storing values for Limit fields according to their type 524 type Limit_FieldPathValue interface { 525 Limit_FieldPath 526 gotenobject.FieldPathValue 527 SetTo(target **Limit) 528 CompareWith(*Limit) (cmp int, comparable bool) 529 } 530 531 func ParseLimit_FieldPathValue(pathStr, valueStr string) (Limit_FieldPathValue, error) { 532 fp, err := ParseLimit_FieldPath(pathStr) 533 if err != nil { 534 return nil, err 535 } 536 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 537 if err != nil { 538 return nil, status.Errorf(codes.InvalidArgument, "error parsing Limit field path value from %s: %v", valueStr, err) 539 } 540 return fpv.(Limit_FieldPathValue), nil 541 } 542 543 func MustParseLimit_FieldPathValue(pathStr, valueStr string) Limit_FieldPathValue { 544 fpv, err := ParseLimit_FieldPathValue(pathStr, valueStr) 545 if err != nil { 546 panic(err) 547 } 548 return fpv 549 } 550 551 type Limit_FieldTerminalPathValue struct { 552 Limit_FieldTerminalPath 553 value interface{} 554 } 555 556 var _ Limit_FieldPathValue = (*Limit_FieldTerminalPathValue)(nil) 557 558 // GetRawValue returns raw value stored under selected path for 'Limit' as interface{} 559 func (fpv *Limit_FieldTerminalPathValue) GetRawValue() interface{} { 560 return fpv.value 561 } 562 func (fpv *Limit_FieldTerminalPathValue) AsNameValue() (*Name, bool) { 563 res, ok := fpv.value.(*Name) 564 return res, ok 565 } 566 func (fpv *Limit_FieldTerminalPathValue) AsServiceValue() (*meta_service.Reference, bool) { 567 res, ok := fpv.value.(*meta_service.Reference) 568 return res, ok 569 } 570 func (fpv *Limit_FieldTerminalPathValue) AsResourceValue() (*meta_resource.Reference, bool) { 571 res, ok := fpv.value.(*meta_resource.Reference) 572 return res, ok 573 } 574 func (fpv *Limit_FieldTerminalPathValue) AsRegionValue() (string, bool) { 575 res, ok := fpv.value.(string) 576 return res, ok 577 } 578 func (fpv *Limit_FieldTerminalPathValue) AsConfiguredLimitValue() (int64, bool) { 579 res, ok := fpv.value.(int64) 580 return res, ok 581 } 582 func (fpv *Limit_FieldTerminalPathValue) AsActiveLimitValue() (int64, bool) { 583 res, ok := fpv.value.(int64) 584 return res, ok 585 } 586 func (fpv *Limit_FieldTerminalPathValue) AsUsageValue() (int64, bool) { 587 res, ok := fpv.value.(int64) 588 return res, ok 589 } 590 func (fpv *Limit_FieldTerminalPathValue) AsSourceValue() (*limit_pool.Reference, bool) { 591 res, ok := fpv.value.(*limit_pool.Reference) 592 return res, ok 593 } 594 func (fpv *Limit_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) { 595 res, ok := fpv.value.(*meta.Meta) 596 return res, ok 597 } 598 599 // SetTo stores value for selected field for object Limit 600 func (fpv *Limit_FieldTerminalPathValue) SetTo(target **Limit) { 601 if *target == nil { 602 *target = new(Limit) 603 } 604 switch fpv.selector { 605 case Limit_FieldPathSelectorName: 606 (*target).Name = fpv.value.(*Name) 607 case Limit_FieldPathSelectorService: 608 (*target).Service = fpv.value.(*meta_service.Reference) 609 case Limit_FieldPathSelectorResource: 610 (*target).Resource = fpv.value.(*meta_resource.Reference) 611 case Limit_FieldPathSelectorRegion: 612 (*target).Region = fpv.value.(string) 613 case Limit_FieldPathSelectorConfiguredLimit: 614 (*target).ConfiguredLimit = fpv.value.(int64) 615 case Limit_FieldPathSelectorActiveLimit: 616 (*target).ActiveLimit = fpv.value.(int64) 617 case Limit_FieldPathSelectorUsage: 618 (*target).Usage = fpv.value.(int64) 619 case Limit_FieldPathSelectorSource: 620 (*target).Source = fpv.value.(*limit_pool.Reference) 621 case Limit_FieldPathSelectorMetadata: 622 (*target).Metadata = fpv.value.(*meta.Meta) 623 default: 624 panic(fmt.Sprintf("Invalid selector for Limit: %d", fpv.selector)) 625 } 626 } 627 628 func (fpv *Limit_FieldTerminalPathValue) SetToRaw(target proto.Message) { 629 typedObject := target.(*Limit) 630 fpv.SetTo(&typedObject) 631 } 632 633 // CompareWith compares value in the 'Limit_FieldTerminalPathValue' with the value under path in 'Limit'. 634 func (fpv *Limit_FieldTerminalPathValue) CompareWith(source *Limit) (int, bool) { 635 switch fpv.selector { 636 case Limit_FieldPathSelectorName: 637 leftValue := fpv.value.(*Name) 638 rightValue := source.GetName() 639 if leftValue == nil { 640 if rightValue != nil { 641 return -1, true 642 } 643 return 0, true 644 } 645 if rightValue == nil { 646 return 1, true 647 } 648 if leftValue.String() == rightValue.String() { 649 return 0, true 650 } else if leftValue.String() < rightValue.String() { 651 return -1, true 652 } else { 653 return 1, true 654 } 655 case Limit_FieldPathSelectorService: 656 leftValue := fpv.value.(*meta_service.Reference) 657 rightValue := source.GetService() 658 if leftValue == nil { 659 if rightValue != nil { 660 return -1, true 661 } 662 return 0, true 663 } 664 if rightValue == nil { 665 return 1, true 666 } 667 if leftValue.String() == rightValue.String() { 668 return 0, true 669 } else if leftValue.String() < rightValue.String() { 670 return -1, true 671 } else { 672 return 1, true 673 } 674 case Limit_FieldPathSelectorResource: 675 leftValue := fpv.value.(*meta_resource.Reference) 676 rightValue := source.GetResource() 677 if leftValue == nil { 678 if rightValue != nil { 679 return -1, true 680 } 681 return 0, true 682 } 683 if rightValue == nil { 684 return 1, true 685 } 686 if leftValue.String() == rightValue.String() { 687 return 0, true 688 } else if leftValue.String() < rightValue.String() { 689 return -1, true 690 } else { 691 return 1, true 692 } 693 case Limit_FieldPathSelectorRegion: 694 leftValue := fpv.value.(string) 695 rightValue := source.GetRegion() 696 if (leftValue) == (rightValue) { 697 return 0, true 698 } else if (leftValue) < (rightValue) { 699 return -1, true 700 } else { 701 return 1, true 702 } 703 case Limit_FieldPathSelectorConfiguredLimit: 704 leftValue := fpv.value.(int64) 705 rightValue := source.GetConfiguredLimit() 706 if (leftValue) == (rightValue) { 707 return 0, true 708 } else if (leftValue) < (rightValue) { 709 return -1, true 710 } else { 711 return 1, true 712 } 713 case Limit_FieldPathSelectorActiveLimit: 714 leftValue := fpv.value.(int64) 715 rightValue := source.GetActiveLimit() 716 if (leftValue) == (rightValue) { 717 return 0, true 718 } else if (leftValue) < (rightValue) { 719 return -1, true 720 } else { 721 return 1, true 722 } 723 case Limit_FieldPathSelectorUsage: 724 leftValue := fpv.value.(int64) 725 rightValue := source.GetUsage() 726 if (leftValue) == (rightValue) { 727 return 0, true 728 } else if (leftValue) < (rightValue) { 729 return -1, true 730 } else { 731 return 1, true 732 } 733 case Limit_FieldPathSelectorSource: 734 leftValue := fpv.value.(*limit_pool.Reference) 735 rightValue := source.GetSource() 736 if leftValue == nil { 737 if rightValue != nil { 738 return -1, true 739 } 740 return 0, true 741 } 742 if rightValue == nil { 743 return 1, true 744 } 745 if leftValue.String() == rightValue.String() { 746 return 0, true 747 } else if leftValue.String() < rightValue.String() { 748 return -1, true 749 } else { 750 return 1, true 751 } 752 case Limit_FieldPathSelectorMetadata: 753 return 0, false 754 default: 755 panic(fmt.Sprintf("Invalid selector for Limit: %d", fpv.selector)) 756 } 757 } 758 759 func (fpv *Limit_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 760 return fpv.CompareWith(source.(*Limit)) 761 } 762 763 type Limit_FieldSubPathValue struct { 764 Limit_FieldPath 765 subPathValue gotenobject.FieldPathValue 766 } 767 768 var _ Limit_FieldPathValue = (*Limit_FieldSubPathValue)(nil) 769 770 func (fpvs *Limit_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) { 771 res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue) 772 return res, ok 773 } 774 775 func (fpvs *Limit_FieldSubPathValue) SetTo(target **Limit) { 776 if *target == nil { 777 *target = new(Limit) 778 } 779 switch fpvs.Selector() { 780 case Limit_FieldPathSelectorMetadata: 781 fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata) 782 default: 783 panic(fmt.Sprintf("Invalid selector for Limit: %d", fpvs.Selector())) 784 } 785 } 786 787 func (fpvs *Limit_FieldSubPathValue) SetToRaw(target proto.Message) { 788 typedObject := target.(*Limit) 789 fpvs.SetTo(&typedObject) 790 } 791 792 func (fpvs *Limit_FieldSubPathValue) GetRawValue() interface{} { 793 return fpvs.subPathValue.GetRawValue() 794 } 795 796 func (fpvs *Limit_FieldSubPathValue) CompareWith(source *Limit) (int, bool) { 797 switch fpvs.Selector() { 798 case Limit_FieldPathSelectorMetadata: 799 return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata()) 800 default: 801 panic(fmt.Sprintf("Invalid selector for Limit: %d", fpvs.Selector())) 802 } 803 } 804 805 func (fpvs *Limit_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 806 return fpvs.CompareWith(source.(*Limit)) 807 } 808 809 // Limit_FieldPathArrayItemValue allows storing single item in Path-specific values for Limit according to their type 810 // Present only for array (repeated) types. 811 type Limit_FieldPathArrayItemValue interface { 812 gotenobject.FieldPathArrayItemValue 813 Limit_FieldPath 814 ContainsValue(*Limit) bool 815 } 816 817 // ParseLimit_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 818 func ParseLimit_FieldPathArrayItemValue(pathStr, valueStr string) (Limit_FieldPathArrayItemValue, error) { 819 fp, err := ParseLimit_FieldPath(pathStr) 820 if err != nil { 821 return nil, err 822 } 823 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 824 if err != nil { 825 return nil, status.Errorf(codes.InvalidArgument, "error parsing Limit field path array item value from %s: %v", valueStr, err) 826 } 827 return fpaiv.(Limit_FieldPathArrayItemValue), nil 828 } 829 830 func MustParseLimit_FieldPathArrayItemValue(pathStr, valueStr string) Limit_FieldPathArrayItemValue { 831 fpaiv, err := ParseLimit_FieldPathArrayItemValue(pathStr, valueStr) 832 if err != nil { 833 panic(err) 834 } 835 return fpaiv 836 } 837 838 type Limit_FieldTerminalPathArrayItemValue struct { 839 Limit_FieldTerminalPath 840 value interface{} 841 } 842 843 var _ Limit_FieldPathArrayItemValue = (*Limit_FieldTerminalPathArrayItemValue)(nil) 844 845 // GetRawValue returns stored element value for array in object Limit as interface{} 846 func (fpaiv *Limit_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 847 return fpaiv.value 848 } 849 850 func (fpaiv *Limit_FieldTerminalPathArrayItemValue) GetSingle(source *Limit) (interface{}, bool) { 851 return nil, false 852 } 853 854 func (fpaiv *Limit_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 855 return fpaiv.GetSingle(source.(*Limit)) 856 } 857 858 // Contains returns a boolean indicating if value that is being held is present in given 'Limit' 859 func (fpaiv *Limit_FieldTerminalPathArrayItemValue) ContainsValue(source *Limit) bool { 860 slice := fpaiv.Limit_FieldTerminalPath.Get(source) 861 for _, v := range slice { 862 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 863 if proto.Equal(asProtoMsg, v.(proto.Message)) { 864 return true 865 } 866 } else if reflect.DeepEqual(v, fpaiv.value) { 867 return true 868 } 869 } 870 return false 871 } 872 873 type Limit_FieldSubPathArrayItemValue struct { 874 Limit_FieldPath 875 subPathItemValue gotenobject.FieldPathArrayItemValue 876 } 877 878 // GetRawValue returns stored array item value 879 func (fpaivs *Limit_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 880 return fpaivs.subPathItemValue.GetRawItemValue() 881 } 882 func (fpaivs *Limit_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) { 883 res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue) 884 return res, ok 885 } 886 887 // Contains returns a boolean indicating if value that is being held is present in given 'Limit' 888 func (fpaivs *Limit_FieldSubPathArrayItemValue) ContainsValue(source *Limit) bool { 889 switch fpaivs.Selector() { 890 case Limit_FieldPathSelectorMetadata: 891 return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata()) 892 default: 893 panic(fmt.Sprintf("Invalid selector for Limit: %d", fpaivs.Selector())) 894 } 895 } 896 897 // Limit_FieldPathArrayOfValues allows storing slice of values for Limit fields according to their type 898 type Limit_FieldPathArrayOfValues interface { 899 gotenobject.FieldPathArrayOfValues 900 Limit_FieldPath 901 } 902 903 func ParseLimit_FieldPathArrayOfValues(pathStr, valuesStr string) (Limit_FieldPathArrayOfValues, error) { 904 fp, err := ParseLimit_FieldPath(pathStr) 905 if err != nil { 906 return nil, err 907 } 908 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 909 if err != nil { 910 return nil, status.Errorf(codes.InvalidArgument, "error parsing Limit field path array of values from %s: %v", valuesStr, err) 911 } 912 return fpaov.(Limit_FieldPathArrayOfValues), nil 913 } 914 915 func MustParseLimit_FieldPathArrayOfValues(pathStr, valuesStr string) Limit_FieldPathArrayOfValues { 916 fpaov, err := ParseLimit_FieldPathArrayOfValues(pathStr, valuesStr) 917 if err != nil { 918 panic(err) 919 } 920 return fpaov 921 } 922 923 type Limit_FieldTerminalPathArrayOfValues struct { 924 Limit_FieldTerminalPath 925 values interface{} 926 } 927 928 var _ Limit_FieldPathArrayOfValues = (*Limit_FieldTerminalPathArrayOfValues)(nil) 929 930 func (fpaov *Limit_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 931 switch fpaov.selector { 932 case Limit_FieldPathSelectorName: 933 for _, v := range fpaov.values.([]*Name) { 934 values = append(values, v) 935 } 936 case Limit_FieldPathSelectorService: 937 for _, v := range fpaov.values.([]*meta_service.Reference) { 938 values = append(values, v) 939 } 940 case Limit_FieldPathSelectorResource: 941 for _, v := range fpaov.values.([]*meta_resource.Reference) { 942 values = append(values, v) 943 } 944 case Limit_FieldPathSelectorRegion: 945 for _, v := range fpaov.values.([]string) { 946 values = append(values, v) 947 } 948 case Limit_FieldPathSelectorConfiguredLimit: 949 for _, v := range fpaov.values.([]int64) { 950 values = append(values, v) 951 } 952 case Limit_FieldPathSelectorActiveLimit: 953 for _, v := range fpaov.values.([]int64) { 954 values = append(values, v) 955 } 956 case Limit_FieldPathSelectorUsage: 957 for _, v := range fpaov.values.([]int64) { 958 values = append(values, v) 959 } 960 case Limit_FieldPathSelectorSource: 961 for _, v := range fpaov.values.([]*limit_pool.Reference) { 962 values = append(values, v) 963 } 964 case Limit_FieldPathSelectorMetadata: 965 for _, v := range fpaov.values.([]*meta.Meta) { 966 values = append(values, v) 967 } 968 } 969 return 970 } 971 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) { 972 res, ok := fpaov.values.([]*Name) 973 return res, ok 974 } 975 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsServiceArrayOfValues() ([]*meta_service.Reference, bool) { 976 res, ok := fpaov.values.([]*meta_service.Reference) 977 return res, ok 978 } 979 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsResourceArrayOfValues() ([]*meta_resource.Reference, bool) { 980 res, ok := fpaov.values.([]*meta_resource.Reference) 981 return res, ok 982 } 983 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsRegionArrayOfValues() ([]string, bool) { 984 res, ok := fpaov.values.([]string) 985 return res, ok 986 } 987 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsConfiguredLimitArrayOfValues() ([]int64, bool) { 988 res, ok := fpaov.values.([]int64) 989 return res, ok 990 } 991 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsActiveLimitArrayOfValues() ([]int64, bool) { 992 res, ok := fpaov.values.([]int64) 993 return res, ok 994 } 995 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsUsageArrayOfValues() ([]int64, bool) { 996 res, ok := fpaov.values.([]int64) 997 return res, ok 998 } 999 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsSourceArrayOfValues() ([]*limit_pool.Reference, bool) { 1000 res, ok := fpaov.values.([]*limit_pool.Reference) 1001 return res, ok 1002 } 1003 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) { 1004 res, ok := fpaov.values.([]*meta.Meta) 1005 return res, ok 1006 } 1007 1008 type Limit_FieldSubPathArrayOfValues struct { 1009 Limit_FieldPath 1010 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 1011 } 1012 1013 var _ Limit_FieldPathArrayOfValues = (*Limit_FieldSubPathArrayOfValues)(nil) 1014 1015 func (fpsaov *Limit_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 1016 return fpsaov.subPathArrayOfValues.GetRawValues() 1017 } 1018 func (fpsaov *Limit_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) { 1019 res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues) 1020 return res, ok 1021 }