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