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  }