github.com/cloudwan/edgelq-sdk@v1.15.4/limits/resources/v1/limit/limit.pb.fieldpath.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/limits/proto/v1/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/v1/project" 27 limit_pool "github.com/cloudwan/edgelq-sdk/limits/resources/v1/limit_pool" 28 meta_resource "github.com/cloudwan/goten-sdk/meta-service/resources/v1/resource" 29 meta_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/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_FieldPathSelectorMetadata Limit_FieldPathSelector = 1 81 Limit_FieldPathSelectorService Limit_FieldPathSelector = 2 82 Limit_FieldPathSelectorResource Limit_FieldPathSelector = 3 83 Limit_FieldPathSelectorRegion Limit_FieldPathSelector = 4 84 Limit_FieldPathSelectorConfiguredLimit Limit_FieldPathSelector = 5 85 Limit_FieldPathSelectorActiveLimit Limit_FieldPathSelector = 6 86 Limit_FieldPathSelectorUsage Limit_FieldPathSelector = 7 87 Limit_FieldPathSelectorSources 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_FieldPathSelectorMetadata: 95 return "metadata" 96 case Limit_FieldPathSelectorService: 97 return "service" 98 case Limit_FieldPathSelectorResource: 99 return "resource" 100 case Limit_FieldPathSelectorRegion: 101 return "region" 102 case Limit_FieldPathSelectorConfiguredLimit: 103 return "configured_limit" 104 case Limit_FieldPathSelectorActiveLimit: 105 return "active_limit" 106 case Limit_FieldPathSelectorUsage: 107 return "usage" 108 case Limit_FieldPathSelectorSources: 109 return "sources" 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 "metadata": 124 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorMetadata}, nil 125 case "service": 126 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorService}, nil 127 case "resource": 128 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorResource}, nil 129 case "region": 130 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorRegion}, nil 131 case "configured_limit", "configuredLimit", "configured-limit": 132 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorConfiguredLimit}, nil 133 case "active_limit", "activeLimit", "active-limit": 134 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorActiveLimit}, nil 135 case "usage": 136 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorUsage}, nil 137 case "sources": 138 return &Limit_FieldTerminalPath{selector: Limit_FieldPathSelectorSources}, 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_FieldPathSelectorMetadata: 198 if source.Metadata != nil { 199 values = append(values, source.Metadata) 200 } 201 case Limit_FieldPathSelectorService: 202 if source.Service != nil { 203 values = append(values, source.Service) 204 } 205 case Limit_FieldPathSelectorResource: 206 if source.Resource != nil { 207 values = append(values, source.Resource) 208 } 209 case Limit_FieldPathSelectorRegion: 210 values = append(values, source.Region) 211 case Limit_FieldPathSelectorConfiguredLimit: 212 values = append(values, source.ConfiguredLimit) 213 case Limit_FieldPathSelectorActiveLimit: 214 values = append(values, source.ActiveLimit) 215 case Limit_FieldPathSelectorUsage: 216 values = append(values, source.Usage) 217 case Limit_FieldPathSelectorSources: 218 for _, value := range source.GetSources() { 219 values = append(values, value) 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_FieldPathSelectorMetadata: 239 res := source.GetMetadata() 240 return res, res != nil 241 case Limit_FieldPathSelectorService: 242 res := source.GetService() 243 return res, res != nil 244 case Limit_FieldPathSelectorResource: 245 res := source.GetResource() 246 return res, res != nil 247 case Limit_FieldPathSelectorRegion: 248 return source.GetRegion(), source != nil 249 case Limit_FieldPathSelectorConfiguredLimit: 250 return source.GetConfiguredLimit(), source != nil 251 case Limit_FieldPathSelectorActiveLimit: 252 return source.GetActiveLimit(), source != nil 253 case Limit_FieldPathSelectorUsage: 254 return source.GetUsage(), source != nil 255 case Limit_FieldPathSelectorSources: 256 res := source.GetSources() 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_FieldPathSelectorMetadata: 273 return (*meta.Meta)(nil) 274 case Limit_FieldPathSelectorService: 275 return (*meta_service.Reference)(nil) 276 case Limit_FieldPathSelectorResource: 277 return (*meta_resource.Reference)(nil) 278 case Limit_FieldPathSelectorRegion: 279 return "" 280 case Limit_FieldPathSelectorConfiguredLimit: 281 return int64(0) 282 case Limit_FieldPathSelectorActiveLimit: 283 return int64(0) 284 case Limit_FieldPathSelectorUsage: 285 return int64(0) 286 case Limit_FieldPathSelectorSources: 287 return ([]*limit_pool.Reference)(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_FieldPathSelectorMetadata: 299 item.Metadata = nil 300 case Limit_FieldPathSelectorService: 301 item.Service = nil 302 case Limit_FieldPathSelectorResource: 303 item.Resource = nil 304 case Limit_FieldPathSelectorRegion: 305 item.Region = "" 306 case Limit_FieldPathSelectorConfiguredLimit: 307 item.ConfiguredLimit = int64(0) 308 case Limit_FieldPathSelectorActiveLimit: 309 item.ActiveLimit = int64(0) 310 case Limit_FieldPathSelectorUsage: 311 item.Usage = int64(0) 312 case Limit_FieldPathSelectorSources: 313 item.Sources = 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_FieldPathSelectorSources 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_FieldPathSelectorMetadata: 345 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(*meta.Meta)} 346 case Limit_FieldPathSelectorService: 347 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(*meta_service.Reference)} 348 case Limit_FieldPathSelectorResource: 349 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(*meta_resource.Reference)} 350 case Limit_FieldPathSelectorRegion: 351 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(string)} 352 case Limit_FieldPathSelectorConfiguredLimit: 353 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(int64)} 354 case Limit_FieldPathSelectorActiveLimit: 355 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(int64)} 356 case Limit_FieldPathSelectorUsage: 357 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.(int64)} 358 case Limit_FieldPathSelectorSources: 359 return &Limit_FieldTerminalPathValue{Limit_FieldTerminalPath: *fp, value: value.([]*limit_pool.Reference)} 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_FieldPathSelectorMetadata: 375 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]*meta.Meta)} 376 case Limit_FieldPathSelectorService: 377 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]*meta_service.Reference)} 378 case Limit_FieldPathSelectorResource: 379 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]*meta_resource.Reference)} 380 case Limit_FieldPathSelectorRegion: 381 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]string)} 382 case Limit_FieldPathSelectorConfiguredLimit: 383 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]int64)} 384 case Limit_FieldPathSelectorActiveLimit: 385 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]int64)} 386 case Limit_FieldPathSelectorUsage: 387 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([]int64)} 388 case Limit_FieldPathSelectorSources: 389 return &Limit_FieldTerminalPathArrayOfValues{Limit_FieldTerminalPath: *fp, values: values.([][]*limit_pool.Reference)} 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 case Limit_FieldPathSelectorSources: 403 return &Limit_FieldTerminalPathArrayItemValue{Limit_FieldTerminalPath: *fp, value: value.(*limit_pool.Reference)} 404 default: 405 panic(fmt.Sprintf("Invalid selector for Limit: %d", fp.selector)) 406 } 407 } 408 409 func (fp *Limit_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 410 return fp.WithIArrayItemValue(value) 411 } 412 413 type Limit_FieldSubPath struct { 414 selector Limit_FieldPathSelector 415 subPath gotenobject.FieldPath 416 } 417 418 var _ Limit_FieldPath = (*Limit_FieldSubPath)(nil) 419 420 func (fps *Limit_FieldSubPath) Selector() Limit_FieldPathSelector { 421 return fps.selector 422 } 423 func (fps *Limit_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) { 424 res, ok := fps.subPath.(meta.Meta_FieldPath) 425 return res, ok 426 } 427 428 // String returns path representation in proto convention 429 func (fps *Limit_FieldSubPath) String() string { 430 return fps.selector.String() + "." + fps.subPath.String() 431 } 432 433 // JSONString returns path representation is JSON convention 434 func (fps *Limit_FieldSubPath) JSONString() string { 435 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 436 } 437 438 // Get returns all values pointed by selected field from source Limit 439 func (fps *Limit_FieldSubPath) Get(source *Limit) (values []interface{}) { 440 switch fps.selector { 441 case Limit_FieldPathSelectorMetadata: 442 values = append(values, fps.subPath.GetRaw(source.GetMetadata())...) 443 default: 444 panic(fmt.Sprintf("Invalid selector for Limit: %d", fps.selector)) 445 } 446 return 447 } 448 449 func (fps *Limit_FieldSubPath) GetRaw(source proto.Message) []interface{} { 450 return fps.Get(source.(*Limit)) 451 } 452 453 // GetSingle returns value of selected field from source Limit 454 func (fps *Limit_FieldSubPath) GetSingle(source *Limit) (interface{}, bool) { 455 switch fps.selector { 456 case Limit_FieldPathSelectorMetadata: 457 if source.GetMetadata() == nil { 458 return nil, false 459 } 460 return fps.subPath.GetSingleRaw(source.GetMetadata()) 461 default: 462 panic(fmt.Sprintf("Invalid selector for Limit: %d", fps.selector)) 463 } 464 } 465 466 func (fps *Limit_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 467 return fps.GetSingle(source.(*Limit)) 468 } 469 470 // GetDefault returns a default value of the field type 471 func (fps *Limit_FieldSubPath) GetDefault() interface{} { 472 return fps.subPath.GetDefault() 473 } 474 475 func (fps *Limit_FieldSubPath) ClearValue(item *Limit) { 476 if item != nil { 477 switch fps.selector { 478 case Limit_FieldPathSelectorMetadata: 479 fps.subPath.ClearValueRaw(item.Metadata) 480 default: 481 panic(fmt.Sprintf("Invalid selector for Limit: %d", fps.selector)) 482 } 483 } 484 } 485 486 func (fps *Limit_FieldSubPath) ClearValueRaw(item proto.Message) { 487 fps.ClearValue(item.(*Limit)) 488 } 489 490 // IsLeaf - whether field path is holds simple value 491 func (fps *Limit_FieldSubPath) IsLeaf() bool { 492 return fps.subPath.IsLeaf() 493 } 494 495 func (fps *Limit_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 496 iPaths := []gotenobject.FieldPath{&Limit_FieldTerminalPath{selector: fps.selector}} 497 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 498 return iPaths 499 } 500 501 func (fps *Limit_FieldSubPath) WithIValue(value interface{}) Limit_FieldPathValue { 502 return &Limit_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 503 } 504 505 func (fps *Limit_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 506 return fps.WithIValue(value) 507 } 508 509 func (fps *Limit_FieldSubPath) WithIArrayOfValues(values interface{}) Limit_FieldPathArrayOfValues { 510 return &Limit_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 511 } 512 513 func (fps *Limit_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 514 return fps.WithIArrayOfValues(values) 515 } 516 517 func (fps *Limit_FieldSubPath) WithIArrayItemValue(value interface{}) Limit_FieldPathArrayItemValue { 518 return &Limit_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 519 } 520 521 func (fps *Limit_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 522 return fps.WithIArrayItemValue(value) 523 } 524 525 // Limit_FieldPathValue allows storing values for Limit fields according to their type 526 type Limit_FieldPathValue interface { 527 Limit_FieldPath 528 gotenobject.FieldPathValue 529 SetTo(target **Limit) 530 CompareWith(*Limit) (cmp int, comparable bool) 531 } 532 533 func ParseLimit_FieldPathValue(pathStr, valueStr string) (Limit_FieldPathValue, error) { 534 fp, err := ParseLimit_FieldPath(pathStr) 535 if err != nil { 536 return nil, err 537 } 538 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 539 if err != nil { 540 return nil, status.Errorf(codes.InvalidArgument, "error parsing Limit field path value from %s: %v", valueStr, err) 541 } 542 return fpv.(Limit_FieldPathValue), nil 543 } 544 545 func MustParseLimit_FieldPathValue(pathStr, valueStr string) Limit_FieldPathValue { 546 fpv, err := ParseLimit_FieldPathValue(pathStr, valueStr) 547 if err != nil { 548 panic(err) 549 } 550 return fpv 551 } 552 553 type Limit_FieldTerminalPathValue struct { 554 Limit_FieldTerminalPath 555 value interface{} 556 } 557 558 var _ Limit_FieldPathValue = (*Limit_FieldTerminalPathValue)(nil) 559 560 // GetRawValue returns raw value stored under selected path for 'Limit' as interface{} 561 func (fpv *Limit_FieldTerminalPathValue) GetRawValue() interface{} { 562 return fpv.value 563 } 564 func (fpv *Limit_FieldTerminalPathValue) AsNameValue() (*Name, bool) { 565 res, ok := fpv.value.(*Name) 566 return res, ok 567 } 568 func (fpv *Limit_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) { 569 res, ok := fpv.value.(*meta.Meta) 570 return res, ok 571 } 572 func (fpv *Limit_FieldTerminalPathValue) AsServiceValue() (*meta_service.Reference, bool) { 573 res, ok := fpv.value.(*meta_service.Reference) 574 return res, ok 575 } 576 func (fpv *Limit_FieldTerminalPathValue) AsResourceValue() (*meta_resource.Reference, bool) { 577 res, ok := fpv.value.(*meta_resource.Reference) 578 return res, ok 579 } 580 func (fpv *Limit_FieldTerminalPathValue) AsRegionValue() (string, bool) { 581 res, ok := fpv.value.(string) 582 return res, ok 583 } 584 func (fpv *Limit_FieldTerminalPathValue) AsConfiguredLimitValue() (int64, bool) { 585 res, ok := fpv.value.(int64) 586 return res, ok 587 } 588 func (fpv *Limit_FieldTerminalPathValue) AsActiveLimitValue() (int64, bool) { 589 res, ok := fpv.value.(int64) 590 return res, ok 591 } 592 func (fpv *Limit_FieldTerminalPathValue) AsUsageValue() (int64, bool) { 593 res, ok := fpv.value.(int64) 594 return res, ok 595 } 596 func (fpv *Limit_FieldTerminalPathValue) AsSourcesValue() ([]*limit_pool.Reference, bool) { 597 res, ok := fpv.value.([]*limit_pool.Reference) 598 return res, ok 599 } 600 601 // SetTo stores value for selected field for object Limit 602 func (fpv *Limit_FieldTerminalPathValue) SetTo(target **Limit) { 603 if *target == nil { 604 *target = new(Limit) 605 } 606 switch fpv.selector { 607 case Limit_FieldPathSelectorName: 608 (*target).Name = fpv.value.(*Name) 609 case Limit_FieldPathSelectorMetadata: 610 (*target).Metadata = fpv.value.(*meta.Meta) 611 case Limit_FieldPathSelectorService: 612 (*target).Service = fpv.value.(*meta_service.Reference) 613 case Limit_FieldPathSelectorResource: 614 (*target).Resource = fpv.value.(*meta_resource.Reference) 615 case Limit_FieldPathSelectorRegion: 616 (*target).Region = fpv.value.(string) 617 case Limit_FieldPathSelectorConfiguredLimit: 618 (*target).ConfiguredLimit = fpv.value.(int64) 619 case Limit_FieldPathSelectorActiveLimit: 620 (*target).ActiveLimit = fpv.value.(int64) 621 case Limit_FieldPathSelectorUsage: 622 (*target).Usage = fpv.value.(int64) 623 case Limit_FieldPathSelectorSources: 624 (*target).Sources = fpv.value.([]*limit_pool.Reference) 625 default: 626 panic(fmt.Sprintf("Invalid selector for Limit: %d", fpv.selector)) 627 } 628 } 629 630 func (fpv *Limit_FieldTerminalPathValue) SetToRaw(target proto.Message) { 631 typedObject := target.(*Limit) 632 fpv.SetTo(&typedObject) 633 } 634 635 // CompareWith compares value in the 'Limit_FieldTerminalPathValue' with the value under path in 'Limit'. 636 func (fpv *Limit_FieldTerminalPathValue) CompareWith(source *Limit) (int, bool) { 637 switch fpv.selector { 638 case Limit_FieldPathSelectorName: 639 leftValue := fpv.value.(*Name) 640 rightValue := source.GetName() 641 if leftValue == nil { 642 if rightValue != nil { 643 return -1, true 644 } 645 return 0, true 646 } 647 if rightValue == nil { 648 return 1, true 649 } 650 if leftValue.String() == rightValue.String() { 651 return 0, true 652 } else if leftValue.String() < rightValue.String() { 653 return -1, true 654 } else { 655 return 1, true 656 } 657 case Limit_FieldPathSelectorMetadata: 658 return 0, false 659 case Limit_FieldPathSelectorService: 660 leftValue := fpv.value.(*meta_service.Reference) 661 rightValue := source.GetService() 662 if leftValue == nil { 663 if rightValue != nil { 664 return -1, true 665 } 666 return 0, true 667 } 668 if rightValue == nil { 669 return 1, true 670 } 671 if leftValue.String() == rightValue.String() { 672 return 0, true 673 } else if leftValue.String() < rightValue.String() { 674 return -1, true 675 } else { 676 return 1, true 677 } 678 case Limit_FieldPathSelectorResource: 679 leftValue := fpv.value.(*meta_resource.Reference) 680 rightValue := source.GetResource() 681 if leftValue == nil { 682 if rightValue != nil { 683 return -1, true 684 } 685 return 0, true 686 } 687 if rightValue == nil { 688 return 1, true 689 } 690 if leftValue.String() == rightValue.String() { 691 return 0, true 692 } else if leftValue.String() < rightValue.String() { 693 return -1, true 694 } else { 695 return 1, true 696 } 697 case Limit_FieldPathSelectorRegion: 698 leftValue := fpv.value.(string) 699 rightValue := source.GetRegion() 700 if (leftValue) == (rightValue) { 701 return 0, true 702 } else if (leftValue) < (rightValue) { 703 return -1, true 704 } else { 705 return 1, true 706 } 707 case Limit_FieldPathSelectorConfiguredLimit: 708 leftValue := fpv.value.(int64) 709 rightValue := source.GetConfiguredLimit() 710 if (leftValue) == (rightValue) { 711 return 0, true 712 } else if (leftValue) < (rightValue) { 713 return -1, true 714 } else { 715 return 1, true 716 } 717 case Limit_FieldPathSelectorActiveLimit: 718 leftValue := fpv.value.(int64) 719 rightValue := source.GetActiveLimit() 720 if (leftValue) == (rightValue) { 721 return 0, true 722 } else if (leftValue) < (rightValue) { 723 return -1, true 724 } else { 725 return 1, true 726 } 727 case Limit_FieldPathSelectorUsage: 728 leftValue := fpv.value.(int64) 729 rightValue := source.GetUsage() 730 if (leftValue) == (rightValue) { 731 return 0, true 732 } else if (leftValue) < (rightValue) { 733 return -1, true 734 } else { 735 return 1, true 736 } 737 case Limit_FieldPathSelectorSources: 738 return 0, false 739 default: 740 panic(fmt.Sprintf("Invalid selector for Limit: %d", fpv.selector)) 741 } 742 } 743 744 func (fpv *Limit_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 745 return fpv.CompareWith(source.(*Limit)) 746 } 747 748 type Limit_FieldSubPathValue struct { 749 Limit_FieldPath 750 subPathValue gotenobject.FieldPathValue 751 } 752 753 var _ Limit_FieldPathValue = (*Limit_FieldSubPathValue)(nil) 754 755 func (fpvs *Limit_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) { 756 res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue) 757 return res, ok 758 } 759 760 func (fpvs *Limit_FieldSubPathValue) SetTo(target **Limit) { 761 if *target == nil { 762 *target = new(Limit) 763 } 764 switch fpvs.Selector() { 765 case Limit_FieldPathSelectorMetadata: 766 fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata) 767 default: 768 panic(fmt.Sprintf("Invalid selector for Limit: %d", fpvs.Selector())) 769 } 770 } 771 772 func (fpvs *Limit_FieldSubPathValue) SetToRaw(target proto.Message) { 773 typedObject := target.(*Limit) 774 fpvs.SetTo(&typedObject) 775 } 776 777 func (fpvs *Limit_FieldSubPathValue) GetRawValue() interface{} { 778 return fpvs.subPathValue.GetRawValue() 779 } 780 781 func (fpvs *Limit_FieldSubPathValue) CompareWith(source *Limit) (int, bool) { 782 switch fpvs.Selector() { 783 case Limit_FieldPathSelectorMetadata: 784 return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata()) 785 default: 786 panic(fmt.Sprintf("Invalid selector for Limit: %d", fpvs.Selector())) 787 } 788 } 789 790 func (fpvs *Limit_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 791 return fpvs.CompareWith(source.(*Limit)) 792 } 793 794 // Limit_FieldPathArrayItemValue allows storing single item in Path-specific values for Limit according to their type 795 // Present only for array (repeated) types. 796 type Limit_FieldPathArrayItemValue interface { 797 gotenobject.FieldPathArrayItemValue 798 Limit_FieldPath 799 ContainsValue(*Limit) bool 800 } 801 802 // ParseLimit_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 803 func ParseLimit_FieldPathArrayItemValue(pathStr, valueStr string) (Limit_FieldPathArrayItemValue, error) { 804 fp, err := ParseLimit_FieldPath(pathStr) 805 if err != nil { 806 return nil, err 807 } 808 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 809 if err != nil { 810 return nil, status.Errorf(codes.InvalidArgument, "error parsing Limit field path array item value from %s: %v", valueStr, err) 811 } 812 return fpaiv.(Limit_FieldPathArrayItemValue), nil 813 } 814 815 func MustParseLimit_FieldPathArrayItemValue(pathStr, valueStr string) Limit_FieldPathArrayItemValue { 816 fpaiv, err := ParseLimit_FieldPathArrayItemValue(pathStr, valueStr) 817 if err != nil { 818 panic(err) 819 } 820 return fpaiv 821 } 822 823 type Limit_FieldTerminalPathArrayItemValue struct { 824 Limit_FieldTerminalPath 825 value interface{} 826 } 827 828 var _ Limit_FieldPathArrayItemValue = (*Limit_FieldTerminalPathArrayItemValue)(nil) 829 830 // GetRawValue returns stored element value for array in object Limit as interface{} 831 func (fpaiv *Limit_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 832 return fpaiv.value 833 } 834 func (fpaiv *Limit_FieldTerminalPathArrayItemValue) AsSourcesItemValue() (*limit_pool.Reference, bool) { 835 res, ok := fpaiv.value.(*limit_pool.Reference) 836 return res, ok 837 } 838 839 func (fpaiv *Limit_FieldTerminalPathArrayItemValue) GetSingle(source *Limit) (interface{}, bool) { 840 return nil, false 841 } 842 843 func (fpaiv *Limit_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 844 return fpaiv.GetSingle(source.(*Limit)) 845 } 846 847 // Contains returns a boolean indicating if value that is being held is present in given 'Limit' 848 func (fpaiv *Limit_FieldTerminalPathArrayItemValue) ContainsValue(source *Limit) bool { 849 slice := fpaiv.Limit_FieldTerminalPath.Get(source) 850 for _, v := range slice { 851 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 852 if proto.Equal(asProtoMsg, v.(proto.Message)) { 853 return true 854 } 855 } else if reflect.DeepEqual(v, fpaiv.value) { 856 return true 857 } 858 } 859 return false 860 } 861 862 type Limit_FieldSubPathArrayItemValue struct { 863 Limit_FieldPath 864 subPathItemValue gotenobject.FieldPathArrayItemValue 865 } 866 867 // GetRawValue returns stored array item value 868 func (fpaivs *Limit_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 869 return fpaivs.subPathItemValue.GetRawItemValue() 870 } 871 func (fpaivs *Limit_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) { 872 res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue) 873 return res, ok 874 } 875 876 // Contains returns a boolean indicating if value that is being held is present in given 'Limit' 877 func (fpaivs *Limit_FieldSubPathArrayItemValue) ContainsValue(source *Limit) bool { 878 switch fpaivs.Selector() { 879 case Limit_FieldPathSelectorMetadata: 880 return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata()) 881 default: 882 panic(fmt.Sprintf("Invalid selector for Limit: %d", fpaivs.Selector())) 883 } 884 } 885 886 // Limit_FieldPathArrayOfValues allows storing slice of values for Limit fields according to their type 887 type Limit_FieldPathArrayOfValues interface { 888 gotenobject.FieldPathArrayOfValues 889 Limit_FieldPath 890 } 891 892 func ParseLimit_FieldPathArrayOfValues(pathStr, valuesStr string) (Limit_FieldPathArrayOfValues, error) { 893 fp, err := ParseLimit_FieldPath(pathStr) 894 if err != nil { 895 return nil, err 896 } 897 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 898 if err != nil { 899 return nil, status.Errorf(codes.InvalidArgument, "error parsing Limit field path array of values from %s: %v", valuesStr, err) 900 } 901 return fpaov.(Limit_FieldPathArrayOfValues), nil 902 } 903 904 func MustParseLimit_FieldPathArrayOfValues(pathStr, valuesStr string) Limit_FieldPathArrayOfValues { 905 fpaov, err := ParseLimit_FieldPathArrayOfValues(pathStr, valuesStr) 906 if err != nil { 907 panic(err) 908 } 909 return fpaov 910 } 911 912 type Limit_FieldTerminalPathArrayOfValues struct { 913 Limit_FieldTerminalPath 914 values interface{} 915 } 916 917 var _ Limit_FieldPathArrayOfValues = (*Limit_FieldTerminalPathArrayOfValues)(nil) 918 919 func (fpaov *Limit_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 920 switch fpaov.selector { 921 case Limit_FieldPathSelectorName: 922 for _, v := range fpaov.values.([]*Name) { 923 values = append(values, v) 924 } 925 case Limit_FieldPathSelectorMetadata: 926 for _, v := range fpaov.values.([]*meta.Meta) { 927 values = append(values, v) 928 } 929 case Limit_FieldPathSelectorService: 930 for _, v := range fpaov.values.([]*meta_service.Reference) { 931 values = append(values, v) 932 } 933 case Limit_FieldPathSelectorResource: 934 for _, v := range fpaov.values.([]*meta_resource.Reference) { 935 values = append(values, v) 936 } 937 case Limit_FieldPathSelectorRegion: 938 for _, v := range fpaov.values.([]string) { 939 values = append(values, v) 940 } 941 case Limit_FieldPathSelectorConfiguredLimit: 942 for _, v := range fpaov.values.([]int64) { 943 values = append(values, v) 944 } 945 case Limit_FieldPathSelectorActiveLimit: 946 for _, v := range fpaov.values.([]int64) { 947 values = append(values, v) 948 } 949 case Limit_FieldPathSelectorUsage: 950 for _, v := range fpaov.values.([]int64) { 951 values = append(values, v) 952 } 953 case Limit_FieldPathSelectorSources: 954 for _, v := range fpaov.values.([][]*limit_pool.Reference) { 955 values = append(values, v) 956 } 957 } 958 return 959 } 960 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) { 961 res, ok := fpaov.values.([]*Name) 962 return res, ok 963 } 964 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) { 965 res, ok := fpaov.values.([]*meta.Meta) 966 return res, ok 967 } 968 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsServiceArrayOfValues() ([]*meta_service.Reference, bool) { 969 res, ok := fpaov.values.([]*meta_service.Reference) 970 return res, ok 971 } 972 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsResourceArrayOfValues() ([]*meta_resource.Reference, bool) { 973 res, ok := fpaov.values.([]*meta_resource.Reference) 974 return res, ok 975 } 976 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsRegionArrayOfValues() ([]string, bool) { 977 res, ok := fpaov.values.([]string) 978 return res, ok 979 } 980 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsConfiguredLimitArrayOfValues() ([]int64, bool) { 981 res, ok := fpaov.values.([]int64) 982 return res, ok 983 } 984 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsActiveLimitArrayOfValues() ([]int64, bool) { 985 res, ok := fpaov.values.([]int64) 986 return res, ok 987 } 988 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsUsageArrayOfValues() ([]int64, bool) { 989 res, ok := fpaov.values.([]int64) 990 return res, ok 991 } 992 func (fpaov *Limit_FieldTerminalPathArrayOfValues) AsSourcesArrayOfValues() ([][]*limit_pool.Reference, bool) { 993 res, ok := fpaov.values.([][]*limit_pool.Reference) 994 return res, ok 995 } 996 997 type Limit_FieldSubPathArrayOfValues struct { 998 Limit_FieldPath 999 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 1000 } 1001 1002 var _ Limit_FieldPathArrayOfValues = (*Limit_FieldSubPathArrayOfValues)(nil) 1003 1004 func (fpsaov *Limit_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 1005 return fpsaov.subPathArrayOfValues.GetRawValues() 1006 } 1007 func (fpsaov *Limit_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) { 1008 res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues) 1009 return res, ok 1010 }