github.com/cloudwan/edgelq-sdk@v1.15.4/logging/resources/v1/bucket/bucket.pb.fieldmask.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/logging/proto/v1/bucket.proto 3 // DO NOT EDIT!!! 4 5 package bucket 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 iam_organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1/organization" 23 iam_project "github.com/cloudwan/edgelq-sdk/iam/resources/v1/project" 24 log_descriptor "github.com/cloudwan/edgelq-sdk/logging/resources/v1/log_descriptor" 25 meta_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/service" 26 meta "github.com/cloudwan/goten-sdk/types/meta" 27 ) 28 29 // ensure the imports are used 30 var ( 31 _ = new(json.Marshaler) 32 _ = strings.Builder{} 33 34 _ = codes.NotFound 35 _ = status.Status{} 36 _ = new(proto.Message) 37 _ = new(preflect.Message) 38 _ = googlefieldmaskpb.FieldMask{} 39 40 _ = new(gotenobject.FieldMask) 41 ) 42 43 // make sure we're using proto imports 44 var ( 45 _ = &iam_organization.Organization{} 46 _ = &iam_project.Project{} 47 _ = &log_descriptor.LogDescriptor{} 48 _ = &meta_service.Service{} 49 _ = &meta.Meta{} 50 ) 51 52 type Bucket_FieldMask struct { 53 Paths []Bucket_FieldPath 54 } 55 56 func FullBucket_FieldMask() *Bucket_FieldMask { 57 res := &Bucket_FieldMask{} 58 res.Paths = append(res.Paths, &Bucket_FieldTerminalPath{selector: Bucket_FieldPathSelectorName}) 59 res.Paths = append(res.Paths, &Bucket_FieldTerminalPath{selector: Bucket_FieldPathSelectorMetadata}) 60 res.Paths = append(res.Paths, &Bucket_FieldTerminalPath{selector: Bucket_FieldPathSelectorServices}) 61 res.Paths = append(res.Paths, &Bucket_FieldTerminalPath{selector: Bucket_FieldPathSelectorVersions}) 62 res.Paths = append(res.Paths, &Bucket_FieldTerminalPath{selector: Bucket_FieldPathSelectorLogs}) 63 res.Paths = append(res.Paths, &Bucket_FieldTerminalPath{selector: Bucket_FieldPathSelectorRequiredAltKvs}) 64 return res 65 } 66 67 func (fieldMask *Bucket_FieldMask) String() string { 68 if fieldMask == nil { 69 return "<nil>" 70 } 71 pathsStr := make([]string, 0, len(fieldMask.Paths)) 72 for _, path := range fieldMask.Paths { 73 pathsStr = append(pathsStr, path.String()) 74 } 75 return strings.Join(pathsStr, ", ") 76 } 77 78 func (fieldMask *Bucket_FieldMask) IsFull() bool { 79 if fieldMask == nil { 80 return false 81 } 82 presentSelectors := make([]bool, 6) 83 for _, path := range fieldMask.Paths { 84 if asFinal, ok := path.(*Bucket_FieldTerminalPath); ok { 85 presentSelectors[int(asFinal.selector)] = true 86 } 87 } 88 for _, flag := range presentSelectors { 89 if !flag { 90 return false 91 } 92 } 93 return true 94 } 95 96 func (fieldMask *Bucket_FieldMask) ProtoReflect() preflect.Message { 97 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 98 return ParseBucket_FieldPath(raw) 99 }) 100 } 101 102 func (fieldMask *Bucket_FieldMask) ProtoMessage() {} 103 104 func (fieldMask *Bucket_FieldMask) Reset() { 105 if fieldMask != nil { 106 fieldMask.Paths = nil 107 } 108 } 109 110 func (fieldMask *Bucket_FieldMask) Subtract(other *Bucket_FieldMask) *Bucket_FieldMask { 111 result := &Bucket_FieldMask{} 112 removedSelectors := make([]bool, 6) 113 otherSubMasks := map[Bucket_FieldPathSelector]gotenobject.FieldMask{ 114 Bucket_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 115 Bucket_FieldPathSelectorLogs: &Bucket_RequiredTypedLabels_FieldMask{}, 116 Bucket_FieldPathSelectorRequiredAltKvs: &Bucket_ResolvedKeysWithValues_FieldMask{}, 117 } 118 mySubMasks := map[Bucket_FieldPathSelector]gotenobject.FieldMask{ 119 Bucket_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 120 Bucket_FieldPathSelectorLogs: &Bucket_RequiredTypedLabels_FieldMask{}, 121 Bucket_FieldPathSelectorRequiredAltKvs: &Bucket_ResolvedKeysWithValues_FieldMask{}, 122 } 123 124 for _, path := range other.GetPaths() { 125 switch tp := path.(type) { 126 case *Bucket_FieldTerminalPath: 127 removedSelectors[int(tp.selector)] = true 128 case *Bucket_FieldSubPath: 129 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 130 } 131 } 132 for _, path := range fieldMask.GetPaths() { 133 if !removedSelectors[int(path.Selector())] { 134 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 135 if tp, ok := path.(*Bucket_FieldTerminalPath); ok { 136 switch tp.selector { 137 case Bucket_FieldPathSelectorMetadata: 138 mySubMasks[Bucket_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask() 139 case Bucket_FieldPathSelectorLogs: 140 mySubMasks[Bucket_FieldPathSelectorLogs] = FullBucket_RequiredTypedLabels_FieldMask() 141 case Bucket_FieldPathSelectorRequiredAltKvs: 142 mySubMasks[Bucket_FieldPathSelectorRequiredAltKvs] = FullBucket_ResolvedKeysWithValues_FieldMask() 143 } 144 } else if tp, ok := path.(*Bucket_FieldSubPath); ok { 145 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 146 } 147 } else { 148 result.Paths = append(result.Paths, path) 149 } 150 } 151 } 152 for selector, mySubMask := range mySubMasks { 153 if mySubMask.PathsCount() > 0 { 154 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 155 result.Paths = append(result.Paths, &Bucket_FieldSubPath{selector: selector, subPath: allowedPath}) 156 } 157 } 158 } 159 160 if len(result.Paths) == 0 { 161 return nil 162 } 163 return result 164 } 165 166 func (fieldMask *Bucket_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 167 return fieldMask.Subtract(other.(*Bucket_FieldMask)) 168 } 169 170 // FilterInputFields generates copy of field paths with output_only field paths removed 171 func (fieldMask *Bucket_FieldMask) FilterInputFields() *Bucket_FieldMask { 172 result := &Bucket_FieldMask{} 173 for _, path := range fieldMask.Paths { 174 switch path.Selector() { 175 case Bucket_FieldPathSelectorRequiredAltKvs: 176 case Bucket_FieldPathSelectorMetadata: 177 if _, ok := path.(*Bucket_FieldTerminalPath); ok { 178 for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths { 179 result.Paths = append(result.Paths, &Bucket_FieldSubPath{selector: path.Selector(), subPath: subpath}) 180 } 181 } else if sub, ok := path.(*Bucket_FieldSubPath); ok { 182 selectedMask := &meta.Meta_FieldMask{ 183 Paths: []meta.Meta_FieldPath{sub.subPath.(meta.Meta_FieldPath)}, 184 } 185 for _, allowedPath := range selectedMask.FilterInputFields().Paths { 186 result.Paths = append(result.Paths, &Bucket_FieldSubPath{selector: Bucket_FieldPathSelectorMetadata, subPath: allowedPath}) 187 } 188 } 189 default: 190 result.Paths = append(result.Paths, path) 191 } 192 } 193 return result 194 } 195 196 // ToFieldMask is used for proto conversions 197 func (fieldMask *Bucket_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 198 protoFieldMask := &googlefieldmaskpb.FieldMask{} 199 for _, path := range fieldMask.Paths { 200 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 201 } 202 return protoFieldMask 203 } 204 205 func (fieldMask *Bucket_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 206 if fieldMask == nil { 207 return status.Error(codes.Internal, "target field mask is nil") 208 } 209 fieldMask.Paths = make([]Bucket_FieldPath, 0, len(protoFieldMask.Paths)) 210 for _, strPath := range protoFieldMask.Paths { 211 path, err := ParseBucket_FieldPath(strPath) 212 if err != nil { 213 return err 214 } 215 fieldMask.Paths = append(fieldMask.Paths, path) 216 } 217 return nil 218 } 219 220 // implement methods required by customType 221 func (fieldMask Bucket_FieldMask) Marshal() ([]byte, error) { 222 protoFieldMask := fieldMask.ToProtoFieldMask() 223 return proto.Marshal(protoFieldMask) 224 } 225 226 func (fieldMask *Bucket_FieldMask) Unmarshal(data []byte) error { 227 protoFieldMask := &googlefieldmaskpb.FieldMask{} 228 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 229 return err 230 } 231 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 232 return err 233 } 234 return nil 235 } 236 237 func (fieldMask *Bucket_FieldMask) Size() int { 238 return proto.Size(fieldMask.ToProtoFieldMask()) 239 } 240 241 func (fieldMask Bucket_FieldMask) MarshalJSON() ([]byte, error) { 242 return json.Marshal(fieldMask.ToProtoFieldMask()) 243 } 244 245 func (fieldMask *Bucket_FieldMask) UnmarshalJSON(data []byte) error { 246 protoFieldMask := &googlefieldmaskpb.FieldMask{} 247 if err := json.Unmarshal(data, protoFieldMask); err != nil { 248 return err 249 } 250 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 251 return err 252 } 253 return nil 254 } 255 256 func (fieldMask *Bucket_FieldMask) AppendPath(path Bucket_FieldPath) { 257 fieldMask.Paths = append(fieldMask.Paths, path) 258 } 259 260 func (fieldMask *Bucket_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 261 fieldMask.Paths = append(fieldMask.Paths, path.(Bucket_FieldPath)) 262 } 263 264 func (fieldMask *Bucket_FieldMask) GetPaths() []Bucket_FieldPath { 265 if fieldMask == nil { 266 return nil 267 } 268 return fieldMask.Paths 269 } 270 271 func (fieldMask *Bucket_FieldMask) GetRawPaths() []gotenobject.FieldPath { 272 if fieldMask == nil { 273 return nil 274 } 275 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 276 for _, path := range fieldMask.Paths { 277 rawPaths = append(rawPaths, path) 278 } 279 return rawPaths 280 } 281 282 func (fieldMask *Bucket_FieldMask) SetFromCliFlag(raw string) error { 283 path, err := ParseBucket_FieldPath(raw) 284 if err != nil { 285 return err 286 } 287 fieldMask.Paths = append(fieldMask.Paths, path) 288 return nil 289 } 290 291 func (fieldMask *Bucket_FieldMask) Set(target, source *Bucket) { 292 for _, path := range fieldMask.Paths { 293 val, _ := path.GetSingle(source) 294 // if val is nil, then field does not exist in source, skip 295 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 296 if val != nil { 297 path.WithIValue(val).SetTo(&target) 298 } 299 } 300 } 301 302 func (fieldMask *Bucket_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 303 fieldMask.Set(target.(*Bucket), source.(*Bucket)) 304 } 305 306 func (fieldMask *Bucket_FieldMask) Project(source *Bucket) *Bucket { 307 if source == nil { 308 return nil 309 } 310 if fieldMask == nil { 311 return source 312 } 313 result := &Bucket{} 314 metadataMask := &meta.Meta_FieldMask{} 315 wholeMetadataAccepted := false 316 logsMask := &Bucket_RequiredTypedLabels_FieldMask{} 317 wholeLogsAccepted := false 318 requiredAltKvsMask := &Bucket_ResolvedKeysWithValues_FieldMask{} 319 wholeRequiredAltKvsAccepted := false 320 321 for _, p := range fieldMask.Paths { 322 switch tp := p.(type) { 323 case *Bucket_FieldTerminalPath: 324 switch tp.selector { 325 case Bucket_FieldPathSelectorName: 326 result.Name = source.Name 327 case Bucket_FieldPathSelectorMetadata: 328 result.Metadata = source.Metadata 329 wholeMetadataAccepted = true 330 case Bucket_FieldPathSelectorServices: 331 result.Services = source.Services 332 case Bucket_FieldPathSelectorVersions: 333 result.Versions = source.Versions 334 case Bucket_FieldPathSelectorLogs: 335 result.Logs = source.Logs 336 wholeLogsAccepted = true 337 case Bucket_FieldPathSelectorRequiredAltKvs: 338 result.RequiredAltKvs = source.RequiredAltKvs 339 wholeRequiredAltKvsAccepted = true 340 } 341 case *Bucket_FieldSubPath: 342 switch tp.selector { 343 case Bucket_FieldPathSelectorMetadata: 344 metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath)) 345 case Bucket_FieldPathSelectorLogs: 346 logsMask.AppendPath(tp.subPath.(BucketRequiredTypedLabels_FieldPath)) 347 case Bucket_FieldPathSelectorRequiredAltKvs: 348 requiredAltKvsMask.AppendPath(tp.subPath.(BucketResolvedKeysWithValues_FieldPath)) 349 } 350 } 351 } 352 if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 { 353 result.Metadata = metadataMask.Project(source.GetMetadata()) 354 } 355 if wholeLogsAccepted == false && len(logsMask.Paths) > 0 { 356 for _, sourceItem := range source.GetLogs() { 357 result.Logs = append(result.Logs, logsMask.Project(sourceItem)) 358 } 359 } 360 if wholeRequiredAltKvsAccepted == false && len(requiredAltKvsMask.Paths) > 0 { 361 for _, sourceItem := range source.GetRequiredAltKvs() { 362 result.RequiredAltKvs = append(result.RequiredAltKvs, requiredAltKvsMask.Project(sourceItem)) 363 } 364 } 365 return result 366 } 367 368 func (fieldMask *Bucket_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 369 return fieldMask.Project(source.(*Bucket)) 370 } 371 372 func (fieldMask *Bucket_FieldMask) PathsCount() int { 373 if fieldMask == nil { 374 return 0 375 } 376 return len(fieldMask.Paths) 377 } 378 379 type Bucket_ResolvedValues_FieldMask struct { 380 Paths []BucketResolvedValues_FieldPath 381 } 382 383 func FullBucket_ResolvedValues_FieldMask() *Bucket_ResolvedValues_FieldMask { 384 res := &Bucket_ResolvedValues_FieldMask{} 385 res.Paths = append(res.Paths, &BucketResolvedValues_FieldTerminalPath{selector: BucketResolvedValues_FieldPathSelectorKey}) 386 res.Paths = append(res.Paths, &BucketResolvedValues_FieldTerminalPath{selector: BucketResolvedValues_FieldPathSelectorValues}) 387 return res 388 } 389 390 func (fieldMask *Bucket_ResolvedValues_FieldMask) String() string { 391 if fieldMask == nil { 392 return "<nil>" 393 } 394 pathsStr := make([]string, 0, len(fieldMask.Paths)) 395 for _, path := range fieldMask.Paths { 396 pathsStr = append(pathsStr, path.String()) 397 } 398 return strings.Join(pathsStr, ", ") 399 } 400 401 func (fieldMask *Bucket_ResolvedValues_FieldMask) IsFull() bool { 402 if fieldMask == nil { 403 return false 404 } 405 presentSelectors := make([]bool, 2) 406 for _, path := range fieldMask.Paths { 407 if asFinal, ok := path.(*BucketResolvedValues_FieldTerminalPath); ok { 408 presentSelectors[int(asFinal.selector)] = true 409 } 410 } 411 for _, flag := range presentSelectors { 412 if !flag { 413 return false 414 } 415 } 416 return true 417 } 418 419 func (fieldMask *Bucket_ResolvedValues_FieldMask) ProtoReflect() preflect.Message { 420 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 421 return ParseBucketResolvedValues_FieldPath(raw) 422 }) 423 } 424 425 func (fieldMask *Bucket_ResolvedValues_FieldMask) ProtoMessage() {} 426 427 func (fieldMask *Bucket_ResolvedValues_FieldMask) Reset() { 428 if fieldMask != nil { 429 fieldMask.Paths = nil 430 } 431 } 432 433 func (fieldMask *Bucket_ResolvedValues_FieldMask) Subtract(other *Bucket_ResolvedValues_FieldMask) *Bucket_ResolvedValues_FieldMask { 434 result := &Bucket_ResolvedValues_FieldMask{} 435 removedSelectors := make([]bool, 2) 436 437 for _, path := range other.GetPaths() { 438 switch tp := path.(type) { 439 case *BucketResolvedValues_FieldTerminalPath: 440 removedSelectors[int(tp.selector)] = true 441 } 442 } 443 for _, path := range fieldMask.GetPaths() { 444 if !removedSelectors[int(path.Selector())] { 445 result.Paths = append(result.Paths, path) 446 } 447 } 448 449 if len(result.Paths) == 0 { 450 return nil 451 } 452 return result 453 } 454 455 func (fieldMask *Bucket_ResolvedValues_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 456 return fieldMask.Subtract(other.(*Bucket_ResolvedValues_FieldMask)) 457 } 458 459 // FilterInputFields generates copy of field paths with output_only field paths removed 460 func (fieldMask *Bucket_ResolvedValues_FieldMask) FilterInputFields() *Bucket_ResolvedValues_FieldMask { 461 result := &Bucket_ResolvedValues_FieldMask{} 462 result.Paths = append(result.Paths, fieldMask.Paths...) 463 return result 464 } 465 466 // ToFieldMask is used for proto conversions 467 func (fieldMask *Bucket_ResolvedValues_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 468 protoFieldMask := &googlefieldmaskpb.FieldMask{} 469 for _, path := range fieldMask.Paths { 470 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 471 } 472 return protoFieldMask 473 } 474 475 func (fieldMask *Bucket_ResolvedValues_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 476 if fieldMask == nil { 477 return status.Error(codes.Internal, "target field mask is nil") 478 } 479 fieldMask.Paths = make([]BucketResolvedValues_FieldPath, 0, len(protoFieldMask.Paths)) 480 for _, strPath := range protoFieldMask.Paths { 481 path, err := ParseBucketResolvedValues_FieldPath(strPath) 482 if err != nil { 483 return err 484 } 485 fieldMask.Paths = append(fieldMask.Paths, path) 486 } 487 return nil 488 } 489 490 // implement methods required by customType 491 func (fieldMask Bucket_ResolvedValues_FieldMask) Marshal() ([]byte, error) { 492 protoFieldMask := fieldMask.ToProtoFieldMask() 493 return proto.Marshal(protoFieldMask) 494 } 495 496 func (fieldMask *Bucket_ResolvedValues_FieldMask) Unmarshal(data []byte) error { 497 protoFieldMask := &googlefieldmaskpb.FieldMask{} 498 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 499 return err 500 } 501 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 502 return err 503 } 504 return nil 505 } 506 507 func (fieldMask *Bucket_ResolvedValues_FieldMask) Size() int { 508 return proto.Size(fieldMask.ToProtoFieldMask()) 509 } 510 511 func (fieldMask Bucket_ResolvedValues_FieldMask) MarshalJSON() ([]byte, error) { 512 return json.Marshal(fieldMask.ToProtoFieldMask()) 513 } 514 515 func (fieldMask *Bucket_ResolvedValues_FieldMask) UnmarshalJSON(data []byte) error { 516 protoFieldMask := &googlefieldmaskpb.FieldMask{} 517 if err := json.Unmarshal(data, protoFieldMask); err != nil { 518 return err 519 } 520 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 521 return err 522 } 523 return nil 524 } 525 526 func (fieldMask *Bucket_ResolvedValues_FieldMask) AppendPath(path BucketResolvedValues_FieldPath) { 527 fieldMask.Paths = append(fieldMask.Paths, path) 528 } 529 530 func (fieldMask *Bucket_ResolvedValues_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 531 fieldMask.Paths = append(fieldMask.Paths, path.(BucketResolvedValues_FieldPath)) 532 } 533 534 func (fieldMask *Bucket_ResolvedValues_FieldMask) GetPaths() []BucketResolvedValues_FieldPath { 535 if fieldMask == nil { 536 return nil 537 } 538 return fieldMask.Paths 539 } 540 541 func (fieldMask *Bucket_ResolvedValues_FieldMask) GetRawPaths() []gotenobject.FieldPath { 542 if fieldMask == nil { 543 return nil 544 } 545 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 546 for _, path := range fieldMask.Paths { 547 rawPaths = append(rawPaths, path) 548 } 549 return rawPaths 550 } 551 552 func (fieldMask *Bucket_ResolvedValues_FieldMask) SetFromCliFlag(raw string) error { 553 path, err := ParseBucketResolvedValues_FieldPath(raw) 554 if err != nil { 555 return err 556 } 557 fieldMask.Paths = append(fieldMask.Paths, path) 558 return nil 559 } 560 561 func (fieldMask *Bucket_ResolvedValues_FieldMask) Set(target, source *Bucket_ResolvedValues) { 562 for _, path := range fieldMask.Paths { 563 val, _ := path.GetSingle(source) 564 // if val is nil, then field does not exist in source, skip 565 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 566 if val != nil { 567 path.WithIValue(val).SetTo(&target) 568 } 569 } 570 } 571 572 func (fieldMask *Bucket_ResolvedValues_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 573 fieldMask.Set(target.(*Bucket_ResolvedValues), source.(*Bucket_ResolvedValues)) 574 } 575 576 func (fieldMask *Bucket_ResolvedValues_FieldMask) Project(source *Bucket_ResolvedValues) *Bucket_ResolvedValues { 577 if source == nil { 578 return nil 579 } 580 if fieldMask == nil { 581 return source 582 } 583 result := &Bucket_ResolvedValues{} 584 585 for _, p := range fieldMask.Paths { 586 switch tp := p.(type) { 587 case *BucketResolvedValues_FieldTerminalPath: 588 switch tp.selector { 589 case BucketResolvedValues_FieldPathSelectorKey: 590 result.Key = source.Key 591 case BucketResolvedValues_FieldPathSelectorValues: 592 result.Values = source.Values 593 } 594 } 595 } 596 return result 597 } 598 599 func (fieldMask *Bucket_ResolvedValues_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 600 return fieldMask.Project(source.(*Bucket_ResolvedValues)) 601 } 602 603 func (fieldMask *Bucket_ResolvedValues_FieldMask) PathsCount() int { 604 if fieldMask == nil { 605 return 0 606 } 607 return len(fieldMask.Paths) 608 } 609 610 type Bucket_ResolvedKeysWithValues_FieldMask struct { 611 Paths []BucketResolvedKeysWithValues_FieldPath 612 } 613 614 func FullBucket_ResolvedKeysWithValues_FieldMask() *Bucket_ResolvedKeysWithValues_FieldMask { 615 res := &Bucket_ResolvedKeysWithValues_FieldMask{} 616 res.Paths = append(res.Paths, &BucketResolvedKeysWithValues_FieldTerminalPath{selector: BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs}) 617 return res 618 } 619 620 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) String() string { 621 if fieldMask == nil { 622 return "<nil>" 623 } 624 pathsStr := make([]string, 0, len(fieldMask.Paths)) 625 for _, path := range fieldMask.Paths { 626 pathsStr = append(pathsStr, path.String()) 627 } 628 return strings.Join(pathsStr, ", ") 629 } 630 631 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) IsFull() bool { 632 if fieldMask == nil { 633 return false 634 } 635 presentSelectors := make([]bool, 1) 636 for _, path := range fieldMask.Paths { 637 if asFinal, ok := path.(*BucketResolvedKeysWithValues_FieldTerminalPath); ok { 638 presentSelectors[int(asFinal.selector)] = true 639 } 640 } 641 for _, flag := range presentSelectors { 642 if !flag { 643 return false 644 } 645 } 646 return true 647 } 648 649 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) ProtoReflect() preflect.Message { 650 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 651 return ParseBucketResolvedKeysWithValues_FieldPath(raw) 652 }) 653 } 654 655 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) ProtoMessage() {} 656 657 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) Reset() { 658 if fieldMask != nil { 659 fieldMask.Paths = nil 660 } 661 } 662 663 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) Subtract(other *Bucket_ResolvedKeysWithValues_FieldMask) *Bucket_ResolvedKeysWithValues_FieldMask { 664 result := &Bucket_ResolvedKeysWithValues_FieldMask{} 665 removedSelectors := make([]bool, 1) 666 otherSubMasks := map[BucketResolvedKeysWithValues_FieldPathSelector]gotenobject.FieldMask{ 667 BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs: &Bucket_ResolvedValues_FieldMask{}, 668 } 669 mySubMasks := map[BucketResolvedKeysWithValues_FieldPathSelector]gotenobject.FieldMask{ 670 BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs: &Bucket_ResolvedValues_FieldMask{}, 671 } 672 673 for _, path := range other.GetPaths() { 674 switch tp := path.(type) { 675 case *BucketResolvedKeysWithValues_FieldTerminalPath: 676 removedSelectors[int(tp.selector)] = true 677 case *BucketResolvedKeysWithValues_FieldSubPath: 678 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 679 } 680 } 681 for _, path := range fieldMask.GetPaths() { 682 if !removedSelectors[int(path.Selector())] { 683 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 684 if tp, ok := path.(*BucketResolvedKeysWithValues_FieldTerminalPath); ok { 685 switch tp.selector { 686 case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs: 687 mySubMasks[BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs] = FullBucket_ResolvedValues_FieldMask() 688 } 689 } else if tp, ok := path.(*BucketResolvedKeysWithValues_FieldSubPath); ok { 690 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 691 } 692 } else { 693 result.Paths = append(result.Paths, path) 694 } 695 } 696 } 697 for selector, mySubMask := range mySubMasks { 698 if mySubMask.PathsCount() > 0 { 699 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 700 result.Paths = append(result.Paths, &BucketResolvedKeysWithValues_FieldSubPath{selector: selector, subPath: allowedPath}) 701 } 702 } 703 } 704 705 if len(result.Paths) == 0 { 706 return nil 707 } 708 return result 709 } 710 711 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 712 return fieldMask.Subtract(other.(*Bucket_ResolvedKeysWithValues_FieldMask)) 713 } 714 715 // FilterInputFields generates copy of field paths with output_only field paths removed 716 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) FilterInputFields() *Bucket_ResolvedKeysWithValues_FieldMask { 717 result := &Bucket_ResolvedKeysWithValues_FieldMask{} 718 result.Paths = append(result.Paths, fieldMask.Paths...) 719 return result 720 } 721 722 // ToFieldMask is used for proto conversions 723 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 724 protoFieldMask := &googlefieldmaskpb.FieldMask{} 725 for _, path := range fieldMask.Paths { 726 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 727 } 728 return protoFieldMask 729 } 730 731 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 732 if fieldMask == nil { 733 return status.Error(codes.Internal, "target field mask is nil") 734 } 735 fieldMask.Paths = make([]BucketResolvedKeysWithValues_FieldPath, 0, len(protoFieldMask.Paths)) 736 for _, strPath := range protoFieldMask.Paths { 737 path, err := ParseBucketResolvedKeysWithValues_FieldPath(strPath) 738 if err != nil { 739 return err 740 } 741 fieldMask.Paths = append(fieldMask.Paths, path) 742 } 743 return nil 744 } 745 746 // implement methods required by customType 747 func (fieldMask Bucket_ResolvedKeysWithValues_FieldMask) Marshal() ([]byte, error) { 748 protoFieldMask := fieldMask.ToProtoFieldMask() 749 return proto.Marshal(protoFieldMask) 750 } 751 752 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) Unmarshal(data []byte) error { 753 protoFieldMask := &googlefieldmaskpb.FieldMask{} 754 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 755 return err 756 } 757 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 758 return err 759 } 760 return nil 761 } 762 763 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) Size() int { 764 return proto.Size(fieldMask.ToProtoFieldMask()) 765 } 766 767 func (fieldMask Bucket_ResolvedKeysWithValues_FieldMask) MarshalJSON() ([]byte, error) { 768 return json.Marshal(fieldMask.ToProtoFieldMask()) 769 } 770 771 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) UnmarshalJSON(data []byte) error { 772 protoFieldMask := &googlefieldmaskpb.FieldMask{} 773 if err := json.Unmarshal(data, protoFieldMask); err != nil { 774 return err 775 } 776 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 777 return err 778 } 779 return nil 780 } 781 782 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) AppendPath(path BucketResolvedKeysWithValues_FieldPath) { 783 fieldMask.Paths = append(fieldMask.Paths, path) 784 } 785 786 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 787 fieldMask.Paths = append(fieldMask.Paths, path.(BucketResolvedKeysWithValues_FieldPath)) 788 } 789 790 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) GetPaths() []BucketResolvedKeysWithValues_FieldPath { 791 if fieldMask == nil { 792 return nil 793 } 794 return fieldMask.Paths 795 } 796 797 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) GetRawPaths() []gotenobject.FieldPath { 798 if fieldMask == nil { 799 return nil 800 } 801 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 802 for _, path := range fieldMask.Paths { 803 rawPaths = append(rawPaths, path) 804 } 805 return rawPaths 806 } 807 808 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) SetFromCliFlag(raw string) error { 809 path, err := ParseBucketResolvedKeysWithValues_FieldPath(raw) 810 if err != nil { 811 return err 812 } 813 fieldMask.Paths = append(fieldMask.Paths, path) 814 return nil 815 } 816 817 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) Set(target, source *Bucket_ResolvedKeysWithValues) { 818 for _, path := range fieldMask.Paths { 819 val, _ := path.GetSingle(source) 820 // if val is nil, then field does not exist in source, skip 821 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 822 if val != nil { 823 path.WithIValue(val).SetTo(&target) 824 } 825 } 826 } 827 828 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 829 fieldMask.Set(target.(*Bucket_ResolvedKeysWithValues), source.(*Bucket_ResolvedKeysWithValues)) 830 } 831 832 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) Project(source *Bucket_ResolvedKeysWithValues) *Bucket_ResolvedKeysWithValues { 833 if source == nil { 834 return nil 835 } 836 if fieldMask == nil { 837 return source 838 } 839 result := &Bucket_ResolvedKeysWithValues{} 840 resolvedKvsMask := &Bucket_ResolvedValues_FieldMask{} 841 wholeResolvedKvsAccepted := false 842 843 for _, p := range fieldMask.Paths { 844 switch tp := p.(type) { 845 case *BucketResolvedKeysWithValues_FieldTerminalPath: 846 switch tp.selector { 847 case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs: 848 result.ResolvedKvs = source.ResolvedKvs 849 wholeResolvedKvsAccepted = true 850 } 851 case *BucketResolvedKeysWithValues_FieldSubPath: 852 switch tp.selector { 853 case BucketResolvedKeysWithValues_FieldPathSelectorResolvedKvs: 854 resolvedKvsMask.AppendPath(tp.subPath.(BucketResolvedValues_FieldPath)) 855 } 856 } 857 } 858 if wholeResolvedKvsAccepted == false && len(resolvedKvsMask.Paths) > 0 { 859 for _, sourceItem := range source.GetResolvedKvs() { 860 result.ResolvedKvs = append(result.ResolvedKvs, resolvedKvsMask.Project(sourceItem)) 861 } 862 } 863 return result 864 } 865 866 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 867 return fieldMask.Project(source.(*Bucket_ResolvedKeysWithValues)) 868 } 869 870 func (fieldMask *Bucket_ResolvedKeysWithValues_FieldMask) PathsCount() int { 871 if fieldMask == nil { 872 return 0 873 } 874 return len(fieldMask.Paths) 875 } 876 877 type Bucket_RequiredTypedLabels_FieldMask struct { 878 Paths []BucketRequiredTypedLabels_FieldPath 879 } 880 881 func FullBucket_RequiredTypedLabels_FieldMask() *Bucket_RequiredTypedLabels_FieldMask { 882 res := &Bucket_RequiredTypedLabels_FieldMask{} 883 res.Paths = append(res.Paths, &BucketRequiredTypedLabels_FieldTerminalPath{selector: BucketRequiredTypedLabels_FieldPathSelectorDescriptors}) 884 res.Paths = append(res.Paths, &BucketRequiredTypedLabels_FieldTerminalPath{selector: BucketRequiredTypedLabels_FieldPathSelectorLabels}) 885 return res 886 } 887 888 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) String() string { 889 if fieldMask == nil { 890 return "<nil>" 891 } 892 pathsStr := make([]string, 0, len(fieldMask.Paths)) 893 for _, path := range fieldMask.Paths { 894 pathsStr = append(pathsStr, path.String()) 895 } 896 return strings.Join(pathsStr, ", ") 897 } 898 899 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) IsFull() bool { 900 if fieldMask == nil { 901 return false 902 } 903 presentSelectors := make([]bool, 2) 904 for _, path := range fieldMask.Paths { 905 if asFinal, ok := path.(*BucketRequiredTypedLabels_FieldTerminalPath); ok { 906 presentSelectors[int(asFinal.selector)] = true 907 } 908 } 909 for _, flag := range presentSelectors { 910 if !flag { 911 return false 912 } 913 } 914 return true 915 } 916 917 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) ProtoReflect() preflect.Message { 918 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 919 return ParseBucketRequiredTypedLabels_FieldPath(raw) 920 }) 921 } 922 923 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) ProtoMessage() {} 924 925 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) Reset() { 926 if fieldMask != nil { 927 fieldMask.Paths = nil 928 } 929 } 930 931 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) Subtract(other *Bucket_RequiredTypedLabels_FieldMask) *Bucket_RequiredTypedLabels_FieldMask { 932 result := &Bucket_RequiredTypedLabels_FieldMask{} 933 removedSelectors := make([]bool, 2) 934 935 for _, path := range other.GetPaths() { 936 switch tp := path.(type) { 937 case *BucketRequiredTypedLabels_FieldTerminalPath: 938 removedSelectors[int(tp.selector)] = true 939 } 940 } 941 for _, path := range fieldMask.GetPaths() { 942 if !removedSelectors[int(path.Selector())] { 943 result.Paths = append(result.Paths, path) 944 } 945 } 946 947 if len(result.Paths) == 0 { 948 return nil 949 } 950 return result 951 } 952 953 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 954 return fieldMask.Subtract(other.(*Bucket_RequiredTypedLabels_FieldMask)) 955 } 956 957 // FilterInputFields generates copy of field paths with output_only field paths removed 958 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) FilterInputFields() *Bucket_RequiredTypedLabels_FieldMask { 959 result := &Bucket_RequiredTypedLabels_FieldMask{} 960 result.Paths = append(result.Paths, fieldMask.Paths...) 961 return result 962 } 963 964 // ToFieldMask is used for proto conversions 965 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 966 protoFieldMask := &googlefieldmaskpb.FieldMask{} 967 for _, path := range fieldMask.Paths { 968 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 969 } 970 return protoFieldMask 971 } 972 973 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 974 if fieldMask == nil { 975 return status.Error(codes.Internal, "target field mask is nil") 976 } 977 fieldMask.Paths = make([]BucketRequiredTypedLabels_FieldPath, 0, len(protoFieldMask.Paths)) 978 for _, strPath := range protoFieldMask.Paths { 979 path, err := ParseBucketRequiredTypedLabels_FieldPath(strPath) 980 if err != nil { 981 return err 982 } 983 fieldMask.Paths = append(fieldMask.Paths, path) 984 } 985 return nil 986 } 987 988 // implement methods required by customType 989 func (fieldMask Bucket_RequiredTypedLabels_FieldMask) Marshal() ([]byte, error) { 990 protoFieldMask := fieldMask.ToProtoFieldMask() 991 return proto.Marshal(protoFieldMask) 992 } 993 994 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) Unmarshal(data []byte) error { 995 protoFieldMask := &googlefieldmaskpb.FieldMask{} 996 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 997 return err 998 } 999 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1000 return err 1001 } 1002 return nil 1003 } 1004 1005 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) Size() int { 1006 return proto.Size(fieldMask.ToProtoFieldMask()) 1007 } 1008 1009 func (fieldMask Bucket_RequiredTypedLabels_FieldMask) MarshalJSON() ([]byte, error) { 1010 return json.Marshal(fieldMask.ToProtoFieldMask()) 1011 } 1012 1013 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) UnmarshalJSON(data []byte) error { 1014 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1015 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1016 return err 1017 } 1018 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1019 return err 1020 } 1021 return nil 1022 } 1023 1024 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) AppendPath(path BucketRequiredTypedLabels_FieldPath) { 1025 fieldMask.Paths = append(fieldMask.Paths, path) 1026 } 1027 1028 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1029 fieldMask.Paths = append(fieldMask.Paths, path.(BucketRequiredTypedLabels_FieldPath)) 1030 } 1031 1032 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) GetPaths() []BucketRequiredTypedLabels_FieldPath { 1033 if fieldMask == nil { 1034 return nil 1035 } 1036 return fieldMask.Paths 1037 } 1038 1039 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1040 if fieldMask == nil { 1041 return nil 1042 } 1043 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1044 for _, path := range fieldMask.Paths { 1045 rawPaths = append(rawPaths, path) 1046 } 1047 return rawPaths 1048 } 1049 1050 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) SetFromCliFlag(raw string) error { 1051 path, err := ParseBucketRequiredTypedLabels_FieldPath(raw) 1052 if err != nil { 1053 return err 1054 } 1055 fieldMask.Paths = append(fieldMask.Paths, path) 1056 return nil 1057 } 1058 1059 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) Set(target, source *Bucket_RequiredTypedLabels) { 1060 for _, path := range fieldMask.Paths { 1061 val, _ := path.GetSingle(source) 1062 // if val is nil, then field does not exist in source, skip 1063 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1064 if val != nil { 1065 path.WithIValue(val).SetTo(&target) 1066 } 1067 } 1068 } 1069 1070 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1071 fieldMask.Set(target.(*Bucket_RequiredTypedLabels), source.(*Bucket_RequiredTypedLabels)) 1072 } 1073 1074 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) Project(source *Bucket_RequiredTypedLabels) *Bucket_RequiredTypedLabels { 1075 if source == nil { 1076 return nil 1077 } 1078 if fieldMask == nil { 1079 return source 1080 } 1081 result := &Bucket_RequiredTypedLabels{} 1082 var labelsMapKeys []string 1083 wholeLabelsAccepted := false 1084 1085 for _, p := range fieldMask.Paths { 1086 switch tp := p.(type) { 1087 case *BucketRequiredTypedLabels_FieldTerminalPath: 1088 switch tp.selector { 1089 case BucketRequiredTypedLabels_FieldPathSelectorDescriptors: 1090 result.Descriptors = source.Descriptors 1091 case BucketRequiredTypedLabels_FieldPathSelectorLabels: 1092 result.Labels = source.Labels 1093 wholeLabelsAccepted = true 1094 } 1095 case *BucketRequiredTypedLabels_FieldPathMap: 1096 switch tp.selector { 1097 case BucketRequiredTypedLabels_FieldPathSelectorLabels: 1098 labelsMapKeys = append(labelsMapKeys, tp.key) 1099 } 1100 } 1101 } 1102 if wholeLabelsAccepted == false && len(labelsMapKeys) > 0 && source.GetLabels() != nil { 1103 copiedMap := map[string]*Bucket_RequiredTypedLabels_Strings{} 1104 sourceMap := source.GetLabels() 1105 for _, key := range labelsMapKeys { 1106 copiedMap[key] = sourceMap[key] 1107 } 1108 result.Labels = copiedMap 1109 } 1110 return result 1111 } 1112 1113 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1114 return fieldMask.Project(source.(*Bucket_RequiredTypedLabels)) 1115 } 1116 1117 func (fieldMask *Bucket_RequiredTypedLabels_FieldMask) PathsCount() int { 1118 if fieldMask == nil { 1119 return 0 1120 } 1121 return len(fieldMask.Paths) 1122 } 1123 1124 type Bucket_RequiredTypedLabels_Strings_FieldMask struct { 1125 Paths []BucketRequiredTypedLabelsStrings_FieldPath 1126 } 1127 1128 func FullBucket_RequiredTypedLabels_Strings_FieldMask() *Bucket_RequiredTypedLabels_Strings_FieldMask { 1129 res := &Bucket_RequiredTypedLabels_Strings_FieldMask{} 1130 res.Paths = append(res.Paths, &BucketRequiredTypedLabelsStrings_FieldTerminalPath{selector: BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings}) 1131 return res 1132 } 1133 1134 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) String() string { 1135 if fieldMask == nil { 1136 return "<nil>" 1137 } 1138 pathsStr := make([]string, 0, len(fieldMask.Paths)) 1139 for _, path := range fieldMask.Paths { 1140 pathsStr = append(pathsStr, path.String()) 1141 } 1142 return strings.Join(pathsStr, ", ") 1143 } 1144 1145 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) IsFull() bool { 1146 if fieldMask == nil { 1147 return false 1148 } 1149 presentSelectors := make([]bool, 1) 1150 for _, path := range fieldMask.Paths { 1151 if asFinal, ok := path.(*BucketRequiredTypedLabelsStrings_FieldTerminalPath); ok { 1152 presentSelectors[int(asFinal.selector)] = true 1153 } 1154 } 1155 for _, flag := range presentSelectors { 1156 if !flag { 1157 return false 1158 } 1159 } 1160 return true 1161 } 1162 1163 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) ProtoReflect() preflect.Message { 1164 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 1165 return ParseBucketRequiredTypedLabelsStrings_FieldPath(raw) 1166 }) 1167 } 1168 1169 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) ProtoMessage() {} 1170 1171 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) Reset() { 1172 if fieldMask != nil { 1173 fieldMask.Paths = nil 1174 } 1175 } 1176 1177 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) Subtract(other *Bucket_RequiredTypedLabels_Strings_FieldMask) *Bucket_RequiredTypedLabels_Strings_FieldMask { 1178 result := &Bucket_RequiredTypedLabels_Strings_FieldMask{} 1179 removedSelectors := make([]bool, 1) 1180 1181 for _, path := range other.GetPaths() { 1182 switch tp := path.(type) { 1183 case *BucketRequiredTypedLabelsStrings_FieldTerminalPath: 1184 removedSelectors[int(tp.selector)] = true 1185 } 1186 } 1187 for _, path := range fieldMask.GetPaths() { 1188 if !removedSelectors[int(path.Selector())] { 1189 result.Paths = append(result.Paths, path) 1190 } 1191 } 1192 1193 if len(result.Paths) == 0 { 1194 return nil 1195 } 1196 return result 1197 } 1198 1199 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 1200 return fieldMask.Subtract(other.(*Bucket_RequiredTypedLabels_Strings_FieldMask)) 1201 } 1202 1203 // FilterInputFields generates copy of field paths with output_only field paths removed 1204 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) FilterInputFields() *Bucket_RequiredTypedLabels_Strings_FieldMask { 1205 result := &Bucket_RequiredTypedLabels_Strings_FieldMask{} 1206 result.Paths = append(result.Paths, fieldMask.Paths...) 1207 return result 1208 } 1209 1210 // ToFieldMask is used for proto conversions 1211 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 1212 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1213 for _, path := range fieldMask.Paths { 1214 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 1215 } 1216 return protoFieldMask 1217 } 1218 1219 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 1220 if fieldMask == nil { 1221 return status.Error(codes.Internal, "target field mask is nil") 1222 } 1223 fieldMask.Paths = make([]BucketRequiredTypedLabelsStrings_FieldPath, 0, len(protoFieldMask.Paths)) 1224 for _, strPath := range protoFieldMask.Paths { 1225 path, err := ParseBucketRequiredTypedLabelsStrings_FieldPath(strPath) 1226 if err != nil { 1227 return err 1228 } 1229 fieldMask.Paths = append(fieldMask.Paths, path) 1230 } 1231 return nil 1232 } 1233 1234 // implement methods required by customType 1235 func (fieldMask Bucket_RequiredTypedLabels_Strings_FieldMask) Marshal() ([]byte, error) { 1236 protoFieldMask := fieldMask.ToProtoFieldMask() 1237 return proto.Marshal(protoFieldMask) 1238 } 1239 1240 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) Unmarshal(data []byte) error { 1241 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1242 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 1243 return err 1244 } 1245 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1246 return err 1247 } 1248 return nil 1249 } 1250 1251 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) Size() int { 1252 return proto.Size(fieldMask.ToProtoFieldMask()) 1253 } 1254 1255 func (fieldMask Bucket_RequiredTypedLabels_Strings_FieldMask) MarshalJSON() ([]byte, error) { 1256 return json.Marshal(fieldMask.ToProtoFieldMask()) 1257 } 1258 1259 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) UnmarshalJSON(data []byte) error { 1260 protoFieldMask := &googlefieldmaskpb.FieldMask{} 1261 if err := json.Unmarshal(data, protoFieldMask); err != nil { 1262 return err 1263 } 1264 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 1265 return err 1266 } 1267 return nil 1268 } 1269 1270 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) AppendPath(path BucketRequiredTypedLabelsStrings_FieldPath) { 1271 fieldMask.Paths = append(fieldMask.Paths, path) 1272 } 1273 1274 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 1275 fieldMask.Paths = append(fieldMask.Paths, path.(BucketRequiredTypedLabelsStrings_FieldPath)) 1276 } 1277 1278 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) GetPaths() []BucketRequiredTypedLabelsStrings_FieldPath { 1279 if fieldMask == nil { 1280 return nil 1281 } 1282 return fieldMask.Paths 1283 } 1284 1285 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) GetRawPaths() []gotenobject.FieldPath { 1286 if fieldMask == nil { 1287 return nil 1288 } 1289 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 1290 for _, path := range fieldMask.Paths { 1291 rawPaths = append(rawPaths, path) 1292 } 1293 return rawPaths 1294 } 1295 1296 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) SetFromCliFlag(raw string) error { 1297 path, err := ParseBucketRequiredTypedLabelsStrings_FieldPath(raw) 1298 if err != nil { 1299 return err 1300 } 1301 fieldMask.Paths = append(fieldMask.Paths, path) 1302 return nil 1303 } 1304 1305 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) Set(target, source *Bucket_RequiredTypedLabels_Strings) { 1306 for _, path := range fieldMask.Paths { 1307 val, _ := path.GetSingle(source) 1308 // if val is nil, then field does not exist in source, skip 1309 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 1310 if val != nil { 1311 path.WithIValue(val).SetTo(&target) 1312 } 1313 } 1314 } 1315 1316 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 1317 fieldMask.Set(target.(*Bucket_RequiredTypedLabels_Strings), source.(*Bucket_RequiredTypedLabels_Strings)) 1318 } 1319 1320 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) Project(source *Bucket_RequiredTypedLabels_Strings) *Bucket_RequiredTypedLabels_Strings { 1321 if source == nil { 1322 return nil 1323 } 1324 if fieldMask == nil { 1325 return source 1326 } 1327 result := &Bucket_RequiredTypedLabels_Strings{} 1328 1329 for _, p := range fieldMask.Paths { 1330 switch tp := p.(type) { 1331 case *BucketRequiredTypedLabelsStrings_FieldTerminalPath: 1332 switch tp.selector { 1333 case BucketRequiredTypedLabelsStrings_FieldPathSelectorStrings: 1334 result.Strings = source.Strings 1335 } 1336 } 1337 } 1338 return result 1339 } 1340 1341 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 1342 return fieldMask.Project(source.(*Bucket_RequiredTypedLabels_Strings)) 1343 } 1344 1345 func (fieldMask *Bucket_RequiredTypedLabels_Strings_FieldMask) PathsCount() int { 1346 if fieldMask == nil { 1347 return 0 1348 } 1349 return len(fieldMask.Paths) 1350 }