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