github.com/cloudwan/edgelq-sdk@v1.15.4/monitoring/resources/v4/common/common.pb.fieldmask.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/monitoring/proto/v4/common.proto 3 // DO NOT EDIT!!! 4 5 package common 6 7 import ( 8 "encoding/json" 9 "strings" 10 11 "google.golang.org/grpc/codes" 12 "google.golang.org/grpc/status" 13 "google.golang.org/protobuf/proto" 14 preflect "google.golang.org/protobuf/reflect/protoreflect" 15 googlefieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 16 17 gotenobject "github.com/cloudwan/goten-sdk/runtime/object" 18 ) 19 20 // proto imports 21 import ( 22 durationpb "google.golang.org/protobuf/types/known/durationpb" 23 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 24 ) 25 26 // ensure the imports are used 27 var ( 28 _ = new(json.Marshaler) 29 _ = strings.Builder{} 30 31 _ = codes.NotFound 32 _ = status.Status{} 33 _ = new(proto.Message) 34 _ = new(preflect.Message) 35 _ = googlefieldmaskpb.FieldMask{} 36 37 _ = new(gotenobject.FieldMask) 38 ) 39 40 // make sure we're using proto imports 41 var ( 42 _ = &durationpb.Duration{} 43 _ = ×tamppb.Timestamp{} 44 ) 45 46 type LabelDescriptor_FieldMask struct { 47 Paths []LabelDescriptor_FieldPath 48 } 49 50 func FullLabelDescriptor_FieldMask() *LabelDescriptor_FieldMask { 51 res := &LabelDescriptor_FieldMask{} 52 res.Paths = append(res.Paths, &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorKey}) 53 res.Paths = append(res.Paths, &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorValueType}) 54 res.Paths = append(res.Paths, &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorDescription}) 55 res.Paths = append(res.Paths, &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorDefaultValue}) 56 res.Paths = append(res.Paths, &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorDisabled}) 57 return res 58 } 59 60 func (fieldMask *LabelDescriptor_FieldMask) String() string { 61 if fieldMask == nil { 62 return "<nil>" 63 } 64 pathsStr := make([]string, 0, len(fieldMask.Paths)) 65 for _, path := range fieldMask.Paths { 66 pathsStr = append(pathsStr, path.String()) 67 } 68 return strings.Join(pathsStr, ", ") 69 } 70 71 func (fieldMask *LabelDescriptor_FieldMask) IsFull() bool { 72 if fieldMask == nil { 73 return false 74 } 75 presentSelectors := make([]bool, 5) 76 for _, path := range fieldMask.Paths { 77 if asFinal, ok := path.(*LabelDescriptor_FieldTerminalPath); ok { 78 presentSelectors[int(asFinal.selector)] = true 79 } 80 } 81 for _, flag := range presentSelectors { 82 if !flag { 83 return false 84 } 85 } 86 return true 87 } 88 89 func (fieldMask *LabelDescriptor_FieldMask) ProtoReflect() preflect.Message { 90 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 91 return ParseLabelDescriptor_FieldPath(raw) 92 }) 93 } 94 95 func (fieldMask *LabelDescriptor_FieldMask) ProtoMessage() {} 96 97 func (fieldMask *LabelDescriptor_FieldMask) Reset() { 98 if fieldMask != nil { 99 fieldMask.Paths = nil 100 } 101 } 102 103 func (fieldMask *LabelDescriptor_FieldMask) Subtract(other *LabelDescriptor_FieldMask) *LabelDescriptor_FieldMask { 104 result := &LabelDescriptor_FieldMask{} 105 removedSelectors := make([]bool, 5) 106 107 for _, path := range other.GetPaths() { 108 switch tp := path.(type) { 109 case *LabelDescriptor_FieldTerminalPath: 110 removedSelectors[int(tp.selector)] = true 111 } 112 } 113 for _, path := range fieldMask.GetPaths() { 114 if !removedSelectors[int(path.Selector())] { 115 result.Paths = append(result.Paths, path) 116 } 117 } 118 119 if len(result.Paths) == 0 { 120 return nil 121 } 122 return result 123 } 124 125 func (fieldMask *LabelDescriptor_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 126 return fieldMask.Subtract(other.(*LabelDescriptor_FieldMask)) 127 } 128 129 // FilterInputFields generates copy of field paths with output_only field paths removed 130 func (fieldMask *LabelDescriptor_FieldMask) FilterInputFields() *LabelDescriptor_FieldMask { 131 result := &LabelDescriptor_FieldMask{} 132 result.Paths = append(result.Paths, fieldMask.Paths...) 133 return result 134 } 135 136 // ToFieldMask is used for proto conversions 137 func (fieldMask *LabelDescriptor_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 138 protoFieldMask := &googlefieldmaskpb.FieldMask{} 139 for _, path := range fieldMask.Paths { 140 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 141 } 142 return protoFieldMask 143 } 144 145 func (fieldMask *LabelDescriptor_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 146 if fieldMask == nil { 147 return status.Error(codes.Internal, "target field mask is nil") 148 } 149 fieldMask.Paths = make([]LabelDescriptor_FieldPath, 0, len(protoFieldMask.Paths)) 150 for _, strPath := range protoFieldMask.Paths { 151 path, err := ParseLabelDescriptor_FieldPath(strPath) 152 if err != nil { 153 return err 154 } 155 fieldMask.Paths = append(fieldMask.Paths, path) 156 } 157 return nil 158 } 159 160 // implement methods required by customType 161 func (fieldMask LabelDescriptor_FieldMask) Marshal() ([]byte, error) { 162 protoFieldMask := fieldMask.ToProtoFieldMask() 163 return proto.Marshal(protoFieldMask) 164 } 165 166 func (fieldMask *LabelDescriptor_FieldMask) Unmarshal(data []byte) error { 167 protoFieldMask := &googlefieldmaskpb.FieldMask{} 168 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 169 return err 170 } 171 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 172 return err 173 } 174 return nil 175 } 176 177 func (fieldMask *LabelDescriptor_FieldMask) Size() int { 178 return proto.Size(fieldMask.ToProtoFieldMask()) 179 } 180 181 func (fieldMask LabelDescriptor_FieldMask) MarshalJSON() ([]byte, error) { 182 return json.Marshal(fieldMask.ToProtoFieldMask()) 183 } 184 185 func (fieldMask *LabelDescriptor_FieldMask) UnmarshalJSON(data []byte) error { 186 protoFieldMask := &googlefieldmaskpb.FieldMask{} 187 if err := json.Unmarshal(data, protoFieldMask); err != nil { 188 return err 189 } 190 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 191 return err 192 } 193 return nil 194 } 195 196 func (fieldMask *LabelDescriptor_FieldMask) AppendPath(path LabelDescriptor_FieldPath) { 197 fieldMask.Paths = append(fieldMask.Paths, path) 198 } 199 200 func (fieldMask *LabelDescriptor_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 201 fieldMask.Paths = append(fieldMask.Paths, path.(LabelDescriptor_FieldPath)) 202 } 203 204 func (fieldMask *LabelDescriptor_FieldMask) GetPaths() []LabelDescriptor_FieldPath { 205 if fieldMask == nil { 206 return nil 207 } 208 return fieldMask.Paths 209 } 210 211 func (fieldMask *LabelDescriptor_FieldMask) GetRawPaths() []gotenobject.FieldPath { 212 if fieldMask == nil { 213 return nil 214 } 215 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 216 for _, path := range fieldMask.Paths { 217 rawPaths = append(rawPaths, path) 218 } 219 return rawPaths 220 } 221 222 func (fieldMask *LabelDescriptor_FieldMask) SetFromCliFlag(raw string) error { 223 path, err := ParseLabelDescriptor_FieldPath(raw) 224 if err != nil { 225 return err 226 } 227 fieldMask.Paths = append(fieldMask.Paths, path) 228 return nil 229 } 230 231 func (fieldMask *LabelDescriptor_FieldMask) Set(target, source *LabelDescriptor) { 232 for _, path := range fieldMask.Paths { 233 val, _ := path.GetSingle(source) 234 // if val is nil, then field does not exist in source, skip 235 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 236 if val != nil { 237 path.WithIValue(val).SetTo(&target) 238 } 239 } 240 } 241 242 func (fieldMask *LabelDescriptor_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 243 fieldMask.Set(target.(*LabelDescriptor), source.(*LabelDescriptor)) 244 } 245 246 func (fieldMask *LabelDescriptor_FieldMask) Project(source *LabelDescriptor) *LabelDescriptor { 247 if source == nil { 248 return nil 249 } 250 if fieldMask == nil { 251 return source 252 } 253 result := &LabelDescriptor{} 254 255 for _, p := range fieldMask.Paths { 256 switch tp := p.(type) { 257 case *LabelDescriptor_FieldTerminalPath: 258 switch tp.selector { 259 case LabelDescriptor_FieldPathSelectorKey: 260 result.Key = source.Key 261 case LabelDescriptor_FieldPathSelectorValueType: 262 result.ValueType = source.ValueType 263 case LabelDescriptor_FieldPathSelectorDescription: 264 result.Description = source.Description 265 case LabelDescriptor_FieldPathSelectorDefaultValue: 266 result.DefaultValue = source.DefaultValue 267 case LabelDescriptor_FieldPathSelectorDisabled: 268 result.Disabled = source.Disabled 269 } 270 } 271 } 272 return result 273 } 274 275 func (fieldMask *LabelDescriptor_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 276 return fieldMask.Project(source.(*LabelDescriptor)) 277 } 278 279 func (fieldMask *LabelDescriptor_FieldMask) PathsCount() int { 280 if fieldMask == nil { 281 return 0 282 } 283 return len(fieldMask.Paths) 284 } 285 286 type LabelKeySet_FieldMask struct { 287 Paths []LabelKeySet_FieldPath 288 } 289 290 func FullLabelKeySet_FieldMask() *LabelKeySet_FieldMask { 291 res := &LabelKeySet_FieldMask{} 292 res.Paths = append(res.Paths, &LabelKeySet_FieldTerminalPath{selector: LabelKeySet_FieldPathSelectorLabelKeys}) 293 return res 294 } 295 296 func (fieldMask *LabelKeySet_FieldMask) String() string { 297 if fieldMask == nil { 298 return "<nil>" 299 } 300 pathsStr := make([]string, 0, len(fieldMask.Paths)) 301 for _, path := range fieldMask.Paths { 302 pathsStr = append(pathsStr, path.String()) 303 } 304 return strings.Join(pathsStr, ", ") 305 } 306 307 func (fieldMask *LabelKeySet_FieldMask) IsFull() bool { 308 if fieldMask == nil { 309 return false 310 } 311 presentSelectors := make([]bool, 1) 312 for _, path := range fieldMask.Paths { 313 if asFinal, ok := path.(*LabelKeySet_FieldTerminalPath); ok { 314 presentSelectors[int(asFinal.selector)] = true 315 } 316 } 317 for _, flag := range presentSelectors { 318 if !flag { 319 return false 320 } 321 } 322 return true 323 } 324 325 func (fieldMask *LabelKeySet_FieldMask) ProtoReflect() preflect.Message { 326 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 327 return ParseLabelKeySet_FieldPath(raw) 328 }) 329 } 330 331 func (fieldMask *LabelKeySet_FieldMask) ProtoMessage() {} 332 333 func (fieldMask *LabelKeySet_FieldMask) Reset() { 334 if fieldMask != nil { 335 fieldMask.Paths = nil 336 } 337 } 338 339 func (fieldMask *LabelKeySet_FieldMask) Subtract(other *LabelKeySet_FieldMask) *LabelKeySet_FieldMask { 340 result := &LabelKeySet_FieldMask{} 341 removedSelectors := make([]bool, 1) 342 343 for _, path := range other.GetPaths() { 344 switch tp := path.(type) { 345 case *LabelKeySet_FieldTerminalPath: 346 removedSelectors[int(tp.selector)] = true 347 } 348 } 349 for _, path := range fieldMask.GetPaths() { 350 if !removedSelectors[int(path.Selector())] { 351 result.Paths = append(result.Paths, path) 352 } 353 } 354 355 if len(result.Paths) == 0 { 356 return nil 357 } 358 return result 359 } 360 361 func (fieldMask *LabelKeySet_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 362 return fieldMask.Subtract(other.(*LabelKeySet_FieldMask)) 363 } 364 365 // FilterInputFields generates copy of field paths with output_only field paths removed 366 func (fieldMask *LabelKeySet_FieldMask) FilterInputFields() *LabelKeySet_FieldMask { 367 result := &LabelKeySet_FieldMask{} 368 result.Paths = append(result.Paths, fieldMask.Paths...) 369 return result 370 } 371 372 // ToFieldMask is used for proto conversions 373 func (fieldMask *LabelKeySet_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 374 protoFieldMask := &googlefieldmaskpb.FieldMask{} 375 for _, path := range fieldMask.Paths { 376 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 377 } 378 return protoFieldMask 379 } 380 381 func (fieldMask *LabelKeySet_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 382 if fieldMask == nil { 383 return status.Error(codes.Internal, "target field mask is nil") 384 } 385 fieldMask.Paths = make([]LabelKeySet_FieldPath, 0, len(protoFieldMask.Paths)) 386 for _, strPath := range protoFieldMask.Paths { 387 path, err := ParseLabelKeySet_FieldPath(strPath) 388 if err != nil { 389 return err 390 } 391 fieldMask.Paths = append(fieldMask.Paths, path) 392 } 393 return nil 394 } 395 396 // implement methods required by customType 397 func (fieldMask LabelKeySet_FieldMask) Marshal() ([]byte, error) { 398 protoFieldMask := fieldMask.ToProtoFieldMask() 399 return proto.Marshal(protoFieldMask) 400 } 401 402 func (fieldMask *LabelKeySet_FieldMask) Unmarshal(data []byte) error { 403 protoFieldMask := &googlefieldmaskpb.FieldMask{} 404 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 405 return err 406 } 407 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 408 return err 409 } 410 return nil 411 } 412 413 func (fieldMask *LabelKeySet_FieldMask) Size() int { 414 return proto.Size(fieldMask.ToProtoFieldMask()) 415 } 416 417 func (fieldMask LabelKeySet_FieldMask) MarshalJSON() ([]byte, error) { 418 return json.Marshal(fieldMask.ToProtoFieldMask()) 419 } 420 421 func (fieldMask *LabelKeySet_FieldMask) UnmarshalJSON(data []byte) error { 422 protoFieldMask := &googlefieldmaskpb.FieldMask{} 423 if err := json.Unmarshal(data, protoFieldMask); err != nil { 424 return err 425 } 426 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 427 return err 428 } 429 return nil 430 } 431 432 func (fieldMask *LabelKeySet_FieldMask) AppendPath(path LabelKeySet_FieldPath) { 433 fieldMask.Paths = append(fieldMask.Paths, path) 434 } 435 436 func (fieldMask *LabelKeySet_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 437 fieldMask.Paths = append(fieldMask.Paths, path.(LabelKeySet_FieldPath)) 438 } 439 440 func (fieldMask *LabelKeySet_FieldMask) GetPaths() []LabelKeySet_FieldPath { 441 if fieldMask == nil { 442 return nil 443 } 444 return fieldMask.Paths 445 } 446 447 func (fieldMask *LabelKeySet_FieldMask) GetRawPaths() []gotenobject.FieldPath { 448 if fieldMask == nil { 449 return nil 450 } 451 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 452 for _, path := range fieldMask.Paths { 453 rawPaths = append(rawPaths, path) 454 } 455 return rawPaths 456 } 457 458 func (fieldMask *LabelKeySet_FieldMask) SetFromCliFlag(raw string) error { 459 path, err := ParseLabelKeySet_FieldPath(raw) 460 if err != nil { 461 return err 462 } 463 fieldMask.Paths = append(fieldMask.Paths, path) 464 return nil 465 } 466 467 func (fieldMask *LabelKeySet_FieldMask) Set(target, source *LabelKeySet) { 468 for _, path := range fieldMask.Paths { 469 val, _ := path.GetSingle(source) 470 // if val is nil, then field does not exist in source, skip 471 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 472 if val != nil { 473 path.WithIValue(val).SetTo(&target) 474 } 475 } 476 } 477 478 func (fieldMask *LabelKeySet_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 479 fieldMask.Set(target.(*LabelKeySet), source.(*LabelKeySet)) 480 } 481 482 func (fieldMask *LabelKeySet_FieldMask) Project(source *LabelKeySet) *LabelKeySet { 483 if source == nil { 484 return nil 485 } 486 if fieldMask == nil { 487 return source 488 } 489 result := &LabelKeySet{} 490 491 for _, p := range fieldMask.Paths { 492 switch tp := p.(type) { 493 case *LabelKeySet_FieldTerminalPath: 494 switch tp.selector { 495 case LabelKeySet_FieldPathSelectorLabelKeys: 496 result.LabelKeys = source.LabelKeys 497 } 498 } 499 } 500 return result 501 } 502 503 func (fieldMask *LabelKeySet_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 504 return fieldMask.Project(source.(*LabelKeySet)) 505 } 506 507 func (fieldMask *LabelKeySet_FieldMask) PathsCount() int { 508 if fieldMask == nil { 509 return 0 510 } 511 return len(fieldMask.Paths) 512 } 513 514 type Distribution_FieldMask struct { 515 Paths []Distribution_FieldPath 516 } 517 518 func FullDistribution_FieldMask() *Distribution_FieldMask { 519 res := &Distribution_FieldMask{} 520 res.Paths = append(res.Paths, &Distribution_FieldTerminalPath{selector: Distribution_FieldPathSelectorCount}) 521 res.Paths = append(res.Paths, &Distribution_FieldTerminalPath{selector: Distribution_FieldPathSelectorMean}) 522 res.Paths = append(res.Paths, &Distribution_FieldTerminalPath{selector: Distribution_FieldPathSelectorSumOfSquaredDeviation}) 523 res.Paths = append(res.Paths, &Distribution_FieldTerminalPath{selector: Distribution_FieldPathSelectorRange}) 524 res.Paths = append(res.Paths, &Distribution_FieldTerminalPath{selector: Distribution_FieldPathSelectorBucketOptions}) 525 res.Paths = append(res.Paths, &Distribution_FieldTerminalPath{selector: Distribution_FieldPathSelectorBucketCounts}) 526 return res 527 } 528 529 func (fieldMask *Distribution_FieldMask) String() string { 530 if fieldMask == nil { 531 return "<nil>" 532 } 533 pathsStr := make([]string, 0, len(fieldMask.Paths)) 534 for _, path := range fieldMask.Paths { 535 pathsStr = append(pathsStr, path.String()) 536 } 537 return strings.Join(pathsStr, ", ") 538 } 539 540 func (fieldMask *Distribution_FieldMask) IsFull() bool { 541 if fieldMask == nil { 542 return false 543 } 544 presentSelectors := make([]bool, 6) 545 for _, path := range fieldMask.Paths { 546 if asFinal, ok := path.(*Distribution_FieldTerminalPath); ok { 547 presentSelectors[int(asFinal.selector)] = true 548 } 549 } 550 for _, flag := range presentSelectors { 551 if !flag { 552 return false 553 } 554 } 555 return true 556 } 557 558 func (fieldMask *Distribution_FieldMask) ProtoReflect() preflect.Message { 559 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 560 return ParseDistribution_FieldPath(raw) 561 }) 562 } 563 564 func (fieldMask *Distribution_FieldMask) ProtoMessage() {} 565 566 func (fieldMask *Distribution_FieldMask) Reset() { 567 if fieldMask != nil { 568 fieldMask.Paths = nil 569 } 570 } 571 572 func (fieldMask *Distribution_FieldMask) Subtract(other *Distribution_FieldMask) *Distribution_FieldMask { 573 result := &Distribution_FieldMask{} 574 removedSelectors := make([]bool, 6) 575 otherSubMasks := map[Distribution_FieldPathSelector]gotenobject.FieldMask{ 576 Distribution_FieldPathSelectorRange: &Distribution_Range_FieldMask{}, 577 Distribution_FieldPathSelectorBucketOptions: &Distribution_BucketOptions_FieldMask{}, 578 } 579 mySubMasks := map[Distribution_FieldPathSelector]gotenobject.FieldMask{ 580 Distribution_FieldPathSelectorRange: &Distribution_Range_FieldMask{}, 581 Distribution_FieldPathSelectorBucketOptions: &Distribution_BucketOptions_FieldMask{}, 582 } 583 584 for _, path := range other.GetPaths() { 585 switch tp := path.(type) { 586 case *Distribution_FieldTerminalPath: 587 removedSelectors[int(tp.selector)] = true 588 case *Distribution_FieldSubPath: 589 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 590 } 591 } 592 for _, path := range fieldMask.GetPaths() { 593 if !removedSelectors[int(path.Selector())] { 594 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 595 if tp, ok := path.(*Distribution_FieldTerminalPath); ok { 596 switch tp.selector { 597 case Distribution_FieldPathSelectorRange: 598 mySubMasks[Distribution_FieldPathSelectorRange] = FullDistribution_Range_FieldMask() 599 case Distribution_FieldPathSelectorBucketOptions: 600 mySubMasks[Distribution_FieldPathSelectorBucketOptions] = FullDistribution_BucketOptions_FieldMask() 601 } 602 } else if tp, ok := path.(*Distribution_FieldSubPath); ok { 603 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 604 } 605 } else { 606 result.Paths = append(result.Paths, path) 607 } 608 } 609 } 610 for selector, mySubMask := range mySubMasks { 611 if mySubMask.PathsCount() > 0 { 612 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 613 result.Paths = append(result.Paths, &Distribution_FieldSubPath{selector: selector, subPath: allowedPath}) 614 } 615 } 616 } 617 618 if len(result.Paths) == 0 { 619 return nil 620 } 621 return result 622 } 623 624 func (fieldMask *Distribution_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 625 return fieldMask.Subtract(other.(*Distribution_FieldMask)) 626 } 627 628 // FilterInputFields generates copy of field paths with output_only field paths removed 629 func (fieldMask *Distribution_FieldMask) FilterInputFields() *Distribution_FieldMask { 630 result := &Distribution_FieldMask{} 631 result.Paths = append(result.Paths, fieldMask.Paths...) 632 return result 633 } 634 635 // ToFieldMask is used for proto conversions 636 func (fieldMask *Distribution_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 637 protoFieldMask := &googlefieldmaskpb.FieldMask{} 638 for _, path := range fieldMask.Paths { 639 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 640 } 641 return protoFieldMask 642 } 643 644 func (fieldMask *Distribution_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 645 if fieldMask == nil { 646 return status.Error(codes.Internal, "target field mask is nil") 647 } 648 fieldMask.Paths = make([]Distribution_FieldPath, 0, len(protoFieldMask.Paths)) 649 for _, strPath := range protoFieldMask.Paths { 650 path, err := ParseDistribution_FieldPath(strPath) 651 if err != nil { 652 return err 653 } 654 fieldMask.Paths = append(fieldMask.Paths, path) 655 } 656 return nil 657 } 658 659 // implement methods required by customType 660 func (fieldMask Distribution_FieldMask) Marshal() ([]byte, error) { 661 protoFieldMask := fieldMask.ToProtoFieldMask() 662 return proto.Marshal(protoFieldMask) 663 } 664 665 func (fieldMask *Distribution_FieldMask) Unmarshal(data []byte) error { 666 protoFieldMask := &googlefieldmaskpb.FieldMask{} 667 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 668 return err 669 } 670 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 671 return err 672 } 673 return nil 674 } 675 676 func (fieldMask *Distribution_FieldMask) Size() int { 677 return proto.Size(fieldMask.ToProtoFieldMask()) 678 } 679 680 func (fieldMask Distribution_FieldMask) MarshalJSON() ([]byte, error) { 681 return json.Marshal(fieldMask.ToProtoFieldMask()) 682 } 683 684 func (fieldMask *Distribution_FieldMask) UnmarshalJSON(data []byte) error { 685 protoFieldMask := &googlefieldmaskpb.FieldMask{} 686 if err := json.Unmarshal(data, protoFieldMask); err != nil { 687 return err 688 } 689 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 690 return err 691 } 692 return nil 693 } 694 695 func (fieldMask *Distribution_FieldMask) AppendPath(path Distribution_FieldPath) { 696 fieldMask.Paths = append(fieldMask.Paths, path) 697 } 698 699 func (fieldMask *Distribution_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 700 fieldMask.Paths = append(fieldMask.Paths, path.(Distribution_FieldPath)) 701 } 702 703 func (fieldMask *Distribution_FieldMask) GetPaths() []Distribution_FieldPath { 704 if fieldMask == nil { 705 return nil 706 } 707 return fieldMask.Paths 708 } 709 710 func (fieldMask *Distribution_FieldMask) GetRawPaths() []gotenobject.FieldPath { 711 if fieldMask == nil { 712 return nil 713 } 714 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 715 for _, path := range fieldMask.Paths { 716 rawPaths = append(rawPaths, path) 717 } 718 return rawPaths 719 } 720 721 func (fieldMask *Distribution_FieldMask) SetFromCliFlag(raw string) error { 722 path, err := ParseDistribution_FieldPath(raw) 723 if err != nil { 724 return err 725 } 726 fieldMask.Paths = append(fieldMask.Paths, path) 727 return nil 728 } 729 730 func (fieldMask *Distribution_FieldMask) Set(target, source *Distribution) { 731 for _, path := range fieldMask.Paths { 732 val, _ := path.GetSingle(source) 733 // if val is nil, then field does not exist in source, skip 734 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 735 if val != nil { 736 path.WithIValue(val).SetTo(&target) 737 } 738 } 739 } 740 741 func (fieldMask *Distribution_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 742 fieldMask.Set(target.(*Distribution), source.(*Distribution)) 743 } 744 745 func (fieldMask *Distribution_FieldMask) Project(source *Distribution) *Distribution { 746 if source == nil { 747 return nil 748 } 749 if fieldMask == nil { 750 return source 751 } 752 result := &Distribution{} 753 rangeMask := &Distribution_Range_FieldMask{} 754 wholeRangeAccepted := false 755 bucketOptionsMask := &Distribution_BucketOptions_FieldMask{} 756 wholeBucketOptionsAccepted := false 757 758 for _, p := range fieldMask.Paths { 759 switch tp := p.(type) { 760 case *Distribution_FieldTerminalPath: 761 switch tp.selector { 762 case Distribution_FieldPathSelectorCount: 763 result.Count = source.Count 764 case Distribution_FieldPathSelectorMean: 765 result.Mean = source.Mean 766 case Distribution_FieldPathSelectorSumOfSquaredDeviation: 767 result.SumOfSquaredDeviation = source.SumOfSquaredDeviation 768 case Distribution_FieldPathSelectorRange: 769 result.Range = source.Range 770 wholeRangeAccepted = true 771 case Distribution_FieldPathSelectorBucketOptions: 772 result.BucketOptions = source.BucketOptions 773 wholeBucketOptionsAccepted = true 774 case Distribution_FieldPathSelectorBucketCounts: 775 result.BucketCounts = source.BucketCounts 776 } 777 case *Distribution_FieldSubPath: 778 switch tp.selector { 779 case Distribution_FieldPathSelectorRange: 780 rangeMask.AppendPath(tp.subPath.(DistributionRange_FieldPath)) 781 case Distribution_FieldPathSelectorBucketOptions: 782 bucketOptionsMask.AppendPath(tp.subPath.(DistributionBucketOptions_FieldPath)) 783 } 784 } 785 } 786 if wholeRangeAccepted == false && len(rangeMask.Paths) > 0 { 787 result.Range = rangeMask.Project(source.GetRange()) 788 } 789 if wholeBucketOptionsAccepted == false && len(bucketOptionsMask.Paths) > 0 { 790 result.BucketOptions = bucketOptionsMask.Project(source.GetBucketOptions()) 791 } 792 return result 793 } 794 795 func (fieldMask *Distribution_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 796 return fieldMask.Project(source.(*Distribution)) 797 } 798 799 func (fieldMask *Distribution_FieldMask) PathsCount() int { 800 if fieldMask == nil { 801 return 0 802 } 803 return len(fieldMask.Paths) 804 } 805 806 type Distribution_Range_FieldMask struct { 807 Paths []DistributionRange_FieldPath 808 } 809 810 func FullDistribution_Range_FieldMask() *Distribution_Range_FieldMask { 811 res := &Distribution_Range_FieldMask{} 812 res.Paths = append(res.Paths, &DistributionRange_FieldTerminalPath{selector: DistributionRange_FieldPathSelectorMin}) 813 res.Paths = append(res.Paths, &DistributionRange_FieldTerminalPath{selector: DistributionRange_FieldPathSelectorMax}) 814 return res 815 } 816 817 func (fieldMask *Distribution_Range_FieldMask) String() string { 818 if fieldMask == nil { 819 return "<nil>" 820 } 821 pathsStr := make([]string, 0, len(fieldMask.Paths)) 822 for _, path := range fieldMask.Paths { 823 pathsStr = append(pathsStr, path.String()) 824 } 825 return strings.Join(pathsStr, ", ") 826 } 827 828 func (fieldMask *Distribution_Range_FieldMask) IsFull() bool { 829 if fieldMask == nil { 830 return false 831 } 832 presentSelectors := make([]bool, 2) 833 for _, path := range fieldMask.Paths { 834 if asFinal, ok := path.(*DistributionRange_FieldTerminalPath); ok { 835 presentSelectors[int(asFinal.selector)] = true 836 } 837 } 838 for _, flag := range presentSelectors { 839 if !flag { 840 return false 841 } 842 } 843 return true 844 } 845 846 func (fieldMask *Distribution_Range_FieldMask) ProtoReflect() preflect.Message { 847 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 848 return ParseDistributionRange_FieldPath(raw) 849 }) 850 } 851 852 func (fieldMask *Distribution_Range_FieldMask) ProtoMessage() {} 853 854 func (fieldMask *Distribution_Range_FieldMask) Reset() { 855 if fieldMask != nil { 856 fieldMask.Paths = nil 857 } 858 } 859 860 func (fieldMask *Distribution_Range_FieldMask) Subtract(other *Distribution_Range_FieldMask) *Distribution_Range_FieldMask { 861 result := &Distribution_Range_FieldMask{} 862 removedSelectors := make([]bool, 2) 863 864 for _, path := range other.GetPaths() { 865 switch tp := path.(type) { 866 case *DistributionRange_FieldTerminalPath: 867 removedSelectors[int(tp.selector)] = true 868 } 869 } 870 for _, path := range fieldMask.GetPaths() { 871 if !removedSelectors[int(path.Selector())] { 872 result.Paths = append(result.Paths, path) 873 } 874 } 875 876 if len(result.Paths) == 0 { 877 return nil 878 } 879 return result 880 } 881 882 func (fieldMask *Distribution_Range_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 883 return fieldMask.Subtract(other.(*Distribution_Range_FieldMask)) 884 } 885 886 // FilterInputFields generates copy of field paths with output_only field paths removed 887 func (fieldMask *Distribution_Range_FieldMask) FilterInputFields() *Distribution_Range_FieldMask { 888 result := &Distribution_Range_FieldMask{} 889 result.Paths = append(result.Paths, fieldMask.Paths...) 890 return result 891 } 892 893 // ToFieldMask is used for proto conversions 894 func (fieldMask *Distribution_Range_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 895 protoFieldMask := &googlefieldmaskpb.FieldMask{} 896 for _, path := range fieldMask.Paths { 897 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 898 } 899 return protoFieldMask 900 } 901 902 func (fieldMask *Distribution_Range_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 903 if fieldMask == nil { 904 return status.Error(codes.Internal, "target field mask is nil") 905 } 906 fieldMask.Paths = make([]DistributionRange_FieldPath, 0, len(protoFieldMask.Paths)) 907 for _, strPath := range protoFieldMask.Paths { 908 path, err := ParseDistributionRange_FieldPath(strPath) 909 if err != nil { 910 return err 911 } 912 fieldMask.Paths = append(fieldMask.Paths, path) 913 } 914 return nil 915 } 916 917 // implement methods required by customType 918 func (fieldMask Distribution_Range_FieldMask) Marshal() ([]byte, error) { 919 protoFieldMask := fieldMask.ToProtoFieldMask() 920 return proto.Marshal(protoFieldMask) 921 } 922 923 func (fieldMask *Distribution_Range_FieldMask) Unmarshal(data []byte) error { 924 protoFieldMask := &googlefieldmaskpb.FieldMask{} 925 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 926 return err 927 } 928 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 929 return err 930 } 931 return nil 932 } 933 934 func (fieldMask *Distribution_Range_FieldMask) Size() int { 935 return proto.Size(fieldMask.ToProtoFieldMask()) 936 } 937 938 func (fieldMask Distribution_Range_FieldMask) MarshalJSON() ([]byte, error) { 939 return json.Marshal(fieldMask.ToProtoFieldMask()) 940 } 941 942 func (fieldMask *Distribution_Range_FieldMask) UnmarshalJSON(data []byte) error { 943 protoFieldMask := &googlefieldmaskpb.FieldMask{} 944 if err := json.Unmarshal(data, protoFieldMask); err != nil { 945 return err 946 } 947 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 948 return err 949 } 950 return nil 951 } 952 953 func (fieldMask *Distribution_Range_FieldMask) AppendPath(path DistributionRange_FieldPath) { 954 fieldMask.Paths = append(fieldMask.Paths, path) 955 } 956 957 func (fieldMask *Distribution_Range_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 958 fieldMask.Paths = append(fieldMask.Paths, path.(DistributionRange_FieldPath)) 959 } 960 961 func (fieldMask *Distribution_Range_FieldMask) GetPaths() []DistributionRange_FieldPath { 962 if fieldMask == nil { 963 return nil 964 } 965 return fieldMask.Paths 966 } 967 968 func (fieldMask *Distribution_Range_FieldMask) GetRawPaths() []gotenobject.FieldPath { 969 if fieldMask == nil { 970 return nil 971 } 972 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 973 for _, path := range fieldMask.Paths { 974 rawPaths = append(rawPaths, path) 975 } 976 return rawPaths 977 } 978 979 func (fieldMask *Distribution_Range_FieldMask) SetFromCliFlag(raw string) error { 980 path, err := ParseDistributionRange_FieldPath(raw) 981 if err != nil { 982 return err 983 } 984 fieldMask.Paths = append(fieldMask.Paths, path) 985 return nil 986 } 987 988 func (fieldMask *Distribution_Range_FieldMask) Set(target, source *Distribution_Range) { 989 for _, path := range fieldMask.Paths { 990 val, _ := path.GetSingle(source) 991 // if val is nil, then field does not exist in source, skip 992 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 993 if val != nil { 994 path.WithIValue(val).SetTo(&target) 995 } 996 } 997 } 998 999 func (fieldMask *Distribution_Range_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1000 fieldMask.Set(target.(*Distribution_Range), source.(*Distribution_Range)) 1001 } 1002 1003 func (fieldMask *Distribution_Range_FieldMask) Project(source *Distribution_Range) *Distribution_Range { 1004 if source == nil { 1005 return nil 1006 } 1007 if fieldMask == nil { 1008 return source 1009 } 1010 result := &Distribution_Range{} 1011 1012 for _, p := range fieldMask.Paths { 1013 switch tp := p.(type) { 1014 case *DistributionRange_FieldTerminalPath: 1015 switch tp.selector { 1016 case DistributionRange_FieldPathSelectorMin: 1017 result.Min = source.Min 1018 case DistributionRange_FieldPathSelectorMax: 1019 result.Max = source.Max 1020 } 1021 } 1022 } 1023 return result 1024 } 1025 1026 func (fieldMask *Distribution_Range_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1027 return fieldMask.Project(source.(*Distribution_Range)) 1028 } 1029 1030 func (fieldMask *Distribution_Range_FieldMask) PathsCount() int { 1031 if fieldMask == nil { 1032 return 0 1033 } 1034 return len(fieldMask.Paths) 1035 } 1036 1037 type Distribution_BucketOptions_FieldMask struct { 1038 Paths []DistributionBucketOptions_FieldPath 1039 } 1040 1041 func FullDistribution_BucketOptions_FieldMask() *Distribution_BucketOptions_FieldMask { 1042 res := &Distribution_BucketOptions_FieldMask{} 1043 res.Paths = append(res.Paths, &DistributionBucketOptions_FieldTerminalPath{selector: DistributionBucketOptions_FieldPathSelectorLinearBuckets}) 1044 res.Paths = append(res.Paths, &DistributionBucketOptions_FieldTerminalPath{selector: DistributionBucketOptions_FieldPathSelectorExponentialBuckets}) 1045 res.Paths = append(res.Paths, &DistributionBucketOptions_FieldTerminalPath{selector: DistributionBucketOptions_FieldPathSelectorExplicitBuckets}) 1046 res.Paths = append(res.Paths, &DistributionBucketOptions_FieldTerminalPath{selector: DistributionBucketOptions_FieldPathSelectorDynamicBuckets}) 1047 return res 1048 } 1049 1050 func (fieldMask *Distribution_BucketOptions_FieldMask) String() string { 1051 if fieldMask == nil { 1052 return "<nil>" 1053 } 1054 pathsStr := make([]string, 0, len(fieldMask.Paths)) 1055 for _, path := range fieldMask.Paths { 1056 pathsStr = append(pathsStr, path.String()) 1057 } 1058 return strings.Join(pathsStr, ", ") 1059 } 1060 1061 func (fieldMask *Distribution_BucketOptions_FieldMask) IsFull() bool { 1062 if fieldMask == nil { 1063 return false 1064 } 1065 presentSelectors := make([]bool, 4) 1066 for _, path := range fieldMask.Paths { 1067 if asFinal, ok := path.(*DistributionBucketOptions_FieldTerminalPath); ok { 1068 presentSelectors[int(asFinal.selector)] = true 1069 } 1070 } 1071 for _, flag := range presentSelectors { 1072 if !flag { 1073 return false 1074 } 1075 } 1076 return true 1077 } 1078 1079 func (fieldMask *Distribution_BucketOptions_FieldMask) ProtoReflect() preflect.Message { 1080 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 1081 return ParseDistributionBucketOptions_FieldPath(raw) 1082 }) 1083 } 1084 1085 func (fieldMask *Distribution_BucketOptions_FieldMask) ProtoMessage() {} 1086 1087 func (fieldMask *Distribution_BucketOptions_FieldMask) Reset() { 1088 if fieldMask != nil { 1089 fieldMask.Paths = nil 1090 } 1091 } 1092 1093 func (fieldMask *Distribution_BucketOptions_FieldMask) Subtract(other *Distribution_BucketOptions_FieldMask) *Distribution_BucketOptions_FieldMask { 1094 result := &Distribution_BucketOptions_FieldMask{} 1095 removedSelectors := make([]bool, 4) 1096 otherSubMasks := map[DistributionBucketOptions_FieldPathSelector]gotenobject.FieldMask{ 1097 DistributionBucketOptions_FieldPathSelectorLinearBuckets: &Distribution_BucketOptions_Linear_FieldMask{}, 1098 DistributionBucketOptions_FieldPathSelectorExponentialBuckets: &Distribution_BucketOptions_Exponential_FieldMask{}, 1099 DistributionBucketOptions_FieldPathSelectorExplicitBuckets: &Distribution_BucketOptions_Explicit_FieldMask{}, 1100 DistributionBucketOptions_FieldPathSelectorDynamicBuckets: &Distribution_BucketOptions_Dynamic_FieldMask{}, 1101 } 1102 mySubMasks := map[DistributionBucketOptions_FieldPathSelector]gotenobject.FieldMask{ 1103 DistributionBucketOptions_FieldPathSelectorLinearBuckets: &Distribution_BucketOptions_Linear_FieldMask{}, 1104 DistributionBucketOptions_FieldPathSelectorExponentialBuckets: &Distribution_BucketOptions_Exponential_FieldMask{}, 1105 DistributionBucketOptions_FieldPathSelectorExplicitBuckets: &Distribution_BucketOptions_Explicit_FieldMask{}, 1106 DistributionBucketOptions_FieldPathSelectorDynamicBuckets: &Distribution_BucketOptions_Dynamic_FieldMask{}, 1107 } 1108 1109 for _, path := range other.GetPaths() { 1110 switch tp := path.(type) { 1111 case *DistributionBucketOptions_FieldTerminalPath: 1112 removedSelectors[int(tp.selector)] = true 1113 case *DistributionBucketOptions_FieldSubPath: 1114 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 1115 } 1116 } 1117 for _, path := range fieldMask.GetPaths() { 1118 if !removedSelectors[int(path.Selector())] { 1119 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 1120 if tp, ok := path.(*DistributionBucketOptions_FieldTerminalPath); ok { 1121 switch tp.selector { 1122 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 1123 mySubMasks[DistributionBucketOptions_FieldPathSelectorLinearBuckets] = FullDistribution_BucketOptions_Linear_FieldMask() 1124 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 1125 mySubMasks[DistributionBucketOptions_FieldPathSelectorExponentialBuckets] = FullDistribution_BucketOptions_Exponential_FieldMask() 1126 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 1127 mySubMasks[DistributionBucketOptions_FieldPathSelectorExplicitBuckets] = FullDistribution_BucketOptions_Explicit_FieldMask() 1128 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 1129 mySubMasks[DistributionBucketOptions_FieldPathSelectorDynamicBuckets] = FullDistribution_BucketOptions_Dynamic_FieldMask() 1130 } 1131 } else if tp, ok := path.(*DistributionBucketOptions_FieldSubPath); ok { 1132 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 1133 } 1134 } else { 1135 result.Paths = append(result.Paths, path) 1136 } 1137 } 1138 } 1139 for selector, mySubMask := range mySubMasks { 1140 if mySubMask.PathsCount() > 0 { 1141 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 1142 result.Paths = append(result.Paths, &DistributionBucketOptions_FieldSubPath{selector: selector, subPath: allowedPath}) 1143 } 1144 } 1145 } 1146 1147 if len(result.Paths) == 0 { 1148 return nil 1149 } 1150 return result 1151 } 1152 1153 func (fieldMask *Distribution_BucketOptions_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1154 return fieldMask.Subtract(other.(*Distribution_BucketOptions_FieldMask)) 1155 } 1156 1157 // FilterInputFields generates copy of field paths with output_only field paths removed 1158 func (fieldMask *Distribution_BucketOptions_FieldMask) FilterInputFields() *Distribution_BucketOptions_FieldMask { 1159 result := &Distribution_BucketOptions_FieldMask{} 1160 result.Paths = append(result.Paths, fieldMask.Paths...) 1161 return result 1162 } 1163 1164 // ToFieldMask is used for proto conversions 1165 func (fieldMask *Distribution_BucketOptions_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1166 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1167 for _, path := range fieldMask.Paths { 1168 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1169 } 1170 return protoFieldMask 1171 } 1172 1173 func (fieldMask *Distribution_BucketOptions_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1174 if fieldMask == nil { 1175 return status.Error(codes.Internal, "target field mask is nil") 1176 } 1177 fieldMask.Paths = make([]DistributionBucketOptions_FieldPath, 0, len(protoFieldMask.Paths)) 1178 for _, strPath := range protoFieldMask.Paths { 1179 path, err := ParseDistributionBucketOptions_FieldPath(strPath) 1180 if err != nil { 1181 return err 1182 } 1183 fieldMask.Paths = append(fieldMask.Paths, path) 1184 } 1185 return nil 1186 } 1187 1188 // implement methods required by customType 1189 func (fieldMask Distribution_BucketOptions_FieldMask) Marshal() ([]byte, error) { 1190 protoFieldMask := fieldMask.ToProtoFieldMask() 1191 return proto.Marshal(protoFieldMask) 1192 } 1193 1194 func (fieldMask *Distribution_BucketOptions_FieldMask) Unmarshal(data []byte) error { 1195 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1196 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1197 return err 1198 } 1199 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1200 return err 1201 } 1202 return nil 1203 } 1204 1205 func (fieldMask *Distribution_BucketOptions_FieldMask) Size() int { 1206 return proto.Size(fieldMask.ToProtoFieldMask()) 1207 } 1208 1209 func (fieldMask Distribution_BucketOptions_FieldMask) MarshalJSON() ([]byte, error) { 1210 return json.Marshal(fieldMask.ToProtoFieldMask()) 1211 } 1212 1213 func (fieldMask *Distribution_BucketOptions_FieldMask) UnmarshalJSON(data []byte) error { 1214 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1215 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1216 return err 1217 } 1218 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1219 return err 1220 } 1221 return nil 1222 } 1223 1224 func (fieldMask *Distribution_BucketOptions_FieldMask) AppendPath(path DistributionBucketOptions_FieldPath) { 1225 fieldMask.Paths = append(fieldMask.Paths, path) 1226 } 1227 1228 func (fieldMask *Distribution_BucketOptions_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1229 fieldMask.Paths = append(fieldMask.Paths, path.(DistributionBucketOptions_FieldPath)) 1230 } 1231 1232 func (fieldMask *Distribution_BucketOptions_FieldMask) GetPaths() []DistributionBucketOptions_FieldPath { 1233 if fieldMask == nil { 1234 return nil 1235 } 1236 return fieldMask.Paths 1237 } 1238 1239 func (fieldMask *Distribution_BucketOptions_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1240 if fieldMask == nil { 1241 return nil 1242 } 1243 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1244 for _, path := range fieldMask.Paths { 1245 rawPaths = append(rawPaths, path) 1246 } 1247 return rawPaths 1248 } 1249 1250 func (fieldMask *Distribution_BucketOptions_FieldMask) SetFromCliFlag(raw string) error { 1251 path, err := ParseDistributionBucketOptions_FieldPath(raw) 1252 if err != nil { 1253 return err 1254 } 1255 fieldMask.Paths = append(fieldMask.Paths, path) 1256 return nil 1257 } 1258 1259 func (fieldMask *Distribution_BucketOptions_FieldMask) Set(target, source *Distribution_BucketOptions) { 1260 for _, path := range fieldMask.Paths { 1261 val, _ := path.GetSingle(source) 1262 // if val is nil, then field does not exist in source, skip 1263 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1264 if val != nil { 1265 path.WithIValue(val).SetTo(&target) 1266 } 1267 } 1268 } 1269 1270 func (fieldMask *Distribution_BucketOptions_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1271 fieldMask.Set(target.(*Distribution_BucketOptions), source.(*Distribution_BucketOptions)) 1272 } 1273 1274 func (fieldMask *Distribution_BucketOptions_FieldMask) Project(source *Distribution_BucketOptions) *Distribution_BucketOptions { 1275 if source == nil { 1276 return nil 1277 } 1278 if fieldMask == nil { 1279 return source 1280 } 1281 result := &Distribution_BucketOptions{} 1282 linearBucketsMask := &Distribution_BucketOptions_Linear_FieldMask{} 1283 wholeLinearBucketsAccepted := false 1284 exponentialBucketsMask := &Distribution_BucketOptions_Exponential_FieldMask{} 1285 wholeExponentialBucketsAccepted := false 1286 explicitBucketsMask := &Distribution_BucketOptions_Explicit_FieldMask{} 1287 wholeExplicitBucketsAccepted := false 1288 dynamicBucketsMask := &Distribution_BucketOptions_Dynamic_FieldMask{} 1289 wholeDynamicBucketsAccepted := false 1290 1291 for _, p := range fieldMask.Paths { 1292 switch tp := p.(type) { 1293 case *DistributionBucketOptions_FieldTerminalPath: 1294 switch tp.selector { 1295 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 1296 if source, ok := source.Options.(*Distribution_BucketOptions_LinearBuckets); ok { 1297 result.Options = &Distribution_BucketOptions_LinearBuckets{ 1298 LinearBuckets: source.LinearBuckets, 1299 } 1300 } 1301 wholeLinearBucketsAccepted = true 1302 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 1303 if source, ok := source.Options.(*Distribution_BucketOptions_ExponentialBuckets); ok { 1304 result.Options = &Distribution_BucketOptions_ExponentialBuckets{ 1305 ExponentialBuckets: source.ExponentialBuckets, 1306 } 1307 } 1308 wholeExponentialBucketsAccepted = true 1309 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 1310 if source, ok := source.Options.(*Distribution_BucketOptions_ExplicitBuckets); ok { 1311 result.Options = &Distribution_BucketOptions_ExplicitBuckets{ 1312 ExplicitBuckets: source.ExplicitBuckets, 1313 } 1314 } 1315 wholeExplicitBucketsAccepted = true 1316 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 1317 if source, ok := source.Options.(*Distribution_BucketOptions_DynamicBuckets); ok { 1318 result.Options = &Distribution_BucketOptions_DynamicBuckets{ 1319 DynamicBuckets: source.DynamicBuckets, 1320 } 1321 } 1322 wholeDynamicBucketsAccepted = true 1323 } 1324 case *DistributionBucketOptions_FieldSubPath: 1325 switch tp.selector { 1326 case DistributionBucketOptions_FieldPathSelectorLinearBuckets: 1327 linearBucketsMask.AppendPath(tp.subPath.(DistributionBucketOptionsLinear_FieldPath)) 1328 case DistributionBucketOptions_FieldPathSelectorExponentialBuckets: 1329 exponentialBucketsMask.AppendPath(tp.subPath.(DistributionBucketOptionsExponential_FieldPath)) 1330 case DistributionBucketOptions_FieldPathSelectorExplicitBuckets: 1331 explicitBucketsMask.AppendPath(tp.subPath.(DistributionBucketOptionsExplicit_FieldPath)) 1332 case DistributionBucketOptions_FieldPathSelectorDynamicBuckets: 1333 dynamicBucketsMask.AppendPath(tp.subPath.(DistributionBucketOptionsDynamic_FieldPath)) 1334 } 1335 } 1336 } 1337 if wholeLinearBucketsAccepted == false && len(linearBucketsMask.Paths) > 0 { 1338 if asOneOf, ok := source.Options.(*Distribution_BucketOptions_LinearBuckets); ok { 1339 result.Options = (*Distribution_BucketOptions_LinearBuckets)(nil) 1340 if asOneOf != nil { 1341 oneOfRes := &Distribution_BucketOptions_LinearBuckets{} 1342 oneOfRes.LinearBuckets = linearBucketsMask.Project(asOneOf.LinearBuckets) 1343 result.Options = oneOfRes 1344 } 1345 } 1346 } 1347 if wholeExponentialBucketsAccepted == false && len(exponentialBucketsMask.Paths) > 0 { 1348 if asOneOf, ok := source.Options.(*Distribution_BucketOptions_ExponentialBuckets); ok { 1349 result.Options = (*Distribution_BucketOptions_ExponentialBuckets)(nil) 1350 if asOneOf != nil { 1351 oneOfRes := &Distribution_BucketOptions_ExponentialBuckets{} 1352 oneOfRes.ExponentialBuckets = exponentialBucketsMask.Project(asOneOf.ExponentialBuckets) 1353 result.Options = oneOfRes 1354 } 1355 } 1356 } 1357 if wholeExplicitBucketsAccepted == false && len(explicitBucketsMask.Paths) > 0 { 1358 if asOneOf, ok := source.Options.(*Distribution_BucketOptions_ExplicitBuckets); ok { 1359 result.Options = (*Distribution_BucketOptions_ExplicitBuckets)(nil) 1360 if asOneOf != nil { 1361 oneOfRes := &Distribution_BucketOptions_ExplicitBuckets{} 1362 oneOfRes.ExplicitBuckets = explicitBucketsMask.Project(asOneOf.ExplicitBuckets) 1363 result.Options = oneOfRes 1364 } 1365 } 1366 } 1367 if wholeDynamicBucketsAccepted == false && len(dynamicBucketsMask.Paths) > 0 { 1368 if asOneOf, ok := source.Options.(*Distribution_BucketOptions_DynamicBuckets); ok { 1369 result.Options = (*Distribution_BucketOptions_DynamicBuckets)(nil) 1370 if asOneOf != nil { 1371 oneOfRes := &Distribution_BucketOptions_DynamicBuckets{} 1372 oneOfRes.DynamicBuckets = dynamicBucketsMask.Project(asOneOf.DynamicBuckets) 1373 result.Options = oneOfRes 1374 } 1375 } 1376 } 1377 return result 1378 } 1379 1380 func (fieldMask *Distribution_BucketOptions_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1381 return fieldMask.Project(source.(*Distribution_BucketOptions)) 1382 } 1383 1384 func (fieldMask *Distribution_BucketOptions_FieldMask) PathsCount() int { 1385 if fieldMask == nil { 1386 return 0 1387 } 1388 return len(fieldMask.Paths) 1389 } 1390 1391 type Distribution_BucketOptions_Linear_FieldMask struct { 1392 Paths []DistributionBucketOptionsLinear_FieldPath 1393 } 1394 1395 func FullDistribution_BucketOptions_Linear_FieldMask() *Distribution_BucketOptions_Linear_FieldMask { 1396 res := &Distribution_BucketOptions_Linear_FieldMask{} 1397 res.Paths = append(res.Paths, &DistributionBucketOptionsLinear_FieldTerminalPath{selector: DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets}) 1398 res.Paths = append(res.Paths, &DistributionBucketOptionsLinear_FieldTerminalPath{selector: DistributionBucketOptionsLinear_FieldPathSelectorWidth}) 1399 res.Paths = append(res.Paths, &DistributionBucketOptionsLinear_FieldTerminalPath{selector: DistributionBucketOptionsLinear_FieldPathSelectorOffset}) 1400 return res 1401 } 1402 1403 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) String() string { 1404 if fieldMask == nil { 1405 return "<nil>" 1406 } 1407 pathsStr := make([]string, 0, len(fieldMask.Paths)) 1408 for _, path := range fieldMask.Paths { 1409 pathsStr = append(pathsStr, path.String()) 1410 } 1411 return strings.Join(pathsStr, ", ") 1412 } 1413 1414 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) IsFull() bool { 1415 if fieldMask == nil { 1416 return false 1417 } 1418 presentSelectors := make([]bool, 3) 1419 for _, path := range fieldMask.Paths { 1420 if asFinal, ok := path.(*DistributionBucketOptionsLinear_FieldTerminalPath); ok { 1421 presentSelectors[int(asFinal.selector)] = true 1422 } 1423 } 1424 for _, flag := range presentSelectors { 1425 if !flag { 1426 return false 1427 } 1428 } 1429 return true 1430 } 1431 1432 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) ProtoReflect() preflect.Message { 1433 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 1434 return ParseDistributionBucketOptionsLinear_FieldPath(raw) 1435 }) 1436 } 1437 1438 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) ProtoMessage() {} 1439 1440 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) Reset() { 1441 if fieldMask != nil { 1442 fieldMask.Paths = nil 1443 } 1444 } 1445 1446 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) Subtract(other *Distribution_BucketOptions_Linear_FieldMask) *Distribution_BucketOptions_Linear_FieldMask { 1447 result := &Distribution_BucketOptions_Linear_FieldMask{} 1448 removedSelectors := make([]bool, 3) 1449 1450 for _, path := range other.GetPaths() { 1451 switch tp := path.(type) { 1452 case *DistributionBucketOptionsLinear_FieldTerminalPath: 1453 removedSelectors[int(tp.selector)] = true 1454 } 1455 } 1456 for _, path := range fieldMask.GetPaths() { 1457 if !removedSelectors[int(path.Selector())] { 1458 result.Paths = append(result.Paths, path) 1459 } 1460 } 1461 1462 if len(result.Paths) == 0 { 1463 return nil 1464 } 1465 return result 1466 } 1467 1468 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1469 return fieldMask.Subtract(other.(*Distribution_BucketOptions_Linear_FieldMask)) 1470 } 1471 1472 // FilterInputFields generates copy of field paths with output_only field paths removed 1473 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) FilterInputFields() *Distribution_BucketOptions_Linear_FieldMask { 1474 result := &Distribution_BucketOptions_Linear_FieldMask{} 1475 result.Paths = append(result.Paths, fieldMask.Paths...) 1476 return result 1477 } 1478 1479 // ToFieldMask is used for proto conversions 1480 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1481 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1482 for _, path := range fieldMask.Paths { 1483 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1484 } 1485 return protoFieldMask 1486 } 1487 1488 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1489 if fieldMask == nil { 1490 return status.Error(codes.Internal, "target field mask is nil") 1491 } 1492 fieldMask.Paths = make([]DistributionBucketOptionsLinear_FieldPath, 0, len(protoFieldMask.Paths)) 1493 for _, strPath := range protoFieldMask.Paths { 1494 path, err := ParseDistributionBucketOptionsLinear_FieldPath(strPath) 1495 if err != nil { 1496 return err 1497 } 1498 fieldMask.Paths = append(fieldMask.Paths, path) 1499 } 1500 return nil 1501 } 1502 1503 // implement methods required by customType 1504 func (fieldMask Distribution_BucketOptions_Linear_FieldMask) Marshal() ([]byte, error) { 1505 protoFieldMask := fieldMask.ToProtoFieldMask() 1506 return proto.Marshal(protoFieldMask) 1507 } 1508 1509 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) Unmarshal(data []byte) error { 1510 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1511 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1512 return err 1513 } 1514 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1515 return err 1516 } 1517 return nil 1518 } 1519 1520 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) Size() int { 1521 return proto.Size(fieldMask.ToProtoFieldMask()) 1522 } 1523 1524 func (fieldMask Distribution_BucketOptions_Linear_FieldMask) MarshalJSON() ([]byte, error) { 1525 return json.Marshal(fieldMask.ToProtoFieldMask()) 1526 } 1527 1528 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) UnmarshalJSON(data []byte) error { 1529 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1530 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1531 return err 1532 } 1533 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1534 return err 1535 } 1536 return nil 1537 } 1538 1539 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) AppendPath(path DistributionBucketOptionsLinear_FieldPath) { 1540 fieldMask.Paths = append(fieldMask.Paths, path) 1541 } 1542 1543 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1544 fieldMask.Paths = append(fieldMask.Paths, path.(DistributionBucketOptionsLinear_FieldPath)) 1545 } 1546 1547 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) GetPaths() []DistributionBucketOptionsLinear_FieldPath { 1548 if fieldMask == nil { 1549 return nil 1550 } 1551 return fieldMask.Paths 1552 } 1553 1554 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1555 if fieldMask == nil { 1556 return nil 1557 } 1558 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1559 for _, path := range fieldMask.Paths { 1560 rawPaths = append(rawPaths, path) 1561 } 1562 return rawPaths 1563 } 1564 1565 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) SetFromCliFlag(raw string) error { 1566 path, err := ParseDistributionBucketOptionsLinear_FieldPath(raw) 1567 if err != nil { 1568 return err 1569 } 1570 fieldMask.Paths = append(fieldMask.Paths, path) 1571 return nil 1572 } 1573 1574 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) Set(target, source *Distribution_BucketOptions_Linear) { 1575 for _, path := range fieldMask.Paths { 1576 val, _ := path.GetSingle(source) 1577 // if val is nil, then field does not exist in source, skip 1578 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1579 if val != nil { 1580 path.WithIValue(val).SetTo(&target) 1581 } 1582 } 1583 } 1584 1585 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1586 fieldMask.Set(target.(*Distribution_BucketOptions_Linear), source.(*Distribution_BucketOptions_Linear)) 1587 } 1588 1589 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) Project(source *Distribution_BucketOptions_Linear) *Distribution_BucketOptions_Linear { 1590 if source == nil { 1591 return nil 1592 } 1593 if fieldMask == nil { 1594 return source 1595 } 1596 result := &Distribution_BucketOptions_Linear{} 1597 1598 for _, p := range fieldMask.Paths { 1599 switch tp := p.(type) { 1600 case *DistributionBucketOptionsLinear_FieldTerminalPath: 1601 switch tp.selector { 1602 case DistributionBucketOptionsLinear_FieldPathSelectorNumFiniteBuckets: 1603 result.NumFiniteBuckets = source.NumFiniteBuckets 1604 case DistributionBucketOptionsLinear_FieldPathSelectorWidth: 1605 result.Width = source.Width 1606 case DistributionBucketOptionsLinear_FieldPathSelectorOffset: 1607 result.Offset = source.Offset 1608 } 1609 } 1610 } 1611 return result 1612 } 1613 1614 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1615 return fieldMask.Project(source.(*Distribution_BucketOptions_Linear)) 1616 } 1617 1618 func (fieldMask *Distribution_BucketOptions_Linear_FieldMask) PathsCount() int { 1619 if fieldMask == nil { 1620 return 0 1621 } 1622 return len(fieldMask.Paths) 1623 } 1624 1625 type Distribution_BucketOptions_Exponential_FieldMask struct { 1626 Paths []DistributionBucketOptionsExponential_FieldPath 1627 } 1628 1629 func FullDistribution_BucketOptions_Exponential_FieldMask() *Distribution_BucketOptions_Exponential_FieldMask { 1630 res := &Distribution_BucketOptions_Exponential_FieldMask{} 1631 res.Paths = append(res.Paths, &DistributionBucketOptionsExponential_FieldTerminalPath{selector: DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets}) 1632 res.Paths = append(res.Paths, &DistributionBucketOptionsExponential_FieldTerminalPath{selector: DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor}) 1633 res.Paths = append(res.Paths, &DistributionBucketOptionsExponential_FieldTerminalPath{selector: DistributionBucketOptionsExponential_FieldPathSelectorScale}) 1634 return res 1635 } 1636 1637 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) String() string { 1638 if fieldMask == nil { 1639 return "<nil>" 1640 } 1641 pathsStr := make([]string, 0, len(fieldMask.Paths)) 1642 for _, path := range fieldMask.Paths { 1643 pathsStr = append(pathsStr, path.String()) 1644 } 1645 return strings.Join(pathsStr, ", ") 1646 } 1647 1648 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) IsFull() bool { 1649 if fieldMask == nil { 1650 return false 1651 } 1652 presentSelectors := make([]bool, 3) 1653 for _, path := range fieldMask.Paths { 1654 if asFinal, ok := path.(*DistributionBucketOptionsExponential_FieldTerminalPath); ok { 1655 presentSelectors[int(asFinal.selector)] = true 1656 } 1657 } 1658 for _, flag := range presentSelectors { 1659 if !flag { 1660 return false 1661 } 1662 } 1663 return true 1664 } 1665 1666 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) ProtoReflect() preflect.Message { 1667 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 1668 return ParseDistributionBucketOptionsExponential_FieldPath(raw) 1669 }) 1670 } 1671 1672 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) ProtoMessage() {} 1673 1674 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) Reset() { 1675 if fieldMask != nil { 1676 fieldMask.Paths = nil 1677 } 1678 } 1679 1680 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) Subtract(other *Distribution_BucketOptions_Exponential_FieldMask) *Distribution_BucketOptions_Exponential_FieldMask { 1681 result := &Distribution_BucketOptions_Exponential_FieldMask{} 1682 removedSelectors := make([]bool, 3) 1683 1684 for _, path := range other.GetPaths() { 1685 switch tp := path.(type) { 1686 case *DistributionBucketOptionsExponential_FieldTerminalPath: 1687 removedSelectors[int(tp.selector)] = true 1688 } 1689 } 1690 for _, path := range fieldMask.GetPaths() { 1691 if !removedSelectors[int(path.Selector())] { 1692 result.Paths = append(result.Paths, path) 1693 } 1694 } 1695 1696 if len(result.Paths) == 0 { 1697 return nil 1698 } 1699 return result 1700 } 1701 1702 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1703 return fieldMask.Subtract(other.(*Distribution_BucketOptions_Exponential_FieldMask)) 1704 } 1705 1706 // FilterInputFields generates copy of field paths with output_only field paths removed 1707 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) FilterInputFields() *Distribution_BucketOptions_Exponential_FieldMask { 1708 result := &Distribution_BucketOptions_Exponential_FieldMask{} 1709 result.Paths = append(result.Paths, fieldMask.Paths...) 1710 return result 1711 } 1712 1713 // ToFieldMask is used for proto conversions 1714 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1715 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1716 for _, path := range fieldMask.Paths { 1717 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1718 } 1719 return protoFieldMask 1720 } 1721 1722 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1723 if fieldMask == nil { 1724 return status.Error(codes.Internal, "target field mask is nil") 1725 } 1726 fieldMask.Paths = make([]DistributionBucketOptionsExponential_FieldPath, 0, len(protoFieldMask.Paths)) 1727 for _, strPath := range protoFieldMask.Paths { 1728 path, err := ParseDistributionBucketOptionsExponential_FieldPath(strPath) 1729 if err != nil { 1730 return err 1731 } 1732 fieldMask.Paths = append(fieldMask.Paths, path) 1733 } 1734 return nil 1735 } 1736 1737 // implement methods required by customType 1738 func (fieldMask Distribution_BucketOptions_Exponential_FieldMask) Marshal() ([]byte, error) { 1739 protoFieldMask := fieldMask.ToProtoFieldMask() 1740 return proto.Marshal(protoFieldMask) 1741 } 1742 1743 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) Unmarshal(data []byte) error { 1744 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1745 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1746 return err 1747 } 1748 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1749 return err 1750 } 1751 return nil 1752 } 1753 1754 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) Size() int { 1755 return proto.Size(fieldMask.ToProtoFieldMask()) 1756 } 1757 1758 func (fieldMask Distribution_BucketOptions_Exponential_FieldMask) MarshalJSON() ([]byte, error) { 1759 return json.Marshal(fieldMask.ToProtoFieldMask()) 1760 } 1761 1762 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) UnmarshalJSON(data []byte) error { 1763 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1764 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1765 return err 1766 } 1767 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1768 return err 1769 } 1770 return nil 1771 } 1772 1773 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) AppendPath(path DistributionBucketOptionsExponential_FieldPath) { 1774 fieldMask.Paths = append(fieldMask.Paths, path) 1775 } 1776 1777 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1778 fieldMask.Paths = append(fieldMask.Paths, path.(DistributionBucketOptionsExponential_FieldPath)) 1779 } 1780 1781 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) GetPaths() []DistributionBucketOptionsExponential_FieldPath { 1782 if fieldMask == nil { 1783 return nil 1784 } 1785 return fieldMask.Paths 1786 } 1787 1788 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1789 if fieldMask == nil { 1790 return nil 1791 } 1792 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1793 for _, path := range fieldMask.Paths { 1794 rawPaths = append(rawPaths, path) 1795 } 1796 return rawPaths 1797 } 1798 1799 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) SetFromCliFlag(raw string) error { 1800 path, err := ParseDistributionBucketOptionsExponential_FieldPath(raw) 1801 if err != nil { 1802 return err 1803 } 1804 fieldMask.Paths = append(fieldMask.Paths, path) 1805 return nil 1806 } 1807 1808 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) Set(target, source *Distribution_BucketOptions_Exponential) { 1809 for _, path := range fieldMask.Paths { 1810 val, _ := path.GetSingle(source) 1811 // if val is nil, then field does not exist in source, skip 1812 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1813 if val != nil { 1814 path.WithIValue(val).SetTo(&target) 1815 } 1816 } 1817 } 1818 1819 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1820 fieldMask.Set(target.(*Distribution_BucketOptions_Exponential), source.(*Distribution_BucketOptions_Exponential)) 1821 } 1822 1823 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) Project(source *Distribution_BucketOptions_Exponential) *Distribution_BucketOptions_Exponential { 1824 if source == nil { 1825 return nil 1826 } 1827 if fieldMask == nil { 1828 return source 1829 } 1830 result := &Distribution_BucketOptions_Exponential{} 1831 1832 for _, p := range fieldMask.Paths { 1833 switch tp := p.(type) { 1834 case *DistributionBucketOptionsExponential_FieldTerminalPath: 1835 switch tp.selector { 1836 case DistributionBucketOptionsExponential_FieldPathSelectorNumFiniteBuckets: 1837 result.NumFiniteBuckets = source.NumFiniteBuckets 1838 case DistributionBucketOptionsExponential_FieldPathSelectorGrowthFactor: 1839 result.GrowthFactor = source.GrowthFactor 1840 case DistributionBucketOptionsExponential_FieldPathSelectorScale: 1841 result.Scale = source.Scale 1842 } 1843 } 1844 } 1845 return result 1846 } 1847 1848 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1849 return fieldMask.Project(source.(*Distribution_BucketOptions_Exponential)) 1850 } 1851 1852 func (fieldMask *Distribution_BucketOptions_Exponential_FieldMask) PathsCount() int { 1853 if fieldMask == nil { 1854 return 0 1855 } 1856 return len(fieldMask.Paths) 1857 } 1858 1859 type Distribution_BucketOptions_Explicit_FieldMask struct { 1860 Paths []DistributionBucketOptionsExplicit_FieldPath 1861 } 1862 1863 func FullDistribution_BucketOptions_Explicit_FieldMask() *Distribution_BucketOptions_Explicit_FieldMask { 1864 res := &Distribution_BucketOptions_Explicit_FieldMask{} 1865 res.Paths = append(res.Paths, &DistributionBucketOptionsExplicit_FieldTerminalPath{selector: DistributionBucketOptionsExplicit_FieldPathSelectorBounds}) 1866 return res 1867 } 1868 1869 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) String() string { 1870 if fieldMask == nil { 1871 return "<nil>" 1872 } 1873 pathsStr := make([]string, 0, len(fieldMask.Paths)) 1874 for _, path := range fieldMask.Paths { 1875 pathsStr = append(pathsStr, path.String()) 1876 } 1877 return strings.Join(pathsStr, ", ") 1878 } 1879 1880 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) IsFull() bool { 1881 if fieldMask == nil { 1882 return false 1883 } 1884 presentSelectors := make([]bool, 1) 1885 for _, path := range fieldMask.Paths { 1886 if asFinal, ok := path.(*DistributionBucketOptionsExplicit_FieldTerminalPath); ok { 1887 presentSelectors[int(asFinal.selector)] = true 1888 } 1889 } 1890 for _, flag := range presentSelectors { 1891 if !flag { 1892 return false 1893 } 1894 } 1895 return true 1896 } 1897 1898 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) ProtoReflect() preflect.Message { 1899 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 1900 return ParseDistributionBucketOptionsExplicit_FieldPath(raw) 1901 }) 1902 } 1903 1904 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) ProtoMessage() {} 1905 1906 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) Reset() { 1907 if fieldMask != nil { 1908 fieldMask.Paths = nil 1909 } 1910 } 1911 1912 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) Subtract(other *Distribution_BucketOptions_Explicit_FieldMask) *Distribution_BucketOptions_Explicit_FieldMask { 1913 result := &Distribution_BucketOptions_Explicit_FieldMask{} 1914 removedSelectors := make([]bool, 1) 1915 1916 for _, path := range other.GetPaths() { 1917 switch tp := path.(type) { 1918 case *DistributionBucketOptionsExplicit_FieldTerminalPath: 1919 removedSelectors[int(tp.selector)] = true 1920 } 1921 } 1922 for _, path := range fieldMask.GetPaths() { 1923 if !removedSelectors[int(path.Selector())] { 1924 result.Paths = append(result.Paths, path) 1925 } 1926 } 1927 1928 if len(result.Paths) == 0 { 1929 return nil 1930 } 1931 return result 1932 } 1933 1934 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1935 return fieldMask.Subtract(other.(*Distribution_BucketOptions_Explicit_FieldMask)) 1936 } 1937 1938 // FilterInputFields generates copy of field paths with output_only field paths removed 1939 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) FilterInputFields() *Distribution_BucketOptions_Explicit_FieldMask { 1940 result := &Distribution_BucketOptions_Explicit_FieldMask{} 1941 result.Paths = append(result.Paths, fieldMask.Paths...) 1942 return result 1943 } 1944 1945 // ToFieldMask is used for proto conversions 1946 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1947 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1948 for _, path := range fieldMask.Paths { 1949 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1950 } 1951 return protoFieldMask 1952 } 1953 1954 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1955 if fieldMask == nil { 1956 return status.Error(codes.Internal, "target field mask is nil") 1957 } 1958 fieldMask.Paths = make([]DistributionBucketOptionsExplicit_FieldPath, 0, len(protoFieldMask.Paths)) 1959 for _, strPath := range protoFieldMask.Paths { 1960 path, err := ParseDistributionBucketOptionsExplicit_FieldPath(strPath) 1961 if err != nil { 1962 return err 1963 } 1964 fieldMask.Paths = append(fieldMask.Paths, path) 1965 } 1966 return nil 1967 } 1968 1969 // implement methods required by customType 1970 func (fieldMask Distribution_BucketOptions_Explicit_FieldMask) Marshal() ([]byte, error) { 1971 protoFieldMask := fieldMask.ToProtoFieldMask() 1972 return proto.Marshal(protoFieldMask) 1973 } 1974 1975 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) Unmarshal(data []byte) error { 1976 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1977 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1978 return err 1979 } 1980 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1981 return err 1982 } 1983 return nil 1984 } 1985 1986 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) Size() int { 1987 return proto.Size(fieldMask.ToProtoFieldMask()) 1988 } 1989 1990 func (fieldMask Distribution_BucketOptions_Explicit_FieldMask) MarshalJSON() ([]byte, error) { 1991 return json.Marshal(fieldMask.ToProtoFieldMask()) 1992 } 1993 1994 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) UnmarshalJSON(data []byte) error { 1995 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1996 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1997 return err 1998 } 1999 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 2000 return err 2001 } 2002 return nil 2003 } 2004 2005 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) AppendPath(path DistributionBucketOptionsExplicit_FieldPath) { 2006 fieldMask.Paths = append(fieldMask.Paths, path) 2007 } 2008 2009 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 2010 fieldMask.Paths = append(fieldMask.Paths, path.(DistributionBucketOptionsExplicit_FieldPath)) 2011 } 2012 2013 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) GetPaths() []DistributionBucketOptionsExplicit_FieldPath { 2014 if fieldMask == nil { 2015 return nil 2016 } 2017 return fieldMask.Paths 2018 } 2019 2020 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) GetRawPaths() []gotenobject.FieldPath { 2021 if fieldMask == nil { 2022 return nil 2023 } 2024 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 2025 for _, path := range fieldMask.Paths { 2026 rawPaths = append(rawPaths, path) 2027 } 2028 return rawPaths 2029 } 2030 2031 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) SetFromCliFlag(raw string) error { 2032 path, err := ParseDistributionBucketOptionsExplicit_FieldPath(raw) 2033 if err != nil { 2034 return err 2035 } 2036 fieldMask.Paths = append(fieldMask.Paths, path) 2037 return nil 2038 } 2039 2040 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) Set(target, source *Distribution_BucketOptions_Explicit) { 2041 for _, path := range fieldMask.Paths { 2042 val, _ := path.GetSingle(source) 2043 // if val is nil, then field does not exist in source, skip 2044 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 2045 if val != nil { 2046 path.WithIValue(val).SetTo(&target) 2047 } 2048 } 2049 } 2050 2051 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 2052 fieldMask.Set(target.(*Distribution_BucketOptions_Explicit), source.(*Distribution_BucketOptions_Explicit)) 2053 } 2054 2055 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) Project(source *Distribution_BucketOptions_Explicit) *Distribution_BucketOptions_Explicit { 2056 if source == nil { 2057 return nil 2058 } 2059 if fieldMask == nil { 2060 return source 2061 } 2062 result := &Distribution_BucketOptions_Explicit{} 2063 2064 for _, p := range fieldMask.Paths { 2065 switch tp := p.(type) { 2066 case *DistributionBucketOptionsExplicit_FieldTerminalPath: 2067 switch tp.selector { 2068 case DistributionBucketOptionsExplicit_FieldPathSelectorBounds: 2069 result.Bounds = source.Bounds 2070 } 2071 } 2072 } 2073 return result 2074 } 2075 2076 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 2077 return fieldMask.Project(source.(*Distribution_BucketOptions_Explicit)) 2078 } 2079 2080 func (fieldMask *Distribution_BucketOptions_Explicit_FieldMask) PathsCount() int { 2081 if fieldMask == nil { 2082 return 0 2083 } 2084 return len(fieldMask.Paths) 2085 } 2086 2087 type Distribution_BucketOptions_Dynamic_FieldMask struct { 2088 Paths []DistributionBucketOptionsDynamic_FieldPath 2089 } 2090 2091 func FullDistribution_BucketOptions_Dynamic_FieldMask() *Distribution_BucketOptions_Dynamic_FieldMask { 2092 res := &Distribution_BucketOptions_Dynamic_FieldMask{} 2093 res.Paths = append(res.Paths, &DistributionBucketOptionsDynamic_FieldTerminalPath{selector: DistributionBucketOptionsDynamic_FieldPathSelectorCompression}) 2094 res.Paths = append(res.Paths, &DistributionBucketOptionsDynamic_FieldTerminalPath{selector: DistributionBucketOptionsDynamic_FieldPathSelectorMeans}) 2095 return res 2096 } 2097 2098 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) String() string { 2099 if fieldMask == nil { 2100 return "<nil>" 2101 } 2102 pathsStr := make([]string, 0, len(fieldMask.Paths)) 2103 for _, path := range fieldMask.Paths { 2104 pathsStr = append(pathsStr, path.String()) 2105 } 2106 return strings.Join(pathsStr, ", ") 2107 } 2108 2109 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) IsFull() bool { 2110 if fieldMask == nil { 2111 return false 2112 } 2113 presentSelectors := make([]bool, 2) 2114 for _, path := range fieldMask.Paths { 2115 if asFinal, ok := path.(*DistributionBucketOptionsDynamic_FieldTerminalPath); ok { 2116 presentSelectors[int(asFinal.selector)] = true 2117 } 2118 } 2119 for _, flag := range presentSelectors { 2120 if !flag { 2121 return false 2122 } 2123 } 2124 return true 2125 } 2126 2127 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) ProtoReflect() preflect.Message { 2128 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 2129 return ParseDistributionBucketOptionsDynamic_FieldPath(raw) 2130 }) 2131 } 2132 2133 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) ProtoMessage() {} 2134 2135 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) Reset() { 2136 if fieldMask != nil { 2137 fieldMask.Paths = nil 2138 } 2139 } 2140 2141 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) Subtract(other *Distribution_BucketOptions_Dynamic_FieldMask) *Distribution_BucketOptions_Dynamic_FieldMask { 2142 result := &Distribution_BucketOptions_Dynamic_FieldMask{} 2143 removedSelectors := make([]bool, 2) 2144 2145 for _, path := range other.GetPaths() { 2146 switch tp := path.(type) { 2147 case *DistributionBucketOptionsDynamic_FieldTerminalPath: 2148 removedSelectors[int(tp.selector)] = true 2149 } 2150 } 2151 for _, path := range fieldMask.GetPaths() { 2152 if !removedSelectors[int(path.Selector())] { 2153 result.Paths = append(result.Paths, path) 2154 } 2155 } 2156 2157 if len(result.Paths) == 0 { 2158 return nil 2159 } 2160 return result 2161 } 2162 2163 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 2164 return fieldMask.Subtract(other.(*Distribution_BucketOptions_Dynamic_FieldMask)) 2165 } 2166 2167 // FilterInputFields generates copy of field paths with output_only field paths removed 2168 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) FilterInputFields() *Distribution_BucketOptions_Dynamic_FieldMask { 2169 result := &Distribution_BucketOptions_Dynamic_FieldMask{} 2170 result.Paths = append(result.Paths, fieldMask.Paths...) 2171 return result 2172 } 2173 2174 // ToFieldMask is used for proto conversions 2175 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 2176 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2177 for _, path := range fieldMask.Paths { 2178 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 2179 } 2180 return protoFieldMask 2181 } 2182 2183 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 2184 if fieldMask == nil { 2185 return status.Error(codes.Internal, "target field mask is nil") 2186 } 2187 fieldMask.Paths = make([]DistributionBucketOptionsDynamic_FieldPath, 0, len(protoFieldMask.Paths)) 2188 for _, strPath := range protoFieldMask.Paths { 2189 path, err := ParseDistributionBucketOptionsDynamic_FieldPath(strPath) 2190 if err != nil { 2191 return err 2192 } 2193 fieldMask.Paths = append(fieldMask.Paths, path) 2194 } 2195 return nil 2196 } 2197 2198 // implement methods required by customType 2199 func (fieldMask Distribution_BucketOptions_Dynamic_FieldMask) Marshal() ([]byte, error) { 2200 protoFieldMask := fieldMask.ToProtoFieldMask() 2201 return proto.Marshal(protoFieldMask) 2202 } 2203 2204 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) Unmarshal(data []byte) error { 2205 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2206 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 2207 return err 2208 } 2209 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 2210 return err 2211 } 2212 return nil 2213 } 2214 2215 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) Size() int { 2216 return proto.Size(fieldMask.ToProtoFieldMask()) 2217 } 2218 2219 func (fieldMask Distribution_BucketOptions_Dynamic_FieldMask) MarshalJSON() ([]byte, error) { 2220 return json.Marshal(fieldMask.ToProtoFieldMask()) 2221 } 2222 2223 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) UnmarshalJSON(data []byte) error { 2224 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2225 if err := json.Unmarshal(data, protoFieldMask); err != nil { 2226 return err 2227 } 2228 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 2229 return err 2230 } 2231 return nil 2232 } 2233 2234 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) AppendPath(path DistributionBucketOptionsDynamic_FieldPath) { 2235 fieldMask.Paths = append(fieldMask.Paths, path) 2236 } 2237 2238 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 2239 fieldMask.Paths = append(fieldMask.Paths, path.(DistributionBucketOptionsDynamic_FieldPath)) 2240 } 2241 2242 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) GetPaths() []DistributionBucketOptionsDynamic_FieldPath { 2243 if fieldMask == nil { 2244 return nil 2245 } 2246 return fieldMask.Paths 2247 } 2248 2249 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) GetRawPaths() []gotenobject.FieldPath { 2250 if fieldMask == nil { 2251 return nil 2252 } 2253 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 2254 for _, path := range fieldMask.Paths { 2255 rawPaths = append(rawPaths, path) 2256 } 2257 return rawPaths 2258 } 2259 2260 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) SetFromCliFlag(raw string) error { 2261 path, err := ParseDistributionBucketOptionsDynamic_FieldPath(raw) 2262 if err != nil { 2263 return err 2264 } 2265 fieldMask.Paths = append(fieldMask.Paths, path) 2266 return nil 2267 } 2268 2269 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) Set(target, source *Distribution_BucketOptions_Dynamic) { 2270 for _, path := range fieldMask.Paths { 2271 val, _ := path.GetSingle(source) 2272 // if val is nil, then field does not exist in source, skip 2273 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 2274 if val != nil { 2275 path.WithIValue(val).SetTo(&target) 2276 } 2277 } 2278 } 2279 2280 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 2281 fieldMask.Set(target.(*Distribution_BucketOptions_Dynamic), source.(*Distribution_BucketOptions_Dynamic)) 2282 } 2283 2284 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) Project(source *Distribution_BucketOptions_Dynamic) *Distribution_BucketOptions_Dynamic { 2285 if source == nil { 2286 return nil 2287 } 2288 if fieldMask == nil { 2289 return source 2290 } 2291 result := &Distribution_BucketOptions_Dynamic{} 2292 2293 for _, p := range fieldMask.Paths { 2294 switch tp := p.(type) { 2295 case *DistributionBucketOptionsDynamic_FieldTerminalPath: 2296 switch tp.selector { 2297 case DistributionBucketOptionsDynamic_FieldPathSelectorCompression: 2298 result.Compression = source.Compression 2299 case DistributionBucketOptionsDynamic_FieldPathSelectorMeans: 2300 result.Means = source.Means 2301 } 2302 } 2303 } 2304 return result 2305 } 2306 2307 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 2308 return fieldMask.Project(source.(*Distribution_BucketOptions_Dynamic)) 2309 } 2310 2311 func (fieldMask *Distribution_BucketOptions_Dynamic_FieldMask) PathsCount() int { 2312 if fieldMask == nil { 2313 return 0 2314 } 2315 return len(fieldMask.Paths) 2316 } 2317 2318 type TypedValue_FieldMask struct { 2319 Paths []TypedValue_FieldPath 2320 } 2321 2322 func FullTypedValue_FieldMask() *TypedValue_FieldMask { 2323 res := &TypedValue_FieldMask{} 2324 res.Paths = append(res.Paths, &TypedValue_FieldTerminalPath{selector: TypedValue_FieldPathSelectorBoolValue}) 2325 res.Paths = append(res.Paths, &TypedValue_FieldTerminalPath{selector: TypedValue_FieldPathSelectorInt64Value}) 2326 res.Paths = append(res.Paths, &TypedValue_FieldTerminalPath{selector: TypedValue_FieldPathSelectorDoubleValue}) 2327 res.Paths = append(res.Paths, &TypedValue_FieldTerminalPath{selector: TypedValue_FieldPathSelectorStringValue}) 2328 res.Paths = append(res.Paths, &TypedValue_FieldTerminalPath{selector: TypedValue_FieldPathSelectorDistributionValue}) 2329 return res 2330 } 2331 2332 func (fieldMask *TypedValue_FieldMask) String() string { 2333 if fieldMask == nil { 2334 return "<nil>" 2335 } 2336 pathsStr := make([]string, 0, len(fieldMask.Paths)) 2337 for _, path := range fieldMask.Paths { 2338 pathsStr = append(pathsStr, path.String()) 2339 } 2340 return strings.Join(pathsStr, ", ") 2341 } 2342 2343 func (fieldMask *TypedValue_FieldMask) IsFull() bool { 2344 if fieldMask == nil { 2345 return false 2346 } 2347 presentSelectors := make([]bool, 5) 2348 for _, path := range fieldMask.Paths { 2349 if asFinal, ok := path.(*TypedValue_FieldTerminalPath); ok { 2350 presentSelectors[int(asFinal.selector)] = true 2351 } 2352 } 2353 for _, flag := range presentSelectors { 2354 if !flag { 2355 return false 2356 } 2357 } 2358 return true 2359 } 2360 2361 func (fieldMask *TypedValue_FieldMask) ProtoReflect() preflect.Message { 2362 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 2363 return ParseTypedValue_FieldPath(raw) 2364 }) 2365 } 2366 2367 func (fieldMask *TypedValue_FieldMask) ProtoMessage() {} 2368 2369 func (fieldMask *TypedValue_FieldMask) Reset() { 2370 if fieldMask != nil { 2371 fieldMask.Paths = nil 2372 } 2373 } 2374 2375 func (fieldMask *TypedValue_FieldMask) Subtract(other *TypedValue_FieldMask) *TypedValue_FieldMask { 2376 result := &TypedValue_FieldMask{} 2377 removedSelectors := make([]bool, 5) 2378 otherSubMasks := map[TypedValue_FieldPathSelector]gotenobject.FieldMask{ 2379 TypedValue_FieldPathSelectorDistributionValue: &Distribution_FieldMask{}, 2380 } 2381 mySubMasks := map[TypedValue_FieldPathSelector]gotenobject.FieldMask{ 2382 TypedValue_FieldPathSelectorDistributionValue: &Distribution_FieldMask{}, 2383 } 2384 2385 for _, path := range other.GetPaths() { 2386 switch tp := path.(type) { 2387 case *TypedValue_FieldTerminalPath: 2388 removedSelectors[int(tp.selector)] = true 2389 case *TypedValue_FieldSubPath: 2390 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 2391 } 2392 } 2393 for _, path := range fieldMask.GetPaths() { 2394 if !removedSelectors[int(path.Selector())] { 2395 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 2396 if tp, ok := path.(*TypedValue_FieldTerminalPath); ok { 2397 switch tp.selector { 2398 case TypedValue_FieldPathSelectorDistributionValue: 2399 mySubMasks[TypedValue_FieldPathSelectorDistributionValue] = FullDistribution_FieldMask() 2400 } 2401 } else if tp, ok := path.(*TypedValue_FieldSubPath); ok { 2402 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 2403 } 2404 } else { 2405 result.Paths = append(result.Paths, path) 2406 } 2407 } 2408 } 2409 for selector, mySubMask := range mySubMasks { 2410 if mySubMask.PathsCount() > 0 { 2411 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 2412 result.Paths = append(result.Paths, &TypedValue_FieldSubPath{selector: selector, subPath: allowedPath}) 2413 } 2414 } 2415 } 2416 2417 if len(result.Paths) == 0 { 2418 return nil 2419 } 2420 return result 2421 } 2422 2423 func (fieldMask *TypedValue_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 2424 return fieldMask.Subtract(other.(*TypedValue_FieldMask)) 2425 } 2426 2427 // FilterInputFields generates copy of field paths with output_only field paths removed 2428 func (fieldMask *TypedValue_FieldMask) FilterInputFields() *TypedValue_FieldMask { 2429 result := &TypedValue_FieldMask{} 2430 result.Paths = append(result.Paths, fieldMask.Paths...) 2431 return result 2432 } 2433 2434 // ToFieldMask is used for proto conversions 2435 func (fieldMask *TypedValue_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 2436 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2437 for _, path := range fieldMask.Paths { 2438 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 2439 } 2440 return protoFieldMask 2441 } 2442 2443 func (fieldMask *TypedValue_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 2444 if fieldMask == nil { 2445 return status.Error(codes.Internal, "target field mask is nil") 2446 } 2447 fieldMask.Paths = make([]TypedValue_FieldPath, 0, len(protoFieldMask.Paths)) 2448 for _, strPath := range protoFieldMask.Paths { 2449 path, err := ParseTypedValue_FieldPath(strPath) 2450 if err != nil { 2451 return err 2452 } 2453 fieldMask.Paths = append(fieldMask.Paths, path) 2454 } 2455 return nil 2456 } 2457 2458 // implement methods required by customType 2459 func (fieldMask TypedValue_FieldMask) Marshal() ([]byte, error) { 2460 protoFieldMask := fieldMask.ToProtoFieldMask() 2461 return proto.Marshal(protoFieldMask) 2462 } 2463 2464 func (fieldMask *TypedValue_FieldMask) Unmarshal(data []byte) error { 2465 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2466 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 2467 return err 2468 } 2469 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 2470 return err 2471 } 2472 return nil 2473 } 2474 2475 func (fieldMask *TypedValue_FieldMask) Size() int { 2476 return proto.Size(fieldMask.ToProtoFieldMask()) 2477 } 2478 2479 func (fieldMask TypedValue_FieldMask) MarshalJSON() ([]byte, error) { 2480 return json.Marshal(fieldMask.ToProtoFieldMask()) 2481 } 2482 2483 func (fieldMask *TypedValue_FieldMask) UnmarshalJSON(data []byte) error { 2484 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2485 if err := json.Unmarshal(data, protoFieldMask); err != nil { 2486 return err 2487 } 2488 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 2489 return err 2490 } 2491 return nil 2492 } 2493 2494 func (fieldMask *TypedValue_FieldMask) AppendPath(path TypedValue_FieldPath) { 2495 fieldMask.Paths = append(fieldMask.Paths, path) 2496 } 2497 2498 func (fieldMask *TypedValue_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 2499 fieldMask.Paths = append(fieldMask.Paths, path.(TypedValue_FieldPath)) 2500 } 2501 2502 func (fieldMask *TypedValue_FieldMask) GetPaths() []TypedValue_FieldPath { 2503 if fieldMask == nil { 2504 return nil 2505 } 2506 return fieldMask.Paths 2507 } 2508 2509 func (fieldMask *TypedValue_FieldMask) GetRawPaths() []gotenobject.FieldPath { 2510 if fieldMask == nil { 2511 return nil 2512 } 2513 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 2514 for _, path := range fieldMask.Paths { 2515 rawPaths = append(rawPaths, path) 2516 } 2517 return rawPaths 2518 } 2519 2520 func (fieldMask *TypedValue_FieldMask) SetFromCliFlag(raw string) error { 2521 path, err := ParseTypedValue_FieldPath(raw) 2522 if err != nil { 2523 return err 2524 } 2525 fieldMask.Paths = append(fieldMask.Paths, path) 2526 return nil 2527 } 2528 2529 func (fieldMask *TypedValue_FieldMask) Set(target, source *TypedValue) { 2530 for _, path := range fieldMask.Paths { 2531 val, _ := path.GetSingle(source) 2532 // if val is nil, then field does not exist in source, skip 2533 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 2534 if val != nil { 2535 path.WithIValue(val).SetTo(&target) 2536 } 2537 } 2538 } 2539 2540 func (fieldMask *TypedValue_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 2541 fieldMask.Set(target.(*TypedValue), source.(*TypedValue)) 2542 } 2543 2544 func (fieldMask *TypedValue_FieldMask) Project(source *TypedValue) *TypedValue { 2545 if source == nil { 2546 return nil 2547 } 2548 if fieldMask == nil { 2549 return source 2550 } 2551 result := &TypedValue{} 2552 distributionValueMask := &Distribution_FieldMask{} 2553 wholeDistributionValueAccepted := false 2554 2555 for _, p := range fieldMask.Paths { 2556 switch tp := p.(type) { 2557 case *TypedValue_FieldTerminalPath: 2558 switch tp.selector { 2559 case TypedValue_FieldPathSelectorBoolValue: 2560 if source, ok := source.Value.(*TypedValue_BoolValue); ok { 2561 result.Value = &TypedValue_BoolValue{ 2562 BoolValue: source.BoolValue, 2563 } 2564 } 2565 case TypedValue_FieldPathSelectorInt64Value: 2566 if source, ok := source.Value.(*TypedValue_Int64Value); ok { 2567 result.Value = &TypedValue_Int64Value{ 2568 Int64Value: source.Int64Value, 2569 } 2570 } 2571 case TypedValue_FieldPathSelectorDoubleValue: 2572 if source, ok := source.Value.(*TypedValue_DoubleValue); ok { 2573 result.Value = &TypedValue_DoubleValue{ 2574 DoubleValue: source.DoubleValue, 2575 } 2576 } 2577 case TypedValue_FieldPathSelectorStringValue: 2578 if source, ok := source.Value.(*TypedValue_StringValue); ok { 2579 result.Value = &TypedValue_StringValue{ 2580 StringValue: source.StringValue, 2581 } 2582 } 2583 case TypedValue_FieldPathSelectorDistributionValue: 2584 if source, ok := source.Value.(*TypedValue_DistributionValue); ok { 2585 result.Value = &TypedValue_DistributionValue{ 2586 DistributionValue: source.DistributionValue, 2587 } 2588 } 2589 wholeDistributionValueAccepted = true 2590 } 2591 case *TypedValue_FieldSubPath: 2592 switch tp.selector { 2593 case TypedValue_FieldPathSelectorDistributionValue: 2594 distributionValueMask.AppendPath(tp.subPath.(Distribution_FieldPath)) 2595 } 2596 } 2597 } 2598 if wholeDistributionValueAccepted == false && len(distributionValueMask.Paths) > 0 { 2599 if asOneOf, ok := source.Value.(*TypedValue_DistributionValue); ok { 2600 result.Value = (*TypedValue_DistributionValue)(nil) 2601 if asOneOf != nil { 2602 oneOfRes := &TypedValue_DistributionValue{} 2603 oneOfRes.DistributionValue = distributionValueMask.Project(asOneOf.DistributionValue) 2604 result.Value = oneOfRes 2605 } 2606 } 2607 } 2608 return result 2609 } 2610 2611 func (fieldMask *TypedValue_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 2612 return fieldMask.Project(source.(*TypedValue)) 2613 } 2614 2615 func (fieldMask *TypedValue_FieldMask) PathsCount() int { 2616 if fieldMask == nil { 2617 return 0 2618 } 2619 return len(fieldMask.Paths) 2620 } 2621 2622 type TimeInterval_FieldMask struct { 2623 Paths []TimeInterval_FieldPath 2624 } 2625 2626 func FullTimeInterval_FieldMask() *TimeInterval_FieldMask { 2627 res := &TimeInterval_FieldMask{} 2628 res.Paths = append(res.Paths, &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorEndTime}) 2629 res.Paths = append(res.Paths, &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorStartTime}) 2630 return res 2631 } 2632 2633 func (fieldMask *TimeInterval_FieldMask) String() string { 2634 if fieldMask == nil { 2635 return "<nil>" 2636 } 2637 pathsStr := make([]string, 0, len(fieldMask.Paths)) 2638 for _, path := range fieldMask.Paths { 2639 pathsStr = append(pathsStr, path.String()) 2640 } 2641 return strings.Join(pathsStr, ", ") 2642 } 2643 2644 func (fieldMask *TimeInterval_FieldMask) IsFull() bool { 2645 if fieldMask == nil { 2646 return false 2647 } 2648 presentSelectors := make([]bool, 2) 2649 for _, path := range fieldMask.Paths { 2650 if asFinal, ok := path.(*TimeInterval_FieldTerminalPath); ok { 2651 presentSelectors[int(asFinal.selector)] = true 2652 } 2653 } 2654 for _, flag := range presentSelectors { 2655 if !flag { 2656 return false 2657 } 2658 } 2659 return true 2660 } 2661 2662 func (fieldMask *TimeInterval_FieldMask) ProtoReflect() preflect.Message { 2663 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 2664 return ParseTimeInterval_FieldPath(raw) 2665 }) 2666 } 2667 2668 func (fieldMask *TimeInterval_FieldMask) ProtoMessage() {} 2669 2670 func (fieldMask *TimeInterval_FieldMask) Reset() { 2671 if fieldMask != nil { 2672 fieldMask.Paths = nil 2673 } 2674 } 2675 2676 func (fieldMask *TimeInterval_FieldMask) Subtract(other *TimeInterval_FieldMask) *TimeInterval_FieldMask { 2677 result := &TimeInterval_FieldMask{} 2678 removedSelectors := make([]bool, 2) 2679 2680 for _, path := range other.GetPaths() { 2681 switch tp := path.(type) { 2682 case *TimeInterval_FieldTerminalPath: 2683 removedSelectors[int(tp.selector)] = true 2684 } 2685 } 2686 for _, path := range fieldMask.GetPaths() { 2687 if !removedSelectors[int(path.Selector())] { 2688 result.Paths = append(result.Paths, path) 2689 } 2690 } 2691 2692 if len(result.Paths) == 0 { 2693 return nil 2694 } 2695 return result 2696 } 2697 2698 func (fieldMask *TimeInterval_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 2699 return fieldMask.Subtract(other.(*TimeInterval_FieldMask)) 2700 } 2701 2702 // FilterInputFields generates copy of field paths with output_only field paths removed 2703 func (fieldMask *TimeInterval_FieldMask) FilterInputFields() *TimeInterval_FieldMask { 2704 result := &TimeInterval_FieldMask{} 2705 result.Paths = append(result.Paths, fieldMask.Paths...) 2706 return result 2707 } 2708 2709 // ToFieldMask is used for proto conversions 2710 func (fieldMask *TimeInterval_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 2711 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2712 for _, path := range fieldMask.Paths { 2713 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 2714 } 2715 return protoFieldMask 2716 } 2717 2718 func (fieldMask *TimeInterval_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 2719 if fieldMask == nil { 2720 return status.Error(codes.Internal, "target field mask is nil") 2721 } 2722 fieldMask.Paths = make([]TimeInterval_FieldPath, 0, len(protoFieldMask.Paths)) 2723 for _, strPath := range protoFieldMask.Paths { 2724 path, err := ParseTimeInterval_FieldPath(strPath) 2725 if err != nil { 2726 return err 2727 } 2728 fieldMask.Paths = append(fieldMask.Paths, path) 2729 } 2730 return nil 2731 } 2732 2733 // implement methods required by customType 2734 func (fieldMask TimeInterval_FieldMask) Marshal() ([]byte, error) { 2735 protoFieldMask := fieldMask.ToProtoFieldMask() 2736 return proto.Marshal(protoFieldMask) 2737 } 2738 2739 func (fieldMask *TimeInterval_FieldMask) Unmarshal(data []byte) error { 2740 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2741 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 2742 return err 2743 } 2744 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 2745 return err 2746 } 2747 return nil 2748 } 2749 2750 func (fieldMask *TimeInterval_FieldMask) Size() int { 2751 return proto.Size(fieldMask.ToProtoFieldMask()) 2752 } 2753 2754 func (fieldMask TimeInterval_FieldMask) MarshalJSON() ([]byte, error) { 2755 return json.Marshal(fieldMask.ToProtoFieldMask()) 2756 } 2757 2758 func (fieldMask *TimeInterval_FieldMask) UnmarshalJSON(data []byte) error { 2759 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2760 if err := json.Unmarshal(data, protoFieldMask); err != nil { 2761 return err 2762 } 2763 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 2764 return err 2765 } 2766 return nil 2767 } 2768 2769 func (fieldMask *TimeInterval_FieldMask) AppendPath(path TimeInterval_FieldPath) { 2770 fieldMask.Paths = append(fieldMask.Paths, path) 2771 } 2772 2773 func (fieldMask *TimeInterval_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 2774 fieldMask.Paths = append(fieldMask.Paths, path.(TimeInterval_FieldPath)) 2775 } 2776 2777 func (fieldMask *TimeInterval_FieldMask) GetPaths() []TimeInterval_FieldPath { 2778 if fieldMask == nil { 2779 return nil 2780 } 2781 return fieldMask.Paths 2782 } 2783 2784 func (fieldMask *TimeInterval_FieldMask) GetRawPaths() []gotenobject.FieldPath { 2785 if fieldMask == nil { 2786 return nil 2787 } 2788 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 2789 for _, path := range fieldMask.Paths { 2790 rawPaths = append(rawPaths, path) 2791 } 2792 return rawPaths 2793 } 2794 2795 func (fieldMask *TimeInterval_FieldMask) SetFromCliFlag(raw string) error { 2796 path, err := ParseTimeInterval_FieldPath(raw) 2797 if err != nil { 2798 return err 2799 } 2800 fieldMask.Paths = append(fieldMask.Paths, path) 2801 return nil 2802 } 2803 2804 func (fieldMask *TimeInterval_FieldMask) Set(target, source *TimeInterval) { 2805 for _, path := range fieldMask.Paths { 2806 val, _ := path.GetSingle(source) 2807 // if val is nil, then field does not exist in source, skip 2808 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 2809 if val != nil { 2810 path.WithIValue(val).SetTo(&target) 2811 } 2812 } 2813 } 2814 2815 func (fieldMask *TimeInterval_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 2816 fieldMask.Set(target.(*TimeInterval), source.(*TimeInterval)) 2817 } 2818 2819 func (fieldMask *TimeInterval_FieldMask) Project(source *TimeInterval) *TimeInterval { 2820 if source == nil { 2821 return nil 2822 } 2823 if fieldMask == nil { 2824 return source 2825 } 2826 result := &TimeInterval{} 2827 2828 for _, p := range fieldMask.Paths { 2829 switch tp := p.(type) { 2830 case *TimeInterval_FieldTerminalPath: 2831 switch tp.selector { 2832 case TimeInterval_FieldPathSelectorEndTime: 2833 result.EndTime = source.EndTime 2834 case TimeInterval_FieldPathSelectorStartTime: 2835 result.StartTime = source.StartTime 2836 } 2837 } 2838 } 2839 return result 2840 } 2841 2842 func (fieldMask *TimeInterval_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 2843 return fieldMask.Project(source.(*TimeInterval)) 2844 } 2845 2846 func (fieldMask *TimeInterval_FieldMask) PathsCount() int { 2847 if fieldMask == nil { 2848 return 0 2849 } 2850 return len(fieldMask.Paths) 2851 } 2852 2853 type TimeRange_FieldMask struct { 2854 Paths []TimeRange_FieldPath 2855 } 2856 2857 func FullTimeRange_FieldMask() *TimeRange_FieldMask { 2858 res := &TimeRange_FieldMask{} 2859 res.Paths = append(res.Paths, &TimeRange_FieldTerminalPath{selector: TimeRange_FieldPathSelectorStartTime}) 2860 res.Paths = append(res.Paths, &TimeRange_FieldTerminalPath{selector: TimeRange_FieldPathSelectorEndTime}) 2861 return res 2862 } 2863 2864 func (fieldMask *TimeRange_FieldMask) String() string { 2865 if fieldMask == nil { 2866 return "<nil>" 2867 } 2868 pathsStr := make([]string, 0, len(fieldMask.Paths)) 2869 for _, path := range fieldMask.Paths { 2870 pathsStr = append(pathsStr, path.String()) 2871 } 2872 return strings.Join(pathsStr, ", ") 2873 } 2874 2875 func (fieldMask *TimeRange_FieldMask) IsFull() bool { 2876 if fieldMask == nil { 2877 return false 2878 } 2879 presentSelectors := make([]bool, 2) 2880 for _, path := range fieldMask.Paths { 2881 if asFinal, ok := path.(*TimeRange_FieldTerminalPath); ok { 2882 presentSelectors[int(asFinal.selector)] = true 2883 } 2884 } 2885 for _, flag := range presentSelectors { 2886 if !flag { 2887 return false 2888 } 2889 } 2890 return true 2891 } 2892 2893 func (fieldMask *TimeRange_FieldMask) ProtoReflect() preflect.Message { 2894 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 2895 return ParseTimeRange_FieldPath(raw) 2896 }) 2897 } 2898 2899 func (fieldMask *TimeRange_FieldMask) ProtoMessage() {} 2900 2901 func (fieldMask *TimeRange_FieldMask) Reset() { 2902 if fieldMask != nil { 2903 fieldMask.Paths = nil 2904 } 2905 } 2906 2907 func (fieldMask *TimeRange_FieldMask) Subtract(other *TimeRange_FieldMask) *TimeRange_FieldMask { 2908 result := &TimeRange_FieldMask{} 2909 removedSelectors := make([]bool, 2) 2910 2911 for _, path := range other.GetPaths() { 2912 switch tp := path.(type) { 2913 case *TimeRange_FieldTerminalPath: 2914 removedSelectors[int(tp.selector)] = true 2915 } 2916 } 2917 for _, path := range fieldMask.GetPaths() { 2918 if !removedSelectors[int(path.Selector())] { 2919 result.Paths = append(result.Paths, path) 2920 } 2921 } 2922 2923 if len(result.Paths) == 0 { 2924 return nil 2925 } 2926 return result 2927 } 2928 2929 func (fieldMask *TimeRange_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 2930 return fieldMask.Subtract(other.(*TimeRange_FieldMask)) 2931 } 2932 2933 // FilterInputFields generates copy of field paths with output_only field paths removed 2934 func (fieldMask *TimeRange_FieldMask) FilterInputFields() *TimeRange_FieldMask { 2935 result := &TimeRange_FieldMask{} 2936 result.Paths = append(result.Paths, fieldMask.Paths...) 2937 return result 2938 } 2939 2940 // ToFieldMask is used for proto conversions 2941 func (fieldMask *TimeRange_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 2942 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2943 for _, path := range fieldMask.Paths { 2944 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 2945 } 2946 return protoFieldMask 2947 } 2948 2949 func (fieldMask *TimeRange_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 2950 if fieldMask == nil { 2951 return status.Error(codes.Internal, "target field mask is nil") 2952 } 2953 fieldMask.Paths = make([]TimeRange_FieldPath, 0, len(protoFieldMask.Paths)) 2954 for _, strPath := range protoFieldMask.Paths { 2955 path, err := ParseTimeRange_FieldPath(strPath) 2956 if err != nil { 2957 return err 2958 } 2959 fieldMask.Paths = append(fieldMask.Paths, path) 2960 } 2961 return nil 2962 } 2963 2964 // implement methods required by customType 2965 func (fieldMask TimeRange_FieldMask) Marshal() ([]byte, error) { 2966 protoFieldMask := fieldMask.ToProtoFieldMask() 2967 return proto.Marshal(protoFieldMask) 2968 } 2969 2970 func (fieldMask *TimeRange_FieldMask) Unmarshal(data []byte) error { 2971 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2972 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 2973 return err 2974 } 2975 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 2976 return err 2977 } 2978 return nil 2979 } 2980 2981 func (fieldMask *TimeRange_FieldMask) Size() int { 2982 return proto.Size(fieldMask.ToProtoFieldMask()) 2983 } 2984 2985 func (fieldMask TimeRange_FieldMask) MarshalJSON() ([]byte, error) { 2986 return json.Marshal(fieldMask.ToProtoFieldMask()) 2987 } 2988 2989 func (fieldMask *TimeRange_FieldMask) UnmarshalJSON(data []byte) error { 2990 protoFieldMask := &googlefieldmaskpb.FieldMask{} 2991 if err := json.Unmarshal(data, protoFieldMask); err != nil { 2992 return err 2993 } 2994 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 2995 return err 2996 } 2997 return nil 2998 } 2999 3000 func (fieldMask *TimeRange_FieldMask) AppendPath(path TimeRange_FieldPath) { 3001 fieldMask.Paths = append(fieldMask.Paths, path) 3002 } 3003 3004 func (fieldMask *TimeRange_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 3005 fieldMask.Paths = append(fieldMask.Paths, path.(TimeRange_FieldPath)) 3006 } 3007 3008 func (fieldMask *TimeRange_FieldMask) GetPaths() []TimeRange_FieldPath { 3009 if fieldMask == nil { 3010 return nil 3011 } 3012 return fieldMask.Paths 3013 } 3014 3015 func (fieldMask *TimeRange_FieldMask) GetRawPaths() []gotenobject.FieldPath { 3016 if fieldMask == nil { 3017 return nil 3018 } 3019 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 3020 for _, path := range fieldMask.Paths { 3021 rawPaths = append(rawPaths, path) 3022 } 3023 return rawPaths 3024 } 3025 3026 func (fieldMask *TimeRange_FieldMask) SetFromCliFlag(raw string) error { 3027 path, err := ParseTimeRange_FieldPath(raw) 3028 if err != nil { 3029 return err 3030 } 3031 fieldMask.Paths = append(fieldMask.Paths, path) 3032 return nil 3033 } 3034 3035 func (fieldMask *TimeRange_FieldMask) Set(target, source *TimeRange) { 3036 for _, path := range fieldMask.Paths { 3037 val, _ := path.GetSingle(source) 3038 // if val is nil, then field does not exist in source, skip 3039 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 3040 if val != nil { 3041 path.WithIValue(val).SetTo(&target) 3042 } 3043 } 3044 } 3045 3046 func (fieldMask *TimeRange_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 3047 fieldMask.Set(target.(*TimeRange), source.(*TimeRange)) 3048 } 3049 3050 func (fieldMask *TimeRange_FieldMask) Project(source *TimeRange) *TimeRange { 3051 if source == nil { 3052 return nil 3053 } 3054 if fieldMask == nil { 3055 return source 3056 } 3057 result := &TimeRange{} 3058 3059 for _, p := range fieldMask.Paths { 3060 switch tp := p.(type) { 3061 case *TimeRange_FieldTerminalPath: 3062 switch tp.selector { 3063 case TimeRange_FieldPathSelectorStartTime: 3064 result.StartTime = source.StartTime 3065 case TimeRange_FieldPathSelectorEndTime: 3066 result.EndTime = source.EndTime 3067 } 3068 } 3069 } 3070 return result 3071 } 3072 3073 func (fieldMask *TimeRange_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 3074 return fieldMask.Project(source.(*TimeRange)) 3075 } 3076 3077 func (fieldMask *TimeRange_FieldMask) PathsCount() int { 3078 if fieldMask == nil { 3079 return 0 3080 } 3081 return len(fieldMask.Paths) 3082 } 3083 3084 type Aggregation_FieldMask struct { 3085 Paths []Aggregation_FieldPath 3086 } 3087 3088 func FullAggregation_FieldMask() *Aggregation_FieldMask { 3089 res := &Aggregation_FieldMask{} 3090 res.Paths = append(res.Paths, &Aggregation_FieldTerminalPath{selector: Aggregation_FieldPathSelectorAlignmentPeriod}) 3091 res.Paths = append(res.Paths, &Aggregation_FieldTerminalPath{selector: Aggregation_FieldPathSelectorPerSeriesAligner}) 3092 res.Paths = append(res.Paths, &Aggregation_FieldTerminalPath{selector: Aggregation_FieldPathSelectorCrossSeriesReducer}) 3093 res.Paths = append(res.Paths, &Aggregation_FieldTerminalPath{selector: Aggregation_FieldPathSelectorGroupByFields}) 3094 return res 3095 } 3096 3097 func (fieldMask *Aggregation_FieldMask) String() string { 3098 if fieldMask == nil { 3099 return "<nil>" 3100 } 3101 pathsStr := make([]string, 0, len(fieldMask.Paths)) 3102 for _, path := range fieldMask.Paths { 3103 pathsStr = append(pathsStr, path.String()) 3104 } 3105 return strings.Join(pathsStr, ", ") 3106 } 3107 3108 func (fieldMask *Aggregation_FieldMask) IsFull() bool { 3109 if fieldMask == nil { 3110 return false 3111 } 3112 presentSelectors := make([]bool, 4) 3113 for _, path := range fieldMask.Paths { 3114 if asFinal, ok := path.(*Aggregation_FieldTerminalPath); ok { 3115 presentSelectors[int(asFinal.selector)] = true 3116 } 3117 } 3118 for _, flag := range presentSelectors { 3119 if !flag { 3120 return false 3121 } 3122 } 3123 return true 3124 } 3125 3126 func (fieldMask *Aggregation_FieldMask) ProtoReflect() preflect.Message { 3127 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 3128 return ParseAggregation_FieldPath(raw) 3129 }) 3130 } 3131 3132 func (fieldMask *Aggregation_FieldMask) ProtoMessage() {} 3133 3134 func (fieldMask *Aggregation_FieldMask) Reset() { 3135 if fieldMask != nil { 3136 fieldMask.Paths = nil 3137 } 3138 } 3139 3140 func (fieldMask *Aggregation_FieldMask) Subtract(other *Aggregation_FieldMask) *Aggregation_FieldMask { 3141 result := &Aggregation_FieldMask{} 3142 removedSelectors := make([]bool, 4) 3143 3144 for _, path := range other.GetPaths() { 3145 switch tp := path.(type) { 3146 case *Aggregation_FieldTerminalPath: 3147 removedSelectors[int(tp.selector)] = true 3148 } 3149 } 3150 for _, path := range fieldMask.GetPaths() { 3151 if !removedSelectors[int(path.Selector())] { 3152 result.Paths = append(result.Paths, path) 3153 } 3154 } 3155 3156 if len(result.Paths) == 0 { 3157 return nil 3158 } 3159 return result 3160 } 3161 3162 func (fieldMask *Aggregation_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 3163 return fieldMask.Subtract(other.(*Aggregation_FieldMask)) 3164 } 3165 3166 // FilterInputFields generates copy of field paths with output_only field paths removed 3167 func (fieldMask *Aggregation_FieldMask) FilterInputFields() *Aggregation_FieldMask { 3168 result := &Aggregation_FieldMask{} 3169 result.Paths = append(result.Paths, fieldMask.Paths...) 3170 return result 3171 } 3172 3173 // ToFieldMask is used for proto conversions 3174 func (fieldMask *Aggregation_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 3175 protoFieldMask := &googlefieldmaskpb.FieldMask{} 3176 for _, path := range fieldMask.Paths { 3177 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 3178 } 3179 return protoFieldMask 3180 } 3181 3182 func (fieldMask *Aggregation_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 3183 if fieldMask == nil { 3184 return status.Error(codes.Internal, "target field mask is nil") 3185 } 3186 fieldMask.Paths = make([]Aggregation_FieldPath, 0, len(protoFieldMask.Paths)) 3187 for _, strPath := range protoFieldMask.Paths { 3188 path, err := ParseAggregation_FieldPath(strPath) 3189 if err != nil { 3190 return err 3191 } 3192 fieldMask.Paths = append(fieldMask.Paths, path) 3193 } 3194 return nil 3195 } 3196 3197 // implement methods required by customType 3198 func (fieldMask Aggregation_FieldMask) Marshal() ([]byte, error) { 3199 protoFieldMask := fieldMask.ToProtoFieldMask() 3200 return proto.Marshal(protoFieldMask) 3201 } 3202 3203 func (fieldMask *Aggregation_FieldMask) Unmarshal(data []byte) error { 3204 protoFieldMask := &googlefieldmaskpb.FieldMask{} 3205 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 3206 return err 3207 } 3208 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 3209 return err 3210 } 3211 return nil 3212 } 3213 3214 func (fieldMask *Aggregation_FieldMask) Size() int { 3215 return proto.Size(fieldMask.ToProtoFieldMask()) 3216 } 3217 3218 func (fieldMask Aggregation_FieldMask) MarshalJSON() ([]byte, error) { 3219 return json.Marshal(fieldMask.ToProtoFieldMask()) 3220 } 3221 3222 func (fieldMask *Aggregation_FieldMask) UnmarshalJSON(data []byte) error { 3223 protoFieldMask := &googlefieldmaskpb.FieldMask{} 3224 if err := json.Unmarshal(data, protoFieldMask); err != nil { 3225 return err 3226 } 3227 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 3228 return err 3229 } 3230 return nil 3231 } 3232 3233 func (fieldMask *Aggregation_FieldMask) AppendPath(path Aggregation_FieldPath) { 3234 fieldMask.Paths = append(fieldMask.Paths, path) 3235 } 3236 3237 func (fieldMask *Aggregation_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 3238 fieldMask.Paths = append(fieldMask.Paths, path.(Aggregation_FieldPath)) 3239 } 3240 3241 func (fieldMask *Aggregation_FieldMask) GetPaths() []Aggregation_FieldPath { 3242 if fieldMask == nil { 3243 return nil 3244 } 3245 return fieldMask.Paths 3246 } 3247 3248 func (fieldMask *Aggregation_FieldMask) GetRawPaths() []gotenobject.FieldPath { 3249 if fieldMask == nil { 3250 return nil 3251 } 3252 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 3253 for _, path := range fieldMask.Paths { 3254 rawPaths = append(rawPaths, path) 3255 } 3256 return rawPaths 3257 } 3258 3259 func (fieldMask *Aggregation_FieldMask) SetFromCliFlag(raw string) error { 3260 path, err := ParseAggregation_FieldPath(raw) 3261 if err != nil { 3262 return err 3263 } 3264 fieldMask.Paths = append(fieldMask.Paths, path) 3265 return nil 3266 } 3267 3268 func (fieldMask *Aggregation_FieldMask) Set(target, source *Aggregation) { 3269 for _, path := range fieldMask.Paths { 3270 val, _ := path.GetSingle(source) 3271 // if val is nil, then field does not exist in source, skip 3272 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 3273 if val != nil { 3274 path.WithIValue(val).SetTo(&target) 3275 } 3276 } 3277 } 3278 3279 func (fieldMask *Aggregation_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 3280 fieldMask.Set(target.(*Aggregation), source.(*Aggregation)) 3281 } 3282 3283 func (fieldMask *Aggregation_FieldMask) Project(source *Aggregation) *Aggregation { 3284 if source == nil { 3285 return nil 3286 } 3287 if fieldMask == nil { 3288 return source 3289 } 3290 result := &Aggregation{} 3291 3292 for _, p := range fieldMask.Paths { 3293 switch tp := p.(type) { 3294 case *Aggregation_FieldTerminalPath: 3295 switch tp.selector { 3296 case Aggregation_FieldPathSelectorAlignmentPeriod: 3297 result.AlignmentPeriod = source.AlignmentPeriod 3298 case Aggregation_FieldPathSelectorPerSeriesAligner: 3299 result.PerSeriesAligner = source.PerSeriesAligner 3300 case Aggregation_FieldPathSelectorCrossSeriesReducer: 3301 result.CrossSeriesReducer = source.CrossSeriesReducer 3302 case Aggregation_FieldPathSelectorGroupByFields: 3303 result.GroupByFields = source.GroupByFields 3304 } 3305 } 3306 } 3307 return result 3308 } 3309 3310 func (fieldMask *Aggregation_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 3311 return fieldMask.Project(source.(*Aggregation)) 3312 } 3313 3314 func (fieldMask *Aggregation_FieldMask) PathsCount() int { 3315 if fieldMask == nil { 3316 return 0 3317 } 3318 return len(fieldMask.Paths) 3319 } 3320 3321 type Pagination_FieldMask struct { 3322 Paths []Pagination_FieldPath 3323 } 3324 3325 func FullPagination_FieldMask() *Pagination_FieldMask { 3326 res := &Pagination_FieldMask{} 3327 res.Paths = append(res.Paths, &Pagination_FieldTerminalPath{selector: Pagination_FieldPathSelectorView}) 3328 res.Paths = append(res.Paths, &Pagination_FieldTerminalPath{selector: Pagination_FieldPathSelectorFunction}) 3329 res.Paths = append(res.Paths, &Pagination_FieldTerminalPath{selector: Pagination_FieldPathSelectorAlignmentPeriod}) 3330 res.Paths = append(res.Paths, &Pagination_FieldTerminalPath{selector: Pagination_FieldPathSelectorLimit}) 3331 res.Paths = append(res.Paths, &Pagination_FieldTerminalPath{selector: Pagination_FieldPathSelectorOffset}) 3332 return res 3333 } 3334 3335 func (fieldMask *Pagination_FieldMask) String() string { 3336 if fieldMask == nil { 3337 return "<nil>" 3338 } 3339 pathsStr := make([]string, 0, len(fieldMask.Paths)) 3340 for _, path := range fieldMask.Paths { 3341 pathsStr = append(pathsStr, path.String()) 3342 } 3343 return strings.Join(pathsStr, ", ") 3344 } 3345 3346 func (fieldMask *Pagination_FieldMask) IsFull() bool { 3347 if fieldMask == nil { 3348 return false 3349 } 3350 presentSelectors := make([]bool, 5) 3351 for _, path := range fieldMask.Paths { 3352 if asFinal, ok := path.(*Pagination_FieldTerminalPath); ok { 3353 presentSelectors[int(asFinal.selector)] = true 3354 } 3355 } 3356 for _, flag := range presentSelectors { 3357 if !flag { 3358 return false 3359 } 3360 } 3361 return true 3362 } 3363 3364 func (fieldMask *Pagination_FieldMask) ProtoReflect() preflect.Message { 3365 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 3366 return ParsePagination_FieldPath(raw) 3367 }) 3368 } 3369 3370 func (fieldMask *Pagination_FieldMask) ProtoMessage() {} 3371 3372 func (fieldMask *Pagination_FieldMask) Reset() { 3373 if fieldMask != nil { 3374 fieldMask.Paths = nil 3375 } 3376 } 3377 3378 func (fieldMask *Pagination_FieldMask) Subtract(other *Pagination_FieldMask) *Pagination_FieldMask { 3379 result := &Pagination_FieldMask{} 3380 removedSelectors := make([]bool, 5) 3381 3382 for _, path := range other.GetPaths() { 3383 switch tp := path.(type) { 3384 case *Pagination_FieldTerminalPath: 3385 removedSelectors[int(tp.selector)] = true 3386 } 3387 } 3388 for _, path := range fieldMask.GetPaths() { 3389 if !removedSelectors[int(path.Selector())] { 3390 result.Paths = append(result.Paths, path) 3391 } 3392 } 3393 3394 if len(result.Paths) == 0 { 3395 return nil 3396 } 3397 return result 3398 } 3399 3400 func (fieldMask *Pagination_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 3401 return fieldMask.Subtract(other.(*Pagination_FieldMask)) 3402 } 3403 3404 // FilterInputFields generates copy of field paths with output_only field paths removed 3405 func (fieldMask *Pagination_FieldMask) FilterInputFields() *Pagination_FieldMask { 3406 result := &Pagination_FieldMask{} 3407 result.Paths = append(result.Paths, fieldMask.Paths...) 3408 return result 3409 } 3410 3411 // ToFieldMask is used for proto conversions 3412 func (fieldMask *Pagination_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 3413 protoFieldMask := &googlefieldmaskpb.FieldMask{} 3414 for _, path := range fieldMask.Paths { 3415 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 3416 } 3417 return protoFieldMask 3418 } 3419 3420 func (fieldMask *Pagination_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 3421 if fieldMask == nil { 3422 return status.Error(codes.Internal, "target field mask is nil") 3423 } 3424 fieldMask.Paths = make([]Pagination_FieldPath, 0, len(protoFieldMask.Paths)) 3425 for _, strPath := range protoFieldMask.Paths { 3426 path, err := ParsePagination_FieldPath(strPath) 3427 if err != nil { 3428 return err 3429 } 3430 fieldMask.Paths = append(fieldMask.Paths, path) 3431 } 3432 return nil 3433 } 3434 3435 // implement methods required by customType 3436 func (fieldMask Pagination_FieldMask) Marshal() ([]byte, error) { 3437 protoFieldMask := fieldMask.ToProtoFieldMask() 3438 return proto.Marshal(protoFieldMask) 3439 } 3440 3441 func (fieldMask *Pagination_FieldMask) Unmarshal(data []byte) error { 3442 protoFieldMask := &googlefieldmaskpb.FieldMask{} 3443 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 3444 return err 3445 } 3446 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 3447 return err 3448 } 3449 return nil 3450 } 3451 3452 func (fieldMask *Pagination_FieldMask) Size() int { 3453 return proto.Size(fieldMask.ToProtoFieldMask()) 3454 } 3455 3456 func (fieldMask Pagination_FieldMask) MarshalJSON() ([]byte, error) { 3457 return json.Marshal(fieldMask.ToProtoFieldMask()) 3458 } 3459 3460 func (fieldMask *Pagination_FieldMask) UnmarshalJSON(data []byte) error { 3461 protoFieldMask := &googlefieldmaskpb.FieldMask{} 3462 if err := json.Unmarshal(data, protoFieldMask); err != nil { 3463 return err 3464 } 3465 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 3466 return err 3467 } 3468 return nil 3469 } 3470 3471 func (fieldMask *Pagination_FieldMask) AppendPath(path Pagination_FieldPath) { 3472 fieldMask.Paths = append(fieldMask.Paths, path) 3473 } 3474 3475 func (fieldMask *Pagination_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 3476 fieldMask.Paths = append(fieldMask.Paths, path.(Pagination_FieldPath)) 3477 } 3478 3479 func (fieldMask *Pagination_FieldMask) GetPaths() []Pagination_FieldPath { 3480 if fieldMask == nil { 3481 return nil 3482 } 3483 return fieldMask.Paths 3484 } 3485 3486 func (fieldMask *Pagination_FieldMask) GetRawPaths() []gotenobject.FieldPath { 3487 if fieldMask == nil { 3488 return nil 3489 } 3490 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 3491 for _, path := range fieldMask.Paths { 3492 rawPaths = append(rawPaths, path) 3493 } 3494 return rawPaths 3495 } 3496 3497 func (fieldMask *Pagination_FieldMask) SetFromCliFlag(raw string) error { 3498 path, err := ParsePagination_FieldPath(raw) 3499 if err != nil { 3500 return err 3501 } 3502 fieldMask.Paths = append(fieldMask.Paths, path) 3503 return nil 3504 } 3505 3506 func (fieldMask *Pagination_FieldMask) Set(target, source *Pagination) { 3507 for _, path := range fieldMask.Paths { 3508 val, _ := path.GetSingle(source) 3509 // if val is nil, then field does not exist in source, skip 3510 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 3511 if val != nil { 3512 path.WithIValue(val).SetTo(&target) 3513 } 3514 } 3515 } 3516 3517 func (fieldMask *Pagination_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 3518 fieldMask.Set(target.(*Pagination), source.(*Pagination)) 3519 } 3520 3521 func (fieldMask *Pagination_FieldMask) Project(source *Pagination) *Pagination { 3522 if source == nil { 3523 return nil 3524 } 3525 if fieldMask == nil { 3526 return source 3527 } 3528 result := &Pagination{} 3529 3530 for _, p := range fieldMask.Paths { 3531 switch tp := p.(type) { 3532 case *Pagination_FieldTerminalPath: 3533 switch tp.selector { 3534 case Pagination_FieldPathSelectorView: 3535 result.View = source.View 3536 case Pagination_FieldPathSelectorFunction: 3537 result.Function = source.Function 3538 case Pagination_FieldPathSelectorAlignmentPeriod: 3539 result.AlignmentPeriod = source.AlignmentPeriod 3540 case Pagination_FieldPathSelectorLimit: 3541 result.Limit = source.Limit 3542 case Pagination_FieldPathSelectorOffset: 3543 result.Offset = source.Offset 3544 } 3545 } 3546 } 3547 return result 3548 } 3549 3550 func (fieldMask *Pagination_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 3551 return fieldMask.Project(source.(*Pagination)) 3552 } 3553 3554 func (fieldMask *Pagination_FieldMask) PathsCount() int { 3555 if fieldMask == nil { 3556 return 0 3557 } 3558 return len(fieldMask.Paths) 3559 } 3560 3561 type Metric_FieldMask struct { 3562 Paths []Metric_FieldPath 3563 } 3564 3565 func FullMetric_FieldMask() *Metric_FieldMask { 3566 res := &Metric_FieldMask{} 3567 res.Paths = append(res.Paths, &Metric_FieldTerminalPath{selector: Metric_FieldPathSelectorType}) 3568 res.Paths = append(res.Paths, &Metric_FieldTerminalPath{selector: Metric_FieldPathSelectorLabels}) 3569 res.Paths = append(res.Paths, &Metric_FieldTerminalPath{selector: Metric_FieldPathSelectorReducedLabels}) 3570 return res 3571 } 3572 3573 func (fieldMask *Metric_FieldMask) String() string { 3574 if fieldMask == nil { 3575 return "<nil>" 3576 } 3577 pathsStr := make([]string, 0, len(fieldMask.Paths)) 3578 for _, path := range fieldMask.Paths { 3579 pathsStr = append(pathsStr, path.String()) 3580 } 3581 return strings.Join(pathsStr, ", ") 3582 } 3583 3584 func (fieldMask *Metric_FieldMask) IsFull() bool { 3585 if fieldMask == nil { 3586 return false 3587 } 3588 presentSelectors := make([]bool, 3) 3589 for _, path := range fieldMask.Paths { 3590 if asFinal, ok := path.(*Metric_FieldTerminalPath); ok { 3591 presentSelectors[int(asFinal.selector)] = true 3592 } 3593 } 3594 for _, flag := range presentSelectors { 3595 if !flag { 3596 return false 3597 } 3598 } 3599 return true 3600 } 3601 3602 func (fieldMask *Metric_FieldMask) ProtoReflect() preflect.Message { 3603 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 3604 return ParseMetric_FieldPath(raw) 3605 }) 3606 } 3607 3608 func (fieldMask *Metric_FieldMask) ProtoMessage() {} 3609 3610 func (fieldMask *Metric_FieldMask) Reset() { 3611 if fieldMask != nil { 3612 fieldMask.Paths = nil 3613 } 3614 } 3615 3616 func (fieldMask *Metric_FieldMask) Subtract(other *Metric_FieldMask) *Metric_FieldMask { 3617 result := &Metric_FieldMask{} 3618 removedSelectors := make([]bool, 3) 3619 3620 for _, path := range other.GetPaths() { 3621 switch tp := path.(type) { 3622 case *Metric_FieldTerminalPath: 3623 removedSelectors[int(tp.selector)] = true 3624 } 3625 } 3626 for _, path := range fieldMask.GetPaths() { 3627 if !removedSelectors[int(path.Selector())] { 3628 result.Paths = append(result.Paths, path) 3629 } 3630 } 3631 3632 if len(result.Paths) == 0 { 3633 return nil 3634 } 3635 return result 3636 } 3637 3638 func (fieldMask *Metric_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 3639 return fieldMask.Subtract(other.(*Metric_FieldMask)) 3640 } 3641 3642 // FilterInputFields generates copy of field paths with output_only field paths removed 3643 func (fieldMask *Metric_FieldMask) FilterInputFields() *Metric_FieldMask { 3644 result := &Metric_FieldMask{} 3645 result.Paths = append(result.Paths, fieldMask.Paths...) 3646 return result 3647 } 3648 3649 // ToFieldMask is used for proto conversions 3650 func (fieldMask *Metric_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 3651 protoFieldMask := &googlefieldmaskpb.FieldMask{} 3652 for _, path := range fieldMask.Paths { 3653 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 3654 } 3655 return protoFieldMask 3656 } 3657 3658 func (fieldMask *Metric_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 3659 if fieldMask == nil { 3660 return status.Error(codes.Internal, "target field mask is nil") 3661 } 3662 fieldMask.Paths = make([]Metric_FieldPath, 0, len(protoFieldMask.Paths)) 3663 for _, strPath := range protoFieldMask.Paths { 3664 path, err := ParseMetric_FieldPath(strPath) 3665 if err != nil { 3666 return err 3667 } 3668 fieldMask.Paths = append(fieldMask.Paths, path) 3669 } 3670 return nil 3671 } 3672 3673 // implement methods required by customType 3674 func (fieldMask Metric_FieldMask) Marshal() ([]byte, error) { 3675 protoFieldMask := fieldMask.ToProtoFieldMask() 3676 return proto.Marshal(protoFieldMask) 3677 } 3678 3679 func (fieldMask *Metric_FieldMask) Unmarshal(data []byte) error { 3680 protoFieldMask := &googlefieldmaskpb.FieldMask{} 3681 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 3682 return err 3683 } 3684 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 3685 return err 3686 } 3687 return nil 3688 } 3689 3690 func (fieldMask *Metric_FieldMask) Size() int { 3691 return proto.Size(fieldMask.ToProtoFieldMask()) 3692 } 3693 3694 func (fieldMask Metric_FieldMask) MarshalJSON() ([]byte, error) { 3695 return json.Marshal(fieldMask.ToProtoFieldMask()) 3696 } 3697 3698 func (fieldMask *Metric_FieldMask) UnmarshalJSON(data []byte) error { 3699 protoFieldMask := &googlefieldmaskpb.FieldMask{} 3700 if err := json.Unmarshal(data, protoFieldMask); err != nil { 3701 return err 3702 } 3703 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 3704 return err 3705 } 3706 return nil 3707 } 3708 3709 func (fieldMask *Metric_FieldMask) AppendPath(path Metric_FieldPath) { 3710 fieldMask.Paths = append(fieldMask.Paths, path) 3711 } 3712 3713 func (fieldMask *Metric_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 3714 fieldMask.Paths = append(fieldMask.Paths, path.(Metric_FieldPath)) 3715 } 3716 3717 func (fieldMask *Metric_FieldMask) GetPaths() []Metric_FieldPath { 3718 if fieldMask == nil { 3719 return nil 3720 } 3721 return fieldMask.Paths 3722 } 3723 3724 func (fieldMask *Metric_FieldMask) GetRawPaths() []gotenobject.FieldPath { 3725 if fieldMask == nil { 3726 return nil 3727 } 3728 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 3729 for _, path := range fieldMask.Paths { 3730 rawPaths = append(rawPaths, path) 3731 } 3732 return rawPaths 3733 } 3734 3735 func (fieldMask *Metric_FieldMask) SetFromCliFlag(raw string) error { 3736 path, err := ParseMetric_FieldPath(raw) 3737 if err != nil { 3738 return err 3739 } 3740 fieldMask.Paths = append(fieldMask.Paths, path) 3741 return nil 3742 } 3743 3744 func (fieldMask *Metric_FieldMask) Set(target, source *Metric) { 3745 for _, path := range fieldMask.Paths { 3746 val, _ := path.GetSingle(source) 3747 // if val is nil, then field does not exist in source, skip 3748 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 3749 if val != nil { 3750 path.WithIValue(val).SetTo(&target) 3751 } 3752 } 3753 } 3754 3755 func (fieldMask *Metric_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 3756 fieldMask.Set(target.(*Metric), source.(*Metric)) 3757 } 3758 3759 func (fieldMask *Metric_FieldMask) Project(source *Metric) *Metric { 3760 if source == nil { 3761 return nil 3762 } 3763 if fieldMask == nil { 3764 return source 3765 } 3766 result := &Metric{} 3767 var labelsMapKeys []string 3768 wholeLabelsAccepted := false 3769 3770 for _, p := range fieldMask.Paths { 3771 switch tp := p.(type) { 3772 case *Metric_FieldTerminalPath: 3773 switch tp.selector { 3774 case Metric_FieldPathSelectorType: 3775 result.Type = source.Type 3776 case Metric_FieldPathSelectorLabels: 3777 result.Labels = source.Labels 3778 wholeLabelsAccepted = true 3779 case Metric_FieldPathSelectorReducedLabels: 3780 result.ReducedLabels = source.ReducedLabels 3781 } 3782 case *Metric_FieldPathMap: 3783 switch tp.selector { 3784 case Metric_FieldPathSelectorLabels: 3785 labelsMapKeys = append(labelsMapKeys, tp.key) 3786 } 3787 } 3788 } 3789 if wholeLabelsAccepted == false && len(labelsMapKeys) > 0 && source.GetLabels() != nil { 3790 copiedMap := map[string]string{} 3791 sourceMap := source.GetLabels() 3792 for _, key := range labelsMapKeys { 3793 copiedMap[key] = sourceMap[key] 3794 } 3795 result.Labels = copiedMap 3796 } 3797 return result 3798 } 3799 3800 func (fieldMask *Metric_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 3801 return fieldMask.Project(source.(*Metric)) 3802 } 3803 3804 func (fieldMask *Metric_FieldMask) PathsCount() int { 3805 if fieldMask == nil { 3806 return 0 3807 } 3808 return len(fieldMask.Paths) 3809 } 3810 3811 type MonitoredResource_FieldMask struct { 3812 Paths []MonitoredResource_FieldPath 3813 } 3814 3815 func FullMonitoredResource_FieldMask() *MonitoredResource_FieldMask { 3816 res := &MonitoredResource_FieldMask{} 3817 res.Paths = append(res.Paths, &MonitoredResource_FieldTerminalPath{selector: MonitoredResource_FieldPathSelectorType}) 3818 res.Paths = append(res.Paths, &MonitoredResource_FieldTerminalPath{selector: MonitoredResource_FieldPathSelectorLabels}) 3819 res.Paths = append(res.Paths, &MonitoredResource_FieldTerminalPath{selector: MonitoredResource_FieldPathSelectorReducedLabels}) 3820 return res 3821 } 3822 3823 func (fieldMask *MonitoredResource_FieldMask) String() string { 3824 if fieldMask == nil { 3825 return "<nil>" 3826 } 3827 pathsStr := make([]string, 0, len(fieldMask.Paths)) 3828 for _, path := range fieldMask.Paths { 3829 pathsStr = append(pathsStr, path.String()) 3830 } 3831 return strings.Join(pathsStr, ", ") 3832 } 3833 3834 func (fieldMask *MonitoredResource_FieldMask) IsFull() bool { 3835 if fieldMask == nil { 3836 return false 3837 } 3838 presentSelectors := make([]bool, 3) 3839 for _, path := range fieldMask.Paths { 3840 if asFinal, ok := path.(*MonitoredResource_FieldTerminalPath); ok { 3841 presentSelectors[int(asFinal.selector)] = true 3842 } 3843 } 3844 for _, flag := range presentSelectors { 3845 if !flag { 3846 return false 3847 } 3848 } 3849 return true 3850 } 3851 3852 func (fieldMask *MonitoredResource_FieldMask) ProtoReflect() preflect.Message { 3853 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 3854 return ParseMonitoredResource_FieldPath(raw) 3855 }) 3856 } 3857 3858 func (fieldMask *MonitoredResource_FieldMask) ProtoMessage() {} 3859 3860 func (fieldMask *MonitoredResource_FieldMask) Reset() { 3861 if fieldMask != nil { 3862 fieldMask.Paths = nil 3863 } 3864 } 3865 3866 func (fieldMask *MonitoredResource_FieldMask) Subtract(other *MonitoredResource_FieldMask) *MonitoredResource_FieldMask { 3867 result := &MonitoredResource_FieldMask{} 3868 removedSelectors := make([]bool, 3) 3869 3870 for _, path := range other.GetPaths() { 3871 switch tp := path.(type) { 3872 case *MonitoredResource_FieldTerminalPath: 3873 removedSelectors[int(tp.selector)] = true 3874 } 3875 } 3876 for _, path := range fieldMask.GetPaths() { 3877 if !removedSelectors[int(path.Selector())] { 3878 result.Paths = append(result.Paths, path) 3879 } 3880 } 3881 3882 if len(result.Paths) == 0 { 3883 return nil 3884 } 3885 return result 3886 } 3887 3888 func (fieldMask *MonitoredResource_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 3889 return fieldMask.Subtract(other.(*MonitoredResource_FieldMask)) 3890 } 3891 3892 // FilterInputFields generates copy of field paths with output_only field paths removed 3893 func (fieldMask *MonitoredResource_FieldMask) FilterInputFields() *MonitoredResource_FieldMask { 3894 result := &MonitoredResource_FieldMask{} 3895 result.Paths = append(result.Paths, fieldMask.Paths...) 3896 return result 3897 } 3898 3899 // ToFieldMask is used for proto conversions 3900 func (fieldMask *MonitoredResource_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 3901 protoFieldMask := &googlefieldmaskpb.FieldMask{} 3902 for _, path := range fieldMask.Paths { 3903 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 3904 } 3905 return protoFieldMask 3906 } 3907 3908 func (fieldMask *MonitoredResource_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 3909 if fieldMask == nil { 3910 return status.Error(codes.Internal, "target field mask is nil") 3911 } 3912 fieldMask.Paths = make([]MonitoredResource_FieldPath, 0, len(protoFieldMask.Paths)) 3913 for _, strPath := range protoFieldMask.Paths { 3914 path, err := ParseMonitoredResource_FieldPath(strPath) 3915 if err != nil { 3916 return err 3917 } 3918 fieldMask.Paths = append(fieldMask.Paths, path) 3919 } 3920 return nil 3921 } 3922 3923 // implement methods required by customType 3924 func (fieldMask MonitoredResource_FieldMask) Marshal() ([]byte, error) { 3925 protoFieldMask := fieldMask.ToProtoFieldMask() 3926 return proto.Marshal(protoFieldMask) 3927 } 3928 3929 func (fieldMask *MonitoredResource_FieldMask) Unmarshal(data []byte) error { 3930 protoFieldMask := &googlefieldmaskpb.FieldMask{} 3931 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 3932 return err 3933 } 3934 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 3935 return err 3936 } 3937 return nil 3938 } 3939 3940 func (fieldMask *MonitoredResource_FieldMask) Size() int { 3941 return proto.Size(fieldMask.ToProtoFieldMask()) 3942 } 3943 3944 func (fieldMask MonitoredResource_FieldMask) MarshalJSON() ([]byte, error) { 3945 return json.Marshal(fieldMask.ToProtoFieldMask()) 3946 } 3947 3948 func (fieldMask *MonitoredResource_FieldMask) UnmarshalJSON(data []byte) error { 3949 protoFieldMask := &googlefieldmaskpb.FieldMask{} 3950 if err := json.Unmarshal(data, protoFieldMask); err != nil { 3951 return err 3952 } 3953 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 3954 return err 3955 } 3956 return nil 3957 } 3958 3959 func (fieldMask *MonitoredResource_FieldMask) AppendPath(path MonitoredResource_FieldPath) { 3960 fieldMask.Paths = append(fieldMask.Paths, path) 3961 } 3962 3963 func (fieldMask *MonitoredResource_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 3964 fieldMask.Paths = append(fieldMask.Paths, path.(MonitoredResource_FieldPath)) 3965 } 3966 3967 func (fieldMask *MonitoredResource_FieldMask) GetPaths() []MonitoredResource_FieldPath { 3968 if fieldMask == nil { 3969 return nil 3970 } 3971 return fieldMask.Paths 3972 } 3973 3974 func (fieldMask *MonitoredResource_FieldMask) GetRawPaths() []gotenobject.FieldPath { 3975 if fieldMask == nil { 3976 return nil 3977 } 3978 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 3979 for _, path := range fieldMask.Paths { 3980 rawPaths = append(rawPaths, path) 3981 } 3982 return rawPaths 3983 } 3984 3985 func (fieldMask *MonitoredResource_FieldMask) SetFromCliFlag(raw string) error { 3986 path, err := ParseMonitoredResource_FieldPath(raw) 3987 if err != nil { 3988 return err 3989 } 3990 fieldMask.Paths = append(fieldMask.Paths, path) 3991 return nil 3992 } 3993 3994 func (fieldMask *MonitoredResource_FieldMask) Set(target, source *MonitoredResource) { 3995 for _, path := range fieldMask.Paths { 3996 val, _ := path.GetSingle(source) 3997 // if val is nil, then field does not exist in source, skip 3998 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 3999 if val != nil { 4000 path.WithIValue(val).SetTo(&target) 4001 } 4002 } 4003 } 4004 4005 func (fieldMask *MonitoredResource_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 4006 fieldMask.Set(target.(*MonitoredResource), source.(*MonitoredResource)) 4007 } 4008 4009 func (fieldMask *MonitoredResource_FieldMask) Project(source *MonitoredResource) *MonitoredResource { 4010 if source == nil { 4011 return nil 4012 } 4013 if fieldMask == nil { 4014 return source 4015 } 4016 result := &MonitoredResource{} 4017 var labelsMapKeys []string 4018 wholeLabelsAccepted := false 4019 4020 for _, p := range fieldMask.Paths { 4021 switch tp := p.(type) { 4022 case *MonitoredResource_FieldTerminalPath: 4023 switch tp.selector { 4024 case MonitoredResource_FieldPathSelectorType: 4025 result.Type = source.Type 4026 case MonitoredResource_FieldPathSelectorLabels: 4027 result.Labels = source.Labels 4028 wholeLabelsAccepted = true 4029 case MonitoredResource_FieldPathSelectorReducedLabels: 4030 result.ReducedLabels = source.ReducedLabels 4031 } 4032 case *MonitoredResource_FieldPathMap: 4033 switch tp.selector { 4034 case MonitoredResource_FieldPathSelectorLabels: 4035 labelsMapKeys = append(labelsMapKeys, tp.key) 4036 } 4037 } 4038 } 4039 if wholeLabelsAccepted == false && len(labelsMapKeys) > 0 && source.GetLabels() != nil { 4040 copiedMap := map[string]string{} 4041 sourceMap := source.GetLabels() 4042 for _, key := range labelsMapKeys { 4043 copiedMap[key] = sourceMap[key] 4044 } 4045 result.Labels = copiedMap 4046 } 4047 return result 4048 } 4049 4050 func (fieldMask *MonitoredResource_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 4051 return fieldMask.Project(source.(*MonitoredResource)) 4052 } 4053 4054 func (fieldMask *MonitoredResource_FieldMask) PathsCount() int { 4055 if fieldMask == nil { 4056 return 0 4057 } 4058 return len(fieldMask.Paths) 4059 } 4060 4061 type Strings_FieldMask struct { 4062 Paths []Strings_FieldPath 4063 } 4064 4065 func FullStrings_FieldMask() *Strings_FieldMask { 4066 res := &Strings_FieldMask{} 4067 res.Paths = append(res.Paths, &Strings_FieldTerminalPath{selector: Strings_FieldPathSelectorValues}) 4068 return res 4069 } 4070 4071 func (fieldMask *Strings_FieldMask) String() string { 4072 if fieldMask == nil { 4073 return "<nil>" 4074 } 4075 pathsStr := make([]string, 0, len(fieldMask.Paths)) 4076 for _, path := range fieldMask.Paths { 4077 pathsStr = append(pathsStr, path.String()) 4078 } 4079 return strings.Join(pathsStr, ", ") 4080 } 4081 4082 func (fieldMask *Strings_FieldMask) IsFull() bool { 4083 if fieldMask == nil { 4084 return false 4085 } 4086 presentSelectors := make([]bool, 1) 4087 for _, path := range fieldMask.Paths { 4088 if asFinal, ok := path.(*Strings_FieldTerminalPath); ok { 4089 presentSelectors[int(asFinal.selector)] = true 4090 } 4091 } 4092 for _, flag := range presentSelectors { 4093 if !flag { 4094 return false 4095 } 4096 } 4097 return true 4098 } 4099 4100 func (fieldMask *Strings_FieldMask) ProtoReflect() preflect.Message { 4101 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 4102 return ParseStrings_FieldPath(raw) 4103 }) 4104 } 4105 4106 func (fieldMask *Strings_FieldMask) ProtoMessage() {} 4107 4108 func (fieldMask *Strings_FieldMask) Reset() { 4109 if fieldMask != nil { 4110 fieldMask.Paths = nil 4111 } 4112 } 4113 4114 func (fieldMask *Strings_FieldMask) Subtract(other *Strings_FieldMask) *Strings_FieldMask { 4115 result := &Strings_FieldMask{} 4116 removedSelectors := make([]bool, 1) 4117 4118 for _, path := range other.GetPaths() { 4119 switch tp := path.(type) { 4120 case *Strings_FieldTerminalPath: 4121 removedSelectors[int(tp.selector)] = true 4122 } 4123 } 4124 for _, path := range fieldMask.GetPaths() { 4125 if !removedSelectors[int(path.Selector())] { 4126 result.Paths = append(result.Paths, path) 4127 } 4128 } 4129 4130 if len(result.Paths) == 0 { 4131 return nil 4132 } 4133 return result 4134 } 4135 4136 func (fieldMask *Strings_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 4137 return fieldMask.Subtract(other.(*Strings_FieldMask)) 4138 } 4139 4140 // FilterInputFields generates copy of field paths with output_only field paths removed 4141 func (fieldMask *Strings_FieldMask) FilterInputFields() *Strings_FieldMask { 4142 result := &Strings_FieldMask{} 4143 result.Paths = append(result.Paths, fieldMask.Paths...) 4144 return result 4145 } 4146 4147 // ToFieldMask is used for proto conversions 4148 func (fieldMask *Strings_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 4149 protoFieldMask := &googlefieldmaskpb.FieldMask{} 4150 for _, path := range fieldMask.Paths { 4151 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 4152 } 4153 return protoFieldMask 4154 } 4155 4156 func (fieldMask *Strings_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 4157 if fieldMask == nil { 4158 return status.Error(codes.Internal, "target field mask is nil") 4159 } 4160 fieldMask.Paths = make([]Strings_FieldPath, 0, len(protoFieldMask.Paths)) 4161 for _, strPath := range protoFieldMask.Paths { 4162 path, err := ParseStrings_FieldPath(strPath) 4163 if err != nil { 4164 return err 4165 } 4166 fieldMask.Paths = append(fieldMask.Paths, path) 4167 } 4168 return nil 4169 } 4170 4171 // implement methods required by customType 4172 func (fieldMask Strings_FieldMask) Marshal() ([]byte, error) { 4173 protoFieldMask := fieldMask.ToProtoFieldMask() 4174 return proto.Marshal(protoFieldMask) 4175 } 4176 4177 func (fieldMask *Strings_FieldMask) Unmarshal(data []byte) error { 4178 protoFieldMask := &googlefieldmaskpb.FieldMask{} 4179 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 4180 return err 4181 } 4182 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 4183 return err 4184 } 4185 return nil 4186 } 4187 4188 func (fieldMask *Strings_FieldMask) Size() int { 4189 return proto.Size(fieldMask.ToProtoFieldMask()) 4190 } 4191 4192 func (fieldMask Strings_FieldMask) MarshalJSON() ([]byte, error) { 4193 return json.Marshal(fieldMask.ToProtoFieldMask()) 4194 } 4195 4196 func (fieldMask *Strings_FieldMask) UnmarshalJSON(data []byte) error { 4197 protoFieldMask := &googlefieldmaskpb.FieldMask{} 4198 if err := json.Unmarshal(data, protoFieldMask); err != nil { 4199 return err 4200 } 4201 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 4202 return err 4203 } 4204 return nil 4205 } 4206 4207 func (fieldMask *Strings_FieldMask) AppendPath(path Strings_FieldPath) { 4208 fieldMask.Paths = append(fieldMask.Paths, path) 4209 } 4210 4211 func (fieldMask *Strings_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 4212 fieldMask.Paths = append(fieldMask.Paths, path.(Strings_FieldPath)) 4213 } 4214 4215 func (fieldMask *Strings_FieldMask) GetPaths() []Strings_FieldPath { 4216 if fieldMask == nil { 4217 return nil 4218 } 4219 return fieldMask.Paths 4220 } 4221 4222 func (fieldMask *Strings_FieldMask) GetRawPaths() []gotenobject.FieldPath { 4223 if fieldMask == nil { 4224 return nil 4225 } 4226 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 4227 for _, path := range fieldMask.Paths { 4228 rawPaths = append(rawPaths, path) 4229 } 4230 return rawPaths 4231 } 4232 4233 func (fieldMask *Strings_FieldMask) SetFromCliFlag(raw string) error { 4234 path, err := ParseStrings_FieldPath(raw) 4235 if err != nil { 4236 return err 4237 } 4238 fieldMask.Paths = append(fieldMask.Paths, path) 4239 return nil 4240 } 4241 4242 func (fieldMask *Strings_FieldMask) Set(target, source *Strings) { 4243 for _, path := range fieldMask.Paths { 4244 val, _ := path.GetSingle(source) 4245 // if val is nil, then field does not exist in source, skip 4246 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 4247 if val != nil { 4248 path.WithIValue(val).SetTo(&target) 4249 } 4250 } 4251 } 4252 4253 func (fieldMask *Strings_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 4254 fieldMask.Set(target.(*Strings), source.(*Strings)) 4255 } 4256 4257 func (fieldMask *Strings_FieldMask) Project(source *Strings) *Strings { 4258 if source == nil { 4259 return nil 4260 } 4261 if fieldMask == nil { 4262 return source 4263 } 4264 result := &Strings{} 4265 4266 for _, p := range fieldMask.Paths { 4267 switch tp := p.(type) { 4268 case *Strings_FieldTerminalPath: 4269 switch tp.selector { 4270 case Strings_FieldPathSelectorValues: 4271 result.Values = source.Values 4272 } 4273 } 4274 } 4275 return result 4276 } 4277 4278 func (fieldMask *Strings_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 4279 return fieldMask.Project(source.(*Strings)) 4280 } 4281 4282 func (fieldMask *Strings_FieldMask) PathsCount() int { 4283 if fieldMask == nil { 4284 return 0 4285 } 4286 return len(fieldMask.Paths) 4287 } 4288 4289 type MonitoredResourceSelector_FieldMask struct { 4290 Paths []MonitoredResourceSelector_FieldPath 4291 } 4292 4293 func FullMonitoredResourceSelector_FieldMask() *MonitoredResourceSelector_FieldMask { 4294 res := &MonitoredResourceSelector_FieldMask{} 4295 res.Paths = append(res.Paths, &MonitoredResourceSelector_FieldTerminalPath{selector: MonitoredResourceSelector_FieldPathSelectorTypes}) 4296 res.Paths = append(res.Paths, &MonitoredResourceSelector_FieldTerminalPath{selector: MonitoredResourceSelector_FieldPathSelectorLabels}) 4297 return res 4298 } 4299 4300 func (fieldMask *MonitoredResourceSelector_FieldMask) String() string { 4301 if fieldMask == nil { 4302 return "<nil>" 4303 } 4304 pathsStr := make([]string, 0, len(fieldMask.Paths)) 4305 for _, path := range fieldMask.Paths { 4306 pathsStr = append(pathsStr, path.String()) 4307 } 4308 return strings.Join(pathsStr, ", ") 4309 } 4310 4311 func (fieldMask *MonitoredResourceSelector_FieldMask) IsFull() bool { 4312 if fieldMask == nil { 4313 return false 4314 } 4315 presentSelectors := make([]bool, 2) 4316 for _, path := range fieldMask.Paths { 4317 if asFinal, ok := path.(*MonitoredResourceSelector_FieldTerminalPath); ok { 4318 presentSelectors[int(asFinal.selector)] = true 4319 } 4320 } 4321 for _, flag := range presentSelectors { 4322 if !flag { 4323 return false 4324 } 4325 } 4326 return true 4327 } 4328 4329 func (fieldMask *MonitoredResourceSelector_FieldMask) ProtoReflect() preflect.Message { 4330 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 4331 return ParseMonitoredResourceSelector_FieldPath(raw) 4332 }) 4333 } 4334 4335 func (fieldMask *MonitoredResourceSelector_FieldMask) ProtoMessage() {} 4336 4337 func (fieldMask *MonitoredResourceSelector_FieldMask) Reset() { 4338 if fieldMask != nil { 4339 fieldMask.Paths = nil 4340 } 4341 } 4342 4343 func (fieldMask *MonitoredResourceSelector_FieldMask) Subtract(other *MonitoredResourceSelector_FieldMask) *MonitoredResourceSelector_FieldMask { 4344 result := &MonitoredResourceSelector_FieldMask{} 4345 removedSelectors := make([]bool, 2) 4346 4347 for _, path := range other.GetPaths() { 4348 switch tp := path.(type) { 4349 case *MonitoredResourceSelector_FieldTerminalPath: 4350 removedSelectors[int(tp.selector)] = true 4351 } 4352 } 4353 for _, path := range fieldMask.GetPaths() { 4354 if !removedSelectors[int(path.Selector())] { 4355 result.Paths = append(result.Paths, path) 4356 } 4357 } 4358 4359 if len(result.Paths) == 0 { 4360 return nil 4361 } 4362 return result 4363 } 4364 4365 func (fieldMask *MonitoredResourceSelector_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 4366 return fieldMask.Subtract(other.(*MonitoredResourceSelector_FieldMask)) 4367 } 4368 4369 // FilterInputFields generates copy of field paths with output_only field paths removed 4370 func (fieldMask *MonitoredResourceSelector_FieldMask) FilterInputFields() *MonitoredResourceSelector_FieldMask { 4371 result := &MonitoredResourceSelector_FieldMask{} 4372 result.Paths = append(result.Paths, fieldMask.Paths...) 4373 return result 4374 } 4375 4376 // ToFieldMask is used for proto conversions 4377 func (fieldMask *MonitoredResourceSelector_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 4378 protoFieldMask := &googlefieldmaskpb.FieldMask{} 4379 for _, path := range fieldMask.Paths { 4380 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 4381 } 4382 return protoFieldMask 4383 } 4384 4385 func (fieldMask *MonitoredResourceSelector_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 4386 if fieldMask == nil { 4387 return status.Error(codes.Internal, "target field mask is nil") 4388 } 4389 fieldMask.Paths = make([]MonitoredResourceSelector_FieldPath, 0, len(protoFieldMask.Paths)) 4390 for _, strPath := range protoFieldMask.Paths { 4391 path, err := ParseMonitoredResourceSelector_FieldPath(strPath) 4392 if err != nil { 4393 return err 4394 } 4395 fieldMask.Paths = append(fieldMask.Paths, path) 4396 } 4397 return nil 4398 } 4399 4400 // implement methods required by customType 4401 func (fieldMask MonitoredResourceSelector_FieldMask) Marshal() ([]byte, error) { 4402 protoFieldMask := fieldMask.ToProtoFieldMask() 4403 return proto.Marshal(protoFieldMask) 4404 } 4405 4406 func (fieldMask *MonitoredResourceSelector_FieldMask) Unmarshal(data []byte) error { 4407 protoFieldMask := &googlefieldmaskpb.FieldMask{} 4408 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 4409 return err 4410 } 4411 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 4412 return err 4413 } 4414 return nil 4415 } 4416 4417 func (fieldMask *MonitoredResourceSelector_FieldMask) Size() int { 4418 return proto.Size(fieldMask.ToProtoFieldMask()) 4419 } 4420 4421 func (fieldMask MonitoredResourceSelector_FieldMask) MarshalJSON() ([]byte, error) { 4422 return json.Marshal(fieldMask.ToProtoFieldMask()) 4423 } 4424 4425 func (fieldMask *MonitoredResourceSelector_FieldMask) UnmarshalJSON(data []byte) error { 4426 protoFieldMask := &googlefieldmaskpb.FieldMask{} 4427 if err := json.Unmarshal(data, protoFieldMask); err != nil { 4428 return err 4429 } 4430 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 4431 return err 4432 } 4433 return nil 4434 } 4435 4436 func (fieldMask *MonitoredResourceSelector_FieldMask) AppendPath(path MonitoredResourceSelector_FieldPath) { 4437 fieldMask.Paths = append(fieldMask.Paths, path) 4438 } 4439 4440 func (fieldMask *MonitoredResourceSelector_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 4441 fieldMask.Paths = append(fieldMask.Paths, path.(MonitoredResourceSelector_FieldPath)) 4442 } 4443 4444 func (fieldMask *MonitoredResourceSelector_FieldMask) GetPaths() []MonitoredResourceSelector_FieldPath { 4445 if fieldMask == nil { 4446 return nil 4447 } 4448 return fieldMask.Paths 4449 } 4450 4451 func (fieldMask *MonitoredResourceSelector_FieldMask) GetRawPaths() []gotenobject.FieldPath { 4452 if fieldMask == nil { 4453 return nil 4454 } 4455 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 4456 for _, path := range fieldMask.Paths { 4457 rawPaths = append(rawPaths, path) 4458 } 4459 return rawPaths 4460 } 4461 4462 func (fieldMask *MonitoredResourceSelector_FieldMask) SetFromCliFlag(raw string) error { 4463 path, err := ParseMonitoredResourceSelector_FieldPath(raw) 4464 if err != nil { 4465 return err 4466 } 4467 fieldMask.Paths = append(fieldMask.Paths, path) 4468 return nil 4469 } 4470 4471 func (fieldMask *MonitoredResourceSelector_FieldMask) Set(target, source *MonitoredResourceSelector) { 4472 for _, path := range fieldMask.Paths { 4473 val, _ := path.GetSingle(source) 4474 // if val is nil, then field does not exist in source, skip 4475 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 4476 if val != nil { 4477 path.WithIValue(val).SetTo(&target) 4478 } 4479 } 4480 } 4481 4482 func (fieldMask *MonitoredResourceSelector_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 4483 fieldMask.Set(target.(*MonitoredResourceSelector), source.(*MonitoredResourceSelector)) 4484 } 4485 4486 func (fieldMask *MonitoredResourceSelector_FieldMask) Project(source *MonitoredResourceSelector) *MonitoredResourceSelector { 4487 if source == nil { 4488 return nil 4489 } 4490 if fieldMask == nil { 4491 return source 4492 } 4493 result := &MonitoredResourceSelector{} 4494 var labelsMapKeys []string 4495 wholeLabelsAccepted := false 4496 4497 for _, p := range fieldMask.Paths { 4498 switch tp := p.(type) { 4499 case *MonitoredResourceSelector_FieldTerminalPath: 4500 switch tp.selector { 4501 case MonitoredResourceSelector_FieldPathSelectorTypes: 4502 result.Types = source.Types 4503 case MonitoredResourceSelector_FieldPathSelectorLabels: 4504 result.Labels = source.Labels 4505 wholeLabelsAccepted = true 4506 } 4507 case *MonitoredResourceSelector_FieldPathMap: 4508 switch tp.selector { 4509 case MonitoredResourceSelector_FieldPathSelectorLabels: 4510 labelsMapKeys = append(labelsMapKeys, tp.key) 4511 } 4512 } 4513 } 4514 if wholeLabelsAccepted == false && len(labelsMapKeys) > 0 && source.GetLabels() != nil { 4515 copiedMap := map[string]*Strings{} 4516 sourceMap := source.GetLabels() 4517 for _, key := range labelsMapKeys { 4518 copiedMap[key] = sourceMap[key] 4519 } 4520 result.Labels = copiedMap 4521 } 4522 return result 4523 } 4524 4525 func (fieldMask *MonitoredResourceSelector_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 4526 return fieldMask.Project(source.(*MonitoredResourceSelector)) 4527 } 4528 4529 func (fieldMask *MonitoredResourceSelector_FieldMask) PathsCount() int { 4530 if fieldMask == nil { 4531 return 0 4532 } 4533 return len(fieldMask.Paths) 4534 } 4535 4536 type MetricSelector_FieldMask struct { 4537 Paths []MetricSelector_FieldPath 4538 } 4539 4540 func FullMetricSelector_FieldMask() *MetricSelector_FieldMask { 4541 res := &MetricSelector_FieldMask{} 4542 res.Paths = append(res.Paths, &MetricSelector_FieldTerminalPath{selector: MetricSelector_FieldPathSelectorTypes}) 4543 res.Paths = append(res.Paths, &MetricSelector_FieldTerminalPath{selector: MetricSelector_FieldPathSelectorLabels}) 4544 return res 4545 } 4546 4547 func (fieldMask *MetricSelector_FieldMask) String() string { 4548 if fieldMask == nil { 4549 return "<nil>" 4550 } 4551 pathsStr := make([]string, 0, len(fieldMask.Paths)) 4552 for _, path := range fieldMask.Paths { 4553 pathsStr = append(pathsStr, path.String()) 4554 } 4555 return strings.Join(pathsStr, ", ") 4556 } 4557 4558 func (fieldMask *MetricSelector_FieldMask) IsFull() bool { 4559 if fieldMask == nil { 4560 return false 4561 } 4562 presentSelectors := make([]bool, 2) 4563 for _, path := range fieldMask.Paths { 4564 if asFinal, ok := path.(*MetricSelector_FieldTerminalPath); ok { 4565 presentSelectors[int(asFinal.selector)] = true 4566 } 4567 } 4568 for _, flag := range presentSelectors { 4569 if !flag { 4570 return false 4571 } 4572 } 4573 return true 4574 } 4575 4576 func (fieldMask *MetricSelector_FieldMask) ProtoReflect() preflect.Message { 4577 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 4578 return ParseMetricSelector_FieldPath(raw) 4579 }) 4580 } 4581 4582 func (fieldMask *MetricSelector_FieldMask) ProtoMessage() {} 4583 4584 func (fieldMask *MetricSelector_FieldMask) Reset() { 4585 if fieldMask != nil { 4586 fieldMask.Paths = nil 4587 } 4588 } 4589 4590 func (fieldMask *MetricSelector_FieldMask) Subtract(other *MetricSelector_FieldMask) *MetricSelector_FieldMask { 4591 result := &MetricSelector_FieldMask{} 4592 removedSelectors := make([]bool, 2) 4593 4594 for _, path := range other.GetPaths() { 4595 switch tp := path.(type) { 4596 case *MetricSelector_FieldTerminalPath: 4597 removedSelectors[int(tp.selector)] = true 4598 } 4599 } 4600 for _, path := range fieldMask.GetPaths() { 4601 if !removedSelectors[int(path.Selector())] { 4602 result.Paths = append(result.Paths, path) 4603 } 4604 } 4605 4606 if len(result.Paths) == 0 { 4607 return nil 4608 } 4609 return result 4610 } 4611 4612 func (fieldMask *MetricSelector_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 4613 return fieldMask.Subtract(other.(*MetricSelector_FieldMask)) 4614 } 4615 4616 // FilterInputFields generates copy of field paths with output_only field paths removed 4617 func (fieldMask *MetricSelector_FieldMask) FilterInputFields() *MetricSelector_FieldMask { 4618 result := &MetricSelector_FieldMask{} 4619 result.Paths = append(result.Paths, fieldMask.Paths...) 4620 return result 4621 } 4622 4623 // ToFieldMask is used for proto conversions 4624 func (fieldMask *MetricSelector_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 4625 protoFieldMask := &googlefieldmaskpb.FieldMask{} 4626 for _, path := range fieldMask.Paths { 4627 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 4628 } 4629 return protoFieldMask 4630 } 4631 4632 func (fieldMask *MetricSelector_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 4633 if fieldMask == nil { 4634 return status.Error(codes.Internal, "target field mask is nil") 4635 } 4636 fieldMask.Paths = make([]MetricSelector_FieldPath, 0, len(protoFieldMask.Paths)) 4637 for _, strPath := range protoFieldMask.Paths { 4638 path, err := ParseMetricSelector_FieldPath(strPath) 4639 if err != nil { 4640 return err 4641 } 4642 fieldMask.Paths = append(fieldMask.Paths, path) 4643 } 4644 return nil 4645 } 4646 4647 // implement methods required by customType 4648 func (fieldMask MetricSelector_FieldMask) Marshal() ([]byte, error) { 4649 protoFieldMask := fieldMask.ToProtoFieldMask() 4650 return proto.Marshal(protoFieldMask) 4651 } 4652 4653 func (fieldMask *MetricSelector_FieldMask) Unmarshal(data []byte) error { 4654 protoFieldMask := &googlefieldmaskpb.FieldMask{} 4655 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 4656 return err 4657 } 4658 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 4659 return err 4660 } 4661 return nil 4662 } 4663 4664 func (fieldMask *MetricSelector_FieldMask) Size() int { 4665 return proto.Size(fieldMask.ToProtoFieldMask()) 4666 } 4667 4668 func (fieldMask MetricSelector_FieldMask) MarshalJSON() ([]byte, error) { 4669 return json.Marshal(fieldMask.ToProtoFieldMask()) 4670 } 4671 4672 func (fieldMask *MetricSelector_FieldMask) UnmarshalJSON(data []byte) error { 4673 protoFieldMask := &googlefieldmaskpb.FieldMask{} 4674 if err := json.Unmarshal(data, protoFieldMask); err != nil { 4675 return err 4676 } 4677 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 4678 return err 4679 } 4680 return nil 4681 } 4682 4683 func (fieldMask *MetricSelector_FieldMask) AppendPath(path MetricSelector_FieldPath) { 4684 fieldMask.Paths = append(fieldMask.Paths, path) 4685 } 4686 4687 func (fieldMask *MetricSelector_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 4688 fieldMask.Paths = append(fieldMask.Paths, path.(MetricSelector_FieldPath)) 4689 } 4690 4691 func (fieldMask *MetricSelector_FieldMask) GetPaths() []MetricSelector_FieldPath { 4692 if fieldMask == nil { 4693 return nil 4694 } 4695 return fieldMask.Paths 4696 } 4697 4698 func (fieldMask *MetricSelector_FieldMask) GetRawPaths() []gotenobject.FieldPath { 4699 if fieldMask == nil { 4700 return nil 4701 } 4702 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 4703 for _, path := range fieldMask.Paths { 4704 rawPaths = append(rawPaths, path) 4705 } 4706 return rawPaths 4707 } 4708 4709 func (fieldMask *MetricSelector_FieldMask) SetFromCliFlag(raw string) error { 4710 path, err := ParseMetricSelector_FieldPath(raw) 4711 if err != nil { 4712 return err 4713 } 4714 fieldMask.Paths = append(fieldMask.Paths, path) 4715 return nil 4716 } 4717 4718 func (fieldMask *MetricSelector_FieldMask) Set(target, source *MetricSelector) { 4719 for _, path := range fieldMask.Paths { 4720 val, _ := path.GetSingle(source) 4721 // if val is nil, then field does not exist in source, skip 4722 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 4723 if val != nil { 4724 path.WithIValue(val).SetTo(&target) 4725 } 4726 } 4727 } 4728 4729 func (fieldMask *MetricSelector_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 4730 fieldMask.Set(target.(*MetricSelector), source.(*MetricSelector)) 4731 } 4732 4733 func (fieldMask *MetricSelector_FieldMask) Project(source *MetricSelector) *MetricSelector { 4734 if source == nil { 4735 return nil 4736 } 4737 if fieldMask == nil { 4738 return source 4739 } 4740 result := &MetricSelector{} 4741 var labelsMapKeys []string 4742 wholeLabelsAccepted := false 4743 4744 for _, p := range fieldMask.Paths { 4745 switch tp := p.(type) { 4746 case *MetricSelector_FieldTerminalPath: 4747 switch tp.selector { 4748 case MetricSelector_FieldPathSelectorTypes: 4749 result.Types = source.Types 4750 case MetricSelector_FieldPathSelectorLabels: 4751 result.Labels = source.Labels 4752 wholeLabelsAccepted = true 4753 } 4754 case *MetricSelector_FieldPathMap: 4755 switch tp.selector { 4756 case MetricSelector_FieldPathSelectorLabels: 4757 labelsMapKeys = append(labelsMapKeys, tp.key) 4758 } 4759 } 4760 } 4761 if wholeLabelsAccepted == false && len(labelsMapKeys) > 0 && source.GetLabels() != nil { 4762 copiedMap := map[string]*Strings{} 4763 sourceMap := source.GetLabels() 4764 for _, key := range labelsMapKeys { 4765 copiedMap[key] = sourceMap[key] 4766 } 4767 result.Labels = copiedMap 4768 } 4769 return result 4770 } 4771 4772 func (fieldMask *MetricSelector_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 4773 return fieldMask.Project(source.(*MetricSelector)) 4774 } 4775 4776 func (fieldMask *MetricSelector_FieldMask) PathsCount() int { 4777 if fieldMask == nil { 4778 return 0 4779 } 4780 return len(fieldMask.Paths) 4781 } 4782 4783 type TimeSeriesSelector_FieldMask struct { 4784 Paths []TimeSeriesSelector_FieldPath 4785 } 4786 4787 func FullTimeSeriesSelector_FieldMask() *TimeSeriesSelector_FieldMask { 4788 res := &TimeSeriesSelector_FieldMask{} 4789 res.Paths = append(res.Paths, &TimeSeriesSelector_FieldTerminalPath{selector: TimeSeriesSelector_FieldPathSelectorMetric}) 4790 res.Paths = append(res.Paths, &TimeSeriesSelector_FieldTerminalPath{selector: TimeSeriesSelector_FieldPathSelectorResource}) 4791 return res 4792 } 4793 4794 func (fieldMask *TimeSeriesSelector_FieldMask) String() string { 4795 if fieldMask == nil { 4796 return "<nil>" 4797 } 4798 pathsStr := make([]string, 0, len(fieldMask.Paths)) 4799 for _, path := range fieldMask.Paths { 4800 pathsStr = append(pathsStr, path.String()) 4801 } 4802 return strings.Join(pathsStr, ", ") 4803 } 4804 4805 func (fieldMask *TimeSeriesSelector_FieldMask) IsFull() bool { 4806 if fieldMask == nil { 4807 return false 4808 } 4809 presentSelectors := make([]bool, 2) 4810 for _, path := range fieldMask.Paths { 4811 if asFinal, ok := path.(*TimeSeriesSelector_FieldTerminalPath); ok { 4812 presentSelectors[int(asFinal.selector)] = true 4813 } 4814 } 4815 for _, flag := range presentSelectors { 4816 if !flag { 4817 return false 4818 } 4819 } 4820 return true 4821 } 4822 4823 func (fieldMask *TimeSeriesSelector_FieldMask) ProtoReflect() preflect.Message { 4824 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 4825 return ParseTimeSeriesSelector_FieldPath(raw) 4826 }) 4827 } 4828 4829 func (fieldMask *TimeSeriesSelector_FieldMask) ProtoMessage() {} 4830 4831 func (fieldMask *TimeSeriesSelector_FieldMask) Reset() { 4832 if fieldMask != nil { 4833 fieldMask.Paths = nil 4834 } 4835 } 4836 4837 func (fieldMask *TimeSeriesSelector_FieldMask) Subtract(other *TimeSeriesSelector_FieldMask) *TimeSeriesSelector_FieldMask { 4838 result := &TimeSeriesSelector_FieldMask{} 4839 removedSelectors := make([]bool, 2) 4840 otherSubMasks := map[TimeSeriesSelector_FieldPathSelector]gotenobject.FieldMask{ 4841 TimeSeriesSelector_FieldPathSelectorMetric: &MetricSelector_FieldMask{}, 4842 TimeSeriesSelector_FieldPathSelectorResource: &MonitoredResourceSelector_FieldMask{}, 4843 } 4844 mySubMasks := map[TimeSeriesSelector_FieldPathSelector]gotenobject.FieldMask{ 4845 TimeSeriesSelector_FieldPathSelectorMetric: &MetricSelector_FieldMask{}, 4846 TimeSeriesSelector_FieldPathSelectorResource: &MonitoredResourceSelector_FieldMask{}, 4847 } 4848 4849 for _, path := range other.GetPaths() { 4850 switch tp := path.(type) { 4851 case *TimeSeriesSelector_FieldTerminalPath: 4852 removedSelectors[int(tp.selector)] = true 4853 case *TimeSeriesSelector_FieldSubPath: 4854 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 4855 } 4856 } 4857 for _, path := range fieldMask.GetPaths() { 4858 if !removedSelectors[int(path.Selector())] { 4859 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 4860 if tp, ok := path.(*TimeSeriesSelector_FieldTerminalPath); ok { 4861 switch tp.selector { 4862 case TimeSeriesSelector_FieldPathSelectorMetric: 4863 mySubMasks[TimeSeriesSelector_FieldPathSelectorMetric] = FullMetricSelector_FieldMask() 4864 case TimeSeriesSelector_FieldPathSelectorResource: 4865 mySubMasks[TimeSeriesSelector_FieldPathSelectorResource] = FullMonitoredResourceSelector_FieldMask() 4866 } 4867 } else if tp, ok := path.(*TimeSeriesSelector_FieldSubPath); ok { 4868 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 4869 } 4870 } else { 4871 result.Paths = append(result.Paths, path) 4872 } 4873 } 4874 } 4875 for selector, mySubMask := range mySubMasks { 4876 if mySubMask.PathsCount() > 0 { 4877 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 4878 result.Paths = append(result.Paths, &TimeSeriesSelector_FieldSubPath{selector: selector, subPath: allowedPath}) 4879 } 4880 } 4881 } 4882 4883 if len(result.Paths) == 0 { 4884 return nil 4885 } 4886 return result 4887 } 4888 4889 func (fieldMask *TimeSeriesSelector_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 4890 return fieldMask.Subtract(other.(*TimeSeriesSelector_FieldMask)) 4891 } 4892 4893 // FilterInputFields generates copy of field paths with output_only field paths removed 4894 func (fieldMask *TimeSeriesSelector_FieldMask) FilterInputFields() *TimeSeriesSelector_FieldMask { 4895 result := &TimeSeriesSelector_FieldMask{} 4896 result.Paths = append(result.Paths, fieldMask.Paths...) 4897 return result 4898 } 4899 4900 // ToFieldMask is used for proto conversions 4901 func (fieldMask *TimeSeriesSelector_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 4902 protoFieldMask := &googlefieldmaskpb.FieldMask{} 4903 for _, path := range fieldMask.Paths { 4904 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 4905 } 4906 return protoFieldMask 4907 } 4908 4909 func (fieldMask *TimeSeriesSelector_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 4910 if fieldMask == nil { 4911 return status.Error(codes.Internal, "target field mask is nil") 4912 } 4913 fieldMask.Paths = make([]TimeSeriesSelector_FieldPath, 0, len(protoFieldMask.Paths)) 4914 for _, strPath := range protoFieldMask.Paths { 4915 path, err := ParseTimeSeriesSelector_FieldPath(strPath) 4916 if err != nil { 4917 return err 4918 } 4919 fieldMask.Paths = append(fieldMask.Paths, path) 4920 } 4921 return nil 4922 } 4923 4924 // implement methods required by customType 4925 func (fieldMask TimeSeriesSelector_FieldMask) Marshal() ([]byte, error) { 4926 protoFieldMask := fieldMask.ToProtoFieldMask() 4927 return proto.Marshal(protoFieldMask) 4928 } 4929 4930 func (fieldMask *TimeSeriesSelector_FieldMask) Unmarshal(data []byte) error { 4931 protoFieldMask := &googlefieldmaskpb.FieldMask{} 4932 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 4933 return err 4934 } 4935 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 4936 return err 4937 } 4938 return nil 4939 } 4940 4941 func (fieldMask *TimeSeriesSelector_FieldMask) Size() int { 4942 return proto.Size(fieldMask.ToProtoFieldMask()) 4943 } 4944 4945 func (fieldMask TimeSeriesSelector_FieldMask) MarshalJSON() ([]byte, error) { 4946 return json.Marshal(fieldMask.ToProtoFieldMask()) 4947 } 4948 4949 func (fieldMask *TimeSeriesSelector_FieldMask) UnmarshalJSON(data []byte) error { 4950 protoFieldMask := &googlefieldmaskpb.FieldMask{} 4951 if err := json.Unmarshal(data, protoFieldMask); err != nil { 4952 return err 4953 } 4954 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 4955 return err 4956 } 4957 return nil 4958 } 4959 4960 func (fieldMask *TimeSeriesSelector_FieldMask) AppendPath(path TimeSeriesSelector_FieldPath) { 4961 fieldMask.Paths = append(fieldMask.Paths, path) 4962 } 4963 4964 func (fieldMask *TimeSeriesSelector_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 4965 fieldMask.Paths = append(fieldMask.Paths, path.(TimeSeriesSelector_FieldPath)) 4966 } 4967 4968 func (fieldMask *TimeSeriesSelector_FieldMask) GetPaths() []TimeSeriesSelector_FieldPath { 4969 if fieldMask == nil { 4970 return nil 4971 } 4972 return fieldMask.Paths 4973 } 4974 4975 func (fieldMask *TimeSeriesSelector_FieldMask) GetRawPaths() []gotenobject.FieldPath { 4976 if fieldMask == nil { 4977 return nil 4978 } 4979 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 4980 for _, path := range fieldMask.Paths { 4981 rawPaths = append(rawPaths, path) 4982 } 4983 return rawPaths 4984 } 4985 4986 func (fieldMask *TimeSeriesSelector_FieldMask) SetFromCliFlag(raw string) error { 4987 path, err := ParseTimeSeriesSelector_FieldPath(raw) 4988 if err != nil { 4989 return err 4990 } 4991 fieldMask.Paths = append(fieldMask.Paths, path) 4992 return nil 4993 } 4994 4995 func (fieldMask *TimeSeriesSelector_FieldMask) Set(target, source *TimeSeriesSelector) { 4996 for _, path := range fieldMask.Paths { 4997 val, _ := path.GetSingle(source) 4998 // if val is nil, then field does not exist in source, skip 4999 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 5000 if val != nil { 5001 path.WithIValue(val).SetTo(&target) 5002 } 5003 } 5004 } 5005 5006 func (fieldMask *TimeSeriesSelector_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 5007 fieldMask.Set(target.(*TimeSeriesSelector), source.(*TimeSeriesSelector)) 5008 } 5009 5010 func (fieldMask *TimeSeriesSelector_FieldMask) Project(source *TimeSeriesSelector) *TimeSeriesSelector { 5011 if source == nil { 5012 return nil 5013 } 5014 if fieldMask == nil { 5015 return source 5016 } 5017 result := &TimeSeriesSelector{} 5018 metricMask := &MetricSelector_FieldMask{} 5019 wholeMetricAccepted := false 5020 resourceMask := &MonitoredResourceSelector_FieldMask{} 5021 wholeResourceAccepted := false 5022 5023 for _, p := range fieldMask.Paths { 5024 switch tp := p.(type) { 5025 case *TimeSeriesSelector_FieldTerminalPath: 5026 switch tp.selector { 5027 case TimeSeriesSelector_FieldPathSelectorMetric: 5028 result.Metric = source.Metric 5029 wholeMetricAccepted = true 5030 case TimeSeriesSelector_FieldPathSelectorResource: 5031 result.Resource = source.Resource 5032 wholeResourceAccepted = true 5033 } 5034 case *TimeSeriesSelector_FieldSubPath: 5035 switch tp.selector { 5036 case TimeSeriesSelector_FieldPathSelectorMetric: 5037 metricMask.AppendPath(tp.subPath.(MetricSelector_FieldPath)) 5038 case TimeSeriesSelector_FieldPathSelectorResource: 5039 resourceMask.AppendPath(tp.subPath.(MonitoredResourceSelector_FieldPath)) 5040 } 5041 } 5042 } 5043 if wholeMetricAccepted == false && len(metricMask.Paths) > 0 { 5044 result.Metric = metricMask.Project(source.GetMetric()) 5045 } 5046 if wholeResourceAccepted == false && len(resourceMask.Paths) > 0 { 5047 result.Resource = resourceMask.Project(source.GetResource()) 5048 } 5049 return result 5050 } 5051 5052 func (fieldMask *TimeSeriesSelector_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 5053 return fieldMask.Project(source.(*TimeSeriesSelector)) 5054 } 5055 5056 func (fieldMask *TimeSeriesSelector_FieldMask) PathsCount() int { 5057 if fieldMask == nil { 5058 return 0 5059 } 5060 return len(fieldMask.Paths) 5061 }